IPhotoAcquireProgressCB
COM公式ドキュメント
IPhotoAcquireProgressCB インターフェイスは、取得プロセスのさまざまな段階で追加の処理を行いたい場合に実装します。
メソッド 19
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Cancelled メソッドは、取得セッション中にキャンセルが発生したときに拡張機能を提供します。Cancelled メソッドの実装はアプリケーションが提供します。
| pfCancelled | BOOL* | out | TRUE に設定されている場合に操作がキャンセルされたことを示すフラグへのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドが実装されていません。 |
StartEnumeration メソッドは、取得する項目の列挙が開始されるときに拡張機能を提供します。
| pPhotoAcquireSource | IPhotoAcquireSource* | inoptional | 項目の列挙元となる IPhotoAcquireSource オブジェクトへのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドが実装されていません。 |
FoundItem メソッドは、デバイスからの項目の列挙中に項目が見つかるたびに拡張機能を提供します。
| pPhotoAcquireItem | IPhotoAcquireItem* | inoptional | 見つかった IPhotoAcquireItem オブジェクトへのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| この項目を取得対象のファイル一覧から除外します。 |
解説(Remarks)
項目を列挙結果から除外するには S_FALSE を返します。これにより、たとえばビデオやカメラの RAW ファイルを呼び出し元が除外できます。
EndEnumeration メソッドは、イメージソースからのファイルの列挙が完了したときに拡張機能を提供します。EndEnumeration メソッドの実装はアプリケーションが提供します。
| hr | HRESULT | in | 列挙操作の結果を指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
StartTransfer メソッドは、デバイスからの項目の転送が開始されるときに追加の処理を提供します。StartTransfer メソッドの実装はアプリケーションが提供します。
| pPhotoAcquireSource | IPhotoAcquireSource* | inoptional | 項目の取得元となる IPhotoAcquireSource へのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドが実装されていません。 |
解説(Remarks)
E_NOTIMPL 以外のエラーを示す HRESULT を返すと、取得が中止されます。
StartItemTransfer メソッドは、項目の転送が開始されるたびに拡張機能を提供します。StartItemTransfer メソッドの実装はアプリケーションが提供します。
| nItemIndex | DWORD | in | 転送する項目一覧における項目のインデックスを含む整数値。 |
| pPhotoAcquireItem | IPhotoAcquireItem* | inoptional | 転送対象の IPhotoAcquireItem オブジェクトへのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドが実装されていません。 |
DirectoryCreated メソッドは、取得プロセス中に転送先ディレクトリが作成されたときに拡張機能を提供します。DirectoryCreated メソッドの実装はアプリケーションが提供します。
| pszDirectory | LPWSTR | in | ディレクトリを含む null 終端文字列へのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
UpdateTransferPercent メソッドは、転送済み項目の割合が変化したときに拡張機能を提供します。UpdateTransferPercent メソッドの実装はアプリケーションが提供します。
| fOverall | BOOL | in | TRUE に設定されている場合、nPercent に含まれる値が個々の項目の進捗率ではなく、転送全体の進捗率であることを示すフラグ。 |
| nPercent | DWORD | in | 転送済み項目の割合を含む整数値。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドが実装されていません。 |
EndItemTransfer メソッドは、イメージソースからファイルが転送されるたびに拡張機能を提供します。EndItemTransfer メソッドの実装はアプリケーションが提供します。
| nItemIndex | DWORD | in | 項目のインデックスを含む整数値。 |
| pPhotoAcquireItem | IPhotoAcquireItem* | inoptional | 写真取得項目オブジェクトへのポインター。 |
| hr | HRESULT | in | 転送操作の結果を指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
EndTransfer メソッドは、すべてのファイルの転送が完了したときに拡張機能を提供します。EndTransfer メソッドの実装はアプリケーションが提供します。
| hr | HRESULT | in | 転送の結果を指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
StartDelete メソッドは、デバイスからの項目の削除が開始されるときに拡張機能を提供します。
| pPhotoAcquireSource | IPhotoAcquireSource* | inoptional | 項目の削除元となる IPhotoAcquireSource へのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
StartItemDelete メソッドは、デバイスからの個々の項目の削除が開始されるたびに拡張機能を提供します。StartItemDelete メソッドの実装はアプリケーションが提供します。
| nItemIndex | DWORD | in | 削除する項目一覧における項目のインデックスを含む整数値。 |
| pPhotoAcquireItem | IPhotoAcquireItem* | inoptional | 削除対象の IPhotoAcquireItem オブジェクトへのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドが実装されていません。 |
UpdateDeletePercent メソッドは、削除済み項目の割合が変化したときに拡張機能を提供します。UpdateDeletePercent メソッドの実装はアプリケーションが提供します。
| nPercent | DWORD | in | 削除済み項目の割合を含む整数値。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドが実装されていません。 |
EndItemDelete メソッドは、イメージソースからファイルが削除されるたびに拡張機能を提供します。EndItemDelete メソッドの実装はアプリケーションが提供します。
| nItemIndex | DWORD | in | 項目のインデックスを含む整数値。 |
| pPhotoAcquireItem | IPhotoAcquireItem* | inoptional | 削除された IPhotoAcquireItem オブジェクトへのポインター。 |
| hr | HRESULT | in | 削除操作の結果を指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| このメソッドはまだ実装されていません。 |
EndDelete メソッドは、イメージソースからのファイルの削除が完了したときに拡張機能を提供します。EndDelete メソッドの実装はアプリケーションが提供します。
| hr | HRESULT | in | 削除操作の結果を指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
EndSession メソッドは、取得セッションが完了したときに拡張機能を提供します。EndSession メソッドの実装はアプリケーションが提供します。
| hr | HRESULT | in | 取得の結果を指定します。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
GetDeleteAfterAcquire メソッドは、取得後に写真を削除すべきかどうかを示す値を返します。
| pfDeleteAfterAcquire | BOOL* | out | TRUE に設定されている場合に取得後に写真を削除すべきであることを示すフラグへのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
ErrorAdvise メソッドは、取得中に発生したエラーに対するカスタムのエラー処理を提供します。ErrorAdvise メソッドの実装はアプリケーションが提供します。
| hr | HRESULT | in | 発生したエラーを指定します。 | ||||||||||||||||
| pszErrorMessage | LPWSTR | in | エラーメッセージを含む null 終端文字列へのポインター。 | ||||||||||||||||
| nMessageType | ERROR_ADVISE_MESSAGE_TYPE | in | メッセージの種類を含む整数値。次のいずれかになります。
| ||||||||||||||||
| pnErrorAdviseResult | ERROR_ADVISE_RESULT* | out | エラーアドバイス結果を含む整数値へのポインター。結果は、nMessageType パラメーターで示される許容される種類のいずれかであり、次のいずれかである必要があります:
|
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| メソッドはまだ実装されていません。 |
解説(Remarks)
通常、イメージの取得中にエラーが発生するとメッセージが表示されます。このメッセージを抑制したい場合は、ErrorAdvise を実装します。
GetUserInput メソッドは、取得中にユーザーへ文字列の入力を求めるメッセージを表示する既定の機能をオーバーライドします。GetUserInput メソッドの実装はアプリケーションが提供します。
| riidType | GUID* | in | プロンプトの種類のインターフェイス ID を指定します。指定できるのは IID_IUserInputString のみです。 |
| pUnknown | IUnknown* | inoptional | プロンプトクラスのオブジェクトへのポインター。現在のところ、これは IUserInputString オブジェクトである必要があります。 |
| pPropVarResult | PROPVARIANT* | out | 取得する記述的な入力を表すプロパティバリアントオブジェクトへのポインター。呼び出し元が PropVariantClear を使用して解放する必要があります。 アプリケーションの |
| pPropVarDefault | PROPVARIANT* | inoptional | 要求される入力の既定値を表すプロパティバリアントオブジェクトへのポインター。 |
戻り値
このメソッドは HRESULT を返します。実装は以下の戻り値に限定されません。E_NOTIMPL 以外の失敗を示す HRESULT は致命的であり、転送が中止されます。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 既定の機能を使用したい場合は E_NOTIMPL を返します。 |
解説(Remarks)
このメソッドを実装する場合、実装では pPropVarDefault 引数の値を pPropVarResult パラメーターにコピーする必要があります。
このメソッドが E_NOTIMPL 以外の HRESULT を返す場合、ユーザーへ入力を求める既定のダイアログボックスは表示されません。
IPhotoAcquire::Acquire で進捗ダイアログボックスが抑制されている場合、pPropVarResult パラメーターに既定値を割り当てるために、このメソッドを実装する必要があります。通常、pPropVarResult には既定のダイアログでユーザーに入力を求める過程で値が設定されますが、ダイアログが抑制されている場合は、アプリケーションが pPropVarDefault 引数の値を pPropVarResult パラメーターにコピーする必要があります。
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 指定が可能。#define global IID_IPhotoAcquireProgressCB "{00F2CE1E-935E-4248-892C-130F32C45CB4}" #usecom global IPhotoAcquireProgressCB IID_IPhotoAcquireProgressCB "{}" #comfunc global IPhotoAcquireProgressCB_Cancelled 3 sptr #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 sptr #comfunc global IPhotoAcquireProgressCB_ErrorAdvise 20 int,wstr,int,sptr #comfunc global IPhotoAcquireProgressCB_GetUserInput 21 sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。