プロファイル名の検索

適用対象: Outlook 2013 | Outlook 2016

クライアントは、セッションで現在使用されているプロファイルの名前、既定のプロファイルの名前、またはコンピューターにインストールされている代替プロファイルの名前を見つける必要がある場合があります。

セッション中にプロファイルの名前を取得するには、いくつかの方法があります。 必ずしもセッションで使用されているプロファイルの名前を見つける必要がある場合は、最初の手順を使用します。 既定のプロファイルの名前を見つける必要がある場合は、2 番目の手順を使用します。 セッションの現在のプロファイルの名前を見つける必要がある場合は、最後の手順を使用します。

任意のプロファイルの名前を検索するには

  1. MAPIAdminProfiles を呼び出して、IProfAdmin インターフェイス ポインターを取得します。

  2. IProfAdmin::GetProfileTable を呼び出して、プロファイル テーブルにアクセスします。

  3. プロファイル テーブルの IMAPITable::QueryRows メソッドを呼び出して、テーブル内のすべての行を取得し、各行を調べて、ターゲット プロファイルを表しているかどうかを判断します。

既定のプロファイルの名前を見つけるには

  1. MAPIAdminProfiles を呼び出します。

  2. IProfAdmin::GetProfileTable を呼び出して、プロファイル テーブルにアクセスします。

  3. PR_DEFAULT_PROFILE (PidTagDefaultProfile) と値 TRUE を一致させるために、SPropertyRestriction 構造体を使用してプロパティ制限を構築します。

  4. IMAPITable::FindRow を呼び出して、既定のプロファイルを表すプロファイル テーブル内の行を見つけます。 PR_DISPLAY_NAME (PidTagDisplayName) 列には、既定のプロファイルの名前が含まれています。

現在のプロファイルの名前を検索するには

現在のプロファイルの名前を見つけるには、次のいずれかの手順を実行します。

  • 現在のプロファイルのセクションのいずれかを表す MAPIUID 構造体があると仮定して、 それを lpUID パラメーターで IMAPISession::OpenProfileSection に渡します。 IMAPIProp::GetProps メソッドを使用して、プロファイル セクションのPR_PROFILE_NAME (PidTagProfileName) プロパティを取得します。

  • IMAPISession::GetStatusTable を呼び出して状態テーブルにアクセスし、PR_RESOURCE_TYPE (PidTagResourceType) 列がMAPI_SUBSYSTEMに設定されている行を見つけます。 この行 のPR_DISPLAY_NAME 列はプロファイル名です。 MAPI スプーラーがすべてのトランスポート プロバイダーの初期化を完了するまでアプリケーションをブロックするため、起動時に状態テーブルを使用しないでください。 これにより、パフォーマンスが低下する可能性があります。