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 |