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

IPhotoAcquireSource

COM
IID00f2c703-8613-4282-a53b-6ec59c5883ac継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IPhotoAcquireSource インターフェースは、デバイスからアイテムを取得するために使用します。

メソッド 8

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

vtbl 3 HRESULT GetFriendlyName(LPWSTR* pbstrFriendlyName)

GetFriendlyName メソッドは、表示用に整形されたデバイスの名前を取得します。

pbstrFriendlyNameLPWSTR*outフレンドリ名を格納する文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
非 null が期待される箇所に null 値が渡されました。
vtbl 4 HRESULT GetDeviceIcons(DWORD nSize, HICON* phLargeIcon, HICON* phSmallIcon)

GetDeviceIcons メソッドは、デバイスを表すために使用されるアイコンを取得します。

nSizeDWORDin取得するアイコンのサイズを表す整数値。
phLargeIconHICON*inoutoptionalデバイスに使用される大きいアイコンを指定します。
phSmallIconHICON*inoutoptionalデバイスに使用される小さいアイコンを指定します。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
非 null が期待される箇所に null ポインターが渡されました。
vtbl 5 HRESULT InitializeItemList(BOOL fForceEnumeration, IPhotoAcquireProgressCB* pPhotoAcquireProgressCB, DWORD* pnItemCount)

InitializeItemList メソッドは、デバイス上の転送可能なアイテムを列挙し、省略可能な進行状況コールバックが指定されている場合は各アイテムをそのコールバックに渡します。

fForceEnumerationBOOLinTRUE に設定した場合、アイテムリストが既に初期化されていても列挙を繰り返すことを示すフラグです。FALSE に設定した場合、アイテムリストが既に初期化された後に InitializeItemList を繰り返し呼び出しても、アイテムを再度列挙しないことを示します。
pPhotoAcquireProgressCBIPhotoAcquireProgressCB*inoptional省略可能。IPhotoAcquireProgressCB オブジェクトへのポインター。
pnItemCountDWORD*inoutoptional見つかったアイテムの数を返します。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
NULL ポインターが期待されていました。

解説(Remarks)

先に InitializeItemList を呼び出さずに IPhotoAcquire::Acquire を呼び出した場合、アイテムリストの初期化は暗黙的に行われます。

アイテムリストが初めて初期化されるとき(IPhotoAcquire::Acquire を通じて暗黙的に、または InitializeItemList を呼び出して明示的に行われます)、各アイテムが列挙されます。列挙中に IPhotoAcquireProgressCB オブジェクトが InitializeItemList に渡されている場合、その StartEnumerationFoundItemEndEnumeration の実装を使用して、転送対象のアイテムリストにさらにフィルタリングや制御を適用できます。

vtbl 6 HRESULT GetItemCount(DWORD* pnItemCount)

GetItemCount メソッドは、InitializeItemList メソッドによって見つかったアイテムの数を取得します。

pnItemCountDWORD*outアイテム数を格納する整数値へのポインター。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
非 NULL ポインターが期待される箇所に NULL が渡されました。

解説(Remarks)

このメソッドを呼び出す前に、InitializeItemList を呼び出してアイテムリストを初期化してください。

vtbl 7 HRESULT GetItemAt(DWORD nIndex, IPhotoAcquireItem** ppPhotoAcquireItem)

GetItemAt メソッドは、アイテムリスト内の指定されたインデックスにある IPhotoAcquireItem オブジェクトを取得します。

nIndexDWORDinインデックスを表す整数値。
ppPhotoAcquireItemIPhotoAcquireItem**outIPhotoAcquireItem オブジェクトのアドレスへのポインター。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドを呼び出す前に、InitializeItemList を呼び出してアイテムリストを初期化してください。

vtbl 8 HRESULT GetPhotoAcquireSettings(IPhotoAcquireSettings** ppPhotoAcquireSettings)

GetPhotoAcquireSettings メソッドは、取得設定を操作するための IPhotoAcquireSettings オブジェクトを取得します。

ppPhotoAcquireSettingsIPhotoAcquireSettings**out写真取得設定オブジェクトのアドレスへのポインター。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
非 null が期待される箇所に null 値が渡されました。
vtbl 9 HRESULT GetDeviceId(LPWSTR* pbstrDeviceId)

GetDeviceId メソッドは、デバイスの識別子 (ID) を取得します。

pbstrDeviceIdLPWSTR*outデバイス ID を格納する文字列へのポインター。

戻り値

このメソッドは HRESULT を返します。取り得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 10 HRESULT BindToObject(GUID* riid, void** ppv)
riidGUID*inバインドして取得するインターフェイスのIID。
ppvvoid**out取得したインターフェイスポインタを受け取る出力先。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IPhotoAcquireSource "{00F2C703-8613-4282-A53B-6EC59C5883AC}"
#usecom global IPhotoAcquireSource IID_IPhotoAcquireSource "{}"
#comfunc global IPhotoAcquireSource_GetFriendlyName          3 var
#comfunc global IPhotoAcquireSource_GetDeviceIcons           4 int,sptr,sptr
#comfunc global IPhotoAcquireSource_InitializeItemList       5 int,sptr,var
#comfunc global IPhotoAcquireSource_GetItemCount             6 var
#comfunc global IPhotoAcquireSource_GetItemAt                7 int,sptr
#comfunc global IPhotoAcquireSource_GetPhotoAcquireSettings  8 sptr
#comfunc global IPhotoAcquireSource_GetDeviceId              9 var
#comfunc global IPhotoAcquireSource_BindToObject             10 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。