一時テーブルOne-Off Tables

適用されます: OutlookApplies to: Outlook

一時テーブルには、新しい受信者を作成するため、アドレス帳プロバイダーがサポートしているテンプレートに関する情報が含まれています。A one-off table contains information about the templates that an address book provider supports for creating new recipients. 一時テーブルは、アドレス帳プロバイダーは、個々 のアドレス帳コンテナーと MAPI によって実装され、永続的または一時的にすることができます。One-off tables are implemented by address book providers, individual address book containers, and by MAPI, and can be persistent or temporary.

注意

テンプレート識別子を持つ一時テーブルのテンプレートを混同しないでください。それぞれの目的は似ていますが、何も、コード コンス トラクターがいます。Do not confuse the templates in one-off tables with template identifiers; while their purposes are similar, their code constructs are nothing alike. テンプレートを使用して、テンプレートの識別子を使用してデータをバインドする 1 つの受信者の別の受信者をサポートするためにコードのホスト プロバイダーに属している外部のプロバイダーに属している特定の種類の受信者を作成します。Templates are used to create recipients of a particular type while template identifiers are used to bind the data of one recipient that belong to a host provider with code to support another recipient that belong to a foreign provider.

クライアントは、新しい受信者を作成します。Clients create new recipients:

  • 送信メッセージの受信者の一覧に追加します。To add to the recipient list of an outgoing message.

  • アドレス帳コンテナーの 1 つに追加します。To add to one of the containers in the address book.

どちらのシナリオでは、アドレス帳プロバイダーは一時テーブルを取得する要求します。In both scenarios, an address book provider is asked to return a one-off table. アドレス帳プロバイダーには、両方の状況で使用する 1 つの一時テーブルまたはそれぞれの状況に固有の一時テーブルのいずれかを実装できます。Address book providers can implement either a single one-off table to be used in both situations or a unique one-off table for each situation.

送信メッセージに含まれる受信者の場合、MAPI は、一時テーブルを取得するために、アドレス帳プロバイダーのIABLogon::GetOneOffTableメソッドを呼び出します。When the recipient will be included with an outgoing message, MAPI calls the address book provider's IABLogon::GetOneOffTable method to retrieve its one-off table. 一時テーブルには、有効なアドレスを持つ受信者の作成、情報を入力するユーザーを有効にするテンプレートが含まれています。The one-off table includes templates which enable a user to enter information resulting in the creation of a recipient with a valid address. MAPI レジスタを次の表は、常に通知を開いてユーザーに変更を反映することができますように。MAPI registers for notifications on this table, keeping it open so that changes can be reflected to the user. MAPI は、そのサブシステムまたはアドレス帳の状態オブジェクトのIMAPIStatus::ValidateStateメソッドが呼び出されたときにのみ、テーブルを解放します。MAPI releases the table only when its subsystem or address book status object's IMAPIStatus::ValidateState method is called.

受信者コンテナーに追加すると MAPI は、コンテナーのIMAPIProp::OpenPropertyメソッドを呼び出し、 PR_CREATE_TEMPLATES (PidTagCreateTemplates) のプロパティを取得するために別の呼び出しを作成します。When the recipient will be added to a container, MAPI makes a different call, invoking the container's IMAPIProp::OpenProperty method to retrieve its PR_CREATE_TEMPLATES (PidTagCreateTemplates) property. この一時テーブルに含まれているテンプレートのセットは、コンテナーに追加できる受信者の種類を表します。The set of templates included in this one-off table represents the types of recipients that can be added to the container. たとえば、メール サーバーでは、多くの場合各コンテナーのみを保持するアドレス、対応するゲートウェイを特定するためにインストールされているすべてのゲートウェイの 1 つのコンテナーを公開します。For example, mail servers often expose one container for every gateway that is installed so that each container only holds addresses specific to the corresponding gateway.

MAPI は、セッションに独自のテンプレートと同様にそれぞれのアドレス帳プロバイダーからのテンプレートを含む一時テーブルを提供します。MAPI provides a one-off table that includes its own templates as well as templates from each of the address book providers in the session. MAPI には、ユーザーがその形式を知っていることを想定しているアドレスの種類の新しい受信者を作成するのに使用できる汎用的なテンプレートが用意されています。MAPI provides a generic template that can be used to create a new recipient for any address type, assuming that the user knows its format. アドレス帳プロバイダーは、 IMAPISupport::GetOneOffTableを呼び出すことによって、この一時テーブルを使用します。Address book providers use this one-off table by calling IMAPISupport::GetOneOffTable. 各有効な受信者のアドレスを持つ受信者の作成時に MAPI テーブルを 1 回限りの結果に含まれるテンプレートです。Each of the templates included in the MAPI one-off table results in the creation of recipients with valid recipient addresses.

アドレス帳プロバイダーは、通常 1 つのテンプレートをサポートしているすべてのアドレスの種類を指定します。Address book providers typically supply one template for every address type they support. ただし、テンプレートは必要ありませんサポートします。However, support for templates is not required. MAPI 呼び出しを 1 回限りのテーブルを要求すると、新しいアドレスの作成を許可しない、アドレス帳プロバイダーは MAPI_E_NO_SUPPORT を返すことができます。Address book providers that do not allow the creation of new addresses can return MAPI_E_NO_SUPPORT when MAPI calls to request a one-off table. 新しいアドレスの作成を許可する操作を行いますが、任意のテンプレートを指定されていないアドレス帳プロバイダーには、MAPI の一時テーブルに記載されているテンプレートを使用するIMAPISupport::GetOneOffTableを呼び出すことができます。Address book providers that do allow new address creation but do not supply any templates can call IMAPISupport::GetOneOffTable to use the templates listed in the MAPI one-off table.

次のプロパティは、必須の列を一時テーブルの設定を構成します。The following properties make up the required column set in one-off tables:

PR_ADDRTYPEは、テンプレートで作成した新しい受信者と関連付けることができるアドレスの種類を示します。PR_ADDRTYPE indicates the type of address that can be associated with the new recipient created with the template.

PR_DISPLAY_NAMEおよびPR_DISPLAY_TYPEは、新しい受信者にデータを関連付けます。PR_DISPLAY_NAME and PR_DISPLAY_TYPE associate data with the new recipient. PR_DISPLAY_NAMEに新しい受信者を識別する文字列が含まれていて、 PR_DISPLAY_TYPEに行を表示するアイコンの種類を識別する定数が含まれています。PR_DISPLAY_NAME contains a character string that identifies the new recipient and PR_DISPLAY_TYPE contains a constant that identifies the type of icon to be displayed with the row. メッセージング ユーザーのテンプレートがある、 PR_DISPLAY_TYPE列には、DT_MAILUSER です。配布リスト用のテンプレートがある、 PR_DISPLAY_TYPEカラムを DT_DISTLIST に設定します。Templates for messaging users have their PR_DISPLAY_TYPE column set to DT_MAILUSER; templates for distribution lists have their PR_DISPLAY_TYPE column set to DT_DISTLIST.

PR_ENTRYIDは、新しい受信者を作成するためのテンプレートのエントリの識別子です。PR_ENTRYID is the entry identifier of the template to be used to create a new recipient. このエントリ id は、将来のIAddrBook::NewEntryアドレス帳コンテナー、およびIABContainer::CreateEntryの呼び出しに渡すことができます。This entry identifier can be passed to future IAddrBook::NewEntry, IAddrBook::OpenEntry, and IABContainer::CreateEntry calls. コンテナーの既定のPR_DEF_CREATE_MAILUSER (PidTagDefCreateMailuser) に、ユーザー テンプレートと、 PR_ENTRYIDの行の列の既定の配布リストにメッセージをその行のPR_ENTRYID列を設定します。PR_DEF_CREATE_DL (PidTagDefCreateDl) にテンプレートです。Containers set the PR_ENTRYID column of their row for the default messaging user template to PR_DEF_CREATE_MAILUSER (PidTagDefCreateMailuser) and the PR_ENTRYID column of their row for the default distribution list template to PR_DEF_CREATE_DL (PidTagDefCreateDl).

PR_DEPTHは、テンプレートのインデントのレベルを示すことにより、一時テーブルのエントリの階層表示をサポートするために使用されます。PR_DEPTH is used to support the hierarchical display of the entries in a one-off table by indicating the level of indentation for the template. 単純なリストまたは階層の表示としては、一時テーブルを表示することができます、ですが、後者をお勧めし、アドレス帳プロバイダーを使用すると行ごとに [ PR_DEPTH ] 列を適切に設定することでサポートする必要があります。Although one-off tables can be displayed either as a flat list or a hierarchical display, the latter is preferable and address book providers should support it by setting the PR_DEPTH column for each row appropriately. PR_DEPTHは 0 から始まります。PR_DEPTH列の 0 の値を含む行がインデント付きではありません。PR_DEPTH is zero-based; rows with a value of 0 in their PR_DEPTH column are not indented. PR_DEPTHの値が大きいほど、複数の行はインデントではありません。The higher the value of PR_DEPTH, the more the row is indented. PR_DEPTHが 1 に設定を持つ行はインデントが設定された 1 つのタブ 3 に設定されたPR_DEPTHの行にはインデントが設定された 3 つのタブです。For example, rows with PR_DEPTH set to 1 are indented one tab while rows with PR_DEPTH set to 3 are indented three tabs.

PR_SELECTABLEを使用すると、テーブル内の行が選択して新しい受信者を作成するために使用できるテンプレートを表すかどうかを指定します。PR_SELECTABLE is used to indicate whether a row in the table represents a template that can be selected and used to create a new recipient. 一時テーブル内のほとんどの行は、テンプレートには、プロバイダーは、非テンプレートの行を含めることができます。Although most rows in a one-off table do represent templates, providers can include non-template rows. たとえば、プロバイダーはディスプレイに表示されますが、受信者の作成に使用されないカテゴリの行を含む、テンプレートの種類によって一時テーブルを整理することも。For example, a provider might want to organize the one-off table by template type, including a category row that appears in the display but is not used for recipient creation.

関連項目See also

MAPI テーブルMAPI Tables