Com 从outlook保存邮件正文

Com 从outlook保存邮件正文,com,outlook,atl,Com,Outlook,Atl,我是COM/ATL开发的新手。我已经为Outlook 2010构建了一个COM外接程序,使用本教程作为主要信息源 当我点击一个按钮(我特别指定了一个)时,我想将邮件正文(收件箱中的所有邮件)保存在一个文本文件中。有人能给我一个主意吗?我该怎么做?任何代码片段都很好 提前谢谢 我的函数如下所示: STDMETHOD(按钮勾选)(IDispatch*RibbonControl) { \u应用程序ptr-pApp; _名称空间ptr pNamespace; pApp->GetNamespace(L“M

我是COM/ATL开发的新手。我已经为Outlook 2010构建了一个COM外接程序,使用本教程作为主要信息源

当我点击一个按钮(我特别指定了一个)时,我想将邮件正文(收件箱中的所有邮件)保存在一个文本文件中。有人能给我一个主意吗?我该怎么做?任何代码片段都很好

提前谢谢

我的函数如下所示: STDMETHOD(按钮勾选)(IDispatch*RibbonControl) {

\u应用程序ptr-pApp;
_名称空间ptr pNamespace;
pApp->GetNamespace(L“MAPI”);
MAPIFolderPtr InboxFolder=pNamespace->GetDefaultFolder(OlFolderInboxFolder);
_ItemsPtr mails=InboxFolder->Items;
const long count=邮件->GetCount();
对于(长i=1;i尝试

请记住,收件箱中可以有MailItem以外的对象(报告项目、会议邀请等),因此您可能希望将从mails.items中检索的对象声明为
IDispatch
,并显式调用
QueryInterface()
,以检索MailItem

    _ApplicationPtr pApp;
    _NameSpacePtr pNamespace;
    pApp->GetNamespace(L"MAPI");
    MAPIFolderPtr InboxFolder = pNamespace->GetDefaultFolder(olFolderInbox);
    _ItemsPtr mails = InboxFolder->Items;
    const long count = mails->GetCount();

    for(long i=1;i<=count;i++)
    {
        //?
    }
    return S_OK;


}
MailItemPtr msg = mails.Items(i);
msg.SaveAs("c:\\myfile.txt", olTxt);