サービス プロバイダーのエントリ ポイント関数を実装します。Implementing a Service Provider Entry Point Function

適用されます: OutlookApplies to: Outlook

すべてのサービス プロバイダーの DLL には、それをロードするのには MAPI を呼び出す関数をポイントするエントリがあります。Every service provider DLL has an entry point function that MAPI calls to load it. このエントリ ポイント関数はDllMain、Win32 DLL エントリ ポイント関数の場合と同様に注意します。Be aware that this entry point function is not the same as DllMain, the Win32 DLL entry point function.

、プロバイダーの種類によって、プロバイダーのエントリ ポイント関数は、別のプロトタイプに準拠しています。Depending on the type of your provider, your provider entry point function conforms to a different prototype. MAPI では、サービス プロバイダーの別のエントリ ポイント関数のプロトタイプを定義します。MAPI defines different entry point function prototypes for service providers.

ProviderProvider エントリ ポイント関数のプロトタイプEntry point function prototype
メッセージ ストア プロバイダーMessage store providers
MSProviderInitMSProviderInit
トランスポート プロバイダーTransport providers
XPProviderInitXPProviderInit
アドレス帳プロバイダーAddress book providers
ABProviderInitABProviderInit

これらのプロトタイプ内の機能の多くは、すべてのサービス プロバイダーの種類に対して同じです。Much of the functionality in these prototypes is the same for all service provider types.

アドレス帳、メッセージ ・ ストア、およびトランスポート プロバイダーは、そのエントリ ポイント関数で次の 2 つの主要なタスクを実行します。Address book, message store, and transport providers perform the following two main tasks in their entry point functions:

  1. MAPI が、サービス ・ プロバイダーを使用しているバージョンと互換性のあるバージョンを使用していることを確認するサービス プロバイダー インターフェイス (SPI) のバージョンを確認してください。Check the version of the service provider interface (SPI) to be sure that MAPI is using a version that is compatible with the version that your service provider is using. チェックを実行するのにには、SPI の MAPI のバージョンが含まれています、 _lpulMAPIVer_のパラメーターと、SPI のバージョンが含まれています、 _lpulProviderVer_のパラメーターを使用します。Use the lpulMAPIVer parameter, which contains the MAPI SPI version, and the lpulProviderVer parameter, which contains your SPI version, to perform the check. これらのパラメーターは、32 ビット符号なし整数の 3 つの部分で構成されています。These parameters are 32-bit unsigned integers composed of three parts:
  • ビット 24 ~ 31 では、メジャー バージョンを表します。Bits 24 through 31 represent the major version.

  • ビット 16 ~ 23 では、マイナー バージョンを表します。Bits 16 through 23 represent the minor version.

  • ビット 0 から 15 までは、更新プログラムの識別子を表します。Bits 0 through 15 represent the update identifier. メジャー バージョン番号が変更されたことはほとんどありませんが MAPI が解放され、SPI が変更されたときにマイナー バージョン番号の変更を。Although the major version number rarely changes, the minor version number changes whenever MAPI is released and the SPI has changed. 更新プログラム識別子は、Microsoft の内部ビルドのバージョンです。開発プロセス中に変更を追跡するために使用されます。The update identifier is the Microsoft internal build version; it is used to track changes during the development process. MAPI CURRENT_SPI_VERSION 定数を定義する SPI の現在のバージョンを示すために、Mapispi.h ヘッダー ファイルに記載されています。MAPI defines the CURRENT_SPI_VERSION constant, documented in the Mapispi.h header file, to indicate the present SPI version. バージョンの MAPI を使用しているバージョンより新しい SPI を使用している場合は、MAPI_E_VERSION のエラー チェックを失敗します。Fail your check with the error MAPI_E_VERSION if you are using a version of the SPI that is newer than the version that MAPI is using.

  1. プロバイダー オブジェクトのインスタンスを作成します。Create an instance of a provider object. プロバイダーを起動し、複数回の初期化、ために、この現象が発生するたびに新しいインスタンスを作成する必要があります。Because your provider can be started and initialized multiple times, you should create a new instance each time this occurs. プロバイダーが複数回開始、1 つまたは複数のクライアントによって同時に使用されている複数のプロファイルに表示されるとき、または 1 つのプロファイルで複数回表示されます。Providers are started multiple times when they appear in multiple profiles that are in use simultaneously by one or more clients, or when they appear multiple times in a single profile. 同様にエントリ ポイント関数のプロトタイプは、プロバイダーの種類によって異なる場合は、プロバイダー オブジェクトの型をも。Just as the entry point function prototype differs depending on the type of your provider, so does the type of provider object.

    アドレス帳プロバイダーを作成している場合は、実装IABProvider: IUnknownIf you are writing an address book provider, implement IABProvider : IUnknown. メッセージ ストア プロバイダーを作成している場合は、実装IMSProvider: IUnknownIf you are writing a message store provider, implement IMSProvider : IUnknown. 詳細については、メッセージ ストア プロバイダーの読み込みを参照してください。For more information, see Loading Message Store Providers.

    トランスポート プロバイダーを作成している場合は、実装IXPProvider: IUnknownIf you are writing a transport provider, implement IXPProvider : IUnknown. 詳細については、トランスポート プロバイダーの初期化を参照してください。For more information, see Initializing the Transport Provider.

関連項目See also

サービス プロバイダーを開始します。Starting a Service Provider