コンテンツ テーブル

適用対象: Outlook 2013 | Outlook 2016

コンテンツ テーブルには、MAPI コンテナー内のオブジェクトに関する情報が含まれています。 アドレス帳プロバイダーは各コンテナーのコンテンツ テーブルを実装し、メッセージ ストアとリモート トランスポート プロバイダーはフォルダーのコンテンツ テーブルを実装します。 アドレス帳コンテナーのコンテンツ テーブルには、メッセージング ユーザーと配布リスト オブジェクトに関する情報が一覧表示され、フォルダーのコンテンツ テーブルにはメッセージに関する情報が一覧表示されます。 コンテンツ テーブルは、主にクライアント アプリケーションによって使用されます。

フォルダー コンテンツ テーブルには、次の 2 種類があります。

  • 標準コンテンツ テーブルには、標準メッセージ (ユーザーに送信して表示できるメッセージ) が含まれています。

  • 関連付けられたコンテンツ テーブルには、標準メッセージの代替表現を格納するなど、特定の目的のためにクライアントによって作成された非表示で送信不可能な情報が含まれています。 関連情報は、MAPI_ASSOCIATED フラグを IMAPIFolder::CreateMessage 呼び出しに渡すことによって作成されます。

ほとんどのアドレス帳コンテナーと多くのフォルダーのコンテンツ テーブルは、分類された並べ替えをサポートしていません。

コンテンツ テーブルには、次を呼び出すことによってアクセスできます。

メッセージ ストアとアドレス帳プロバイダーは、テーブルのプロパティを取得するための両方の手法をサポートする必要があります。 プロバイダーがこれらのテーブルにアクセスするための 1 つの方法のみをサポートすることは許容されません。これは、クライアントが選択できる必要があるためです。

GetContentsTable は 、基本設定を指定する複数のフラグを入力として受け入れます。 設定すると、MAPI_ASSOCIATED フラグは関連するコンテンツ テーブルを取得します。 一部のフォルダーは関連付けられたコンテンツをサポートしていないため、クライアントがこれを事前に確認する方法がないため、 GetContentsTable は、関連するコンテンツ テーブルが要求されたときにエラー MAPI_E_NO_SUPPORTを返す場合があります。

MAPI_DEFERRED_ERRORS フラグは、呼び出し中に発生したエラーを後で報告する必要がないことをテーブルの実装者に示します。

IMAPIProp::OpenProperty の呼び出しには、対応するプロパティ、アドレス帳コンテンツ テーブルと標準フォルダー コンテンツ テーブルのPR_CONTAINER_CONTENTS、および関連するコンテンツ テーブルのPR_FOLDER_ASSOCIATED_CONTENTSを開き、コンテンツ テーブルにアクセスする必要があります。 どちらのプロパティも、フォルダーまたはコンテナーの IMAPIProp::GetProps メソッドを介して取得することはできませんが、 IMAPIProp::GetPropList メソッドによって返されるプロパティ タグ配列に含まれています。

PR_CONTAINER_CONTENTS を使用して、コンテンツ テーブルをコピー操作に含めたり、コピー操作から除外したりすることもできます。 クライアントがコピー操作で IMAPIProp::CopyTolpExcludeProps パラメーターにPR_CONTAINER_CONTENTSを指定した場合、新しいフォルダーまたはコンテナーは元のフォルダーまたはコンテナーのコンテンツ テーブルをサポートしません。

アドレス帳のコンテナーとフォルダーの内容のテーブルには、必要な列の長い一覧があります。クライアントが GetContentsTable または OpenProperty からテーブルを取得した後に使用できる列です。 プロバイダーは、必要に応じてこの必須セットに追加でき、 クライアントは SetColumns メソッドを使用して変更を要求することもできます。

コンテンツ テーブルの種類ごとに必要な列は次のとおりです。

必須列 目次の種類テーブル
PR_ADDRTYPE (PidTagAddressType)
アドレス帳コンテナー テーブル
PR_DISPLAY_NAME (PidTagDisplayName)
アドレス帳コンテナー テーブル
PR_DISPLAY_CC (PidTagDisplayCc)
メッセージ ストア フォルダー テーブル
PR_DISPLAY_TO (PidTagDisplayTo)
すべてのフォルダー コンテンツ テーブル
PR_DISPLAY_TYPE (PidTagDisplayType)
アドレス帳コンテナー テーブル
PR_ENTRYID (PidTagEntryId)
すべてのコンテンツ テーブル
PR_HASATTACH (PidTagHasAttachments)
すべてのフォルダー コンテンツ テーブル
PR_INSTANCE_KEY (PidTagInstanceKey)
すべてのコンテンツ テーブル
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime)
メッセージ ストア フォルダー テーブル
PR_MAPPING_SIGNATURE (PidTagMappingSignature)
メッセージ ストア フォルダー テーブル
PR_MESSAGE_CLASS (PidTagMessageClass)
すべてのフォルダー コンテンツ テーブル
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
リモート トランスポート フォルダー テーブル
PR_MESSAGE_FLAGS (PidTagMessageFlags)
すべてのフォルダー コンテンツ テーブル
PR_MESSAGE_SIZE (PidTagMessageSize)
すべてのフォルダー コンテンツ テーブル
PR_MSG_STATUS (PidTagMessageStatus)
すべてのフォルダー コンテンツ テーブル
PR_OBJECT_TYPE (PidTagObjectType)
すべてのコンテンツ テーブル
PR_PARENT_ENTRYID (PidTagParentEntryId)
メッセージ ストア フォルダー テーブル
PR_RECORD_KEY (PidTagRecordKey)
アドレス帳コンテナーとメッセージ ストア フォルダー テーブル
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
リモート トランスポート フォルダー テーブル
PR_STORE_ENTRYID (PidTagStoreEntryId)
メッセージ ストア フォルダー テーブル
PR_STORE_RECORD_KEY (PidTagStoreRecordKey)
メッセージ ストア フォルダー テーブル

各行で使用できるエントリ識別子は、テーブルの実装に応じて、短期または長期のエントリ識別子にすることができます。 短期エントリ識別子は、通常、パフォーマンスが問題になる状況で使用されます。 どちらの種類のエントリ識別子も、対応するオブジェクトにアクセスするために使用できます。

また、コンテンツ テーブルには、オプションですが、一般的にサービス プロバイダーによって実装に含まれる列のセットもあります。 次の省略可能な列は次のとおりです。

省略可能な列 目次の種類テーブル
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime)
メッセージ ストア フォルダー テーブル
PR_CONTENT_COUNT (PidTagContentCount)
標準フォルダーの内容テーブル
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
標準フォルダーの内容テーブル
PR_CONVERSATION_INDEX (PidTagConversationIndex)
メッセージ ストア フォルダー テーブル
PR_EMAIL_ADDRESS (PidTagEmailAddress)
アドレス帳コンテナー テーブル
PR_IMPORTANCE (PidTagImportance)
すべてのフォルダー コンテンツ テーブル
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
すべてのフォルダー コンテンツ テーブル
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
すべてのフォルダー コンテンツ テーブル
PR_PRIORITY (PidTagPriority)
すべてのフォルダー コンテンツ テーブル
PR_SEARCH_KEY (PidTagSearchKey)
アドレス帳コンテナー テーブル
PR_SEND_RICH_INFO (PidTagSendRichInfo)
アドレス帳コンテナー テーブル
PR_SENDER_NAME (PidTagSenderName)
すべてのフォルダー コンテンツ テーブル
PR_SENSITIVITY (PidTagSensitivity)
すべてのフォルダー コンテンツ テーブル
PR_SUBJECT (PidTagSubject)
すべてのフォルダー コンテンツ テーブル
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName)
アドレス帳コンテナー テーブル

メッセージ ストア プロバイダーには、検索結果フォルダーのコンテンツ テーブルに対してのみ PR_PARENT_DISPLAY (PidTagParentDisplay) も含める必要があります。

名前付きプロパティは、フォルダー内のすべてのメッセージが同じマッピング署名を持つ場合、つまりプロパティ名とプロパティ識別子のマッピングが同じ場合にのみ、フォルダー コンテンツ テーブルの列セットに追加できます。 フォルダーコンテンツテーブルは、フォルダー内の任意のメッセージの作成をサポートしている場合、列セットへのメッセージ クラス固有のプロパティの追加をサポートする必要があります。

クライアントは、 IMAPIFolder::SaveContentsSort メソッドを呼び出すことによって、フォルダー コンテンツ テーブルの既定の並べ替え順序を保存できます。 呼び出しでRECURSIVE_SORT フラグが指定されている場合は、フォルダー内のすべてのサブフォルダーに適用する並べ替え順序を行うことができます。

関連項目

MAPI テーブル