共用方式為


IWMDMProgress3::P rogress3 方法 (mswmdm.h)

Progress3 方法是由 Windows Media 裝置管理員 呼叫,以指出動作進行中的狀態。 這個方法會藉由提供事件識別 () 標識符的其他輸入參數,以及命令內容的指標,來擴充 IWMDMProgress::P rogress

語法

HRESULT Progress3(
  [in]      GUID          EventId,
  [in]      DWORD         dwTranspiredTicks,
  [in, out] OPAQUECOMMAND *pContext
);

參數

[in] EventId

GUID ,指定正在傳送進度通知的事件識別碼。 下表顯示可能的值。

事件 描述
SCP_EVENTID_ACQSECURECLOCK Windows Media 裝置管理員 從伺服器取得安全時鐘。
SCP_EVENTID_NEEDTOINDIV 裝置正在個別化。 這目前未使用。
SCP_EVENTID_DRMINFO 此事件識別碼可用來通知應用程式,其版本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 媒體 裝置管理員 處理。 此參數是選擇性的,可以是 NULL。 如果事件SCP_EVENTID_DRMINFO,此參數中的數據將會有 SCP_PARAMID_DRMVERSION GUID。

傳回值

應用程式應該會傳回下列其中一個 HRESULT 值。

傳回碼 描述
S_OK
作業應該會繼續。
WMDM_E_USER_CANCELLED
Windows Media 裝置管理員 應該取消目前的作業,而不需要等待它完成。 如果應用程式使用封鎖模式,則 Windows Media 裝置管理員 會將此錯誤傳回給應用程式。

備註

擁有實作作業之方法的介面會呼叫 Progress3 方法,因為方法所定義的作業會執行。其意圖是每個估計刻度都會呼叫 Progress3 一次。 不過,必須在每個呼叫上檢查 dwTranoneedTicks 參數,因為執行中的作業不保證每個估計刻度都有一個呼叫。

應用程式會將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
程式庫 Mssachlp.lib

另請參閱

啟用通知

IWMDMProgress3 介面

IWMDMProgress::P rogress