Condividi tramite


ISyncSessionState::OnProgress

Segnala lo stato di avanzamento della sincronizzazione all'applicazione.

HRESULT OnProgress(
  SYNC_PROVIDER_ROLE provider,
  SYNC_PROGRESS_STAGE syncStage,
  DWORD dwCompletedWork,
  DWORD dwTotalWork);

Parametri

  • provider
    [in] Ruolo del provider che invia questo evento.
  • syncStage
    [in] Fase corrente della sessione di sincronizzazione.
  • dwCompletedWork
    [in] Quantità di lavoro attualmente completato nella sessione. Questo valore viene interpretato come parte di dwTotalWork.
  • dwTotalWork
    [in] Lavoro totale per la sessione.

Valore restituito

  • S_OK

  • E_INVALIDARG quando provider o syncStage non è un valore valido.

Osservazioni

È possibile utilizzare questo metodo per segnalare lo stato di avanzamento personalizzato all'applicazione. Quando un provider chiama tale metodo, viene generato l'evento ISyncCallback::OnProgress.

Quando si specifica SPS_CHANGE_APPLICATION per syncStage, Sync Framework accumula il lavoro totale completato specificato da dwCompletedWork ogni volta che viene chiamato ISyncSessionState::OnProgress. Sync Framework interpreta inoltre dwTotalWork come lavoro rimanente per la sessione e calcola il lavoro totale per la sessione aggiungendo dwTotalWork al valore accumulato per il lavoro completato. Sync Framework passa tali valori calcolati a ISyncCallback::OnProgress. Quando syncStage è qualsiasi altro valore valido, dwCompletedWork e dwTotalWork vengono passati direttamente a ISyncCallback::OnProgress.

Quando il provider di origine specifica le stime di lavoro, si potrebbero ottenere risultati imprevisti quando un provider chiama ISyncSessionState::OnProgress e specifica SPS_CHANGE_APPLICATION per syncStage. Questo avviene in quanto Sync Framework somma il valore relativo al lavoro completato ogni volta che vengono inviate notifiche dello stato di avanzamento durante l'applicazione delle modifiche. Se un provider invia la propria notifica dello stato di avanzamento e specifica SPS_CHANGE_APPLICATION per syncStage, Sync Framework aggiunge i valori relativi al lavoro stimato specificati dal provider al lavoro totale completato per la sessione. È pertanto possibile che lo stesso lavoro venga calcolato due volte, una volta quando viene segnalato da Sync Framework e un'altra quando viene segnalato dal provider.

Vedere anche

Riferimento

Interfaccia ISyncSessionState

Concetti

Segnalazione dello stato della sincronizzazione