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

Comienza una solicitud asincrónica para crear un objeto a partir de una dirección URL.

Cuando el Solucionador de origen crea un origen multimedia a partir de una dirección URL, pasa la solicitud a un controlador de esquema. El controlador de esquemas puede crear un origen multimedia directamente desde la dirección URL o devolver una secuencia de bytes. Si devuelve una secuencia de bytes, la resolución de origen usa un controlador de secuencia de bytes para crear el origen multimedia a partir de la secuencia de bytes.

Sintaxis

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

Parámetros

[in] pwszURL

Cadena terminada en null que contiene la dirección URL que se va a resolver.

[in] dwFlags

OR bit a bit de una o varias marcas. Consulte Marcas de resolución de origen.

[in] pProps

Puntero a la interfaz IPropertyStore de un almacén de propiedades. El controlador de esquemas 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 IMFSchemeHandler::CancelObjectCreation . El autor de la llamada debe liberar la interfaz . Este parámetro puede ser NULL, en cuyo caso el puntero IUnknown no se devuelve al autor de la llamada.

[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.
E_ACCESSDENIED
No se puede abrir la dirección URL con el acceso solicitado (lectura o escritura).
MF_E_UNSUPPORTED_BYTESTREAM_TYPE
Tipo de secuencia de bytes no admitido.

Comentarios

El parámetro dwFlags debe contener la marca MF_RESOLUTION_MEDIASOURCE o la marca MF_RESOLUTION_BYTESTREAM . Si se establece la marca MF_RESOLUTION_MEDIASOURCE , el controlador de esquema podría crear el origen multimedia directamente desde la dirección URL o crear una secuencia de bytes. El tipo de objeto se devuelve en el parámetro pObjectType del método IMFSchemeHandler::EndCreateObject . Si el controlador de esquema devuelve una secuencia de bytes, el solucionador de origen pasará la secuencia de bytes a un controlador de secuencia de bytes, que creará el origen multimedia a partir de la secuencia de bytes.

Si se establece la marca MF_RESOLUTION_BYTESTREAM , el controlador de esquema intentará crear una secuencia de bytes a partir de la dirección URL. Sin embargo, si el controlador de esquema está diseñado para crear un origen multimedia directamente, en lugar de una secuencia de bytes, se producirá un error en el método.

En la tabla siguiente se resume el comportamiento de estas dos marcas cuando se pasa a este método:

Marca Objeto creado
MF_RESOLUTION_MEDIASOURCE Origen multimedia o secuencia de bytes
MF_RESOLUTION_BYTESTREAM Secuencia de bytes
 

Las marcas MF_RESOLUTION_MEDIASOURCE y MF_RESOLUTION_BYTESTREAM se pueden combinar, aunque en este caso es redundante.

Cuando se completa la operación, el controlador de esquema llama al método IMFAsyncCallback::Invoke . El método Invoke debe llamar a IMFSchemeHandler::EndCreateObject para obtener un puntero al objeto creado.

Requisitos

   
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

IMFSchemeHandler

Controladores de esquema y controladores de Byte-Stream