MAPI プロファイルMAPI Profiles

適用されます: OutlookApplies to: Outlook

プロファイルは、サービス ・ プロバイダーおよびコンピューターにインストールされているメッセージのサービスに関する情報を格納します。A profile stores information about service providers and message services that are installed on a computer. すべてのセッションは、ログオン時にクライアントは、使用するプロバイダーとのサービスを説明する 1 つのプロファイルを選択します。For every session, a client at logon time selects one profile that describes the providers and services to be used. できるプロファイルのコレクションから選択して、クライアントが必要な場合は、既定値として 1 つを確立します。A client can choose from a collection of profiles and, if desired, establish one as the default. 既定のプロファイルは、クライアントがセッションを開始して、プロファイルを明示的に指定することがないときに自動的に選択されているプロファイルです。The default profile is the profile that is selected automatically when a client starts a session and has not explicitly specified a profile.

これらのトピックでは、バイナリ ストリームに格納されているニックネームのキャッシュの詳細を検索は。Also in these topics, you will find a discussion of the nickname cache, which is stored in a binary stream.

プロファイル セクションProfile Sections

プロファイルは、クライアント セクションに分かれていますが、ユーザーにプロファイル プロパティを表示する、または構成を変更するのにはサービス ・ プロバイダーがアクセスします。Profiles are divided into sections that clients and service providers access to display profile properties to users or to make configuration changes. プロファイル セクションは、 IProfSectインターフェイスを実装する MAPI オブジェクト、 IMAPIPropから派生し、追加のメソッドを持たないインタ フェースです。A profile section is a MAPI object that implements the IProfSect interface, an interface that derives from IMAPIProp and has no additional methods. 詳細についてを参照してくださいIProfSect: IMAPIPropFor more information, see IProfSect : IMAPIProp. その唯一の目的は、プロファイル セクションのプロパティを操作するためです。Its only purpose is to manipulate the properties of a profile section. クライアントとサービス ・ プロバイダーは、特定のプロファイル セクションに、 IProfSectのポインターを取得するためにメソッドを呼び出します。To retrieve an IProfSect pointer to a particular profile section, clients and service providers call the following methods.

クライアントが呼び出すことができます。Clients can call:
IMAPISession::OpenProfileSectionIMAPISession::OpenProfileSection
サービス プロバイダーを呼び出すことができます。Service providers can call:
IMAPISupport::OpenProfileSectionIMAPISupport::OpenProfileSection
クライアントまたはプロバイダーのいずれかを呼び出すことができます。Either clients or providers can call:
IProviderAdmin::OpenProfileSectionIProviderAdmin::OpenProfileSection

プロファイルは階層構造により、MAPISVC のように。INF ファイルです。Profiles are organized hierarchically much like the MAPISVC.INF file. 階層の上部には、プロファイルに関連する情報が含まれているプロファイル セクションがあります。At the top of the hierarchy, there are profile sections that contain information relevant to the profile. 中間レベルには、特定のメッセージのサービスに関する情報が含まれているセクションが含まれています、下位レベルには、メッセージ サービスのサービス プロバイダーのいずれかに関する情報が含まれているセクションが含まれています。The middle level includes sections that contain information about a particular message service and the lower level includes sections that contain information about one of the service providers in a message service.

すべてのプロファイルには、1 つまたは複数のプロファイルのセクションに格納されているいくつかの必要なプロパティがあります。Every profile has several required properties that are stored in one or more of the sections of the profile. たとえば、すべてのプロファイルは、 PR_PROFILE_NAME (PidTagProfileName) とPR_SEARCH_KEY (PidTagSearchKey) のプロパティを持ちます。For example, every profile has the PR_PROFILE_NAME (PidTagProfileName) and PR_SEARCH_KEY (PidTagSearchKey) properties. プロファイルの検索キーは、MAPIGUID で定義されている値に設定されます。MUID_PROFILE_INSTANCE と H し、常にすべてのプロファイルが既に存在します。A profile's search key is set to the value defined in MAPIGUID.H as MUID_PROFILE_INSTANCE and is always guaranteed to be unique among all profiles. 2 つのプロファイルには、同じ名前を持つことができます、検索キーを同時に持つことはできません。Although two profiles can have the same name, they cannot have the same search key. 検索キーは、特定の種類のデータではなくバイナリ データとして扱います。Search keys should be treated as binary data instead of data of any particular type.

メッセージ ストア プロバイダーは、プロファイルのプロファイルのセクションで、メッセージ ・ ストアのPR_DISPLAY_NAME (PidTagDisplayName) のプロパティを含めるし、メッセージのプロバイダーを格納して、これらのエントリの同期を維持するには必要です。Message store providers are required to include their message store's PR_DISPLAY_NAME (PidTagDisplayName) property in the profile sections for the profile and for their message store provider and to keep these entries synchronized. メッセージ ストアが作成されると、プロバイダーはこれらのプロファイル セクションに格納されている値に基づいてPR_DISPLAY_NAMEを設定します。When a message store is created, the provider sets PR_DISPLAY_NAME based on the value stored in these profile sections.

プロファイル セクションとIMAPIPropを継承する他のオブジェクトとの間の 2 つの主な違いがあります。There are two major differences between profile sections and other objects that inherit from IMAPIProp:

  • プロファイル セクションでは、トランザクションをサポートしていません。Profile sections do not support transactions.

  • プロファイル セクションでは、 IMAPIProp::GetIDsFromNamesIMAPIProp::GetNamesFromIDsの導入から MAPI_E_NO_SUPPORT を取得する、名前付きプロパティをサポートしていません。Profile sections do not support named properties, returning MAPI_E_NO_SUPPORT from their IMAPIProp::GetIDsFromNames and IMAPIProp::GetNamesFromIDs implementations. 詳細については、 IMAPIProp::GetIDsFromNamesおよびIMAPIProp::GetNamesFromIDsを参照してください。For more information, see IMAPIProp::GetIDsFromNames and IMAPIProp::GetNamesFromIDs.

プロファイル セクションでは、トランザクション、 IMAPIProp::CopyPropsへの呼び出しに加えられた変更をサポートしていないためCopyTo、またはSetProps即時に反映します。Because profile sections do not support transactions, any changes made with calls to IMAPIProp::CopyProps, CopyTo, or SetProps immediately take effect. 詳細については、 IMAPIProp::CopyPropsを参照してください。For more information, see IMAPIProp::CopyProps. クライアントとサービス ・ プロバイダーはプロファイル セクションのIMAPIProp::SaveChangesメソッドを呼び出すことができ、成功しますが、プロファイル セクションのデータには影響しません。Clients and service providers can call a profile section's IMAPIProp::SaveChanges method and it will succeed, but it does not affect the profile section data. 詳細については、 IMAPIProp::SaveChangesを参照してください。For more information, see IMAPIProp::SaveChanges. すぐに変更することは、サービス プロバイダーがユーザーにプロファイル プロパティを表示するクライアントを使用するプロパティ シートを実装する方法に影響します。Having changes occur immediately can affect how service providers implement the property sheets that clients use to display profile properties to users. ユーザーが延期または変更を元に戻すことができるようにするサービス プロバイダーでは、実際のセクションではなく、プロファイルの各セクションのコピーでは、そのプロパティ シートを実装しなければなりません。Service providers that want users to be able to postpone or undo changes must implement their property sheets with copies of profile sections instead of the real sections. コピーを使用すると、ユーザーが変更を加えるし、後でそれらの変更をキャンセル、元のプロファイル セクションを変更を加えずにそのままです。By using copies, users can make changes and then later cancel those changes, leaving the original profile sections untouched.

プロファイルの情報が表示される順序は、MAPI のリソースを構成して、セッション内の割り当てに影響します。The order in which information appears in a profile affects how MAPI configures resources and makes assignments in a session. プロファイルの順序では、以下の割り当てが影響を受けます。The following assignments are affected by profile order:

  • 既定のメッセージ ストアDefault message store

  • 個人用アドレス帳Personal address book

  • 既定のメッセージ ストアの検索パスDefault message store search path

  • 既定のアドレス帳の検索パスDefault address book search path

  • トランスポート プロバイダーの順序Transport provider order

MAPI では、STATUS_DEFAULT_STORE フラグの既定のストアができることを示す、 PR_RESOURCE_FLAGS (PidTagResourceFlags) プロパティに設定するプロファイルの最初のメッセージ ストアを使用する既定のメッセージ ストアを設定します。MAPI sets the default message store to be the first message store in the profile that has the STATUS_DEFAULT_STORE flag set in its PR_RESOURCE_FLAGS (PidTagResourceFlags) property, which indicates that it can be the default store. クライアントは、 IMAPISession::SetDefaultStoreを呼び出すことによってこの設定を上書きすることができます。Clients can override this setting by calling IMAPISession::SetDefaultStore. 詳細については、 IMAPISession::SetDefaultStoreを参照してください。For more information, see IMAPISession::SetDefaultStore.

MAPI は、送信および受信メッセージを処理するためのトランスポートの順番を作成します。MAPI creates a transport order for handling outgoing and incoming messages. 特定の種類のメッセージの 2 つ以上のトランスポート プロバイダーが登録されると、MAPI はこの順序を使用して、どのプロバイダーがメッセージを処理する必要がありますを決定します。When more than one transport provider has registered for a message of a particular type, MAPI uses this order to determine which provider should handle the message. MAPI でトランスポート プロバイダーは、1 つの例外 - 輸送船のPR_RESOURCE_FLAGSプロパティに STATUS_XP_PREFER_LAST フラグを設定するプロファイルに追加されたが、順序で配置最後の順序を使用するトランスポートの順番を設定します。MAPI sets the transport order to be the order in which the transport providers were added to the profile with one exception--the transports that set the STATUS_XP_PREFER_LAST flag in their PR_RESOURCE_FLAGS property are positioned last in the order. クライアントは、 IMsgServiceAdmin::MsgServiceTransportOrderを呼び出すことによって、トランスポートの順番を設定できます。Clients can set the transport order by calling IMsgServiceAdmin::MsgServiceTransportOrder. 詳細については、 IMsgServiceAdmin::MsgServiceTransportOrderを参照してください。For more information, see IMsgServiceAdmin::MsgServiceTransportOrder.

サービス プロバイダーおよびメッセージ サービスを注文するためのガイドラインも競合しています。These guidelines for ordering service providers and message services might sometimes conflict. 競合がある場合、コードは競合を解決する必要があります。If there is a conflict, your code should resolve the conflict. メール コントロール パネルのプログラムを使用すると、期待どおりに、プロバイダーが構成されているかどうかを判断するのには作成したプロファイルを検査します。You can use the Mail Control Panel program to inspect a profile that you have created to determine whether the providers have been configured as expected.