次の方法で共有


アドレス帳エントリの追加

適用対象: Outlook 2013 | Outlook 2016

メッセージング ユーザーまたは配布リストをコンテナーに追加するには、クライアントが IAddrBook::NewEntry を呼び出すか、プロバイダーが lpEIDContainer パラメーターのターゲット コンテナーのエントリ識別子を使用して IMAPISupport::NewEntry を呼び出します。 MAPI は、コンテナーの IABContainer::CreateEntry メソッドを呼び出して、1 回限りのテーブルから 1 回限りのテンプレートを使用してエントリを作成します。 1 回限りのテンプレートを使用すると、クライアントは特定の種類の新しい受信者を作成できます。 ほとんどのフィールドは編集可能です。 lpEntryID パラメーターが指すテンプレートは、プロバイダーが提供するものか、プロバイダーが外部テンプレートをサポートしている場合は、外部プロバイダーからのテンプレートである可能性があります。 外部テンプレートから受信者を作成できるプロバイダーの CreateEntry の実装は、常に、できないプロバイダーの実装よりも複雑です。

IABContainer::CreateEntry を実装するには

  1. lpEntryID パラメーターで指定されたエントリ識別子の種類を決定します。

  2. エントリ識別子が、プロバイダーが所有するメッセージング ユーザー、配布リスト、またはアドレス帳コンテナーのテンプレートを表す場合:

  3. 適切なオブジェクトを作成して初期化します。 プロバイダーは、必要に応じていくつかの初期プロパティを設定できます。 これらのプロパティは、作成する受信者の種類によって異なります。

  4. lppMAPIPropEntry パラメーターの内容で、オブジェクトの実装へのポインターを返します。

  5. エントリ識別子が外部プロバイダーのテンプレートを表す場合:

  6. IMAPISupport::OpenEntry を呼び出して、外部オブジェクトを開きます。

  7. オブジェクトの IMAPIProp::GetProps メソッドを呼び出し、プロパティ タグ配列に NULL を渡してプロパティを取得します。

  8. GetProps から返されるプロパティ値配列を編集するには、新しいオブジェクトに適用されず、転送すべきでないすべてのプロパティのプロパティ タグを PR_NULL に変更します。

  9. 新しいオブジェクトのエントリ識別子を作成します。

  10. 適切な種類の新しいオブジェクト (メッセージング ユーザーまたは配布リスト) を作成します。

  11. 既定のプロパティを設定して、新しいオブジェクトを初期化します。

  12. 外部オブジェクトが PR_TEMPLATEID (PidTagTemplateid) プロパティをサポートしているかどうかを確認します。

  13. 外部オブジェクトが PR_TEMPLATEIDをサポートしている場合は、 IMAPISupport::OpenTemplateID を呼び出して外部プロバイダーからプロパティ オブジェクト インターフェイスを取得し、 lppMAPIPropEntry パラメーターの内容を外部プロパティ オブジェクトの実装に設定します。

  14. 外部オブジェクトが PR_TEMPLATEIDをサポートしていない場合は、 lppMAPIPropEntry パラメーターの内容をプロバイダーの新しいオブジェクトの実装に設定します。

  15. lppMAPIPropEntry パラメーターによって指されるオブジェクトの IMAPIProp::SetProps メソッドを呼び出して、外部オブジェクトから適切なプロパティを設定します。