IWMDRMLicenseManagement::AcquireLicense 方法

[与此页面关联的功能 Windows Media Format 11 SDK 是旧版功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用源读取器和接收器编写器,而不是 Windows Media Format 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

AcquireLicense 方法从指定的 URL 异步获取许可证。

语法

HRESULT AcquireLicense(
  [in]  BSTR     bstrURL,
  [in]  BSTR     bstrHeaderData,
  [in]  BSTR     bstrActions,
  [in]  DWORD    dwFlags,
  [out] IUnknown **ppunkCancelationCookie
);

参数

bstrURL [in]

要从中获取许可证的许可证服务器的 URL。 传递 NULL 让 方法分析内容标头中的 URL。

bstrHeaderData [in]

要传递给许可证服务器的内容标头。 如果 bstrURLNULL,则 方法将分析此标头中的 URL。 如果 dwFlags 设置为 WMDRM_ACQUIRE_LICENSE_LEGACY_NONSILENT,请将此值设置为密钥 ID,而不是整个内容标头。

bstrActions [in]

包含零个或多个要请求许可证权限的操作的字符串。 字符串的格式必须如下所示:

  • 必须在 ACTION 元素中定义每个操作。 元素的数据是操作字符串。

  • 所有 ACTION 元素都必须包含在 ACTIONLIST 元素中。

    例如,请求播放内容的许可证的字符串的格式如下所示:

    <ACTIONLIST><ACTION></ACTION></ACTIONLIST>
    

dwFlags [in]

许可证获取选项标志。 设置为下表中的常量之一。

返回的常量 描述
WMDRM_ACQUIRE_LICENSE_SILENT 许可证将直接通过 Internet 颁发,而无需客户端应用程序进行任何确认。
WMDRM_ACQUIRE_LICENSE_NONSILENT DRM 子系统将创建一个许可证请求,该请求将以异步方式返回以发布到许可证服务器。
WMDRM_ACQUIRE_LICENSE_LEGACY_NONSILENT 与 WMDRM_ACQUIRE_LICENSE_NONSILENT 相同,只不过将创建 DRM 版本 1 许可证质询。

ppunkCancelationCookie [out]

一个指针,用于接收指向标识此异步调用的 对象的 IUnknown 接口的指针。 此接口指针可用于通过调用 IWMDRMEventGenerator::CancelAsyncOperation 方法取消异步调用。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。

备注

此方法异步执行。 调用后立即返回 ,然后在处理完成后生成 MEWMDRMLicenseAcquisitionCompleted 事件。 对于非无提示许可证获取操作,通过调用 IMFMediaEvent::GetValue 获取的事件值是 IUnknown 指针。 可以调用检索到的 IUnknown 接口的 QueryInterface 方法来获取 IWMDRMNonSilentLicenseAquisition 接口的实例。

有关使用 Windows Media DRM 客户端扩展 API 的异步方法的详细信息,请参阅 使用媒体基础事件模型

要求

要求
标头
Wmdrmsdk.h

Wmdrmsdk.lib

另请参阅

IWMDRMLicenseManagement 接口

无提示许可证获取