IMFInputTrustAuthority::RequestAccess 方法 (mfidl.h)

请求对流执行指定操作的权限。

语法

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

parameters

[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 为内容启用程序创建激活对象,并在 ppContentEnablerActivate 参数中返回激活对象的 IMFActivate 接口。 激活对象负责创建公开 IMFContentEnabler 接口的内容启用程序。 内容启用程序的使用方式如下:

  1. 媒体会话返回指向应用程序的 IMFActivate 指针。
  2. 应用程序调用 IMFActivate::ActivateObject 来激活内容启用程序。
  3. 应用程序调用 IMFContentEnabler 方法来执行所需的任何操作,例如个性化或获取许可证。 内容启用程序对象必须通过 IMFContentEnabler 接口封装此功能。
  4. 媒体会话再次调用 RequestAccess
返回值指示用户是否有权执行操作:
  • 如果用户已具有执行操作的权限,该方法将返回S_OK并将 *ppContentEnablerActivate 设置为 NULL
  • 如果用户没有权限,该方法将返回失败代码并将 *ppContentEnablerActivate 设置为 NULL
  • 如果 ITA 必须执行需要与用户交互的其他步骤,该方法将返回失败代码,并在 ppContentEnablerActivate 中返回内容启用器的 IMFActivate 指针。
除非此方法返回S_OK,否则媒体会话将不允许该操作。 但是,返回值 S_OK 并不能保证将执行该操作,因为在调用此方法后可能会发生其他一些故障。 当操作肯定即将发生时,媒体会话将调用 IMFInputTrustAuthority::BindAccess

一个流可以转到多个输出,因此可以使用不同的操作多次调用此方法,每个输出调用一次。

要求

   
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mfidl.h
Library Mfuuid.lib

另请参阅

IMFInputTrustAuthority