サービス プロバイダー ログオンの実装

適用対象: Outlook 2013 | Outlook 2016

MAPI は、プロバイダー オブジェクト内のメソッドを呼び出して、エントリ ポイント関数から返すポインターを使用してログオン プロセスを開始します。 方法は、サービス プロバイダーの種類に応じて、次のように異なります。

実装するログオン 方法で、次のタスクを実行します。

  1. IUnknown::AddRef メソッドを呼び出して、入力パラメーターとして渡されるサポート オブジェクトの参照カウントをインクリメントします。

  2. サポート オブジェクトの IMAPISupport::OpenProfileSection メソッドを 呼び出して、プロファイル セクションにアクセスします。

  3. プロファイル セクションの IMAPIProp::SetProps メソッドを 呼び出して、次のプロパティを設定します。

注:

プロファイル セクションのPR_RESOURCE_FLAGSまたはPR_PROVIDER_DLL_NAMEプロパティの設定を試みないでください。 ログオン時に、これらのプロパティは読み取り専用です。

  1. 構成に必要なプロパティがプロファイルに格納されているか、ユーザーから使用できるかどうかを確認します。 構成の確認の詳細については、「 サービス プロバイダーの構成の確認」を参照してください。

  2. プロバイダーがアドレス帳またはメッセージ ストア プロバイダーの場合は、サポート オブジェクトの IMAPISupport::SetProviderUID メソッドを呼び出して、一意の識別子または MAPIUID を登録します。 トランスポート プロバイダーは、MAPI が IXPLogon::AddressTypes メソッドを呼び出すときに MAPIUID 構造体を登録します。 MAPIUID の登録の詳細については、「サービス プロバイダーの一意識別子の登録」を参照してください。

  3. ログオン オブジェクトをインスタンス化し、次のいずれかの値を使用してを返します。

  • ログオンが成功したことを示すS_OK。

  • MAPI_E_UNCONFIGURED、1 つ以上の構成プロパティが使用できなかったことを示します。

  • MAPI_E_USER_CANCEL、ユーザーが構成ダイアログ ボックスを取り消し、構成プロパティが使用できなくなったことを示します。

  • プロバイダーを構成できなかったが、MAPI は関係なく使用できるようにする必要があることを示すMAPI_E_FAILONEPROVIDER。 ログオン メソッドは、この値を返して、プロバイダーがパスワードを必要とし、ユーザー インターフェイスが無効になっているためユーザーにプロンプトを表示できない場合など、致命的でないエラーを報告する必要があります。

上記のタスクの一覧では、サービス プロバイダー ログオン メソッドの最小実装について説明します。 必要に応じて、追加の機能を含めることができます。 たとえば、一部のプロバイダーは IMAPISupport::ModifyStatusRow を呼び出して、ログオン メソッドの状態テーブルを更新します。

注:

ログオン時に最適なパフォーマンスを実現するには、 IMAPISupport::P repareSubmit または IMAPISupport::SpoolerNotify を呼び出さないようにします。 これらの呼び出しを完了し、ログオン メソッドに制御を返す前に、MAPI スプーラーを開始する必要があります。

関連項目