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

IPhotoAcquireProgressCB

COM
IID00f2ce1e-935e-4248-892c-130f32c45cb4継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IPhotoAcquireProgressCB インターフェイスは、取得プロセスのさまざまな段階で追加の処理を行いたい場合に実装します。

メソッド 19

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

vtbl 3 HRESULT Cancelled(BOOL* pfCancelled)

Cancelled メソッドは、取得セッション中にキャンセルが発生したときに拡張機能を提供します。Cancelled メソッドの実装はアプリケーションが提供します。

pfCancelledBOOL*outTRUE に設定されている場合に操作がキャンセルされたことを示すフラグへのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドが実装されていません。
vtbl 4 HRESULT StartEnumeration(IPhotoAcquireSource* pPhotoAcquireSource)

StartEnumeration メソッドは、取得する項目の列挙が開始されるときに拡張機能を提供します。

pPhotoAcquireSourceIPhotoAcquireSource*inoptional項目の列挙元となる IPhotoAcquireSource オブジェクトへのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドが実装されていません。
vtbl 5 HRESULT FoundItem(IPhotoAcquireItem* pPhotoAcquireItem)

FoundItem メソッドは、デバイスからの項目の列挙中に項目が見つかるたびに拡張機能を提供します。

pPhotoAcquireItemIPhotoAcquireItem*inoptional見つかった IPhotoAcquireItem オブジェクトへのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
S_FALSE
この項目を取得対象のファイル一覧から除外します。

解説(Remarks)

項目を列挙結果から除外するには S_FALSE を返します。これにより、たとえばビデオやカメラの RAW ファイルを呼び出し元が除外できます。

vtbl 6 HRESULT EndEnumeration(HRESULT hr)

EndEnumeration メソッドは、イメージソースからのファイルの列挙が完了したときに拡張機能を提供します。EndEnumeration メソッドの実装はアプリケーションが提供します。

hrHRESULTin列挙操作の結果を指定します。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 7 HRESULT StartTransfer(IPhotoAcquireSource* pPhotoAcquireSource)

StartTransfer メソッドは、デバイスからの項目の転送が開始されるときに追加の処理を提供します。StartTransfer メソッドの実装はアプリケーションが提供します。

pPhotoAcquireSourceIPhotoAcquireSource*inoptional項目の取得元となる IPhotoAcquireSource へのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドが実装されていません。

解説(Remarks)

E_NOTIMPL 以外のエラーを示す HRESULT を返すと、取得が中止されます。

vtbl 8 HRESULT StartItemTransfer(DWORD nItemIndex, IPhotoAcquireItem* pPhotoAcquireItem)

StartItemTransfer メソッドは、項目の転送が開始されるたびに拡張機能を提供します。StartItemTransfer メソッドの実装はアプリケーションが提供します。

nItemIndexDWORDin転送する項目一覧における項目のインデックスを含む整数値。
pPhotoAcquireItemIPhotoAcquireItem*inoptional転送対象の IPhotoAcquireItem オブジェクトへのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドが実装されていません。
vtbl 9 HRESULT DirectoryCreated(LPWSTR pszDirectory)

DirectoryCreated メソッドは、取得プロセス中に転送先ディレクトリが作成されたときに拡張機能を提供します。DirectoryCreated メソッドの実装はアプリケーションが提供します。

pszDirectoryLPWSTRinディレクトリを含む null 終端文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 10 HRESULT UpdateTransferPercent(BOOL fOverall, DWORD nPercent)

UpdateTransferPercent メソッドは、転送済み項目の割合が変化したときに拡張機能を提供します。UpdateTransferPercent メソッドの実装はアプリケーションが提供します。

fOverallBOOLinTRUE に設定されている場合、nPercent に含まれる値が個々の項目の進捗率ではなく、転送全体の進捗率であることを示すフラグ。
nPercentDWORDin転送済み項目の割合を含む整数値。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドが実装されていません。
vtbl 11 HRESULT EndItemTransfer(DWORD nItemIndex, IPhotoAcquireItem* pPhotoAcquireItem, HRESULT hr)

EndItemTransfer メソッドは、イメージソースからファイルが転送されるたびに拡張機能を提供します。EndItemTransfer メソッドの実装はアプリケーションが提供します。

nItemIndexDWORDin項目のインデックスを含む整数値。
pPhotoAcquireItemIPhotoAcquireItem*inoptional写真取得項目オブジェクトへのポインター。
hrHRESULTin転送操作の結果を指定します。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 12 HRESULT EndTransfer(HRESULT hr)

EndTransfer メソッドは、すべてのファイルの転送が完了したときに拡張機能を提供します。EndTransfer メソッドの実装はアプリケーションが提供します。

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

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 13 HRESULT StartDelete(IPhotoAcquireSource* pPhotoAcquireSource)

StartDelete メソッドは、デバイスからの項目の削除が開始されるときに拡張機能を提供します。

pPhotoAcquireSourceIPhotoAcquireSource*inoptional項目の削除元となる IPhotoAcquireSource へのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 14 HRESULT StartItemDelete(DWORD nItemIndex, IPhotoAcquireItem* pPhotoAcquireItem)

StartItemDelete メソッドは、デバイスからの個々の項目の削除が開始されるたびに拡張機能を提供します。StartItemDelete メソッドの実装はアプリケーションが提供します。

nItemIndexDWORDin削除する項目一覧における項目のインデックスを含む整数値。
pPhotoAcquireItemIPhotoAcquireItem*inoptional削除対象の IPhotoAcquireItem オブジェクトへのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドが実装されていません。
vtbl 15 HRESULT UpdateDeletePercent(DWORD nPercent)

UpdateDeletePercent メソッドは、削除済み項目の割合が変化したときに拡張機能を提供します。UpdateDeletePercent メソッドの実装はアプリケーションが提供します。

nPercentDWORDin削除済み項目の割合を含む整数値。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドが実装されていません。
vtbl 16 HRESULT EndItemDelete(DWORD nItemIndex, IPhotoAcquireItem* pPhotoAcquireItem, HRESULT hr)

EndItemDelete メソッドは、イメージソースからファイルが削除されるたびに拡張機能を提供します。EndItemDelete メソッドの実装はアプリケーションが提供します。

nItemIndexDWORDin項目のインデックスを含む整数値。
pPhotoAcquireItemIPhotoAcquireItem*inoptional削除された IPhotoAcquireItem オブジェクトへのポインター。
hrHRESULTin削除操作の結果を指定します。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
このメソッドはまだ実装されていません。
vtbl 17 HRESULT EndDelete(HRESULT hr)

EndDelete メソッドは、イメージソースからのファイルの削除が完了したときに拡張機能を提供します。EndDelete メソッドの実装はアプリケーションが提供します。

hrHRESULTin削除操作の結果を指定します。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 18 HRESULT EndSession(HRESULT hr)

EndSession メソッドは、取得セッションが完了したときに拡張機能を提供します。EndSession メソッドの実装はアプリケーションが提供します。

hrHRESULTin取得の結果を指定します。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 19 HRESULT GetDeleteAfterAcquire(BOOL* pfDeleteAfterAcquire)

GetDeleteAfterAcquire メソッドは、取得後に写真を削除すべきかどうかを示す値を返します。

pfDeleteAfterAcquireBOOL*outTRUE に設定されている場合に取得後に写真を削除すべきであることを示すフラグへのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。
vtbl 20 HRESULT ErrorAdvise(HRESULT hr, LPWSTR pszErrorMessage, ERROR_ADVISE_MESSAGE_TYPE nMessageType, ERROR_ADVISE_RESULT* pnErrorAdviseResult)

ErrorAdvise メソッドは、取得中に発生したエラーに対するカスタムのエラー処理を提供します。ErrorAdvise メソッドの実装はアプリケーションが提供します。

hrHRESULTin発生したエラーを指定します。
pszErrorMessageLPWSTRinエラーメッセージを含む null 終端文字列へのポインター。
nMessageTypeERROR_ADVISE_MESSAGE_TYPEin

メッセージの種類を含む整数値。次のいずれかになります。

説明
PHOTOACQUIRE_ERROR_SKIPRETRYCANCEL 発生したエラーが Skip、Retry、または Cancel の応答を必要とすることを指定します。pnErrorAdviseResult パラメーターには、次のいずれかを設定する必要があります: PHOTOACQUIRE_RESULT_SKIPPHOTOACQUIRE_RESULT_SKIP_ALLPHOTOACQUIRE_RESULT_RETRY、または PHOTOACQUIRE_RESULT_ABORT
PHOTOACQUIRE_ERROR_RETRYCANCEL 発生したエラーが Retry または Cancel の応答を必要とすることを指定します。pnErrorAdviseResult パラメーターには、次のいずれかを設定する必要があります: PHOTOACQUIRE_RESULT_RETRY または PHOTOACQUIRE_RESULT_ABORT
PHOTOACQUIRE_ERROR_YESNO 発生したエラーが Yes または No の応答を必要とすることを指定します。pnErrorAdviseResult パラメーターには、次のいずれかを設定する必要があります: PHOTOACQUIRE_RESULT_YES または PHOTOACQUIRE_RESULT_NO
PHOTOACQUIRE_ERROR_OK 発生したエラーが OK の応答を必要とすることを指定します。pnErrorAdviseResult パラメーターには PHOTOACQUIRE_RESULT_OK を設定する必要があります。
pnErrorAdviseResultERROR_ADVISE_RESULT*out

エラーアドバイス結果を含む整数値へのポインター。結果は、nMessageType パラメーターで示される許容される種類のいずれかであり、次のいずれかである必要があります:

説明
PHOTOACQUIRE_RESULT_YES Yes の応答を指定します。nMessageTypePHOTOACQUIRE_ERROR_YESNO の場合に有効です。
PHOTOACQUIRE_RESULT_NO No の応答を指定します。nMessageTypePHOTOACQUIRE_ERROR_YESNO の場合に有効です。
PHOTOACQUIRE_RESULT_OK OK の応答を指定します。nMessageTypePHOTOACQUIRE_ERROR_OK の場合に有効です。
PHOTOACQUIRE_RESULT_SKIP Skip の応答を指定します。nMessageTypePHOTOACQUIRE_ERROR_SKIPRETRYCANCEL の場合に有効です。
PHOTOACQUIRE_RESULT_SKIP_ALL Skip All の応答を指定します。nMessageTypePHOTOACQUIRE_ERROR_SKIPRETRYCANCEL の場合に有効です。
PHOTOACQUIRE_RESULT_RETRY Retry の応答を指定します。nMessageTypePHOTOACQUIRE_ERROR_SKIPRETRYCANCEL または PHOTOACQUIRE_ERROR_RETRYCANCEL の場合に有効です。
PHOTOACQUIRE_RESULT_ABORT Cancel の応答を指定します。nMessageTypePHOTOACQUIRE_ERROR_SKIPRETRYCANCEL または PHOTOACQUIRE_ERROR_RETRYCANCEL の場合に有効です。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
メソッドはまだ実装されていません。

解説(Remarks)

通常、イメージの取得中にエラーが発生するとメッセージが表示されます。このメッセージを抑制したい場合は、ErrorAdvise を実装します。

vtbl 21 HRESULT GetUserInput(GUID* riidType, IUnknown* pUnknown, PROPVARIANT* pPropVarResult, PROPVARIANT* pPropVarDefault)

GetUserInput メソッドは、取得中にユーザーへ文字列の入力を求めるメッセージを表示する既定の機能をオーバーライドします。GetUserInput メソッドの実装はアプリケーションが提供します。

riidTypeGUID*inプロンプトの種類のインターフェイス ID を指定します。指定できるのは IID_IUserInputString のみです。
pUnknownIUnknown*inoptionalプロンプトクラスのオブジェクトへのポインター。現在のところ、これは IUserInputString オブジェクトである必要があります。
pPropVarResultPROPVARIANT*out

取得する記述的な入力を表すプロパティバリアントオブジェクトへのポインター。呼び出し元が PropVariantClear を使用して解放する必要があります。

アプリケーションの GetUserInput の実装が E_NOTIMPL 以外の値を返す場合は、pPropVarDefault の値を pPropVarResult パラメーターにコピーする必要があります。

pPropVarDefaultPROPVARIANT*inoptional要求される入力の既定値を表すプロパティバリアントオブジェクトへのポインター。

戻り値

このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。

戻り値 説明
S_OK
メソッドが成功しました。
E_NOTIMPL
既定の機能を使用したい場合は E_NOTIMPL を返します。

解説(Remarks)

このメソッドを実装する場合、実装では pPropVarDefault 引数の値を pPropVarResult パラメーターにコピーする必要があります。

このメソッドが E_NOTIMPL 以外の HRESULT を返す場合、ユーザーへ入力を求める既定のダイアログボックスは表示されません。

IPhotoAcquire::Acquire で進捗ダイアログボックスが抑制されている場合、pPropVarResult パラメーターに既定値を割り当てるために、このメソッドを実装する必要があります。通常、pPropVarResult には既定のダイアログでユーザーに入力を求める過程で値が設定されますが、ダイアログが抑制されている場合は、アプリケーションが pPropVarDefault 引数の値を pPropVarResult パラメーターにコピーする必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IPhotoAcquireProgressCB "{00F2CE1E-935E-4248-892C-130F32C45CB4}"
#usecom global IPhotoAcquireProgressCB IID_IPhotoAcquireProgressCB "{}"
#comfunc global IPhotoAcquireProgressCB_Cancelled              3 var
#comfunc global IPhotoAcquireProgressCB_StartEnumeration       4 sptr
#comfunc global IPhotoAcquireProgressCB_FoundItem              5 sptr
#comfunc global IPhotoAcquireProgressCB_EndEnumeration         6 int
#comfunc global IPhotoAcquireProgressCB_StartTransfer          7 sptr
#comfunc global IPhotoAcquireProgressCB_StartItemTransfer      8 int,sptr
#comfunc global IPhotoAcquireProgressCB_DirectoryCreated       9 wstr
#comfunc global IPhotoAcquireProgressCB_UpdateTransferPercent  10 int,int
#comfunc global IPhotoAcquireProgressCB_EndItemTransfer        11 int,sptr,int
#comfunc global IPhotoAcquireProgressCB_EndTransfer            12 int
#comfunc global IPhotoAcquireProgressCB_StartDelete            13 sptr
#comfunc global IPhotoAcquireProgressCB_StartItemDelete        14 int,sptr
#comfunc global IPhotoAcquireProgressCB_UpdateDeletePercent    15 int
#comfunc global IPhotoAcquireProgressCB_EndItemDelete          16 int,sptr,int
#comfunc global IPhotoAcquireProgressCB_EndDelete              17 int
#comfunc global IPhotoAcquireProgressCB_EndSession             18 int
#comfunc global IPhotoAcquireProgressCB_GetDeleteAfterAcquire  19 var
#comfunc global IPhotoAcquireProgressCB_ErrorAdvise            20 int,wstr,int,var
#comfunc global IPhotoAcquireProgressCB_GetUserInput           21 var,sptr,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。