HrThisThreadAdviseSink

适用于:Outlook 2013 | Outlook 2016

创建一个建议接收器,用于包装现有的建议接收器,以确保线程安全。

属性
标头文件:
Mapiutil.h
实现者:
MAPI
调用者:
客户端应用程序
HrThisThreadAdviseSink(
  LPMAPIADVISESINK lpAdviseSink,
  LPMAPIADVISESINK FAR * lppAdviseSink
);

参数

lpAdviseSink

[in]指向要包装的建议接收器的指针。

lppAdviseSink

[out]指向新建议接收器的指针的指针,该接收器包装 lpAdviseSink 参数指向的建议接收器。

返回值

无。

说明

包装器的用途是确保在调用 HrThisThreadAdviseSink 函数的同一线程上调用通知。 此函数用于保护必须在特定线程上运行的通知回调。

客户端应用程序应使用 HrThisThreadAdviseSink 来限制何时生成通知,即,在上一次建议调用中客户端传递的通知接收器对象的 IMAPIAdviseSink::OnNotify 方法时。 如果允许任意生成通知,则通知实现可能会在不适合时强制客户端执行多线程操作。 例如,客户端可能使用不支持多线程调用的库,例如 Microsoft 基础类库之一。 不同线程上的通知会使此类客户端难以测试,并且容易出错。

HrThisThreadAdviseSink 确保 OnNotify 调用仅在以下适当时间发生:

  • 在处理对任何 MAPI 方法的调用期间。

  • 在处理 Windows 消息期间。

实现 HrThisThreadAdviseSink 时,任何线程上对新建议接收器 OnNotify 方法的任何调用都会在调用 HrThisThreadAdviseSink 的线程上执行原始通知方法。

有关通知和建议接收器的详细信息,请参阅 MAPI 中的事件通知实现建议接收器对象