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 值。
傳回碼 | 描述 |
---|---|
|
作業應該會繼續。 |
|
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 |