打开邮件
适用于:Outlook 2013 | Outlook 2016
打开邮件
从以下源之一检索消息的条目标识符:
表示其父文件夹的 contents 表中的邮件的行。 有关使用文件夹内容表的详细信息,请参阅 内容表。
使用新邮件通知发送的 NEWMAIL_NOTIFICATION 结构的 lpEntryID 成员。 有关接收和处理通知的详细信息,请参阅 处理通知。
调用消息的 IMAPIProp::GetProps 方法,请求 PR_ENTRYID (PidTagEntryId) 属性。
调用以下 OpenEntry 方法之一以打开消息,并将 lpEntryID 设置为消息的条目标识符:
最快的方法仅适用于传入邮件,并且涉及调用接收文件夹的 IMAPIFolder::OpenEntry 方法。 下一个最快的方法(调用消息存储的 IMsgStore::OpenEntry 方法)可用于所有消息,因为最慢的方法调用 IMAPISession::OpenEntry。
注意
可以随时关闭文件夹及其内容表,而不会对从其中打开的任何邮件产生不利影响。
打开已保存在磁盘上的消息
调用 StgOpenStorage 以检索 IStorage 接口指针,并传递 pwcsName 参数的消息文件的名称。
LPSTORAGE pStorage = NULL; HRESULT hr = StgOpenStorage (L"MESSAGE.MSG", NULL, STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, NULL, 0, &pStorage);
调用 OpenIMsgOnIStg 以检索 IMessage 接口指针以访问消息。
LPMESSAGE pMessage = NULL; LPMALLOC pMalloc = MAPIGetDefaultMalloc(); hr = OpenIMsgOnIStg (NULL, MAPIAllocateBuffer, MAPIAllocateMore, MAPIFreeBuffer, pMalloc, NULL, pStorage, NULL, 0, 0, &pMessage);