Метод 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. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Не удается открыть URL-адрес с запрошенным доступом (чтение или запись). |
|
Неподдерживаемый тип потока байтов. |
Комментарии
Параметр 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 |