Partager via


Méthode ISyncMgrSyncCallback ::ReportProgress (syncmgr.h)

Signale la progression de la synchronisation d’un élément de synchronisation unique au Centre de synchronisation.

Syntaxe

HRESULT ReportProgress(
  [in]  LPCWSTR                 pszItemID,
  [in]  LPCWSTR                 pszProgressText,
  [in]  SYNCMGR_PROGRESS_STATUS nStatus,
  [in]  ULONG                   uCurrentStep,
  [in]  ULONG                   uMaxStep,
  [out] SYNCMGR_CANCEL_REQUEST  *pnCancelRequest
);

Paramètres

[in] pszItemID

Type : LPCWSTR

Pointeur vers une mémoire tampon contenant l’ID unique de l’élément en cours de synchronisation. Cette chaîne a une longueur maximale MAX_SYNCMGR_ID y compris le caractère null de fin.

[in] pszProgressText

Type : LPCWSTR

Pointeur vers une mémoire tampon contenant une chaîne Unicode pour toute messagerie de progression personnalisée pour cet élément.

[in] nStatus

Type : SYNCMGR_PROGRESS_STATUS

Valeur de l’énumération SYNCMGR_PROGRESS_STATUS indiquant la progression actuelle status de la synchronisation.

[in] uCurrentStep

Type : ULONG

Étape actuelle de la synchronisation. Si l’indicateur SYNCMGR_PS_UPDATING_INDETERMINATE est défini dans nStatus, ce paramètre est ignoré.

[in] uMaxStep

Type : ULONG

Nombre total d’étapes nécessaires pour terminer la synchronisation de l’élément. Si l’indicateur SYNCMGR_PS_UPDATING_INDETERMINATE est défini dans nStatus, ce paramètre est ignoré.

[out] pnCancelRequest

Type : SYNCMGR_CANCEL_REQUEST*

Lorsque cette méthode retourne, pointe vers une valeur de l’énumération SYNCMGR_CANCEL_REQUEST spécifiant la nature d’une demande d’annulation, le cas échéant.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Si vous souhaitez signaler la progression sur le gestionnaire plutôt que sur des éléments de synchronisation individuels, appelez ISyncMgrSyncCallback ::SetHandlerProgressText.

Si la synchronisation a été annulée, le gestionnaire appelle ISyncMgrSyncCallback ::ReportProgress sur l’élément une dernière fois, en reconnaissant la demande d’annulation en spécifiant SYNCMGR_PS_CANCELED dans le paramètre nStatus . Cela met à jour l’interface utilisateur et permet également à l’utilisateur de redémarrer une synchronisation pour cet élément.

Une fois que cette méthode signale un status d’achèvement (SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED ou SYNCMGR_PS_CANCELED), le seul rapport status supplémentaire qui peut être effectué est SYNCMGR_PS_FAILED. Toute autre valeur fait que cette méthode retourne E_ACCESSDENIED et le Centre de synchronisation pour marquer l’élément comme ayant échoué.

Cette méthode remplace Progress.

La longueur maximale d’une chaîne de progression est MAX_SYNCMGR_PROGRESSTEXT. Cette constante est définie dans SyncMgr.h.

Exemples

L’exemple suivant montre l’utilisation de ISyncMgrSyncCallback ::ReportProgress par la méthode 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);
        }
    }
    ...
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête syncmgr.h