Compartir a través de


Método IMFSourceResolver::CreateObjectFromURL (mfidl.h)

Crea un origen multimedia o una secuencia de bytes a partir de una dirección URL. Este método es sincrónico.

Sintaxis

HRESULT CreateObjectFromURL(
  [in]  LPCWSTR        pwszURL,
  [in]  DWORD          dwFlags,
  [in]  IPropertyStore *pProps,
  [out] MF_OBJECT_TYPE *pObjectType,
  [out] IUnknown       **ppObject
);

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 más marcas. Consulte Marcas de resolución de origen. Vea los comentarios más abajo.

[in] pProps

Puntero a la interfaz IPropertyStore de un almacén de propiedades. El método pasa el almacén de propiedades al controlador de esquema o al controlador de secuencia de bytes que crea el objeto . El controlador puede usar el almacén de propiedades para configurar el objeto. Este parámetro puede ser NULL. Para obtener más información, vea Configuración de un origen multimedia.

[out] pObjectType

Recibe un miembro de la enumeración MF_OBJECT_TYPE , especificando el tipo de objeto que se creó.

[out] ppObject

Recibe un puntero a la interfaz IUnknown del objeto. El autor de la llamada debe liberar la interfaz .

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_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS
El parámetro dwFlags contiene marcas mutuamente excluyentes.
MF_E_UNSUPPORTED_SCHEME
No se admite el esquema de dirección URL.

Comentarios

El parámetro dwFlags debe contener la marca MF_RESOLUTION_MEDIASOURCE o la marca MF_RESOLUTION_BYTESTREAM , pero no debe contener ambos.

Se recomienda no establecer MF_RESOLUTION_WRITE en el argumento de entrada dwFlags a menos que sea necesario para su escenario. Para la mayoría de los casos de uso, no es necesario crear orígenes multimedia con funcionalidad de escritura. La creación de un origen multimedia con funcionalidad de escritura puede tener una probabilidad más baja de éxito que la creación de un origen multimedia sin capacidad de escritura. Esto se debe a que puede haber comprobaciones más estrictas en el contenido representado por la dirección URL al crear un origen multimedia con funcionalidad de escritura.

En el caso de los archivos locales, puede pasar el nombre de archivo en el parámetro pwszURL ; el file: esquema no es necesario.

Nota No se puede llamar a este método de forma remota.
 

Ejemplos

//  Create a media source from a URL.
HRESULT CreateMediaSource(PCWSTR sURL, IMFMediaSource **ppSource)
{
    MF_OBJECT_TYPE ObjectType = MF_OBJECT_INVALID;

    IMFSourceResolver* pSourceResolver = NULL;
    IUnknown* pSource = NULL;

    // Create the source resolver.
    HRESULT hr = MFCreateSourceResolver(&pSourceResolver);
    if (FAILED(hr))
    {
        goto done;
    }

    // Use the source resolver to create the media source.

    // Note: For simplicity this sample uses the synchronous method to create 
    // the media source. However, creating a media source can take a noticeable
    // amount of time, especially for a network source. For a more responsive 
    // UI, use the asynchronous BeginCreateObjectFromURL method.

    hr = pSourceResolver->CreateObjectFromURL(
        sURL,                       // URL of the source.
        MF_RESOLUTION_MEDIASOURCE,  // Create a source object.
        NULL,                       // Optional property store.
        &ObjectType,        // Receives the created object type. 
        &pSource            // Receives a pointer to the media source.
        );
    if (FAILED(hr))
    {
        goto done;
    }

    // Get the IMFMediaSource interface from the media source.
    hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));

done:
    SafeRelease(&pSourceResolver);
    SafeRelease(&pSource);
    return hr;
}

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

IMFSourceResolver

Resolución de origen