Поделиться через


Метод IMFInputTrustAuthority::RequestAccess (mfidl.h)

Запрашивает разрешение на выполнение указанного действия в потоке.

Синтаксис

HRESULT RequestAccess(
  [in]  MFPOLICYMANAGER_ACTION Action,
  [out] IMFActivate            **ppContentEnablerActivate
);

Параметры

[in] Action

Запрошенное действие, указанное в качестве члена перечисления MFPOLICYMANAGER_ACTION .

[out] ppContentEnablerActivate

Получает значение NULL или указатель на интерфейс IMFActivate . Интерфейс IMFActivate используется для создания объекта средства включения содержимого. Вызывающий объект должен освободить интерфейс . Дополнительные сведения см. в подразделе "Примечания".

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

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

Код возврата Описание
S_OK
Пользователь имеет разрешение на выполнение этого действия.
NS_E_DRM_NEEDS_INDIVIDUALIZATION
Пользователь должен индивидуализировать приложение.
NS_E_LICENSE_REQUIRED
Пользователь должен получить лицензию.

Комментарии

Этот метод проверяет, имеет ли пользователь разрешение на выполнение указанного действия в потоке. ITA выполняет все действия, необходимые для проверки права пользователя на выполнение действия, например проверку лицензий.

Чтобы проверить права пользователя, ITA может потребоваться выполнить дополнительные действия, требующие взаимодействия с пользователем или согласия пользователя. Например, может потребоваться приобрести новую лицензию или индивидуализировать компонент DRM. В этом случае ITA создает объект активации для средства включения содержимого и возвращает интерфейс IMFActivate объекта активации в параметре ppContentEnablerActivate . Объект активации отвечает за создание включателя содержимого, предоставляющего интерфейс IMFContentEnabler . Средство включения содержимого используется следующим образом:

  1. Сеанс мультимедиа возвращает указатель IMFActivate на приложение.
  2. Приложение вызывает IMFActivate::ActivateObject для активации активатора содержимого.
  3. Приложение вызывает методы IMFContentEnabler для выполнения любых необходимых действий, таких как индивидуализация или получение лицензии. Объект content enabler должен инкапсулировать эту функциональность через интерфейс IMFContentEnabler .
  4. Сеанс мультимедиа снова вызывает RequestAccess .
Возвращаемое значение указывает, имеет ли пользователь разрешение на выполнение действия:
  • Если у пользователя уже есть разрешение на выполнение действия, метод возвращает S_OK и устанавливает для параметра *ppContentEnablerActivateзначение NULL.
  • Если у пользователя нет разрешения, метод возвращает код сбоя и устанавливает для *ppContentEnablerActivateзначение NULL.
  • Если ITA необходимо выполнить дополнительные действия, требующие взаимодействия с пользователем, метод возвращает код сбоя и возвращает указатель IMFActivate средства включения содержимого в ppContentEnablerActivate.
Сеанс мультимедиа не разрешает действие, если этот метод не возвращает S_OK. Однако возвращаемое значение S_OK не гарантирует, что действие будет выполнено, так как после вызова этого метода может произойти другой сбой. Когда действие определенно должно произойти, сеанс мультимедиа вызывает IMFInputTrustAuthority::BindAccess.

Поток может идти в несколько выходных данных, поэтому этот метод может вызываться несколько раз с разными действиями, один раз для каждого выхода.

Требования

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

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

IMFInputTrustAuthority