IWMDRMDeviceApp::AcquireDeviceData 方法

AcquireDeviceData 方法初始化或重置设备安全时钟。

语法

HRESULT AcquireDeviceData(
  [in]  IWMDMDevice    *pDevice,
  [in]  IWMDMProgress3 *pProgressCallback,
  [in]  DWORD          dwFlags,
  [out] DWORD          *pdwStatus
);

parameters

pDevice [in]

指向将报告计数数据的设备的 IWMDMDevice 接口的指针。

pProgressCallback [in]

进度回调,应用程序可通过该回调跟踪事件的进度,或取消事件。 进度由 IWMDMProgress3 方法的 EventId 参数标识。

dwFlags [in]

以下一个或两个标志的逻辑 OR ,指定要执行的操作。 此值是从 IWMDRMDeviceApp::QueryDeviceStatus 或 IWMDRMDeviceApp2::QueryDeviceStatus2 的 pdwStatus 参数中检索的。 可以直接使用 pdwStatus 标志。

标志 描述
WMDRM_DEVICE_NEEDCLOCK 从安全时钟服务器获取时钟。
WMDRM_DEVICE_REFRESHCLOCK 从安全时钟服务器刷新时钟。

pdwStatus [out]

指定设备返回的状态的以下 DWORD 值之一。

状态 说明
0 不支持该操作。
1 无法从服务获取设备安全时钟。
2 无法设置设备的安全时钟。
3 已设置设备的安全时钟。

返回值

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

返回代码 说明
S_OK
方法成功。
DRM_E_INVALIDARG
一个或多个参数无效。
NS_E_DEVICE_NOT_WMDRM_DEVICE
指定的设备不是与 Windows Media DRM 兼容的设备。
NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK
无法从设备检索安全时钟质询,或无法从质询中检索安全时钟 URL。
NS_E_DRM_UNABLE_TO_GET_SECURE_CLOCK_FROM_SERVER
无法从安全时钟服务器检索安全时钟响应。
NS_E_DRM_UNABLE_TO_SET_SECURE_CLOCK
无法向设备发送安全时钟质询,或设备无法设置时钟。

备注

这是一种异步方法;在尝试播放任何许可内容之前,设备必须等待此操作的 IWMDMProgress::End 回调。

应用程序可以通过调用 IWMDRMDeviceApp::QueryDeviceStatusIWMDRMDeviceApp2::QueryDeviceStatus2 来了解设备是否必须重置或更新其时钟。

应用程序必须具有 Internet 连接才能获取或重置安全时钟。

要求

要求
标头
WMDRMDeviceApp.h (还需要 Wmdrmdeviceapp_i.c,从 WMDRMDeviceApp.idl)

Mssachlp.lib

请参阅

处理应用程序中受保护的内容

IWMDMDevice 接口

IWMDMProgress3 接口

IWMDRMDeviceApp 接口