Метод 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
Указатель на буфер, содержащий строку Юникода для любых пользовательских сообщений о ходе выполнения для этого элемента.
[in] nStatus
Значение из перечисления SYNCMGR_PROGRESS_STATUS , указывающее текущее состояние выполнения синхронизации.
[in] uCurrentStep
Тип: ULONG
Текущий шаг синхронизации. Если флаг SYNCMGR_PS_UPDATING_INDETERMINATE задан в nStatus, этот параметр игнорируется.
[in] uMaxStep
Тип: ULONG
Общее количество шагов, необходимых для завершения синхронизации элемента. Если флаг SYNCMGR_PS_UPDATING_INDETERMINATE задан в nStatus, этот параметр игнорируется.
[out] pnCancelRequest
Тип: SYNCMGR_CANCEL_REQUEST*
При возврате этого метода указывает на значение из перечисления SYNCMGR_CANCEL_REQUEST , указывающее характер запроса на отмену, если таковой имеется.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Если вы хотите сообщать о ходе выполнения обработчика, а не отдельные элементы синхронизации, вызовите метод ISyncMgrSyncCallback::SetHandlerProgressText.
Если синхронизация была отменена, обработчик вызывает ISyncMgrSyncCallback::ReportProgress для элемента в последний раз, подтверждая запрос отмены, указав SYNCMGR_PS_CANCELED в параметре nStatus . Это обновит пользовательский интерфейс, а также позволит пользователю перезапустить синхронизацию для этого элемента.
После того как этот метод сообщает о состоянии завершения (SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED или SYNCMGR_PS_CANCELED), единственным дополнительным отчетом о состоянии, который можно создать, будет SYNCMGR_PS_FAILED. Любое другое значение приводит к тому, что этот метод возвращает E_ACCESSDENIED и центр синхронизации, чтобы пометить элемент как сбой.
Этот метод заменяет Progress.
Максимальная длина строки выполнения — MAX_SYNCMGR_PROGRESSTEXT. Эта константа определена в файле SyncMgr.h.
Примеры
В следующем примере показано использование ISyncMgrSyncCallback::ReportProgress методом Synchronize .
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 |
Header | syncmgr.h |