IWMHeaderInfo
COM公式ドキュメント
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。
GetAttributeCount メソッドは、ASF ファイルのヘッダーセクションに定義されている属性の数を返します。このメソッドは IWMHeaderInfo3::GetAttributeCountEx および IWMHeaderInfo3::GetAttributeIndices に置き換えられており、今後は使用しないでください。
| wStreamNum | WORD | in | ストリーム番号を格納する WORD です。ファイルレベルの属性の場合はゼロを渡します。 |
| pcAttributes | WORD* | out | 属性の数へのポインターです。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| オブジェクトが構成可能な状態ではないか、プロファイルが設定されていません。 | |
| wStreamNum が有効なストリーム番号ではないか、pcAttributes が NULL です。 | |
| pcAttributes が有効なポインターではありません。 | |
| 不特定の理由でメソッドが失敗しました。 |
解説(Remarks)
MP3 ファイル内の属性は、特定のストリームに固有のものにすることはできません。MP3 ファイルの場合、ストリーム番号は常にゼロに設定してください。
GetAttributeByIndex メソッドは、ASF ファイルのヘッダーセクションに格納されている記述的な属性を返します。このメソッドは IWMHeaderInfo3::GetAttributeByIndexEx に置き換えられており、使用しないでください。
| wIndex | WORD | in | インデックスを格納する WORD です。 |
| pwStreamNum | WORD* | inout | ストリーム番号を格納する WORD へのポインターです。このパラメーターはポインターですが、メソッドが値を変更することはありません。ファイルレベルの属性の場合は、ストリーム番号にゼロを使用します。 |
| pwszName | LPWSTR | out | 名前を格納するワイド文字の null 終端文字列へのポインターです。名前に必要な長さを取得するには、このパラメーターに NULL を渡します。属性名は 1024 ワイド文字までに制限されます。 |
| pcchNameLen | WORD* | inout | 入力時は、pwszName 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数に終端の null 文字を含む名前の実際の長さが格納されます。 |
| pType | WMT_ATTR_DATATYPE* | out | WMT_ATTR_DATATYPE 列挙型のいずれかの値を格納する変数へのポインターです。 |
| pValue | BYTE* | out | 値を格納するバイト配列へのポインターです。値に必要な長さを取得するには、このパラメーターに NULL を渡します。 |
| pcbLength | WORD* | inout | 入力時は、pValue 配列の長さをバイト単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数にメソッドが pValue へ書き込んだ実際のバイト数が格納されます。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
オブジェクトが有効な状態ではないか、プロファイルが設定されていません。 |
| pwStreamNum が有効なストリーム番号を指していないか、データ型が指定されていません。 | |
| パラメーターに指定されたポインターが有効ではありませんでした。 | |
| 不特定の理由でメソッドが失敗しました。 | |
|
pValue 配列が小さすぎて属性値を格納できません。 |
|
wIndex の位置に属性がありません。 |
解説(Remarks)
取得したい属性ごとに、GetAttributeByIndex を 2 回呼び出す必要があります。最初の呼び出しでは、pwszName と pValue に NULL を渡します。戻り時には、pcchNameLen が指す値に、終端の null 文字を含む属性名を保持するために必要なワイド文字数が設定され、pcbLength が指す値に、属性値を保持するために必要なバイト数が設定されます。その後、適切なサイズのバッファーを作成して pwszName と pValue を受け取り、2 回目の呼び出しでそれらへのポインターを渡します。
MP3 ファイル内の属性は、ストリーム固有のものにすることはできません。このメソッドを MP3 ファイルで使用する場合は、ストリーム番号にゼロを使用する必要があります。
定義済みのすべての属性の一覧については、Attributes を参照してください。
Windows Media Format SDK のオブジェクトは、サポートされている一部のメタデータ属性に対して型チェックを行いますが、すべての属性に対して行うわけではありません。使用する属性は、このドキュメントの Attributes セクションで指定されたデータ型を使用して設定してください。同様に、別のアプリケーションによって設定された属性が正しいデータ型を使用していると想定することはできません。
GetAttributeByName メソッドは、ASF ファイルのヘッダーセクションに格納されている記述的な属性を返します。
| pwStreamNum | WORD* | inout | ストリーム番号を格納する WORD へのポインターです。任意のストリームを指定する場合はゼロを渡します。このパラメーターはポインターですが、メソッドが値を変更することはありません。 |
| pszName | LPWSTR | in | 属性の名前を格納する null 終端文字列へのポインターです。属性名は 1024 ワイド文字までに制限されます。 |
| pType | WMT_ATTR_DATATYPE* | out | WMT_ATTR_DATATYPE 列挙型の値を受け取る変数へのポインターです。返される値は属性のデータ型を示します。 |
| pValue | BYTE* | out | 属性の値を受け取るバイト配列へのポインターです。配列は呼び出し側が割り当てる必要があります。必要な配列サイズを判断するには、このパラメーターを NULL に設定し、pcbLength パラメーターで返される値を確認します。 |
| pcbLength | WORD* | inout | 入力時は、pValue 配列の長さをバイト単位で指定します。出力時は、メソッドが成功した場合、pValue に書き込まれた実際のバイト数が格納されます。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
指定された属性はこのファイルに定義されていません。 |
| pwStreamNum が有効なストリーム番号ではないか、pszName がワイド文字列を指していないか、別のパラメーターが有効な値を含んでいません。 | |
| パラメーターが有効なポインターではありません。 | |
| 不特定の理由でメソッドが失敗しました。 | |
|
オブジェクトが構成可能な状態ではないか、プロファイルが設定されていません。 |
解説(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 );
}
SetAttribute メソッドは、ASF ファイルのヘッダーセクションに格納される記述的な属性を設定します。このメソッドは IWMHeaderInfo3::AddAttribute に置き換えられており、使用しないでください。
| wStreamNum | WORD | in | ストリーム番号を格納する WORD です。ファイルレベルの属性を設定するには、ゼロを渡します。 |
| pszName | LPWSTR | in | 属性の名前を格納するワイド文字の null 終端文字列へのポインターです。属性名は 1024 ワイド文字までに制限されます。 |
| Type | WMT_ATTR_DATATYPE | in | WMT_ATTR_DATATYPE 列挙型の値です。 |
| pValue | BYTE* | in | 属性の値を格納するバイト配列へのポインターです。 |
| cbLength | WORD | in | pValue のサイズ(バイト単位)です。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
| パラメーターに有効な値が含まれていません。 | |
| 実装されていません。 | |
| 不特定の理由でメソッドが失敗しました。 | |
|
オブジェクトが構成可能な状態ではないか、プロファイルが設定されていません。 |
解説(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 セクションで指定されたデータ型を使用して設定してください。同様に、別のアプリケーションによって設定された属性が正しいデータ型を使用していると想定することはできません。
GetMarkerCount メソッドは、現在 ASF ファイルのヘッダーセクションにあるマーカーの数を返します。
| pcMarkers | WORD* | out | マーカーの数へのポインターです。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
オブジェクトが構成可能な状態ではありません。 |
| 不特定の理由でメソッドが失敗しました。 |
GetMarker メソッドは、マーカーの名前と時刻を返します。
| wIndex | WORD | in | インデックスを格納する WORD です。 |
| pwszMarkerName | LPWSTR | out | マーカー名を格納するワイド文字の null 終端文字列へのポインターです。 |
| pcchMarkerNameLen | WORD* | inout | 入力時は、pwszMarkerName 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数に終端の null 文字を含む名前の実際の長さが格納されます。名前の長さを取得するには、これをゼロに設定し、pwszMarkerName と pcnsMarkerTime を NULL に設定する必要があります。 |
| pcnsMarkerTime | ULONGLONG* | out | マーカー時刻を 100 ナノ秒単位で指定する変数へのポインターです。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
pcchMarkerNameLen で指定されたサイズが小さすぎて名前を受け取れません。 |
|
オブジェクトが構成可能な状態ではありません。 |
| pcchMarkerNameLen が NULL であるか、別のパラメーターが有効な値を含んでいません。 | |
| 不特定の理由でメソッドが失敗しました。 |
解説(Remarks)
ライターはマーカーをサポートしておらず、このメソッドが呼び出されると E_NOTIMPL を返します。
AddMarker メソッドは、名前と特定の時刻から成るマーカーを ASF ファイルのヘッダーセクションに追加します。
| pwszMarkerName | LPWSTR | in | マーカー名を格納するワイド文字の null 終端文字列へのポインターです。マーカー名は 5120 ワイド文字までに制限されます。 |
| cnsMarkerTime | ULONGLONG | in | マーカー時刻を 100 ナノ秒単位で指定します。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
オブジェクトを現在構成できません。 |
| pwszMarkerName が有効なポインターではありません。 | |
| 不特定の理由でメソッドが失敗しました。 |
解説(Remarks)
ライターはマーカーをサポートしません。ライターから IWMheaderInfo にアクセスする場合、AddMarker の呼び出しは E_NOTIMPL を返します。
RemoveMarker メソッドは、ASF ファイルのヘッダーセクションからマーカーを削除します。
| wIndex | WORD | in | マーカーのインデックスを格納する WORD です。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
wIndex の位置にマーカーがありません。 |
|
オブジェクトが構成可能な状態ではありません。 |
| 不特定の理由でメソッドが失敗しました。 |
解説(Remarks)
このメソッドはライターではサポートされません。
GetScriptCount メソッドは、現在 ASF ファイルのヘッダーセクションにあるスクリプトの数を返します。
| pcScripts | WORD* | out | スクリプトの数へのポインターです。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
オブジェクトが構成可能な状態ではありません。 |
| pcScripts が NULL です。 | |
| pcScripts が有効なポインターではありません。 | |
| 不特定の理由でメソッドが失敗しました。 |
GetScript メソッドは、スクリプトの型文字列とコマンド文字列、および表示時刻を返します。
| wIndex | WORD | in | インデックスを格納する WORD です。 |
| pwszType | LPWSTR | out | 型がコピーされるワイド文字の null 終端文字列バッファーへのポインターです。 |
| pcchTypeLen | WORD* | inout | 入力時は、pwszType 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数に pwszType に読み込まれた文字列の実際の長さが格納されます。これには終端の null 文字が含まれます。型の長さを取得するには、これをゼロに設定し、pwszType を NULL に設定する必要があります。 |
| pwszCommand | LPWSTR | out | コマンドがコピーされるワイド文字の null 終端文字列バッファーへのポインターです。 |
| pcchCommandLen | WORD* | inout | 入力時は、pwszCommand 配列の長さをワイド文字(2 バイト)単位で格納する変数へのポインターです。出力時は、メソッドが成功した場合、その変数にコマンド文字列の実際の長さが格納されます。これには終端の null 文字が含まれます。コマンドの長さを取得するには、これをゼロに設定し、pwszCommand を NULL に設定する必要があります。 |
| pcnsScriptTime | ULONGLONG* | out | このスクリプトコマンドの表示時刻を 100 ナノ秒単位で指定する QWORD へのポインターです。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
pcchCommandLen または pcchTypeLen で指定されたサイズが、値を受け取るのに十分ではありません。 |
|
一致するスクリプトコマンドが見つかりませんでした。 |
|
オブジェクトが構成可能な状態ではありません。 |
| 値が必要な箇所でポインターが NULL です。 | |
| ポインター変数が有効なポインターを含んでいません。 | |
| 不特定の理由でメソッドが失敗しました。 |
解説(Remarks)
取得したいスクリプトごとに、GetScript を 2 回呼び出す必要があります。最初の呼び出しでは、pwszType と pwszCommand に NULL を渡します。戻り時には、pcchTypeLen と pcchCommandLen が指す値にワイド文字数が設定されます。これらには終端の null 文字が含まれ、この文字数は pcchTypeLen にスクリプトの型を、pcchCommandLen にコマンドを保持するために必要です。その後、適切なサイズのバッファーを作成して pwszType と pwszCommand を受け取り、2 回目の呼び出しでそれらへのポインターを渡します。
AddScript メソッドは、型文字列とコマンド文字列、および特定の時刻から成るスクリプトを ASF ファイルのヘッダーセクションに追加します。
| pwszType | LPWSTR | in | 型を格納するワイド文字の null 終端文字列へのポインターです。スクリプトの型は 1024 ワイド文字までに制限されます。 |
| pwszCommand | LPWSTR | in | コマンドを格納するワイド文字の null 終端文字列へのポインターです。スクリプトコマンドは 10240 ワイド文字までに制限されます。 |
| cnsScriptTime | ULONGLONG | in | スクリプト時刻を 100 ナノ秒単位で指定します。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
オブジェクトが構成可能な状態ではありません。 |
| pwszType または pwszCommand に値が指定されていません。 | |
| ポインターパラメーターが有効なポインターを含んでいません。 | |
| 不特定の理由でメソッドが失敗しました。 |
解説(Remarks)
BeginWriting が呼び出される前は、ライターは AddScript のみをサポートします。リーダーは AddScript をサポートせず、常に E_NOTIMPL を返します。
ファイルがストリーミングを目的とする場合は、多数のスクリプトコマンドをファイルヘッダーに追加しないでください。一部のプロトコルはヘッダーのサイズに制限を課します。制限はプロトコルによって異なりますが、スクリプトコマンドの合計が数十キロバイトになる場合は、代わりにスクリプトストリームを作成してください。
DRM を使用してファイルを暗号化する場合、表示時刻が 0 のスクリプトコマンドを含めることはできません。
RemoveScript メソッドを使用すると、オブジェクトが ASF ファイルのヘッダーセクションからスクリプトを削除できます。
| wIndex | WORD | in | スクリプトのインデックスを格納する WORD です。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドが成功しました。 | |
|
オブジェクトを現在構成できません。 |
| 不特定の理由でメソッドが失敗しました。 |
解説(Remarks)
ライターは、BeginWriting メソッドが呼び出される前にのみこのメソッドをサポートします。このメソッドはリーダーではサポートされません。
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 方式にも切替可。#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(変数))。