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

IWMImageInfo

COM
IID9f0aa3b6-7267-4d89-88f2-ba915aa5c4c6継承元IUnknown自前メソッド開始 vtbl3

メソッド 2

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

vtbl 3 HRESULT GetImageCount(DWORD* pcImages)
pcImagesDWORD*outコンテンツに埋め込まれた画像の総数を受け取る出力ポインタ。
vtbl 4 HRESULT GetImage(DWORD wIndex, WORD* pcchMIMEType, LPWSTR pwszMIMEType, WORD* pcchDescription, LPWSTR pwszDescription, WORD* pImageType, DWORD* pcbImageData, BYTE* pbImageData)
wIndexDWORDin取得する画像のゼロ起点インデックス。
pcchMIMETypeWORD*inoutMIMEタイプ文字列のバッファ長を入出力するポインタ。NULL指定で必要長を取得。
pwszMIMETypeLPWSTRout画像のMIMEタイプ文字列を受け取るバッファ。NULL可。
pcchDescriptionWORD*inout説明文字列のバッファ長を入出力するポインタ。NULL指定で必要長を取得。
pwszDescriptionLPWSTRout画像の説明文字列を受け取るバッファ。NULL可。
pImageTypeWORD*out画像の種別(カバーアートなど)を受け取る出力ポインタ。
pcbImageDataDWORD*inout画像データのバイト数を入出力するポインタ。NULL指定で必要長を取得。
pbImageDataBYTE*out画像のバイナリデータを受け取るバッファ。NULL可。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWMImageInfo "{9F0AA3B6-7267-4D89-88F2-BA915AA5C4C6}"
#usecom global IWMImageInfo IID_IWMImageInfo "{}"
#comfunc global IWMImageInfo_GetImageCount  3 var
#comfunc global IWMImageInfo_GetImage       4 int,var,var,var,var,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。