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

INSSBuffer

COM
IIDe1cd3524-03d7-11d2-9eed-006097d2d7cf継承元IUnknown自前メソッド開始 vtbl3

メソッド 5

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

vtbl 3 HRESULT GetLength(DWORD* pdwLength)
pdwLengthDWORD*outバッファに格納されている有効データの長さ(バイト数)を受け取る出力先。
vtbl 4 HRESULT SetLength(DWORD dwLength)
dwLengthDWORDinバッファの有効データ長として設定するバイト数。最大長以下である必要がある。
vtbl 5 HRESULT GetMaxLength(DWORD* pdwLength)
pdwLengthDWORD*outバッファが格納可能な最大長(バイト数)を受け取る出力先。
vtbl 6 HRESULT GetBuffer(BYTE** ppdwBuffer)
ppdwBufferBYTE**outバッファ先頭のメモリへのポインタを受け取る出力先(BYTE**)。
vtbl 7 HRESULT GetBufferAndLength(BYTE** ppdwBuffer, DWORD* pdwLength)
ppdwBufferBYTE**outバッファ先頭のメモリへのポインタを受け取る出力先(BYTE**)。
pdwLengthDWORD*outバッファの有効データ長(バイト数)を受け取る出力先。

HSP用 COM定義

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

出力引数:
#define global IID_INSSBuffer "{E1CD3524-03D7-11D2-9EED-006097D2D7CF}"
#usecom global INSSBuffer IID_INSSBuffer "{}"
#comfunc global INSSBuffer_GetLength           3 var
#comfunc global INSSBuffer_SetLength           4 int
#comfunc global INSSBuffer_GetMaxLength        5 var
#comfunc global INSSBuffer_GetBuffer           6 var
#comfunc global INSSBuffer_GetBufferAndLength  7 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。