Headers diff for icm32.dll between 5.2.3790.3959-Windows 5.0 and 6.0.6001.18000-Windows 6.0 versions



 icm.h (5.2.3790.3959-Windows 5.0)   icm.h (6.0.6001.18000-Windows 6.0) 
skipping to change at line 36 skipping to change at line 36
#endif #endif
// //
// Support for named color profiles // Support for named color profiles
// //
typedef char COLOR_NAME[32]; typedef char COLOR_NAME[32];
typedef COLOR_NAME *PCOLOR_NAME, *LPCOLOR_NAME; typedef COLOR_NAME *PCOLOR_NAME, *LPCOLOR_NAME;
typedef struct tagNAMED_PROFILE_INFO{ typedef struct tagNAMED_PROFILE_INFO{
DWORD dwFlags; DWORD dwFlags;
DWORD dwCount; DWORD dwCount;
DWORD dwCountDevCoordinates; DWORD dwCountDevCoordinates;
COLOR_NAME szPrefix; COLOR_NAME szPrefix;
COLOR_NAME szSuffix; COLOR_NAME szSuffix;
}NAMED_PROFILE_INFO; } NAMED_PROFILE_INFO;
typedef NAMED_PROFILE_INFO *PNAMED_PROFILE_INFO, *LPNAMED_PROFILE_INFO; typedef NAMED_PROFILE_INFO *PNAMED_PROFILE_INFO, *LPNAMED_PROFILE_INFO;
// //
// Color spaces // Color spaces
// //
// The following color spaces are supported. // The following color spaces are supported.
// Gray, RGB, CMYK, XYZ, Yxy, Lab, generic 3 channel color spaces where // Gray, RGB, CMYK, XYZ, Yxy, Lab, generic 3 channel color spaces where
// the profiles defines how to interpret the 3 channels, named color spaces // the profiles defines how to interpret the 3 channels, named color spaces
// which can either be indices into the space or have color names, and // which can either be indices into the space or have color names, and
// multichannel spaces with 1 byte per channel upto MAX_COLOR_CHANNELS. // multichannel spaces with 1 byte per channel up to MAX_COLOR_CHANNELS.
// //
#define MAX_COLOR_CHANNELS 8 // maximum number of HiFi color channels #define MAX_COLOR_CHANNELS 8 // maximum number of HiFi color channels
struct GRAYCOLOR { struct GRAYCOLOR {
WORD gray; WORD gray;
}; };
struct RGBCOLOR { struct RGBCOLOR {
WORD red; WORD red;
skipping to change at line 105 skipping to change at line 105
}; };
struct NAMEDCOLOR { struct NAMEDCOLOR {
DWORD dwIndex; DWORD dwIndex;
}; };
struct HiFiCOLOR { struct HiFiCOLOR {
BYTE channel[MAX_COLOR_CHANNELS]; BYTE channel[MAX_COLOR_CHANNELS];
}; };
#if _MSC_VER > 1200
#pragma warning(push)
#pragma warning(disable:4201) // nameless struct/union
#endif
typedef union tagCOLOR { typedef union tagCOLOR {
struct GRAYCOLOR gray; struct GRAYCOLOR gray;
struct RGBCOLOR rgb; struct RGBCOLOR rgb;
struct CMYKCOLOR cmyk; struct CMYKCOLOR cmyk;
struct XYZCOLOR XYZ; struct XYZCOLOR XYZ;
struct YxyCOLOR Yxy; struct YxyCOLOR Yxy;
struct LabCOLOR Lab; struct LabCOLOR Lab;
struct GENERIC3CHANNEL gen3ch; struct GENERIC3CHANNEL gen3ch;
struct NAMEDCOLOR named; struct NAMEDCOLOR named;
struct HiFiCOLOR hifi; struct HiFiCOLOR hifi;
struct { // alignment padding. struct { // alignment padding.
DWORD reserved1; DWORD reserved1;
VOID *reserved2; VOID *reserved2;
}; };
} COLOR; } COLOR;
typedef COLOR *PCOLOR, *LPCOLOR; typedef COLOR *PCOLOR, *LPCOLOR;
#if _MSC_VER > 1200
#pragma warning(pop)
#endif
typedef enum { typedef enum {
COLOR_GRAY = 1, COLOR_GRAY = 1,
COLOR_RGB, COLOR_RGB,
COLOR_XYZ, COLOR_XYZ,
COLOR_Yxy, COLOR_Yxy,
COLOR_Lab, COLOR_Lab,
COLOR_3_CHANNEL, // WORD per channel COLOR_3_CHANNEL, // WORD per channel
COLOR_CMYK, COLOR_CMYK,
COLOR_5_CHANNEL, // BYTE per channel COLOR_5_CHANNEL, // BYTE per channel
COLOR_6_CHANNEL, // - do - COLOR_6_CHANNEL, // - do -
COLOR_7_CHANNEL, // - do - COLOR_7_CHANNEL, // - do -
COLOR_8_CHANNEL, // - do - COLOR_8_CHANNEL, // - do -
COLOR_NAMED, COLOR_NAMED,
} COLORTYPE; } COLORTYPE;
typedef COLORTYPE *PCOLORTYPE, *LPCOLORTYPE; typedef COLORTYPE *PCOLORTYPE, *LPCOLORTYPE;
// //
// Rendering Intents
//
// + INTENT_PERCEPTUAL = LCS_GM_IMAGES for LOGCOLORSPACE
// = DMICM_CONTRAST for DEVMODE
// = "Pictures" for SetupColorMathing/Printer UI
//
// + INTENT_RELATIVE_COLORIMETRIC = LCS_GM_GRAPHICS for LOGCOLORSPACE
// = DMICM_COLORIMETRIC for DEVMODE
// = "Proof" for SetupColorMatching/Printer UI
//
// + INTENT_SATURATION = LCS_GM_BUSINESS for LOGCOLORSPACE
// = DMICM_SATURATE for DEVMODE
// = "Graphics" for SetupColorMatching/Printer UI
//
// + INTENT_ABSOLUTE_COLORIMETRIC = LCS_GM_ABS_COLORIMETRIC for LOGCOLORSPACE
// = DMICM_ABS_COLORIMETRIC for DEVMODE
// = "Match" for SetupColorMatching/Printer UI
//
#define INTENT_PERCEPTUAL 0
#define INTENT_RELATIVE_COLORIMETRIC 1
#define INTENT_SATURATION 2
#define INTENT_ABSOLUTE_COLORIMETRIC 3
#if NTDDI_VERSION >= NTDDI_LONGHORN
typedef enum {
CPT_ICC,
CPT_DMP,
CPT_CAMP,
CPT_GMMP
} COLORPROFILETYPE;
typedef COLORPROFILETYPE *PCOLORPROFILETYPE, *LPCOLORPROFILETYPE;
typedef enum {
// intent
CPST_PERCEPTUAL = INTENT_PERCEPTUAL,
CPST_RELATIVE_COLORIMETRIC = INTENT_RELATIVE_COLORIMETRIC,
CPST_SATURATION = INTENT_SATURATION,
CPST_ABSOLUTE_COLORIMETRIC = INTENT_ABSOLUTE_COLORIMETRIC,
// working space
CPST_NONE,
CPST_RGB_WORKING_SPACE,
CPST_CUSTOM_WORKING_SPACE,
} COLORPROFILESUBTYPE;
typedef COLORPROFILESUBTYPE *PCOLORPROFILESUBTYPE, *LPCOLORPROFILESUBTYPE;
//
// Device color data type
//
typedef enum {
COLOR_BYTE = 1, // BYTE per channel. data range [0, 255]
COLOR_WORD, // WORD per channel. data range [0, 65535]
COLOR_FLOAT, // FLOAT per channel. IEEE 32-bit floating point
COLOR_S2DOT13FIXED // WORD per channel. data range [-4, +4] using s
2.13
} COLORDATATYPE;
typedef COLORDATATYPE *PCOLORDATATYPE, *LPCOLORDATATYPE;
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
//
// Bitmap formats supported // Bitmap formats supported
// //
typedef enum { typedef enum {
// //
// 16bpp - 5 bits per channel. The most significant bit is ignored. // 16bpp - 5 bits per channel. The most significant bit is ignored.
// //
BM_x555RGB = 0x0000, BM_x555RGB = 0x0000,
skipping to change at line 218 skipping to change at line 291
BM_16b_Lab, BM_16b_Lab,
BM_16b_G3CH, BM_16b_G3CH,
BM_16b_GRAY, BM_16b_GRAY,
// //
// 16 bpp - 5 bits for Red & Blue, 6 bits for Green // 16 bpp - 5 bits for Red & Blue, 6 bits for Green
// //
BM_565RGB = 0x0001, BM_565RGB = 0x0001,
//#if NTDDI_VERSION >= NTDDI_LONGHORN
//
// scRGB - 32 bits per channel floating point
// 16 bits per channel floating point
//
BM_32b_scRGB = 0x0601,
BM_32b_scARGB = 0x0602,
BM_S2DOT13FIXED_scRGB = 0x0603,
BM_S2DOT13FIXED_scARGB = 0x0604
//#endif // NTDDI_VERSION >= NTDDI_LONGHORN
} BMFORMAT; } BMFORMAT;
typedef BMFORMAT *PBMFORMAT, *LPBMFORMAT; typedef BMFORMAT *PBMFORMAT, *LPBMFORMAT;
// //
// Callback function definition // Callback function definition
// //
typedef BOOL (WINAPI *PBMCALLBACKFN)(ULONG, ULONG, LPARAM); typedef BOOL (WINAPI *PBMCALLBACKFN)(ULONG, ULONG, LPARAM);
typedef PBMCALLBACKFN LPBMCALLBACKFN; typedef PBMCALLBACKFN LPBMCALLBACKFN;
skipping to change at line 264 skipping to change at line 349
// Profile class values // Profile class values
// //
#define CLASS_MONITOR 'mntr' #define CLASS_MONITOR 'mntr'
#define CLASS_PRINTER 'prtr' #define CLASS_PRINTER 'prtr'
#define CLASS_SCANNER 'scnr' #define CLASS_SCANNER 'scnr'
#define CLASS_LINK 'link' #define CLASS_LINK 'link'
#define CLASS_ABSTRACT 'abst' #define CLASS_ABSTRACT 'abst'
#define CLASS_COLORSPACE 'spac' #define CLASS_COLORSPACE 'spac'
#define CLASS_NAMED 'nmcl' #define CLASS_NAMED 'nmcl'
#if NTDDI_VERSION >= NTDDI_LONGHORN
#define CLASS_CAMP 'camp'
#define CLASS_GMMP 'gmmp'
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
// //
// Color space values // Color space values
// //
#define SPACE_XYZ 'XYZ ' #define SPACE_XYZ 'XYZ '
#define SPACE_Lab 'Lab ' #define SPACE_Lab 'Lab '
#define SPACE_Luv 'Luv ' #define SPACE_Luv 'Luv '
#define SPACE_YCbCr 'YCbr' #define SPACE_YCbCr 'YCbr'
#define SPACE_Yxy 'Yxy ' #define SPACE_Yxy 'Yxy '
skipping to change at line 296 skipping to change at line 385
#define SPACE_8_CHANNEL '8CLR' #define SPACE_8_CHANNEL '8CLR'
// //
// Profile flag bitfield values // Profile flag bitfield values
// //
#define FLAG_EMBEDDEDPROFILE 0x00000001 #define FLAG_EMBEDDEDPROFILE 0x00000001
#define FLAG_DEPENDENTONDATA 0x00000002 #define FLAG_DEPENDENTONDATA 0x00000002
// //
// Profile attributes bitfield values // Profile flag bits for vendor extensions (bytes 44..45 of the ICC profile head er).
// //
#define ATTRIB_TRANSPARENCY 0x00000001 #if NTDDI_VERSION >= NTDDI_LONGHORN
#define ATTRIB_MATTE 0x00000002
// //
// Rendering Intents // Enable support for chromatic adaptation.
//
// + INTENT_PERCEPTUAL = LCS_GM_IMAGES for LOGCOLORSPACE
// = DMICM_CONTRAST for DEVMODE
// = "Pictures" for SetupColorMathing/Printer UI
//
// + INTENT_RELATIVE_COLORIMETRIC = LCS_GM_GRAPHICS for LOGCOLORSPACE
// = DMICM_COLORIMETRIC for DEVMODE
// = "Proof" for SetupColorMatching/Printer UI
// //
// + INTENT_SATURATION = LCS_GM_BUSINESS for LOGCOLORSPACE #define FLAG_ENABLE_CHROMATIC_ADAPTATION 0x02000000
// = DMICM_SATURATE for DEVMODE
// = "Graphics" for SetupColorMatching/Printer UI #endif // NTDDI_VERSION >= NTDDI_LONGHORN
// //
// + INTENT_ABSOLUTE_COLORIMETRIC = LCS_GM_ABS_COLORIMETRIC for LOGCOLORSPACE // Profile attributes bitfield values
// = DMICM_ABS_COLORIMETRIC for DEVMODE
// = "Match" for SetupColorMatching/Printer UI
// //
#define INTENT_PERCEPTUAL 0 #define ATTRIB_TRANSPARENCY 0x00000001
#define INTENT_RELATIVE_COLORIMETRIC 1 #define ATTRIB_MATTE 0x00000002
#define INTENT_SATURATION 2
#define INTENT_ABSOLUTE_COLORIMETRIC 3
// //
// Profile data structure // Profile data structure
// //
typedef struct tagPROFILE { typedef struct tagPROFILE {
DWORD dwType; // profile type DWORD dwType; // profile type
PVOID pProfileData; // filename or buffer containing profile PVOID pProfileData; // filename or buffer containing profile
DWORD cbDataSize; // size of profile data DWORD cbDataSize; // size of profile data
} PROFILE; } PROFILE;
skipping to change at line 450 skipping to change at line 527
#define ET_SIGNATURE 0x00000100 #define ET_SIGNATURE 0x00000100
#define ET_PLATFORM 0x00000200 #define ET_PLATFORM 0x00000200
#define ET_PROFILEFLAGS 0x00000400 #define ET_PROFILEFLAGS 0x00000400
#define ET_MANUFACTURER 0x00000800 #define ET_MANUFACTURER 0x00000800
#define ET_MODEL 0x00001000 #define ET_MODEL 0x00001000
#define ET_ATTRIBUTES 0x00002000 #define ET_ATTRIBUTES 0x00002000
#define ET_RENDERINGINTENT 0x00004000 #define ET_RENDERINGINTENT 0x00004000
#define ET_CREATOR 0x00008000 #define ET_CREATOR 0x00008000
#define ET_DEVICECLASS 0x00010000 #define ET_DEVICECLASS 0x00010000
#if NTDDI_VERSION >= NTDDI_LONGHORN
//
// WCS profile management scope - system-wide and current-user
//
typedef enum
{
WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE,
WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER
} WCS_PROFILE_MANAGEMENT_SCOPE;
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
// //
// Flags for creating color transforms // Flags for creating color transforms
// //
#define PROOF_MODE 0x00000001 #define PROOF_MODE 0x00000001
#define NORMAL_MODE 0x00000002 #define NORMAL_MODE 0x00000002
#define BEST_MODE 0x00000003 #define BEST_MODE 0x00000003
#define ENABLE_GAMUT_CHECKING 0x00010000 #define ENABLE_GAMUT_CHECKING 0x00010000
#define USE_RELATIVE_COLORIMETRIC 0x00020000 #define USE_RELATIVE_COLORIMETRIC 0x00020000
#define FAST_TRANSLATE 0x00040000 #define FAST_TRANSLATE 0x00040000
#if NTDDI_VERSION >= NTDDI_LONGHORN
#define PRESERVEBLACK 0x00100000
#define WCS_ALWAYS 0x00200000
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
#define RESERVED 0x80000000 #define RESERVED 0x80000000
// //
// Paremeter for GetPS2ColorSpaceArray // Parameter for GetPS2ColorSpaceArray
// //
#define CSA_A 1 #define CSA_A 1
#define CSA_ABC 2 #define CSA_ABC 2
#define CSA_DEF 3 #define CSA_DEF 3
#define CSA_DEFG 4 #define CSA_DEFG 4
#define CSA_GRAY 5 #define CSA_GRAY 5
#define CSA_RGB 6 #define CSA_RGB 6
#define CSA_CMYK 7 #define CSA_CMYK 7
#define CSA_Lab 8 #define CSA_Lab 8
skipping to change at line 607 skipping to change at line 702
PCMSCALLBACKA lpfnApplyCallback; // Callback Procedure address when apply is pushed PCMSCALLBACKA lpfnApplyCallback; // Callback Procedure address when apply is pushed
LPARAM lParamApplyCallback; // Given to callback Procedure for apply LPARAM lParamApplyCallback; // Given to callback Procedure for apply
} COLORMATCHSETUPA, *PCOLORMATCHSETUPA, *LPCOLORMATCHSETUPA; } COLORMATCHSETUPA, *PCOLORMATCHSETUPA, *LPCOLORMATCHSETUPA;
// //
// Windows API definitions // Windows API definitions
// //
HPROFILE WINAPI OpenColorProfileA(PPROFILE, DWORD, DWORD, DWORD); HPROFILE WINAPI OpenColorProfileA(__in PPROFILE pProfile, DWORD dwDesiredAcces
HPROFILE WINAPI OpenColorProfileW(PPROFILE, DWORD, DWORD, DWORD); s, DWORD dwShareMode, DWORD dwCreationMode);
BOOL WINAPI CloseColorProfile(HPROFILE); HPROFILE WINAPI OpenColorProfileW(__in PPROFILE pProfile, DWORD dwDesiredAcces
BOOL WINAPI GetColorProfileFromHandle(HPROFILE, PBYTE, PDWORD); s, DWORD dwShareMode, DWORD dwCreationMode);
BOOL WINAPI IsColorProfileValid(HPROFILE, PBOOL); BOOL WINAPI CloseColorProfile(__in_opt HPROFILE hProfile);
BOOL WINAPI CreateProfileFromLogColorSpaceA(LPLOGCOLORSPACEA, PBYTE*); BOOL WINAPI GetColorProfileFromHandle(__in HPROFILE hProfile, __out_bcount
BOOL WINAPI CreateProfileFromLogColorSpaceW(LPLOGCOLORSPACEW, PBYTE*); _opt(*pcbProfile) PBYTE pProfile, PDWORD pcbProfile);
BOOL WINAPI GetCountColorProfileElements(HPROFILE, PDWORD); BOOL WINAPI IsColorProfileValid(__in HPROFILE hProfile, PBOOL pbValid);
BOOL WINAPI GetColorProfileHeader(HPROFILE, PPROFILEHEADER); BOOL WINAPI CreateProfileFromLogColorSpaceA(__in LPLOGCOLORSPACEA pLogColo
BOOL WINAPI GetColorProfileElementTag(HPROFILE, DWORD, PTAGTYPE); rSpace, __deref_out PBYTE* pProfile);
BOOL WINAPI IsColorProfileTagPresent(HPROFILE, TAGTYPE, PBOOL); BOOL WINAPI CreateProfileFromLogColorSpaceW(__in LPLOGCOLORSPACEW pLogColo
BOOL WINAPI GetColorProfileElement(HPROFILE, TAGTYPE, DWORD, PDWORD, PVOID rSpace, __deref_out PBYTE* pProfile);
, PBOOL); BOOL WINAPI GetCountColorProfileElements(__in HPROFILE hProfile, PDWORD pn
BOOL WINAPI SetColorProfileHeader(HPROFILE, PPROFILEHEADER); ElementCount);
BOOL WINAPI SetColorProfileElementSize(HPROFILE, TAGTYPE, DWORD); BOOL WINAPI GetColorProfileHeader(__in HPROFILE hProfile, __out PPROFILEHE
BOOL WINAPI SetColorProfileElement(HPROFILE, TAGTYPE, DWORD, PDWORD, PVOID ADER pHeader);
); BOOL WINAPI GetColorProfileElementTag(__in HPROFILE hProfile, DWORD dwInde
BOOL WINAPI SetColorProfileElementReference(HPROFILE, TAGTYPE, TAGTYPE); x, __out PTAGTYPE pTag);
BOOL WINAPI GetPS2ColorSpaceArray (HPROFILE, DWORD, DWORD, PBYTE, PDWORD, BOOL WINAPI IsColorProfileTagPresent(__in HPROFILE hProfile, TAGTYPE tag,
PBOOL); __out PBOOL pbPresent);
BOOL WINAPI GetPS2ColorRenderingIntent(HPROFILE, DWORD, PBYTE, PDWORD); BOOL WINAPI GetColorProfileElement(__in HPROFILE hProfile, TAGTYPE tag, DW
BOOL WINAPI GetPS2ColorRenderingDictionary(HPROFILE, DWORD, PBYTE, PDWORD, ORD dwOffset, PDWORD pcbElement, __out_bcount_opt(*pcbElement) PVOID pElement, _
PBOOL); _out PBOOL pbReference);
BOOL WINAPI GetNamedProfileInfo(HPROFILE, PNAMED_PROFILE_INFO); BOOL WINAPI SetColorProfileHeader(__in HPROFILE hProfile, __in_bcount(size
BOOL WINAPI ConvertColorNameToIndex(HPROFILE, PCOLOR_NAME, PDWORD, DWORD); of(PROFILEHEADER)) PPROFILEHEADER pHeader);
BOOL WINAPI ConvertIndexToColorName(HPROFILE, PDWORD, PCOLOR_NAME, DWORD); BOOL WINAPI SetColorProfileElementSize(__in HPROFILE hProfile, TAGTYPE tag
BOOL WINAPI CreateDeviceLinkProfile(PHPROFILE, DWORD, PDWORD, DWORD, DWORD Type, DWORD pcbElement);
, PBYTE*, DWORD); BOOL WINAPI SetColorProfileElement(__in HPROFILE hProfile, TAGTYPE tag, DW
HTRANSFORM WINAPI CreateColorTransformA(LPLOGCOLORSPACEA, HPROFILE, HPROFILE, DW ORD dwOffset, PDWORD pcbElement, __in_ecount(*pcbElement) PVOID pElement);
ORD); BOOL WINAPI SetColorProfileElementReference(__in HPROFILE hProfile, TAGTYP
HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW, HPROFILE, HPROFILE, DW E newTag, TAGTYPE refTag);
ORD); BOOL WINAPI GetPS2ColorSpaceArray(__in HPROFILE hProfile, DWORD dwIntent,
HTRANSFORM WINAPI CreateMultiProfileTransform(PHPROFILE, DWORD, PDWORD, DWORD, D DWORD dwCSAType, __out_opt PBYTE pPS2ColorSpaceArray, PDWORD pcbPS2ColorSpaceArr
WORD, DWORD); ay, __out PBOOL pbBinary);
BOOL WINAPI DeleteColorTransform(HTRANSFORM); BOOL WINAPI GetPS2ColorRenderingIntent(__in HPROFILE hProfile, DWORD dwInt
BOOL WINAPI TranslateBitmapBits(HTRANSFORM, PVOID, BMFORMAT, DWORD, DWORD, ent, __out_bcount_opt(*pcbPS2ColorRenderingIntent) PBYTE pBuffer, PDWORD pcbPS2C
DWORD, PVOID, BMFORMAT, DWORD, PBMCALLBACKFN, LPARAM); olorRenderingIntent);
BOOL WINAPI CheckBitmapBits(HTRANSFORM , PVOID, BMFORMAT, DWORD, DWORD, DW BOOL WINAPI GetPS2ColorRenderingDictionary(__in HPROFILE hProfile, DWORD d
ORD, PBYTE, PBMCALLBACKFN, LPARAM); wIntent, __out_bcount_opt(*pcbPS2ColorRenderingDictionary) PBYTE pPS2ColorRender
BOOL WINAPI TranslateColors(HTRANSFORM, PCOLOR, DWORD, COLORTYPE, PCOLOR, ingDictionary, PDWORD pcbPS2ColorRenderingDictionary, PBOOL pbBinary);
COLORTYPE); BOOL WINAPI GetNamedProfileInfo(__in HPROFILE hProfile, __inout_bcount(siz
BOOL WINAPI CheckColors(HTRANSFORM, PCOLOR, DWORD, COLORTYPE, PBYTE); eof(NAMED_PROFILE_INFO)) PNAMED_PROFILE_INFO pNamedProfileInfo);
DWORD WINAPI GetCMMInfo(HTRANSFORM, DWORD); BOOL WINAPI ConvertColorNameToIndex(__in HPROFILE hProfile, __in_ecount(dw
BOOL WINAPI RegisterCMMA(PCSTR, DWORD, PCSTR); Count) PCOLOR_NAME paColorName, __out_ecount(dwCount) PDWORD paIndex, DWORD dwCo
BOOL WINAPI RegisterCMMW(PCWSTR, DWORD, PCWSTR); unt);
BOOL WINAPI UnregisterCMMA(PCSTR, DWORD); BOOL WINAPI ConvertIndexToColorName(__in HPROFILE hProfile, __in_ecount(dw
BOOL WINAPI UnregisterCMMW(PCWSTR, DWORD); Count) PDWORD paIndex, __out_ecount(dwCount) PCOLOR_NAME paColorName, DWORD dwCo
BOOL WINAPI SelectCMM(DWORD); unt);
BOOL WINAPI CreateDeviceLinkProfile(__in_ecount(nProfiles) PHPROFILE hProf
ile, DWORD nProfiles, __in_ecount(nIntents) PDWORD padwIntent, DWORD nIntents, D
WORD dwFlags, __out PBYTE* pProfileData, DWORD indexPreferredCMM);
HTRANSFORM WINAPI CreateColorTransformA(__in LPLOGCOLORSPACEA pLogColorSpace, __
in HPROFILE hDestProfile, __in HPROFILE hTargetProfile, DWORD dwFlags);
HTRANSFORM WINAPI CreateColorTransformW(__in LPLOGCOLORSPACEW pLogColorSpace, __
in HPROFILE hDestProfile, __in HPROFILE hTargetProfile, DWORD dwFlags);
HTRANSFORM WINAPI CreateMultiProfileTransform(__in_ecount(nProfiles) PHPROFILE p
ahProfiles, DWORD nProfiles, __in_ecount(nIntents) PDWORD padwIntent, DWORD nInt
ents, DWORD dwFlags, DWORD indexPreferredCMM);
BOOL WINAPI DeleteColorTransform(__inout HTRANSFORM hxform);
BOOL WINAPI TranslateBitmapBits(__in HTRANSFORM hColorTransform, __in PVOI
D pSrcBits, BMFORMAT bmInput, DWORD dwWidth, DWORD dwHeight, DWORD dwInputStride
, __out PVOID pDestBits, BMFORMAT bmOutput, DWORD dwOutputStride, __in_opt __cal
lback PBMCALLBACKFN pfnCallBack, __in_opt LPARAM ulCallbackData);
BOOL WINAPI CheckBitmapBits(__in HTRANSFORM hColorTransform, __in PVOID pS
rcBits, BMFORMAT bmInput, DWORD dwWidth, DWORD dwHeight, DWORD dwStride, __out_e
count(dwWidth * dwHeight) PBYTE paResult, __in_opt __callback PBMCALLBACKFN pfnC
allback, __in_opt LPARAM lpCallbackData);
BOOL WINAPI TranslateColors(__in HTRANSFORM hColorTransform, __in_ecount(n
Colors) PCOLOR paInputColors, DWORD nColors, COLORTYPE ctInput, __out_ecount(nCo
lors) PCOLOR paOutputColors, COLORTYPE ctOutput);
BOOL WINAPI CheckColors(__in HTRANSFORM hColorTransform, __in_ecount(nColo
rs) PCOLOR paInputColors, DWORD nColors, COLORTYPE ctInput, __out_ecount(nColors
) PBYTE paResult);
DWORD WINAPI GetCMMInfo(__in HTRANSFORM hColorTransform, __in DWORD);
BOOL WINAPI RegisterCMMA(__in_opt PCSTR pMachineName, __in DWORD cmmID, __
in PCSTR pCMMdll);
BOOL WINAPI RegisterCMMW(__in_opt PCWSTR pMachineName, __in DWORD cmmID, _
_in PCWSTR pCMMdll);
BOOL WINAPI UnregisterCMMA(__in_opt PCSTR pMachineName, __in DWORD cmmID);
BOOL WINAPI UnregisterCMMW(__in_opt PCWSTR pMachineName, __in DWORD cmmID)
;
BOOL WINAPI SelectCMM(DWORD dwCMMType);
BOOL BOOL
WINAPI WINAPI
GetColorDirectoryA( GetColorDirectoryA(
__in PCSTR pMachineName, __in_opt PCSTR pMachineName,
__out_bcount_part(*pdwSize, *pdwSize) PSTR pBuffer, __out_bcount_part_opt(*pdwSize, *pdwSize) PSTR pBuffer,
__inout PDWORD pdwSize __inout PDWORD pdwSize
); );
BOOL BOOL
WINAPI WINAPI
GetColorDirectoryW( GetColorDirectoryW(
__in PCWSTR pMachineName, __in_opt PCWSTR pMachineName,
__out_bcount_part(*pdwSize, *pdwSize) PWSTR pBuffer, __out_bcount_part_opt(*pdwSize, *pdwSize) PWSTR pBuffer,
__inout PDWORD pdwSize __inout PDWORD pdwSize
); );
BOOL WINAPI InstallColorProfileA(PCSTR, PCSTR); BOOL WINAPI InstallColorProfileA(__in_opt PCSTR pMachineName, __in PCSTR
BOOL WINAPI InstallColorProfileW(PCWSTR, PCWSTR); pProfileName);
BOOL WINAPI UninstallColorProfileA(PCSTR, PCSTR, BOOL); BOOL WINAPI InstallColorProfileW(__in_opt PCWSTR pMachineName, __in PCWSTR
BOOL WINAPI UninstallColorProfileW(PCWSTR, PCWSTR, BOOL); pProfileName);
BOOL WINAPI EnumColorProfilesA(PCSTR, PENUMTYPEA, PBYTE, PDWORD, PDWORD); BOOL WINAPI UninstallColorProfileA(__in_opt PCSTR pMachineName, __in PCST
BOOL WINAPI EnumColorProfilesW(PCWSTR, PENUMTYPEW, PBYTE, PDWORD, PDWORD); R pProfileName, BOOL bDelete);
BOOL WINAPI SetStandardColorSpaceProfileA(PCSTR, DWORD, PCSTR); BOOL WINAPI UninstallColorProfileW(__in_opt PCWSTR pMachineName, __in PCWS
BOOL WINAPI SetStandardColorSpaceProfileW(PCWSTR, DWORD, PCWSTR); TR pProfileName, BOOL bDelete);
BOOL WINAPI EnumColorProfilesA(__in_opt PCSTR pMachineName, __in PENUMTYP
EA pEnumRecord, __out_bcount_opt(*pdwSizeOfEnumerationBuffer) PBYTE pEnumeration
Buffer, __inout PDWORD pdwSizeOfEnumerationBuffer, __out_opt PDWORD pnProfiles);
BOOL WINAPI EnumColorProfilesW(__in_opt PCWSTR pMachineName, __in PENUMTYP
EW pEnumRecord, __out_bcount_opt(*pdwSizeOfEnumerationBuffer) PBYTE pEnumeration
Buffer, __inout PDWORD pdwSizeOfEnumerationBuffer, __out_opt PDWORD pnProfiles);
BOOL WINAPI SetStandardColorSpaceProfileA(__in_opt PCSTR pMachineName, DW
ORD dwProfileID, __in PCSTR pProfilename);
BOOL WINAPI SetStandardColorSpaceProfileW(__in_opt PCWSTR pMachineName, DW
ORD dwProfileID, __in PCWSTR pProfileName);
BOOL BOOL
WINAPI WINAPI
GetStandardColorSpaceProfileA( GetStandardColorSpaceProfileA(
__in PCSTR pMachineName, __in_opt PCSTR pMachineName,
__in DWORD dwSCS, __in DWORD dwSCS,
__out_bcount_part(*pcbSize, *pcbSize) PSTR pBuffer, __out_bcount_part_opt(*pcbSize, *pcbSize) PSTR pBuffer,
__inout PDWORD pcbSize __inout PDWORD pcbSize
); );
BOOL BOOL
WINAPI WINAPI
GetStandardColorSpaceProfileW( GetStandardColorSpaceProfileW(
__in PCWSTR pMachineName, __in_opt PCWSTR pMachineName,
__in DWORD dwSCS, __in DWORD dwSCS,
__out_bcount_part(*pcbSize, *pcbSize) PWSTR pBuffer, __out_bcount_part_opt(*pcbSize, *pcbSize) PWSTR pBuffer,
__inout PDWORD pcbSize __inout PDWORD pcbSize
); );
BOOL WINAPI AssociateColorProfileWithDeviceA(PCSTR, PCSTR, PCSTR); BOOL WINAPI AssociateColorProfileWithDeviceA(__in_opt PCSTR pMachineName,
BOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR, PCWSTR, PCWSTR); __in PCSTR pProfileName, __in PCSTR pDeviceName);
BOOL WINAPI DisassociateColorProfileFromDeviceA(PCSTR, PCSTR, PCSTR); BOOL WINAPI AssociateColorProfileWithDeviceW(__in_opt PCWSTR pMachineName,
BOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR, PCWSTR, PCWSTR); __in PCWSTR pProfileName, __in PCWSTR pDeviceName);
BOOL WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW pcms); BOOL WINAPI DisassociateColorProfileFromDeviceA(__in_opt PCSTR pMachineNam
BOOL WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA pcms); e, __in PCSTR pProfileName, __in PCSTR pDeviceName);
BOOL WINAPI DisassociateColorProfileFromDeviceW(__in_opt PCWSTR pMachineNa
me, __in PCWSTR pProfileName, __in PCWSTR pDeviceName);
BOOL WINAPI SetupColorMatchingW(__inout_bcount(sizeof(COLORMATCHSETUPW)) P
COLORMATCHSETUPW pcms);
BOOL WINAPI SetupColorMatchingA(__inout_bcount(sizeof(COLORMATCHSETUPA)) P
COLORMATCHSETUPA pcms);
#if NTDDI_VERSION >= NTDDI_LONGHORN
BOOL
WINAPI
WcsAssociateColorProfileWithDevice(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in PCWSTR pProfileName,
__in PCWSTR pDeviceName
);
BOOL
WINAPI
WcsDisassociateColorProfileFromDevice(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in PCWSTR pProfileName,
__in PCWSTR pDeviceName
);
BOOL
WINAPI
WcsEnumColorProfilesSize(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in PENUMTYPEW pEnumRecord,
__out PDWORD pdwSize
);
BOOL
WINAPI
WcsEnumColorProfiles(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in PENUMTYPEW pEnumRecord,
__out_bcount(dwSize) PBYTE pBuffer,
__in DWORD dwSize,
__out_opt PDWORD pnProfiles
);
BOOL
WINAPI
WcsGetDefaultColorProfileSize(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in_opt PCWSTR pDeviceName,
__in COLORPROFILETYPE cptColorProfileType,
__in COLORPROFILESUBTYPE cpstColorProfileSubType,
__in DWORD dwProfileID,
__out PDWORD pcbProfileName
);
BOOL
WINAPI
WcsGetDefaultColorProfile(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in_opt PCWSTR pDeviceName,
__in COLORPROFILETYPE cptColorProfileType,
__in COLORPROFILESUBTYPE cpstColorProfileSubType,
__in DWORD dwProfileID,
__in DWORD cbProfileName,
__out_bcount(cbProfileName) LPWSTR pProfileName
);
BOOL
WINAPI
WcsSetDefaultColorProfile(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in_opt PCWSTR pDeviceName,
__in COLORPROFILETYPE cptColorProfileType,
__in COLORPROFILESUBTYPE cpstColorProfileSubType,
__in DWORD dwProfileID,
__in_opt LPCWSTR pProfileName
);
BOOL
WINAPI
WcsSetDefaultRenderingIntent(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__in DWORD dwRenderingIntent
);
BOOL
WINAPI
WcsGetDefaultRenderingIntent(
__in WCS_PROFILE_MANAGEMENT_SCOPE scope,
__out PDWORD pdwRenderingIntent
);
BOOL
WINAPI
WcsGetUsePerUserProfiles(
__in LPCWSTR pDeviceName,
__in DWORD dwDeviceClass,
__out PBOOL pUsePerUserProfiles
);
BOOL
WINAPI
WcsSetUsePerUserProfiles(
__in LPCWSTR pDeviceName,
__in DWORD dwDeviceClass,
__in BOOL usePerUserProfiles
);
BOOL
WINAPI
WcsTranslateColors(
__in HTRANSFORM hColorTransform,
__in DWORD nColors,
__in DWORD nInputChannels,
__in COLORDATATYPE cdtInput,
__in DWORD cbInput,
__in_bcount(cbInput) PVOID pInputData,
__in DWORD nOutputChannels,
__in COLORDATATYPE cdtOutput,
__in DWORD cbOutput,
__out_bcount(cbOutput) PVOID pOutputData
);
BOOL
WINAPI
WcsCheckColors(
__in HTRANSFORM hColorTransform,
__in DWORD nColors,
__in DWORD nInputChannels,
__in COLORDATATYPE cdtInput,
__in DWORD cbInput,
__in_bcount(cbInput) PVOID pInputData,
__out_ecount(nColors) PBYTE paResult
);
//
// The APIs SetupColorMatchingA and SetupColorMatchingW are
// deprecated as of Windows Vista. The implementations in icmui.dll
// now SetLastError to ERROR_NOT_SUPPORTED, and return FALSE.
//
#pragma deprecated (SetupColorMatchingA)
#pragma deprecated (SetupColorMatchingW)
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
#ifdef UNICODE #ifdef UNICODE
#define ENUMTYPE ENUMTYPEW #define ENUMTYPE ENUMTYPEW
#define PENUMTYPE PENUMTYPEW #define PENUMTYPE PENUMTYPEW
#define COLORMATCHSETUP COLORMATCHSETUPW #define COLORMATCHSETUP COLORMATCHSETUPW
#define PCOLORMATCHSETUP PCOLORMATCHSETUPW #define PCOLORMATCHSETUP PCOLORMATCHSETUPW
#define LPCOLORMATCHSETUP LPCOLORMATCHSETUPW #define LPCOLORMATCHSETUP LPCOLORMATCHSETUPW
#define PCMSCALLBACK PCMSCALLBACKW #define PCMSCALLBACK PCMSCALLBACKW
#define CreateColorTransform CreateColorTransformW #define CreateColorTransform CreateColorTransformW
skipping to change at line 717 skipping to change at line 949
#define UnregisterCMM UnregisterCMMW #define UnregisterCMM UnregisterCMMW
#define GetColorDirectory GetColorDirectoryW #define GetColorDirectory GetColorDirectoryW
#define InstallColorProfile InstallColorProfileW #define InstallColorProfile InstallColorProfileW
#define UninstallColorProfile UninstallColorProfileW #define UninstallColorProfile UninstallColorProfileW
#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceW #define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceW
#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceW #define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceW
#define EnumColorProfiles EnumColorProfilesW #define EnumColorProfiles EnumColorProfilesW
#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileW #define SetStandardColorSpaceProfile SetStandardColorSpaceProfileW
#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileW #define GetStandardColorSpaceProfile GetStandardColorSpaceProfileW
#define SetupColorMatching SetupColorMatchingW #define SetupColorMatching SetupColorMatchingW
#if NTDDI_VERSION >= NTDDI_LONGHORN
#define WcsOpenColorProfile WcsOpenColorProfileW
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
#else #else
#define ENUMTYPE ENUMTYPEA #define ENUMTYPE ENUMTYPEA
#define PENUMTYPE PENUMTYPEA #define PENUMTYPE PENUMTYPEA
#define COLORMATCHSETUP COLORMATCHSETUPA #define COLORMATCHSETUP COLORMATCHSETUPA
#define PCOLORMATCHSETUP PCOLORMATCHSETUPA #define PCOLORMATCHSETUP PCOLORMATCHSETUPA
#define LPCOLORMATCHSETUP LPCOLORMATCHSETUPA #define LPCOLORMATCHSETUP LPCOLORMATCHSETUPA
#define PCMSCALLBACK PCMSCALLBACKA #define PCMSCALLBACK PCMSCALLBACKA
#define CreateColorTransform CreateColorTransformA #define CreateColorTransform CreateColorTransformA
skipping to change at line 740 skipping to change at line 975
#define UnregisterCMM UnregisterCMMA #define UnregisterCMM UnregisterCMMA
#define GetColorDirectory GetColorDirectoryA #define GetColorDirectory GetColorDirectoryA
#define InstallColorProfile InstallColorProfileA #define InstallColorProfile InstallColorProfileA
#define UninstallColorProfile UninstallColorProfileA #define UninstallColorProfile UninstallColorProfileA
#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceA #define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceA
#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceA #define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceA
#define EnumColorProfiles EnumColorProfilesA #define EnumColorProfiles EnumColorProfilesA
#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileA #define SetStandardColorSpaceProfile SetStandardColorSpaceProfileA
#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileA #define GetStandardColorSpaceProfile GetStandardColorSpaceProfileA
#define SetupColorMatching SetupColorMatchingA #define SetupColorMatching SetupColorMatchingA
#if NTDDI_VERSION >= NTDDI_LONGHORN
#define WcsOpenColorProfile WcsOpenColorProfileA
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
#endif // !UNICODE #endif // !UNICODE
// //
// Transform returned by CMM // Transform returned by CMM
// //
typedef HANDLE HCMTRANSFORM; typedef HANDLE HCMTRANSFORM;
// //
// Pointer to ICC color profile data. // Pointer to ICC color profile data.
// //
typedef PVOID LPDEVCHARACTER; typedef PVOID LPDEVCHARACTER;
// //
// CMM API definition // CMM API definition
// //
BOOL WINAPI CMCheckColors( BOOL WINAPI CMCheckColors(
HCMTRANSFORM hcmTransform, // transform handle __in HCMTRANSFORM hcmTransform, // transform handle
LPCOLOR lpaInputColors, // array of COLORs __in_ecount(nColors) LPCOLOR lpaInputColors, // array of COLORs
DWORD nColors, // COLOR array size DWORD nColors, // COLOR array size
COLORTYPE ctInput, // input color type COLORTYPE ctInput, // input color type
LPBYTE lpaResult // buffer for results LPBYTE lpaResult // buffer for results
); );
BOOL WINAPI CMCheckColorsInGamut( BOOL WINAPI CMCheckColorsInGamut(
HCMTRANSFORM hcmTransform, // transform handle __in HCMTRANSFORM hcmTransform, // transform handle
RGBTRIPLE *lpaRGBTriple, // RGB triple array __in_ecount(nCount) RGBTRIPLE *lpaRGBTriple, // RGB triple array
LPBYTE lpaResult, // buffer for results __out_bcount(nCount) LPBYTE lpaResult, // buffer for results
UINT nCount // result buffer size UINT nCount // result buffer size
); );
BOOL WINAPI CMCheckRGBs( BOOL WINAPI CMCheckRGBs(
HCMTRANSFORM hcmTransform, // transform handle __in HCMTRANSFORM hcmTransform, // transform handle
LPVOID lpSrcBits, // source bitmap bits __in LPVOID lpSrcBits, // source bitmap bits
BMFORMAT bmInput, // source bitmap format BMFORMAT bmInput, // source bitmap format
DWORD dwWidth, // source bitmap width DWORD dwWidth, // source bitmap width
DWORD dwHeight, // source bitmap hight DWORD dwHeight, // source bitmap hight
DWORD dwStride, // source bitmap delta DWORD dwStride, // source bitmap delta
LPBYTE lpaResult, // buffer for results __out LPBYTE lpaResult, // buffer for results
PBMCALLBACKFN pfnCallback, // pointer to callback function __callback PBMCALLBACKFN pfnCallback, // pointer to callback function
LPARAM ulCallbackData // caller-defined parameter to callback LPARAM ulCallbackData // caller-defined parameter to callba
); ck
);
BOOL WINAPI CMConvertColorNameToIndex( BOOL WINAPI CMConvertColorNameToIndex(
HPROFILE hProfile, __in HPROFILE hProfile,
PCOLOR_NAME paColorName, __in_ecount(dwCount) PCOLOR_NAME paColorName,
PDWORD paIndex, __out_ecount(dwCount) PDWORD paIndex,
DWORD dwCount DWORD dwCount
); );
BOOL WINAPI CMConvertIndexToColorName( BOOL WINAPI CMConvertIndexToColorName(
HPROFILE hProfile, __in HPROFILE hProfile,
PDWORD paIndex, __in_ecount(dwCount) PDWORD paIndex,
PCOLOR_NAME paColorName, __out_ecount(dwCount) PCOLOR_NAME paColorName,
DWORD dwCount DWORD dwCount
); );
BOOL WINAPI CMCreateDeviceLinkProfile( BOOL WINAPI CMCreateDeviceLinkProfile(
PHPROFILE pahProfiles, // array of profile handles __in_ecount(nProfiles) PHPROFILE pahProfiles, // array of profile handles
DWORD nProfiles, // profile handle array size DWORD nProfiles, // profile handle array siz
PDWORD padwIntents, // array of rendering intents e
DWORD nIntents, // intent array size __in_ecount(nIntents) PDWORD padwIntents, // array of rendering inten
DWORD dwFlags, // transform creation flags ts
LPBYTE *lpProfileData // pointer to pointer to buffer DWORD nIntents, // intent array size
); DWORD dwFlags, // transform creation flags
__out LPBYTE *lpProfileData // pointer to pointer to bu
ffer
);
HCMTRANSFORM WINAPI CMCreateMultiProfileTransform( HCMTRANSFORM WINAPI CMCreateMultiProfileTransform(
PHPROFILE pahProfiles, // array of profile handles __in_ecount(nProfiles) PHPROFILE pahProfiles, // array of profile handles
DWORD nProfiles, // profile handle array size DWORD nProfiles, // profile handle array siz
PDWORD padwIntents, // array of rendering intents e
DWORD nIntents, // intent array size __in_ecount(nIntents) PDWORD padwIntents, // array of rendering inten
DWORD dwFlags // transform creation flags ts
); DWORD nIntents, // intent array size
DWORD dwFlags // transform creation flags
);
BOOL WINAPI CMCreateProfile( BOOL WINAPI CMCreateProfile(
LPLOGCOLORSPACEA lpColorSpace, // pointer to a logical color space __inout LPLOGCOLORSPACEA lpColorSpace, // pointer to a logical color space
LPDEVCHARACTER *lpProfileData // pointer to pointer to buffer __out LPDEVCHARACTER *lpProfileData // pointer to pointer to buffer
); );
BOOL WINAPI CMCreateProfileW( BOOL WINAPI CMCreateProfileW(
LPLOGCOLORSPACEW lpColorSpace, // pointer to a logical color space __inout LPLOGCOLORSPACEW lpColorSpace, // pointer to a logical color space
LPDEVCHARACTER *lpProfileData // pointer to pointer to buffer __out LPDEVCHARACTER *lpProfileData // pointer to pointer to buffer
); );
//
// The CMM APIs CMCreateTransform, CMCreateTransformW, and CMCreateTransformExt
are
// deprecated as of Windows Vista, and CMM implementors are no longer required t
o
// implement them. The implementations in the default CMM (icm32.dll) in Windows
Vista
// now SetLastError to ERROR_NOT_SUPPORTED, and return an invalid transform hand
le
// (a value < 256).
//
HCMTRANSFORM WINAPI CMCreateTransform( HCMTRANSFORM WINAPI CMCreateTransform(
LPLOGCOLORSPACEA lpColorSpace, // pointer to logical color space __in LPLOGCOLORSPACEA lpColorSpace, // pointer to logical color space
LPDEVCHARACTER lpDevCharacter, // profile data __in LPDEVCHARACTER lpDevCharacter, // profile data
LPDEVCHARACTER lpTargetDevCharacter // target profile data __in LPDEVCHARACTER lpTargetDevCharacter // target profile data
); );
HCMTRANSFORM WINAPI CMCreateTransformW( HCMTRANSFORM WINAPI CMCreateTransformW(
LPLOGCOLORSPACEW lpColorSpace, // pointer to logical color space __in LPLOGCOLORSPACEW lpColorSpace, // pointer to logical color space
LPDEVCHARACTER lpDevCharacter, // profile data __in LPDEVCHARACTER lpDevCharacter, // profile data
LPDEVCHARACTER lpTargetDevCharacter // target profile data __in LPDEVCHARACTER lpTargetDevCharacter // target profile data
); );
HCMTRANSFORM WINAPI CMCreateTransformExt( HCMTRANSFORM WINAPI CMCreateTransformExt(
LPLOGCOLORSPACEA lpColorSpace, // pointer to logical color space __in LPLOGCOLORSPACEA lpColorSpace, // pointer to logical color space
LPDEVCHARACTER lpDevCharacter, // profile data __in LPDEVCHARACTER lpDevCharacter, // profile data
LPDEVCHARACTER lpTargetDevCharacter, // target profile data __in LPDEVCHARACTER lpTargetDevCharacter, // target profile data
DWORD dwFlags // creation flags DWORD dwFlags // creation flags
); );
#if NTDDI_VERSION >= NTDDI_LONGHORN
#pragma deprecated (CMCreateTransform)
#pragma deprecated (CMCreateTransformW)
#pragma deprecated (CMCreateTransformExt)
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
HCMTRANSFORM WINAPI CMCreateTransformExtW( HCMTRANSFORM WINAPI CMCreateTransformExtW(
LPLOGCOLORSPACEW lpColorSpace, // pointer to logical color space __in LPLOGCOLORSPACEW lpColorSpace, // pointer to logical color space
LPDEVCHARACTER lpDevCharacter, // profile data __in LPDEVCHARACTER lpDevCharacter, // profile data
LPDEVCHARACTER lpTargetDevCharacter, // target profile data __in LPDEVCHARACTER lpTargetDevCharacter, // target profile data
DWORD dwFlags // creation flags DWORD dwFlags // creation flags
); );
BOOL WINAPI CMDeleteTransform( BOOL WINAPI CMDeleteTransform(
HCMTRANSFORM hcmTransform // transform handle to be deleted. __inout HCMTRANSFORM hcmTransform // transform handle to be dele
); ted.
);
DWORD WINAPI CMGetInfo( DWORD WINAPI CMGetInfo(
DWORD dwInfo DWORD dwInfo
); );
BOOL WINAPI CMGetNamedProfileInfo( BOOL WINAPI CMGetNamedProfileInfo(
HPROFILE hProfile, // profile handle __in HPROFILE hProfile, // profile handle
PNAMED_PROFILE_INFO pNamedProfileInfo // pointer to named profile info __inout PNAMED_PROFILE_INFO pNamedProfileInfo // pointer to named profile in
); fo
);
BOOL WINAPI CMGetPS2ColorRenderingDictionary( BOOL WINAPI CMGetPS2ColorRenderingDictionary(
HPROFILE hProfile, __in HPROFILE hProfile,
DWORD dwIntent, DWORD dwIntent,
LPBYTE lpBuffer, __out_bcount_opt(*lpcbSize) LPBYTE lpBuffer,
LPDWORD lpcbSize, LPDWORD lpcbSize,
LPBOOL lpbBinary LPBOOL lpbBinary
); );
BOOL WINAPI CMGetPS2ColorRenderingIntent( BOOL WINAPI CMGetPS2ColorRenderingIntent(
HPROFILE hProfile, __in HPROFILE hProfile,
DWORD dwIntent, DWORD dwIntent,
LPBYTE lpBuffer, __out_bcount_opt(*lpcbSize) LPBYTE lpBuffer,
LPDWORD lpcbSize LPDWORD lpcbSize
); );
BOOL WINAPI CMGetPS2ColorSpaceArray( BOOL WINAPI CMGetPS2ColorSpaceArray(
HPROFILE hProfile, __in HPROFILE hProfile,
DWORD dwIntent, DWORD dwIntent,
DWORD dwCSAType, DWORD dwCSAType,
LPBYTE lpBuffer, __out_bcount_opt(*lpcbSize) LPBYTE lpBuffer,
LPDWORD lpcbSize, LPDWORD lpcbSize,
LPBOOL lpbBinary LPBOOL lpbBinary
); );
BOOL WINAPI CMIsProfileValid( BOOL WINAPI CMIsProfileValid(
HPROFILE hProfile, // proflle handle __in HPROFILE hProfile, // proflle handle
LPBOOL lpbValid // buffer for result. __out LPBOOL lpbValid // buffer for result.
); );
BOOL WINAPI CMTranslateColors( BOOL WINAPI CMTranslateColors(
HCMTRANSFORM hcmTransform, // transform handle __in HCMTRANSFORM hcmTransform, // transform handl
LPCOLOR lpaInputColors, // pointer to input color array e
DWORD nColors, // number of color in color array __in_ecount(nColors) LPCOLOR lpaInputColors, // pointer to inpu
COLORTYPE ctInput, // input color type t color array
LPCOLOR lpaOutputColors, // pointer to output color array DWORD nColors, // number of color
COLORTYPE ctOutput // output color type in color array
); COLORTYPE ctInput, // input color typ
e
__out_ecount(nColors) LPCOLOR lpaOutputColors, // pointer to outp
ut color array
COLORTYPE ctOutput // output color ty
pe
);
BOOL WINAPI CMTranslateRGB( BOOL WINAPI CMTranslateRGB(
HCMTRANSFORM hcmTransform, __in HCMTRANSFORM hcmTransform,
COLORREF ColorRef, COLORREF ColorRef,
LPCOLORREF lpColorRef, __out LPCOLORREF lpColorRef,
DWORD dwFlags DWORD dwFlags
); );
BOOL WINAPI CMTranslateRGBs( BOOL WINAPI CMTranslateRGBs(
HCMTRANSFORM hcmTransform, __in HCMTRANSFORM hcmTransform,
LPVOID lpSrcBits, __in LPVOID lpSrcBits,
BMFORMAT bmInput, BMFORMAT bmInput,
DWORD dwWidth, DWORD dwWidth,
DWORD dwHeight, DWORD dwHeight,
DWORD dwStride, DWORD dwStride,
LPVOID lpDestBits, __out LPVOID lpDestBits,
BMFORMAT bmOutput, BMFORMAT bmOutput,
DWORD dwTranslateDirection DWORD dwTranslateDirection
); );
BOOL WINAPI CMTranslateRGBsExt( BOOL WINAPI CMTranslateRGBsExt(
HCMTRANSFORM hcmTransform, __in HCMTRANSFORM hcmTransform,
LPVOID lpSrcBits, __in LPVOID lpSrcBits,
BMFORMAT bmInput, BMFORMAT bmInput,
DWORD dwWidth, DWORD dwWidth,
DWORD dwHeight, DWORD dwHeight,
DWORD dwInputStride, DWORD dwInputStride,
LPVOID lpDestBits, __out LPVOID lpDestBits,
BMFORMAT bmOutput, BMFORMAT bmOutput,
DWORD dwOutputStride, DWORD dwOutputStride,
LPBMCALLBACKFN lpfnCallback, __callback LPBMCALLBACKFN lpfnCallback,
LPARAM ulCallbackData LPARAM ulCallbackData
); );
#if NTDDI_VERSION >= NTDDI_LONGHORN
//
// Windows Color System APIs
//
//
// Passed in as a bit-flag for dwFlags, this instructs WcsOpenColorProfile
// to ignore any embedded Wcs information in the WcsProfiles tag if the input
// profile is an ICC one.
//
#define DONT_USE_EMBEDDED_WCS_PROFILES 0x00000001L
HPROFILE WINAPI WcsOpenColorProfileA(
__in PPROFILE pCDMPProfile,
__in_opt PPROFILE pCAMPProfile,
__in_opt PPROFILE pGMMPProfile,
__in DWORD dwDesireAccess,
__in DWORD dwShareMode,
__in DWORD dwCreationMode,
__in DWORD dwFlags
);
HPROFILE WINAPI WcsOpenColorProfileW(
__in PPROFILE pCDMPProfile,
__in_opt PPROFILE pCAMPProfile,
__in_opt PPROFILE pGMMPProfile,
__in DWORD dwDesireAccess,
__in DWORD dwShareMode,
__in DWORD dwCreationMode,
__in DWORD dwFlags
);
//
// Flags for WcsCreateIccProfile.
//
// By default, the original WCS profiles used for the conversion are embedded
// in the output ICC profile in a WcsProfilesTag, resulting in an ICC profile
// which is compatible with ICC software, yet still has the original WCS
// profile data available to code which is designed to parse it.
//
// This flag is set to produce an ICC profile without any of the original
// WCS profile data embedded. The WcsProfilesTag will not be present in the
// output profile. This will result in a smaller output profile, however the
// original WCS profile data will not be available to code that would be able
// to parse it instead of the ICC data.
//
//
// These flags should be ORed in with one of the four ICC INTENT_ flags
// Thus, they must use different bits from the INTENT_ flags. Currrently, the IN
TENT_ flags
// use the values 0-3, or the low order two bits. Hence we use the third lowest
bit.
//
#define WCS_DEFAULT 0x00000000L
#define WCS_ICCONLY 0x00010000L
HPROFILE WINAPI WcsCreateIccProfile(
__in HPROFILE hWcsProfile,
__in DWORD dwOptions
);
//
// ICC TAGTYPE for the embedded Wcs information.
//
#define WCS_EMBEDDED_TAG_SIGNATURE 'MS00'
#define WCS_EMBEDDED_TAG_TYPE_SIGNATURE 'MS10'
#endif // NTDDI_VERSION >= NTDDI_LONGHORN
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // ifndef _ICM_H_ #endif // ifndef _ICM_H_
 End of changes. 53 change blocks. 
230 lines changed or deleted 623 lines changed or added

This html diff was produced by rfcdiff 1.41.