ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

icm.h
Go to the documentation of this file.
00001 /*
00002  * Copyright 2004 (C) Mike McCormack
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #ifndef __WINE_ICM_H
00020 #define __WINE_ICM_H
00021 
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025 
00026 typedef HANDLE HPROFILE;
00027 typedef HPROFILE *PHPROFILE;
00028 typedef HANDLE HTRANSFORM;
00029 
00030 typedef DWORD TAGTYPE, *PTAGTYPE, *LPTAGTYPE;
00031 
00032 typedef char COLOR_NAME[32];
00033 typedef COLOR_NAME *PCOLOR_NAME, *LPCOLOR_NAME;
00034 
00035 typedef struct tagNAMED_PROFILE_INFO
00036 {
00037     DWORD       dwFlags;
00038     DWORD       dwCount;
00039     DWORD       dwCountDevCoordinates;
00040     COLOR_NAME  szPrefix;
00041     COLOR_NAME  szSuffix;
00042 } NAMED_PROFILE_INFO, *PNAMED_PROFILE_INFO, *LPNAMED_PROFILE_INFO;
00043 
00044 #define MAX_COLOR_CHANNELS  8
00045 
00046 struct GRAYCOLOR
00047 {
00048     WORD    gray;
00049 };
00050 
00051 struct RGBCOLOR
00052 {
00053     WORD    red;
00054     WORD    green;
00055     WORD    blue;
00056 };
00057 
00058 struct CMYKCOLOR
00059 {
00060     WORD    cyan;
00061     WORD    magenta;
00062     WORD    yellow;
00063     WORD    black;
00064 };
00065 
00066 struct XYZCOLOR
00067 {
00068     WORD    X;
00069     WORD    Y;
00070     WORD    Z;
00071 };
00072 
00073 struct YxyCOLOR
00074 {
00075     WORD    Y;
00076     WORD    x;
00077     WORD    y;
00078 };
00079 
00080 struct LabCOLOR
00081 {
00082     WORD    L;
00083     WORD    a;
00084     WORD    b;
00085 };
00086 
00087 struct GENERIC3CHANNEL
00088 {
00089     WORD    ch1;
00090     WORD    ch2;
00091     WORD    ch3;
00092 };
00093 
00094 struct NAMEDCOLOR
00095 {
00096     DWORD   dwIndex;
00097 };
00098 
00099 struct HiFiCOLOR
00100 {
00101     BYTE    channel[MAX_COLOR_CHANNELS];
00102 };
00103 
00104 typedef union tagCOLOR
00105 {
00106     struct GRAYCOLOR        gray;
00107     struct RGBCOLOR         rgb;
00108     struct CMYKCOLOR        cmyk;
00109     struct XYZCOLOR         XYZ;
00110     struct YxyCOLOR         Yxy;
00111     struct LabCOLOR         Lab;
00112     struct GENERIC3CHANNEL  gen3ch;
00113     struct NAMEDCOLOR       named;
00114     struct HiFiCOLOR        hifi;
00115     struct
00116     {
00117         DWORD reserved1;
00118         VOID *reserved2;
00119     } DUMMYSTRUCTNAME;
00120 } COLOR, *PCOLOR, *LPCOLOR;
00121 
00122 typedef enum
00123 {
00124     COLOR_GRAY  = 1,
00125     COLOR_RGB,
00126     COLOR_XYZ,
00127     COLOR_Yxy,
00128     COLOR_Lab,
00129     COLOR_3_CHANNEL,
00130     COLOR_CMYK,
00131     COLOR_5_CHANNEL,
00132     COLOR_6_CHANNEL,
00133     COLOR_7_CHANNEL,
00134     COLOR_8_CHANNEL,
00135     COLOR_NAMED,
00136 } COLORTYPE, *PCOLORTYPE, *LPCOLORTYPE;
00137 
00138 typedef enum
00139 {
00140     BM_x555RGB     = 0x00,
00141     BM_565RGB      = 0x01,
00142     BM_RGBTRIPLETS = 0x02,
00143     BM_BGRTRIPLETS = 0x04,
00144     BM_xRGBQUADS   = 0x08,
00145     BM_10b_RGB     = 0x09,
00146     BM_16b_RGB     = 0x0a,
00147     BM_xBGRQUADS   = 0x10,
00148     BM_CMYKQUADS   = 0x20,
00149     BM_x555XYZ     = 0x101,
00150     BM_x555Yxz,
00151     BM_x555Lab,
00152     BM_x555G3CH,
00153     BM_XYZTRIPLETS = 0x201,
00154     BM_YxyTRIPLETS,
00155     BM_LabTRIPLETS,
00156     BM_G3CHTRIPLETS,
00157     BM_5CHANNEL,
00158     BM_6CHANNEL,
00159     BM_7CHANNEL,
00160     BM_8CHANNEL,
00161     BM_GRAY,
00162     BM_xXYZQUADS   = 0x301,
00163     BM_xYxyQUADS,
00164     BM_xLabQUADS,
00165     BM_xG3CHQUADS,
00166     BM_KYMCQUADS,
00167     BM_10b_XYZ     = 0x401,
00168     BM_10b_Yxy,
00169     BM_10b_Lab,
00170     BM_10b_G3CH,
00171     BM_NAMED_INDEX,
00172     BM_16b_XYZ     = 0x501,
00173     BM_16b_Yxy,
00174     BM_16b_Lab,
00175     BM_16b_G3CH,
00176     BM_16b_GRAY,
00177 } BMFORMAT, *PBMFORMAT, *LPBMFORMAT;
00178 
00179 typedef BOOL (CALLBACK *PBMCALLBACKFN)(ULONG,ULONG,LPARAM);
00180 typedef PBMCALLBACKFN LPPBMCALLBACKFN;
00181 
00182 typedef struct tagPROFILEHEADER
00183 {
00184     DWORD phSize;
00185     DWORD phCMMType;
00186     DWORD phVersion;
00187     DWORD phClass;
00188     DWORD phDataColorSpace;
00189     DWORD phConnectionSpace;
00190     DWORD phDateTime[3];
00191     DWORD phSignature;
00192     DWORD phPlatform;
00193     DWORD phProfileFlags;
00194     DWORD phManufacturer;
00195     DWORD phModel;
00196     DWORD phAttributes[2];
00197     DWORD phRenderingIntent;
00198     CIEXYZ phIlluminant;
00199     DWORD phCreator;
00200     BYTE phReserved[44];
00201 } PROFILEHEADER, *PPROFILEHEADER, *LPPROFILEHEADER;
00202 
00203 typedef struct tagPROFILE
00204 {
00205     DWORD dwType;
00206     PVOID pProfileData;
00207     DWORD cbDataSize;
00208 } PROFILE, *PPROFILE, *LPPROFILE;
00209 
00210 #define ENUM_TYPE_VERSION   0x0300
00211 
00212 typedef struct tagENUMTYPEA
00213 {
00214     DWORD   dwSize;
00215     DWORD   dwVersion;
00216     DWORD   dwFields;
00217     PCSTR   pDeviceName;
00218     DWORD   dwMediaType;
00219     DWORD   dwDitheringMode;
00220     DWORD   dwResolution[2];
00221     DWORD   dwCMMType;
00222     DWORD   dwClass;
00223     DWORD   dwDataColorSpace;
00224     DWORD   dwConnectionSpace;
00225     DWORD   dwSignature;
00226     DWORD   dwPlatform;
00227     DWORD   dwProfileFlags;
00228     DWORD   dwManufacturer;
00229     DWORD   dwModel;
00230     DWORD   dwAttributes[2];
00231     DWORD   dwRenderingIntent;
00232     DWORD   dwCreator;
00233     DWORD   dwDeviceClass;
00234 } ENUMTYPEA, *PENUMTYPEA, *LPENUMTYPEA;
00235 
00236 typedef struct tagENUMTYPEW
00237 {
00238     DWORD   dwSize;
00239     DWORD   dwVersion;
00240     DWORD   dwFields;
00241     PCWSTR  pDeviceName;
00242     DWORD   dwMediaType;
00243     DWORD   dwDitheringMode;
00244     DWORD   dwResolution[2];
00245     DWORD   dwCMMType;
00246     DWORD   dwClass;
00247     DWORD   dwDataColorSpace;
00248     DWORD   dwConnectionSpace;
00249     DWORD   dwSignature;
00250     DWORD   dwPlatform;
00251     DWORD   dwProfileFlags;
00252     DWORD   dwManufacturer;
00253     DWORD   dwModel;
00254     DWORD   dwAttributes[2];
00255     DWORD   dwRenderingIntent;
00256     DWORD   dwCreator;
00257     DWORD   dwDeviceClass;
00258 } ENUMTYPEW, *PENUMTYPEW, *LPENUMTYPEW;
00259 
00260 #define ET_DEVICENAME       0x00000001
00261 #define ET_MEDIATYPE        0x00000002
00262 #define ET_DITHERMODE       0x00000004
00263 #define ET_RESOLUTION       0x00000008
00264 #define ET_CMMTYPE          0x00000010
00265 #define ET_CLASS            0x00000020
00266 #define ET_DATACOLORSPACE   0x00000040
00267 #define ET_CONNECTIONSPACE  0x00000080
00268 #define ET_SIGNATURE        0x00000100
00269 #define ET_PLATFORM         0x00000200
00270 #define ET_PROFILEFLAGS     0x00000400
00271 #define ET_MANUFACTURER     0x00000800
00272 #define ET_MODEL            0x00001000
00273 #define ET_ATTRIBUTES       0x00002000
00274 #define ET_RENDERINGINTENT  0x00004000
00275 #define ET_CREATOR          0x00008000
00276 #define ET_DEVICECLASS      0x00010000
00277 
00278 struct _tagCOLORMATCHSETUPA;
00279 struct _tagCOLORMATCHSETUPW;
00280 
00281 typedef BOOL (WINAPI *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA*,LPARAM);
00282 typedef BOOL (WINAPI *PCMSCALLBACKW)(struct _tagCOLORMATCHSETUPW*,LPARAM);
00283 
00284 typedef struct _tagCOLORMATCHSETUPA
00285 {
00286     DWORD dwSize;
00287     DWORD dwVersion;
00288     DWORD dwFlags;
00289     HWND  hwndOwner;
00290     PCSTR pSourceName;
00291     PCSTR pDisplayName;
00292     PCSTR pPrinterName;
00293     DWORD dwRenderIntent;
00294     DWORD dwProofingIntent;
00295     PSTR  pMonitorProfile;
00296     DWORD ccMonitorProfile;
00297     PSTR  pPrinterProfile;
00298     DWORD ccPrinterProfile;
00299     PSTR  pTargetProfile;
00300     DWORD ccTargetProfile;
00301     DLGPROC lpfnHook;
00302     LPARAM lParam;
00303     PCMSCALLBACKA lpfnApplyCallback;
00304     LPARAM lParamApplyCallback;
00305 } COLORMATCHSETUPA, *PCOLORMATCHSETUPA, *LPCOLORMATCHSETUPA;
00306 
00307 typedef struct _tagCOLORMATCHSETUPW
00308 {
00309     DWORD dwSize;
00310     DWORD dwVersion;
00311     DWORD dwFlags;
00312     HWND  hwndOwner;
00313     PCWSTR pSourceName;
00314     PCWSTR pDisplayName;
00315     PCWSTR pPrinterName;
00316     DWORD dwRenderIntent;
00317     DWORD dwProofingIntent;
00318     PWSTR  pMonitorProfile;
00319     DWORD ccMonitorProfile;
00320     PWSTR  pPrinterProfile;
00321     DWORD ccPrinterProfile;
00322     PWSTR  pTargetProfile;
00323     DWORD ccTargetProfile;
00324     DLGPROC lpfnHook;
00325     LPARAM lParam;
00326     PCMSCALLBACKW lpfnApplyCallback;
00327     LPARAM lParamApplyCallback;
00328 } COLORMATCHSETUPW, *PCOLORMATCHSETUPW, *LPCOLORMATCHSETUPW;
00329 
00330 BOOL       WINAPI AssociateColorProfileWithDeviceA(PCSTR,PCSTR,PCSTR);
00331 BOOL       WINAPI AssociateColorProfileWithDeviceW(PCWSTR,PCWSTR,PCWSTR);
00332 #define    AssociateColorProfileWithDevice WINELIB_NAME_AW(AssociateColorProfileWithDevice)
00333 BOOL       WINAPI CheckBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PBYTE,PBMCALLBACKFN,LPARAM);
00334 BOOL       WINAPI CheckColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PBYTE);
00335 BOOL       WINAPI ConvertColorNameToIndex(HPROFILE,PCOLOR_NAME,PDWORD,DWORD);
00336 BOOL       WINAPI ConvertIndexToColorName(HPROFILE,PDWORD,PCOLOR_NAME,DWORD);
00337 BOOL       WINAPI CloseColorProfile(HPROFILE);
00338 HTRANSFORM WINAPI CreateColorTransformA(LPLOGCOLORSPACEA,HPROFILE,HPROFILE,DWORD);
00339 HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW,HPROFILE,HPROFILE,DWORD);
00340 #define    CreateColorTransform WINELIB_NAME_AW(CreateColorTransform)
00341 BOOL       WINAPI CreateDeviceLinkProfile(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD);
00342 HTRANSFORM WINAPI CreateMultiProfileTransform(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,DWORD);
00343 BOOL       WINAPI CreateProfileFromLogColorSpaceA(LPLOGCOLORSPACEA,PBYTE*);
00344 BOOL       WINAPI CreateProfileFromLogColorSpaceW(LPLOGCOLORSPACEW,PBYTE*);
00345 #define    CreateProfileFromLogColorSpace WINELIB_NAME_AW(CreateProfileFromLogColorSpace)
00346 BOOL       WINAPI DeleteColorTransform(HTRANSFORM);
00347 BOOL       WINAPI DisassociateColorProfileFromDeviceA(PCSTR,PCSTR,PCSTR);
00348 BOOL       WINAPI DisassociateColorProfileFromDeviceW(PCWSTR,PCWSTR,PCWSTR);
00349 #define    DisassociateColorProfileFromDevice WINELIB_NAME_AW(DisassociateColorProfileFromDevice)
00350 BOOL       WINAPI EnumColorProfilesA(PCSTR,PENUMTYPEA,PBYTE,PDWORD,PDWORD);
00351 BOOL       WINAPI EnumColorProfilesW(PCWSTR,PENUMTYPEW,PBYTE,PDWORD,PDWORD);
00352 #define    EnumColorProfiles  WINELIB_NAME_AW(EnumColorProfiles)
00353 DWORD      WINAPI GenerateCopyFilePaths(LPCWSTR,LPCWSTR,LPBYTE,DWORD,LPWSTR,LPDWORD,LPWSTR,LPDWORD,DWORD);
00354 DWORD      WINAPI GetCMMInfo(HTRANSFORM,DWORD);
00355 BOOL       WINAPI GetColorDirectoryA(PCSTR,PSTR,PDWORD);
00356 BOOL       WINAPI GetColorDirectoryW(PCWSTR,PWSTR,PDWORD);
00357 #define    GetColorDirectory WINELIB_NAME_AW(GetColorDirectory)
00358 BOOL       WINAPI GetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID,PBOOL);
00359 BOOL       WINAPI GetColorProfileElementTag(HPROFILE,DWORD,PTAGTYPE);
00360 BOOL       WINAPI GetColorProfileFromHandle(HPROFILE,PBYTE,PDWORD);
00361 BOOL       WINAPI GetColorProfileHeader(HPROFILE,PPROFILEHEADER);
00362 HCOLORSPACE WINAPI GetColorSpace(HDC);
00363 BOOL       WINAPI GetCountColorProfileElements(HPROFILE,PDWORD);
00364 BOOL       WINAPI GetNamedProfileInfo(HPROFILE,PNAMED_PROFILE_INFO);
00365 BOOL       WINAPI GetPS2ColorRenderingDictionary(HPROFILE,DWORD,PBYTE,PDWORD,PBOOL);
00366 BOOL       WINAPI GetPS2ColorRenderingIntent(HPROFILE,DWORD,PBYTE,PDWORD);
00367 BOOL       WINAPI GetPS2ColorSpaceArray(HPROFILE,DWORD,DWORD,PBYTE,PDWORD,PBOOL);
00368 BOOL       WINAPI GetStandardColorSpaceProfileA(PCSTR,DWORD,PSTR,PDWORD);
00369 BOOL       WINAPI GetStandardColorSpaceProfileW(PCWSTR,DWORD,PWSTR,PDWORD);
00370 #define    GetStandardColorSpaceProfile WINELIB_NAME_AW(GetStandardColorSpaceProfile)
00371 BOOL       WINAPI InstallColorProfileA(PCSTR,PCSTR);
00372 BOOL       WINAPI InstallColorProfileW(PCWSTR,PCWSTR);
00373 #define    InstallColorProfile WINELIB_NAME_AW(InstallColorProfile)
00374 BOOL       WINAPI IsColorProfileTagPresent(HPROFILE,TAGTYPE,PBOOL);
00375 BOOL       WINAPI IsColorProfileValid(HPROFILE,PBOOL);
00376 HPROFILE   WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD);
00377 HPROFILE   WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD);
00378 #define    OpenColorProfile WINELIB_NAME_AW(OpenColorProfile)
00379 BOOL       WINAPI RegisterCMMA(PCSTR,DWORD,PCSTR);
00380 BOOL       WINAPI RegisterCMMW(PCWSTR,DWORD,PCWSTR);
00381 #define    RegisterCMM WINELIB_NAME_AW(RegisterCMM)
00382 BOOL       WINAPI SelectCMM(DWORD id);
00383 BOOL       WINAPI SetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID);
00384 BOOL       WINAPI SetColorProfileElementReference(HPROFILE,TAGTYPE,TAGTYPE);
00385 BOOL       WINAPI SetColorProfileElementSize(HPROFILE,TAGTYPE,DWORD);
00386 BOOL       WINAPI SetColorProfileHeader(HPROFILE,PPROFILEHEADER);
00387 HCOLORSPACE WINAPI SetColorSpace(HDC,HCOLORSPACE);
00388 BOOL       WINAPI SetStandardColorSpaceProfileA(PCSTR,DWORD,PSTR);
00389 BOOL       WINAPI SetStandardColorSpaceProfileW(PCWSTR,DWORD,PWSTR);
00390 #define    SetStandardColorSpaceProfile WINELIB_NAME_AW(SetStandardColorSpaceProfile)
00391 BOOL       WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA);
00392 BOOL       WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW);
00393 #define    SetupColorMatching WINELIB_NAME_AW(SetupColorMatching)
00394 BOOL       WINAPI SpoolerCopyFileEvent(LPWSTR,LPWSTR,DWORD);
00395 BOOL       WINAPI TranslateBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PVOID,BMFORMAT,DWORD,PBMCALLBACKFN,ULONG);
00396 BOOL       WINAPI TranslateColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PCOLOR,COLORTYPE);
00397 BOOL       WINAPI UninstallColorProfileA(PCSTR,PCSTR,BOOL);
00398 BOOL       WINAPI UninstallColorProfileW(PCWSTR,PCWSTR,BOOL);
00399 #define    UninstallColorProfile WINELIB_NAME_AW(UninstallColorProfile)
00400 BOOL       WINAPI UnregisterCMMA(PCSTR,DWORD);
00401 BOOL       WINAPI UnregisterCMMW(PCWSTR,DWORD);
00402 #define    UnregisterCMM WINELIB_NAME_AW(UnregisterCMM)
00403 
00404 #define PROFILE_FILENAME    1
00405 #define PROFILE_MEMBUFFER   2
00406 
00407 #define PROFILE_READ        1
00408 #define PROFILE_READWRITE   2
00409 
00410 #define SPACE_XYZ   0x58595A20   /* 'XYZ ' */
00411 #define SPACE_Lab   0x4C616220   /* 'Lab ' */
00412 #define SPACE_Luv   0x4C757620   /* 'Luv ' */
00413 #define SPACE_YCbCr 0x59436272   /* 'YCbr' */
00414 #define SPACE_Yxy   0x59787920   /* 'Yxy ' */
00415 #define SPACE_RGB   0x52474220   /* 'RGB ' */
00416 #define SPACE_GRAY  0x47524159   /* 'GRAY' */
00417 #define SPACE_HSV   0x48535620   /* 'HSV ' */
00418 #define SPACE_HLS   0x484C5320   /* 'HLS ' */
00419 #define SPACE_CMYK  0x434D594B   /* 'CMYK' */
00420 #define SPACE_CMY   0x434D5920   /* 'CMY ' */
00421 #define SPACE_2_CHANNEL 0x32434c52   /* '2CLR' */
00422 #define SPACE_3_CHANNEL 0x33434c52   /* '3CLR' */
00423 #define SPACE_4_CHANNEL 0x34434c52   /* '4CLR' */
00424 #define SPACE_5_CHANNEL 0x35434c52   /* '5CLR' */
00425 #define SPACE_6_CHANNEL 0x36434c52   /* '6CLR' */
00426 #define SPACE_7_CHANNEL 0x37434c52   /* '7CLR' */
00427 #define SPACE_8_CHANNEL 0x38434c52   /* '8CLR' */
00428 
00429 #ifdef __cplusplus
00430 }
00431 #endif
00432 
00433 #endif /* __WINE_ICM_H */

Generated on Fri May 25 2012 04:30:06 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.