次の方法で共有


メッセージを開く

適用対象: Outlook 2013 | Outlook 2016

メッセージを開くには

  1. 次のいずれかのソースからメッセージのエントリ識別子を取得します。

    • 親フォルダーのコンテンツ テーブル内のメッセージを表す行。 フォルダー コンテンツ テーブルの操作の詳細については、「コンテンツ テーブル」を参照してください。

    • 新しいメール通知で送信されるNEWMAIL_NOTIFICATION構造体の lpEntryID メンバー。 通知の受信と処理の詳細については、「通知の 処理」を参照してください。

    • PR_ENTRYID (PidTagEntryId) プロパティを要求するメッセージの IMAPIProp::GetProps メソッドの呼び出し。

  2. 次のいずれかの OpenEntry メソッドを呼び出してメッセージを開き、 lpEntryID をメッセージのエントリ識別子に設定します。

最速のメソッドは受信メッセージにのみ使用でき、受信フォルダーの IMAPIFolder::OpenEntry メソッドを呼び出す必要があります。 メッセージ ストアの IMsgStore::OpenEntry メソッドを呼び出す次に最も高速なメソッドは、 IMAPISession::OpenEntry を呼び出す最も低速なメソッドと同様に、すべてのメッセージで使用できます。

注:

フォルダーとそのコンテンツ テーブルは、その中から開かれたメッセージに悪影響を与えることなく、いつでも閉じることができます。

ディスクに保存されているメッセージを開くには

  1. StgOpenStorage を呼び出して IStorage インターフェイス ポインターを取得し、pwcsName パラメーターのメッセージ ファイルの名前を渡します。

     LPSTORAGE pStorage = NULL;
     HRESULT hr = StgOpenStorage (L"MESSAGE.MSG", NULL,
                                 STGM_TRANSACTED |
                                 STGM_READWRITE |
                                 STGM_SHARE_EXCLUSIVE,
                                 NULL, 0, &pStorage);
    
    
  2. OpenIMsgOnIStg を呼び出して、IMessage インターフェイス ポインターを取得してメッセージにアクセスします。

     LPMESSAGE pMessage = NULL;
     LPMALLOC pMalloc = MAPIGetDefaultMalloc();
     hr = OpenIMsgOnIStg (NULL, MAPIAllocateBuffer, MAPIAllocateMore,
                         MAPIFreeBuffer, pMalloc, NULL, pStorage,
                         NULL, 0, 0, &pMessage);