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

IPhotoAcquire

COM
IID00f23353-e31b-4955-a8ad-ca5ebf31e2ce継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IPhotoAcquire インターフェイスは、デバイスから写真を取得するためのメソッドを提供します。

メソッド 3

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

vtbl 3 HRESULT CreatePhotoSource(LPWSTR pszDevice, IPhotoAcquireSource** ppPhotoAcquireSource)

CreatePhotoSource メソッドは、IPhotoAcquire::Acquire に渡すための IPhotoAcquireSource オブジェクトを初期化します。

pszDeviceLPWSTRinデバイス名を格納した、null で終わる文字列へのポインター。
ppPhotoAcquireSourceIPhotoAcquireSource**out写真の取得元となる、初期化された写真ソースを返します。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
NULL 以外のポインターが必要でした。

解説(Remarks)

作成された IPhotoAcquireSource オブジェクトは、Acquire メソッドのパラメーターとして使用されます。

CreatePhotoSource でエラーが発生した場合、ppPhotoAcquireSourceNULL に初期化されます。

vtbl 4 HRESULT Acquire(IPhotoAcquireSource* pPhotoAcquireSource, BOOL fShowProgress, HWND hWndParent, LPWSTR pszApplicationName, IPhotoAcquireProgressCB* pPhotoAcquireProgressCB)

Acquire メソッドは、デバイスから写真を取得します。

pPhotoAcquireSourceIPhotoAcquireSource*inoptional写真の取得元となるデバイスを表す IPhotoAcquireSource オブジェクトへのポインター。このオブジェクトは CreatePhotoSource を呼び出して初期化します。
fShowProgressBOOLinTRUE に設定すると、進行状況ダイアログを表示することを示すフラグ。
hWndParentHWNDinoptional親ウィンドウのハンドル。
pszApplicationNameLPWSTRinoptionalアプリケーション名を格納した、null で終わる文字列へのポインター。
pPhotoAcquireProgressCBIPhotoAcquireProgressCB*inoptional省略可能な IPhotoAcquireProgressCB オブジェクトへのポインター。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
NULL 以外のポインターが必要でした。

解説(Remarks)

Acquire に渡す pPhotoAcquireSource パラメーターを初期化するには、Acquire を呼び出す前に CreatePhotoSource を呼び出す必要があります。

pPhotoAcquireProgressCB は、項目の取得中にさらにフィルタリングや制御を適用できるコールバックメソッドを提供します。

取得前にデバイスに項目が存在することを確認する、またはデバイスから項目を選択的に取得するには、Acquire を呼び出す前に IPhotoAcquireSource::InitializeItemList を呼び出して項目を列挙します。

vtbl 5 HRESULT EnumResults(IEnumString** ppEnumFilePaths)

EnumResults メソッドは、直近の Acquire 呼び出しで正常に転送されたすべてのファイルのパスを含む列挙を取得します。

ppEnumFilePathsIEnumString**out転送されたすべてのファイルへのパスを含む列挙を返します。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
NULL 以外のポインターが必要でした。

解説(Remarks)

ファイルが 1 つも転送されないうちにファイル転送が中止された場合、ppEnumFilePathsNULL に設定されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IPhotoAcquire "{00F23353-E31B-4955-A8AD-CA5EBF31E2CE}"
#usecom global IPhotoAcquire IID_IPhotoAcquire "{00F26E02-E9F2-4A9F-9FDD-5A962FB26A98}"
#comfunc global IPhotoAcquire_CreatePhotoSource  3 wstr,sptr
#comfunc global IPhotoAcquire_Acquire            4 sptr,int,sptr,wstr,sptr
#comfunc global IPhotoAcquire_EnumResults        5 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。