オブジェクトのアクセスと比較をサポートする

適用対象: Outlook 2013 | Outlook 2016

サービス プロバイダーは、 IMAPISupport::OpenEntry メソッドと IMAPISupport::CompareEntryIDs メソッドを使用して、プロバイダーまたは他のプロバイダーに属するオブジェクトを開いて比較できます。

クライアントの IMAPISession::OpenEntry と同様に、プロバイダーはサポート オブジェクトの OpenEntry メソッドを使用して、オブジェクトのエントリ識別子がわかっている限り、任意のオブジェクトにアクセスできます。 セッション メソッドとは異なり、サポート メソッドでは 、lpEntryID パラメーターに有効なエントリ識別子を指定する必要があります。 NULL にすることはできません。

トランスポート プロバイダーが IMAPISupport::OpenEntry を使用する方法を説明するには、次のシナリオを検討してください。 トランスポート プロバイダーは、リッチ テキスト形式で書式設定されたメッセージを受け取っており、ターゲット受信者がこの形式を処理できるかどうかはわかりません。 メッセージを配信する前に、トランスポート プロバイダーは次のことを行う必要があります。

  1. メッセージの IMessage::GetRecipientTable メソッドを呼び出して、受信者テーブルと受信者のエントリ識別子、その PR_ENTRYID (PidTagEntryId) プロパティにアクセスします。

  2. エントリ識別子を IMAPISupport::OpenEntry に渡して、受信者 (通常はメッセージング ユーザーまたは配布リスト) を開きます。 プロバイダーは受信者のオブジェクトの種類を事前に認識できないため、 lpInterface パラメーターを NULL に設定する必要があります。 サポート オブジェクトの OpenEntry メソッドは 、IMAPISession::OpenEntry を呼び出して、受信者を担当するアドレス帳プロバイダーを決定します。 セッション オブジェクトは、適切なアドレス帳プロバイダーの OpenEntry メソッドを呼び出して受信者を開き、トランスポート プロバイダーへのインターフェイス ポインターを返します。

  3. 受信者の IMAPIProp::GetProps メソッドを呼び出して 、そのPR_SEND_RICH_INFO (PidTagSendRichInfo) プロパティを取得します。 PR_SEND_RICH_INFOが TRUE に設定されている場合、受信者は書式設定されたテキストを処理できます。

他のプロバイダーから複数のオブジェクトを開いた場合は、2 つのエントリ識別子が同じオブジェクトを参照しているかどうかを調べる必要がある場合があります。 たとえば、短期エントリ識別子と長期エントリ識別子があり、これらの識別子が同じオブジェクトを識別する場合と、識別できない場合があります。 冗長処理を回避するには、 IMAPISupport::CompareEntryIDs メソッドを呼び出して、これらのエントリ識別子を比較します。 エントリ識別子を直接比較できないため、エントリ識別子の比較にはこのメソッドを使用する必要があります。

関連項目

MAPI サービス プロバイダー