IMFASFContentInfo::P arseHeader 方法 (wmcontainer.h)
剖析 ASF 標頭中的資訊,並使用該資訊來設定 ContentInfo 物件中的值。 您可以在單一緩衝區中傳遞整個標頭,或在數個片段中傳送它。
語法
HRESULT ParseHeader(
[in] IMFMediaBuffer *pIHeaderBuffer,
[in] QWORD cbOffsetWithinHeader
);
參數
[in] pIHeaderBuffer
緩衝區物件的 IMFMediaBuffer 介面指標,其中包含部分或全部標頭。 緩衝區必須包含至少 30 個位元組,這是 Header 物件的大小,不包括 Header Object 中所包含的物件 (,也就是標頭物件) 中最多和包含 Reserved2 欄位的所有專案。
[in] cbOffsetWithinHeader
相對於標頭開頭之緩衝區中第一個位元組的位移,以位元組為單位。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
標頭會完全剖析和驗證。 |
|
輸入緩衝區不包含有效的 ASF 資料。 |
|
輸入緩衝區太小。 |
|
方法成功,但傳遞的標頭不完整。 這是在片段中傳遞標頭時,所有呼叫的成功傳回碼,但最後一個呼叫。 |
備註
如果您以片段方式傳遞標頭,ContentInfo 物件會保留緩衝區物件的參考,直到剖析整個標頭為止。 因此,請勿寫入傳遞至這個方法的緩衝區。
Header 物件的開頭在記憶體中具有下列配置:
欄位名稱 | 大小 (位元組) |
---|---|
物件識別碼 | 16 |
物件大小 | 8 |
標頭物件數目 | 4 |
Reserved1 | 1 |
Reserved2 | 1 |
第一次呼叫 ParseHeader 會讀取最多和包含 Rerserved2 的所有專案,因此至少需要 30 個位元組。 (請注意 ,IMFASFContentInfo::GetHeaderSize 方法只會讀取 [物件識別碼] 和 [物件大小] 欄位,因此該方法至少需要 24 個位元組。)
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wmcontainer.h |
程式庫 | Mfuuid.lib |