ISyncMgrSyncCallback::ReportProgress 方法 (syncmgr.h)
將單一同步專案的同步處理進度報告至同步處理中心。
語法
HRESULT ReportProgress(
[in] LPCWSTR pszItemID,
[in] LPCWSTR pszProgressText,
[in] SYNCMGR_PROGRESS_STATUS nStatus,
[in] ULONG uCurrentStep,
[in] ULONG uMaxStep,
[out] SYNCMGR_CANCEL_REQUEST *pnCancelRequest
);
參數
[in] pszItemID
類型: LPCWSTR
緩衝區的指標,其中包含目前正在同步處理之專案的唯一標識碼。 此字串的長度上限MAX_SYNCMGR_ID包括終止 的 Null 字元。
[in] pszProgressText
類型: LPCWSTR
緩衝區的指標,其中包含此專案之任何自定義進度傳訊的 Unicode 字串。
[in] nStatus
來自 SYNCMGR_PROGRESS_STATUS 列舉的值,指出同步處理的目前進度狀態。
[in] uCurrentStep
類型: ULONG
同步處理中的目前步驟。 如果在 nStatus 中設定SYNCMGR_PS_UPDATING_INDETERMINATE旗標,則會忽略此參數。
[in] uMaxStep
類型: ULONG
完成專案同步處理所需的步驟總數。 如果在 nStatus 中設定SYNCMGR_PS_UPDATING_INDETERMINATE旗標,則會忽略此參數。
[out] pnCancelRequest
當這個方法傳回時,會指向指定取消要求本質 之SYNCMGR_CANCEL_REQUEST 列舉中的值,如果有的話。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
如果您想要報告處理程式上的進度,而不是個別同步處理專案,請呼叫 ISyncMgrSyncCallback::SetHandlerProgressText。
如果同步處理已取消,處理程式會在專案上呼叫 ISyncMgrSyncCallback::ReportProgress,並在 nStatus 參數中指定SYNCMGR_PS_CANCELED來確認取消要求。 這會更新UI,也允許使用者重新啟動該專案的同步處理。
一旦此方法報告完成狀態 (SYNCMGR_PS_SUCCEEDED、 SYNCMGR_PS_FAILED或 SYNCMGR_PS_CANCELED) ,唯一可以進行的進一步狀態報告就是 SYNCMGR_PS_FAILED。 任何其他值都會讓這個方法傳回E_ACCESSDENIED,而同步處理中心會將項目標示為失敗。
這個方法會取代 Progress。
進度字串的最大長度是MAX_SYNCMGR_PROGRESSTEXT。 此常數定義於 SyncMgr.h 中。
範例
下列範例顯示 Synchronize 方法的 ISyncMgrSyncCallback::ReportProgress 用法。
STDMETHODIMP CMyDeviceHandler::Synchronize(...)
{
...
// Start synchronizing the sync item.
...
// Construct a string to display in the Sync Center folder.
// Report the progress to Sync Center.
SYNCMGR_CANCEL_REQUEST nCancelRequest;
hr = pCallback->ReportProgress(pszItemID,
pszProgressText,
SYNCMGR_PS_UPDATING,
uCurrentStep,
uMaxStep,
&nCancelRequest);
if (SUCCEEDED(hr))
{
if (nCancelRequest != SYNCMGR_CR_NONE)
{
// Synchronization was canceled.
hr = pCallback->ReportProgress(pszItemID,
pszProgressText,
SYNCMGR_PS_CANCELED,
uCurrentStep,
uMaxStep,
NULL);
}
}
...
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | syncmgr.h |