Win32 API 日本語リファレンス
ホームUI.ColorSystem › IDeviceModelPlugIn

IDeviceModelPlugIn

COM
IID1cd63475-07c4-46fe-a903-d655316d11fd継承元IUnknown自前メソッド開始 vtbl3

メソッド 11

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Initialize(LPWSTR bstrXml, DWORD cNumModels, DWORD iModelPosition)
bstrXmlLPWSTRinデバイスモデルを構成する XML 文字列を渡す。
cNumModelsDWORDin変換チェーン内のモデルの総数を指定する。
iModelPositionDWORDin変換チェーン内におけるこのモデルの位置を指定する。
vtbl 4 HRESULT GetNumChannels(DWORD* pNumChannels)
pNumChannelsDWORD*outデバイスのチャンネル数を受け取るポインタである。
vtbl 5 HRESULT DeviceToColorimetricColors(DWORD cColors, DWORD cChannels, FLOAT* pDeviceValues, XYZColorF* pXYZColors)
cColorsDWORDin変換する色の数を指定する。
cChannelsDWORDinデバイス値のチャンネル数を指定する。
pDeviceValuesFLOAT*in変換元のデバイス値を格納した FLOAT 配列へのポインタである。
pXYZColorsXYZColorF*out変換後の XYZ 測色値を受け取る配列へのポインタである。
vtbl 6 HRESULT ColorimetricToDeviceColors(DWORD cColors, DWORD cChannels, XYZColorF* pXYZColors, FLOAT* pDeviceValues)
cColorsDWORDin変換する色の数を指定する。
cChannelsDWORDinデバイス値のチャンネル数を指定する。
pXYZColorsXYZColorF*in変換元の XYZ 測色値を格納した配列へのポインタである。
pDeviceValuesFLOAT*out変換後のデバイス値を受け取る FLOAT 配列へのポインタである。
vtbl 7 HRESULT ColorimetricToDeviceColorsWithBlack(DWORD cColors, DWORD cChannels, XYZColorF* pXYZColors, BlackInformation* pBlackInformation, FLOAT* pDeviceValues)
cColorsDWORDin変換する色の数を指定する。
cChannelsDWORDinデバイス値のチャンネル数を指定する。
pXYZColorsXYZColorF*in変換元の XYZ 測色値を格納した配列へのポインタである。
pBlackInformationBlackInformation*in黒生成に関する情報を格納した配列へのポインタである。
pDeviceValuesFLOAT*out変換後のデバイス値を受け取る FLOAT 配列へのポインタである。
vtbl 8 HRESULT SetTransformDeviceModelInfo(DWORD iModelPosition, IDeviceModelPlugIn* pIDeviceModelOther)
iModelPositionDWORDin情報を設定する対象モデルの変換チェーン内の位置を指定する。
pIDeviceModelOtherIDeviceModelPlugIn*in連携対象となる別のデバイスモデルプラグインを指定する。
vtbl 9 HRESULT GetPrimarySamples(PrimaryXYZColors* pPrimaryColor)
pPrimaryColorPrimaryXYZColors*outデバイスの原色サンプルの XYZ 値を受け取るポインタである。
vtbl 10 HRESULT GetGamutBoundaryMeshSize(DWORD* pNumVertices, DWORD* pNumTriangles)
pNumVerticesDWORD*out色域境界メッシュの頂点数を受け取るポインタである。
pNumTrianglesDWORD*out色域境界メッシュの三角形数を受け取るポインタである。
vtbl 11 HRESULT GetGamutBoundaryMesh(DWORD cChannels, DWORD cVertices, DWORD cTriangles, FLOAT* pVertices, GamutShellTriangle* pTriangles)
cChannelsDWORDinチャンネル数を指定する。
cVerticesDWORDinvertices 配列に割り当てられた頂点数を指定する。
cTrianglesDWORDintriangles 配列に割り当てられた三角形数を指定する。
pVerticesFLOAT*out色域境界メッシュの頂点データを受け取る FLOAT 配列へのポインタである。
pTrianglesGamutShellTriangle*out色域境界メッシュの三角形データを受け取る配列へのポインタである。
vtbl 12 HRESULT GetNeutralAxisSize(DWORD* pcColors)
pcColorsDWORD*outニュートラル軸を構成する色の数を受け取るポインタである。
vtbl 13 HRESULT GetNeutralAxis(DWORD cColors, XYZColorF* pXYZColors)
cColorsDWORDinXYZColors 配列に割り当てられた色の数を指定する。
pXYZColorsXYZColorF*outニュートラル軸上の色を表す XYZ 値を受け取る配列へのポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDeviceModelPlugIn "{1CD63475-07C4-46FE-A903-D655316D11FD}"
#usecom global IDeviceModelPlugIn IID_IDeviceModelPlugIn "{}"
#comfunc global IDeviceModelPlugIn_Initialize                           3 wstr,int,int
#comfunc global IDeviceModelPlugIn_GetNumChannels                       4 var
#comfunc global IDeviceModelPlugIn_DeviceToColorimetricColors           5 int,int,var,var
#comfunc global IDeviceModelPlugIn_ColorimetricToDeviceColors           6 int,int,var,var
#comfunc global IDeviceModelPlugIn_ColorimetricToDeviceColorsWithBlack  7 int,int,var,var,var
#comfunc global IDeviceModelPlugIn_SetTransformDeviceModelInfo          8 int,sptr
#comfunc global IDeviceModelPlugIn_GetPrimarySamples                    9 var
#comfunc global IDeviceModelPlugIn_GetGamutBoundaryMeshSize             10 var,var
#comfunc global IDeviceModelPlugIn_GetGamutBoundaryMesh                 11 int,int,int,var,var
#comfunc global IDeviceModelPlugIn_GetNeutralAxisSize                   12 var
#comfunc global IDeviceModelPlugIn_GetNeutralAxis                       13 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。