IMFASFContentInfo::P arseHeader メソッド (wmcontainer.h)
ASF ヘッダー内の情報を解析し、その情報を使用して ContentInfo オブジェクトの値を設定します。 ヘッダー全体を 1 つのバッファーに渡すか、複数の要素で送信できます。
構文
HRESULT ParseHeader(
[in] IMFMediaBuffer *pIHeaderBuffer,
[in] QWORD cbOffsetWithinHeader
);
パラメーター
[in] pIHeaderBuffer
ヘッダーの一部またはすべてを含むバッファー オブジェクトの IMFMediaBuffer インターフェイスへのポインター。 バッファーには、ヘッダー オブジェクトに含まれるオブジェクト (つまり、ヘッダー オブジェクトの Reserved2 フィールドまでのすべてのもの) を含めず、ヘッダー オブジェクトのサイズである 30 バイト以上を含める必要があります。
[in] cbOffsetWithinHeader
ヘッダーの先頭を基準としたバッファー内の最初のバイトのオフセット (バイト単位)。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
ヘッダーは完全に解析され、検証されます。 |
|
入力バッファーに有効な ASF データが含まれていません。 |
|
入力バッファーが小さすぎます。 |
|
メソッドは成功しましたが、渡されたヘッダーは不完全でした。 これは、ヘッダーを分割して渡すときの最後の呼び出し以外のすべての呼び出しの成功したリターン コードです。 |
解説
ヘッダーを分割して渡すと、ContentInfo オブジェクトは、ヘッダー全体が解析されるまでバッファー オブジェクトへの参照を保持します。 したがって、このメソッドに渡されるバッファーに対して書き込む必要はありません。
Header オブジェクトの先頭には、メモリ内に次のレイアウトがあります。
フィールド名 | サイズ (バイト単位) |
---|---|
オブジェクト ID | 16 |
オブジェクト サイズ | 8 |
ヘッダー オブジェクトの数 | 4 |
Reserved1 | 1 |
Reserved2 | 1 |
ParseHeader の最初の呼び出しでは、Rerserved2 までおよび Rerserved2 を含むすべてのものが読み取られます。そのため、少なくとも 30 バイトが必要です。 ( IMFASFContentInfo::GetHeaderSize メソッドは Object ID フィールドと Object Size フィールドのみを読み取るので、そのメソッドには少なくとも 24 バイトが必要であることに注意してください)。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wmcontainer.h |
Library | Mfuuid.lib |