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 中的事件通知 和 实现建议接收器对象。