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。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
標頭會完全剖析和驗證。
MF_E_ASF_INVALIDDATA
輸入緩衝區不包含有效的 ASF 資料。
MF_E_BUFFERTOOSMALL
輸入緩衝區太小。
MF_S_ASF_PARSEINPROGRESS
方法成功,但傳遞的標頭不完整。 這是在片段中傳遞標頭時,所有呼叫的成功傳回碼,但最後一個呼叫。

備註

如果您以片段方式傳遞標頭,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

另請參閱

IMFASFContentInfo

初始化新 ASF 檔案的 ContentInfo 物件