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 |