IWMDMProgress3::Begin3 方法 (mswmdm.h)

Windows Media 设备管理器调用 Begin3 方法以指示操作即将开始。 如果可能,会提供操作持续时间的估计值。 此方法通过为事件的标识 (ID) 和指向命令的可选上下文的指针提供其他输入参数来扩展 IWMDMProgress::Begin 。 操作由事件 ID 标识。 方法允许调用方将不透明的数据结构传递给应用程序。

语法

HRESULT Begin3(
  [in]      GUID          EventId,
  [in]      DWORD         dwEstimatedTicks,
  [in, out] OPAQUECOMMAND *pContext
);

参数

[in] EventId

标识将开始的操作的 GUID 。 下表中显示了可能的值。

事件 说明
SCP_EVENTID_ACQSECURECLOCK Windows Media 设备管理器正在从服务器获取安全时钟。
SCP_EVENTID_NEEDTOINDIV 设备正在个性化。 当前未使用此功能。
SCP_EVENTID_DRMINFO 此事件 ID 用于使用每个文件的内容中找到的版本 DRM 标头通知应用程序。

返回的 OPAQUECOMMAND 结构将 guidCommand 成员设置为 SCP_PARAMID_DRMVERSION。

此外,OPAQUECOMMAND 指定以下标志之一:

WMDM_SCP_DRMINFO_NOT_DRMPROTECTED

WMDM_SCP_DRMINFO_V1HEADER

WMDM_SCP_DRMINFO_V2HEADER

EVENT_WMDM_CONTENT_TRANSFER 正在向设备传输内容或从设备传输内容。

[in] dwEstimatedTicks

DWORD ,指定完成操作所需的估计时钟周期数。 dwEstimatedTicks 中传递的刻度数是完成操作所需的时钟周期数的估计值。 在操作过程中,将调用 Progress3 方法以指示已发生的时钟周期数。 应用程序可以使用估算配置显示进度的显示机制。

[in, out] pContext

指向 OPAQUECOMMAND 结构的指针,该结构包含发送到设备的命令,而无需由 Windows Media 设备管理器处理。 此参数是可选的,可以为 NULL

返回值

应用程序应返回以下 HRESULT 值之一。

返回代码 说明
S_OK
操作应继续。
WMDM_E_USER_CANCELLED
Windows Media 设备管理器应取消当前操作,而无需等待操作完成。 如果应用程序使用块模式,则 Windows Media 设备管理器 会将此错误返回给应用程序。

注解

应用程序返回S_OK指示应继续操作,WMDM_E_USER_CANCELLED指示应取消该操作。 如果应用程序使用块模式并返回WMDM_E_USER_CANCELLED,则 Windows Media 设备管理器 将向应用程序返回相同的错误。

示例

以下 C++ 代码演示 Begin3 的示例实现。


HRESULT Begin3(GUID  EventId, DWORD  dwEstimatedTicks, OPAQUECOMMAND*  pContext)
{
    WCHAR strGuid[64];
    StringFromGUID2(reinterpret_cast<GUID&>(EventId),(LPOLESTR)strGuid, 64);
    // TODO: Display the message "IWMDMProgress3::Begin3 called." 
    // followed by the strGuid value.
    return S_OK;
}

要求

要求
目标平台 Windows
标头 mswmdm.h
Library Mssachlp.lib

另请参阅

启用通知

IWMDMProgress3 接口

IWMDMProgress::Begin