Compartir a través de


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

Comienza una solicitud asincrónica para crear un origen multimedia a partir de una secuencia de bytes.

Sintaxis

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

Puntero a la interfaz IMFByteStream de la secuencia de bytes.

[in] pwszURL

Cadena que contiene la dirección URL original de la secuencia de bytes. Este parámetro puede ser NULL.

[in] dwFlags

OR bit a bit de cero o más marcas. Consulte Marcas de resolución de origen.

[in] pProps

Puntero a la interfaz IPropertyStore de un almacén de propiedades. El controlador de secuencia de bytes puede usar este almacén de propiedades para configurar el objeto. Este parámetro puede ser NULL. Para obtener más información, consulte Configuración de un origen multimedia.

[out] ppIUnknownCancelCookie

Recibe un puntero IUnknown o el valor NULL. Si el valor no es NULL, puede cancelar la operación asincrónica pasando este puntero al método IMFByteStreamHandler::CancelObjectCreation . El autor de la llamada debe liberar la interfaz . Este parámetro puede ser NULL.

[in] pCallback

Puntero a la interfaz IMFAsyncCallback de un objeto de devolución de llamada. El autor de la llamada debe implementar esta interfaz.

[in] punkState

Puntero a la interfaz IUnknown de un objeto de estado, definido por el autor de la llamada. Este parámetro puede ser NULL. Puede usar este objeto para contener información de estado. El objeto se devuelve al autor de la llamada cuando se invoca la devolución de llamada.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
MF_E_CANNOT_PARSE_BYTESTREAM
No se puede analizar la secuencia de bytes.

Comentarios

El parámetro dwFlags debe contener la marca MF_RESOLUTION_MEDIASOURCE y no debe contener la marca MF_RESOLUTION_BYTESTREAM.

El controlador de secuencia de bytes es responsable de analizar la secuencia y validar el contenido. Si la secuencia no es válida o el controlador de secuencia de bytes no puede analizar la secuencia, el controlador debe devolver un código de error. No se garantiza que la secuencia de bytes coincida con el tipo de secuencia que el controlador de bytes está diseñado para analizar.

Si el parámetro pwszURL no es NULL, el controlador de secuencia de bytes podría usar la dirección URL durante el proceso de resolución. (Por ejemplo, podría usar la extensión de nombre de archivo, si está presente). Además, la secuencia de bytes puede contener el atributo MF_BYTESTREAM_CONTENT_TYPE , especificando el tipo MIME.

Cuando se completa la operación, el controlador de secuencia de bytes llama al método IMFAsyncCallback::Invoke . El método Invoke debe llamar a IMFByteStreamHandler::EndCreateObject para obtener un puntero al origen multimedia.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado mfidl.h
Library Mfuuid.lib

Consulte también

IMFByteStreamHandler

Controladores de esquema y controladores de Byte-Stream