メッセージを開く
適用対象: Outlook 2013 | Outlook 2016
メッセージを開くには
次のいずれかのソースからメッセージのエントリ識別子を取得します。
親フォルダーのコンテンツ テーブル内のメッセージを表す行。 フォルダー コンテンツ テーブルの操作の詳細については、「コンテンツ テーブル」を参照してください。
新しいメール通知で送信されるNEWMAIL_NOTIFICATION構造体の lpEntryID メンバー。 通知の受信と処理の詳細については、「通知の 処理」を参照してください。
PR_ENTRYID (PidTagEntryId) プロパティを要求するメッセージの IMAPIProp::GetProps メソッドの呼び出し。
次のいずれかの 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);