Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 修改MAPI邮件的收件人_C++_Visual C++_Com_Atl_Mapi - Fatal编程技术网

C++ 修改MAPI邮件的收件人

C++ 修改MAPI邮件的收件人,c++,visual-c++,com,atl,mapi,C++,Visual C++,Com,Atl,Mapi,我需要做的是备份MAPI邮件的收件人,并对邮件进行一些修改(这也可能会更改收件人),然后我想再次将备份的收件人复制回邮件,以下是流程: 消息是MAPI IMessage对象 调用message->GetRecipientTable,结果是LPMAPITABLE 对消息进行更改 call message->ModifyRecipients,它接受LPADRLIST 我的问题是,我想获取结果LPMAPITABLE并将其输入ModifyRecipients,但它只需要LPADRLIST。有没有一种方


我需要做的是备份MAPI邮件的收件人,并对邮件进行一些修改(这也可能会更改收件人),然后我想再次将备份的收件人复制回邮件,以下是流程:

消息是MAPI IMessage对象
调用message->GetRecipientTable,结果是LPMAPITABLE
对消息进行更改
call message->ModifyRecipients,它接受LPADRLIST


我的问题是,我想获取结果LPMAPITABLE并将其输入ModifyRecipients,但它只需要LPADRLIST。有没有一种方法可以改变这一点?除了循环LPMAPITABLE并逐个复制之外?

使用
IMAPITable::QueryRows
。或者
HrQueryAllRows
(在单个调用中包装
IMAPITable::SetColumns/Restrict/QueryRows
SRowSet
可以转换为
AdrList
-它们具有相同的内存布局。

。我使用了IMAPITable::QueryRows,但是,我在代码中根本无法使用HrQueryAllRows,我无法使用任何启动Hr的方法,我包括了mapi.h,但链接器总是抱怨:错误1错误LNK2019:未解析的外部符号_HrQueryAllRows@24,我应该包括一个dll或其他东西来让它工作吗?动态加载HrQueryAllRows。查看MFCMAPI源代码以获取有关如何加载MAPI系统及其函数的示例。