Metodo ISyncMgrCallback::ReportProgress (syncmgr.h)
Segnala lo stato di avanzamento della sincronizzazione di un singolo elemento di sincronizzazione in Sync Center.
Sintassi
HRESULT ReportProgress(
[in] LPCWSTR pszItemID,
[in] LPCWSTR pszProgressText,
[in] SYNCMGR_PROGRESS_STATUS nStatus,
[in] ULONG uCurrentStep,
[in] ULONG uMaxStep,
[out] SYNCMGR_CANCEL_REQUEST *pnCancelRequest
);
Parametri
[in] pszItemID
Tipo: LPCWSTR
Puntatore a un buffer contenente l'ID univoco dell'elemento attualmente sincronizzato. Questa stringa è di lunghezza massima MAX_SYNCMGR_ID incluso il carattere null di terminazione.
[in] pszProgressText
Tipo: LPCWSTR
Puntatore a un buffer contenente una stringa Unicode per qualsiasi messaggistica di stato personalizzata per questo elemento.
[in] nStatus
Tipo: SYNCMGR_PROGRESS_STATUS
Valore dell'enumerazione SYNCMGR_PROGRESS_STATUS che indica lo stato di avanzamento corrente della sincronizzazione.
[in] uCurrentStep
Tipo: ULONG
Passaggio corrente della sincronizzazione. Se il flag SYNCMGR_PS_UPDATING_INDETERMINATE è impostato in nStatus, questo parametro viene ignorato.
[in] uMaxStep
Tipo: ULONG
Numero totale di passaggi necessari per completare la sincronizzazione dell'elemento. Se il flag SYNCMGR_PS_UPDATING_INDETERMINATE è impostato in nStatus, questo parametro viene ignorato.
[out] pnCancelRequest
Tipo: SYNCMGR_CANCEL_REQUEST*
Quando termina, questo metodo punta a un valore dell'enumerazione SYNCMGR_CANCEL_REQUEST che specifica la natura di una richiesta di annullamento, se presente.
Valore restituito
Tipo: HRESULT
Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
Se si vuole segnalare lo stato di avanzamento nel gestore anziché sui singoli elementi di sincronizzazione, chiamare ISyncMgrCallback::SetHandlerProgressText.
Se la sincronizzazione è stata annullata, il gestore chiama ISyncMgrSyncCallback::ReportProgress sull'elemento una volta finale, confermando la richiesta di annullamento specificando SYNCMGR_PS_CANCELED nel parametro nStatus . Questo aggiorna l'interfaccia utente e consente anche all'utente di riavviare una sincronizzazione per tale elemento.
Dopo che questo metodo segnala uno stato di completamento (SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED o SYNCMGR_PS_CANCELED), viene SYNCMGR_PS_FAILED l'unico report di stato aggiuntivo che può essere eseguito. Qualsiasi altro valore fa sì che questo metodo restituisca E_ACCESSDENIED e Centro sincronizzazione contrassegni l'elemento come non riuscito.
Questo metodo sostituisce Progress.
La lunghezza massima di una stringa di stato è MAX_SYNCMGR_PROGRESSTEXT. Questa costante è definita in SyncMgr.h.
Esempio
Nell'esempio seguente viene illustrato l'utilizzo di ISyncMgrSyncCallback::ReportProgress tramite il metodo 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);
}
}
...
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | syncmgr.h |