iWMDMProgress3::P rogress3 方法 (mswmdm.h)
Windows Media 设备管理器调用 Progress3 方法以指示正在进行的操作的状态。 此方法通过为事件的标识 (ID) 和指向命令上下文的指针提供其他输入参数来扩展 IWMDMProgress::P rogress 。
语法
HRESULT Progress3(
[in] GUID EventId,
[in] DWORD dwTranspiredTicks,
[in, out] OPAQUECOMMAND *pContext
);
参数
[in] EventId
指定发送进度通知的事件 ID 的 GUID。 下表中显示了可能的值。
事件 | 说明 |
---|---|
SCP_EVENTID_ACQSECURECLOCK | Windows Media 设备管理器正在从服务器获取安全时钟。 |
SCP_EVENTID_NEEDTOINDIV | 正在对设备进行个性化。 当前未使用此功能。 |
SCP_EVENTID_DRMINFO |
此事件 ID 用于向应用程序通知在每个文件的内容中找到的版本 DRM 标头。
返回的 OPAQUECOMMAND 结构将 guidCommand 参数设置为 SCP_PARAMID_DRMVERSION。 此外,数据还指定以下标志之一: WMDM_SCP_DRMINFO_NOT_DRMPROTECTED WMDM_SCP_DRMINFO_V1HEADER WMDM_SCP_DRMINFO_V2HEADER |
EVENT_WMDM_CONTENT_TRANSFER | 正在向设备传输内容或从设备传输内容。 |
[in] dwTranspiredTicks
DWORD ,指定到目前为止已发生的计时周期数。
[in, out] pContext
指向 OPAQUECOMMAND 结构的指针,该结构包含直接发送到设备的命令,而不由 Windows Media 设备管理器处理。 此参数是可选的,可以为 NULL。 如果事件SCP_EVENTID_DRMINFO,则此参数中的数据将具有SCP_PARAMID_DRMVERSION GUID。
返回值
应用程序应返回以下 HRESULT 值之一。
返回代码 | 说明 |
---|---|
|
操作应继续。 |
|
Windows Media 设备管理器应取消当前操作,而无需等待操作完成。 如果应用程序使用阻止模式,则 Windows Media 设备管理器 会将此错误返回给应用程序。 |
注解
在方法定义的操作执行时,拥有实现操作的方法的接口调用 Progress3 方法。目的是按估计的计时周期调用 Progress3 一次。 但是,必须在每次调用中检查 dwTranspiredTicks 参数,因为所执行的操作可能无法保证每个估计的计时周期都有一个调用。
应用程序将S_OK返回到调用方法,以指示操作应继续。 应用程序返回WMDM_E_USER_CANCELLED,指示应取消操作。 如果应用程序使用阻止模式并返回WMDM_E_USER_CANCELLED,则 Windows Media 设备管理器 将向应用程序返回相同的错误。
示例
以下 C++ 代码演示 Progress3 的示例实现。
HRESULT Progress3(GUID EventId, DWORD dwTranspiredTicks, OPAQUECOMMAND* pContext)
{
WCHAR strGuid[64];
ZeroMemory(strGuid, 64);
StringFromGUID2(reinterpret_cast<GUID&>(EventId),(LPOLESTR)strGuid, 64);
// TODO: Display the message: "Progress3 called. GUID value: "
// followed by the strGUID value.
// TODO: Display the message: "Progress3 dwTranspiredTicks: "
// followed by the dwTranspiredTicks value.
return S_OK;
}
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | mswmdm.h |
Library | Mssachlp.lib |