プライマリ デバイスとプロバイダーの Id を取得しています。Retrieving Primary and Provider Identity

適用されます: OutlookApplies to: Outlook

通常のアドレス帳プロバイダー、サービス ・ プロバイダーには、さまざまな状況でセッションを表すために使用できる id を指定するオプションがあります。Service providers, typically address book providers, have the option of supplying an identity that can be used to represent the session in a variety of situations. 3 つのプロパティでは、プロバイダーの識別情報について説明します。Three properties describe a provider's identity:

これらのプロパティは、エントリ id、表示名、および対応する id のオブジェクトは、メッセージングのユーザーは、通常の検索キーに設定されます。These properties are set to the entry identifier, display name, and search key of the corresponding identity object, which is typically a messaging user. Id を提供するプロバイダーは、 PR_RESOURCE_FLAGS (PidTagResourceFlags) のプロパティに STATUS_PRIMARY_IDENTITY フラグを設定します。Providers that supply an identity also set the STATUS_PRIMARY_IDENTITY flag in their PR_RESOURCE_FLAGS (PidTagResourceFlags) property.

必要に応じて、セッションの特定のプロバイダーの id またはプライマリを使用する可能性があります。Depending on your needs, you might use a particular provider's identity or the primary identity for the session. 表示のためにまたはPR_RESOURCE_PATH (PidTagResourcePath) などのプロパティを取得するためには、プロバイダーの id を使用します。You can use a provider's identity also for display purposes or to retrieve properties, such as PR_RESOURCE_PATH (PidTagResourcePath). PR_RESOURCE_PATH場合、は、使用、またはプロバイダーによって作成されたファイルへのパスが含まれています。PR_RESOURCE_PATH, if set, contains the path to files used or created by the provider. セッションのユーザーに関連するファイルを検索する場合は、プライマリ id を提供するプロバイダーのPR_RESOURCE_PATHプロパティを取得します。Retrieve the PR_RESOURCE_PATH property for the provider supplying the primary identity when you want to locate files that pertain to the user of the session.

特定のプロバイダーの id を取得するにはTo retrieve the identity of a specific provider

  1. ステータス テーブルにアクセスするのにはIMAPISession::GetStatusTableを呼び出します。Call IMAPISession::GetStatusTable to access the status table.

  2. SPropertyRestriction構造体を使用して、指定されたプロバイダーの名前をPR_PROVIDER_DLL_NAME (PidTagProviderDllName) の列と一致する制約を作成します。Build a restriction using an SPropertyRestriction structure to match the PR_PROVIDER_DLL_NAME (PidTagProviderDllName) column with the name of the specified provider.

  3. プロバイダーの行を検索するのにはIMAPITable::FindRowを呼び出します。Call IMAPITable::FindRow to locate the provider's row. プロバイダーの識別情報は、存在する場合、[ PR_IDENTITY_ENTRYID ] 列で、保存されます。The provider's identity will be stored in the PR_IDENTITY_ENTRYID column, if it exists.

セッションのプライマリ id を取得するにはTo retrieve the primary identity for a session

  • IMAPISession::QueryIdentityを呼び出します。Call IMAPISession::QueryIdentity. QueryIdentityに基づいて、セッションの id、STATUS_PRIMARY_IDENTITY、 PR_RESOURCE_FLAGSの列の値の状態テーブル内の行のいずれかが存在します。QueryIdentity bases session identity on the existence of the STATUS_PRIMARY_IDENTITY value in the PR_RESOURCE_FLAGS column for one of the rows in the status table. ステータス行の [なし] この値が設定されて、 QueryIdentityは 3 つの PR_IDENTITY プロパティを設定する最初のサービス プロバイダーの id を割り当てます。If none of the status rows have this value set, QueryIdentity assigns identity to the first service provider that sets the three PR_IDENTITY properties. サービス プロバイダーには、id が用意されていない、 QueryIdentityは MAPI_W_NO_SERVICE を返します。If no service provider supplies an identity, QueryIdentity returns MAPI_W_NO_SERVICE. このような場合、プライマリ id として使用できる汎用的なユーザーを表す文字列を作成する必要があります。When this happens, you should create a character string to represent a generic user that can serve as the primary identity.

セッションのプライマリ id を明示的に設定するにはTo explicitly set the primary identity for a session