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 |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
El parámetro dwFlags contiene marcas mutuamente excluyentes. |
|
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.
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 |