Share via


Método IMFASFContentInfo::P arseHeader (wmcontainer.h)

Analisa as informações em um cabeçalho ASF e usa essas informações para definir valores no objeto ContentInfo. Você pode passar o cabeçalho inteiro em um único buffer ou enviá-lo em várias partes.

Sintaxe

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

Parâmetros

[in] pIHeaderBuffer

Ponteiro para a interface IMFMediaBuffer de um objeto buffer que contém alguns ou todos os cabeçalhos. O buffer deve conter pelo menos 30 bytes, que é o tamanho do Objeto Header, sem incluir os objetos contidos no Objeto Header (ou seja, tudo até e incluindo o campo Reserved2 no Objeto Header).

[in] cbOffsetWithinHeader

Deslocamento, em bytes, do primeiro byte no buffer em relação ao início do cabeçalho.

Valor retornado

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O cabeçalho é completamente analisado e validado.
MF_E_ASF_INVALIDDATA
O buffer de entrada não contém dados ASF válidos.
MF_E_BUFFERTOOSMALL
O buffer de entrada é muito pequeno.
MF_S_ASF_PARSEINPROGRESS
O método foi bem-sucedido, mas o cabeçalho passado estava incompleto. Esse é o código de retorno bem-sucedido para todas as chamadas, exceto a última ao passar o cabeçalho em partes.

Comentários

Se você passar o cabeçalho em partes, o objeto ContentInfo manterá referências aos objetos buffer até que todo o cabeçalho seja analisado. Portanto, não escreva sobre os buffers passados para esse método.

O início do objeto Header tem o seguinte layout na memória:

Nome do campo Tamanho em Bytes
ID de objeto 16
Tamanho do objeto 8
Número de objetos de cabeçalho 4
Reserved1 1
Reserved2 1
 

A primeira chamada para ParseHeader lê tudo até e incluindo Rerserved2, portanto, requer um mínimo de 30 bytes. (Observe que o método IMFASFContentInfo::GetHeaderSize lê apenas os campos ID do Objeto e Tamanho do Objeto, de modo que o método requer um mínimo de 24 bytes.)

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wmcontainer.h
Biblioteca Mfuuid.lib

Confira também

IMFASFContentInfo

Inicializando o objeto ContentInfo de um novo arquivo ASF