ISyncMgrSyncCallback::ReportProgress-Methode (syncmgr.h)

Meldet den Status der Synchronisierung eines einzelnen Synchronisierungselements an das Synchronisierungscenter.

Syntax

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

Parameter

[in] pszItemID

Typ: LPCWSTR

Ein Zeiger auf einen Puffer, der die eindeutige ID des Elements enthält, das gerade synchronisiert wird. Diese Zeichenfolge hat eine maximale Länge MAX_SYNCMGR_ID einschließlich des endenden NULL-Zeichens .

[in] pszProgressText

Typ: LPCWSTR

Ein Zeiger auf einen Puffer, der eine Unicode-Zeichenfolge für alle benutzerdefinierten Statusmeldungen für dieses Element enthält.

[in] nStatus

Typ: SYNCMGR_PROGRESS_STATUS

Ein Wert aus der SYNCMGR_PROGRESS_STATUS-Enumeration, der den aktuellen Fortschritt status der Synchronisierung angibt.

[in] uCurrentStep

Typ: ULONG

Der aktuelle Schritt der Synchronisierung. Wenn das SYNCMGR_PS_UPDATING_INDETERMINATE-Flag in nStatus festgelegt ist, wird dieser Parameter ignoriert.

[in] uMaxStep

Typ: ULONG

Die Gesamtanzahl der Schritte, die zum Abschließen der Synchronisierung des Elements erforderlich sind. Wenn das SYNCMGR_PS_UPDATING_INDETERMINATE-Flag in nStatus festgelegt ist, wird dieser Parameter ignoriert.

[out] pnCancelRequest

Typ: SYNCMGR_CANCEL_REQUEST*

Wenn diese Methode zurückgibt, zeigt auf einen Wert aus der SYNCMGR_CANCEL_REQUEST Enumeration, die die Art einer Abbruchanforderung angibt, falls vorhanden.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Wenn Sie den Status des Handlers anstelle einzelner Synchronisierungselemente melden möchten, rufen Sie ISyncMgrSyncCallback::SetHandlerProgressText auf.

Wenn die Synchronisierung abgebrochen wurde, ruft der Handler ein letztes Mal ISyncMgrSyncCallback::ReportProgress für das Element auf und bestätigt die Abbruchanforderung, indem er SYNCMGR_PS_CANCELED im nStatus-Parameter angibt. Dadurch wird die Benutzeroberfläche aktualisiert, und der Benutzer kann auch eine Synchronisierung für dieses Element neu starten.

Sobald diese Methode einen Abschluss status (SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED oder SYNCMGR_PS_CANCELED) meldet, kann nur noch SYNCMGR_PS_FAILED status Bericht erstellt werden. Jeder andere Wert bewirkt, dass diese Methode E_ACCESSDENIED zurückgibt und das Synchronisierungscenter das Element als fehlerhaft markiert.

Diese Methode ersetzt Progress.

Die maximale Länge einer Statuszeichenfolge ist MAX_SYNCMGR_PROGRESSTEXT. Diese Konstante ist in SyncMgr.h definiert.

Beispiele

Das folgende Beispiel zeigt die Verwendung von ISyncMgrSyncCallback::ReportProgress durch die Synchronize-Methode .

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);
        }
    }
    ...
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile syncmgr.h