|  icm.h (5.2.3790.1830-Windows 5.0)  |   |  icm.h (6.0.6000.16386-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 | 
      |