プロファイル管理関数
プロファイル管理関数
プロファイル管理では、次の 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 | 指定された色管理モジュールのダイナミック リンク ライブラリ (CMM DLL) から指定した ID 値の関連付けを解除します。 |
WcsAssociateColorProfileWithDevice | 指定した WCS カラー プロファイルを指定したデバイスに関連付けます。 |
WcsCreateIccProfile | WCS プロファイルを ICC プロファイルに変換します。 |
WcsDisassociateColorProfileFromDevice | 指定した WCS カラー プロファイルと、指定したコンピューター上の指定したデバイスとの関連付けを解除します。 |
WcsEnumColorProfiles | 指定したプロファイル管理スコープの列挙条件を満たすすべてのカラー プロファイルを列挙します。 |
WcsEnumColorProfilesSize | カラー プロファイルを列挙するために WcsEnumColorProfiles 関数に必要なバッファーのサイズをバイト単位で返します。 |
WcsGetDefaultColorProfile | デバイスの既定のカラー プロファイルを取得します。デバイスが指定されていない場合は、デバイスに依存しない既定値を取得します。 |
WcsGetDefaultColorProfileSize | NULL 終端記号を含む、デバイスの既定のカラー プロファイル名のサイズをバイト単位で返します。 |
WcsGetDefaultRenderingIntent | 指定したプロファイル管理スコープ内の既定のレンダリング 意図を取得します。 |
WcsGetUsePerUserProfiles | ユーザーが、指定したデバイスに対してユーザーごとのプロファイル関連付けリストを使用することを選択したかどうかを判断します。 |
WcsOpenColorProfileW | 指定したカラー プロファイルへのハンドルを作成します。 |
WcsSetDefaultColorProfile | 指定したプロファイル管理スコープ内の指定したプロファイルの種類の既定のカラー プロファイル名を設定します。 |
WcsSetDefaultRenderingIntent | 指定したプロファイル管理スコープの既定のレンダリング 意図を設定します。 |
WcsSetUsePerUserProfiles | 指定したデバイスに対してユーザーごとのプロファイル関連付けリストを使用するかどうかをユーザーが指定できるようにします。 |
プロファイル消費関数
プロファイル消費 API は、ICC または WCS XML プロファイル、プロファイル ハンドル、またはレンダリング インテントをパラメーターとして受け取る ICM2 の API と、アプリケーションカラー管理コード用の 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 はアクセスが拒否された状態でエラーを返します。 Color Management コントロール パネル などの API を使用するアプリケーションでは、ユーザーが (OTS または同意 UI を使用して) 管理コンテキストに昇格し、昇格されたコンテキストから API を呼び出して操作を成功させることができます。
操作
プロファイル管理スコープ
事前条件
事後条件
LUA コンテキストでの実行可能ファイル
${ROWSPAN2}$Install プロファイル${REMOVE}$
システム全体
プロファイルがコピーされ、システムにインストールされ、使用できるようになります。 プロファイルは、すべてのユーザーのシステム全体および現在のユーザー スコープで列挙可能です。
デバイス ドライバーのインストール中に、ドライバーのインストール ポリシーによって管理されます。 回復不可能 (それ以外の場合)。
現在のユーザー
サポートされていません
${ROWSPAN2}$Uninstall プロファイル${REMOVE}$
システム全体
プロファイルがシステムにインストールされている
プロファイルはシステムからアンインストールされ、必要に応じてプロファイル ストアから削除されます。 プロファイルは使用できなくなり、どのスコープでも列挙できません。
いいえ
現在のユーザー
サポートされていません
${ROWSPAN2}$Associate プロファイルと device${REMOVE}$
システム全体
プロファイルがインストールされ、タイプが ICC または CDMP である
プロファイルは、すべてのユーザーがデバイスで使用できます。 これは、システム全体のスコープと、デバイスに関連付けられているすべてのユーザーの現在のユーザー スコープで列挙可能です。
いいえ
現在のユーザー
プロファイルがインストールされています。 プロファイルがシステム全体のスコープ内のデバイスに既に関連付けられているかどうか、およびタイプが ICC または CDMP であるかどうかは関係ありません。
プロファイルは、現在のユーザーがデバイスで使用できます。 これは、デバイスに関連付けられているのと同様に、現在のユーザー スコープでのみ列挙可能です (システム全体の関連付けがない限り)。
はい
${ROWSPAN2}$Disassociateデバイスからプロファイル${REMOVE}$
システム全体
プロファイルは、システム全体のスコープ内のデバイスに関連付け、ICC または CDMP の種類です
プロファイルは使用できなくなりました (現在のユーザー スコープでもこの関連付けを持つユーザーを除く)。 システム全体のスコープでは列挙できません。 ただし、この関連付けをスコープ内に持つユーザーの場合は、現在のユーザー スコープで列挙可能な場合があります。
いいえ
現在のユーザー
プロファイルは、現在のユーザー スコープ内のデバイスに関連付けられます (システム全体のスコープに関連付けられているかどうかに関係なく)、種類は ICC または CDMP です。
プロファイルは、現在のユーザーによって使用できなくなったか、デバイスに関連付けられている列挙可能です (デバイスにシステム全体のスコープにも関連付けられている場合を除く)。
はい
${ROWSPAN2}$Setデバイスの既定の種類 (DMP または ICC) のプロファイル${REMOVE}$
システム全体
プロファイルの種類は ICC または CDMP です
プロファイルは、現在のユーザー スコープでこの設定をオーバーライドしたユーザーを除くすべてのユーザーに対して、デバイスの特定の種類に対して既定で使用されます。 (まだインストールされていない場合は、プロファイルがインストールされ、デバイス システム全体に関連付けられます)。
いいえ
現在のユーザー
プロファイルの種類は ICC または CDMP です
プロファイルは、システム全体の既定値に関係なく、現在のユーザーの場合は、デバイスの特定の種類に対して既定で使用されます。 (プロファイルがインストールされ、現在のユーザーのデバイスに関連付けられます (まだインストールされていない場合)。
はい(プロファイルが既にインストールされている場合)
${ROWSPAN2}型 (ICC、DMP、CAMP、GMMP) とサブタイプの組み合わせのプロファイルをグローバル既定値として$Set${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
Notes
デバイスの既定値
グローバルな既定値
使用目的
使用目的
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 プロファイルのいずれかになりますが、両方を設定することはできません。
Note
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 ICM2 API を使用して、Vista のシステム全体のプロファイル管理スコープのみをサポートする操作 (カラー ディレクトリのインストール、アンインストール、および取得) を行います。 適切なストレージ スコープで構成ストレージ レイヤーを呼び出します。${REMOVE}$
Vista のシステム全体と現在のユーザー プロファイル管理スコープの両方をサポートする操作 (カラー ディレクトリのインストール、アンインストール、取得以外のすべての操作) 用の従来の ICM2 API。 現在のユーザー スコープで暗黙的に機能し、プロファイル管理スコープを現在のユーザーとして使用して新しい WCS API を呼び出します。
システム全体および現在のユーザー プロファイル管理スコープのサポートを備えた新しい WCS API。 適切なストレージ スコープを持つ構成ストレージ レイヤーを呼び出します。
プロファイル管理構成ストレージ レイヤー
デバイスに依存しないグローバル構成ルーチン
デバイス固有の構成ルーチン
${ROWSPAN3}$Profileインストールとデバイスに依存しない既定のプロファイル設定管理が、システム全体および現在のユーザーのストレージ スコープでサポートされています。${REMOVE}$
デバイスの関連付けとデバイス固有の既定のプロファイル設定管理。システム全体および現在のユーザーのストレージ スコープでサポートされます。
ストレージ レイヤーのDevice-Specific
特定のストレージを印刷する
特定のストレージを表示する
特定のストレージをキャプチャする
Vista でシステム全体のプロファイル管理スコープのみをサポートする操作用のレガシ ICM2 API では、動作に変更はありません。 インストール操作とアンインストール操作は、このカテゴリに分類されます。
システム全体のプロファイル管理スコープと現在のユーザー プロファイル管理スコープの両方をサポートする操作用の従来の ICM2 API では、現在のユーザー設定のクエリと構成のために動作が変更されています。 インストールとアンインストール以外のすべての操作は、このカテゴリに分類されます。