IMAPIContainer::GetContentsTable
適用対象: Outlook 2013 | Outlook 2016
コンテナーのコンテンツ テーブルへのポインターを返します。
HRESULT GetContentsTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
パラメーター
ulFlags
[in]コンテンツ テーブルの返し方を制御するフラグのビットマスク。 次のフラグを設定できます。
MAPI_ASSOCIATED
コンテナーに関連付けられているコンテンツ テーブルは、標準のコンテンツ テーブルではなく返す必要があります。 このフラグはフォルダーでのみ使用されます。 関連するコンテンツ テーブルに含まれるメッセージは、 IMAPIFolder::CreateMessage メソッドの呼び出しでMAPI_ASSOCIATED フラグを設定して作成されました。 通常、クライアントは関連付けられたコンテンツ テーブルを使用して、フォーム、ビュー、およびその他の非表示メッセージを取得します。
ACLTABLE_FREEBUSY
PR_MEMBER_RIGHTSの frightsFreeBusySimple および frightsFreeBusyDetailed 権限へのアクセス を有効にします。
MAPI_DEFERRED_ERRORS
GetContentsTable は、呼び出し元がテーブルを使用できるようになる前に、正常に戻ることができます。 テーブルが使用できない場合、後続のテーブル呼び出しを行うとエラーが発生する可能性があります。
MAPI_UNICODE
文字列データを含む列を Unicode 形式で返すように要求します。 MAPI_UNICODE フラグが設定されていない場合は、文字列を ANSI 形式で返す必要があります。
SHOW_SOFT_DELETES
現在論理的に削除済みとしてマークされているアイテムを表示します。つまり、削除されたアイテムの保持期間フェーズにあります。
lppTable
[out]コンテンツ テーブルへのポインター。
戻り値
S_OK
コンテンツ テーブルが正常に取得されました。
MAPI_E_BAD_CHARWIDTH
MAPI_UNICODE フラグが設定され、実装で Unicode がサポートされていないか、MAPI_UNICODEが設定されておらず、実装で Unicode のみがサポートされています。
MAPI_E_NO_SUPPORT
コンテナーにはコンテンツがなく、コンテンツ テーブルを提供できません。
注釈
IMAPIContainer::GetContentsTable メソッドは、コンテナーのコンテンツ テーブルへのポインターを返します。 コンテンツ テーブルには、コンテナー内のオブジェクトに関する概要情報が含まれています。
コンテンツ テーブルには長い列セットがあります。 コンテンツ テーブルの必須列と省略可能な列の完全な一覧については、「 コンテンツ テーブル」を参照してください。
一部のコンテナーにコンテンツがない場合があります。 これらのコンテナーは 、GetContentsTable の実装からMAPI_E_NO_SUPPORTを返します。
実装に関するメモ
コンテナーのコンテンツ テーブルをサポートする場合は、次の操作も行う必要があります。
コンテナーの IMAPIProp::OpenProperty メソッドの呼び出しをサポートして 、PR_CONTAINER_CONTENTS (PidTagContainerContents) プロパティを開きます。
コンテナー の 呼 び出しに応答してPR_CONTAINER_CONTENTSを返します
IMAPIProp::GetProps メソッドと IMAPIProp::GetPropList メソッド。
このメソッドのリモート トランスポート プロバイダーの実装は、GetContentsTable メソッドに渡される ppTable パラメーター内の IMAPITable : IUnknown インターフェイスへのポインターを返す必要があります。 トランスポート プロバイダーに既存のコンテンツ テーブルがある場合は、そのテーブルへのポインターを返す必要があります。 そうでない場合、このメソッドは新しい IMAPITable : IUnknown オブジェクトを作成し、メッセージ ヘッダー (使用可能な場合) をテーブルに設定し、新しいテーブルへのポインターを返す必要があります。 ITableData::HrGetView メソッドは、戻り値を生成し、ppTable パラメーターにテーブル ポインターを格納する場合に便利です。 コンテンツ テーブルは、少なくとも次のプロパティ列をサポートする必要があります。
PR_ENTRYID (PidTagEntryID)
PR_SENDER_NAME (PidTagSenderName)
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
PR_DISPLAY_TO (PidTagDisplayTo)
PR_SUBJECT (PidTagSubject)
PR_MESSAGE_CLASS (PidTagMessageClass)
PR_MESSAGE_FLAGS (PidTagMessageFlags)
PR_MESSAGE_SIZE (PidTagMessageSize)
PR_PRIORITY (PidTagPriority)
PR_IMPORTANCE (PidTagImportance)
PR_SENSITIVITY (PidTagSensitivity)
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
PR_MSG_STATUS (PidTagMessageStatus)
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
PR_HASATTACH (PidTagHasAttachments)
PR_OBJECT_TYPE (PidTagObjectType)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
呼び出し側への注意
文字列とバイナリコンテンツのテーブル列を切り捨てることができます。 通常、プロバイダーは 255 文字を返します。 テーブルに切り捨てられた列が含まれているかどうかを事前に把握できないため、列の長さが 255 バイトまたは 510 バイトの場合は、列が切り捨てられると仮定します。 必要に応じて、切り捨てられた列の完全な値をオブジェクトから直接取得するには、エントリ識別子を使用して開き、 IMAPIProp::GetProps メソッドを呼び出します。
プロバイダーの実装に応じて、制限と並べ替え操作は、すべての文字列またはその文字列の切り捨てられたバージョンに適用できます。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
ContentsTableDialog.cpp |
CContentsTableDlg::CContentsTableDlg |
CContentsTableDlg クラスは、GetContentsTable を使用してコンテンツ テーブルのエントリを取得します。 |