ABProviderInit

適用対象: Outlook 2013 | Outlook 2016

操作用のアドレス帳プロバイダーを初期化します。

プロパティ
ヘッダー ファイル:
Mapispi.h
実装元:
アドレス帳プロバイダー
呼び出し元:
MAPI
HRESULT ABProviderInit(
  HINSTANCE hInstance,
  LPMALLOC lpMalloc,
  LPALLOCATEBUFFER lpAllocateBuffer,
  LPALLOCATEMORE lpAllocateMore,
  LPFREEBUFFER lpFreeBuffer,
  ULONG ulFlags,
  ULONG ulMAPIVer,
  ULONG FAR * lpulProviderVer,
  LPABPROVIDER FAR * lppABProvider
);

パラメーター

Hinstance

[in]MAPI がリンクされたときに使用されるアドレス帳プロバイダーのダイナミック リンク ライブラリ (DLL) のインスタンス。

lpMalloc

[in]OLE IMalloc インターフェイスを公開するメモリ アロケーター オブジェクトへのポインター。 アドレス帳プロバイダーは、 IStream などの特定のインターフェイスを操作するときに、この割り当て方法を使用する必要がある場合があります。

lpAllocateBuffer

[in]MAPI がメモリを割り当てる必要がある場合に使用する MAPIAllocateBuffer 関数へのポインター。

lpAllocateもっと

[in] MAPIAllocateMore 関数へのポインター。MAPI が追加のメモリを割り当てる必要がある場合に使用されます。

lpFreeBuffer

[in] MAPIFreeBuffer 関数へのポインター。MAPI がメモリを解放するために必要な場合に使用します。

ulFlags

[in]フラグのビットマスク。 次のフラグを設定できます。

MAPI_NT_SERVICE

プロバイダーは、ユーザー インターフェイスにアクセスせずに特別な種類のプロセスである Windows サービスのコンテキストで読み込まれています。

ulMAPIVer

[in]MAPI.DLL が使用するサービス プロバイダー インターフェイス (SPI) のバージョン番号。 現在のバージョン番号については、MAPISPI を参照してください。H ヘッダー ファイル。

lpulProviderVer

[out]このアドレス帳プロバイダーが使用する SPI のバージョン番号へのポインター。

lppABProvider

[out]初期化されたアドレス帳プロバイダー オブジェクトへのポインター。

戻り値

S_OK

�ʘb���������A�\�������l�܂��͒l���Ԃ���܂��B

MAPI_E_VERSION

MAPI で使用されている SPI バージョンは、このプロバイダーによって使用されている SPI と互換性がありません。

注釈

MAPI は、エントリ ポイント関数 ABProviderInit を呼び出して、クライアント ログオン後にアドレス帳プロバイダーを初期化します。

実装に関するメモ

アドレス帳プロバイダーは、プロバイダーの DLL のエントリ ポイント関数として ABProviderInit を実装する必要があります。 実装は、MAPISPI.H でも指定されている ABPROVIDERINIT 関数プロトタイプに基づいている必要があります。 MAPI は、標準の MAPI 初期化呼び出しの種類 STDMAPIINITCALLTYPE を使用するように ABPROVIDERINIT を定義します。これにより、 ABProviderInit は CDECL 呼び出し規則に従います。

プロバイダーは、同時に複数のプロファイルに表示された結果、または同じプロファイルに複数回表示された結果として、複数回初期化できます。 プロバイダー オブジェクトにはコンテキストが含まれているため、 ABProviderInit は、同じプロセス内の複数の初期化の場合でも、初期化ごとに異なるプロバイダー オブジェクトを lppABProvider で返す必要があります。

アドレス帳プロバイダーは、ほとんどのメモリ割り当てと割り当て解除に lpAllocateBufferlpAllocateMorelpFreeBuffer によって指される関数を使用する必要があります。 特に、プロバイダーは、IMAPIProp::GetProps や IMAPITable::QueryRows などのオブジェクト インターフェイスを呼び出すときに、クライアント アプリケーションで使用するメモリを割り当てるために、これらの関数を使用する必要があります。 プロバイダーも OLE メモリ アロケーターを使用することを想定している場合は、lpMalloc パラメーターによって指されるアロケーター オブジェクトの IUnknown::AddRef メソッドを呼び出す必要があります。

ABProviderInit の記述の詳細については、「アドレス帳プロバイダー エントリ ポイント関数の実装」を参照してください。 エントリ ポイント関数の詳細については、「 サービス プロバイダー エントリ ポイント関数の実装」を参照してください。

関連項目