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枚举中的值,声明所涉及的事件类型。
[in] nFlags
未使用。
[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 |