適用対象: Outlook 2013 | Outlook 2016
メッセージング ユーザーまたは配布リストをコンテナーに追加するには、クライアントが IAddrBook::NewEntry を呼び出すか、プロバイダーが lpEIDContainer パラメーターのターゲット コンテナーのエントリ識別子を使用して IMAPISupport::NewEntry を呼び出します。 MAPI は、コンテナーの IABContainer::CreateEntry メソッドを呼び出して、1 回限りのテーブルから 1 回限りのテンプレートを使用してエントリを作成します。 1 回限りのテンプレートを使用すると、クライアントは特定の種類の新しい受信者を作成できます。 ほとんどのフィールドは編集可能です。 lpEntryID パラメーターが指すテンプレートは、プロバイダーが提供するものか、プロバイダーが外部テンプレートをサポートしている場合は、外部プロバイダーからのテンプレートである可能性があります。 外部テンプレートから受信者を作成できるプロバイダーの CreateEntry の実装は、常に、できないプロバイダーの実装よりも複雑です。
IABContainer::CreateEntry を実装するには
lpEntryID パラメーターで指定されたエントリ識別子の種類を決定します。
エントリ識別子が、プロバイダーが所有するメッセージング ユーザー、配布リスト、またはアドレス帳コンテナーのテンプレートを表す場合:
適切なオブジェクトを作成して初期化します。 プロバイダーは、必要に応じていくつかの初期プロパティを設定できます。 これらのプロパティは、作成する受信者の種類によって異なります。
lppMAPIPropEntry パラメーターの内容で、オブジェクトの実装へのポインターを返します。
エントリ識別子が外部プロバイダーのテンプレートを表す場合:
IMAPISupport::OpenEntry を呼び出して、外部オブジェクトを開きます。
オブジェクトの IMAPIProp::GetProps メソッドを呼び出し、プロパティ タグ配列に NULL を渡してプロパティを取得します。
GetProps から返されるプロパティ値配列を編集するには、新しいオブジェクトに適用されず、転送すべきでないすべてのプロパティのプロパティ タグを PR_NULL に変更します。
新しいオブジェクトのエントリ識別子を作成します。
適切な種類の新しいオブジェクト (メッセージング ユーザーまたは配布リスト) を作成します。
既定のプロパティを設定して、新しいオブジェクトを初期化します。
外部オブジェクトが PR_TEMPLATEID (PidTagTemplateid) プロパティをサポートしているかどうかを確認します。
外部オブジェクトが PR_TEMPLATEIDをサポートしている場合は、 IMAPISupport::OpenTemplateID を呼び出して外部プロバイダーからプロパティ オブジェクト インターフェイスを取得し、 lppMAPIPropEntry パラメーターの内容を外部プロパティ オブジェクトの実装に設定します。
外部オブジェクトが PR_TEMPLATEIDをサポートしていない場合は、 lppMAPIPropEntry パラメーターの内容をプロバイダーの新しいオブジェクトの実装に設定します。
lppMAPIPropEntry パラメーターによって指されるオブジェクトの IMAPIProp::SetProps メソッドを呼び出して、外部オブジェクトから適切なプロパティを設定します。