WM_GET_LICENSE_DATA 结构

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

WM_GET_LICENSE_DATA结构包含有关从何处获取 DRM许可证的信息。

语法

typedef struct _WMGetLicenseData {
  DWORD   dwSize;
  HRESULT hr;
  WCHAR   *wszURL;
  WCHAR   *wszLocalFilename;
  BYTE    *pbPostData;
  DWORD   dwPostDataSize;
} WM_GET_LICENSE_DATA;

成员

dwSize

包含WM_GET_LICENSE_DATA结构的大小(以字节为单位)的 DWORD

小时

HRESULT 返回代码。

wszURL

包含许可证获取 URL 的以 null 结尾的宽字符字符串。 在非无提示许可证获取中使用此字符串和 pbPostData 字符串。

wszLocalFilename

以 null 结尾的宽字符字符串,其中包含由 DRM 组件生成的本地 HTML 页。 当此字符串加载到浏览器中时,它会自动将 HTTP 请求重定向到许可证获取 URL 以及必要的发布数据。 现在已弃用此本地 URL。 建议的方法是使用 wszURLpbPostData 字符串。

pbPostData

指向包含要发布到许可证获取 URL 的数据的字节数组的指针。 必须将以下字符串添加到 pbPostData 字符串的开头:“nonsilent=1&challenge=”。 形成 HTTP 请求时,生成的字符串应追加到 wszURL

dwPostDataSize

DWORD ,指示 pbPostData 中没有引用的“nonsilent=1&challenge=”字符串的 pbPostData 的大小。

备注

如果 WMT_STATUS 等于 WMT_NO_RIGHTS_EX 或 WMT_ACQUIRE_LICENSE,则会在 IWMStatusCallback::OnStatus 方法的 pValue 参数中返回此填充结构。 对于WMT_NO_RIGHTS_EX事件, hr 成员将为NS_E_LICENSE_REQUIRED、NS_E_LICENSE_OUTOFDATE或NS_E_LICENSE_INCORRECT_RIGHTS。 这些错误中的任何一个都表明必须导航到 wszURL 成员中的 URL 来获取新许可证。

对于WMT_ACQUIRE_LICENSE事件,如果成功获取许可证, hr 成员将传递 SUCCEEDED 宏。 如果在尝试无提示获取后收到此事件,并且 hr 等于 NS_E_DRM_LICENSE_NOTACQUIRED,则表示此许可证的许可证服务器仅支持非无提示获取。

Audioplayer 示例应用程序演示如何正确使用此结构中返回的信息。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
版本
Windows Media Format 7 SDK 或更高版本的 SDK
标头
Drmexternals.h

另请参阅

IWMDRMReader::AcquireLicense

结构