Метод 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. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS
Параметр dwFlags содержит взаимоисключающие флаги.
MF_E_UNSUPPORTED_SCHEME
Схема 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

См. также раздел

IMFSourceResolver

Сопоставитель источника