Win32 API 日本語リファレンス
ホームMedia.PictureAcquisition › IPhotoAcquirePlugin

IPhotoAcquirePlugin

COM
IID00f2dceb-ecb8-4f77-8e47-e7a987c83dd0継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Windows Vista の画像取得用ユーザーインターフェイス (UI) と連携して動作するプラグインを作成する場合に、IPhotoAcquirePlugin インターフェイスを実装します。プラグインを有効にするにはレジストリ設定が必要です。

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Initialize(IPhotoAcquireSource* pPhotoAcquireSource, IPhotoAcquireProgressCB* pPhotoAcquireProgressCB)

Initialize メソッドは、プラグインの初期化時に拡張機能を提供します。Initialize メソッドの実装はアプリケーションが提供します。

pPhotoAcquireSourceIPhotoAcquireSource*inoptional写真の取得元となるソースを指定します。
pPhotoAcquireProgressCBIPhotoAcquireProgressCB*inoptional取得中に追加の処理を提供するコールバックを指定します。

戻り値

このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。

Return code Description
S_OK
メソッドは成功しました。
E_NOTIMPL
メソッドは実装されていません。
vtbl 4 HRESULT ProcessItem(DWORD dwAcquireStage, IPhotoAcquireItem* pPhotoAcquireItem, IStream* pOriginalItemStream, LPWSTR pszFinalFilename, IPropertyStore* pPropertyStore)

ProcessItem メソッドは、項目が処理されるたびに追加機能を提供します。ProcessItem メソッドの実装はアプリケーションが提供します。

dwAcquireStageDWORDin

このメソッドが項目の処理前と処理後のどちらで呼び出されているかを示す double word 値を指定します。PAPS_PRESAVEPAPS_POSTSAVEPAPS_CLEANUP のいずれかである必要があります。

Value Description
PAPS_PRESAVE 取得したファイルを保存する前にメソッドが呼び出されていることを示します。PAPS_PRESAVE の間は、pPhotoAcquireItem::GetProperty を使用して元のファイルからメタデータを取得し、ファイルに書き込む新しいメタデータは pPropertyStore に追加する必要があります。
PAPS_POSTSAVE 取得したファイルを保存した後にメソッドが呼び出されていることを示します。
PAPS_CLEANUP ユーザーが取得操作をキャンセルし、プラグインが行った処理をすべてクリーンアップする必要があることを示します。
pPhotoAcquireItemIPhotoAcquireItem*inoptional処理対象の項目を表す IPhotoAcquireItem オブジェクトへのポインター。
pOriginalItemStreamIStream*inoptional元の項目を表す IStream オブジェクトへのポインター。dwAcquireStagePAPS_POSTSAVE の場合は NULL です。
pszFinalFilenameLPWSTRin項目の保存先のファイル名。dwAcquireStagePAPS_PRESAVE の場合は NULL です。
pPropertyStoreIPropertyStore*inoptional項目のプロパティストア。dwAcquireStagePAPS_POSTSAVE の場合は NULL です。

戻り値

このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。

Return code Description
S_OK
メソッドは成功しました。
E_NOTIMPL
メソッドは実装されていません。
vtbl 5 HRESULT TransferComplete(HRESULT hr)

転送セッションの完了時に拡張機能を提供します。TransferComplete メソッドの実装はアプリケーションが提供します。

hrHRESULTin転送操作の結果を指定します。

戻り値

このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。

Return code Description
S_OK
メソッドは成功しました。
E_NOTIMPL
メソッドは実装されていません。
vtbl 6 HRESULT DisplayConfigureDialog(HWND hWndParent)

DisplayConfigureDialog メソッドは、構成ダイアログの表示時に拡張機能を提供します。DisplayConfigureDialog メソッドの実装はアプリケーションが提供します。

hWndParentHWNDin構成ダイアログウィンドウのハンドルを指定します。

戻り値

このメソッドは HRESULT を返します。実装は次の戻り値に限定されません。

Return code Description
S_OK
メソッドは成功しました。
E_NOTIMPL
メソッドは実装されていません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。