Win32 API 日本語リファレンス
ホームWeb.InternetExplorer › IImageDecodeEventSink

IImageDecodeEventSink

COM
IIDbaa342a0-2ded-11d0-86f4-00a0c913f750継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT GetSurface(INT nWidth, INT nHeight, GUID* bfid, DWORD nPasses, DWORD dwHints, IUnknown** ppSurface)
nWidthINTin要求する描画サーフェスの幅をピクセル単位で指定する。
nHeightINTin要求する描画サーフェスの高さをピクセル単位で指定する。
bfidGUID*inサーフェスのピクセル形式を識別する GUID を指定する。
nPassesDWORDin画像のデコードに要するパス数を指定する。
dwHintsDWORDinデコードに関するヒントフラグを指定する。
ppSurfaceIUnknown**out割り当てられた描画サーフェスオブジェクトを受け取る。
vtbl 4 HRESULT OnBeginDecode(DWORD* pdwEvents, DWORD* pnFormats, GUID** ppFormats)
pdwEventsDWORD*outシンクが受け取りたいイベントを示すフラグを受け取る。
pnFormatsDWORD*out対応するピクセル形式の数を受け取る。
ppFormatsGUID**out対応するピクセル形式を表す GUID 配列を受け取る。
vtbl 5 HRESULT OnBitsComplete()
vtbl 6 HRESULT OnDecodeComplete(HRESULT hrStatus)
hrStatusHRESULTinデコード完了の状態を示す HRESULT を指定する。成功時は S_OK が渡される。
vtbl 7 HRESULT OnPalette()
vtbl 8 HRESULT OnProgress(RECT* pBounds, BOOL bComplete)
pBoundsRECT*in今回更新された領域を示す矩形へのポインタである。
bCompleteBOOLinこの更新でデコードが完了したかどうかを示す。

HSP用 COM定義

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

出力引数:
#define global IID_IImageDecodeEventSink "{BAA342A0-2DED-11D0-86F4-00A0C913F750}"
#usecom global IImageDecodeEventSink IID_IImageDecodeEventSink "{}"
#comfunc global IImageDecodeEventSink_GetSurface        3 int,int,var,int,int,sptr
#comfunc global IImageDecodeEventSink_OnBeginDecode     4 var,var,var
#comfunc global IImageDecodeEventSink_OnBitsComplete    5
#comfunc global IImageDecodeEventSink_OnDecodeComplete  6 int
#comfunc global IImageDecodeEventSink_OnPalette         7
#comfunc global IImageDecodeEventSink_OnProgress        8 var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。