Метод IMFSchemeHandler::BeginCreateObject (mfidl.h)

Начинает асинхронный запрос на создание объекта из URL-адреса.

Когда сопоставитель источников создает источник мультимедиа из URL-адреса, он передает запрос обработчику схемы. Обработчик схемы может создать источник мультимедиа непосредственно из URL-адреса или возвратить поток байтов. Если он возвращает поток байтов, сопоставитель источника использует обработчик байтового потока для создания источника мультимедиа из потока байтов.

Синтаксис

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

Параметры

[in] pwszURL

Строка, завершающаяся нулевым значением, которая содержит URL-адрес для разрешения.

[in] dwFlags

Побитовое ИЛИ одного или нескольких флагов. См. раздел Флаги сопоставителя источника.

[in] pProps

Указатель на интерфейс IPropertyStore хранилища свойств. Обработчик схемы может использовать это хранилище свойств для настройки объекта . Этот параметр может принимать значение NULL. Дополнительные сведения см. в разделе Настройка источника мультимедиа.

[out] ppIUnknownCancelCookie

Получает указатель IUnknown или значение NULL. Если значение не равно NULL, можно отменить асинхронную операцию, передав этот указатель в метод IMFSchemeHandler::CancelObjectCreation . Вызывающий объект должен освободить интерфейс . Этот параметр может иметь значение NULL, и в этом случае указатель IUnknown не возвращается вызывающей объекту.

[in] pCallback

Указатель на интерфейс IMFAsyncCallback объекта обратного вызова. Вызывающий объект должен реализовать этот интерфейс.

[in] punkState

Указатель на интерфейс IUnknown объекта состояния, определенного вызывающим объектом. Этот параметр может принимать значение NULL. Этот объект можно использовать для хранения сведений о состоянии. Объект возвращается вызывающей при вызове обратного вызова.

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
E_ACCESSDENIED
Не удается открыть URL-адрес с запрошенным доступом (чтение или запись).
MF_E_UNSUPPORTED_BYTESTREAM_TYPE
Неподдерживаемый тип потока байтов.

Комментарии

Параметр dwFlags должен содержать флаг MF_RESOLUTION_MEDIASOURCE или флаг MF_RESOLUTION_BYTESTREAM . Если установлен флаг MF_RESOLUTION_MEDIASOURCE , обработчик схемы может создать источник мультимедиа непосредственно из URL-адреса или поток байтов. Тип объекта возвращается в параметре pObjectType метода IMFSchemeHandler::EndCreateObject . Если обработчик схемы возвращает поток байтов, сопоставитель источника передает байтовый поток обработчику байтового потока, который создаст источник мультимедиа из потока байтов.

Если установлен флаг MF_RESOLUTION_BYTESTREAM , обработчик схемы попытается создать поток байтов из URL-адреса. Однако если обработчик схемы предназначен для создания источника мультимедиа напрямую, а не потока байтов, метод завершится ошибкой.

В следующей таблице описано поведение этих двух флагов при передаче в этот метод:

Flag Объект создан
MF_RESOLUTION_MEDIASOURCE Источник мультимедиа или поток байтов
MF_RESOLUTION_BYTESTREAM Поток байтов
 

Флаги MF_RESOLUTION_MEDIASOURCE и MF_RESOLUTION_BYTESTREAM можно объединять, хотя в этом случае они являются избыточными.

После завершения операции обработчик схемы вызывает метод IMFAsyncCallback::Invoke . Метод Invoke должен вызвать IMFSchemeHandler::EndCreateObject , чтобы получить указатель на созданный объект.

Требования

   
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header mfidl.h
Библиотека Mfuuid.lib

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

IMFSchemeHandler

Обработчики схем и обработчики Byte-Stream