ReactOS 0.4.16-dev-125-g798ea90
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(WINAPIPCMSCALLBACKA) (struct _tagCOLORMATCHSETUPA *, LPARAM)
 
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

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)
 

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

◆ PCMSCALLBACKA

typedef BOOL(WINAPI * PCMSCALLBACKA) (struct _tagCOLORMATCHSETUPA *, LPARAM)

Definition at line 292 of file icm.h.

◆ 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,
153 BM_XYZTRIPLETS = 0x201,
161 BM_GRAY,
162 BM_xXYZQUADS = 0x301,
167 BM_10b_XYZ = 0x401,
172 BM_16b_XYZ = 0x501,
enum BMFORMAT * LPBMFORMAT
BMFORMAT
Definition: icm.h:139
@ BM_NAMED_INDEX
Definition: icm.h:171
@ BM_565RGB
Definition: icm.h:141
@ BM_LabTRIPLETS
Definition: icm.h:155
@ BM_8CHANNEL
Definition: icm.h:160
@ BM_10b_Yxy
Definition: icm.h:168
@ BM_RGBTRIPLETS
Definition: icm.h:142
@ BM_16b_G3CH
Definition: icm.h:175
@ BM_7CHANNEL
Definition: icm.h:159
@ BM_x555Yxz
Definition: icm.h:150
@ BM_10b_G3CH
Definition: icm.h:170
@ BM_xYxyQUADS
Definition: icm.h:163
@ BM_16b_XYZ
Definition: icm.h:172
@ BM_x555G3CH
Definition: icm.h:152
@ BM_6CHANNEL
Definition: icm.h:158
@ BM_BGRTRIPLETS
Definition: icm.h:143
@ BM_xG3CHQUADS
Definition: icm.h:165
@ BM_XYZTRIPLETS
Definition: icm.h:153
@ BM_xLabQUADS
Definition: icm.h:164
@ BM_xXYZQUADS
Definition: icm.h:162
@ BM_16b_GRAY
Definition: icm.h:176
@ BM_16b_Yxy
Definition: icm.h:173
@ BM_10b_Lab
Definition: icm.h:169
@ BM_CMYKQUADS
Definition: icm.h:148
@ BM_x555RGB
Definition: icm.h:140
@ BM_5CHANNEL
Definition: icm.h:157
@ BM_xBGRQUADS
Definition: icm.h:147
@ BM_16b_RGB
Definition: icm.h:146
@ BM_G3CHTRIPLETS
Definition: icm.h:156
@ BM_x555Lab
Definition: icm.h:151
@ BM_10b_RGB
Definition: icm.h:145
@ BM_16b_Lab
Definition: icm.h:174
@ BM_xRGBQUADS
Definition: icm.h:144
@ BM_KYMCQUADS
Definition: icm.h:166
@ BM_x555XYZ
Definition: icm.h:149
@ BM_10b_XYZ
Definition: icm.h:167
@ BM_GRAY
Definition: icm.h:161
@ BM_YxyTRIPLETS
Definition: icm.h:154
enum BMFORMAT * PBMFORMAT

◆ 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,
COLORTYPE
Definition: icm.h:123
@ COLOR_3_CHANNEL
Definition: icm.h:129
@ COLOR_5_CHANNEL
Definition: icm.h:131
@ COLOR_NAMED
Definition: icm.h:135
@ COLOR_XYZ
Definition: icm.h:126
@ COLOR_8_CHANNEL
Definition: icm.h:134
@ COLOR_7_CHANNEL
Definition: icm.h:133
@ COLOR_CMYK
Definition: icm.h:130
@ COLOR_GRAY
Definition: icm.h:124
@ COLOR_Yxy
Definition: icm.h:127
@ COLOR_6_CHANNEL
Definition: icm.h:132
@ COLOR_Lab
Definition: icm.h:128
@ COLOR_RGB
Definition: icm.h:125
enum COLORTYPE * PCOLORTYPE
enum COLORTYPE * LPCOLORTYPE

◆ 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.

180{
WCS_PROFILE_MANAGEMENT_SCOPE
Definition: icm.h:180
@ WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER
Definition: icm.h:182
@ WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE
Definition: icm.h:181

Function Documentation

◆ AssociateColorProfileWithDeviceA()

BOOL WINAPI AssociateColorProfileWithDeviceA ( PCSTR  machine,
PCSTR  profile,
PCSTR  device 
)

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}
static const WCHAR deviceW[]
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
#define GetProcessHeap()
Definition: compat.h:736
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:109
#define SetLastError(x)
Definition: compat.h:752
#define HeapAlloc
Definition: compat.h:733
#define ERROR_NOT_SUPPORTED
Definition: compat.h:100
#define HeapFree(x, y, z)
Definition: compat.h:735
#define MultiByteToWideChar
Definition: compat.h:110
BOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR machine, PCWSTR profile, PCWSTR device)
Definition: profile.c:154
unsigned int BOOL
Definition: ntddk_ex.h:94
GLenum GLsizei len
Definition: glext.h:6722
#define debugstr_a
Definition: kernel32.h:31
#define profile
Definition: kernel32.h:12
static const char machine[]
Definition: profile.c:104
#define TRACE(s)
Definition: solgame.cpp:4
Definition: devices.h:37
int ret
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by init_function_ptrs().

◆ AssociateColorProfileWithDeviceW()

BOOL WINAPI AssociateColorProfileWithDeviceW ( PCWSTR  machine,
PCWSTR  profile,
PCWSTR  device 
)

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}
static BOOL set_profile_device_key(PCWSTR file, const BYTE *value, DWORD size)
Definition: profile.c:105
#define debugstr_w
Definition: kernel32.h:32
unsigned char BYTE
Definition: xxhash.c:193

Referenced by AssociateColorProfileWithDeviceA().

◆ CheckBitmapBits()

BOOL WINAPI CheckBitmapBits ( HTRANSFORM  transform,
PVOID  srcbits,
BMFORMAT  format,
DWORD  width,
DWORD  height,
DWORD  stride,
PBYTE  result,
PBMCALLBACKFN  callback,
LPARAM  data 
)

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}
#define FIXME(fmt,...)
Definition: precomp.h:53
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLuint GLenum GLenum transform
Definition: glext.h:9407
GLsizei stride
Definition: glext.h:5848
GLuint64EXT * result
Definition: glext.h:11304
static IPrintDialogCallback callback
Definition: printdlg.c:326
Definition: format.c:58

◆ CheckColors()

BOOL WINAPI CheckColors ( HTRANSFORM  transform,
PCOLOR  colors,
DWORD  number,
COLORTYPE  type,
PBYTE  result 
)

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 unsigned int number
Definition: dsound.c:1479

◆ CloseColorProfile()

BOOL WINAPI CloseColorProfile ( HPROFILE  profile)

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}

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

◆ ConvertColorNameToIndex()

BOOL WINAPI ConvertColorNameToIndex ( HPROFILE  profile,
PCOLOR_NAME  name,
PDWORD  index,
DWORD  count 
)

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
GLuint index
Definition: glext.h:6031
Definition: name.c:39

◆ ConvertIndexToColorName()

BOOL WINAPI ConvertIndexToColorName ( HPROFILE  profile,
PDWORD  index,
PCOLOR_NAME  name,
DWORD  count 
)

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}

◆ CreateColorTransformA()

HTRANSFORM WINAPI CreateColorTransformA ( LPLOGCOLORSPACEA  space,
HPROFILE  dest,
HPROFILE  target,
DWORD  flags 
)

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
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
GLenum target
Definition: glext.h:7315
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static char * dest
Definition: rtl.c:135
static const WCHAR spaceW[]
Definition: mxwriter.c:44
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
struct tagLOGCOLORSPACEW LOGCOLORSPACEW

◆ CreateColorTransformW()

HTRANSFORM WINAPI CreateColorTransformW ( LPLOGCOLORSPACEW  space,
HPROFILE  dest,
HPROFILE  target,
DWORD  flags 
)

Definition at line 128 of file transform.c.

130{
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}
GLenum GLenum dst
Definition: glext.h:6340
#define INTENT_ABSOLUTE_COLORIMETRIC
Definition: icm.h:191
#define INTENT_PERCEPTUAL
Definition: icm.h:188
const char * dbgstr_tag(DWORD) DECLSPEC_HIDDEN
Definition: profile.c:58

Referenced by CreateColorTransformA().

◆ CreateDeviceLinkProfile()

BOOL WINAPI CreateDeviceLinkProfile ( PHPROFILE  profiles,
DWORD  nprofiles,
PDWORD  intents,
DWORD  nintents,
DWORD  flags,
PBYTE data,
DWORD  index 
)

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}

◆ CreateMultiProfileTransform()

HTRANSFORM WINAPI CreateMultiProfileTransform ( PHPROFILE  profiles,
DWORD  nprofiles,
PDWORD  intents,
DWORD  nintents,
DWORD  flags,
DWORD  cmm 
)

Definition at line 196 of file transform.c.

198{
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}
static const char profile1[]
Definition: profile.c:116

Referenced by init_function_ptrs().

◆ CreateProfileFromLogColorSpaceA()

BOOL WINAPI CreateProfileFromLogColorSpaceA ( LPLOGCOLORSPACEA  space,
PBYTE buffer 
)

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

◆ CreateProfileFromLogColorSpaceW()

BOOL WINAPI CreateProfileFromLogColorSpaceW ( LPLOGCOLORSPACEW  space,
PBYTE buffer 
)

Definition at line 84 of file stub.c.

85{
86 FIXME( "( %p, %p ) stub\n", space, buffer );
87
88 return FALSE;
89}

◆ DeleteColorTransform()

BOOL WINAPI DeleteColorTransform ( HTRANSFORM  handle)

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}

Referenced by init_function_ptrs().

◆ DisassociateColorProfileFromDeviceA()

BOOL WINAPI DisassociateColorProfileFromDeviceA ( PCSTR  machine,
PCSTR  profile,
PCSTR  device 
)

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}
BOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR machine, PCWSTR profile, PCWSTR device)
Definition: profile.c:216

Referenced by init_function_ptrs().

◆ DisassociateColorProfileFromDeviceW()

BOOL WINAPI DisassociateColorProfileFromDeviceW ( PCWSTR  machine,
PCWSTR  profile,
PCWSTR  device 
)

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}

Referenced by DisassociateColorProfileFromDeviceA().

◆ EnumColorProfilesA()

BOOL WINAPI EnumColorProfilesA ( PCSTR  machine,
PENUMTYPEA  record,
PBYTE  buffer,
PDWORD  size,
PDWORD  number 
)

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
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 }
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 {
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 }
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
930exit:
931 for (i = 0; i < count; i++)
932 HeapFree( GetProcessHeap(), 0, profiles[i] );
933 HeapFree( GetProcessHeap(), 0, profiles );
936 FindClose( find );
937
938 return ret;
939}
#define WARN(fmt,...)
Definition: precomp.h:61
static TAGID TAGID find
Definition: db.cpp:155
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10
#define TRUE
Definition: types.h:120
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define HeapReAlloc
Definition: compat.h:734
#define MAX_PATH
Definition: compat.h:34
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
HANDLE WINAPI FindFirstFileA(IN LPCSTR lpFileName, OUT LPWIN32_FIND_DATAA lpFindFileData)
Definition: find.c:263
BOOL WINAPI FindClose(HANDLE hFindFile)
Definition: find.c:502
BOOL WINAPI FindNextFileA(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAA lpFindFileData)
Definition: find.c:336
BOOL WINAPI GetColorDirectoryA(PCSTR machine, PSTR buffer, PDWORD size)
Definition: profile.c:239
static LPWSTR strdupW(LPCSTR str)
Definition: profile.c:46
static BOOL match_profile(PENUMTYPEW rec, PPROFILEHEADER hdr)
Definition: profile.c:712
static BOOL header_from_file(LPCWSTR file, PPROFILEHEADER header)
Definition: profile.c:669
static const WCHAR fileW[]
Definition: url.c:111
unsigned char
Definition: typeof.h:29
char ** glob(const char *v)
Definition: fake.c:36
GLsizeiptr size
Definition: glext.h:5919
GLfloat GLfloat p
Definition: glext.h:8902
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
#define ENUM_TYPE_VERSION
Definition: icm.h:221
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define exit(n)
Definition: config.h:202
Definition: match.c:28
PCWSTR pDeviceName
Definition: icm.h:252

Referenced by init_function_ptrs().

◆ EnumColorProfilesW()

BOOL WINAPI EnumColorProfilesW ( PCWSTR  machine,
PENUMTYPEW  record,
PBYTE  buffer,
PDWORD  size,
PDWORD  number 
)

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
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
1060exit:
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}
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:320
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:382
BOOL WINAPI GetColorDirectoryW(PCWSTR machine, PWSTR buffer, PDWORD size)
Definition: profile.c:287
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274

Referenced by init_function_ptrs().

◆ GenerateCopyFilePaths()

DWORD WINAPI GenerateCopyFilePaths ( LPCWSTR  printer,
LPCWSTR  directory,
LPBYTE  clientinfo,
DWORD  level,
LPWSTR  sourcedir,
LPDWORD  sourcedirsize,
LPWSTR  targetdir,
LPDWORD  targetdirsize,
DWORD  flags 
)

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}
#define ERROR_SUCCESS
Definition: deptool.c:10
GLint level
Definition: gl.h:1546

◆ GetCMMInfo()

DWORD WINAPI GetCMMInfo ( HTRANSFORM  transform,
DWORD  info 
)

Definition at line 101 of file stub.c.

102{
103 FIXME( "( %p, 0x%08x ) stub\n", transform, info );
104
105 return 0;
106}

◆ GetColorDirectoryA()

BOOL WINAPI GetColorDirectoryA ( PCSTR  machine,
PSTR  buffer,
PDWORD  size 
)

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:111
static const WCHAR sizeW[]
Definition: editor.c:79
int32_t INT
Definition: typedefs.h:58
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by EnumColorProfilesA(), and init_function_ptrs().

◆ GetColorDirectoryW()

BOOL WINAPI GetColorDirectoryW ( PCWSTR  machine,
PWSTR  buffer,
PDWORD  size 
)

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 ARRAY_SIZE(A)
Definition: main.h:20
#define ERROR_MORE_DATA
Definition: dderror.h:13
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2313

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

◆ GetColorProfileElement()

BOOL WINAPI GetColorProfileElement ( HPROFILE  handle,
TAGTYPE  type,
DWORD  offset,
PDWORD  size,
PVOID  buffer,
PBOOL  ref 
)

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
Definition: send.c:48

Referenced by init_function_ptrs().

◆ GetColorProfileElementTag()

BOOL WINAPI GetColorProfileElementTag ( HPROFILE  handle,
DWORD  index,
PTAGTYPE  type 
)

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}

Referenced by init_function_ptrs().

◆ GetColorProfileFromHandle()

BOOL WINAPI GetColorProfileFromHandle ( HPROFILE  handle,
PBYTE  buffer,
PDWORD  size 
)

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}

Referenced by init_function_ptrs().

◆ GetColorProfileHeader()

BOOL WINAPI GetColorProfileHeader ( HPROFILE  handle,
PPROFILEHEADER  header 
)

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}

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

◆ GetCountColorProfileElements()

BOOL WINAPI GetCountColorProfileElements ( HPROFILE  handle,
PDWORD  count 
)

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}

Referenced by init_function_ptrs().

◆ GetNamedProfileInfo()

BOOL WINAPI GetNamedProfileInfo ( HPROFILE  profile,
PNAMED_PROFILE_INFO  info 
)

Definition at line 108 of file stub.c.

109{
110 FIXME( "( %p, %p ) stub\n", profile, info );
111
112 return FALSE;
113}

◆ GetPS2ColorRenderingDictionary()

BOOL WINAPI GetPS2ColorRenderingDictionary ( HPROFILE  profile,
DWORD  intent,
PBYTE  buffer,
PDWORD  size,
PBOOL  binary 
)

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}
const GLuint GLenum const GLvoid * binary
Definition: glext.h:7538

◆ GetPS2ColorRenderingIntent()

BOOL WINAPI GetPS2ColorRenderingIntent ( HPROFILE  profile,
DWORD  intent,
PBYTE  buffer,
PDWORD  size 
)

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}

◆ GetPS2ColorSpaceArray()

BOOL WINAPI GetPS2ColorSpaceArray ( HPROFILE  profile,
DWORD  intent,
DWORD  type,
PBYTE  buffer,
PDWORD  size,
PBOOL  binary 
)

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}

◆ GetStandardColorSpaceProfileA()

BOOL WINAPI GetStandardColorSpaceProfileA ( PCSTR  machine,
DWORD  id,
PSTR  profile,
PDWORD  size 
)

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}
BOOL WINAPI GetStandardColorSpaceProfileW(PCWSTR machine, DWORD id, PWSTR profile, PDWORD size)
Definition: profile.c:615

Referenced by init_function_ptrs().

◆ GetStandardColorSpaceProfileW()

BOOL WINAPI GetStandardColorSpaceProfileW ( PCWSTR  machine,
DWORD  id,
PWSTR  profile,
PDWORD  size 
)

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_FILE_NOT_FOUND
Definition: disk.h:79
#define LCS_WINDOWS_COLOR_SPACE
Definition: wingdi.h:1106
#define LCS_sRGB
Definition: wingdi.h:1105

Referenced by GetStandardColorSpaceProfileA(), and init_function_ptrs().

◆ InstallColorProfileA()

BOOL WINAPI InstallColorProfileA ( PCSTR  machine,
PCSTR  profile 
)

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}
BOOL WINAPI InstallColorProfileW(PCWSTR machine, PCWSTR profile)
Definition: profile.c:1111
unsigned int UINT
Definition: ndis.h:50

Referenced by init_function_ptrs().

◆ InstallColorProfileW()

BOOL WINAPI InstallColorProfileW ( PCWSTR  machine,
PCWSTR  profile 
)

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}
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
Definition: copy.c:439
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4242
static void basename(LPCWSTR path, LPWSTR name)
Definition: profile.c:38

Referenced by init_function_ptrs(), and InstallColorProfileA().

◆ IsColorProfileTagPresent()

BOOL WINAPI IsColorProfileTagPresent ( HPROFILE  handle,
TAGTYPE  type,
PBOOL  present 
)

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}

Referenced by init_function_ptrs().

◆ IsColorProfileValid()

BOOL WINAPI IsColorProfileValid ( HPROFILE  handle,
PBOOL  valid 
)

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}
BOOLEAN valid

◆ OpenColorProfileA()

HPROFILE WINAPI OpenColorProfileA ( PPROFILE  profile,
DWORD  access,
DWORD  sharing,
DWORD  creation 
)

Definition at line 1355 of file profile.c.

1356{
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}
HPROFILE WINAPI OpenColorProfileW(PPROFILE profile, DWORD access, DWORD sharing, DWORD creation)
Definition: profile.c:1396
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_MEMBUFFER
Definition: icm.h:418
static ULONG POBJECT_ATTRIBUTES PIO_STATUS_BLOCK ULONG sharing
Definition: pipe.c:70

Referenced by init_function_ptrs().

◆ OpenColorProfileW()

HPROFILE WINAPI OpenColorProfileW ( PPROFILE  profile,
DWORD  access,
DWORD  sharing,
DWORD  creation 
)

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 }
1458 {
1459 ERR( "Unable to retrieve size of color profile\n" );
1461 return NULL;
1462 }
1463 if (!(data = HeapAlloc( GetProcessHeap(), 0, size )))
1464 {
1465 ERR( "Unable to allocate memory for color profile\n" );
1467 return NULL;
1468 }
1469 if (!ReadFile( handle, data, size, &read, NULL ) || read != size)
1470 {
1471 ERR( "Unable to read color profile\n" );
1472
1474 HeapFree( GetProcessHeap(), 0, data );
1475 return NULL;
1476 }
1477 if (!(cmsprofile = cmsOpenProfileFromMem( data, size )))
1478 {
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 }
1506
1507#endif /* HAVE_LCMS2 */
1508 return NULL;
1509}
#define read
Definition: acwin.h:96
#define ERR(fmt,...)
Definition: precomp.h:57
#define CloseHandle
Definition: compat.h:739
#define ReadFile(a, b, c, d, e)
Definition: compat.h:742
#define GENERIC_READ
Definition: compat.h:135
#define CreateFileW
Definition: compat.h:741
#define FILE_SHARE_READ
Definition: compat.h:136
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
Definition: fileinfo.c:331
BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath)
Definition: path.c:1579
#define PROFILE_READ
Definition: icm.h:420
#define PROFILE_FILENAME
Definition: icm.h:417
#define PROFILE_READWRITE
Definition: icm.h:421
#define GENERIC_WRITE
Definition: nt_native.h:90
#define PathAddBackslashW
Definition: pathcch.h:301
#define strlenW(s)
Definition: unicode.h:34
#define strcatW(d, s)
Definition: unicode.h:36
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define INVALID_FILE_SIZE
Definition: winbase.h:548

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

◆ RegisterCMMA()

BOOL WINAPI RegisterCMMA ( PCSTR  machine,
DWORD  id,
PCSTR  dll 
)

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}
static HMODULE dll
Definition: str.c:188

◆ RegisterCMMW()

BOOL WINAPI RegisterCMMW ( PCWSTR  machine,
DWORD  id,
PCWSTR  dll 
)

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}

◆ 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}

◆ SetColorProfileElement()

BOOL WINAPI SetColorProfileElement ( HPROFILE  handle,
TAGTYPE  type,
DWORD  offset,
PDWORD  size,
PVOID  buffer 
)

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}

Referenced by init_function_ptrs().

◆ SetColorProfileElementReference()

BOOL WINAPI SetColorProfileElementReference ( HPROFILE  profile,
TAGTYPE  type,
TAGTYPE  ref 
)

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}

◆ SetColorProfileElementSize()

BOOL WINAPI SetColorProfileElementSize ( HPROFILE  profile,
TAGTYPE  type,
DWORD  size 
)

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}

◆ SetColorProfileHeader()

BOOL WINAPI SetColorProfileHeader ( HPROFILE  handle,
PPROFILEHEADER  header 
)

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}

Referenced by init_function_ptrs().

◆ SetStandardColorSpaceProfileA()

BOOL WINAPI SetStandardColorSpaceProfileA ( PCSTR  machine,
DWORD  id,
PSTR  profile 
)

Definition at line 173 of file stub.c.

174{
175 FIXME( "( 0x%08x, %p ) stub\n", id, profile );
176 return TRUE;
177}

Referenced by init_function_ptrs().

◆ SetStandardColorSpaceProfileW()

BOOL WINAPI SetStandardColorSpaceProfileW ( PCWSTR  machine,
DWORD  id,
PWSTR  profile 
)

Definition at line 179 of file stub.c.

180{
181 FIXME( "( 0x%08x, %p ) stub\n", id, profile );
182 return TRUE;
183}

Referenced by init_function_ptrs().

◆ SetupColorMatchingA()

BOOL WINAPI SetupColorMatchingA ( PCOLORMATCHSETUPA  )

◆ SetupColorMatchingW()

BOOL WINAPI SetupColorMatchingW ( PCOLORMATCHSETUPW  )

◆ SpoolerCopyFileEvent()

BOOL WINAPI SpoolerCopyFileEvent ( LPWSTR  printer,
LPWSTR  key,
DWORD  event 
)

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}
struct _cl_event * event
Definition: glext.h:7739
Definition: copy.c:22

◆ TranslateBitmapBits()

BOOL WINAPI TranslateBitmapBits ( HTRANSFORM  handle,
PVOID  srcbits,
BMFORMAT  input,
DWORD  width,
DWORD  height,
DWORD  inputstride,
PVOID  destbits,
BMFORMAT  output,
DWORD  outputstride,
PBMCALLBACKFN  callback,
ULONG  data 
)

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}
GLenum GLenum GLenum input
Definition: glext.h:9031

◆ TranslateColors()

BOOL WINAPI TranslateColors ( HTRANSFORM  handle,
PCOLOR  in,
DWORD  count,
COLORTYPE  input_type,
PCOLOR  out,
COLORTYPE  output_type 
)

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
442done:
443 release_transform( transform );
444 return ret;
445
446#else /* HAVE_LCMS2 */
447 return FALSE;
448#endif /* HAVE_LCMS2 */
449}
#define COLOR_GRAY
Definition: ui.h:329
GLuint in
Definition: glext.h:9616
static FILE * out
Definition: regtests2xml.c:44
output_type
Definition: stylesheet.c:56
_In_ ULONG _In_ ULONG rgb
Definition: winddi.h:3521

◆ UninstallColorProfileA()

BOOL WINAPI UninstallColorProfileA ( PCSTR  machine,
PCSTR  profile,
BOOL  delete 
)

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}
BOOL WINAPI UninstallColorProfileW(PCWSTR machine, PCWSTR profile, BOOL delete)
Definition: profile.c:1327

Referenced by init_function_ptrs().

◆ UninstallColorProfileW()

BOOL WINAPI UninstallColorProfileW ( PCWSTR  machine,
PCWSTR  profile,
BOOL  delete 
)

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}
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39

Referenced by init_function_ptrs(), and UninstallColorProfileA().

◆ UnregisterCMMA()

BOOL WINAPI UnregisterCMMA ( PCSTR  machine,
DWORD  id 
)

Definition at line 191 of file stub.c.

192{
193 FIXME( "( %p, %s ) stub\n", machine, dbgstr_tag(id) );
194
195 return TRUE;
196}

◆ UnregisterCMMW()

BOOL WINAPI UnregisterCMMW ( PCWSTR  machine,
DWORD  id 
)

Definition at line 198 of file stub.c.

199{
200 FIXME( "( %p, %s ) stub\n", machine, dbgstr_tag(id) );
201
202 return TRUE;
203}

◆ WcsEnumColorProfilesSize()

BOOL WINAPI WcsEnumColorProfilesSize ( WCS_PROFILE_MANAGEMENT_SCOPE  scope,
ENUMTYPEW record,
DWORD size 
)

Definition at line 1548 of file profile.c.

1549{
1550 FIXME( "%d %p %p\n", scope, record, size );
1552 return FALSE;
1553}
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102

◆ WcsGetUsePerUserProfiles()

BOOL WINAPI WcsGetUsePerUserProfiles ( const WCHAR name,
DWORD  class,
BOOL use_per_user_profile 
)

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}
const char * dbgstr_tag(DWORD tag)
Definition: profile.c:58

◆ WcsOpenColorProfileA()

HPROFILE WINAPI WcsOpenColorProfileA ( PROFILE cdm,
PROFILE camp,
PROFILE gmmp,
DWORD  access,
DWORD  sharing,
DWORD  creation,
DWORD  flags 
)

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
1572done:
1573 HeapFree( GetProcessHeap(), 0, cdmW.pProfileData );
1574 HeapFree( GetProcessHeap(), 0, campW.pProfileData );
1575 HeapFree( GetProcessHeap(), 0, gmmpW.pProfileData );
1576 return ret;
1577}
HPROFILE WINAPI WcsOpenColorProfileW(PROFILE *cdm, PROFILE *camp, PROFILE *gmmp, DWORD access, DWORD sharing, DWORD creation, DWORD flags)
Definition: profile.c:1582

◆ WcsOpenColorProfileW()

HPROFILE WINAPI WcsOpenColorProfileW ( PROFILE cdm,
PROFILE camp,
PROFILE gmmp,
DWORD  access,
DWORD  sharing,
DWORD  creation,
DWORD  flags 
)

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}

Referenced by WcsOpenColorProfileA().