Mercurial > games > semicongine
diff fuhtark_test/include/winapi/icm.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/icm.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,492 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef _ICM_H_ +#define _ICM_H_ + +#ifdef __cplusplus +extern "C" { +#endif + + typedef char COLOR_NAME[32]; + typedef COLOR_NAME *PCOLOR_NAME,*LPCOLOR_NAME; + + typedef struct tagNAMED_PROFILE_INFO { + DWORD dwFlags; + DWORD dwCount; + DWORD dwCountDevCoordinates; + COLOR_NAME szPrefix; + COLOR_NAME szSuffix; + } NAMED_PROFILE_INFO; + typedef NAMED_PROFILE_INFO *PNAMED_PROFILE_INFO,*LPNAMED_PROFILE_INFO; + +#define MAX_COLOR_CHANNELS 8 + + struct GRAYCOLOR { + WORD gray; + }; + + struct RGBCOLOR { + WORD red; + WORD green; + WORD blue; + }; + + struct CMYKCOLOR { + WORD cyan; + WORD magenta; + WORD yellow; + WORD black; + }; + + struct XYZCOLOR { + WORD X; + WORD Y; + WORD Z; + }; + + struct YxyCOLOR { + WORD Y; + WORD x; + WORD y; + }; + + struct LabCOLOR { + WORD L; + WORD a; + WORD b; + }; + + struct GENERIC3CHANNEL { + WORD ch1; + WORD ch2; + WORD ch3; + }; + + struct NAMEDCOLOR { + DWORD dwIndex; + }; + + struct HiFiCOLOR { + BYTE channel[MAX_COLOR_CHANNELS]; + }; + + typedef union tagCOLOR { + struct GRAYCOLOR gray; + struct RGBCOLOR rgb; + struct CMYKCOLOR cmyk; + struct XYZCOLOR XYZ; + struct YxyCOLOR Yxy; + struct LabCOLOR Lab; + struct GENERIC3CHANNEL gen3ch; + struct NAMEDCOLOR named; + struct HiFiCOLOR hifi; + struct { + DWORD reserved1; + VOID *reserved2; + }; + } COLOR; + typedef COLOR *PCOLOR,*LPCOLOR; + + typedef enum { + COLOR_GRAY = 1,COLOR_RGB,COLOR_XYZ,COLOR_Yxy,COLOR_Lab,COLOR_3_CHANNEL,COLOR_CMYK,COLOR_5_CHANNEL,COLOR_6_CHANNEL,COLOR_7_CHANNEL, + COLOR_8_CHANNEL,COLOR_NAMED + } COLORTYPE; + typedef COLORTYPE *PCOLORTYPE,*LPCOLORTYPE; + + typedef enum { + BM_x555RGB = 0x0000,BM_x555XYZ = 0x0101,BM_x555Yxy,BM_x555Lab,BM_x555G3CH,BM_RGBTRIPLETS = 0x0002,BM_BGRTRIPLETS = 0x0004,BM_XYZTRIPLETS = 0x0201, + BM_YxyTRIPLETS,BM_LabTRIPLETS,BM_G3CHTRIPLETS,BM_5CHANNEL,BM_6CHANNEL,BM_7CHANNEL,BM_8CHANNEL,BM_GRAY,BM_xRGBQUADS = 0x0008,BM_xBGRQUADS = 0x0010, + BM_xG3CHQUADS = 0x0304,BM_KYMCQUADS,BM_CMYKQUADS = 0x0020,BM_10b_RGB = 0x0009,BM_10b_XYZ = 0x0401,BM_10b_Yxy,BM_10b_Lab,BM_10b_G3CH,BM_NAMED_INDEX, + BM_16b_RGB = 0x000A,BM_16b_XYZ = 0x0501,BM_16b_Yxy,BM_16b_Lab,BM_16b_G3CH,BM_16b_GRAY,BM_565RGB = 0x0001 + } BMFORMAT; + typedef BMFORMAT *PBMFORMAT,*LPBMFORMAT; + + typedef WINBOOL (WINAPI *PBMCALLBACKFN)(ULONG,ULONG,LPARAM); + typedef PBMCALLBACKFN LPBMCALLBACKFN; + + typedef struct tagPROFILEHEADER { + DWORD phSize; + DWORD phCMMType; + DWORD phVersion; + DWORD phClass; + DWORD phDataColorSpace; + DWORD phConnectionSpace; + DWORD phDateTime[3]; + DWORD phSignature; + DWORD phPlatform; + DWORD phProfileFlags; + DWORD phManufacturer; + DWORD phModel; + DWORD phAttributes[2]; + DWORD phRenderingIntent; + CIEXYZ phIlluminant; + DWORD phCreator; + BYTE phReserved[44]; + } PROFILEHEADER; + typedef PROFILEHEADER *PPROFILEHEADER,*LPPROFILEHEADER; + +#define CLASS_MONITOR 'mntr' +#define CLASS_PRINTER 'prtr' +#define CLASS_SCANNER 'scnr' +#define CLASS_LINK 'link' +#define CLASS_ABSTRACT 'abst' +#define CLASS_COLORSPACE 'spac' +#define CLASS_NAMED 'nmcl' + +#define SPACE_XYZ 'XYZ ' +#define SPACE_Lab 'Lab ' +#define SPACE_Luv 'Luv ' +#define SPACE_YCbCr 'YCbr' +#define SPACE_Yxy 'Yxy ' +#define SPACE_RGB 'RGB ' +#define SPACE_GRAY 'GRAY' +#define SPACE_HSV 'HSV ' +#define SPACE_HLS 'HLS ' +#define SPACE_CMYK 'CMYK' +#define SPACE_CMY 'CMY ' +#define SPACE_2_CHANNEL '2CLR' +#define SPACE_3_CHANNEL '3CLR' +#define SPACE_4_CHANNEL '4CLR' +#define SPACE_5_CHANNEL '5CLR' +#define SPACE_6_CHANNEL '6CLR' +#define SPACE_7_CHANNEL '7CLR' +#define SPACE_8_CHANNEL '8CLR' + +#define FLAG_EMBEDDEDPROFILE 0x00000001 +#define FLAG_DEPENDENTONDATA 0x00000002 + +#define ATTRIB_TRANSPARENCY 0x00000001 +#define ATTRIB_MATTE 0x00000002 + +#define INTENT_PERCEPTUAL 0 +#define INTENT_RELATIVE_COLORIMETRIC 1 +#define INTENT_SATURATION 2 +#define INTENT_ABSOLUTE_COLORIMETRIC 3 + + typedef struct tagPROFILE { + DWORD dwType; + PVOID pProfileData; + DWORD cbDataSize; + } PROFILE; + typedef PROFILE *PPROFILE,*LPPROFILE; + +#define PROFILE_FILENAME 1 +#define PROFILE_MEMBUFFER 2 + +#define PROFILE_READ 1 +#define PROFILE_READWRITE 2 + + typedef HANDLE HPROFILE; + typedef HPROFILE *PHPROFILE; + typedef HANDLE HTRANSFORM; + +#define INDEX_DONT_CARE 0 + +#define CMM_FROM_PROFILE INDEX_DONT_CARE +#define CMM_WINDOWS_DEFAULT 'Win ' + + typedef DWORD TAGTYPE; + typedef TAGTYPE *PTAGTYPE,*LPTAGTYPE; + +#define ENUM_TYPE_VERSION 0x0300 + + typedef struct tagENUMTYPEA { + DWORD dwSize; + DWORD dwVersion; + DWORD dwFields; + PCSTR pDeviceName; + DWORD dwMediaType; + DWORD dwDitheringMode; + DWORD dwResolution[2]; + DWORD dwCMMType; + DWORD dwClass; + DWORD dwDataColorSpace; + DWORD dwConnectionSpace; + DWORD dwSignature; + DWORD dwPlatform; + DWORD dwProfileFlags; + DWORD dwManufacturer; + DWORD dwModel; + DWORD dwAttributes[2]; + DWORD dwRenderingIntent; + DWORD dwCreator; + DWORD dwDeviceClass; + } ENUMTYPEA,*PENUMTYPEA,*LPENUMTYPEA; + + typedef struct tagENUMTYPEW { + DWORD dwSize; + DWORD dwVersion; + DWORD dwFields; + PCWSTR pDeviceName; + DWORD dwMediaType; + DWORD dwDitheringMode; + DWORD dwResolution[2]; + DWORD dwCMMType; + DWORD dwClass; + DWORD dwDataColorSpace; + DWORD dwConnectionSpace; + DWORD dwSignature; + DWORD dwPlatform; + DWORD dwProfileFlags; + DWORD dwManufacturer; + DWORD dwModel; + DWORD dwAttributes[2]; + DWORD dwRenderingIntent; + DWORD dwCreator; + DWORD dwDeviceClass; + } ENUMTYPEW,*PENUMTYPEW,*LPENUMTYPEW; + +#define ET_DEVICENAME 0x00000001 +#define ET_MEDIATYPE 0x00000002 +#define ET_DITHERMODE 0x00000004 +#define ET_RESOLUTION 0x00000008 +#define ET_CMMTYPE 0x00000010 +#define ET_CLASS 0x00000020 +#define ET_DATACOLORSPACE 0x00000040 +#define ET_CONNECTIONSPACE 0x00000080 +#define ET_SIGNATURE 0x00000100 +#define ET_PLATFORM 0x00000200 +#define ET_PROFILEFLAGS 0x00000400 +#define ET_MANUFACTURER 0x00000800 +#define ET_MODEL 0x00001000 +#define ET_ATTRIBUTES 0x00002000 +#define ET_RENDERINGINTENT 0x00004000 +#define ET_CREATOR 0x00008000 +#define ET_DEVICECLASS 0x00010000 + +#define PROOF_MODE 0x00000001 +#define NORMAL_MODE 0x00000002 +#define BEST_MODE 0x00000003 +#define ENABLE_GAMUT_CHECKING 0x00010000 +#define USE_RELATIVE_COLORIMETRIC 0x00020000 +#define FAST_TRANSLATE 0x00040000 +#define RESERVED 0x80000000 + +#define CSA_A 1 +#define CSA_ABC 2 +#define CSA_DEF 3 +#define CSA_DEFG 4 +#define CSA_GRAY 5 +#define CSA_RGB 6 +#define CSA_CMYK 7 +#define CSA_Lab 8 + +#define CMM_WIN_VERSION 0 +#define CMM_IDENT 1 +#define CMM_DRIVER_VERSION 2 +#define CMM_DLL_VERSION 3 +#define CMM_VERSION 4 +#define CMM_DESCRIPTION 5 +#define CMM_LOGOICON 6 + +#define CMS_FORWARD 0 +#define CMS_BACKWARD 1 + +#define COLOR_MATCH_VERSION 0x0200 + +#define CMS_DISABLEICM 1 +#define CMS_ENABLEPROOFING 2 + +#define CMS_SETRENDERINTENT 4 +#define CMS_SETPROOFINTENT 8 +#define CMS_SETMONITORPROFILE 0x10 +#define CMS_SETPRINTERPROFILE 0x20 +#define CMS_SETTARGETPROFILE 0x40 + +#define CMS_USEHOOK 0x80 +#define CMS_USEAPPLYCALLBACK 0x100 +#define CMS_USEDESCRIPTION 0x200 + +#define CMS_DISABLEINTENT 0x400 +#define CMS_DISABLERENDERINTENT 0x800 + +#define CMS_MONITOROVERFLOW 0x80000000L +#define CMS_PRINTEROVERFLOW 0x40000000L +#define CMS_TARGETOVERFLOW 0x20000000L + + struct _tagCOLORMATCHSETUPW; + struct _tagCOLORMATCHSETUPA; + + typedef WINBOOL (WINAPI *PCMSCALLBACKW)(struct _tagCOLORMATCHSETUPW *,LPARAM); + typedef WINBOOL (WINAPI *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA *,LPARAM); + + typedef struct _tagCOLORMATCHSETUPW { + DWORD dwSize; + DWORD dwVersion; + DWORD dwFlags; + HWND hwndOwner; + PCWSTR pSourceName; + PCWSTR pDisplayName; + PCWSTR pPrinterName; + DWORD dwRenderIntent; + DWORD dwProofingIntent; + PWSTR pMonitorProfile; + DWORD ccMonitorProfile; + PWSTR pPrinterProfile; + DWORD ccPrinterProfile; + PWSTR pTargetProfile; + DWORD ccTargetProfile; + DLGPROC lpfnHook; + LPARAM lParam; + PCMSCALLBACKW lpfnApplyCallback; + LPARAM lParamApplyCallback; + } COLORMATCHSETUPW,*PCOLORMATCHSETUPW,*LPCOLORMATCHSETUPW; + + typedef struct _tagCOLORMATCHSETUPA { + DWORD dwSize; + DWORD dwVersion; + DWORD dwFlags; + HWND hwndOwner; + PCSTR pSourceName; + PCSTR pDisplayName; + PCSTR pPrinterName; + DWORD dwRenderIntent; + DWORD dwProofingIntent; + PSTR pMonitorProfile; + DWORD ccMonitorProfile; + PSTR pPrinterProfile; + DWORD ccPrinterProfile; + PSTR pTargetProfile; + DWORD ccTargetProfile; + DLGPROC lpfnHook; + LPARAM lParam; + PCMSCALLBACKA lpfnApplyCallback; + LPARAM lParamApplyCallback; + } COLORMATCHSETUPA,*PCOLORMATCHSETUPA,*LPCOLORMATCHSETUPA; + + HPROFILE WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD); + HPROFILE WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD); + WINBOOL WINAPI CloseColorProfile(HPROFILE); + WINBOOL WINAPI GetColorProfileFromHandle(HPROFILE,PBYTE,PDWORD); + WINBOOL WINAPI IsColorProfileValid(HPROFILE,PBOOL); + WINBOOL WINAPI CreateProfileFromLogColorSpaceA(LPLOGCOLORSPACEA,PBYTE*); + WINBOOL WINAPI CreateProfileFromLogColorSpaceW(LPLOGCOLORSPACEW,PBYTE*); + WINBOOL WINAPI GetCountColorProfileElements(HPROFILE,PDWORD); + WINBOOL WINAPI GetColorProfileHeader(HPROFILE,PPROFILEHEADER); + WINBOOL WINAPI GetColorProfileElementTag(HPROFILE,DWORD,PTAGTYPE); + WINBOOL WINAPI IsColorProfileTagPresent(HPROFILE,TAGTYPE,PBOOL); + WINBOOL WINAPI GetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID,PBOOL); + WINBOOL WINAPI SetColorProfileHeader(HPROFILE,PPROFILEHEADER); + WINBOOL WINAPI SetColorProfileElementSize(HPROFILE,TAGTYPE,DWORD); + WINBOOL WINAPI SetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID); + WINBOOL WINAPI SetColorProfileElementReference(HPROFILE,TAGTYPE,TAGTYPE); + WINBOOL WINAPI GetPS2ColorSpaceArray (HPROFILE,DWORD,DWORD,PBYTE,PDWORD,PBOOL); + WINBOOL WINAPI GetPS2ColorRenderingIntent(HPROFILE,DWORD,PBYTE,PDWORD); + WINBOOL WINAPI GetPS2ColorRenderingDictionary(HPROFILE,DWORD,PBYTE,PDWORD,PBOOL); + WINBOOL WINAPI GetNamedProfileInfo(HPROFILE,PNAMED_PROFILE_INFO); + WINBOOL WINAPI ConvertColorNameToIndex(HPROFILE,PCOLOR_NAME,PDWORD,DWORD); + WINBOOL WINAPI ConvertIndexToColorName(HPROFILE,PDWORD,PCOLOR_NAME,DWORD); + WINBOOL WINAPI CreateDeviceLinkProfile(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD); + HTRANSFORM WINAPI CreateColorTransformA(LPLOGCOLORSPACEA,HPROFILE,HPROFILE,DWORD); + HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW,HPROFILE,HPROFILE,DWORD); + HTRANSFORM WINAPI CreateMultiProfileTransform(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,DWORD); + WINBOOL WINAPI DeleteColorTransform(HTRANSFORM); + WINBOOL WINAPI TranslateBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PVOID,BMFORMAT,DWORD,PBMCALLBACKFN,LPARAM); + WINBOOL WINAPI CheckBitmapBits(HTRANSFORM ,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PBYTE,PBMCALLBACKFN,LPARAM); + WINBOOL WINAPI TranslateColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PCOLOR,COLORTYPE); + WINBOOL WINAPI CheckColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PBYTE); + DWORD WINAPI GetCMMInfo(HTRANSFORM,DWORD); + WINBOOL WINAPI RegisterCMMA(PCSTR,DWORD,PCSTR); + WINBOOL WINAPI RegisterCMMW(PCWSTR,DWORD,PCWSTR); + WINBOOL WINAPI UnregisterCMMA(PCSTR,DWORD); + WINBOOL WINAPI UnregisterCMMW(PCWSTR,DWORD); + WINBOOL WINAPI SelectCMM(DWORD); + WINBOOL WINAPI GetColorDirectoryA(PCSTR pMachineName,PSTR pBuffer,PDWORD pdwSize); + WINBOOL WINAPI GetColorDirectoryW(PCWSTR pMachineName,PWSTR pBuffer,PDWORD pdwSize); + WINBOOL WINAPI InstallColorProfileA(PCSTR,PCSTR); + WINBOOL WINAPI InstallColorProfileW(PCWSTR,PCWSTR); + WINBOOL WINAPI UninstallColorProfileA(PCSTR,PCSTR,WINBOOL); + WINBOOL WINAPI UninstallColorProfileW(PCWSTR,PCWSTR,WINBOOL); + WINBOOL WINAPI EnumColorProfilesA(PCSTR,PENUMTYPEA,PBYTE,PDWORD,PDWORD); + WINBOOL WINAPI EnumColorProfilesW(PCWSTR,PENUMTYPEW,PBYTE,PDWORD,PDWORD); + WINBOOL WINAPI SetStandardColorSpaceProfileA(PCSTR,DWORD,PCSTR); + WINBOOL WINAPI SetStandardColorSpaceProfileW(PCWSTR,DWORD,PCWSTR); + WINBOOL WINAPI GetStandardColorSpaceProfileA(PCSTR pMachineName,DWORD dwSCS,PSTR pBuffer,PDWORD pcbSize); + WINBOOL WINAPI GetStandardColorSpaceProfileW(PCWSTR pMachineName,DWORD dwSCS,PWSTR pBuffer,PDWORD pcbSize); + WINBOOL WINAPI AssociateColorProfileWithDeviceA(PCSTR,PCSTR,PCSTR); + WINBOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR,PCWSTR,PCWSTR); + WINBOOL WINAPI DisassociateColorProfileFromDeviceA(PCSTR,PCSTR,PCSTR); + WINBOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR,PCWSTR,PCWSTR); + WINBOOL WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW pcms); + WINBOOL WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA pcms); + +#ifdef UNICODE +#define ENUMTYPE ENUMTYPEW +#define PENUMTYPE PENUMTYPEW +#define COLORMATCHSETUP COLORMATCHSETUPW +#define PCOLORMATCHSETUP PCOLORMATCHSETUPW +#define LPCOLORMATCHSETUP LPCOLORMATCHSETUPW +#define PCMSCALLBACK PCMSCALLBACKW +#define CreateColorTransform CreateColorTransformW +#define OpenColorProfile OpenColorProfileW +#define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceW +#define RegisterCMM RegisterCMMW +#define UnregisterCMM UnregisterCMMW +#define GetColorDirectory GetColorDirectoryW +#define InstallColorProfile InstallColorProfileW +#define UninstallColorProfile UninstallColorProfileW +#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceW +#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceW +#define EnumColorProfiles EnumColorProfilesW +#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileW +#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileW +#define SetupColorMatching SetupColorMatchingW + +#else +#define ENUMTYPE ENUMTYPEA +#define PENUMTYPE PENUMTYPEA +#define COLORMATCHSETUP COLORMATCHSETUPA +#define PCOLORMATCHSETUP PCOLORMATCHSETUPA +#define LPCOLORMATCHSETUP LPCOLORMATCHSETUPA +#define PCMSCALLBACK PCMSCALLBACKA +#define CreateColorTransform CreateColorTransformA +#define OpenColorProfile OpenColorProfileA +#define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceA +#define RegisterCMM RegisterCMMA +#define UnregisterCMM UnregisterCMMA +#define GetColorDirectory GetColorDirectoryA +#define InstallColorProfile InstallColorProfileA +#define UninstallColorProfile UninstallColorProfileA +#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceA +#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceA +#define EnumColorProfiles EnumColorProfilesA +#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileA +#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileA +#define SetupColorMatching SetupColorMatchingA +#endif + + typedef HANDLE HCMTRANSFORM; + typedef PVOID LPDEVCHARACTER; + + WINBOOL WINAPI CMCheckColors(HCMTRANSFORM hcmTransform,LPCOLOR lpaInputColors,DWORD nColors,COLORTYPE ctInput,LPBYTE lpaResult); + WINBOOL WINAPI CMCheckColorsInGamut(HCMTRANSFORM hcmTransform,RGBTRIPLE *lpaRGBTriple,LPBYTE lpaResult,UINT nCount); + WINBOOL WINAPI CMCheckRGBs(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwStride,LPBYTE lpaResult,PBMCALLBACKFN pfnCallback,LPARAM ulCallbackData); + WINBOOL WINAPI CMConvertColorNameToIndex(HPROFILE hProfile,PCOLOR_NAME paColorName,PDWORD paIndex,DWORD dwCount); + WINBOOL WINAPI CMConvertIndexToColorName(HPROFILE hProfile,PDWORD paIndex,PCOLOR_NAME paColorName,DWORD dwCount); + WINBOOL WINAPI CMCreateDeviceLinkProfile(PHPROFILE pahProfiles,DWORD nProfiles,PDWORD padwIntents,DWORD nIntents,DWORD dwFlags,LPBYTE *lpProfileData); + HCMTRANSFORM WINAPI CMCreateMultiProfileTransform(PHPROFILE pahProfiles,DWORD nProfiles,PDWORD padwIntents,DWORD nIntents,DWORD dwFlags); + WINBOOL WINAPI CMCreateProfile(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER *lpProfileData); + WINBOOL WINAPI CMCreateProfileW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER *lpProfileData); + HCMTRANSFORM WINAPI CMCreateTransform(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter); + HCMTRANSFORM WINAPI CMCreateTransformW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter); + HCMTRANSFORM WINAPI CMCreateTransformExt(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter,DWORD dwFlags); + HCMTRANSFORM WINAPI CMCreateTransformExtW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter,DWORD dwFlags); + WINBOOL WINAPI CMDeleteTransform(HCMTRANSFORM hcmTransform); + DWORD WINAPI CMGetInfo(DWORD dwInfo); + WINBOOL WINAPI CMGetNamedProfileInfo(HPROFILE hProfile,PNAMED_PROFILE_INFO pNamedProfileInfo); + WINBOOL WINAPI CMGetPS2ColorRenderingDictionary(HPROFILE hProfile,DWORD dwIntent,LPBYTE lpBuffer,LPDWORD lpcbSize,LPBOOL lpbBinary); + WINBOOL WINAPI CMGetPS2ColorRenderingIntent(HPROFILE hProfile,DWORD dwIntent,LPBYTE lpBuffer,LPDWORD lpcbSize); + WINBOOL WINAPI CMGetPS2ColorSpaceArray(HPROFILE hProfile,DWORD dwIntent,DWORD dwCSAType,LPBYTE lpBuffer,LPDWORD lpcbSize,LPBOOL lpbBinary); + WINBOOL WINAPI CMIsProfileValid(HPROFILE hProfile,LPBOOL lpbValid); + WINBOOL WINAPI CMTranslateColors(HCMTRANSFORM hcmTransform,LPCOLOR lpaInputColors,DWORD nColors,COLORTYPE ctInput,LPCOLOR lpaOutputColors,COLORTYPE ctOutput); + WINBOOL WINAPI CMTranslateRGB(HCMTRANSFORM hcmTransform,COLORREF ColorRef,LPCOLORREF lpColorRef,DWORD dwFlags); + WINBOOL WINAPI CMTranslateRGBs(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwStride,LPVOID lpDestBits,BMFORMAT bmOutput,DWORD dwTranslateDirection); + WINBOOL WINAPI CMTranslateRGBsExt(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwInputStride,LPVOID lpDestBits,BMFORMAT bmOutput,DWORD dwOutputStride,LPBMCALLBACKFN lpfnCallback,LPARAM ulCallbackData); + +#ifdef __cplusplus +} +#endif +#endif
