Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IStreamBufferRecordingAttribute

IStreamBufferRecordingAttribute

COM
IID16ca4e03-fe69-4705-bd41-5b7dfc0c95f3継承元IUnknown自前メソッド開始 vtbl3

メソッド 5

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

vtbl 3 HRESULT SetAttribute(DWORD ulReserved, LPWSTR pszAttributeName, STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType, BYTE* pbAttribute, WORD cbAttributeLength)
ulReservedDWORDin予約済みパラメータ。0を指定する必要がある。
pszAttributeNameLPWSTRin設定する属性の名前を示すワイド文字列。NULLでベンダー拡張属性を指す場合がある。
StreamBufferAttributeTypeSTREAMBUFFER_ATTR_DATATYPEin属性値のデータ型を示すSTREAMBUFFER_ATTR_DATATYPE列挙値。
pbAttributeBYTE*in設定する属性値のバイト列を指すバッファ。
cbAttributeLengthWORDin属性値バッファの長さをバイト単位で指定する。
vtbl 4 HRESULT GetAttributeCount(DWORD ulReserved, WORD* pcAttributes)
ulReservedDWORDin予約済みパラメータ。0を指定する必要がある。
pcAttributesWORD*out格納されている属性の総数を受け取るWORDポインタ。
vtbl 5 HRESULT GetAttributeByName(LPWSTR pszAttributeName, DWORD* pulReserved, STREAMBUFFER_ATTR_DATATYPE* pStreamBufferAttributeType, BYTE* pbAttribute, WORD* pcbLength)
pszAttributeNameLPWSTRin取得対象の属性名を示すワイド文字列。
pulReservedDWORD*in予約済み出力。0を受け取るDWORDポインタ。
pStreamBufferAttributeTypeSTREAMBUFFER_ATTR_DATATYPE*out属性値のデータ型を受け取るSTREAMBUFFER_ATTR_DATATYPEポインタ。
pbAttributeBYTE*out属性値を受け取るバッファ。NULLで必要長のみ問い合わせ可。
pcbLengthWORD*inout入力時はバッファ長、出力時は実際の属性値長を受け渡すWORDポインタ。
vtbl 6 HRESULT GetAttributeByIndex(WORD wIndex, DWORD* pulReserved, LPWSTR pszAttributeName, WORD* pcchNameLength, STREAMBUFFER_ATTR_DATATYPE* pStreamBufferAttributeType, BYTE* pbAttribute, WORD* pcbLength)
wIndexWORDin取得対象の属性の0起点インデックスを指定する。
pulReservedDWORD*in予約済み出力。0を受け取るDWORDポインタ。
pszAttributeNameLPWSTRout属性名を受け取るワイド文字列バッファ。
pcchNameLengthWORD*inout入力時は名前バッファ長、出力時は実際の名前長を受け渡すWORDポインタ。
pStreamBufferAttributeTypeSTREAMBUFFER_ATTR_DATATYPE*out属性値のデータ型を受け取るSTREAMBUFFER_ATTR_DATATYPEポインタ。
pbAttributeBYTE*out属性値を受け取るバッファ。
pcbLengthWORD*inout入力時は値バッファ長、出力時は実際の値長を受け渡すWORDポインタ。
vtbl 7 HRESULT EnumAttributes(IEnumStreamBufferRecordingAttrib** ppIEnumStreamBufferAttrib)
ppIEnumStreamBufferAttribIEnumStreamBufferRecordingAttrib**out属性を列挙する列挙子IEnumStreamBufferRecordingAttribを受け取るポインタ。

HSP用 COM定義

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

出力引数:
#define global IID_IStreamBufferRecordingAttribute "{16CA4E03-FE69-4705-BD41-5B7DFC0C95F3}"
#usecom global IStreamBufferRecordingAttribute IID_IStreamBufferRecordingAttribute "{}"
#comfunc global IStreamBufferRecordingAttribute_SetAttribute         3 int,wstr,int,var,int
#comfunc global IStreamBufferRecordingAttribute_GetAttributeCount    4 int,var
#comfunc global IStreamBufferRecordingAttribute_GetAttributeByName   5 wstr,var,var,var,var
#comfunc global IStreamBufferRecordingAttribute_GetAttributeByIndex  6 int,var,var,var,var,var,var
#comfunc global IStreamBufferRecordingAttribute_EnumAttributes       7 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。