One-Off テーブルの実装
適用対象: Outlook 2013 | Outlook 2016
プロバイダーは、1 つ以上の 1 回限りのテーブルを実装する場合があります。 1 回限りのテーブルは、コンテナーに直接、または送信メッセージの受信者リストに受信者を作成するために使用される 1 回限りのテンプレートの概要リストです。 1 回限りのテンプレートは、ユーザーが特定の種類のアドレスに関連するデータを入力するために使用するフォームです。 ユーザーがテンプレートの操作を完了すると、プロバイダーによって新しい受信者が作成され、メッセージに追加されます。 通常、各テンプレートは 1 つのアドレスの種類を処理します。 ただし、テンプレートで複数の型を処理することも、複数のテンプレートで同じ型を処理することもできます。
プロバイダーは、1 回限りのテーブルに含まれるテンプレートごとに OpenEntry メソッドをサポートする必要があります。 OpenEntry の実装では、テンプレートの表示テーブルを取得する必要があります。 MAPI では、表示テーブルを使用して、テンプレートをユーザーに表示します。
1 回限りのテーブルのほとんどの行はテンプレートを表しますが、一部の行を使用してテンプレートを分類またはグループ化できます。 1 回限りのテーブル内の行がテンプレートを表しているかどうかは、 そのPR_SELECTABLE (PidTagSelectable) 列の値によって示されます。 テンプレートを表す行のPR_SELECTABLE列は TRUE に設定されています。テンプレートを表さない行は FALSE に設定されています。
MAPI では、3 種類の 1 回限りのテーブルが定義されています。
個々のコンテナーがサポートするテンプレートを反映する 1 回限りのテーブル
プロバイダーがサポートするすべてのテンプレートを反映する 1 回限りのテーブル
プロファイル内のすべてのプロバイダーがサポートするすべてのテンプレートと MAPI でサポートされる一部を反映する 1 回限りのテーブル
最初の 2 つの型は、メッセージまたはコンテナーへの作成受信者をサポートするプロバイダーによって実装されます。 プロバイダーは、同じセットまたはテンプレートの別のセットを 1 回限りのテーブルに含めることができます。 2 種類のメイン違いは、プロバイダー テーブルに、送信メッセージで使用できる受信者を作成するためのテンプレートを含める必要があり、コンテナーに追加する受信者を作成するためのテンプレートをコンテナー テーブルに含める必要がある点です。 コンテナーは制限付きテンプレートのセットのみをサポートできますが、プロバイダーの 1 回限りのテーブルには、プロバイダーがサポートするすべてのテンプレートを含める必要があります。
3 番目の種類の 1 回限りのテーブルは MAPI によって実装されます。プロバイダーは、 IMAPISupport::GetOneOffTable を呼び出すことによってアクセスできます。 MAPI 1 回限りのテーブルは、すべてのプロバイダー テーブルの和集合です。これには、プロファイル内のすべてのプロバイダーでサポートされているすべてのテンプレートが含まれます。 MAPI でサポートされているテンプレートも含まれています。 プロバイダーは、コンテナーに対して要求されたテーブルの代わりにこのテーブルを使用できます。 ただし、この表のテンプレートは、送信メッセージの受信者を作成するためにも使用できます。