ホーム › Media.DirectShow.Tv › IStreamBufferRecordingAttribute
IStreamBufferRecordingAttribute
COMメソッド 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)
| ulReserved | DWORD | in | 予約済みパラメータ。0を指定する必要がある。 |
| pszAttributeName | LPWSTR | in | 設定する属性の名前を示すワイド文字列。NULLでベンダー拡張属性を指す場合がある。 |
| StreamBufferAttributeType | STREAMBUFFER_ATTR_DATATYPE | in | 属性値のデータ型を示すSTREAMBUFFER_ATTR_DATATYPE列挙値。 |
| pbAttribute | BYTE* | in | 設定する属性値のバイト列を指すバッファ。 |
| cbAttributeLength | WORD | in | 属性値バッファの長さをバイト単位で指定する。 |
| ulReserved | DWORD | in | 予約済みパラメータ。0を指定する必要がある。 |
| pcAttributes | WORD* | out | 格納されている属性の総数を受け取るWORDポインタ。 |
vtbl 5 HRESULT GetAttributeByName(LPWSTR pszAttributeName, DWORD* pulReserved, STREAMBUFFER_ATTR_DATATYPE* pStreamBufferAttributeType, BYTE* pbAttribute, WORD* pcbLength)
| pszAttributeName | LPWSTR | in | 取得対象の属性名を示すワイド文字列。 |
| pulReserved | DWORD* | in | 予約済み出力。0を受け取るDWORDポインタ。 |
| pStreamBufferAttributeType | STREAMBUFFER_ATTR_DATATYPE* | out | 属性値のデータ型を受け取るSTREAMBUFFER_ATTR_DATATYPEポインタ。 |
| pbAttribute | BYTE* | out | 属性値を受け取るバッファ。NULLで必要長のみ問い合わせ可。 |
| pcbLength | WORD* | inout | 入力時はバッファ長、出力時は実際の属性値長を受け渡すWORDポインタ。 |
vtbl 6 HRESULT GetAttributeByIndex(WORD wIndex, DWORD* pulReserved, LPWSTR pszAttributeName, WORD* pcchNameLength, STREAMBUFFER_ATTR_DATATYPE* pStreamBufferAttributeType, BYTE* pbAttribute, WORD* pcbLength)
| wIndex | WORD | in | 取得対象の属性の0起点インデックスを指定する。 |
| pulReserved | DWORD* | in | 予約済み出力。0を受け取るDWORDポインタ。 |
| pszAttributeName | LPWSTR | out | 属性名を受け取るワイド文字列バッファ。 |
| pcchNameLength | WORD* | inout | 入力時は名前バッファ長、出力時は実際の名前長を受け渡すWORDポインタ。 |
| pStreamBufferAttributeType | STREAMBUFFER_ATTR_DATATYPE* | out | 属性値のデータ型を受け取るSTREAMBUFFER_ATTR_DATATYPEポインタ。 |
| pbAttribute | BYTE* | out | 属性値を受け取るバッファ。 |
| pcbLength | WORD* | inout | 入力時は値バッファ長、出力時は実際の値長を受け渡すWORDポインタ。 |
vtbl 7 HRESULT EnumAttributes(IEnumStreamBufferRecordingAttrib** ppIEnumStreamBufferAttrib)
| ppIEnumStreamBufferAttrib | IEnumStreamBufferRecordingAttrib** | 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 指定が可能。#define global IID_IStreamBufferRecordingAttribute "{16CA4E03-FE69-4705-BD41-5B7DFC0C95F3}" #usecom global IStreamBufferRecordingAttribute IID_IStreamBufferRecordingAttribute "{}" #comfunc global IStreamBufferRecordingAttribute_SetAttribute 3 int,wstr,int,sptr,int #comfunc global IStreamBufferRecordingAttribute_GetAttributeCount 4 int,sptr #comfunc global IStreamBufferRecordingAttribute_GetAttributeByName 5 wstr,sptr,sptr,sptr,sptr #comfunc global IStreamBufferRecordingAttribute_GetAttributeByIndex 6 int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IStreamBufferRecordingAttribute_EnumAttributes 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。