IAddrBook::OpenEntry
適用対象: Outlook 2013 | Outlook 2016
アドレス帳エントリを開き、エントリへのアクセスに使用できるインターフェイスへのポインターを返します。
HRESULT OpenEntry(
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulFlags,
ULONG FAR * lpulObjType,
LPUNKNOWN FAR * lppUnk
);
パラメーター
cbEntryID
[in] lpEntryID パラメーターによって指されるエントリ識別子のバイト数。
lpEntryID
[in]開くアドレス帳エントリを表すエントリ識別子へのポインター。
lpInterface
[in]開いているエントリへのアクセスに使用するインターフェイスのインターフェイス識別子 (IID) へのポインター。 NULL を渡すと、オブジェクトの標準インターフェイスが返されます。 メッセージング ユーザーの場合、標準インターフェイスは IMailUser : IMAPIProp です。 配布リストの場合は 、IDistList : IMAPIContainer で、コンテナーの場合は IABContainer : IMAPIContainer です。 呼び出し元は、 lpInterface を適切な標準インターフェイスまたは継承階層内のインターフェイスに設定できます。
ulFlags
[in]エントリの開き方を制御するフラグのビットマスク。 次のフラグを設定できます。
MAPI_BEST_ACCESS
許可されるネットワークとクライアントの最大アクセス許可を持つエントリを開くように要求します。 たとえば、クライアントに読み取り/書き込みアクセス許可がある場合、アドレス帳プロバイダーは読み取り/書き込みアクセス許可でエントリを開こうとします。 クライアントは、開いているエントリの IMAPIProp::GetProps メソッドを呼び出し、 PR_ACCESS_LEVEL (PidTagAccessLevel) プロパティを取得することで付与されたアクセス レベルを取得できます。
MAPI_CACHE_ONLY
アドレス帳エントリを開き、キャッシュからのみアクセスします。 たとえば、このフラグを使用すると、クライアント アプリケーションがグローバル アドレス一覧 (GAL) をキャッシュ交換モードで開き、クライアントとサーバー間のトラフィックを作成せずにキャッシュからそのアドレス帳内のエントリにアクセスできます。 このフラグは、Exchange アドレス帳プロバイダーによってのみサポートされます。
MAPI_DEFERRED_ERRORS
エントリが完全に開かれ、使用可能になる前に、呼び出しを成功させることができます。これは、後でエントリを呼び出すとエラーが返される可能性があることを意味します。
MAPI_GAL_ONLY
名前解決を実行するには、GAL のみを使用します。 このフラグは、Exchange アドレス帳プロバイダーによってのみサポートされます。
注:
ulFlags MAPI_GAL_ONLYは、現在使用しているダウンロード可能なヘッダー ファイルに定義されていない可能性があります。その場合は、次の値を使用してコードに追加できます。#define MAPI_GAL_ONLY (0x00000080)
MAPI_MODIFY
読み取り/書き込みアクセス許可でエントリを開くように要求します。 エントリは既定で読み取り専用アクセス権で開かれるため、クライアントは、MAPI_MODIFYが設定されているかどうかに関係なく、読み取り/書き込みアクセス許可が付与されたと想定しないでください。
MAPI_NO_CACHE
オフライン アドレス帳を使用して名前解決を実行しないでください。 このフラグは、Exchange アドレス帳プロバイダーによってのみサポートされます。
lpulObjType
[out]開いているエントリの型へのポインター。
lppUnk
[out]開かれたエントリへのポインターへのポインター。
戻り値
S_OK
エントリが正常に開かれました。
MAPI_E_NO_ACCESS
ユーザーが十分なアクセス許可を持っていないエントリを開こうとしました。
MAPI_E_NOT_FOUND
lpEntryID で表されるエントリが存在しません。
MAPI_E_UNKNOWN_ENTRYID
lpEntryID で指定されたエントリ識別子は認識されません。 通常、この値は、対応するエントリを担当するアドレス帳プロバイダーが開かない場合に返されます。
注釈
クライアントとサービス プロバイダーは 、IAddrBook::OpenEntry メソッドを呼び出してアドレス帳エントリを開きます。 MAPI は、lpEntryID パラメーターで渡されるエントリ識別子に含まれる MAPIUID 構造体に基づいて、適切なアドレス帳プロバイダーへの呼び出しを転送します。 アドレス帳プロバイダーは、 ulFlags パラメーターの MAPI_MODIFY または MAPI_BEST_ACCESS フラグが設定されていない限り、エントリを読み取り専用として開きます。 ただし、これらのフラグは提案です。 アドレス帳プロバイダーは、要求されたエントリの変更を許可しない場合は、MAPI_E_NO_ACCESSを返します。
lpInterface パラメーターは、開いているエントリにアクセスするために使用する必要があるインターフェイスを示します。 lpInterface で NULL を渡すと、その種類のエントリの標準 MAPI インターフェイスを使用する必要があることを示します。 アドレス帳プロバイダーは lpInterface パラメーターによって推奨されるインターフェイスとは異なるインターフェイスを返す可能性があるため、呼び出し元は lpulObjType パラメーターで返された値をチェックして、返されるオブジェクトの種類が想定どおりかどうかを判断する必要があります。 オブジェクト型が予期した型でない場合、呼び出し元は lppUnk パラメーターをより適切な型にキャストできます。