CE MAPI实例讲解 --- 监视Message的状态改变

UOS的ARM机编译QT5.14.2记录 我需要的qt版本是Qt5.14.2,所以选择编译Qt5.14.2源码;几个月前尝试了编译一次,当时编译过程中出现了报错,当时时间很紧最后安装的默认版本来使用,最近有时间重新进行了一次编译,历经3个星期(4G的内存)终于解决了各种坑,编译成功了,现在将编译过程中遇见的一些坑记录一下,方便日后能记得这一次可恶的编译过程,如有描述欠缺的地方,还希望各位大佬给点意见指导指导🙏。 阅读详情

有时候,我们需要关心某条message的改变,需要做出及时的响应,我们当然不能主动的不断的QUERY MESSAGE的状态,好在系统提供了IMAPIAdviseSink,通过它我们可以获得Message移动、改变以及删除等等通知。

     首先我们要做的是实现自己的IMAPIAdviseSink接口,原型是:

       class CAdviseSink : public IMAPIAdviseSink 

     {

         public:

              CAdviseSink();

              ~CAdviseSink();

              MAPIMETHOD_(ULONG,OnNotify)(ULONG cNotif, LPNOTIFICATION lpNotifications);

              MAPIMETHOD(QueryInterface)(REFIID iid, void** ppvObject);

              MAPIMETHOD_(ULONG, AddRef)();

              MAPIMETHOD_(ULONG, Release)();

 

         private:

              ULONG              m_cRef;

     };

       我们主要关注的是OnNotify,其他函数我们可以按照标准实现就可以了。我们先来看看OnNotify的一个简单的实现,关键地方我加了注释:

     ULONG CAdviseSink::OnNotify(ULONG cNotif, LPNOTIFICATION lpNotifications)

     {       

         // cNotif : 指定有多少个Notification通知

         // lpNotifications : Notification数组,个数为cNotif

          for(int i = 0; i < (int)cNotif; ++i)

         {

              //根据不同的Notification类型做不同的处理,类型有很多种,这里只是简单的列出的几种,要获取这些通知和注册AdviseSink密切相关,你需要告诉系统,你关心哪些方面的消息,比如消息的移动,删除等等,系统就会把这些相应的通知发给你,而其他你不关心的,就不会通知到你,这些我们会在后面注册部分讲到。

              switch(lpNotifications[i].ulEventType)

              {

                   case fnevObjectMoved:

                        break;

                   case fnevObjectModified:

                        break;  

                   case fnevObjectDeleted:

                        break;

                   default:

                       break;  

              }

         }

         return 0;

     }   

    

     接下来是注册AdviseSink,它与每个Account的Store相对应,比如SMS、OUTLOOK等等。以下是注册步骤:

A.        获取要监视的Message Store对象,从前面的文章里的我们已经知道如何获得指定的Message Store,这里我们拿SMS的Store来举例。

B.        创建我们自己的CAdviseSink对象

C.        调用IMsgStore::Advise注册

以下是注册示例代码:

IMsgStore* pMsgStore   = …… //获取SMS Message Store

CAdviseSink* g_pAdviseSink = new CAdviseSink();

ULONG m_ulAdviseSink   = 0; //用来标识AdviseSink,当取消注册时我们需要用到它。

// uEventMask : 它的作用是告诉系统,我们关心哪些方面的notification,没有列出来的事件在CAdviseSink::OnNotify里面就不会响应到。

ULONG uEventMask = fnevCriticalError | fnevNewMail | fnevObjectCreated | fnevObjectDeleted |

              fnevObjectModified | fnevObjectMoved | fnevObjectCopied | fnevSearchComplete | fnevTableModified |      

              fnevStatusObjectModified | fnevReservedForMapi | fnevExtended; 

pMsgStore->Advise(0, NULL, uEventMask, g_pAdviseSink, &m_ulAdviseSink);

这样就注册成功了。

 

以下是取消注册的示例代码:

if(m_ulAdviseSink)

{

     pMsgStore->Unadvise(m_ulAdviseSink);

}

//记的释放对象

if(g_pAdviseSink)

{

     delete g_pAdviseSink;

     g_pAdviseSink = NULL;

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pysjp/archive/2008/10/24/3137712.aspx

Gradient Accumulation 梯度累加/梯度累积 (Pytorch) 我们在训练神经网络的时候,batch_size的大小会对最终的模型效果产生很大的影响。一定条件下,batch_size设置的越大,模型就会越稳定。batch_size的值通常设置在 8-32 之间,但是当我们做一些计算量需求大的任务(例如语义分割、GAN等)或者输入图片尺寸太大的时候,我们的batch size往往只能设置为2或者4,否则就会出现 “CUDA OUT OF MEMORY” 的不可抗力报错。 那么如何在有限的计算资源的条件下,训练时采用更大的batch size... 阅读详情

相关推荐

解决com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60027, active 20, maxActive 20错误

全网详细解决com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60027, active 20, maxActive 20, creating 0, createErrorCount 24的错误

念兮为美 386

cmake进阶内建变量及指令(六)

前言 cmake构建系统有一套自己的语法树 定义变量 定义和取消变量的语法: set(variable_name variable_value) #定义变量 set(variable_name variable_value) #改变变量的值 unset(variable_name) #取消变量的定义 变量名区分大小写,且值始终是string类型的。cmake中 ON、YES、TRUE、非0数字、非空字符串代表真;OFF、NO、FALSE、0、空字符串("")代表假 变量引用的形式

翻肚鱼儿的博客 1690

uniapp [全端兼容] - 详细实现下拉筛选菜单功能组件,下拉式筛选菜单效果,类似电商美团点击筛选项底部弹出列表点击选择后自动收起(详细示例代码,全端兼容小程序、安卓苹果app、h5网页、nvue

uni-app,vue2,vue3,向下弹出菜单包含筛选功能,日期筛选,下拉框选择器,下拉多条件筛选,下拉式筛选菜单,uniApp如何实现条件下拉筛选,Uniapp官方条件筛选组件,下拉框式条件筛选插件组件,最好用的插件组件,多端兼容,下拉菜单筛选,过滤筛选列表,下拉筛选栏,多列联动的条件筛选,下拉菜单地区和筛选,微信小程序,支付宝小程序,h5网页,移动端网站,安卓app,苹果app,nvue,uniapp所有平台兼容,下拉菜单筛选,下拉式条件筛选,下拉列表,点击排序,级联筛选,uniapp实现下拉筛选

🏆 前端领域优质创作者 1万+

CMake语法—选项(option)

CMake语法—选项(option) 1 选项 1.1 定义 option(<variable> "<help_text>" [value]) 1.2 说明 variable 选项名 help_text 描述、解释、备注 value 选项初始化值(除ON而外全为OFF) 2 应用注意事项 2.1 代码结构 learn_cmake:为根目录 build:为CMake配置输出目录(在此例中即生成sln解决方案的地方) CMa

whl0071的专栏 3926

C语言MESS函数,CMAKE——message()函数

message :为用户显示一条消息。message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]"message to display" ...)可以用下述可选的关键字指定消息的类型:(无) = 重要消息;STATUS = 非重要消息;WARNING = CMake 警告, 会继续执行;AUTHOR_WARNING = CMake...

weixin_39707693的博客 1229

CMake:编译日志信息的使用(五)

CMake警告和错误消息的文本显示使用的是一种简单的标记语言。文本没有锁紧超过长度的行会回卷,段落之间以新行作为分隔符。上显示其他所有消息。CMake的GUI会在它的log区域显示所有消息。在CMake中可以用用户显示一条信息,该命令的名字为。CMake的命令行工具会在。

weixin_43808717的博客 832

Magento2 queue_message、queue_message_status、max_messages详解

Magento 2中queue_message_status表中number_of_trials字段是用于记录消息队列中每个消息的处理尝试次数。当Magento 2处理一个消息时,它会尝试多次处理该消息,直到处理成功或达到最大尝试次数。每次处理尝试失败后,Magento 2将更新number_of_trials字段的值,并将消息标记为“失败”或“重试”。number_of_trials字段的值表示已经尝试处理该消息的次数。

金哥铁码的博客 788

CE MAPI实例讲解 --- 监视Message的状态改变(三)

  有时候,我们需要关心某条message改变,需要做出及时的响应,我们当然不能主动的不断的QUERY MESSAGE的状态,好在系统提供了IMAPIAdviseSink,通过它我们可以获得Message移动、改变以及删除等等通知。     首先我们要做的是实现自己的IMAPIAdviseSink接口,原型是:       class CAdviseSink : public IMA

pysjp的专栏 1229

CE MAPI实例讲解【http://heliboy110.blog.163.com/blog/s】

(一)如何获取Inbox里的所有消息 第一次写这玩意,感觉挺别扭,不过想想以前遇到问题的时候, 也从网络上得到过很多帮助,同时在CSDN,也看到有些网友在问关于MAPI的问题,自己虽然水平不怎么样,写东西也烂,但是觉的有必要将自己这几年积累 的东西同大家分享一下,希望对大家能有些帮助。我的写作能力不怎么样,这点接下来看我的文章就会有感觉,呵呵,所以我会尽量用代码来表达我的意思,对于一 些理论...

大郭的涂鸦 346

Cmake中message函数 如何优雅地输出

Cmake中强大的输出函数message解析

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 2965

RocketMQ-Message

Message ID 消息的全局唯一标识,由 MQ 系统自动生成,唯一标识某条消息。 Topic 消息主题,一级消息类型,通过 Topic 对消息进行分类。 Tag 消息标签,二级消息类型,用来进一步区分某个 Topic 下的消息分类。 messageTrackList consumerGroup 消费集群名称 trackType 当前状态。取值如下 CO...

zym_1321的博客 3027

CE MAPI实例讲解 --- Custom Form介绍(九)

  一直很想写些关于Custom Form和Transport方面的东西,但是一方面这几个部分东西比较多,一篇两篇也讲不完,另外一方面感觉用的人不多,写了也是白写,所以一直没动手。最近有不少网友通过MAIL或者在CSDN论坛上都提到了Custom Form的用法(主要是想实现自己的类如MMS之类的客户端),在这里我简单介绍一下Custom Form的使用方法,希望对有需要的朋友能有所帮助。  

pysjp的专栏 1204

C++学习(二六九)CMake的message输出信息

message("osg-lib=${osg-lib}")

hankern的专栏 743

(三)监视Message的状态改变

<br />有时候,我们需要关心某条message改变,需要做出及时的响应,我们当然不能主动的不断的QUERY MESSAGE的状态,好在系统提供了IMAPIAdviseSink,通过它我们可以获得Message移动、改变以及删除等等通知。<br />     首先我们要做的是实现自己的IMAPIAdviseSink接口,原型是:<br />       class CAdviseSink : public IMAPIAdviseSink <br />     {<br />         public

sc116116111的专栏 608

CMake之message()函数的使用和打印变量值

message :为用户显示一条消息 message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...) 可以用下述可选的关键字指定消息的类型: (无) = 重要消息; STATUS = 非重要消息; WARNING = CMake 警告, 会继续执行; AUTHOR_WARNING = CMake 警告 (dev), 会继续执行; SEND_ERROR = CMake 错误, 继续

斧冰 4万+

消息框Messager使用方法

1.使用Easyui前台框架,页面需要引入相应的js和css,包括 2.Messager消息框的方法使用实例 名称 参数 说明 $.messager.alert title, msg, icon, fn 显示一个提示窗口。参数: title: 显示在头部面板的标题文字。 msg: 显示的消息文字。 icon: 显示图标的图

Sxuehua的专栏 2635

QQ状态查询程序

前几天在网上看到的方法,打开地址http://wpa.qq.com/pa?p=1:88888:4能看到88888的在线状态。刚才把它弄成个小程序,自己编程特烂,希望高手指出错误。开始用IDHTTP组件,不知道为啥老出错,所以改用CLIENTSOCKET组件了。unit UtMain;interfaceuses  Windows, Messages, SysUtils, Variants, Clas

蓝色的雨 2323

api接口返回统一数据格式 status、message、data

/** * [apiReturn 用于给app提供接口使用 带有请求结果状态表示,和结果提示,默认返回json] * @param [number] $status [请求结果的状态标识,设定后要在文档中给予说明] * @param string $message [请求结果的提示语句] * @param [array] $data [请求返回

A9925的专栏 9446

vivado中工程调试出现的一些critical Messages解决方法

1. create_clock:No valid object(s) found for '-objects[get_ports{pcie_sys_clk_clk_p[0]}]'. 这个错误的原因是我在源代码的基础上又包了一层,包了一个顶层,然后输入的信号input pcie_sys_clk_clk_p 需要在后面加一句声明 wirepcie_sys_clk_clk_p; 加上后就...

nature_forest的博客 1万+

MAPISendMessage 和应用程序挂起

最近在做项目时,碰到一个棘手的问题。当使用outlook express 当做系统默认的邮件客户端时,“Internet Explorer_Server“(邮件内容编辑窗口)一旦被激活,应用程序就被挂起。这主要是outlook client window 创建了另一个线程并block 当前的主线程,但当这个client window 被关掉时(用户点击了发送按钮,或系统关闭按钮),outl

whtank的专栏 560

(全新整理)中国626个城市二手房房价历史数据(2010.1-2025.7)样本数量:42522条

1、资源内容地址:https://blog.csdn.net/2301_79696294/article/details/1558917882、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题3、适用对象:大学生,本科生,研究生小白可用,容易上手!!!4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理

Master PDF Editor v5.9.50便携版.zip

Master PDF Editor v5.9.50便携版.zip含下载地址可存云盘

上一篇: wince上如何读取和备份、删除联系人
下一篇: MESSAGE的状态
strliu
博客等级 码龄19年 75粉丝 38原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值