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

指向缓冲区的指针,该缓冲区包含当前正在同步的项的唯一 ID。 此字符串的最大长度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*

此方法返回时,包含指向事件的唯一 ID 的指针。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

若要使处理程序向用户提供有关同步结果的更多详细信息,可以扩展处理程序报告的各个同步结果的属性表。

此方法替换 LogError

事件仅存储在内存中,因此当用户注销或关闭时,所有事件都会清除。 这是实现自定义 ISyncMgrEventStore 的原因之一,它可以从任意位置(包括文件、网络或注册表)提供其事件。 但是,同步结果文件夹显示由内部事件存储以及由同步处理程序提供的自定义事件存储提供的事件。

示例

以下示例演示了由 Synchronize 方法使用的 ISyncMgrSyncCallback::ReportProgress

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
标头 syncmgr.h