IProfSect : IMAPIProp
適用対象: Outlook 2013 | Outlook 2016
プロファイル セクション オブジェクトのプロパティを操作します。
プロパティ | 値 |
---|---|
ヘッダー ファイル: |
Mapix.h |
によって公開される: |
プロファイル セクション オブジェクト |
実装元: |
MAPI |
呼び出し元: |
クライアント アプリケーションとサービス プロバイダー |
インターフェイス識別子: |
IID_IProfSect |
ポインター型: |
LPPROFSECT |
トランザクション モデル: |
非翻訳 |
Vtable の順序
このインターフェイスには、一意のメソッドはありません。
必須のプロパティ | Access |
---|---|
PR_OBJECT_TYPE (PidTagObjectType) |
読み取り専用 |
PR_PROFILE_NAME (PidTagProfileName) |
読み取り専用 |
呼び出し側への注意
IProfSect インターフェイスには独自の一意のメソッドはありませんが、プロファイル セクションの IMAPIProp メソッドを呼び出すことができます。 IProfSect の実装と IMAPIProp の他の実装には、いくつかの違いがあります。
IProfSect はトランザクション モデルをサポートしていません。
IProfSect では、名前付きプロパティはサポートされていません。
IProfSect は、セキュリティで保護されたプロパティの0x67ffに0x67F0識別子の範囲を予約します。
トランザクション モデルをサポートしていないとは、IMAPIProp::CopyProps メソッドと IMAPIProp::CopyTo メソッドの呼び出しに続いてプロファイル セクションに加えられたすべての変更が直ちに発生することを意味します。 IMAPIProp::SaveChanges メソッドの呼び出しは成功しますが、実際には変更を保存しません。
途中で発生する変更から保護するには、サービス プロバイダーは、プロパティ シートを介してユーザーに表示されるプロファイル セクションのコピーを作成する必要があります。 プロパティ シートは、実際のプロファイル セクションではなく、コピーで動作する必要があります。 ユーザーが [OK ] ボタンをクリックして変更が正確であることを確認すると、変更を実際のプロファイル セクションに保存できます。
コピーしたプロファイル セクションを使用してプロパティ シートを実装するには、次の手順に従います。
IMAPISupport::OpenProfileSection メソッドまたは IProviderAdmin::OpenProfileSection メソッドを呼び出して、プロファイル セクションを開きます。
CreateIProp 関数を呼び出して、プロパティ データ オブジェクト (IPropData インターフェイスをサポートするオブジェクト) を取得します。
プロファイル セクションの IMAPIProp::CopyTo メソッドを呼び出して、プロパティ シートに表示されるプロパティを profile セクションからプロパティ データ オブジェクトにコピーします。
IMAPISupport::D oConfigPropSheet メソッドを呼び出して、サービス プロバイダーにプロパティ シートの表示を要求し、lpConfigData パラメーターのプロパティ データ オブジェクトへのポインターを渡します。
ユーザーがプロパティ シートの構成プロパティに対する変更を保存する場合は、 IMAPIProp::CopyTo メソッドを呼び出して、プロパティ データ オブジェクトからプロファイル セクションにプロパティをコピーします。
プロファイル セクションは、他のオブジェクトとは異なり、名前付きプロパティをサポートしていません。 IMAPIProp::GetIDsFromNames メソッドと IMAPIProp::GetNamesFromIDs メソッドは、プロファイル セクション オブジェクトで呼び出された場合にMAPI_E_NO_SUPPORTを返します。 IMAPIProp::SetProps メソッドを使用して、0x8000上の範囲のプロパティ識別子を設定すると、PT_ERROR プロパティの種類が返されます。
プロファイル セクションは、セキュリティで保護されたプロパティの0x67FFに0x67F0識別子の範囲を予約します。 サービス プロバイダーはこの範囲を使用して、パスワードやその他のプロバイダー固有の資格情報を格納できます。 この範囲のプロパティは、IMAPIProp::GetProps メソッドの lpPropTag パラメーターで NULL が渡された場合、プロパティの完全な一覧では返されず、IMAPIProp::GetPropList メソッドの lppPropTagArray パラメーターでも返されません。 セキュリティで保護されたプロパティは、特に識別子によって要求する必要があります。
MAPI は、ハードコーディングされた定数MUID_PROFILE_INSTANCEを識別子として、 PR_SEARCH_KEY (PidTagSearchKey) を 1 つのプロパティとしてプロファイル セクションに提供します。 MAPI を使用すると、 PR_SEARCH_KEY プロパティの値が作成されたすべてのプロファイルで一意になります。 削除されたプロファイルの後に同じ名前の別のプロファイルが続く可能性があるため、一意性が重要な場合は、PR_PROFILE_NAMEの代わりにPR_SEARCH_KEYを使用します。
プロファイル セクションの使用方法の詳細については、「 プロファイルとメッセージ サービスの管理」を参照してください。