メッセージ ストア フォルダーを開く

適用対象: Outlook 2013 | Outlook 2016

フォルダーを開くには、そのエントリ識別子を使用できる必要があります。 ほとんどのフォルダーでは、 PR_ENTRYID プロパティを取得することを意味します。 一部の IPM サブツリー フォルダーやその他のルート フォルダーなどの特殊なフォルダーの場合、MAPI は、メッセージ ストアの IMAPIProp::GetProps メソッドを呼び出すことによってアクセスできる特別なエントリ識別子プロパティを定義します。 これらのエントリ識別子は常に長期的であり、次のように名前が付けられます。

Folder エントリ識別子プロパティ
���M�g���C] �̃t�H���_�[
PR_IPM_OUTBOX_ENTRYID (PidTagIpmOutboxEntryId) (IPM メッセージ クラスのみ)
削除済みアイテム フォルダー
PR_IPM_WASTEBASKET_ENTRYID (PidTagIpmWastebasketEntryId)
���M�ς݃A�C�e��] �t�H���_�[
PR_IPM_SENTMAIL_ENTRYID (PidTagIpmSentMailEntryId)
IPM ���[�g �t�H���_�[
PR_IPM_SUBTREE_ENTRYID (PidTagIpmSubtreeEntryId)
�������ʂ̃��[�g �t�H���_�[
PR_FINDER_ENTRYID (PidTagFinderEntryId)
共通ビューのルート フォルダー
PR_COMMON_VIEWS_ENTRYID (PidTagCommonViewsEntryId)
個人用ビューのルート フォルダー
PR_VIEWS_ENTRYID (PidTagViewsEntryId)
連絡先のルート フォルダー
PR_IPM_CONTACT_ENTRYID (PidTagIpmContactEntryId)
下書きルート フォルダー
PR_IPM_DRAFTS_ENTRYID (PidTagIpmDraftsEntryId)
ルート フォルダージャーナル
PR_IPM_JOURNAL_ENTRYID (PidTagIpmJournalEntryId)
予定表のルート フォルダー
PR_IPM_APPOINTMENT_ENTRYID (PidTagIpmAppointmentEntryId)
Notes ルート フォルダー
PR_IPM_NOTE_ENTRYID (PidTagIpmNoteEntryId)
タスク のルート フォルダー
PR_IPM_TASK_ENTRYID (PidTagIpmTaskEntryId)

これらの特別なエントリ識別子のいずれかを取得する前に、メッセージ ストアの PR_VALID_FOLDER_MASK (PidTagValidFolderMask) プロパティを取得します。 PR_VALID_FOLDER_MASK は、どの特殊なエントリ識別子が存在するかを識別するビットマスクです。 特別なフォルダーごとに 1 ビットがあります。 ビットが設定されている場合は、対応するフォルダーがサポートされており、有効なエントリ識別子があることを示します。 たとえば、削除済みアイテム フォルダーが存在し、有効なエントリ識別子を持つ場合、FOLDER_IPM_WASTEBASKET_VALID ビットは PR_VALID_FOLDER_MASKに設定されます。

特定のクラスのすべての受信メッセージが配置されているフォルダーを開きます

  1. IMsgStore::GetReceiveFolder を呼び出してエントリ識別子を取得し、lpszMessageClass パラメーターがメッセージ クラスを識別する文字列を指すように設定します。 たとえば、IPM サブツリーの受信トレイを開く場合は、 lpszMessageClass を IPM にポイントします。 IPC メッセージの受信フォルダーを開く場合は、IPC をポイントするように設定します。

    メッセージ クラスの受信フォルダーが登録されていない場合、 GetReceiveFolder は、関連付けられているメッセージ クラスが渡されたメッセージ クラスの可能な限り長いプレフィックスと一致する受信フォルダーを選択します。 詳細については、「 MAPI 受信フォルダー」を参照してください。

    PR_IPM_OUTBOX_ENTRYID プロパティは、IPM メッセージに対してのみ Outbox フォルダーを開くために使用されることに注意してください。 IPC メッセージの [送信トレイ] を開く場合は、代わりに受信フォルダーのエントリ識別子を使用します。 受信 IPC メッセージと送信 IPC メッセージの両方が受信フォルダーに配置されます。

  2. 4 つの OpenEntry メソッドのいずれかを呼び出してフォルダーを開き、アクセスに使用できるインターフェイス ポインターを返します。 フォルダーを開くには、次のいずれかのメソッドを呼び出すことができます。

    選択する特定の方法は、開くフォルダーと、その時点で使用できるオブジェクトによって異なります。 IMAPISession メソッドは、現在のプロファイル内の任意のメッセージ ストアの任意のフォルダーを開くことができるので、開くフォルダーについて不明な場合は、この OpenEntry を呼び出します。 フォルダーを所有しているメッセージ ストアがわかっていて、メッセージ ストアへのポインターがある場合は、 IMsgStore::OpenEntry を呼び出します。

    たとえば、 IMsgStore メソッドを使用して受信フォルダーを開きます。 メッセージ ストア プロバイダーのログオン オブジェクトへのポインターがある場合は、 IMSLogon::OpenEntry を呼び出します。 これらの呼び出しは MAPI ではなくメッセージ ストア プロバイダーに直接送信されるため、処理が高速です。 開いているフォルダーが、既に開いているフォルダーのサブフォルダーである場合は、開いているフォルダーの IMAPIContainer::OpenEntry メソッドを呼び出します。 IMAPIContainer メソッドは、現在開いているフォルダーのサブフォルダーのみを開き、短期エントリ識別子を操作することが保証されている唯一のメソッドです。

  3. 開くフォルダーを変更できるようにするには、 OpenEntry 呼び出しで MAPI_BEST_ACCESS または MAPI_MODIFY フラグを設定してアクセス レベルを指定します。 これらのフラグは、フォルダーを開くときに、MAPI_MODIFYに対して、MAPI_BEST_ACCESSまたは読み取り/書き込みアクセスの最高レベルのアクセス権を付与するためのメッセージ ストア プロバイダーへの提案です。

    これらのフラグは候補だけなので、フォルダーは、予期したアクセス レベルで開かれる場合と開かない場合があります。 PR_ACCESS (PidTagAccess) プロパティを取得することで、開いているフォルダーで実行できる操作の範囲を決定できます。

    ただし、多くのメッセージ ストア プロバイダーは、フォルダー プロパティとして、または階層テーブルの列としてサポートするのではなく、必要に応じてこのプロパティの値を計算するため、取得に時間がかかる場合があります。 別の方法として、実行する必要がある操作を試み、必要に応じてエラーを返します。

関連項目