Compartilhar via


Método IMFByteStreamHandler::BeginCreateObject (mfidl.h)

Inicia uma solicitação assíncrona para criar uma fonte de mídia de um fluxo de bytes.

Sintaxe

HRESULT BeginCreateObject(
  [in]  IMFByteStream    *pByteStream,
  [in]  LPCWSTR          pwszURL,
  [in]  DWORD            dwFlags,
  [in]  IPropertyStore   *pProps,
  [out] IUnknown         **ppIUnknownCancelCookie,
  [in]  IMFAsyncCallback *pCallback,
  [in]  IUnknown         *punkState
);

Parâmetros

[in] pByteStream

Ponteiro para a interface IMFByteStream do fluxo de bytes.

[in] pwszURL

Cadeia de caracteres que contém a URL original do fluxo de bytes. Este parâmetro pode ser NULL.

[in] dwFlags

OR bit a bit de zero ou mais sinalizadores. Consulte Sinalizadores de resolvedor de origem.

[in] pProps

Ponteiro para a interface IPropertyStore de um repositório de propriedades. O manipulador de fluxo de bytes pode usar esse repositório de propriedades para configurar o objeto. Este parâmetro pode ser NULL. Para obter mais informações, consulte Configurando uma fonte de mídia.

[out] ppIUnknownCancelCookie

Recebe um ponteiro IUnknown ou o valor NULL. Se o valor não for NULL, você poderá cancelar a operação assíncrona passando esse ponteiro para o método IMFByteStreamHandler::CancelObjectCreation . O chamador deve liberar a interface. Este parâmetro pode ser NULL.

[in] pCallback

Ponteiro para a interface IMFAsyncCallback de um objeto de retorno de chamada. O chamador deve implementar essa interface.

[in] punkState

Ponteiro para a interface IUnknown de um objeto de estado, definido pelo chamador. Este parâmetro pode ser NULL. Você pode usar esse objeto para armazenar informações de estado. O objeto é retornado ao chamador quando o retorno de chamada é invocado.

Retornar valor

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 método foi bem-sucedido.
MF_E_CANNOT_PARSE_BYTESTREAM
Não é possível analisar o fluxo de bytes.

Comentários

O parâmetro dwFlags deve conter o sinalizador MF_RESOLUTION_MEDIASOURCE e não deve conter o sinalizador MF_RESOLUTION_BYTESTREAM.

O manipulador de fluxo de bytes é responsável por analisar o fluxo e validar o conteúdo. Se o fluxo não for válido ou o manipulador de fluxo de bytes não puder analisar o fluxo, o manipulador deverá retornar um código de falha. Não há garantia de que o fluxo de bytes corresponda ao tipo de fluxo que o manipulador de bytes foi projetado para analisar.

Se o parâmetro pwszURL não for NULL, o manipulador de fluxo de bytes poderá usar a URL durante o processo de resolução. (Por exemplo, ele pode usar a extensão de nome de arquivo, se presente.) Além disso, o fluxo de bytes pode conter o atributo MF_BYTESTREAM_CONTENT_TYPE , especificando o tipo MIME.

Quando a operação for concluída, o manipulador de fluxo de bytes chamará o método IMFAsyncCallback::Invoke . O método Invoke deve chamar IMFByteStreamHandler::EndCreateObject para obter um ponteiro para a fonte de mídia.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho mfidl.h
Biblioteca Mfuuid.lib

Confira também

IMFByteStreamHandler

Manipuladores de esquema e manipuladores de Byte-Stream