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
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 |