Поделиться через


Метод ISyncMgrSyncCallback::ReportEvent (syncmgr.h)

Предоставляет событие для добавления в папку "Результаты синхронизации" для синхронизируемого элемента.

Синтаксис

HRESULT ReportEvent(
  [in]  LPCWSTR             pszItemID,
  [in]  SYNCMGR_EVENT_LEVEL nLevel,
  [in]  SYNCMGR_EVENT_FLAGS nFlags,
  [in]  LPCWSTR             pszName,
  [in]  LPCWSTR             pszDescription,
  [in]  LPCWSTR             pszLinkText,
  [in]  LPCWSTR             pszLinkReference,
  [in]  LPCWSTR             pszContext,
  [out] GUID                *pguidEventID
);

Параметры

[in] pszItemID

Тип: LPCWSTR

Указатель на буфер, содержащий уникальный идентификатор синхронизируемого в данный момент элемента. Эта строка имеет максимальную длину MAX_SYNCMGR_ID включая завершающий символ NULL .

[in] nLevel

Тип: SYNCMGR_EVENT_LEVEL

Значение из перечисления SYNCMGR_EVENT_LEVEL , объявляющее тип задействованного события.

[in] nFlags

Тип: SYNCMGR_EVENT_FLAGS

Не используется.

[in] pszName

Тип: LPCWSTR

Указатель на буфер, содержащий имя события.

[in] pszDescription

Тип: LPCWSTR

Указатель на буфер, содержащий описание события.

[in] pszLinkText

Тип: LPCWSTR

Указатель на буфер, содержащий текст, используемый в гиперссылке на элемент. Этот параметр может иметь значение NULL.

[in] pszLinkReference

Тип: LPCWSTR

Указатель на буфер, содержащий URL-адрес элемента. Этот параметр может иметь значение NULL.

[in] pszContext

Тип: LPCWSTR

Данные обработчика, связанные с событием.

[out] pguidEventID

Тип: GUID*

При возврате этим методом содержит указатель на уникальный идентификатор события.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Чтобы обработчик предоставил пользователю дополнительные сведения о результатах синхронизации, можно расширить страницу свойств для отдельных результатов синхронизации, сообщаемых обработчиком.

Этот метод заменяет LogError.

Событие хранится только в памяти, поэтому все события очищаются при выходе пользователя из системы или завершении работы. Это одна из причин для реализации пользовательского ISyncMgrEventStore, который может предоставлять свои события из любого места, включая файл, по сети или в реестре. Однако в папке результатов синхронизации отображаются события, предоставляемые как внутренним хранилищем событий, так и пользовательскими хранилищами событий, предоставляемыми обработчиками синхронизации.

Примеры

В следующем примере показано использование ISyncMgrSyncCallback::ReportProgress методом Synchronize .

STDMETHODIMP CMyDeviceHandler::Synchronize(...)
{
    ...
    // Get the event receiver interface.
    ISyncMgrEventReceiver *pEventReceiver = NULL;
    hr = pCallback->QueryInterface(IID_ISyncMgrEventReceiver,
                                   (void **) &pEventReceiver);

    ...

    // Start synchronizing the sync item.

    ...

    // Generate a GUID for this item.
    // Construct a string to display in the Sync Results folder.
    // Store the information about this event so we can display more details.
    // Report the event to Sync Center.
    hr = pEventReceiver->ReportEvent(pszItemID,
                                     SYNCMGR_EL_INFORMATION,
                                     SYNCMGR_EF_NONE,
                                     pszEventName,
                                     pszEventDescription,
                                     NULL,
                                     NULL,
                                     NULL,
                                     &guidEventID);
    ...
}

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header syncmgr.h