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

IWMHeaderInfo

COM
IID96406bda-2b2b-11d3-b36b-00c04f6108ff継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IWMHeaderInfo インターフェイスは、ASF ファイルのヘッダーセクション内の情報を設定および取得します。

解説(Remarks)

IWMHeaderInfo インターフェイスは 4 つの異なるオブジェクトから利用できますが、すべてのケースですべての機能が利用できるわけではありません。次の表に、各オブジェクトにおける実装の違いをまとめます。

オブジェクト 説明
メタデータエディター すべての機能が実装されています。
ライター ヘッダー項目を変更するすべてのメソッド(名前が Add、Set、または Remove で始まるもの)は、IWMWriter::BeginWriting メソッドが呼び出される前にのみサポートされます。すべてのマーカー関連メソッドは E_NOTIMPL を返します。
リーダーおよび同期リーダー ヘッダー項目を変更するすべてのメソッド(名前が Add、Set、または Remove で始まるもの)は E_NOTIMPL を返します。

メタデータ編集にライターを使用する方法については、To Edit Metadata with the Writer を参照してください。

メソッド 12

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

vtbl 3 HRESULT GetAttributeCount(WORD wStreamNum, WORD* pcAttributes)

GetAttributeCount メソッドは、ASF ファイルのヘッダーセクションに定義されている属性の数を返します。このメソッドは IWMHeaderInfo3::GetAttributeCountEx および IWMHeaderInfo3::GetAttributeIndices に置き換えられており、今後は使用しないでください。

wStreamNumWORDinストリーム番号を格納する WORD です。ファイルレベルの属性の場合はゼロを渡します。
pcAttributesWORD*out属性の数へのポインターです。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
NS_E_INVALID_REQUEST
オブジェクトが構成可能な状態ではないか、プロファイルが設定されていません。
E_INVALIDARG
wStreamNum が有効なストリーム番号ではないか、pcAttributesNULL です。
E_POINTER
pcAttributes が有効なポインターではありません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。

解説(Remarks)

MP3 ファイル内の属性は、特定のストリームに固有のものにすることはできません。MP3 ファイルの場合、ストリーム番号は常にゼロに設定してください。

vtbl 4 HRESULT GetAttributeByIndex(WORD wIndex, WORD* pwStreamNum, LPWSTR pwszName, WORD* pcchNameLen, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)

GetAttributeByIndex メソッドは、ASF ファイルのヘッダーセクションに格納されている記述的な属性を返します。このメソッドは IWMHeaderInfo3::GetAttributeByIndexEx に置き換えられており、使用しないでください。

wIndexWORDinインデックスを格納する WORD です。
pwStreamNumWORD*inoutストリーム番号を格納する WORD へのポインターです。このパラメーターはポインターですが、メソッドが値を変更することはありません。ファイルレベルの属性の場合は、ストリーム番号にゼロを使用します。
pwszNameLPWSTRout名前を格納するワイド文字の null 終端文字列へのポインターです。名前に必要な長さを取得するには、このパラメーターに NULL を渡します。属性名は 1024 ワイド文字までに制限されます。
pcchNameLenWORD*inout入力時は、pwszName 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数に終端の null 文字を含む名前の実際の長さが格納されます。
pTypeWMT_ATTR_DATATYPE*outWMT_ATTR_DATATYPE 列挙型のいずれかの値を格納する変数へのポインターです。
pValueBYTE*out値を格納するバイト配列へのポインターです。値に必要な長さを取得するには、このパラメーターに NULL を渡します。
pcbLengthWORD*inout入力時は、pValue 配列の長さをバイト単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数にメソッドが pValue へ書き込んだ実際のバイト数が格納されます。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
NS_E_INVALID_STATE
オブジェクトが有効な状態ではないか、プロファイルが設定されていません。
E_INVALIDARG
pwStreamNum が有効なストリーム番号を指していないか、データ型が指定されていません。
E_POINTER
パラメーターに指定されたポインターが有効ではありませんでした。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。
ASF_E_BUFFERTOOSMALL
pValue 配列が小さすぎて属性値を格納できません。
ASF_E_NOTFOUND
wIndex の位置に属性がありません。

解説(Remarks)

取得したい属性ごとに、GetAttributeByIndex を 2 回呼び出す必要があります。最初の呼び出しでは、pwszNamepValueNULL を渡します。戻り時には、pcchNameLen が指す値に、終端の null 文字を含む属性名を保持するために必要なワイド文字数が設定され、pcbLength が指す値に、属性値を保持するために必要なバイト数が設定されます。その後、適切なサイズのバッファーを作成して pwszNamepValue を受け取り、2 回目の呼び出しでそれらへのポインターを渡します。

MP3 ファイル内の属性は、ストリーム固有のものにすることはできません。このメソッドを MP3 ファイルで使用する場合は、ストリーム番号にゼロを使用する必要があります。

定義済みのすべての属性の一覧については、Attributes を参照してください。

Windows Media Format SDK のオブジェクトは、サポートされている一部のメタデータ属性に対して型チェックを行いますが、すべての属性に対して行うわけではありません。使用する属性は、このドキュメントの Attributes セクションで指定されたデータ型を使用して設定してください。同様に、別のアプリケーションによって設定された属性が正しいデータ型を使用していると想定することはできません。

vtbl 5 HRESULT GetAttributeByName(WORD* pwStreamNum, LPWSTR pszName, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)

GetAttributeByName メソッドは、ASF ファイルのヘッダーセクションに格納されている記述的な属性を返します。

pwStreamNumWORD*inoutストリーム番号を格納する WORD へのポインターです。任意のストリームを指定する場合はゼロを渡します。このパラメーターはポインターですが、メソッドが値を変更することはありません。
pszNameLPWSTRin属性の名前を格納する null 終端文字列へのポインターです。属性名は 1024 ワイド文字までに制限されます。
pTypeWMT_ATTR_DATATYPE*outWMT_ATTR_DATATYPE 列挙型の値を受け取る変数へのポインターです。返される値は属性のデータ型を示します。
pValueBYTE*out属性の値を受け取るバイト配列へのポインターです。配列は呼び出し側が割り当てる必要があります。必要な配列サイズを判断するには、このパラメーターを NULL に設定し、pcbLength パラメーターで返される値を確認します。
pcbLengthWORD*inout入力時は、pValue 配列の長さをバイト単位で指定します。出力時は、メソッドが成功した場合、pValue に書き込まれた実際のバイト数が格納されます。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
ASF_E_NOTFOUND
指定された属性はこのファイルに定義されていません。
E_INVALIDARG
pwStreamNum が有効なストリーム番号ではないか、pszName がワイド文字列を指していないか、別のパラメーターが有効な値を含んでいません。
E_POINTER
パラメーターが有効なポインターではありません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではないか、プロファイルが設定されていません。

解説(Remarks)

通常、アプリケーションは取得する属性ごとにこのメソッドを 2 回呼び出す必要があります。最初の呼び出しでは、pValue パラメーターを NULL に設定します。pcbLength パラメーターは、属性値を保持するために必要なバッファーサイズを受け取ります。次に、十分なサイズのバイト配列を割り当て、その配列のアドレスを pType パラメーターに渡してメソッドを再度呼び出します。メソッドはバッファーに属性の値を格納します。バッファーは、pType で返された値が示すデータ型に変換してください。

ファイルに指定された属性が含まれていない場合、メソッドは ASF_E_NOTFOUND を返すことがあります。また、メソッドが成功しても、pcbLength に値ゼロを返す場合があります。

Windows Media Format SDK のオブジェクトは、サポートされている一部のメタデータ属性に対して型チェックを行いますが、すべての属性に対して行うわけではありません。使用する属性は、このドキュメントの Attributes セクションで指定されたデータ型を使用して設定してください。同様に、別のアプリケーションによって設定された属性が正しいデータ型を使用していると想定することはできません。

MP3 ファイル内の属性は、特定のストリームに固有のものにすることはできません。MP3 ファイルの場合、ストリーム番号は常にゼロに設定してください。

定義済みのすべての属性の一覧については、Attributes を参照してください。

次のサンプルコードは、"Title" 属性を取得する方法を示します。


HRESULT hr;
IWMHeaderInfo *pInfo;
WORD wStreamNum = 0;
WMT_ATTR_DATATYPE Type;
WORD cbLength;
//
// First, retrieve the length of the string, and allocate memory.
//
hr = pInfo->GetAttributeByName( &wStreamNum, L"Title", 
                                &Type, NULL, &cbLength );
if( FAILED( hr ) )
{
    return( hr );
}
WCHAR *pwszTitle = (WCHAR *) new BYTE[ cbLength ];
if( !pwszTitle )
{
    return( E_OUTOFMEMORY );
}
//
// Now, retrieve the string itself.
//
hr = pInfo->GetAttributeByName( &wStreamNum, L"Title", &Type, 
                                (BYTE *) pwszTitle, &cbLength );
if( FAILED( hr ) )
{
    return( hr );
}
vtbl 6 HRESULT SetAttribute(WORD wStreamNum, LPWSTR pszName, WMT_ATTR_DATATYPE Type, BYTE* pValue, WORD cbLength)

SetAttribute メソッドは、ASF ファイルのヘッダーセクションに格納される記述的な属性を設定します。このメソッドは IWMHeaderInfo3::AddAttribute に置き換えられており、使用しないでください。

wStreamNumWORDinストリーム番号を格納する WORD です。ファイルレベルの属性を設定するには、ゼロを渡します。
pszNameLPWSTRin属性の名前を格納するワイド文字の null 終端文字列へのポインターです。属性名は 1024 ワイド文字までに制限されます。
TypeWMT_ATTR_DATATYPEinWMT_ATTR_DATATYPE 列挙型の値です。
pValueBYTE*in属性の値を格納するバイト配列へのポインターです。
cbLengthWORDinpValue のサイズ(バイト単位)です。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
パラメーターに有効な値が含まれていません。
E_NOTIMPL
実装されていません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではないか、プロファイルが設定されていません。

解説(Remarks)

定義済みの属性の一覧については、Attributes セクションを参照してください。定義済みの属性の場合、Type パラメーターはその属性に定義されたデータ型と一致している必要があります。カスタム属性の場合、WMT_TYPE_GUID を除く任意の型を指定できますが、バッファーサイズ(cbLength で指定)は型と一致している必要があります。詳細については、WMT_ATTR_DATATYPE を参照してください。

IWMHeaderInfo インターフェイスは WMT_TYPE_GUID データ型をサポートしません。このデータ型を使用するには、IWMHeaderInfo3 インターフェイスのメソッドを使用する必要があります。

MP3 ファイル内の属性は、特定のストリームに固有のものにすることはできません。MP3 ファイルの場合、ストリーム番号は常にゼロに設定してください。MP3 ファイルの属性を設定する場合、メタデータエディターは Unicode 仕様に従ってバイトオーダーマークを自動的に挿入します。バイトオーダーマークを手動で挿入した場合でも、このメソッドは失敗しませんが、値にマークが 2 つ含まれることになり、属性の読み取り時に問題が発生する可能性があります。

このメソッドは、64 キロバイトを超える値を持つ属性をサポートしません。大きな属性をファイルに含めるには、IWMHeaderInfo3 インターフェイスのメソッドを使用してください。

ライターオブジェクトは、IWMWriter::BeginWriting メソッドが呼び出される前にのみこのメソッドをサポートします。リーダーおよび同期リーダーのオブジェクトはこのメソッドをサポートしません。

ライターオブジェクトの IWMHeaderInfo インターフェイスを介してこのメソッドで DRM 属性を設定する前に、ライターが使用するプロファイルを設定する必要があります。

Windows Media Format SDK のオブジェクトは、サポートされている一部のメタデータ属性に対して型チェックを行いますが、すべての属性に対して行うわけではありません。使用する属性は、このドキュメントの Attributes セクションで指定されたデータ型を使用して設定してください。同様に、別のアプリケーションによって設定された属性が正しいデータ型を使用していると想定することはできません。

vtbl 7 HRESULT GetMarkerCount(WORD* pcMarkers)

GetMarkerCount メソッドは、現在 ASF ファイルのヘッダーセクションにあるマーカーの数を返します。

pcMarkersWORD*outマーカーの数へのポインターです。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではありません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。
vtbl 8 HRESULT GetMarker(WORD wIndex, LPWSTR pwszMarkerName, WORD* pcchMarkerNameLen, ULONGLONG* pcnsMarkerTime)

GetMarker メソッドは、マーカーの名前と時刻を返します。

wIndexWORDinインデックスを格納する WORD です。
pwszMarkerNameLPWSTRoutマーカー名を格納するワイド文字の null 終端文字列へのポインターです。
pcchMarkerNameLenWORD*inout入力時は、pwszMarkerName 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数に終端の null 文字を含む名前の実際の長さが格納されます。名前の長さを取得するには、これをゼロに設定し、pwszMarkerNamepcnsMarkerTimeNULL に設定する必要があります。
pcnsMarkerTimeULONGLONG*outマーカー時刻を 100 ナノ秒単位で指定する変数へのポインターです。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
ASF_E_BUFFERTOOSMALL
pcchMarkerNameLen で指定されたサイズが小さすぎて名前を受け取れません。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではありません。
E_INVALIDARG
pcchMarkerNameLenNULL であるか、別のパラメーターが有効な値を含んでいません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。

解説(Remarks)

ライターはマーカーをサポートしておらず、このメソッドが呼び出されると E_NOTIMPL を返します。

vtbl 9 HRESULT AddMarker(LPWSTR pwszMarkerName, ULONGLONG cnsMarkerTime)

AddMarker メソッドは、名前と特定の時刻から成るマーカーを ASF ファイルのヘッダーセクションに追加します。

pwszMarkerNameLPWSTRinマーカー名を格納するワイド文字の null 終端文字列へのポインターです。マーカー名は 5120 ワイド文字までに制限されます。
cnsMarkerTimeULONGLONGinマーカー時刻を 100 ナノ秒単位で指定します。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
NS_E_INVALID_STATE
オブジェクトを現在構成できません。
E_POINTER
pwszMarkerName が有効なポインターではありません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。

解説(Remarks)

ライターはマーカーをサポートしません。ライターから IWMheaderInfo にアクセスする場合、AddMarker の呼び出しは E_NOTIMPL を返します。

vtbl 10 HRESULT RemoveMarker(WORD wIndex)

RemoveMarker メソッドは、ASF ファイルのヘッダーセクションからマーカーを削除します。

wIndexWORDinマーカーのインデックスを格納する WORD です。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
ASF_E_NOTFOUND
wIndex の位置にマーカーがありません。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではありません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。

解説(Remarks)

このメソッドはライターではサポートされません。

vtbl 11 HRESULT GetScriptCount(WORD* pcScripts)

GetScriptCount メソッドは、現在 ASF ファイルのヘッダーセクションにあるスクリプトの数を返します。

pcScriptsWORD*outスクリプトの数へのポインターです。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではありません。
E_INVALIDARG
pcScriptsNULL です。
E_POINTER
pcScripts が有効なポインターではありません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。
vtbl 12 HRESULT GetScript(WORD wIndex, LPWSTR pwszType, WORD* pcchTypeLen, LPWSTR pwszCommand, WORD* pcchCommandLen, ULONGLONG* pcnsScriptTime)

GetScript メソッドは、スクリプトの型文字列とコマンド文字列、および表示時刻を返します。

wIndexWORDinインデックスを格納する WORD です。
pwszTypeLPWSTRout型がコピーされるワイド文字の null 終端文字列バッファーへのポインターです。
pcchTypeLenWORD*inout入力時は、pwszType 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数に pwszType に読み込まれた文字列の実際の長さが格納されます。これには終端の null 文字が含まれます。型の長さを取得するには、これをゼロに設定し、pwszTypeNULL に設定する必要があります。
pwszCommandLPWSTRoutコマンドがコピーされるワイド文字の null 終端文字列バッファーへのポインターです。
pcchCommandLenWORD*inout入力時は、pwszCommand 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数にコマンド文字列の実際の長さが格納されます。これには終端の null 文字が含まれます。コマンドの長さを取得するには、これをゼロに設定し、pwszCommandNULL に設定する必要があります。
pcnsScriptTimeULONGLONG*outこのスクリプトコマンドの表示時刻を 100 ナノ秒単位で指定する QWORD へのポインターです。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
ASF_E_BUFFERTOOSMALL
pcchCommandLen または pcchTypeLen で指定されたサイズが、値を受け取るのに十分ではありません。
ASF_E_NOTFOUND
一致するスクリプトコマンドが見つかりませんでした。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではありません。
E_INVALIDARG
値が必要な箇所でポインターが NULL です。
E_POINTER
ポインター変数が有効なポインターを含んでいません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。

解説(Remarks)

取得したいスクリプトごとに、GetScript を 2 回呼び出す必要があります。最初の呼び出しでは、pwszTypepwszCommandNULL を渡します。戻り時には、pcchTypeLenpcchCommandLen が指す値にワイド文字数が設定されます。これらには終端の null 文字が含まれ、この文字数は pcchTypeLen にスクリプトの型を、pcchCommandLen にコマンドを保持するために必要です。その後、適切なサイズのバッファーを作成して pwszTypepwszCommand を受け取り、2 回目の呼び出しでそれらへのポインターを渡します。

vtbl 13 HRESULT AddScript(LPWSTR pwszType, LPWSTR pwszCommand, ULONGLONG cnsScriptTime)

AddScript メソッドは、型文字列とコマンド文字列、および特定の時刻から成るスクリプトを ASF ファイルのヘッダーセクションに追加します。

pwszTypeLPWSTRin型を格納するワイド文字の null 終端文字列へのポインターです。スクリプトの型は 1024 ワイド文字までに制限されます。
pwszCommandLPWSTRinコマンドを格納するワイド文字の null 終端文字列へのポインターです。スクリプトコマンドは 10240 ワイド文字までに制限されます。
cnsScriptTimeULONGLONGinスクリプト時刻を 100 ナノ秒単位で指定します。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
NS_E_INVALID_STATE
オブジェクトが構成可能な状態ではありません。
E_INVALIDARG
pwszType または pwszCommand に値が指定されていません。
E_POINTER
ポインターパラメーターが有効なポインターを含んでいません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。

解説(Remarks)

BeginWriting が呼び出される前は、ライターは AddScript のみをサポートします。リーダーは AddScript をサポートせず、常に E_NOTIMPL を返します。

ファイルがストリーミングを目的とする場合は、多数のスクリプトコマンドをファイルヘッダーに追加しないでください。一部のプロトコルはヘッダーのサイズに制限を課します。制限はプロトコルによって異なりますが、スクリプトコマンドの合計が数十キロバイトになる場合は、代わりにスクリプトストリームを作成してください。

DRM を使用してファイルを暗号化する場合、表示時刻が 0 のスクリプトコマンドを含めることはできません。

vtbl 14 HRESULT RemoveScript(WORD wIndex)

RemoveScript メソッドを使用すると、オブジェクトが ASF ファイルのヘッダーセクションからスクリプトを削除できます。

wIndexWORDinスクリプトのインデックスを格納する WORD です。

戻り値

このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドが成功しました。
NS_E_INVALID_STATE
オブジェクトを現在構成できません。
E_UNEXPECTED
不特定の理由でメソッドが失敗しました。

解説(Remarks)

ライターは、BeginWriting メソッドが呼び出される前にのみこのメソッドをサポートします。このメソッドはリーダーではサポートされません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

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 方式にも切替可。