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系统及其函数的示例。