IProviderAdmin::OpenProfileSection
適用対象: Outlook 2013 | Outlook 2016
現在のプロファイルからプロファイル セクションを開き、さらにアクセスするために IProfSect ポインターを返します。
HRESULT OpenProfileSection(
LPMAPIUID lpUID,
LPCIID lpInterface,
ULONG ulFlags,
LPPROFSECT FAR * lppProfSect
);
パラメーター
lpUID
[in]開くプロファイル セクションの一意識別子を含む MAPIUID 構造体へのポインター。 クライアントは lpUID パラメーターに NULL を渡す必要があります。 サービス プロバイダーは、メッセージ サービス エントリ ポイント関数からを呼び出すときに 、MAPIUID を取得するために NULL を渡すことができます。
lpInterface
[in]プロファイル セクションへのアクセスに使用するインターフェイスを表すインターフェイス識別子 (IID) へのポインター。 NULL を渡すと、プロファイル セクションの標準インターフェイス (IProfSect) が返されます。
ulFlags
[in]プロファイル セクションの開き方を制御するフラグのビットマスク。 次のフラグを設定できます。
MAPI_DEFERRED_ERRORS
呼び出し元がプロファイル セクションを完全に使用できるようになる前に、 OpenProfileSection が正常に返されるようにします。 プロファイル セクションを使用できない場合は、後続の呼び出しを行うとエラーが発生する可能性があります。
MAPI_MODIFY
読み取り/書き込みアクセス許可を要求します。 既定では、オブジェクトは読み取り専用アクセス許可で開かれます。呼び出し元は、読み取り/書き込みアクセス許可が付与されていることを前提として動作しません。 クライアントは、プロファイルのプロバイダー セクションに対する読み取り/書き込みアクセス許可を許可されていません。
MAPI_FORCE_ACCESS
個々のサービス プロバイダーが所有するものであっても、すべてのプロファイル セクションへのアクセスを許可します。
lppProfSect
[out]プロファイル セクションへのポインター。
戻り値
S_OK
プロファイル セクションが正常に開かれました。
MAPI_E_NO_ACCESS
読み取り専用プロファイル セクションを変更するか、ユーザーがアクセス許可が不十分なオブジェクトにアクセスしようとしました。
MAPI_E_NOT_FOUND
要求されたプロファイル セクションが存在しません。
注釈
IProviderAdmin::OpenProfileSection メソッドはプロファイル セクションを開き、呼び出し元がアクティブなプロファイルから情報を読み取り、情報を書き込む可能性があります。
クライアントは、 OpenProfileSection メソッドを使用してプロバイダーに属するプロファイル セクションを開くことができません。
複数のクライアントまたはサービス プロバイダーは、読み取り専用アクセス許可を持つプロファイル セクションを同時に開くことができます。 ただし、読み取り/書き込みアクセス許可を持つプロファイル セクションを開いている場合、アクセスの種類に関係なく、セクションを開くための他の呼び出しは実行できません。 プロファイル セクションが読み取り専用アクセス許可で開いている場合、読み取り/書き込みアクセス許可を要求する後続の呼び出しは、MAPI_E_NO_ACCESSで失敗します。 同様に、セクションが読み取り/書き込みアクセス許可で開いている場合、読み取り専用アクセス許可を要求する後続の呼び出しも失敗します。
呼び出し側への注意
openProfileSection に ulFlags でMAPI_MODIFYを渡し、lpUID で不明な MAPIUID を渡して存在しないプロファイル セクションを開く必要がある場合は、プロファイル セクションが作成されます。
OpenProfileSection が読み取り専用アクセス許可を持つ存在しないセクションを開くことを要求すると、MAPI_E_NOT_FOUNDが返されます。
MFCMAPI リファレンス
MFCMAPI のサンプル コードについては、次の表を参照してください。
ファイル | 関数 | コメント |
---|---|---|
MAPIProfileFunctions.cpp |
OpenProfileSection |
MFCMAPI では 、IProviderAdmin::OpenProfileSection メソッドを使用して、現在のプロファイルからプロファイル セクションを開きます。 |