Condividi tramite


Metodo IMFASFContentInfo::P arseHeader (wmcontainer.h)

Analizza le informazioni in un'intestazione ASF e usa tali informazioni per impostare i valori nell'oggetto ContentInfo. È possibile passare l'intera intestazione in un singolo buffer o inviarla in diverse parti.

Sintassi

HRESULT ParseHeader(
  [in] IMFMediaBuffer *pIHeaderBuffer,
  [in] QWORD          cbOffsetWithinHeader
);

Parametri

[in] pIHeaderBuffer

Puntatore all'interfaccia IMFMediaBuffer di un oggetto buffer contenente alcune o tutte le intestazioni. Il buffer deve contenere almeno 30 byte, ovvero le dimensioni dell'oggetto Intestazione, non inclusi gli oggetti contenuti nell'oggetto Intestazione, ovvero tutto fino a e includere il campo Riservato2 nell'oggetto Intestazione.

[in] cbOffsetWithinHeader

Offset, in byte, del primo byte nel buffer rispetto all'inizio dell'intestazione.

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
L'intestazione è completamente analizzata e convalidata.
MF_E_ASF_INVALIDDATA
Il buffer di input non contiene dati ASF validi.
MF_E_BUFFERTOOSMALL
Il buffer di input è troppo piccolo.
MF_S_ASF_PARSEINPROGRESS
Il metodo ha avuto esito positivo, ma l'intestazione passata è stata incompleta. Si tratta del codice restituito correttamente per tutte le chiamate, ma l'ultimo quando si passa l'intestazione in parti.

Commenti

Se si passa l'intestazione in parti, l'oggetto ContentInfo mantiene i riferimenti agli oggetti buffer finché non viene analizzata l'intera intestazione. Pertanto, non scrivere nei buffer passati in questo metodo.

L'inizio dell'oggetto Header ha il layout seguente in memoria:

Nome campo Dimensioni in byte
ID dell'oggetto. 16
Dimensioni oggetto 8
Numero di oggetti intestazione 4
Reserved1 1
Reserved2 1
 

La prima chiamata a ParseHeader legge tutto fino a e include Rerserved2, quindi richiede un minimo di 30 byte. Si noti che il metodo IMFASFContentInfo::GetHeaderSize legge solo i campi Id oggetto e Dimensione oggetto, in modo che il metodo richieda un minimo di 24 byte.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wmcontainer.h
Libreria Mfuuid.lib

Vedi anche

IMFASFContentInfo

Inizializzazione dell'oggetto ContentInfo di un nuovo file ASF