メッセージ ストアの検証と初期化

適用対象: Outlook 2013 | Outlook 2016

MDB_NO_MAIL フラグを設定せずに IMAPISession::OpenMsgStore メソッドを使用してメッセージ ストアを開くと、MAPI によって複数のフォルダーが作成され、既定の名前とロールが割り当てられます。 MAPI は、クライアントまたはメッセージ ストア プロバイダーが作成を担当した場合に必然的に発生する非互換性を回避するために、これらのフォルダーの作成を担当します。

適切なフォルダーが作成されていることと、それらが有効であることを確認することが必要な場合があります。 HrValidateIPMSubtree 関数は、この目的で使用できます。 既定のメッセージ ストアを検証する場合は、MAPI_FULL_IPM_TREE フラグを渡します。 既定のメッセージ ストアには、より広範なフォルダー グループが作成されます。 HrValidateIPMSubtree が MAPI_FULL_IPM_TREE フラグを受け取ると、次のフォルダーがチェックされます。

  • IPM サブツリーのルート フォルダー

  • IPM ルート フォルダー内の削除済みアイテム フォルダー

  • IPM ルート フォルダー内の受信トレイ フォルダー

  • IPM ルート フォルダー内の送信トレイ フォルダー

  • IPM ルート フォルダー内の送信済みアイテム フォルダー

  • メッセージ ストアのルート フォルダー内のフォルダー ビュー

  • メッセージ ストアのルート フォルダー内の一般的なビュー

  • メッセージ ストアのルート フォルダー内の検索フォルダー

メッセージ ストアが既定ではない場合は、MAPI_FULL_IPM_TREE フラグを設定するか設定しないでください。 このフラグが設定されていない場合、 HrValidateIPMSubtree は、サブツリーのルート フォルダー、削除済みアイテム フォルダー、およびメッセージ ストアの検索結果のルート フォルダーのみをチェックします。

メッセージ ストアを初期化するには、次のプロパティをメモリに格納して、すぐに使用できるようにします。

これらのプロパティは、メッセージ ストアの機能を記述するビットマスクです。 PR_VALID_FOLDER_MASK には、メッセージ ストアに存在し、有効なエントリ識別子が割り当てられている特殊なフォルダーごとに 1 ビットが設定されています。 これらのフォルダーとそのエントリ識別子へのアクセスの詳細については、「 メッセージ ストア フォルダーを開く」を参照してください。

PR_STORE_SUPPORT_MASK には、メッセージ ストアでサポートされているすべての機能に対して 1 ビットが設定されています。 たとえば、メッセージ ストアが通知と書式設定されたテキストをサポートしている場合、 そのPR_STORE_SUPPORT_MASK にはSTORE_NOTIFY_OKビットとSTORE_RTF_OKビットが設定されます。

ローカルに格納する必要があるその他のプロパティには、 PR_VALID_FOLDER_MASK プロパティが有効と記述するフォルダーのエントリ識別子が含まれます。 受信トレイ フォルダーを除くこれらの特殊な各フォルダーには、エントリ識別子プロパティが関連付けられています。 たとえば、Outbox フォルダーのエントリ識別子は 、そのPR_IPM_OUTBOX_ENTRYID (PidTagIpmOutboxEntryId) プロパティです。 これらのフォルダーは頻繁に開かれるフォルダーであるため、エントリ識別子をすぐに使用できるようにすることをお勧めします。