Метод IMFSourceResolver::CreateObjectFromURL (mfidl.h)
Создает источник мультимедиа или поток байтов из URL-адреса. Этот метод является синхронным.
Синтаксис
HRESULT CreateObjectFromURL(
[in] LPCWSTR pwszURL,
[in] DWORD dwFlags,
[in] IPropertyStore *pProps,
[out] MF_OBJECT_TYPE *pObjectType,
[out] IUnknown **ppObject
);
Параметры
[in] pwszURL
Строка, завершающаяся нулевым значением, которая содержит URL-адрес для разрешения.
[in] dwFlags
Побитовое ИЛИ одного или нескольких флагов. См. раздел Флаги сопоставителя источника. См. примечания ниже.
[in] pProps
Указатель на интерфейс IPropertyStore хранилища свойств. Метод передает хранилище свойств обработчику схемы или обработчику потока байтов, который создает объект . Обработчик может использовать хранилище свойств для настройки объекта . Этот параметр может принимать значение NULL. Дополнительные сведения см. в разделе Настройка источника мультимедиа.
[out] pObjectType
Получает элемент перечисления MF_OBJECT_TYPE , указывающий тип созданного объекта.
[out] ppObject
Получает указатель на интерфейс IUnknown объекта. Вызывающий объект должен освободить интерфейс .
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Параметр dwFlags содержит взаимоисключающие флаги. |
|
Схема URL-адресов не поддерживается. |
Комментарии
Параметр dwFlags должен содержать флаг MF_RESOLUTION_MEDIASOURCE или флаг MF_RESOLUTION_BYTESTREAM, но не должен содержать оба флага .
Не рекомендуется задавать MF_RESOLUTION_WRITE для входного аргумента dwFlags , если это не требуется для вашего сценария. В большинстве вариантов использования источники мультимедиа не нужно создавать с возможностью записи. Создание источника мультимедиа с возможностью записи может иметь меньшую вероятность успеха, чем создание источника мультимедиа без возможности записи. Это связано с тем, что при создании источника мультимедиа с возможностью записи могут быть более строгие проверки содержимого, представленного URL-адресом.
Для локальных файлов можно передать имя файла в параметре pwszURL ; схема file:
не является обязательной.
Примеры
// 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;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | mfidl.h |
Библиотека | Mfuuid.lib |