如何初始化IMAPISession OpenMsgStore

how to initialize IMAPISession OpenMsgStore?

本文关键字:OpenMsgStore IMAPISession 初始化      更新时间:2023-10-16

我使用MAPI来跟踪传入的消息。(使用c++)我已经调用MAPIInitialize和LAPILogonEx如下:

    HRESULT hr;
    hr = MAPIInitialize(0);
    IMAPISession *pSession;
    hr = MAPILogonEx(0, NULL, NULL, 0, (LPMAPISESSION *)&pSession);

我想为通知注册这个,因为我想跟踪传入的消息。因此,我尝试在调用IMsgStore::Advise之前调用IMAPISession::OpenMsgStore,如下所示:

   IMsgStore *imsg = NULL;
   hr = pSession->OpenMsgStore(NULL, NULL, 0, NULL, 0, &imsg);
但是上面的调用不起作用(它返回-2147221241)。我将0传递给条目ID,因为我想跟踪所有文件夹中的消息。有人能告诉我我哪里错了吗?任何帮助都将非常感激。由于

错误是mapie_invalid_entryid。不能为条目id传递NULL。您需要调用IMAPIsession:: getmsgstorestable,找到您需要的消息存储,然后将其条目id传递给OpenMsgStore。