ReactOS  0.4.14-dev-337-gf981a68
icm.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tagNAMED_PROFILE_INFO
 
struct  GRAYCOLOR
 
struct  RGBCOLOR
 
struct  CMYKCOLOR
 
struct  XYZCOLOR
 
struct  YxyCOLOR
 
struct  LabCOLOR
 
struct  GENERIC3CHANNEL
 
struct  NAMEDCOLOR
 
struct  HiFiCOLOR
 
union  tagCOLOR
 
struct  tagPROFILEHEADER
 
struct  tagPROFILE
 
struct  tagENUMTYPEA
 
struct  tagENUMTYPEW
 
struct  _tagCOLORMATCHSETUPA
 
struct  _tagCOLORMATCHSETUPW
 

Macros

#define MAX_COLOR_CHANNELS   8
 
#define INTENT_PERCEPTUAL   0
 
#define INTENT_RELATIVE_COLORIMETRIC   1
 
#define INTENT_SATURATION   2
 
#define INTENT_ABSOLUTE_COLORIMETRIC   3
 
#define ENUM_TYPE_VERSION   0x0300
 
#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 AssociateColorProfileWithDevice   WINELIB_NAME_AW(AssociateColorProfileWithDevice)
 
#define CreateColorTransform   WINELIB_NAME_AW(CreateColorTransform)
 
#define CreateProfileFromLogColorSpace   WINELIB_NAME_AW(CreateProfileFromLogColorSpace)
 
#define DisassociateColorProfileFromDevice   WINELIB_NAME_AW(DisassociateColorProfileFromDevice)
 
#define EnumColorProfiles   WINELIB_NAME_AW(EnumColorProfiles)
 
#define GetColorDirectory   WINELIB_NAME_AW(GetColorDirectory)
 
#define GetStandardColorSpaceProfile   WINELIB_NAME_AW(GetStandardColorSpaceProfile)
 
#define InstallColorProfile   WINELIB_NAME_AW(InstallColorProfile)
 
#define OpenColorProfile   WINELIB_NAME_AW(OpenColorProfile)
 
#define RegisterCMM   WINELIB_NAME_AW(RegisterCMM)
 
#define SetStandardColorSpaceProfile   WINELIB_NAME_AW(SetStandardColorSpaceProfile)
 
#define SetupColorMatching   WINELIB_NAME_AW(SetupColorMatching)
 
#define UninstallColorProfile   WINELIB_NAME_AW(UninstallColorProfile)
 
#define UnregisterCMM   WINELIB_NAME_AW(UnregisterCMM)
 
#define PROFILE_FILENAME   1
 
#define PROFILE_MEMBUFFER   2
 
#define PROFILE_READ   1
 
#define PROFILE_READWRITE   2
 
#define SPACE_XYZ   0x58595A20 /* 'XYZ ' */
 
#define SPACE_Lab   0x4C616220 /* 'Lab ' */
 
#define SPACE_Luv   0x4C757620 /* 'Luv ' */
 
#define SPACE_YCbCr   0x59436272 /* 'YCbr' */
 
#define SPACE_Yxy   0x59787920 /* 'Yxy ' */
 
#define SPACE_RGB   0x52474220 /* 'RGB ' */
 
#define SPACE_GRAY   0x47524159 /* 'GRAY' */
 
#define SPACE_HSV   0x48535620 /* 'HSV ' */
 
#define SPACE_HLS   0x484C5320 /* 'HLS ' */
 
#define SPACE_CMYK   0x434D594B /* 'CMYK' */
 
#define SPACE_CMY   0x434D5920 /* 'CMY ' */
 
#define SPACE_2_CHANNEL   0x32434c52 /* '2CLR' */
 
#define SPACE_3_CHANNEL   0x33434c52 /* '3CLR' */
 
#define SPACE_4_CHANNEL   0x34434c52 /* '4CLR' */
 
#define SPACE_5_CHANNEL   0x35434c52 /* '5CLR' */
 
#define SPACE_6_CHANNEL   0x36434c52 /* '6CLR' */
 
#define SPACE_7_CHANNEL   0x37434c52 /* '7CLR' */
 
#define SPACE_8_CHANNEL   0x38434c52 /* '8CLR' */
 

Typedefs

typedef HANDLE HPROFILE
 
typedef HPROFILEPHPROFILE
 
typedef HANDLE HTRANSFORM
 
typedef DWORD TAGTYPE
 
typedef DWORDPTAGTYPE
 
typedef DWORDLPTAGTYPE
 
typedef char COLOR_NAME[32]
 
typedef COLOR_NAMEPCOLOR_NAME
 
typedef COLOR_NAMELPCOLOR_NAME
 
typedef struct tagNAMED_PROFILE_INFO NAMED_PROFILE_INFO
 
typedef struct tagNAMED_PROFILE_INFOPNAMED_PROFILE_INFO
 
typedef struct tagNAMED_PROFILE_INFOLPNAMED_PROFILE_INFO
 
typedef union tagCOLOR COLOR
 
typedef union tagCOLORPCOLOR
 
typedef union tagCOLORLPCOLOR
 
typedef enum COLORTYPEPCOLORTYPE
 
typedef enum COLORTYPELPCOLORTYPE
 
typedef enum BMFORMATPBMFORMAT
 
typedef enum BMFORMATLPBMFORMAT
 
typedef BOOL(CALLBACKPBMCALLBACKFN) (ULONG, ULONG, LPARAM)
 
typedef PBMCALLBACKFN LPPBMCALLBACKFN
 
typedef struct tagPROFILEHEADER PROFILEHEADER
 
typedef struct tagPROFILEHEADERPPROFILEHEADER
 
typedef struct tagPROFILEHEADERLPPROFILEHEADER
 
typedef struct tagPROFILE PROFILE
 
typedef struct tagPROFILEPPROFILE
 
typedef struct tagPROFILELPPROFILE
 
typedef struct tagENUMTYPEA ENUMTYPEA
 
typedef struct tagENUMTYPEAPENUMTYPEA
 
typedef struct tagENUMTYPEALPENUMTYPEA
 
typedef struct tagENUMTYPEW ENUMTYPEW
 
typedef struct tagENUMTYPEWPENUMTYPEW
 
typedef struct tagENUMTYPEWLPENUMTYPEW
 
typedef BOOL(WINAPIPCMSCALLBACKW) (struct _tagCOLORMATCHSETUPW *, LPARAM)
 
typedef struct _tagCOLORMATCHSETUPA COLORMATCHSETUPA
 
typedef struct _tagCOLORMATCHSETUPAPCOLORMATCHSETUPA
 
typedef struct _tagCOLORMATCHSETUPALPCOLORMATCHSETUPA
 
typedef struct _tagCOLORMATCHSETUPW COLORMATCHSETUPW
 
typedef struct _tagCOLORMATCHSETUPWPCOLORMATCHSETUPW
 
typedef struct _tagCOLORMATCHSETUPWLPCOLORMATCHSETUPW
 

Enumerations

enum  COLORTYPE {
  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
}
 
enum  BMFORMAT {
  BM_x555RGB = 0x00, BM_565RGB = 0x01, BM_RGBTRIPLETS = 0x02, BM_BGRTRIPLETS = 0x04,
  BM_xRGBQUADS = 0x08, BM_10b_RGB = 0x09, BM_16b_RGB = 0x0a, BM_xBGRQUADS = 0x10,
  BM_CMYKQUADS = 0x20, BM_x555XYZ = 0x101, BM_x555Yxz, BM_x555Lab,
  BM_x555G3CH, BM_XYZTRIPLETS = 0x201, BM_YxyTRIPLETS, BM_LabTRIPLETS,
  BM_G3CHTRIPLETS, BM_5CHANNEL, BM_6CHANNEL, BM_7CHANNEL,
  BM_8CHANNEL, BM_GRAY, BM_xXYZQUADS = 0x301, BM_xYxyQUADS,
  BM_xLabQUADS, BM_xG3CHQUADS, BM_KYMCQUADS, BM_10b_XYZ = 0x401,
  BM_10b_Yxy, BM_10b_Lab, BM_10b_G3CH, BM_NAMED_INDEX,
  BM_16b_XYZ = 0x501, BM_16b_Yxy, BM_16b_Lab, BM_16b_G3CH,
  BM_16b_GRAY
}
 
enum  WCS_PROFILE_MANAGEMENT_SCOPE { WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE, WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER }
 

Functions

typedef BOOL (WINAPI *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA *
 
BOOL WINAPI AssociateColorProfileWithDeviceA (PCSTR, PCSTR, PCSTR)
 
BOOL WINAPI AssociateColorProfileWithDeviceW (PCWSTR, PCWSTR, PCWSTR)
 
BOOL WINAPI CheckBitmapBits (HTRANSFORM, PVOID, BMFORMAT, DWORD, DWORD, DWORD, PBYTE, PBMCALLBACKFN, LPARAM)
 
BOOL WINAPI CheckColors (HTRANSFORM, PCOLOR, DWORD, COLORTYPE, PBYTE)
 
BOOL WINAPI ConvertColorNameToIndex (HPROFILE, PCOLOR_NAME, PDWORD, DWORD)
 
BOOL WINAPI ConvertIndexToColorName (HPROFILE, PDWORD, PCOLOR_NAME, DWORD)
 
BOOL WINAPI CloseColorProfile (HPROFILE)
 
HTRANSFORM WINAPI CreateColorTransformA (LPLOGCOLORSPACEA, HPROFILE, HPROFILE, DWORD)
 
HTRANSFORM WINAPI CreateColorTransformW (LPLOGCOLORSPACEW, HPROFILE, HPROFILE, DWORD)
 
BOOL WINAPI CreateDeviceLinkProfile (PHPROFILE, DWORD, PDWORD, DWORD, DWORD, PBYTE *, DWORD)
 
HTRANSFORM WINAPI CreateMultiProfileTransform (PHPROFILE, DWORD, PDWORD, DWORD, DWORD, DWORD)
 
BOOL WINAPI CreateProfileFromLogColorSpaceA (LPLOGCOLORSPACEA, PBYTE *)
 
BOOL WINAPI CreateProfileFromLogColorSpaceW (LPLOGCOLORSPACEW, PBYTE *)
 
BOOL WINAPI DeleteColorTransform (HTRANSFORM)
 
BOOL WINAPI DisassociateColorProfileFromDeviceA (PCSTR, PCSTR, PCSTR)
 
BOOL WINAPI DisassociateColorProfileFromDeviceW (PCWSTR, PCWSTR, PCWSTR)
 
BOOL WINAPI EnumColorProfilesA (PCSTR, PENUMTYPEA, PBYTE, PDWORD, PDWORD)
 
BOOL WINAPI EnumColorProfilesW (PCWSTR, PENUMTYPEW, PBYTE, PDWORD, PDWORD)
 
DWORD WINAPI GenerateCopyFilePaths (LPCWSTR, LPCWSTR, LPBYTE, DWORD, LPWSTR, LPDWORD, LPWSTR, LPDWORD, DWORD)
 
DWORD WINAPI GetCMMInfo (HTRANSFORM, DWORD)
 
BOOL WINAPI GetColorDirectoryA (PCSTR, PSTR, PDWORD)
 
BOOL WINAPI GetColorDirectoryW (PCWSTR, PWSTR, PDWORD)
 
BOOL WINAPI GetColorProfileElement (HPROFILE, TAGTYPE, DWORD, PDWORD, PVOID, PBOOL)
 
BOOL WINAPI GetColorProfileElementTag (HPROFILE, DWORD, PTAGTYPE)
 
BOOL WINAPI GetColorProfileFromHandle (HPROFILE, PBYTE, PDWORD)
 
BOOL WINAPI GetColorProfileHeader (HPROFILE, PPROFILEHEADER)
 
BOOL WINAPI GetCountColorProfileElements (HPROFILE, PDWORD)
 
BOOL WINAPI GetNamedProfileInfo (HPROFILE, PNAMED_PROFILE_INFO)
 
BOOL WINAPI GetPS2ColorRenderingDictionary (HPROFILE, DWORD, PBYTE, PDWORD, PBOOL)
 
BOOL WINAPI GetPS2ColorRenderingIntent (HPROFILE, DWORD, PBYTE, PDWORD)
 
BOOL WINAPI GetPS2ColorSpaceArray (HPROFILE, DWORD, DWORD, PBYTE, PDWORD, PBOOL)
 
BOOL WINAPI GetStandardColorSpaceProfileA (PCSTR, DWORD, PSTR, PDWORD)
 
BOOL WINAPI GetStandardColorSpaceProfileW (PCWSTR, DWORD, PWSTR, PDWORD)
 
BOOL WINAPI InstallColorProfileA (PCSTR, PCSTR)
 
BOOL WINAPI InstallColorProfileW (PCWSTR, PCWSTR)
 
BOOL WINAPI IsColorProfileTagPresent (HPROFILE, TAGTYPE, PBOOL)
 
BOOL WINAPI IsColorProfileValid (HPROFILE, PBOOL)
 
HPROFILE WINAPI OpenColorProfileA (PPROFILE, DWORD, DWORD, DWORD)
 
HPROFILE WINAPI OpenColorProfileW (PPROFILE, DWORD, DWORD, DWORD)
 
BOOL WINAPI RegisterCMMA (PCSTR, DWORD, PCSTR)
 
BOOL WINAPI RegisterCMMW (PCWSTR, DWORD, PCWSTR)
 
BOOL WINAPI SelectCMM (DWORD id)
 
BOOL WINAPI SetColorProfileElement (HPROFILE, TAGTYPE, DWORD, PDWORD, PVOID)
 
BOOL WINAPI SetColorProfileElementReference (HPROFILE, TAGTYPE, TAGTYPE)
 
BOOL WINAPI SetColorProfileElementSize (HPROFILE, TAGTYPE, DWORD)
 
BOOL WINAPI SetColorProfileHeader (HPROFILE, PPROFILEHEADER)
 
BOOL WINAPI SetStandardColorSpaceProfileA (PCSTR, DWORD, PSTR)
 
BOOL WINAPI SetStandardColorSpaceProfileW (PCWSTR, DWORD, PWSTR)
 
BOOL WINAPI SetupColorMatchingA (PCOLORMATCHSETUPA)
 
BOOL WINAPI SetupColorMatchingW (PCOLORMATCHSETUPW)
 
BOOL WINAPI SpoolerCopyFileEvent (LPWSTR, LPWSTR, DWORD)
 
BOOL WINAPI TranslateBitmapBits (HTRANSFORM, PVOID, BMFORMAT, DWORD, DWORD, DWORD, PVOID, BMFORMAT, DWORD, PBMCALLBACKFN, ULONG)
 
BOOL WINAPI TranslateColors (HTRANSFORM, PCOLOR, DWORD, COLORTYPE, PCOLOR, COLORTYPE)
 
BOOL WINAPI UninstallColorProfileA (PCSTR, PCSTR, BOOL)
 
BOOL WINAPI UninstallColorProfileW (PCWSTR, PCWSTR, BOOL)
 
BOOL WINAPI UnregisterCMMA (PCSTR, DWORD)
 
BOOL WINAPI UnregisterCMMW (PCWSTR, DWORD)
 
BOOL WINAPI WcsEnumColorProfilesSize (WCS_PROFILE_MANAGEMENT_SCOPE, ENUMTYPEW *, DWORD *)
 
BOOL WINAPI WcsGetUsePerUserProfiles (const WCHAR *, DWORD, BOOL *)
 
HPROFILE WINAPI WcsOpenColorProfileA (PROFILE *, PROFILE *, PROFILE *, DWORD, DWORD, DWORD, DWORD)
 
HPROFILE WINAPI WcsOpenColorProfileW (PROFILE *, PROFILE *, PROFILE *, DWORD, DWORD, DWORD, DWORD)
 

Variables

typedef LPARAM
 

Macro Definition Documentation

◆ AssociateColorProfileWithDevice

#define AssociateColorProfileWithDevice   WINELIB_NAME_AW(AssociateColorProfileWithDevice)

Definition at line 343 of file icm.h.

◆ CreateColorTransform

#define CreateColorTransform   WINELIB_NAME_AW(CreateColorTransform)

Definition at line 351 of file icm.h.

◆ CreateProfileFromLogColorSpace

#define CreateProfileFromLogColorSpace   WINELIB_NAME_AW(CreateProfileFromLogColorSpace)

Definition at line 356 of file icm.h.

◆ DisassociateColorProfileFromDevice

#define DisassociateColorProfileFromDevice   WINELIB_NAME_AW(DisassociateColorProfileFromDevice)

Definition at line 360 of file icm.h.

◆ ENUM_TYPE_VERSION

#define ENUM_TYPE_VERSION   0x0300

Definition at line 221 of file icm.h.

◆ EnumColorProfiles

#define EnumColorProfiles   WINELIB_NAME_AW(EnumColorProfiles)

Definition at line 363 of file icm.h.

◆ ET_ATTRIBUTES

#define ET_ATTRIBUTES   0x00002000

Definition at line 284 of file icm.h.

◆ ET_CLASS

#define ET_CLASS   0x00000020

Definition at line 276 of file icm.h.

◆ ET_CMMTYPE

#define ET_CMMTYPE   0x00000010

Definition at line 275 of file icm.h.

◆ ET_CONNECTIONSPACE

#define ET_CONNECTIONSPACE   0x00000080

Definition at line 278 of file icm.h.

◆ ET_CREATOR

#define ET_CREATOR   0x00008000

Definition at line 286 of file icm.h.

◆ ET_DATACOLORSPACE

#define ET_DATACOLORSPACE   0x00000040

Definition at line 277 of file icm.h.

◆ ET_DEVICECLASS

#define ET_DEVICECLASS   0x00010000

Definition at line 287 of file icm.h.

◆ ET_DEVICENAME

#define ET_DEVICENAME   0x00000001

Definition at line 271 of file icm.h.

◆ ET_DITHERMODE

#define ET_DITHERMODE   0x00000004

Definition at line 273 of file icm.h.

◆ ET_MANUFACTURER

#define ET_MANUFACTURER   0x00000800

Definition at line 282 of file icm.h.

◆ ET_MEDIATYPE

#define ET_MEDIATYPE   0x00000002

Definition at line 272 of file icm.h.

◆ ET_MODEL

#define ET_MODEL   0x00001000

Definition at line 283 of file icm.h.

◆ ET_PLATFORM

#define ET_PLATFORM   0x00000200

Definition at line 280 of file icm.h.

◆ ET_PROFILEFLAGS

#define ET_PROFILEFLAGS   0x00000400

Definition at line 281 of file icm.h.

◆ ET_RENDERINGINTENT

#define ET_RENDERINGINTENT   0x00004000

Definition at line 285 of file icm.h.

◆ ET_RESOLUTION

#define ET_RESOLUTION   0x00000008

Definition at line 274 of file icm.h.

◆ ET_SIGNATURE

#define ET_SIGNATURE   0x00000100

Definition at line 279 of file icm.h.

◆ GetColorDirectory

#define GetColorDirectory   WINELIB_NAME_AW(GetColorDirectory)

Definition at line 368 of file icm.h.

◆ GetStandardColorSpaceProfile

#define GetStandardColorSpaceProfile   WINELIB_NAME_AW(GetStandardColorSpaceProfile)

Definition at line 380 of file icm.h.

◆ InstallColorProfile

#define InstallColorProfile   WINELIB_NAME_AW(InstallColorProfile)

Definition at line 383 of file icm.h.

◆ INTENT_ABSOLUTE_COLORIMETRIC

#define INTENT_ABSOLUTE_COLORIMETRIC   3

Definition at line 191 of file icm.h.

◆ INTENT_PERCEPTUAL

#define INTENT_PERCEPTUAL   0

Definition at line 188 of file icm.h.

◆ INTENT_RELATIVE_COLORIMETRIC

#define INTENT_RELATIVE_COLORIMETRIC   1

Definition at line 189 of file icm.h.

◆ INTENT_SATURATION

#define INTENT_SATURATION   2

Definition at line 190 of file icm.h.

◆ MAX_COLOR_CHANNELS

#define MAX_COLOR_CHANNELS   8

Definition at line 44 of file icm.h.

◆ OpenColorProfile

#define OpenColorProfile   WINELIB_NAME_AW(OpenColorProfile)

Definition at line 388 of file icm.h.

◆ PROFILE_FILENAME

#define PROFILE_FILENAME   1

Definition at line 417 of file icm.h.

◆ PROFILE_MEMBUFFER

#define PROFILE_MEMBUFFER   2

Definition at line 418 of file icm.h.

◆ PROFILE_READ

#define PROFILE_READ   1

Definition at line 420 of file icm.h.

◆ PROFILE_READWRITE

#define PROFILE_READWRITE   2

Definition at line 421 of file icm.h.

◆ RegisterCMM

#define RegisterCMM   WINELIB_NAME_AW(RegisterCMM)

Definition at line 391 of file icm.h.

◆ SetStandardColorSpaceProfile

#define SetStandardColorSpaceProfile   WINELIB_NAME_AW(SetStandardColorSpaceProfile)

Definition at line 399 of file icm.h.

◆ SetupColorMatching

#define SetupColorMatching   WINELIB_NAME_AW(SetupColorMatching)

Definition at line 402 of file icm.h.

◆ SPACE_2_CHANNEL

#define SPACE_2_CHANNEL   0x32434c52 /* '2CLR' */

Definition at line 434 of file icm.h.

◆ SPACE_3_CHANNEL

#define SPACE_3_CHANNEL   0x33434c52 /* '3CLR' */

Definition at line 435 of file icm.h.

◆ SPACE_4_CHANNEL

#define SPACE_4_CHANNEL   0x34434c52 /* '4CLR' */

Definition at line 436 of file icm.h.

◆ SPACE_5_CHANNEL

#define SPACE_5_CHANNEL   0x35434c52 /* '5CLR' */

Definition at line 437 of file icm.h.

◆ SPACE_6_CHANNEL

#define SPACE_6_CHANNEL   0x36434c52 /* '6CLR' */

Definition at line 438 of file icm.h.

◆ SPACE_7_CHANNEL

#define SPACE_7_CHANNEL   0x37434c52 /* '7CLR' */

Definition at line 439 of file icm.h.

◆ SPACE_8_CHANNEL

#define SPACE_8_CHANNEL   0x38434c52 /* '8CLR' */

Definition at line 440 of file icm.h.

◆ SPACE_CMY

#define SPACE_CMY   0x434D5920 /* 'CMY ' */

Definition at line 433 of file icm.h.

◆ SPACE_CMYK

#define SPACE_CMYK   0x434D594B /* 'CMYK' */

Definition at line 432 of file icm.h.

◆ SPACE_GRAY

#define SPACE_GRAY   0x47524159 /* 'GRAY' */

Definition at line 429 of file icm.h.

◆ SPACE_HLS

#define SPACE_HLS   0x484C5320 /* 'HLS ' */

Definition at line 431 of file icm.h.

◆ SPACE_HSV

#define SPACE_HSV   0x48535620 /* 'HSV ' */

Definition at line 430 of file icm.h.

◆ SPACE_Lab

#define SPACE_Lab   0x4C616220 /* 'Lab ' */

Definition at line 424 of file icm.h.

◆ SPACE_Luv

#define SPACE_Luv   0x4C757620 /* 'Luv ' */

Definition at line 425 of file icm.h.

◆ SPACE_RGB

#define SPACE_RGB   0x52474220 /* 'RGB ' */

Definition at line 428 of file icm.h.

◆ SPACE_XYZ

#define SPACE_XYZ   0x58595A20 /* 'XYZ ' */

Definition at line 423 of file icm.h.

◆ SPACE_YCbCr

#define SPACE_YCbCr   0x59436272 /* 'YCbr' */

Definition at line 426 of file icm.h.

◆ SPACE_Yxy

#define SPACE_Yxy   0x59787920 /* 'Yxy ' */

Definition at line 427 of file icm.h.

◆ UninstallColorProfile

#define UninstallColorProfile   WINELIB_NAME_AW(UninstallColorProfile)

Definition at line 408 of file icm.h.

◆ UnregisterCMM

#define UnregisterCMM   WINELIB_NAME_AW(UnregisterCMM)

Definition at line 411 of file icm.h.

Typedef Documentation

◆ COLOR

typedef union tagCOLOR COLOR

◆ COLOR_NAME

typedef char COLOR_NAME[32]

Definition at line 32 of file icm.h.

◆ COLORMATCHSETUPA

◆ COLORMATCHSETUPW

◆ ENUMTYPEA

◆ ENUMTYPEW

◆ HPROFILE

static HPROFILE

Definition at line 26 of file icm.h.

◆ HTRANSFORM

typedef HANDLE HTRANSFORM

Definition at line 28 of file icm.h.

◆ LPBMFORMAT

◆ LPCOLOR

typedef union tagCOLOR * LPCOLOR

◆ LPCOLOR_NAME

Definition at line 33 of file icm.h.

◆ LPCOLORMATCHSETUPA

◆ LPCOLORMATCHSETUPW

◆ LPCOLORTYPE

◆ LPENUMTYPEA

◆ LPENUMTYPEW

◆ LPNAMED_PROFILE_INFO

◆ LPPBMCALLBACKFN

Definition at line 186 of file icm.h.

◆ LPPROFILE

◆ LPPROFILEHEADER

◆ LPTAGTYPE

typedef DWORD * LPTAGTYPE

Definition at line 30 of file icm.h.

◆ NAMED_PROFILE_INFO

◆ PBMCALLBACKFN

typedef BOOL(CALLBACK * PBMCALLBACKFN) (ULONG, ULONG, LPARAM)

Definition at line 185 of file icm.h.

◆ PBMFORMAT

typedef enum BMFORMAT * PBMFORMAT

◆ PCMSCALLBACKW

typedef BOOL(WINAPI * PCMSCALLBACKW) (struct _tagCOLORMATCHSETUPW *, LPARAM)

Definition at line 293 of file icm.h.

◆ PCOLOR

typedef union tagCOLOR * PCOLOR

◆ PCOLOR_NAME

Definition at line 33 of file icm.h.

◆ PCOLORMATCHSETUPA

◆ PCOLORMATCHSETUPW

◆ PCOLORTYPE

◆ PENUMTYPEA

◆ PENUMTYPEW

◆ PHPROFILE

typedef HPROFILE* PHPROFILE

Definition at line 27 of file icm.h.

◆ PNAMED_PROFILE_INFO

◆ PPROFILE

◆ PPROFILEHEADER

Definition at line 58 of file profile.c.

◆ PROFILE

◆ PROFILEHEADER

◆ PTAGTYPE

typedef DWORD * PTAGTYPE

Definition at line 30 of file icm.h.

◆ TAGTYPE

static TAGTYPE

Definition at line 30 of file icm.h.

Enumeration Type Documentation

◆ BMFORMAT

Enumerator
BM_x555RGB 
BM_565RGB 
BM_RGBTRIPLETS 
BM_BGRTRIPLETS 
BM_xRGBQUADS 
BM_10b_RGB 
BM_16b_RGB 
BM_xBGRQUADS 
BM_CMYKQUADS 
BM_x555XYZ 
BM_x555Yxz 
BM_x555Lab 
BM_x555G3CH 
BM_XYZTRIPLETS 
BM_YxyTRIPLETS 
BM_LabTRIPLETS 
BM_G3CHTRIPLETS 
BM_5CHANNEL 
BM_6CHANNEL 
BM_7CHANNEL 
BM_8CHANNEL 
BM_GRAY 
BM_xXYZQUADS 
BM_xYxyQUADS 
BM_xLabQUADS 
BM_xG3CHQUADS 
BM_KYMCQUADS 
BM_10b_XYZ 
BM_10b_Yxy 
BM_10b_Lab 
BM_10b_G3CH 
BM_NAMED_INDEX 
BM_16b_XYZ 
BM_16b_Yxy 
BM_16b_Lab 
BM_16b_G3CH 
BM_16b_GRAY 

Definition at line 138 of file icm.h.

139 {
140  BM_x555RGB = 0x00,
141  BM_565RGB = 0x01,
142  BM_RGBTRIPLETS = 0x02,
143  BM_BGRTRIPLETS = 0x04,
144  BM_xRGBQUADS = 0x08,
145  BM_10b_RGB = 0x09,
146  BM_16b_RGB = 0x0a,
147  BM_xBGRQUADS = 0x10,
148  BM_CMYKQUADS = 0x20,
149  BM_x555XYZ = 0x101,
150  BM_x555Yxz,
151  BM_x555Lab,
152  BM_x555G3CH,
153  BM_XYZTRIPLETS = 0x201,
157  BM_5CHANNEL,
158  BM_6CHANNEL,
159  BM_7CHANNEL,
160  BM_8CHANNEL,
161  BM_GRAY,
162  BM_xXYZQUADS = 0x301,
163  BM_xYxyQUADS,
164  BM_xLabQUADS,
166  BM_KYMCQUADS,
167  BM_10b_XYZ = 0x401,
168  BM_10b_Yxy,
169  BM_10b_Lab,
170  BM_10b_G3CH,
172  BM_16b_XYZ = 0x501,
173  BM_16b_Yxy,
174  BM_16b_Lab,
175  BM_16b_G3CH,
176  BM_16b_GRAY,
Definition: icm.h:161
enum BMFORMAT * PBMFORMAT
BMFORMAT
Definition: icm.h:138
Definition: icm.h:141
enum BMFORMAT * LPBMFORMAT

◆ COLORTYPE

Enumerator
COLOR_GRAY 
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 

Definition at line 122 of file icm.h.

123 {
124  COLOR_GRAY = 1,
125  COLOR_RGB,
126  COLOR_XYZ,
127  COLOR_Yxy,
128  COLOR_Lab,
130  COLOR_CMYK,
135  COLOR_NAMED,
enum COLORTYPE * LPCOLORTYPE
Definition: icm.h:125
Definition: icm.h:128
Definition: icm.h:127
enum COLORTYPE * PCOLORTYPE
COLORTYPE
Definition: icm.h:122
Definition: icm.h:126

◆ WCS_PROFILE_MANAGEMENT_SCOPE

Enumerator
WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE 
WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER 

Definition at line 179 of file icm.h.

Function Documentation

◆ AssociateColorProfileWithDeviceA()

BOOL WINAPI AssociateColorProfileWithDeviceA ( PCSTR  ,
PCSTR  ,
PCSTR   
)

Definition at line 69 of file profile.c.

70 {
71  int len;
72  BOOL ret = FALSE;
73  WCHAR *profileW, *deviceW;
74 
75  TRACE( "( %s, %s, %s )\n", debugstr_a(machine), debugstr_a(profile), debugstr_a(device) );
76 
77  if (!profile || !device)
78  {
80  return FALSE;
81  }
82  if (machine)
83  {
85  return FALSE;
86  }
87 
88  len = MultiByteToWideChar( CP_ACP, 0, profile, -1, NULL, 0 );
89  if (!(profileW = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ))) return FALSE;
90 
91  MultiByteToWideChar( CP_ACP, 0, profile, -1, profileW, len );
92 
93  len = MultiByteToWideChar( CP_ACP, 0, device, -1, NULL, 0 );
94  if ((deviceW = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) )))
95  {
98  }
99 
100  HeapFree( GetProcessHeap(), 0, profileW );
102  return ret;
103 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
BOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR machine, PCWSTR profile, PCWSTR device)
Definition: profile.c:154
#define CP_ACP
Definition: compat.h:99
static const WCHAR deviceW[]
unsigned int BOOL
Definition: ntddk_ex.h:94
Definition: devices.h:37
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
#define SetLastError(x)
Definition: compat.h:417
int ret
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
#define MultiByteToWideChar
Definition: compat.h:100
#define ERROR_NOT_SUPPORTED
Definition: compat.h:90
#define profile
Definition: kernel32.h:12
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by init_function_ptrs().

◆ AssociateColorProfileWithDeviceW()

BOOL WINAPI AssociateColorProfileWithDeviceW ( PCWSTR  ,
PCWSTR  ,
PCWSTR   
)

Definition at line 154 of file profile.c.

155 {
156  static const BYTE dummy_value[12];
157 
158  TRACE( "( %s, %s, %s )\n", debugstr_w(machine), debugstr_w(profile), debugstr_w(device) );
159 
160  if (!profile || !device)
161  {
163  return FALSE;
164  }
165  if (machine)
166  {
168  return FALSE;
169  }
170 
171  return set_profile_device_key( profile, dummy_value, sizeof(dummy_value) );
172 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
Definition: devices.h:37
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
static BOOL set_profile_device_key(PCWSTR file, const BYTE *value, DWORD size)
Definition: profile.c:105
#define SetLastError(x)
Definition: compat.h:417
static const char machine[]
Definition: profile.c:104
unsigned char BYTE
Definition: mem.h:68
#define ERROR_NOT_SUPPORTED
Definition: compat.h:90
#define profile
Definition: kernel32.h:12

Referenced by AssociateColorProfileWithDeviceA().

◆ BOOL()

typedef BOOL ( WINAPI PCMSCALLBACKA)

◆ CheckBitmapBits()

BOOL WINAPI CheckBitmapBits ( HTRANSFORM  ,
PVOID  ,
BMFORMAT  ,
DWORD  ,
DWORD  ,
DWORD  ,
PBYTE  ,
PBMCALLBACKFN  ,
LPARAM   
)

Definition at line 36 of file stub.c.

39 {
40  FIXME( "( %p, %p, 0x%08x, 0x%08x, 0x%08x, 0x%08x, %p, %p, 0x%08lx ) stub\n",
42 
43  return FALSE;
44 }
GLint GLint GLsizei width
Definition: gl.h:1546
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
#define FIXME(fmt,...)
Definition: debug.h:110
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44
GLsizei stride
Definition: glext.h:5848
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLuint GLenum GLenum transform
Definition: glext.h:9407
GLuint64EXT * result
Definition: glext.h:11304

◆ CheckColors()

BOOL WINAPI CheckColors ( HTRANSFORM  ,
PCOLOR  ,
DWORD  ,
COLORTYPE  ,
PBYTE   
)

Definition at line 46 of file stub.c.

48 {
49  FIXME( "( %p, %p, 0x%08x, 0x%08x, %p ) stub\n", transform, colors, number, type, result );
50 
51  return FALSE;
52 }
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
static size_t double number
Definition: printf.c:69
#define FIXME(fmt,...)
Definition: debug.h:110
GLuint GLenum GLenum transform
Definition: glext.h:9407
GLuint64EXT * result
Definition: glext.h:11304

◆ CloseColorProfile()

BOOL WINAPI CloseColorProfile ( HPROFILE  )

Definition at line 1523 of file profile.c.

1524 {
1525  BOOL ret = FALSE;
1526 #ifdef HAVE_LCMS2
1527 
1528  TRACE( "( %p )\n", profile );
1529  ret = close_profile( profile );
1530 
1531 #endif /* HAVE_LCMS2 */
1532  return ret;
1533 }
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
int ret
#define profile
Definition: kernel32.h:12

Referenced by header_from_file(), init_function_ptrs(), and set_profile_device_key().

◆ ConvertColorNameToIndex()

BOOL WINAPI ConvertColorNameToIndex ( HPROFILE  ,
PCOLOR_NAME  ,
PDWORD  ,
DWORD   
)

Definition at line 54 of file stub.c.

55 {
56  FIXME( "( %p, %p, %p, 0x%08x ) stub\n", profile, name, index, count );
57 
58  return FALSE;
59 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define FIXME(fmt,...)
Definition: debug.h:110
GLuint index
Definition: glext.h:6031
Definition: name.c:36
#define profile
Definition: kernel32.h:12

◆ ConvertIndexToColorName()

BOOL WINAPI ConvertIndexToColorName ( HPROFILE  ,
PDWORD  ,
PCOLOR_NAME  ,
DWORD   
)

Definition at line 61 of file stub.c.

62 {
63  FIXME( "( %p, %p, %p, 0x%08x ) stub\n", profile, index, name, count );
64 
65  return FALSE;
66 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define FIXME(fmt,...)
Definition: debug.h:110
GLuint index
Definition: glext.h:6031
Definition: name.c:36
#define profile
Definition: kernel32.h:12

◆ CreateColorTransformA()

HTRANSFORM WINAPI CreateColorTransformA ( LPLOGCOLORSPACEA  ,
HPROFILE  ,
HPROFILE  ,
DWORD   
)

Definition at line 94 of file transform.c.

96 {
98  DWORD len;
99 
100  TRACE( "( %p, %p, %p, 0x%08x )\n", space, dest, target, flags );
101 
102  if (!space || !dest) return FALSE;
103 
104  memcpy( &spaceW, space, FIELD_OFFSET(LOGCOLORSPACEA, lcsFilename) );
105  spaceW.lcsSize = sizeof(LOGCOLORSPACEW);
106 
107  len = MultiByteToWideChar( CP_ACP, 0, space->lcsFilename, -1, NULL, 0 );
108  MultiByteToWideChar( CP_ACP, 0, space->lcsFilename, -1, spaceW.lcsFilename, len );
109 
111 }
HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW space, HPROFILE dest, HPROFILE target, DWORD flags)
Definition: transform.c:128
#define CP_ACP
Definition: compat.h:99
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
struct tagLOGCOLORSPACEW LOGCOLORSPACEW
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
static const WCHAR spaceW[]
Definition: mxwriter.c:44
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
#define MultiByteToWideChar
Definition: compat.h:100
GLenum target
Definition: glext.h:7315
static char * dest
Definition: rtl.c:135

◆ CreateColorTransformW()

HTRANSFORM WINAPI CreateColorTransformW ( LPLOGCOLORSPACEW  ,
HPROFILE  ,
HPROFILE  ,
DWORD   
)

Definition at line 128 of file transform.c.

130 {
131  HTRANSFORM ret = NULL;
132 #ifdef HAVE_LCMS2
133  struct transform transform;
134  struct profile *dst, *tgt = NULL;
135  cmsHPROFILE cmsinput, cmsoutput, cmstarget = NULL;
136  DWORD proofing = 0;
137  int intent;
138 
139  TRACE( "( %p, %p, %p, 0x%08x )\n", space, dest, target, flags );
140 
141  if (!space || !(dst = grab_profile( dest ))) return FALSE;
142 
143  if (target && !(tgt = grab_profile( target )))
144  {
145  release_profile( dst );
146  return FALSE;
147  }
148  intent = space->lcsIntent > 3 ? INTENT_PERCEPTUAL : space->lcsIntent;
149 
150  TRACE( "lcsIntent: %x\n", space->lcsIntent );
151  TRACE( "lcsCSType: %s\n", dbgstr_tag( space->lcsCSType ) );
152  TRACE( "lcsFilename: %s\n", debugstr_w( space->lcsFilename ) );
153 
154  cmsinput = cmsCreate_sRGBProfile(); /* FIXME: create from supplied color space */
155  if (target)
156  {
157  proofing = cmsFLAGS_SOFTPROOFING;
158  cmstarget = tgt->cmsprofile;
159  }
160  cmsoutput = dst->cmsprofile;
161  transform.cmstransform = cmsCreateProofingTransform(cmsinput, 0, cmsoutput, 0, cmstarget,
163  proofing);
164  if (!transform.cmstransform)
165  {
166  if (tgt) release_profile( tgt );
167  release_profile( dst );
168  return FALSE;
169  }
170 
171  ret = create_transform( &transform );
172 
173  if (tgt) release_profile( tgt );
174  release_profile( dst );
175 
176 #endif /* HAVE_LCMS2 */
177  return ret;
178 }
const char * dbgstr_tag(DWORD) DECLSPEC_HIDDEN
Definition: profile.c:58
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
int ret
GLenum GLenum dst
Definition: glext.h:6340
GLenum target
Definition: glext.h:7315
GLuint GLenum GLenum transform
Definition: glext.h:9407
#define profile
Definition: kernel32.h:12
static char * dest
Definition: rtl.c:135
#define INTENT_ABSOLUTE_COLORIMETRIC
Definition: icm.h:191
#define INTENT_PERCEPTUAL
Definition: icm.h:188

Referenced by CreateColorTransformA().

◆ CreateDeviceLinkProfile()

BOOL WINAPI CreateDeviceLinkProfile ( PHPROFILE  ,
DWORD  ,
PDWORD  ,
DWORD  ,
DWORD  ,
PBYTE ,
DWORD   
)

Definition at line 68 of file stub.c.

70 {
71  FIXME( "( %p, 0x%08x, %p, 0x%08x, 0x%08x, %p, 0x%08x ) stub\n",
72  profiles, nprofiles, intents, nintents, flags, data, index );
73 
74  return FALSE;
75 }
#define FIXME(fmt,...)
Definition: debug.h:110
GLuint index
Definition: glext.h:6031
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLbitfield flags
Definition: glext.h:7161

◆ CreateMultiProfileTransform()

HTRANSFORM WINAPI CreateMultiProfileTransform ( PHPROFILE  ,
DWORD  ,
PDWORD  ,
DWORD  ,
DWORD  ,
DWORD   
)

Definition at line 196 of file transform.c.

198 {
199  HTRANSFORM ret = NULL;
200 #ifdef HAVE_LCMS2
201  cmsHPROFILE *cmsprofiles;
202  struct transform transform;
203  struct profile *profile0, *profile1;
204 
205  TRACE( "( %p, 0x%08x, %p, 0x%08x, 0x%08x, 0x%08x )\n",
206  profiles, nprofiles, intents, nintents, flags, cmm );
207 
208  if (!profiles || !nprofiles || !intents) return NULL;
209 
210  if (nprofiles > 2)
211  {
212  FIXME("more than 2 profiles not supported\n");
213  return NULL;
214  }
215 
216  profile0 = grab_profile( profiles[0] );
217  if (!profile0) return NULL;
218  profile1 = grab_profile( profiles[1] );
219  if (!profile1)
220  {
221  release_profile( profile0 );
222  return NULL;
223  }
224 
225  if ((cmsprofiles = HeapAlloc( GetProcessHeap(), 0, (nprofiles + 1) * sizeof(cmsHPROFILE) )))
226  {
227  cmsprofiles[0] = profile0->cmsprofile;
228  cmsprofiles[1] = profile1->cmsprofile;
229 
230  transform.cmstransform = cmsCreateMultiprofileTransform( cmsprofiles, nprofiles, 0,
231  0, *intents, 0 );
232  HeapFree( GetProcessHeap(), 0, cmsprofiles );
233  if (!transform.cmstransform)
234  {
235  release_profile( profile0 );
236  release_profile( profile1 );
237  return FALSE;
238  }
239  ret = create_transform( &transform );
240  }
241 
242  release_profile( profile0 );
243  release_profile( profile1 );
244 
245 #endif /* HAVE_LCMS2 */
246  return ret;
247 }
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
GLbitfield flags
Definition: glext.h:7161
int ret
static const char profile1[]
Definition: profile.c:116
GLuint GLenum GLenum transform
Definition: glext.h:9407
#define profile
Definition: kernel32.h:12
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by init_function_ptrs().

◆ CreateProfileFromLogColorSpaceA()

BOOL WINAPI CreateProfileFromLogColorSpaceA ( LPLOGCOLORSPACEA  ,
PBYTE  
)

Definition at line 77 of file stub.c.

78 {
79  FIXME( "( %p, %p ) stub\n", space, buffer );
80 
81  return FALSE;
82 }
GLuint buffer
Definition: glext.h:5915
#define FIXME(fmt,...)
Definition: debug.h:110

◆ CreateProfileFromLogColorSpaceW()

BOOL WINAPI CreateProfileFromLogColorSpaceW ( LPLOGCOLORSPACEW  ,
PBYTE  
)

Definition at line 84 of file stub.c.

85 {
86  FIXME( "( %p, %p ) stub\n", space, buffer );
87 
88  return FALSE;
89 }
GLuint buffer
Definition: glext.h:5915
#define FIXME(fmt,...)
Definition: debug.h:110

◆ DeleteColorTransform()

BOOL WINAPI DeleteColorTransform ( HTRANSFORM  )

Definition at line 261 of file transform.c.

262 {
263  BOOL ret = FALSE;
264 #ifdef HAVE_LCMS2
265 
266  TRACE( "( %p )\n", handle );
267 
268  ret = close_transform( handle );
269 
270 #endif /* HAVE_LCMS2 */
271  return ret;
272 }
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
int ret

Referenced by init_function_ptrs().

◆ DisassociateColorProfileFromDeviceA()

BOOL WINAPI DisassociateColorProfileFromDeviceA ( PCSTR  ,
PCSTR  ,
PCSTR   
)

Definition at line 177 of file profile.c.

178 {
179  int len;
180  BOOL ret = FALSE;
181  WCHAR *profileW, *deviceW;
182 
183  TRACE( "( %s, %s, %s )\n", debugstr_a(machine), debugstr_a(profile), debugstr_a(device) );
184 
185  if (!profile || !device)
186  {
188  return FALSE;
189  }
190  if (machine)
191  {
193  return FALSE;
194  }
195 
196  len = MultiByteToWideChar( CP_ACP, 0, profile, -1, NULL, 0 );
197  if (!(profileW = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ))) return FALSE;
198 
199  MultiByteToWideChar( CP_ACP, 0, profile, -1, profileW, len );
200 
201  len = MultiByteToWideChar( CP_ACP, 0, device, -1, NULL, 0 );
202  if ((deviceW = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) )))
203  {
206  }
207 
208  HeapFree( GetProcessHeap(), 0, profileW );
210  return ret;
211 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
#define CP_ACP
Definition: compat.h:99
static const WCHAR deviceW[]
unsigned int BOOL
Definition: ntddk_ex.h:94
Definition: devices.h:37
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
#define SetLastError(x)
Definition: compat.h:417
int ret
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
#define MultiByteToWideChar
Definition: compat.h:100
#define ERROR_NOT_SUPPORTED
Definition: compat.h:90
BOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR machine, PCWSTR profile, PCWSTR device)
Definition: profile.c:216
#define profile
Definition: kernel32.h:12
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by init_function_ptrs().

◆ DisassociateColorProfileFromDeviceW()

BOOL WINAPI DisassociateColorProfileFromDeviceW ( PCWSTR  ,
PCWSTR  ,
PCWSTR   
)

Definition at line 216 of file profile.c.

217 {
218  TRACE( "( %s, %s, %s )\n", debugstr_w(machine), debugstr_w(profile), debugstr_w(device) );
219 
220  if (!profile || !device)
221  {
223  return FALSE;
224  }
225  if (machine)
226  {
228  return FALSE;
229  }
230 
231  return set_profile_device_key( profile, NULL, 0 );
232 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
Definition: devices.h:37
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
static BOOL set_profile_device_key(PCWSTR file, const BYTE *value, DWORD size)
Definition: profile.c:105
#define SetLastError(x)
Definition: compat.h:417
static const char machine[]
Definition: profile.c:104
#define ERROR_NOT_SUPPORTED
Definition: compat.h:90
#define profile
Definition: kernel32.h:12

Referenced by DisassociateColorProfileFromDeviceA().

◆ EnumColorProfilesA()

BOOL WINAPI EnumColorProfilesA ( PCSTR  ,
PENUMTYPEA  ,
PBYTE  ,
PDWORD  ,
PDWORD   
)

Definition at line 805 of file profile.c.

807 {
808  BOOL match, ret = FALSE;
809  char spec[] = "\\*.icm";
810  char colordir[MAX_PATH], glob[MAX_PATH], **profiles = NULL;
811  DWORD i, len = sizeof(colordir), count = 0, totalsize = 0;
814  ENUMTYPEW recordW;
815  WCHAR *fileW = NULL, *deviceW = NULL;
816  HANDLE find;
817 
818  TRACE( "( %p, %p, %p, %p, %p )\n", machine, record, buffer, size, number );
819 
820  if (machine || !record || !size ||
821  record->dwSize != sizeof(ENUMTYPEA) ||
822  record->dwVersion != ENUM_TYPE_VERSION) return FALSE;
823 
824  ret = GetColorDirectoryA( machine, colordir, &len );
825  if (!ret || len + sizeof(spec) > MAX_PATH)
826  {
827  WARN( "can't retrieve color directory\n" );
828  return FALSE;
829  }
830 
831  lstrcpyA( glob, colordir );
832  lstrcatA( glob, spec );
833 
834  find = FindFirstFileA( glob, &data );
835  if (find == INVALID_HANDLE_VALUE) return FALSE;
836 
837  profiles = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(char *) + 1 );
838  if (!profiles) goto exit;
839 
840  memcpy( &recordW, record, sizeof(ENUMTYPEA) );
841  if (record->pDeviceName)
842  {
843  deviceW = strdupW( record->pDeviceName );
844  if (!(recordW.pDeviceName = deviceW)) goto exit;
845  }
846 
847  fileW = strdupW( data.cFileName );
848  if (!fileW) goto exit;
849 
851  if (ret)
852  {
853  match = match_profile( &recordW, &header );
854  if (match)
855  {
856  len = sizeof(char) * (lstrlenA( data.cFileName ) + 1);
857  profiles[count] = HeapAlloc( GetProcessHeap(), 0, len );
858 
859  if (!profiles[count]) goto exit;
860  else
861  {
862  TRACE( "matching profile: %s\n", debugstr_a(data.cFileName) );
863  lstrcpyA( profiles[count], data.cFileName );
864  totalsize += len;
865  count++;
866  }
867  }
868  }
869  HeapFree( GetProcessHeap(), 0, fileW );
870  fileW = NULL;
871 
872  while (FindNextFileA( find, &data ))
873  {
874  fileW = strdupW( data.cFileName );
875  if (!fileW) goto exit;
876 
878  if (!ret)
879  {
880  HeapFree( GetProcessHeap(), 0, fileW );
881  continue;
882  }
883 
884  match = match_profile( &recordW, &header );
885  if (match)
886  {
888  profiles, sizeof(char *) * (count + 1) );
889  if (!tmp) goto exit;
890  else profiles = tmp;
891 
892  len = sizeof(char) * (lstrlenA( data.cFileName ) + 1);
893  profiles[count] = HeapAlloc( GetProcessHeap(), 0, len );
894 
895  if (!profiles[count]) goto exit;
896  else
897  {
898  TRACE( "matching profile: %s\n", debugstr_a(data.cFileName) );
899  lstrcpyA( profiles[count], data.cFileName );
900  totalsize += len;
901  count++;
902  }
903  }
904  HeapFree( GetProcessHeap(), 0, fileW );
905  fileW = NULL;
906  }
907 
908  totalsize++;
909  if (buffer && *size >= totalsize)
910  {
911  char *p = (char *)buffer;
912 
913  for (i = 0; i < count; i++)
914  {
915  lstrcpyA( p, profiles[i] );
916  p += lstrlenA( profiles[i] ) + 1;
917  }
918  *p = 0;
919  ret = TRUE;
920  }
921  else
922  {
924  ret = FALSE;
925  }
926 
927  *size = totalsize;
928  if (number) *number = count;
929 
930 exit:
931  for (i = 0; i < count; i++)
932  HeapFree( GetProcessHeap(), 0, profiles[i] );
933  HeapFree( GetProcessHeap(), 0, profiles );
935  HeapFree( GetProcessHeap(), 0, fileW );
936  FindClose( find );
937 
938  return ret;
939 }
static BOOL header_from_file(LPCWSTR file, PPROFILEHEADER header)
Definition: profile.c:669
#define TRUE
Definition: types.h:120
#define ENUM_TYPE_VERSION
Definition: icm.h:221
PCWSTR pDeviceName
Definition: icm.h:252
Definition: match.c:28
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define WARN(fmt,...)
Definition: debug.h:111
#define INVALID_HANDLE_VALUE
Definition: compat.h:399
GLuint buffer
Definition: glext.h:5915
static LPWSTR strdupW(LPCSTR str)
Definition: profile.c:46
BOOL WINAPI FindNextFileA(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAA lpFindFileData)
Definition: find.c:336
static const WCHAR deviceW[]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
static size_t double number
Definition: printf.c:69
smooth NULL
Definition: ftsmooth.c:416
unsigned char
Definition: typeof.h:29
struct match match
Definition: match.c:33
static BOOL match_profile(PENUMTYPEW rec, PPROFILEHEADER hdr)
Definition: profile.c:712
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
int ret
static const char machine[]
Definition: profile.c:104
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
BOOL WINAPI GetColorDirectoryA(PCSTR machine, PSTR buffer, PDWORD size)
Definition: profile.c:239
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define HeapReAlloc
Definition: compat.h:401
char ** glob(const char *v)
Definition: fake.c:36
#define HEAP_ZERO_MEMORY
Definition: compat.h:123
static TAGID TAGID find
Definition: db.cpp:153
void exit(int exitcode)
Definition: _exit.c:33
GLfloat GLfloat p
Definition: glext.h:8902
static const WCHAR fileW[]
Definition: url.c:111
HANDLE WINAPI FindFirstFileA(IN LPCSTR lpFileName, OUT LPWIN32_FIND_DATAA lpFindFileData)
Definition: find.c:263
#define HeapFree(x, y, z)
Definition: compat.h:402
struct CFHEADER header
Definition: fdi.c:101
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10
BOOL WINAPI FindClose(HANDLE hFindFile)
Definition: find.c:502

Referenced by init_function_ptrs().

◆ EnumColorProfilesW()

BOOL WINAPI EnumColorProfilesW ( PCWSTR  ,
PENUMTYPEW  ,
PBYTE  ,
PDWORD  ,
PDWORD   
)

Definition at line 958 of file profile.c.

960 {
961  static const WCHAR spec[] = {'\\','*','i','c','m',0};
962  BOOL match, ret = FALSE;
963  WCHAR colordir[MAX_PATH], glob[MAX_PATH], **profiles = NULL;
964  DWORD i, len = sizeof(colordir), count = 0, totalsize = 0;
967  HANDLE find;
968 
969  TRACE( "( %p, %p, %p, %p, %p )\n", machine, record, buffer, size, number );
970 
971  if (machine || !record || !size ||
972  record->dwSize != sizeof(ENUMTYPEW) ||
973  record->dwVersion != ENUM_TYPE_VERSION) return FALSE;
974 
975  ret = GetColorDirectoryW( machine, colordir, &len );
976  if (!ret || len + sizeof(spec) > MAX_PATH)
977  {
978  WARN( "Can't retrieve color directory\n" );
979  return FALSE;
980  }
981 
982  lstrcpyW( glob, colordir );
983  lstrcatW( glob, spec );
984 
985  find = FindFirstFileW( glob, &data );
986  if (find == INVALID_HANDLE_VALUE) return FALSE;
987 
988  profiles = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WCHAR *) + 1 );
989  if (!profiles) goto exit;
990 
991  ret = header_from_file( data.cFileName, &header );
992  if (ret)
993  {
995  if (match)
996  {
997  len = sizeof(WCHAR) * (lstrlenW( data.cFileName ) + 1);
998  profiles[count] = HeapAlloc( GetProcessHeap(), 0, len );
999 
1000  if (!profiles[count]) goto exit;
1001  else
1002  {
1003  TRACE( "matching profile: %s\n", debugstr_w(data.cFileName) );
1004  lstrcpyW( profiles[count], data.cFileName );
1005  totalsize += len;
1006  count++;
1007  }
1008  }
1009  }
1010 
1011  while (FindNextFileW( find, &data ))
1012  {
1013  ret = header_from_file( data.cFileName, &header );
1014  if (!ret) continue;
1015 
1017  if (match)
1018  {
1020  profiles, sizeof(WCHAR *) * (count + 1) );
1021  if (!tmp) goto exit;
1022  else profiles = tmp;
1023 
1024  len = sizeof(WCHAR) * (lstrlenW( data.cFileName ) + 1);
1025  profiles[count] = HeapAlloc( GetProcessHeap(), 0, len );
1026 
1027  if (!profiles[count]) goto exit;
1028  else
1029  {
1030  TRACE( "matching profile: %s\n", debugstr_w(data.cFileName) );
1031  lstrcpyW( profiles[count], data.cFileName );
1032  totalsize += len;
1033  count++;
1034  }
1035  }
1036  }
1037 
1038  totalsize++;
1039  if (buffer && *size >= totalsize)
1040  {
1041  WCHAR *p = (WCHAR *)buffer;
1042 
1043  for (i = 0; i < count; i++)
1044  {
1045  lstrcpyW( p, profiles[i] );
1046  p += lstrlenW( profiles[i] ) + 1;
1047  }
1048  *p = 0;
1049  ret = TRUE;
1050  }
1051  else
1052  {
1054  ret = FALSE;
1055  }
1056 
1057  *size = totalsize;
1058  if (number) *number = count;
1059 
1060 exit:
1061  for (i = 0; i < count; i++)
1062  HeapFree( GetProcessHeap(), 0, profiles[i] );
1063  HeapFree( GetProcessHeap(), 0, profiles );
1064  FindClose( find );
1065 
1066  return ret;
1067 }
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:382
static BOOL header_from_file(LPCWSTR file, PPROFILEHEADER header)
Definition: profile.c:669
#define TRUE
Definition: types.h:120
#define ENUM_TYPE_VERSION
Definition: icm.h:221
Definition: match.c:28
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define WARN(fmt,...)
Definition: debug.h:111
#define INVALID_HANDLE_VALUE
Definition: compat.h:399
GLuint buffer
Definition: glext.h:5915
#define lstrlenW
Definition: compat.h:415
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
static size_t double number
Definition: printf.c:69
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
struct match match
Definition: match.c:33
static BOOL match_profile(PENUMTYPEW rec, PPROFILEHEADER hdr)
Definition: profile.c:712
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
BOOL WINAPI GetColorDirectoryW(PCWSTR machine, PWSTR buffer, PDWORD size)
Definition: profile.c:287
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
int ret
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
#define lstrcpyW
Definition: compat.h:414
#define HeapReAlloc
Definition: compat.h:401
char ** glob(const char *v)
Definition: fake.c:36
#define HEAP_ZERO_MEMORY
Definition: compat.h:123
static TAGID TAGID find
Definition: db.cpp:153
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
void exit(int exitcode)
Definition: _exit.c:33
GLfloat GLfloat p
Definition: glext.h:8902
#define HeapFree(x, y, z)
Definition: compat.h:402
struct CFHEADER header
Definition: fdi.c:101
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:320
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10
BOOL WINAPI FindClose(HANDLE hFindFile)
Definition: find.c:502

Referenced by init_function_ptrs().

◆ GenerateCopyFilePaths()

DWORD WINAPI GenerateCopyFilePaths ( LPCWSTR  ,
LPCWSTR  ,
LPBYTE  ,
DWORD  ,
LPWSTR  ,
LPDWORD  ,
LPWSTR  ,
LPDWORD  ,
DWORD   
)

Definition at line 91 of file stub.c.

94 {
95  FIXME( "( %s, %s, %p, 0x%08x, %p, %p, %p, %p, 0x%08x ) stub\n",
96  debugstr_w(printer), debugstr_w(directory), clientinfo, level, sourcedir,
97  sourcedirsize, targetdir, targetdirsize, flags );
98  return ERROR_SUCCESS;
99 }
GLint level
Definition: gl.h:1546
#define ERROR_SUCCESS
Definition: deptool.c:10
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
GLbitfield flags
Definition: glext.h:7161

◆ GetCMMInfo()

DWORD WINAPI GetCMMInfo ( HTRANSFORM  ,
DWORD   
)

Definition at line 101 of file stub.c.

102 {
103  FIXME( "( %p, 0x%08x ) stub\n", transform, info );
104 
105  return 0;
106 }
#define FIXME(fmt,...)
Definition: debug.h:110
GLuint GLenum GLenum transform
Definition: glext.h:9407

◆ GetColorDirectoryA()

BOOL WINAPI GetColorDirectoryA ( PCSTR  ,
PSTR  ,
PDWORD   
)

Definition at line 239 of file profile.c.

240 {
241  INT len;
242  LPWSTR bufferW;
243  BOOL ret = FALSE;
244  DWORD sizeW;
245 
246  TRACE( "( %p, %p )\n", buffer, size );
247 
248  if (machine || !size) return FALSE;
249 
250  if (!buffer)
251  {
253  *size = sizeW / sizeof(WCHAR);
254  return ret;
255  }
256 
257  sizeW = *size * sizeof(WCHAR);
258 
259  bufferW = HeapAlloc( GetProcessHeap(), 0, sizeW );
260  if (bufferW)
261  {
262  if ((ret = GetColorDirectoryW( NULL, bufferW, &sizeW )))
263  {
264  *size = WideCharToMultiByte( CP_ACP, 0, bufferW, -1, NULL, 0, NULL, NULL );
265  len = WideCharToMultiByte( CP_ACP, 0, bufferW, -1, buffer, *size, NULL, NULL );
266  if (!len) ret = FALSE;
267  }
268  else *size = sizeW / sizeof(WCHAR);
269 
270  HeapFree( GetProcessHeap(), 0, bufferW );
271  }
272  return ret;
273 }
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
GLuint buffer
Definition: glext.h:5915
int32_t INT
Definition: typedefs.h:56
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR sizeW[]
Definition: editor.c:79
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
BOOL WINAPI GetColorDirectoryW(PCWSTR machine, PWSTR buffer, PDWORD size)
Definition: profile.c:287
unsigned long DWORD
Definition: ntddk_ex.h:95
int ret
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by EnumColorProfilesA(), and init_function_ptrs().

◆ GetColorDirectoryW()

BOOL WINAPI GetColorDirectoryW ( PCWSTR  ,
PWSTR  ,
PDWORD   
)

Definition at line 287 of file profile.c.

288 {
289  WCHAR colordir[MAX_PATH];
290  static const WCHAR colorsubdir[] =
291  {'\\','s','p','o','o','l','\\','d','r','i','v','e','r','s','\\','c','o','l','o','r',0};
292  DWORD len;
293 
294  TRACE( "( %p, %p )\n", buffer, size );
295 
296  if (machine || !size) return FALSE;
297 
298  GetSystemDirectoryW( colordir, ARRAY_SIZE( colordir ));
299  lstrcatW( colordir, colorsubdir );
300 
301  len = lstrlenW( colordir ) * sizeof(WCHAR);
302 
303  if (buffer && len <= *size)
304  {
305  lstrcpyW( buffer, colordir );
306  *size = len;
307  return TRUE;
308  }
309 
311  *size = len;
312  return FALSE;
313 }
#define TRUE
Definition: types.h:120
GLuint buffer
Definition: glext.h:5915
#define lstrlenW
Definition: compat.h:415
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
#define ERROR_MORE_DATA
Definition: dderror.h:13
#define lstrcpyW
Definition: compat.h:414
#define ARRAY_SIZE(a)
Definition: main.h:24
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2312
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274

Referenced by EnumColorProfilesW(), GetColorDirectoryA(), GetStandardColorSpaceProfileW(), header_from_file(), init_function_ptrs(), InstallColorProfileW(), and OpenColorProfileW().

◆ GetColorProfileElement()

BOOL WINAPI GetColorProfileElement ( HPROFILE  ,
TAGTYPE  ,
DWORD  ,
PDWORD  ,
PVOID  ,
PBOOL   
)

Definition at line 334 of file profile.c.

336 {
337  BOOL ret = FALSE;
338 #ifdef HAVE_LCMS2
339  struct profile *profile = grab_profile( handle );
340 
341  TRACE( "( %p, 0x%08x, %d, %p, %p, %p )\n", handle, type, offset, size, buffer, ref );
342 
343  if (!profile) return FALSE;
344 
345  if (!size || !ref)
346  {
347  release_profile( profile );
348  return FALSE;
349  }
350  if (!get_tag_data( profile, type, offset, buffer, size ))
351  {
352  release_profile( profile );
353  return FALSE;
354  }
355  ret = get_tag_data( profile, type, offset, buffer, size );
356  *ref = cmsTagLinkedTo( profile->cmsprofile, type ) != 0;
357  release_profile( profile );
358 #endif /* HAVE_LCMS2 */
359  return ret;
360 }
GLintptr offset
Definition: glext.h:5920
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint buffer
Definition: glext.h:5915
Definition: send.c:47
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
int ret
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs().

◆ GetColorProfileElementTag()

BOOL WINAPI GetColorProfileElementTag ( HPROFILE  ,
DWORD  ,
PTAGTYPE   
)

Definition at line 380 of file profile.c.

381 {
382  BOOL ret = FALSE;
383 #ifdef HAVE_LCMS2
384  struct profile *profile = grab_profile( handle );
385  cmsInt32Number num_tags;
386  cmsTagSignature sig;
387 
388  TRACE( "( %p, %d, %p )\n", handle, index, type );
389 
390  if (!profile) return FALSE;
391 
392  if (!type)
393  {
394  release_profile( profile );
395  return FALSE;
396  }
397  num_tags = cmsGetTagCount( profile->cmsprofile );
398  if (num_tags < 0 || index > num_tags || index < 1)
399  {
400  release_profile( profile );
401  return FALSE;
402  }
403  if ((sig = cmsGetTagSignature( profile->cmsprofile, index - 1 )))
404  {
405  *type = sig;
406  ret = TRUE;
407  }
408  release_profile( profile );
409 
410 #endif /* HAVE_LCMS2 */
411  return ret;
412 }
#define TRUE
Definition: types.h:120
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint index
Definition: glext.h:6031
#define TRACE(s)
Definition: solgame.cpp:4
int ret
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs().

◆ GetColorProfileFromHandle()

BOOL WINAPI GetColorProfileFromHandle ( HPROFILE  ,
PBYTE  ,
PDWORD   
)

Definition at line 432 of file profile.c.

433 {
434  BOOL ret = FALSE;
435 #ifdef HAVE_LCMS2
436  struct profile *profile = grab_profile( handle );
438 
439  TRACE( "( %p, %p, %p )\n", handle, buffer, size );
440 
441  if (!profile) return FALSE;
442 
443  if (!size)
444  {
445  release_profile( profile );
446  return FALSE;
447  }
448  get_profile_header( profile, &header );
449 
450  if (!buffer || header.phSize > *size)
451  {
452  *size = header.phSize;
453  release_profile( profile );
454  return FALSE;
455  }
456 
457  /* No endian conversion needed */
458  memcpy( buffer, profile->data, profile->size );
459  *size = profile->size;
460 
461  release_profile( profile );
462  ret = TRUE;
463 
464 #endif /* HAVE_LCMS2 */
465  return ret;
466 }
#define TRUE
Definition: types.h:120
GLuint buffer
Definition: glext.h:5915
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
int ret
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define profile
Definition: kernel32.h:12
struct CFHEADER header
Definition: fdi.c:101

Referenced by init_function_ptrs().

◆ GetColorProfileHeader()

BOOL WINAPI GetColorProfileHeader ( HPROFILE  ,
PPROFILEHEADER   
)

Definition at line 484 of file profile.c.

485 {
486 #ifdef HAVE_LCMS2
487  struct profile *profile = grab_profile( handle );
488 
489  TRACE( "( %p, %p )\n", handle, header );
490 
491  if (!profile) return FALSE;
492 
493  if (!header)
494  {
495  release_profile( profile );
496  return FALSE;
497  }
498  get_profile_header( profile, header );
499  release_profile( profile );
500  return TRUE;
501 
502 #else
503  return FALSE;
504 #endif /* HAVE_LCMS2 */
505 }
#define TRUE
Definition: types.h:120
#define TRACE(s)
Definition: solgame.cpp:4
#define profile
Definition: kernel32.h:12
struct CFHEADER header
Definition: fdi.c:101

Referenced by header_from_file(), init_function_ptrs(), and set_profile_device_key().

◆ GetCountColorProfileElements()

BOOL WINAPI GetCountColorProfileElements ( HPROFILE  ,
PDWORD   
)

Definition at line 521 of file profile.c.

522 {
523  BOOL ret = FALSE;
524 #ifdef HAVE_LCMS2
525  struct profile *profile = grab_profile( handle );
526  cmsInt32Number num_tags;
527 
528  TRACE( "( %p, %p )\n", handle, count );
529 
530  if (!profile) return FALSE;
531 
532  if (!count)
533  {
534  release_profile( profile );
535  return FALSE;
536  }
537  if ((num_tags = cmsGetTagCount( profile->cmsprofile )) >= 0)
538  {
539  *count = num_tags;
540  ret = TRUE;
541  }
542  release_profile( profile );
543 
544 #endif /* HAVE_LCMS2 */
545  return ret;
546 }
#define TRUE
Definition: types.h:120
GLuint GLuint GLsizei count
Definition: gl.h:1545
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
int ret
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs().

◆ GetNamedProfileInfo()

BOOL WINAPI GetNamedProfileInfo ( HPROFILE  ,
PNAMED_PROFILE_INFO   
)

Definition at line 108 of file stub.c.

109 {
110  FIXME( "( %p, %p ) stub\n", profile, info );
111 
112  return FALSE;
113 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define profile
Definition: kernel32.h:12

◆ GetPS2ColorRenderingDictionary()

BOOL WINAPI GetPS2ColorRenderingDictionary ( HPROFILE  ,
DWORD  ,
PBYTE  ,
PDWORD  ,
PBOOL   
)

Definition at line 115 of file stub.c.

117 {
118  FIXME( "( %p, 0x%08x, %p, %p, %p ) stub\n", profile, intent, buffer, size, binary );
119 
120  return FALSE;
121 }
GLuint buffer
Definition: glext.h:5915
#define FIXME(fmt,...)
Definition: debug.h:110
GLsizeiptr size
Definition: glext.h:5919
const GLuint GLenum const GLvoid * binary
Definition: glext.h:7538
#define profile
Definition: kernel32.h:12

◆ GetPS2ColorRenderingIntent()

BOOL WINAPI GetPS2ColorRenderingIntent ( HPROFILE  ,
DWORD  ,
PBYTE  ,
PDWORD   
)

Definition at line 123 of file stub.c.

124 {
125  FIXME( "( %p, 0x%08x, %p, %p ) stub\n", profile, intent, buffer, size );
126 
127  return FALSE;
128 }
GLuint buffer
Definition: glext.h:5915
#define FIXME(fmt,...)
Definition: debug.h:110
GLsizeiptr size
Definition: glext.h:5919
#define profile
Definition: kernel32.h:12

◆ GetPS2ColorSpaceArray()

BOOL WINAPI GetPS2ColorSpaceArray ( HPROFILE  ,
DWORD  ,
DWORD  ,
PBYTE  ,
PDWORD  ,
PBOOL   
)

Definition at line 130 of file stub.c.

132 {
133  FIXME( "( %p, 0x%08x, 0x%08x, %p, %p, %p ) stub\n", profile, intent, type, buffer, size, binary );
134 
135  return FALSE;
136 }
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint buffer
Definition: glext.h:5915
#define FIXME(fmt,...)
Definition: debug.h:110
GLsizeiptr size
Definition: glext.h:5919
const GLuint GLenum const GLvoid * binary
Definition: glext.h:7538
#define profile
Definition: kernel32.h:12

◆ GetStandardColorSpaceProfileA()

BOOL WINAPI GetStandardColorSpaceProfileA ( PCSTR  ,
DWORD  ,
PSTR  ,
PDWORD   
)

Definition at line 553 of file profile.c.

554 {
555  INT len;
556  LPWSTR profileW;
557  BOOL ret = FALSE;
558  DWORD sizeW;
559 
560  TRACE( "( 0x%08x, %p, %p )\n", id, profile, size );
561 
562  if (machine)
563  {
565  return FALSE;
566  }
567 
568  if (!size)
569  {
571  return FALSE;
572  }
573 
574  sizeW = *size * sizeof(WCHAR);
575 
576  if (!profile)
577  {
579  *size = sizeW / sizeof(WCHAR);
580  return ret;
581  }
582 
583  profileW = HeapAlloc( GetProcessHeap(), 0, sizeW );
584  if (profileW)
585  {
586  if ((ret = GetStandardColorSpaceProfileW( NULL, id, profileW, &sizeW )))
587  {
588  *size = WideCharToMultiByte( CP_ACP, 0, profileW, -1, NULL, 0, NULL, NULL );
589  len = WideCharToMultiByte( CP_ACP, 0, profileW, -1, profile, *size, NULL, NULL );
590  if (!len) ret = FALSE;
591  }
592  else *size = sizeW / sizeof(WCHAR);
593 
594  HeapFree( GetProcessHeap(), 0, profileW );
595  }
596  return ret;
597 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
BOOL WINAPI GetStandardColorSpaceProfileW(PCWSTR machine, DWORD id, PWSTR profile, PDWORD size)
Definition: profile.c:615
int32_t INT
Definition: typedefs.h:56
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR sizeW[]
Definition: editor.c:79
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
int ret
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
#define ERROR_NOT_SUPPORTED
Definition: compat.h:90
#define profile
Definition: kernel32.h:12
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by init_function_ptrs().

◆ GetStandardColorSpaceProfileW()

BOOL WINAPI GetStandardColorSpaceProfileW ( PCWSTR  ,
DWORD  ,
PWSTR  ,
PDWORD   
)

Definition at line 615 of file profile.c.

616 {
617  static const WCHAR rgbprofilefile[] =
618  { '\\','s','r','g','b',' ','c','o','l','o','r',' ',
619  's','p','a','c','e',' ','p','r','o','f','i','l','e','.','i','c','m',0 };
620  WCHAR rgbprofile[MAX_PATH];
621  DWORD len = sizeof(rgbprofile);
622 
623  TRACE( "( 0x%08x, %p, %p )\n", id, profile, size );
624 
625  if (machine)
626  {
628  return FALSE;
629  }
630 
631  if (!size)
632  {
634  return FALSE;
635  }
636 
637  if (!profile)
638  {
640  return FALSE;
641  }
642 
643  GetColorDirectoryW( machine, rgbprofile, &len );
644 
645  switch (id)
646  {
647  case LCS_sRGB:
648  case LCS_WINDOWS_COLOR_SPACE: /* FIXME */
649  lstrcatW( rgbprofile, rgbprofilefile );
650  len = lstrlenW( rgbprofile ) * sizeof(WCHAR);
651 
652  if (*size < len)
653  {
654  *size = len;
656  return FALSE;
657  }
658 
659  lstrcpyW( profile, rgbprofile );
660  break;
661 
662  default:
664  return FALSE;
665  }
666  return TRUE;
667 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
#define TRUE
Definition: types.h:120
#define lstrlenW
Definition: compat.h:415
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
__wchar_t WCHAR
Definition: xmlstorage.h:180
BOOL WINAPI GetColorDirectoryW(PCWSTR machine, PWSTR buffer, PDWORD size)
Definition: profile.c:287
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:417
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
#define ERROR_MORE_DATA
Definition: dderror.h:13
#define lstrcpyW
Definition: compat.h:414
#define LCS_sRGB
Definition: wingdi.h:1104
#define ERROR_NOT_SUPPORTED
Definition: compat.h:90
#define profile
Definition: kernel32.h:12
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define LCS_WINDOWS_COLOR_SPACE
Definition: wingdi.h:1105
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10

Referenced by GetStandardColorSpaceProfileA(), and init_function_ptrs().

◆ InstallColorProfileA()

BOOL WINAPI InstallColorProfileA ( PCSTR  ,
PCSTR   
)

Definition at line 1074 of file profile.c.

1075 {
1076  UINT len;
1077  LPWSTR profileW;
1078  BOOL ret = FALSE;
1079 
1080  TRACE( "( %s )\n", debugstr_a(profile) );
1081 
1082  if (machine || !profile) return FALSE;
1083 
1084  len = MultiByteToWideChar( CP_ACP, 0, profile, -1, NULL, 0 );
1085  profileW = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
1086 
1087  if (profileW)
1088  {
1089  MultiByteToWideChar( CP_ACP, 0, profile, -1, profileW, len );
1090 
1091  ret = InstallColorProfileW( NULL, profileW );
1092  HeapFree( GetProcessHeap(), 0, profileW );
1093  }
1094  return ret;
1095 }
#define CP_ACP
Definition: compat.h:99
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOL WINAPI InstallColorProfileW(PCWSTR machine, PCWSTR profile)
Definition: profile.c:1111
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
int ret
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
unsigned int UINT
Definition: ndis.h:50
#define MultiByteToWideChar
Definition: compat.h:100
#define profile
Definition: kernel32.h:12
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by init_function_ptrs().

◆ InstallColorProfileW()

BOOL WINAPI InstallColorProfileW ( PCWSTR  ,
PCWSTR   
)

Definition at line 1111 of file profile.c.

1112 {
1114  DWORD size = sizeof(dest);
1115  static const WCHAR slash[] = { '\\', 0 };
1116 
1117  TRACE( "( %s )\n", debugstr_w(profile) );
1118 
1119  if (machine || !profile) return FALSE;
1120 
1121  if (!GetColorDirectoryW( machine, dest, &size )) return FALSE;
1122 
1123  basename( profile, base );
1124 
1125  lstrcatW( dest, slash );
1126  lstrcatW( dest, base );
1127 
1128  /* Is source equal to destination? */
1129  if (!lstrcmpW( profile, dest )) return TRUE;
1130 
1131  return CopyFileW( profile, dest, TRUE );
1132 }
#define TRUE
Definition: types.h:120
static void basename(LPCWSTR path, LPWSTR name)
Definition: profile.c:38
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
#define debugstr_w
Definition: kernel32.h:32
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
__wchar_t WCHAR
Definition: xmlstorage.h:180
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
Definition: copy.c:439
BOOL WINAPI GetColorDirectoryW(PCWSTR machine, PWSTR buffer, PDWORD size)
Definition: profile.c:287
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
static const char machine[]
Definition: profile.c:104
#define profile
Definition: kernel32.h:12
static char * dest
Definition: rtl.c:135
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274

Referenced by init_function_ptrs(), and InstallColorProfileA().

◆ IsColorProfileTagPresent()

BOOL WINAPI IsColorProfileTagPresent ( HPROFILE  ,
TAGTYPE  ,
PBOOL   
)

Definition at line 1149 of file profile.c.

1150 {
1151  BOOL ret = FALSE;
1152 #ifdef HAVE_LCMS2
1153  struct profile *profile = grab_profile( handle );
1154 
1155  TRACE( "( %p, 0x%08x, %p )\n", handle, type, present );
1156 
1157  if (!profile) return FALSE;
1158 
1159  if (!present)
1160  {
1161  release_profile( profile );
1162  return FALSE;
1163  }
1164  *present = (cmsIsTag( profile->cmsprofile, type ) != 0);
1165  release_profile( profile );
1166  ret = TRUE;
1167 
1168 #endif /* HAVE_LCMS2 */
1169  return ret;
1170 }
#define TRUE
Definition: types.h:120
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
int ret
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs().

◆ IsColorProfileValid()

BOOL WINAPI IsColorProfileValid ( HPROFILE  ,
PBOOL   
)

Definition at line 1186 of file profile.c.

1187 {
1188  BOOL ret = FALSE;
1189 #ifdef HAVE_LCMS2
1190  struct profile *profile = grab_profile( handle );
1191 
1192  TRACE( "( %p, %p )\n", handle, valid );
1193 
1194  if (!profile) return FALSE;
1195 
1196  if (!valid)
1197  {
1198  release_profile( profile );
1199  return FALSE;
1200  }
1201  if (profile->data) ret = *valid = TRUE;
1202  release_profile( profile );
1203 
1204 #endif /* HAVE_LCMS2 */
1205  return ret;
1206 }
#define TRUE
Definition: types.h:120
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
int ret
#define profile
Definition: kernel32.h:12

◆ OpenColorProfileA()

HPROFILE WINAPI OpenColorProfileA ( PPROFILE  ,
DWORD  ,
DWORD  ,
DWORD   
)

Definition at line 1355 of file profile.c.

1356 {
1357  HPROFILE handle = NULL;
1358  PROFILE profileW;
1359 
1360  TRACE( "( %p, 0x%08x, 0x%08x, 0x%08x )\n", profile, access, sharing, creation );
1361 
1362  if (!profile || !profile->pProfileData) return NULL;
1363 
1364  /* No AW conversion needed for memory based profiles */
1365  if (profile->dwType & PROFILE_MEMBUFFER)
1366  return OpenColorProfileW( profile, access, sharing, creation );
1367 
1368  if (!profile_AtoW( profile, &profileW )) return FALSE;
1369  handle = OpenColorProfileW( &profileW, access, sharing, creation );
1370  HeapFree( GetProcessHeap(), 0, profileW.pProfileData );
1371  return handle;
1372 }
static ULONG POBJECT_ATTRIBUTES PIO_STATUS_BLOCK ULONG sharing
Definition: pipe.c:68
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:82
HPROFILE WINAPI OpenColorProfileW(PPROFILE profile, DWORD access, DWORD sharing, DWORD creation)
Definition: profile.c:1396
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
#define PROFILE_MEMBUFFER
Definition: icm.h:418
static BOOL profile_AtoW(const PROFILE *in, PROFILE *out)
Definition: profile.c:1338
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
#define profile
Definition: kernel32.h:12
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by init_function_ptrs().

◆ OpenColorProfileW()

HPROFILE WINAPI OpenColorProfileW ( PPROFILE  ,
DWORD  ,
DWORD  ,
DWORD   
)

Definition at line 1396 of file profile.c.

1397 {
1398 #ifdef HAVE_LCMS2
1399  cmsHPROFILE cmsprofile = NULL;
1400  char *data = NULL;
1402  DWORD size;
1403 
1404  TRACE( "( %p, 0x%08x, 0x%08x, 0x%08x )\n", profile, access, sharing, creation );
1405 
1406  if (!profile || !profile->pProfileData) return NULL;
1407 
1408  if (profile->dwType == PROFILE_MEMBUFFER)
1409  {
1410  /* FIXME: access flags not implemented for memory based profiles */
1411 
1412  if (!(data = HeapAlloc( GetProcessHeap(), 0, profile->cbDataSize ))) return NULL;
1413  memcpy( data, profile->pProfileData, profile->cbDataSize );
1414 
1415  if (!(cmsprofile = cmsOpenProfileFromMem( data, profile->cbDataSize )))
1416  {
1417  HeapFree( GetProcessHeap(), 0, data );
1418  return FALSE;
1419  }
1420  size = profile->cbDataSize;
1421  }
1422  else if (profile->dwType == PROFILE_FILENAME)
1423  {
1424  DWORD read, flags = 0;
1425 
1426  TRACE( "profile file: %s\n", debugstr_w( profile->pProfileData ) );
1427 
1430 
1431  if (!flags) return NULL;
1433 
1434  if (!PathIsRelativeW( profile->pProfileData ))
1435  handle = CreateFileW( profile->pProfileData, flags, sharing, NULL, creation, 0, NULL );
1436  else
1437  {
1438  WCHAR *path;
1439 
1441  {
1442  size += (strlenW( profile->pProfileData ) + 2) * sizeof(WCHAR);
1443  if (!(path = HeapAlloc( GetProcessHeap(), 0, size ))) return NULL;
1446  strcatW( path, profile->pProfileData );
1447  }
1448  else return NULL;
1449  handle = CreateFileW( path, flags, sharing, NULL, creation, 0, NULL );
1450  HeapFree( GetProcessHeap(), 0, path );
1451  }
1453  {
1454  WARN( "Unable to open color profile %u\n", GetLastError() );
1455  return NULL;
1456  }
1457  if ((size = GetFileSize( handle, NULL )) == INVALID_FILE_SIZE)
1458  {
1459  ERR( "Unable to retrieve size of color profile\n" );
1460  CloseHandle( handle );
1461  return NULL;
1462  }
1463  if (!(data = HeapAlloc( GetProcessHeap(), 0, size )))
1464  {
1465  ERR( "Unable to allocate memory for color profile\n" );
1466  CloseHandle( handle );
1467  return NULL;
1468  }
1469  if (!ReadFile( handle, data, size, &read, NULL ) || read != size)
1470  {
1471  ERR( "Unable to read color profile\n" );
1472 
1473  CloseHandle( handle );
1474  HeapFree( GetProcessHeap(), 0, data );
1475  return NULL;
1476  }
1477  if (!(cmsprofile = cmsOpenProfileFromMem( data, size )))
1478  {
1479  CloseHandle( handle );
1480  HeapFree( GetProcessHeap(), 0, data );
1481  return NULL;
1482  }
1483  }
1484  else
1485  {
1486  ERR( "Invalid profile type %u\n", profile->dwType );
1487  return NULL;
1488  }
1489 
1490  if (cmsprofile)
1491  {
1492  struct profile profile;
1493  HPROFILE hprof;
1494 
1495  profile.file = handle;
1496  profile.access = access;
1497  profile.data = data;
1498  profile.size = size;
1499  profile.cmsprofile = cmsprofile;
1500 
1501  if ((hprof = create_profile( &profile ))) return hprof;
1502  HeapFree( GetProcessHeap(), 0, data );
1503  cmsCloseProfile( cmsprofile );
1504  }
1505  CloseHandle( handle );
1506 
1507 #endif /* HAVE_LCMS2 */
1508  return NULL;
1509 }
#define PROFILE_READ
Definition: icm.h:420
static ULONG POBJECT_ATTRIBUTES PIO_STATUS_BLOCK ULONG sharing
Definition: pipe.c:68
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:82
BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath)
Definition: path.c:1558
#define CloseHandle
Definition: compat.h:406
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
Definition: unicode.h:212
GLsizei const GLchar ** path
Definition: glext.h:7234
#define WARN(fmt,...)
Definition: debug.h:111
#define INVALID_HANDLE_VALUE
Definition: compat.h:399
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define PROFILE_FILENAME
Definition: icm.h:417
#define INVALID_FILE_SIZE
Definition: winbase.h:529
#define FILE_SHARE_READ
Definition: compat.h:125
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
Definition: path.c:289
#define GENERIC_WRITE
Definition: nt_native.h:90
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define PROFILE_MEMBUFFER
Definition: icm.h:418
BOOL WINAPI GetColorDirectoryW(PCWSTR machine, PWSTR buffer, PDWORD size)
Definition: profile.c:287
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
Definition: fileinfo.c:481
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLbitfield flags
Definition: glext.h:7161
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define GENERIC_READ
Definition: compat.h:124
#define ERROR_MORE_DATA
Definition: dderror.h:13
#define ERR(fmt,...)
Definition: debug.h:109
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
Definition: services.c:325
WINE_UNICODE_INLINE WCHAR * strcatW(WCHAR *dst, const WCHAR *src)
Definition: unicode.h:242
#define PROFILE_READWRITE
Definition: icm.h:421
#define CreateFileW
Definition: compat.h:408
#define profile
Definition: kernel32.h:12
BOOL WINAPI ReadFile(IN HANDLE hFile, IN LPVOID lpBuffer, IN DWORD nNumberOfBytesToRead, OUT LPDWORD lpNumberOfBytesRead OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:123
#define HeapFree(x, y, z)
Definition: compat.h:402
_CRTIMP int __cdecl read(_In_ int _FileHandle, _Out_writes_bytes_(_MaxCharCount) void *_DstBuf, _In_ unsigned int _MaxCharCount)

Referenced by header_from_file(), init_function_ptrs(), OpenColorProfileA(), set_profile_device_key(), and WcsOpenColorProfileW().

◆ RegisterCMMA()

BOOL WINAPI RegisterCMMA ( PCSTR  ,
DWORD  ,
PCSTR   
)

Definition at line 138 of file stub.c.

139 {
140  FIXME( "( %p, %s, %p ) stub\n", machine, dbgstr_tag(id), dll );
141 
142  return TRUE;
143 }
#define TRUE
Definition: types.h:120
const char * dbgstr_tag(DWORD) DECLSPEC_HIDDEN
Definition: profile.c:58
static HMODULE dll
Definition: str.c:188
#define FIXME(fmt,...)
Definition: debug.h:110
static const char machine[]
Definition: profile.c:104

◆ RegisterCMMW()

BOOL WINAPI RegisterCMMW ( PCWSTR  ,
DWORD  ,
PCWSTR   
)

Definition at line 145 of file stub.c.

146 {
147  FIXME( "( %p, %s, %p ) stub\n", machine, dbgstr_tag(id), dll );
148 
149  return TRUE;
150 }
#define TRUE
Definition: types.h:120
const char * dbgstr_tag(DWORD) DECLSPEC_HIDDEN
Definition: profile.c:58
static HMODULE dll
Definition: str.c:188
#define FIXME(fmt,...)
Definition: debug.h:110
static const char machine[]
Definition: profile.c:104

◆ SelectCMM()

BOOL WINAPI SelectCMM ( DWORD  id)

Definition at line 152 of file stub.c.

153 {
154  FIXME( "(%s) stub\n", dbgstr_tag(id) );
155 
156  return TRUE;
157 }
#define TRUE
Definition: types.h:120
const char * dbgstr_tag(DWORD) DECLSPEC_HIDDEN
Definition: profile.c:58
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SetColorProfileElement()

BOOL WINAPI SetColorProfileElement ( HPROFILE  ,
TAGTYPE  ,
DWORD  ,
PDWORD  ,
PVOID   
)

Definition at line 1225 of file profile.c.

1227 {
1228  BOOL ret = FALSE;
1229 #ifdef HAVE_LCMS2
1230  struct profile *profile = grab_profile( handle );
1231 
1232  TRACE( "( %p, 0x%08x, %d, %p, %p )\n", handle, type, offset, size, buffer );
1233 
1234  if (!profile) return FALSE;
1235 
1236  if (!size || !buffer || !(profile->access & PROFILE_READWRITE))
1237  {
1238  release_profile( profile );
1239  return FALSE;
1240  }
1241  ret = set_tag_data( profile, type, offset, buffer, size );
1242  release_profile( profile );
1243 #endif /* HAVE_LCMS2 */
1244  return ret;
1245 }
GLintptr offset
Definition: glext.h:5920
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint buffer
Definition: glext.h:5915
unsigned int BOOL
Definition: ntddk_ex.h:94
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
int ret
#define PROFILE_READWRITE
Definition: icm.h:421
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs().

◆ SetColorProfileElementReference()

BOOL WINAPI SetColorProfileElementReference ( HPROFILE  ,
TAGTYPE  ,
TAGTYPE   
)

Definition at line 159 of file stub.c.

160 {
161  FIXME( "( %p, 0x%08x, 0x%08x ) stub\n", profile, type, ref );
162 
163  return TRUE;
164 }
#define TRUE
Definition: types.h:120
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
Definition: send.c:47
#define FIXME(fmt,...)
Definition: debug.h:110
#define profile
Definition: kernel32.h:12

◆ SetColorProfileElementSize()

BOOL WINAPI SetColorProfileElementSize ( HPROFILE  ,
TAGTYPE  ,
DWORD   
)

Definition at line 166 of file stub.c.

167 {
168  FIXME( "( %p, 0x%08x, 0x%08x ) stub\n", profile, type, size );
169 
170  return FALSE;
171 }
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define FIXME(fmt,...)
Definition: debug.h:110
GLsizeiptr size
Definition: glext.h:5919
#define profile
Definition: kernel32.h:12

◆ SetColorProfileHeader()

BOOL WINAPI SetColorProfileHeader ( HPROFILE  ,
PPROFILEHEADER   
)

Definition at line 1260 of file profile.c.

1261 {
1262 #ifdef HAVE_LCMS2
1263  struct profile *profile = grab_profile( handle );
1264 
1265  TRACE( "( %p, %p )\n", handle, header );
1266 
1267  if (!profile) return FALSE;
1268 
1269  if (!header || !(profile->access & PROFILE_READWRITE))
1270  {
1271  release_profile( profile );
1272  return FALSE;
1273  }
1274  set_profile_header( profile, header );
1275  release_profile( profile );
1276  return TRUE;
1277 
1278 #else
1279  return FALSE;
1280 #endif /* HAVE_LCMS2 */
1281 }
#define TRUE
Definition: types.h:120
#define TRACE(s)
Definition: solgame.cpp:4
#define PROFILE_READWRITE
Definition: icm.h:421
#define profile
Definition: kernel32.h:12
struct CFHEADER header
Definition: fdi.c:101

Referenced by init_function_ptrs().

◆ SetStandardColorSpaceProfileA()

BOOL WINAPI SetStandardColorSpaceProfileA ( PCSTR  ,
DWORD  ,
PSTR   
)

Definition at line 173 of file stub.c.

174 {
175  FIXME( "( 0x%08x, %p ) stub\n", id, profile );
176  return TRUE;
177 }
#define TRUE
Definition: types.h:120
#define FIXME(fmt,...)
Definition: debug.h:110
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs().

◆ SetStandardColorSpaceProfileW()

BOOL WINAPI SetStandardColorSpaceProfileW ( PCWSTR  ,
DWORD  ,
PWSTR   
)

Definition at line 179 of file stub.c.

180 {
181  FIXME( "( 0x%08x, %p ) stub\n", id, profile );
182  return TRUE;
183 }
#define TRUE
Definition: types.h:120
#define FIXME(fmt,...)
Definition: debug.h:110
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs().

◆ SetupColorMatchingA()

BOOL WINAPI SetupColorMatchingA ( PCOLORMATCHSETUPA  )

◆ SetupColorMatchingW()

BOOL WINAPI SetupColorMatchingW ( PCOLORMATCHSETUPW  )

◆ SpoolerCopyFileEvent()

BOOL WINAPI SpoolerCopyFileEvent ( LPWSTR  ,
LPWSTR  ,
DWORD   
)

Definition at line 185 of file stub.c.

186 {
187  FIXME( "( %s, %s, 0x%08x ) stub\n", debugstr_w(printer), debugstr_w(key), event );
188  return TRUE;
189 }
#define TRUE
Definition: types.h:120
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
struct _cl_event * event
Definition: glext.h:7739
Definition: path.c:42

◆ TranslateBitmapBits()

BOOL WINAPI TranslateBitmapBits ( HTRANSFORM  ,
PVOID  ,
BMFORMAT  ,
DWORD  ,
DWORD  ,
DWORD  ,
PVOID  ,
BMFORMAT  ,
DWORD  ,
PBMCALLBACKFN  ,
ULONG   
)

Definition at line 296 of file transform.c.

299 {
300  BOOL ret = FALSE;
301 #ifdef HAVE_LCMS2
302  struct transform *transform = grab_transform( handle );
303 
304  TRACE( "( %p, %p, 0x%08x, 0x%08x, 0x%08x, 0x%08x, %p, 0x%08x, 0x%08x, %p, 0x%08x )\n",
305  handle, srcbits, input, width, height, inputstride, destbits, output,
306  outputstride, callback, data );
307 
308  if (!transform) return FALSE;
309  if (!cmsChangeBuffersFormat( transform->cmstransform, from_bmformat(input), from_bmformat(output) ))
310  return FALSE;
311 
312  cmsDoTransform( transform->cmstransform, srcbits, destbits, width * height );
313  release_transform( transform );
314  ret = TRUE;
315 
316 #endif /* HAVE_LCMS2 */
317  return ret;
318 }
GLint GLint GLsizei width
Definition: gl.h:1546
static UCHAR ULONG UCHAR ULONG UCHAR * output
Definition: bcrypt.c:29
unsigned int BOOL
Definition: ntddk_ex.h:94
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44
#define TRACE(s)
Definition: solgame.cpp:4
#define TRUE
Definition: transform.c:44
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
int ret
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLenum GLenum GLenum input
Definition: glext.h:9031
GLuint GLenum GLenum transform
Definition: glext.h:9407

◆ TranslateColors()

BOOL WINAPI TranslateColors ( HTRANSFORM  ,
PCOLOR  ,
DWORD  ,
COLORTYPE  ,
PCOLOR  ,
COLORTYPE   
)

Definition at line 337 of file transform.c.

339 {
340 #ifdef HAVE_LCMS2
341  BOOL ret = TRUE;
342  struct transform *transform = grab_transform( handle );
343  cmsHTRANSFORM xfrm;
344  unsigned int i;
345 
346  TRACE( "( %p, %p, %d, %d, %p, %d )\n", handle, in, count, input_type, out, output_type );
347 
348  if (!transform) return FALSE;
349 
350  xfrm = transform->cmstransform;
351  if (!cmsChangeBuffersFormat( xfrm, from_type(input_type), from_type(output_type) ))
352  return FALSE;
353 
354  switch (input_type)
355  {
356  case COLOR_RGB:
357  {
358  switch (output_type)
359  {
360  case COLOR_RGB: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].rgb, &out[i].rgb, 1 ); goto done;
361  case COLOR_Lab: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].rgb, &out[i].Lab, 1 ); goto done;
362  case COLOR_GRAY: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].rgb, &out[i].gray, 1 ); goto done;
363  case COLOR_CMYK: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].rgb, &out[i].cmyk, 1 ); goto done;
364  case COLOR_XYZ: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].rgb, &out[i].XYZ, 1 ); goto done;
365  default:
366  FIXME("unhandled input/output pair: %d/%d\n", input_type, output_type);
367  ret = FALSE;
368  break;
369  }
370  break;
371  }
372  case COLOR_Lab:
373  {
374  switch (output_type)
375  {
376  case COLOR_RGB: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].Lab, &out[i].rgb, 1 ); goto done;
377  case COLOR_Lab: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].Lab, &out[i].Lab, 1 ); goto done;
378  case COLOR_GRAY: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].Lab, &out[i].gray, 1 ); goto done;
379  case COLOR_CMYK: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].Lab, &out[i].cmyk, 1 ); goto done;
380  case COLOR_XYZ: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].Lab, &out[i].XYZ, 1 ); goto done;
381  default:
382  FIXME("unhandled input/output pair: %d/%d\n", input_type, output_type);
383  ret = FALSE;
384  break;
385  }
386  break;
387  }
388  case COLOR_GRAY:
389  {
390  switch (output_type)
391  {
392  case COLOR_RGB: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].gray, &out[i].rgb, 1 ); goto done;
393  case COLOR_Lab: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].gray, &out[i].Lab, 1 ); goto done;
394  case COLOR_GRAY: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].gray, &out[i].gray, 1 ); goto done;
395  case COLOR_CMYK: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].gray, &out[i].cmyk, 1 ); goto done;
396  case COLOR_XYZ: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].gray, &out[i].XYZ, 1 ); goto done;
397  default:
398  FIXME("unhandled input/output pair: %d/%d\n", input_type, output_type);
399  ret = FALSE;
400  break;
401  }
402  break;
403  }
404  case COLOR_CMYK:
405  {
406  switch (output_type)
407  {
408  case COLOR_RGB: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].cmyk, &out[i].rgb, 1 ); goto done;
409  case COLOR_Lab: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].cmyk, &out[i].Lab, 1 ); goto done;
410  case COLOR_GRAY: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].cmyk, &out[i].gray, 1 ); goto done;
411  case COLOR_CMYK: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].cmyk, &out[i].cmyk, 1 ); goto done;
412  case COLOR_XYZ: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].cmyk, &out[i].XYZ, 1 ); goto done;
413  default:
414  FIXME("unhandled input/output pair: %d/%d\n", input_type, output_type);
415  ret = FALSE;
416  break;
417  }
418  break;
419  }
420  case COLOR_XYZ:
421  {
422  switch (output_type)
423  {
424  case COLOR_RGB: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].XYZ, &out[i].rgb, 1 ); goto done;
425  case COLOR_Lab: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].XYZ, &out[i].Lab, 1 ); goto done;
426  case COLOR_GRAY: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].XYZ, &out[i].gray, 1 ); goto done;
427  case COLOR_CMYK: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].XYZ, &out[i].cmyk, 1 ); goto done;
428  case COLOR_XYZ: for (i = 0; i < count; i++) cmsDoTransform( xfrm, &in[i].XYZ, &out[i].XYZ, 1 ); goto done;
429  default:
430  FIXME("unhandled input/output pair: %d/%d\n", input_type, output_type);
431  ret = FALSE;
432  break;
433  }
434  break;
435  }
436  default:
437  FIXME("unhandled input/output pair: %d/%d\n", input_type, output_type);
438  ret = FALSE;
439  break;
440  }
441 
442 done:
443  release_transform( transform );
444  return ret;
445 
446 #else /* HAVE_LCMS2 */
447  return FALSE;
448 #endif /* HAVE_LCMS2 */
449 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
#define FIXME(fmt,...)
Definition: debug.h:110
Definition: icm.h:125
#define TRACE(s)
Definition: solgame.cpp:4
#define TRUE
Definition: transform.c:44
static FILE * out
Definition: regtests2xml.c:44
Definition: icm.h:128
int ret
output_type
Definition: stylesheet.c:55
GLuint in
Definition: glext.h:9616
_In_ ULONG _In_ ULONG rgb
Definition: winddi.h:3520
GLuint GLenum GLenum transform
Definition: glext.h:9407
Definition: icm.h:126

◆ UninstallColorProfileA()

BOOL WINAPI UninstallColorProfileA ( PCSTR  ,
PCSTR  ,
BOOL   
)

Definition at line 1288 of file profile.c.

1289 {
1290  UINT len;
1291  LPWSTR profileW;
1292  BOOL ret = FALSE;
1293 
1294  TRACE( "( %s, %x )\n", debugstr_a(profile), delete );
1295 
1296  if (machine || !profile) return FALSE;
1297 
1298  len = MultiByteToWideChar( CP_ACP, 0, profile, -1, NULL, 0 );
1299  profileW = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
1300 
1301  if (profileW)
1302  {
1303  MultiByteToWideChar( CP_ACP, 0, profile, -1, profileW, len );
1304 
1305  ret = UninstallColorProfileW( NULL, profileW , delete );
1306 
1307  HeapFree( GetProcessHeap(), 0, profileW );
1308  }
1309  return ret;
1310 }
#define CP_ACP
Definition: compat.h:99
BOOL WINAPI UninstallColorProfileW(PCWSTR machine, PCWSTR profile, BOOL delete)
Definition: profile.c:1327
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
int ret
static const char machine[]
Definition: profile.c:104
GLenum GLsizei len
Definition: glext.h:6722
unsigned int UINT
Definition: ndis.h:50
#define MultiByteToWideChar
Definition: compat.h:100
#define profile
Definition: kernel32.h:12
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define HeapFree(x, y, z)
Definition: compat.h:402

Referenced by init_function_ptrs().

◆ UninstallColorProfileW()

BOOL WINAPI UninstallColorProfileW ( PCWSTR  ,
PCWSTR  ,
BOOL   
)

Definition at line 1327 of file profile.c.

1328 {
1329  TRACE( "( %s, %x )\n", debugstr_w(profile), delete );
1330 
1331  if (machine || !profile) return FALSE;
1332 
1333  if (delete) return DeleteFileW( profile );
1334 
1335  return TRUE;
1336 }
#define TRUE
Definition: types.h:120
#define debugstr_w
Definition: kernel32.h:32
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
#define TRACE(s)
Definition: solgame.cpp:4
static const char machine[]
Definition: profile.c:104
#define profile
Definition: kernel32.h:12

Referenced by init_function_ptrs(), and UninstallColorProfileA().

◆ UnregisterCMMA()

BOOL WINAPI UnregisterCMMA ( PCSTR  ,
DWORD   
)

Definition at line 191 of file stub.c.

192 {
193  FIXME( "( %p, %s ) stub\n", machine, dbgstr_tag(id) );
194 
195  return TRUE;
196 }
#define TRUE
Definition: types.h:120
const char * dbgstr_tag(DWORD) DECLSPEC_HIDDEN
Definition: profile.c:58
#define FIXME(fmt,...)
Definition: debug.h:110
static const char machine[]
Definition: profile.c:104

◆ UnregisterCMMW()

BOOL WINAPI UnregisterCMMW ( PCWSTR  ,
DWORD   
)

Definition at line 198 of file stub.c.

199 {
200  FIXME( "( %p, %s ) stub\n", machine, dbgstr_tag(id) );
201 
202  return TRUE;
203 }
#define TRUE
Definition: types.h:120
const char * dbgstr_tag(DWORD) DECLSPEC_HIDDEN
Definition: profile.c:58
#define FIXME(fmt,...)
Definition: debug.h:110
static const char machine[]
Definition: profile.c:104

◆ WcsEnumColorProfilesSize()

BOOL WINAPI WcsEnumColorProfilesSize ( WCS_PROFILE_MANAGEMENT_SCOPE  ,
ENUMTYPEW ,
DWORD  
)

Definition at line 1548 of file profile.c.

1549 {
1550  FIXME( "%d %p %p\n", scope, record, size );
1552  return FALSE;
1553 }
#define FIXME(fmt,...)
Definition: debug.h:110
GLsizeiptr size
Definition: glext.h:5919
#define SetLastError(x)
Definition: compat.h:417
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:92

◆ WcsGetUsePerUserProfiles()

BOOL WINAPI WcsGetUsePerUserProfiles ( const WCHAR ,
DWORD  ,
BOOL  
)

Definition at line 1538 of file profile.c.

1539 {
1540  FIXME( "%s %s %p\n", debugstr_w(name), dbgstr_tag(class), use_per_user_profile );
1542  return FALSE;
1543 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define SetLastError(x)
Definition: compat.h:417
const char * dbgstr_tag(DWORD tag)
Definition: profile.c:58
Definition: name.c:36
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:92

◆ WcsOpenColorProfileA()

HPROFILE WINAPI WcsOpenColorProfileA ( PROFILE ,
PROFILE ,
PROFILE ,
DWORD  ,
DWORD  ,
DWORD  ,
DWORD   
)

Definition at line 1558 of file profile.c.

1560 {
1561  PROFILE cdmW, campW = {0}, gmmpW = {0};
1562  HPROFILE ret = NULL;
1563 
1564  TRACE( "%p, %p, %p, %08x, %08x, %08x, %08x\n", cdm, camp, gmmp, access, sharing, creation, flags );
1565 
1566  if (!cdm || !profile_AtoW( cdm, &cdmW )) return NULL;
1567  if (camp && !profile_AtoW( camp, &campW )) goto done;
1568  if (gmmp && !profile_AtoW( gmmp, &gmmpW )) goto done;
1569 
1570  ret = WcsOpenColorProfileW( &cdmW, &campW, &gmmpW, access, sharing, creation, flags );
1571 
1572 done:
1573  HeapFree( GetProcessHeap(), 0, cdmW.pProfileData );
1574  HeapFree( GetProcessHeap(), 0, campW.pProfileData );
1575  HeapFree( GetProcessHeap(), 0, gmmpW.pProfileData );
1576  return ret;
1577 }
static ULONG POBJECT_ATTRIBUTES PIO_STATUS_BLOCK ULONG sharing
Definition: pipe.c:68
HPROFILE WINAPI WcsOpenColorProfileW(PROFILE *cdm, PROFILE *camp, PROFILE *gmmp, DWORD access, DWORD sharing, DWORD creation, DWORD flags)
Definition: profile.c:1582
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
GLbitfield flags
Definition: glext.h:7161
int ret
static BOOL profile_AtoW(const PROFILE *in, PROFILE *out)
Definition: profile.c:1338
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
#define HeapFree(x, y, z)
Definition: compat.h:402

◆ WcsOpenColorProfileW()

HPROFILE WINAPI WcsOpenColorProfileW ( PROFILE ,
PROFILE ,
PROFILE ,
DWORD  ,
DWORD  ,
DWORD  ,
DWORD   
)

Definition at line 1582 of file profile.c.

1584 {
1585  TRACE( "%p, %p, %p, %08x, %08x, %08x, %08x\n", cdm, camp, gmmp, access, sharing, creation, flags );
1586  FIXME("no support for WCS profiles\n" );
1587 
1588  return OpenColorProfileW( cdm, access, sharing, creation );
1589 }
static ULONG POBJECT_ATTRIBUTES PIO_STATUS_BLOCK ULONG sharing
Definition: pipe.c:68
HPROFILE WINAPI OpenColorProfileW(PPROFILE profile, DWORD access, DWORD sharing, DWORD creation)
Definition: profile.c:1396
#define FIXME(fmt,...)
Definition: debug.h:110
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866

Referenced by WcsOpenColorProfileA().

Variable Documentation

◆ LPARAM

typedef LPARAM

Definition at line 292 of file icm.h.