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

Informa del progreso de la sincronización de un único elemento de sincronización con el Centro de sincronización.

Sintaxis

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

Puntero a un búfer que contiene el identificador único del elemento que se está sincronizando actualmente. Esta cadena tiene una longitud máxima MAX_SYNCMGR_ID incluido el carácter nulo de terminación.

[in] pszProgressText

Tipo: LPCWSTR

Puntero a un búfer que contiene una cadena Unicode para cualquier mensajería de progreso personalizada para este elemento.

[in] nStatus

Tipo: SYNCMGR_PROGRESS_STATUS

Valor de la enumeración SYNCMGR_PROGRESS_STATUS que indica el estado de progreso actual de la sincronización.

[in] uCurrentStep

Tipo: ULONG

Paso actual de la sincronización. Si la marca SYNCMGR_PS_UPDATING_INDETERMINATE se establece en nStatus, se omite este parámetro.

[in] uMaxStep

Tipo: ULONG

Número total de pasos necesarios para completar la sincronización del elemento. Si la marca SYNCMGR_PS_UPDATING_INDETERMINATE se establece en nStatus, se omite este parámetro.

[out] pnCancelRequest

Tipo: SYNCMGR_CANCEL_REQUEST*

Cuando este método devuelve, apunta a un valor de la enumeración SYNCMGR_CANCEL_REQUEST que especifica la naturaleza de una solicitud de cancelación, si existe.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Si desea informar del progreso en el controlador en lugar de elementos de sincronización individuales, llame a ISyncMgrSyncCallback::SetHandlerProgressText.

Si se ha cancelado la sincronización, el controlador llama a ISyncMgrSyncCallback::ReportProgress en el elemento una última vez, confirmando la solicitud de cancelación especificando SYNCMGR_PS_CANCELED en el parámetro nStatus . Esto actualiza la interfaz de usuario y también permite al usuario reiniciar una sincronización para ese elemento.

Una vez que este método notifica un estado de finalización (SYNCMGR_PS_SUCCEEDED, SYNCMGR_PS_FAILED o SYNCMGR_PS_CANCELED), se SYNCMGR_PS_FAILED el único informe de estado adicional que se puede realizar. Cualquier otro valor hace que este método devuelva E_ACCESSDENIED y centro de sincronización para marcar el elemento como erróneo.

Este método reemplaza a Progress.

La longitud máxima de una cadena de progreso es MAX_SYNCMGR_PROGRESSTEXT. Esta constante se define en SyncMgr.h.

Ejemplos

En el ejemplo siguiente se muestra el uso de ISyncMgrSyncCallback::ReportProgress por el 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 Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado syncmgr.h