Compartilhar via


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

Relata o progresso da sincronização de um único item de sincronização para o Centro de Sincronização.

Sintaxe

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

Parâmetros

[in] pszItemID

Tipo: LPCWSTR

Um ponteiro para um buffer que contém a ID exclusiva do item que está sendo sincronizado no momento. Essa cadeia de caracteres tem comprimento máximo MAX_SYNCMGR_ID incluindo o caractere nulo de terminação.

[in] pszProgressText

Tipo: LPCWSTR

Um ponteiro para um buffer que contém uma cadeia de caracteres Unicode para qualquer mensagem de progresso personalizada para este item.

[in] nStatus

Tipo: SYNCMGR_PROGRESS_STATUS

Um valor da enumeração SYNCMGR_PROGRESS_STATUS informando o progresso atual status da sincronização.

[in] uCurrentStep

Tipo: ULONG

A etapa atual na sincronização. Se o sinalizador SYNCMGR_PS_UPDATING_INDETERMINATE for definido em nStatus, esse parâmetro será ignorado.

[in] uMaxStep

Tipo: ULONG

O número total de etapas necessárias para concluir a sincronização do item. Se o sinalizador SYNCMGR_PS_UPDATING_INDETERMINATE for definido em nStatus, esse parâmetro será ignorado.

[out] pnCancelRequest

Tipo: SYNCMGR_CANCEL_REQUEST*

Quando esse método retorna, aponta para um valor da enumeração SYNCMGR_CANCEL_REQUEST especificando a natureza de uma solicitação de cancelamento, se houver.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Se você quiser relatar o progresso no manipulador em vez de itens de sincronização individuais, chame ISyncMgrSyncCallback::SetHandlerProgressText.

Se a sincronização tiver sido cancelada, o manipulador chamará ISyncMgrSyncCallback::ReportProgress no item uma última vez, reconhecendo a solicitação de cancelamento especificando SYNCMGR_PS_CANCELED no parâmetro nStatus . Isso atualiza a interface do usuário e também permite que o usuário reinicie uma sincronização para esse item.

Depois que esse método relata uma status de conclusão (SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED ou SYNCMGR_PS_CANCELED), o único relatório de status adicional que pode ser feito é SYNCMGR_PS_FAILED. Qualquer outro valor faz com que esse método retorne E_ACCESSDENIED e o Centro de Sincronização para marcar o item como com falha.

Esse método substitui Progress.

O comprimento máximo de uma cadeia de caracteres de progresso é MAX_SYNCMGR_PROGRESSTEXT. Essa constante é definida em SyncMgr.h.

Exemplos

O exemplo a seguir mostra o uso de ISyncMgrSyncCallback::ReportProgress pelo método 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);
        }
    }
    ...
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho syncmgr.h