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 |