Condividi tramite


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