ホーム › Media.WindowsMediaFormat › IWMHeaderInfo
IWMHeaderInfo
COMメソッド 12
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| wStreamNum | WORD | in | 属性数を数える対象ストリーム番号。0でファイル全体。 |
| pcAttributes | WORD* | out | 属性の総数を受け取る出力先。WORDポインタ。 |
vtbl 4 HRESULT GetAttributeByIndex(WORD wIndex, WORD* pwStreamNum, LPWSTR pwszName, WORD* pcchNameLen, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)
| wIndex | WORD | in | 取得対象属性の0起点インデックス。 |
| pwStreamNum | WORD* | inout | 属性が属するストリーム番号を受け取る出力先。 |
| pwszName | LPWSTR | out | 属性名を受け取る文字列バッファ。NULLで長さ問い合わせ。 |
| pcchNameLen | WORD* | inout | 入力で名前バッファ確保文字数、出力で必要文字数を示すポインタ。 |
| pType | WMT_ATTR_DATATYPE* | out | 属性値の型WMT_ATTR_DATATYPEを受け取る出力先。 |
| pValue | BYTE* | out | 属性値を受け取るバイトバッファ。NULLでサイズ問い合わせ。 |
| pcbLength | WORD* | inout | 入力で確保バイト数、出力で実バイト数を示すWORDポインタ。 |
vtbl 5 HRESULT GetAttributeByName(WORD* pwStreamNum, LPWSTR pszName, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)
| pwStreamNum | WORD* | inout | 属性を検索するストリーム番号の入出力先。0でファイル全体。 |
| pszName | LPWSTR | in | 取得対象の属性名を指す広域文字列。 |
| pType | WMT_ATTR_DATATYPE* | out | 属性値の型WMT_ATTR_DATATYPEを受け取る出力先。 |
| pValue | BYTE* | out | 属性値を受け取るバイトバッファ。NULLでサイズ問い合わせ。 |
| pcbLength | WORD* | inout | 入力で確保バイト数、出力で実バイト数を示すWORDポインタ。 |
vtbl 6 HRESULT SetAttribute(WORD wStreamNum, LPWSTR pszName, WMT_ATTR_DATATYPE Type, BYTE* pValue, WORD cbLength)
| wStreamNum | WORD | in | 属性を設定する対象ストリーム番号。0でファイル全体。 |
| pszName | LPWSTR | in | 設定する属性名を指す広域文字列。 |
| Type | WMT_ATTR_DATATYPE | in | 属性値の型を示すWMT_ATTR_DATATYPE列挙値。 |
| pValue | BYTE* | in | 設定する属性値が格納されたバイトバッファへのポインタ。 |
| cbLength | WORD | in | 属性値のバイト長を指定する。 |
| pcMarkers | WORD* | out | ファイル内のマーカー総数を受け取る出力先。WORDポインタ。 |
vtbl 8 HRESULT GetMarker(WORD wIndex, LPWSTR pwszMarkerName, WORD* pcchMarkerNameLen, ULONGLONG* pcnsMarkerTime)
| wIndex | WORD | in | 取得対象マーカーの0起点インデックス。 |
| pwszMarkerName | LPWSTR | out | マーカー名を受け取る文字列バッファ。NULLで長さ問い合わせ。 |
| pcchMarkerNameLen | WORD* | inout | 入力で確保文字数、出力で必要文字数を示すWORDポインタ。 |
| pcnsMarkerTime | ULONGLONG* | out | マーカー時刻を100ナノ秒単位で受け取る出力先。 |
| pwszMarkerName | LPWSTR | in | 追加するマーカーの名前を指す広域文字列。 |
| cnsMarkerTime | ULONGLONG | in | マーカーを置く時刻を100ナノ秒単位で指定する。 |
| wIndex | WORD | in | 削除対象マーカーの0起点インデックス。 |
| pcScripts | WORD* | out | ファイル内のスクリプトコマンド総数を受け取る出力先。WORDポインタ。 |
vtbl 12 HRESULT GetScript(WORD wIndex, LPWSTR pwszType, WORD* pcchTypeLen, LPWSTR pwszCommand, WORD* pcchCommandLen, ULONGLONG* pcnsScriptTime)
| wIndex | WORD | in | 取得対象スクリプトの0起点インデックス。 |
| pwszType | LPWSTR | out | スクリプトの種別文字列を受け取るバッファ。NULLで長さ問い合わせ。 |
| pcchTypeLen | WORD* | inout | 入力で種別バッファ確保文字数、出力で必要文字数を示すポインタ。 |
| pwszCommand | LPWSTR | out | スクリプトのコマンド文字列を受け取るバッファ。NULLで長さ問い合わせ。 |
| pcchCommandLen | WORD* | inout | 入力でコマンドバッファ確保文字数、出力で必要文字数を示すポインタ。 |
| pcnsScriptTime | ULONGLONG* | out | スクリプト実行時刻を100ナノ秒単位で受け取る出力先。 |
| pwszType | LPWSTR | in | 追加するスクリプトの種別を指す広域文字列。 |
| pwszCommand | LPWSTR | in | 追加するスクリプトのコマンド本体を指す広域文字列。 |
| cnsScriptTime | ULONGLONG | in | スクリプトを実行する時刻を100ナノ秒単位で指定する。 |
| wIndex | WORD | in | 削除対象スクリプトの0起点インデックス。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWMHeaderInfo "{96406BDA-2B2B-11D3-B36B-00C04F6108FF}" #usecom global IWMHeaderInfo IID_IWMHeaderInfo "{}" #comfunc global IWMHeaderInfo_GetAttributeCount 3 int,var #comfunc global IWMHeaderInfo_GetAttributeByIndex 4 int,var,var,var,var,var,var #comfunc global IWMHeaderInfo_GetAttributeByName 5 var,wstr,var,var,var #comfunc global IWMHeaderInfo_SetAttribute 6 int,wstr,int,var,int #comfunc global IWMHeaderInfo_GetMarkerCount 7 var #comfunc global IWMHeaderInfo_GetMarker 8 int,var,var,var #comfunc global IWMHeaderInfo_AddMarker 9 wstr,int64 #comfunc global IWMHeaderInfo_RemoveMarker 10 int #comfunc global IWMHeaderInfo_GetScriptCount 11 var #comfunc global IWMHeaderInfo_GetScript 12 int,var,var,var,var,var #comfunc global IWMHeaderInfo_AddScript 13 wstr,wstr,int64 #comfunc global IWMHeaderInfo_RemoveScript 14 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWMHeaderInfo "{96406BDA-2B2B-11D3-B36B-00C04F6108FF}" #usecom global IWMHeaderInfo IID_IWMHeaderInfo "{}" #comfunc global IWMHeaderInfo_GetAttributeCount 3 int,sptr #comfunc global IWMHeaderInfo_GetAttributeByIndex 4 int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IWMHeaderInfo_GetAttributeByName 5 sptr,wstr,sptr,sptr,sptr #comfunc global IWMHeaderInfo_SetAttribute 6 int,wstr,int,sptr,int #comfunc global IWMHeaderInfo_GetMarkerCount 7 sptr #comfunc global IWMHeaderInfo_GetMarker 8 int,sptr,sptr,sptr #comfunc global IWMHeaderInfo_AddMarker 9 wstr,int64 #comfunc global IWMHeaderInfo_RemoveMarker 10 int #comfunc global IWMHeaderInfo_GetScriptCount 11 sptr #comfunc global IWMHeaderInfo_GetScript 12 int,sptr,sptr,sptr,sptr,sptr #comfunc global IWMHeaderInfo_AddScript 13 wstr,wstr,int64 #comfunc global IWMHeaderInfo_RemoveScript 14 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。