IPhotoAcquirePlugin
COM公式ドキュメント
Windows Vista の画像取得用ユーザーインターフェイス (UI) と連携して動作するプラグインを作成する場合に、IPhotoAcquirePlugin インターフェイスを実装します。プラグインを有効にするにはレジストリ設定が必要です。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Initialize メソッドは、プラグインの初期化時に拡張機能を提供します。Initialize メソッドの実装はアプリケーションが提供します。
| pPhotoAcquireSource | IPhotoAcquireSource* | inoptional | 写真の取得元となるソースを指定します。 |
| pPhotoAcquireProgressCB | IPhotoAcquireProgressCB* | inoptional | 取得中に追加の処理を提供するコールバックを指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 | |
| メソッドは実装されていません。 |
ProcessItem メソッドは、項目が処理されるたびに追加機能を提供します。ProcessItem メソッドの実装はアプリケーションが提供します。
| dwAcquireStage | DWORD | in | このメソッドが項目の処理前と処理後のどちらで呼び出されているかを示す double word 値を指定します。PAPS_PRESAVE、PAPS_POSTSAVE、PAPS_CLEANUP のいずれかである必要があります。
| ||||||||
| pPhotoAcquireItem | IPhotoAcquireItem* | inoptional | 処理対象の項目を表す IPhotoAcquireItem オブジェクトへのポインター。 | ||||||||
| pOriginalItemStream | IStream* | inoptional | 元の項目を表す IStream オブジェクトへのポインター。dwAcquireStage が PAPS_POSTSAVE の場合は NULL です。 | ||||||||
| pszFinalFilename | LPWSTR | in | 項目の保存先のファイル名。dwAcquireStage が PAPS_PRESAVE の場合は NULL です。 | ||||||||
| pPropertyStore | IPropertyStore* | inoptional | 項目のプロパティストア。dwAcquireStage が PAPS_POSTSAVE の場合は NULL です。 |
戻り値
このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 | |
| メソッドは実装されていません。 |
転送セッションの完了時に拡張機能を提供します。TransferComplete メソッドの実装はアプリケーションが提供します。
| hr | HRESULT | in | 転送操作の結果を指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 | |
| メソッドは実装されていません。 |
DisplayConfigureDialog メソッドは、構成ダイアログの表示時に拡張機能を提供します。DisplayConfigureDialog メソッドの実装はアプリケーションが提供します。
| hWndParent | HWND | in | 構成ダイアログウィンドウのハンドルを指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。
| Return code | Description |
|---|---|
| メソッドは成功しました。 | |
| メソッドは実装されていません。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IPhotoAcquirePlugin "{00F2DCEB-ECB8-4F77-8E47-E7A987C83DD0}"
#usecom global IPhotoAcquirePlugin IID_IPhotoAcquirePlugin "{}"
#comfunc global IPhotoAcquirePlugin_Initialize 3 sptr,sptr
#comfunc global IPhotoAcquirePlugin_ProcessItem 4 int,sptr,sptr,wstr,sptr
#comfunc global IPhotoAcquirePlugin_TransferComplete 5 int
#comfunc global IPhotoAcquirePlugin_DisplayConfigureDialog 6 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。