プロファイル管理機能
プロファイル管理機能
プロファイル管理では、次の API 関数が役立ちます。
機能 | 形容 |
---|---|
AssociateColorProfileWithDeviceW | 指定したカラー プロファイルを指定したデバイスに関連付けます。 |
[CreateProfileFromLogColorSpaceW]((/windows/win32/api/icm/nf-icm-createprofilefromlogcolorspacew) | 論理 色空間 を デバイス プロファイルに変換します。 |
DisassociateColorProfileFromDeviceWの | 指定したコンピューター上の指定したデバイスと指定したカラー プロファイルの関連付けを解除します。 |
EnumColorProfilesWの | 指定された列挙条件を満たすすべてのプロファイルを列挙します。 |
GetColorDirectoryWの | 指定したコンピューター上の Windows COLOR ディレクトリのパスを取得します。 |
GetDeviceGammaRampの | 直接カラー ディスプレイ ボードからガンマ ランプを取得します。 |
GetStandardColorSpaceProfileWの | 指定した標準 色空間に登録されているカラー プロファイルを取得します。 |
InstallColorProfileWの | 指定したコンピューターで使用する特定のプロファイルをインストールします。 プロファイルも COLOR ディレクトリにコピーされます。 |
registerCMMWをする | 指定した識別値を、指定されたカラー管理モジュールダイナミック リンク ライブラリ (CMM DLL) に関連付けます。 この ID がカラー プロファイルに表示されると、Windows は変換を作成するために対応する CMM を見つけることができます。 |
SetDeviceGammaRampの | 直接カラーディスプレイボードのガンマランプを設定します。 |
SetStandardColorSpaceProfileWの | 指定された標準 色空間の指定されたプロファイルを登録します。 プロファイルは、GetStandardColorSpaceProfileW 使用して照会できます。 |
UninstallColorProfileWの | 指定したコンピューターから指定したカラー プロファイルを削除します。 関連付けられているファイルは、必要に応じてシステムから削除されます。 |
unregisterCMMWの | 指定した ID 値を、指定されたカラー管理モジュールのダイナミック リンク ライブラリ (CMM DLL) から関連付けを解除します。 |
WcsAssociateColorProfileWithDeviceの | 指定した WCS カラー プロファイルを指定したデバイスに関連付けます。 |
WcsCreateIccProfileの | WCS プロファイルを ICC プロファイルに変換します。 |
WcsDisassociateColorProfileFromDeviceの | 指定したコンピューター上の指定したデバイスと指定した WCS カラー プロファイルの関連付けを解除します。 |
WcsEnumColorProfilesの | 指定したプロファイル管理スコープの列挙条件を満たすすべてのカラー プロファイルを列挙します。 |
WcsEnumColorProfilesSizeの | カラー プロファイルを列挙するために WcsEnumColorProfiles 関数に必要なバッファーのサイズ (バイト単位) を返します。 |
WcsGetDefaultColorProfileの | デバイスの既定のカラー プロファイルを取得します。デバイスが指定されていない場合は、デバイスに依存しない既定値を取得します。 |
WcsGetDefaultColorProfileSizeの | NULL ターミネータを含む、デバイスの既定のカラー プロファイル名のサイズ (バイト単位) を返します。 |
WcsGetDefaultRenderingIntentの | 指定したプロファイル管理スコープ内の既定のレンダリング意図を取得します。 |
WcsGetUsePerUserProfilesの | ユーザーが、指定したデバイスに対してユーザーごとのプロファイル関連付けリストを使用することを選択したかどうかを判断します。 |
WcsOpenColorProfileWの | 指定したカラー プロファイルへのハンドルを作成します。 |
WcsSetDefaultColorProfileの | 指定したプロファイル管理スコープ内の指定したプロファイルの種類の既定のカラー プロファイル名を設定します。 |
WcsSetDefaultRenderingIntentの | 指定したプロファイル管理スコープの既定のレンダリング意図を設定します。 |
WcsSetUsePerUserProfilesの | ユーザーは、指定したデバイスに対してユーザーごとのプロファイル関連付けリストを使用するかどうかを指定できます。 |
プロファイル消費関数
プロファイル消費 API は、ICM2 の API で、ICC または WCS XML プロファイル、プロファイル ハンドル、またはレンダリング意図をパラメーターとして受け取り、アプリケーションカラー管理コードの WCS プロファイルサポート用の一連の新しい API です。
プロファイルとプロファイル管理機能
プロファイル管理ワークフローは、アプリケーション コードを変更するための追加機能を提供するように拡張された既存の ICM2 API に基づいています。
プロファイルには、異なる色空間間で色を変換するために色処理アルゴリズムで使用される情報が含まれます。 プロファイル管理では、さまざまな色特性を持つさまざまな周辺機器のカラー出力を管理するために、色処理モデルによってさまざまな段階で使用されるプロファイルをクエリして指定する方法が提供されます。
プロファイル管理には、次の一連の機能が用意されています。
- システムで使用するカラー プロファイルのインストール。
- 1 つ以上のインストール済みカラー プロファイルを特定のデバイスに関連付けます。
- カラー処理の特定のステージで使用できるプロファイルの中から、特定の種類の既定のカラー プロファイルを選択します。 これは、関連付けられているプロファイルの中のデバイス、またはシステムにインストールされているプロファイルのうち、デバイス固有ではないデバイスの場合があります。
- システムにインストールされているプロファイルのうち、特定の条件を満たすカラー プロファイルを列挙する。
WCS プロファイルのファイル名拡張子は、DMP の場合は ".cdmp"、CAMP の場合は ".camp"、GMMP の場合は ".gmmp" です。
ユーザーごとのプロファイル管理と LUA コンテキストでの実行の有効化
現在のドキュメントで説明されている設計の目的は次のとおりです。
- 従来の ICM2 実装では、ユーザーごとのプロファイル管理はサポートされていません。 異なるユーザーが独自のプロファイル設定を持つことはできません。 Vista では、WCS プロファイル管理インフラストラクチャを使用して、ほとんどの機能に対して個々のプロファイル設定を構成できます。
- すべてのレガシ ICM2 プロファイル管理 API は、システム全体の設定を変更し、管理特権を必要とします。 Windows Vista では、ほとんどの場合、すべてのユーザーが最小特権ユーザー アカウント (LUA) 設定で実行され、管理者は特権を選択的に昇格して、システム全体の設定を変更するアプリケーションを実行できます。 WCS プロファイル管理では、ユーザーごとのプロファイル設定はすべて LUA コンテキストで構成できます。 プロファイル管理アプリケーションは LUA 設定として実行でき、使用範囲が広がり、システムのセキュリティが損なわれないようにすることができます。
Vista のプロファイル管理では、従来の ICM2 インフラストラクチャに対して次の機能強化が提供されます。
- これにより、デバイスとのプロファイルの関連付け、既定のプロファイル設定、およびユーザーごととシステム全体の両方のスコープでのプロファイルの列挙が可能になります。
- プロファイルのインストールはシステム全体で維持され、管理者特権が必要です。 デバイスのインストールはシステム全体であり、管理特権が必要であるため、これはデバイスのインストール中のプロファイル インストールと一致します。
LUA コンテキストからデバイスをインストールできるかどうかは、そのクラスのデバイスでサポートされているものに特に依存します。 たとえば、Vista では、ユーザーがドライバー ストア ポリシーを使用してドメイン管理者によってドライバー ストアにファイルをコピーする権限が付与されている場合、LUA コンテキストからプリンターのインストールを行うことができます。 カラー プロファイル管理インフラストラクチャでは、スプーラー コンテキストでインストールが行われるため、この点で特別な操作を行う必要はありません。
- ユーザーごとのスコープでのプロファイル設定の変更は、LUA コンテキストで行うことができます。システム全体の変更には管理者権限が必要です。 構成情報の読み取りを必要とするプロファイル管理操作は、LUA コンテキストで、ユーザーごとの設定とシステム全体の設定の両方で実行できます。
プロファイル管理スコープは、実行された操作のスコープを示します。ユーザーごとまたはシステム全体。
各操作について、LUA コンテキストから実行できるかどうかを示します。 LUA コンテキストで操作を実行できない場合、対応するプロファイル管理 API はアクセスが拒否された状態でエラーを返します。 カラー管理コントロール パネルなどの API を使用するアプリケーションでは、ユーザーが (OTS または同意 UI を使用して) 管理コンテキストに昇格し、管理者特権のコンテキストから API を呼び出して操作を成功させることができます。
操作
プロファイル管理スコープ
事前条件
事後条件
LUA コンテキストでの実行可能ファイル
${ROWSPAN2}$Install profile${REMOVE}$
システム全体
プロファイルがコピーされ、システムにインストールされ、使用できるようになります。 プロファイルは、すべてのユーザーのシステム全体および現在のユーザー スコープで列挙可能です。
デバイス ドライバーのインストール中に、ドライバーのインストール ポリシーによって管理されます。 いいえ。それ以外の場合。
現在のユーザー
サポートされていません
${ROWSPAN2}$Uninstall profile${REMOVE}$
システム全体
プロファイルがシステムにインストールされている
プロファイルがシステムからアンインストールされ、必要に応じてプロファイル ストアから削除されました。 プロファイルは使用できなくなり、どのスコープでも列挙できません。
いいえ
現在のユーザー
サポートされていません
${ROWSPAN2}$Associate プロファイルと device${REMOVE}$
システム全体
プロファイルがインストールされ、タイプが ICC または CDMP である
プロファイルは、すべてのユーザーがデバイスで使用できます。 これは、システム全体のスコープと、デバイスに関連付けられているすべてのユーザーの現在のユーザー スコープで列挙可能です。
いいえ
現在のユーザー
プロファイルがインストールされています。 プロファイルがシステム全体のスコープ内のデバイスに既に関連付けされていて、タイプ ICC または CDMP であるかどうかは関係ありません。
プロファイルは、現在のユーザーがデバイスで使用できます。 これは、デバイスに関連付けられている (システム全体の関連付けがない限り) 現在のユーザー スコープでのみ列挙可能です。
はい
${ROWSPAN2}device${REMOVE}$ からプロファイルを$Disassociate
システム全体
プロファイルは、システム全体のスコープ内のデバイスに関連付けられています。タイプは ICC または CDMP です。
プロファイルは使用できなくなりました (現在のユーザー スコープでもこの関連付けを持つユーザーを除く)。 システム全体のスコープでは列挙できません。 ただし、この関連付けをスコープ内に持つユーザーの場合は、現在のユーザー スコープで列挙可能な場合があります。
いいえ
現在のユーザー
プロファイルは、現在のユーザー スコープ内のデバイスに関連付けられます (システム全体のスコープに関連付けられているかどうかに関係なく)、タイプは ICC または CDMP です。
プロファイルは現在のユーザーによって使用できなくなったり、デバイスに関連付けられているように列挙可能になったりします (デバイスにシステム全体のスコープにも関連付けられていない場合)。
はい
${ROWSPAN2}$Setデバイスの既定の種類 (DMP または ICC) のプロファイル${REMOVE}$
システム全体
プロファイルの種類は ICC または CDMP です
プロファイルは、現在のユーザー スコープでこの設定をオーバーライドしたユーザーを除くすべてのユーザーに対して、デバイスの特定の種類に対して既定で使用されます。 (プロファイルがインストールされ、デバイス システム全体に関連付けられます (まだインストールされていない場合)。
いいえ
現在のユーザー
プロファイルの種類は ICC または CDMP です
プロファイルは、システム全体の既定値に関係なく、現在のユーザーの場合は、デバイスの特定の種類に既定で使用されます。 (プロファイルがインストールされ、現在のユーザーのデバイスに関連付けられます (まだインストールされていない場合)。
はい (プロファイルが既にインストールされている場合)
${ROWSPAN2}$Setプロファイル (ICC、DMP、CAMP、GMMP) とサブタイプの組み合わせがグローバル default${REMOVE}$
システム全体
デバイスに関連付けることができるのは、ICC プロファイルと CDMP プロファイルのみです。
プロファイルは、特定の種類に対して既定で使用されます。 ユーザーは、現在のユーザー スコープでこの設定をオーバーライドできます。 (プロファイルがまだインストールされていない場合はインストールされます)。
いいえ
現在のユーザー
デバイスに関連付けることができるのは、ICC プロファイルと CDMP プロファイルのみです。
プロファイルは、現在のユーザーの特定の種類に既定で使用されます。 (プロファイルがまだインストールされていない場合はインストールされます)。
はい (プロファイルが既にインストールされている場合)。
${ROWSPAN2}$Erase、特定の既定のプロファイル設定に対する現在のユーザーのオーバーライドが$Eraseされるため、現在のユーザー スコープでもシステムの既定値が常に (フォールバックとして) 使用されます。${REMOVE}$
システム全体
該当なし
現在のユーザー
既定のプロファイル設定に対する現在のユーザー クエリの場合でも、システム全体の設定が使用のために返されます。
はい
${ROWSPAN2}$Enumerate特定の条件を満たすインストール済みプロファイル (デバイス クラス、プロファイル クラスなど)${REMOVE}$
システム全体
デバイスに関連付けおよび列挙できるのは、ICC プロファイルと CDMP プロファイルだけです。
インストールされ、システム全体のスコープで指定された条件を満たすプロファイルが列挙されます。
はい
現在のユーザー
デバイスに関連付けることができるのは、ICC プロファイルと CDMP プロファイルのみであるため、デバイスに対して列挙されます。
インストールされ、システム全体のスコープで指定された条件を満たすプロファイルが列挙されます。
はい
${ROWSPAN2}$Enumerateデバイス クラス、プロファイル クラス${REMOVE}$ など、特定の条件を満たす特定のデバイスに関連付けられているプロファイル
システム全体
デバイスに関連付けおよび列挙できるのは、ICC プロファイルと CDMP プロファイルだけです。
システム全体のスコープ内のデバイスに関連付けされ、システム全体のスコープで指定された条件を満たすプロファイルが列挙されます。
はい
現在のユーザー
デバイスに関連付けおよび列挙できるのは、ICC プロファイルと CDMP プロファイルだけです。
システム全体の関連付けが含まれ、現在のユーザー スコープで指定された条件を満たす、現在のユーザー スコープのデバイスに関連付けられているプロファイルが列挙されます。
はい
有効なカラー プロファイルの種類は、COLORPROFILETYPE 列挙型によって提供されます。
有効なカラー プロファイル サブタイプは、COLORPROFILESUBTYPE 列挙型によって提供されます。
有効なプロファイルの種類とサブタイプの組み合わせを次の表に示します。
COLORPROFILETYPE
有効な COLORPROFILESUBTYPE
筆記
デバイスの既定値
グローバルな既定値
目的に合った用途
目的に合った用途
CPT_ICC
CPST_NONE
デバイスに関連付けられている既定の ICC プロファイルを取得/設定する
CPST_RGBWorkingSpaceまたはCPST_CustomWorkingSpace
ICC プロファイルをグローバル RGB またはカスタム作業空間プロファイルとして取得/設定します。 「注」を参照してください。
COLORPROFILETYPE CPT_ICCとCPT_DMPは相互に排他的です。 特定の作業空間 (RGB またはカスタム) に設定する既定のカラー プロファイルは、ICC プロファイルまたは DMP プロファイルのいずれかですが、両方を設定することはできません。
CPT_DMP
CPST_NONE
デバイスに関連付けられている既定の DMP プロファイルを取得/設定する
CPST_RGBWorkingSpaceまたはCPST_CustomWorkingSpace
DMP プロファイルをグローバル RGB またはカスタム作業空間プロファイルとして取得/設定します。 「注」を参照してください。
COLORPROFILETYPE CPT_ICCとCPT_DMPは相互に排他的です。 特定の作業空間 (RGB またはカスタム) に設定する既定のカラー プロファイルは、ICC プロファイルまたは DMP プロファイルのいずれかですが、両方を設定することはできません。
手記
WCsSetDefaultColorProfile を呼び出して、DMP プロファイルを RGB 作業空間またはカスタム作業空間の既定のプロファイルとして設定する場合、RGBVirtualDevice、LCD、または CRT の種類の DMP プロファイルのみが有効です。
WCsSetDefaultColorProfile を呼び出して、ICC プロファイルを RGB 作業空間またはカスタム作業空間の既定のプロファイルとして設定する場合、クラスが "spac" または "disp" で、色空間が "RGB" である ICC プロファイルのみが有効です。
アーキテクチャは、上記の列挙と表で説明したように、操作の要件に従って設計されています。
プロファイル管理のパブリック API レイヤー
プロファイル管理スコープは従来の ICM2 API ではサポートされていないため、プロファイル管理スコープをシステム全体または現在のユーザーとして定義する新しい WCS プロファイル管理 API のセットが必要です。 ? 従来の ICM2 API は、下位互換性のために引き続きサポートされ、呼び出しに暗黙的なプロファイル管理スコープで動作します。 o 現在のユーザー スコープで動作する ICM2 API これは、WCS プロファイル管理でシステム全体のスコープと現在のユーザー スコープの両方でサポートされる操作を対象としています。 レガシ ICM2 API は、プロファイル管理スコープを持つ新しい WCS API を現在のユーザーとして呼び出します。 これは、レガシ アプリケーションからユーザーごとの設定を有効にし、LUA コンテキストでほとんどの操作を実行できるため、ユーザーの観点からは理にかなっています。 o システム全体のスコープで動作する ICM2 API これは、システム全体のスコープのみをサポートする操作 (インストール プロファイルとアンインストール プロファイル) 用です。 新しい WCS プロファイル管理 API は作成されておらず、既存の API を変更できます。
プロファイル管理操作の基になる実装は、次の構成データ エンティティで動作し、色処理アルゴリズムのコンテキストを作成して、色管理機能を提供します。 これらは、デバイス固有またはグローバル (デバイスに依存しない) 設定です。 o デバイス固有の構成データ: ? 特定のデバイスに関連付けられているプロファイルの一覧。 ? デバイスに関連付けられているさまざまなプロファイルの種類の既定のプロファイル。 ? 列挙に使用されるプロファイルの照合モード。 o グローバル構成データ: ? システムにインストールされているプロファイルの一覧。 ? さまざまなプロファイルの種類のグローバルな既定のプロファイル。 ? 構成データ ストレージの基になる実装は、構成データ (デバイスに依存しないかデバイス固有) のストレージ スコープを受け取ります。これは、システム全体または現在のユーザーのいずれかになります。 これは、プロファイル管理スコープとは異なります。 現在のユーザー プロファイル管理スコープを持つ操作では、その操作の現在のユーザー設定が存在しない場合、システム全体のストレージ スコープから読み取りが発生する可能性があります。 ? 適切なストレージ スコープでデータを取得および設定するために、このストレージ 層の ICM2/WCS API レイヤー呼び出し。 ストレージ 層は、プロファイル管理スコープに対して透過的です。 現在のユーザーとシステム全体のストレージ スコープのデータを組み合わせて、API 呼び出し元によって指定されたプロファイル管理スコープに従って構成を作成または更新するためのロジック。 このロジックは ICM2/WCS API レイヤーに存在します。
デバイス固有のストレージ レイヤー
印刷、キャプチャ、表示などのさまざまなクラスのデバイスのストレージは、互いに異なる場合があります。 たとえば、印刷デバイスの構成データは、SetPrinterDataEx や GetPrinterDataEx などの標準の印刷 API を使用して保存し、ポイントアンドプリント接続中にプロファイルをコピーし、設定をクライアント コンピューターに転送できるようにする必要があります。 ? このレイヤーは、共通の定義済みインターフェイスを使用してストアを開き、データを取得し、データを設定し、ストアを閉じる機能をエクスポートします。これにより、プロファイル管理構成ストレージ レイヤーは、そのデバイスのデータの格納方法に対して透過的に呼び出すことができます。
次の図は、このアーキテクチャを示しています。
プロファイル管理のパブリック API レイヤー
${ROWSPAN2}$Legacy Vista でシステム全体のプロファイル管理スコープのみをサポートする操作 (インストール、アンインストール、およびカラー ディレクトリの取得) 用の ICM2 API です。 適切なストレージ スコープを持つ構成ストレージ レイヤーを呼び出します。${REMOVE}$
Vista のシステム全体と現在のユーザー プロファイル管理スコープの両方をサポートする操作用のレガシ ICM2 API (インストール、アンインストール、カラー ディレクトリの取得以外のすべての操作)。 現在のユーザー スコープで暗黙的に動作し、プロファイル管理スコープを現在のユーザーとして使用して新しい WCS API を呼び出します。
システム全体および現在のユーザー プロファイル管理スコープのサポートを備えた新しい WCS API。 適切なストレージ スコープを持つ構成ストレージ レイヤーを呼び出します。
プロファイル管理構成ストレージ レイヤー
デバイスに依存しないグローバル構成ルーチン
デバイス固有の構成ルーチン
${ROWSPAN3}$Profileインストールとデバイスに依存しない既定のプロファイル設定の管理。システム全体および現在のユーザーのストレージ スコープでサポートされています。${REMOVE}$
デバイスの関連付けとデバイス固有の既定のプロファイル設定の管理。システム全体および現在のユーザーのストレージ スコープでサポートされます。
Device-Specific Storage レイヤー
特定のストレージを印刷する
特定のストレージを表示する
特定のストレージをキャプチャする
Vista でシステム全体のプロファイル管理スコープのみをサポートする操作用の従来の ICM2 API では、動作は変更されません。 インストール操作とアンインストール操作は、このカテゴリに分類されます。
システム全体のプロファイル管理スコープと現在のユーザー プロファイル管理スコープの両方をサポートする操作用の従来の ICM2 API では、現在のユーザー設定のクエリと構成の動作が変更されています。 インストールとアンインストール以外のすべての操作は、このカテゴリに分類されます。