00001 
#ifndef ICM_H
00002 
#define ICM_H
00003 
#include "windows.h"
00004 
#include "icc.h"
00005 
#include "icc_i386.h"
00006 
00007 #define CMS_GET_VERSION     0x00000000
00008 #define CMS_GET_IDENT       0x00000001
00009 #define CMS_GET_DRIVER_LEVEL 0x00000002
00010 #define CMS_GET_RESERVED    0xFFFFFFFC
00011 
00012 #define CMS_LEVEL_1         0x00000001
00013 #define CMS_LEVEL_2         0x00000002
00014 #define CMS_LEVEL_3         0x00000004
00015 #define CMS_LEVEL_RESERVED  0xFFFFFFFC
00016 
00017 
00018 
00019 #define CMS_FORWARD         0x00000000
00020 #define CMS_BACKWARD        0x00000001
00021 
00022 #define CMS_X555WORD        0x00000000
00023 #define CMS_565WORD         0x00000001
00024 #define CMS_RGBTRIPLETS     0x00000002
00025 #define CMS_BGRTRIPLETS     0x00000004
00026 #define CMS_XRGBQUADS       0x00000008
00027 #define CMS_XBGRQUADS       0x00000010
00028 #define CMS_QUADS           0x00000020
00029 
00030 
#ifndef ICMDLL
00031 #define LCS_CALIBRATED_RGB  0x00000000
00032 #define LCS_DEVICE_RGB      0x00000001
00033 #define LCS_DEVICE_CMYK     0x00000002
00034 
00035 #define LCS_GM_DEFAULT      0x00000000
00036 #define LCS_GM_BUSINESS     0x00000001
00037 #define LCS_GM_GRAPHICS     0x00000002
00038 #define LCS_GM_IMAGES       0x00000004
00039 
#endif
00040 
00041 
00042 
00043 
00044 
00045 
00046 #define CM_USE_CS           0x00000001
00047 #define CM_USE_CRD          0x00000002
00048 #define CM_SEND_CRD         0x00000004
00049 #define CM_USE_ICM          0x00000008
00050 #define CM_CMYK_IN          0x00000010
00051 #define CM_CMYK_DIB_IN      0x00000020
00052 #define CM_CMYK_OUT         0x00000040
00053 #define CM_CMYK             CM_CMYK_IN | CM_CMYK_DIB_IN | CM_CMYK_OUT
00054 
00055 
00056 typedef HANDLE      
HCOLORSPACE;
00057 typedef DWORD       HCTMTRANSFORM;
00058 
00059 
00060 #define  REVCURVE_RATIO         1
00061 
00062 
00063 
00064 
#ifndef ICMDLL
00065 
typedef struct tagLOGCOLORSPACE {
00066 DWORD lcsSignature;
00067 DWORD lcsVersion;
00068 DWORD lcsSize;
00069 DWORD lcsCSType;
00070 DWORD lcsGamutMatch;
00071 CIEXYZTRIPLE 
lcsEndpoints;
00072 DWORD lcsGammaRed;
00073 DWORD lcsGammaGreen;
00074 DWORD lcsGammaBlue;
00075 char    lcsFilename[
MAX_PATH];
00076 } 
LOGCOLORSPACE;
00077 typedef LOGCOLORSPACE FAR *
LPLOGCOLORSPACE;
00078 
#endif
00079 
00080 
typedef struct tagICMINFO {
00081         LOGCOLORSPACE   lcsSource;  
00082         HCTMTRANSFORM   hICMT;      
00083         char            lcsDestFilename[256];
00084         char            lcsTargetFilename[256];
00085         LPSTR           
lppd;       
00086                                     
00087 } 
ICMINFO , 
FAR *
LPICMINFO;
00088 
00089 
00090 typedef enum {
CS_DEVICE_RGB = 0, 
CS_DEVICE_CMYK,
00091                         
CS_CALIBRATED_RGB, 
CS_SONY_TRINITRON } 
CSPACESET;
00092 
00093 
00094 
#ifndef ICMDLL
00095 
BOOL FAR PASCAL 
EnableICM(HDC, BOOL);
00096 HANDLE 
FAR PASCAL 
LoadImageColorMatcher(LPSTR);
00097 
BOOL FAR PASCAL 
FreeImageColorMatcher(HANDLE);
00098 
int FAR PASCAL 
EnumColorProfiles(HDC,FARPROC,LPARAM);
00099 
BOOL FAR PASCAL 
CheckColorsInGamut(HDC,LPVOID,LPVOID,DWORD);
00100 HANDLE 
FAR PASCAL 
GetColorSpace(HDC);
00101 
BOOL FAR PASCAL 
GetLogColorSpace(HCOLORSPACE,LPVOID,DWORD);
00102 
HCOLORSPACE FAR PASCAL 
CreateColorSpace(LPLOGCOLORSPACE);
00103 
BOOL FAR PASCAL 
SetColorSpace(HDC,HCOLORSPACE);
00104 
BOOL FAR PASCAL 
DeleteColorSpace(HCOLORSPACE);
00105 
BOOL FAR PASCAL 
GetColorProfile(HDC,LPSTR,WORD);
00106 
BOOL FAR PASCAL 
SetColorProfile(HDC,LPSTR);
00107 
BOOL FAR PASCAL 
GetDeviceGammaRamp(HDC,LPVOID);
00108 
BOOL FAR PASCAL 
SetDeviceGammaRamp(HDC,LPVOID);
00109 
BOOL FAR PASCAL 
ColorMatchToTarget(HDC,HDC,WORD);
00110 
#endif
00111 
00112 #define CS_ENABLE       1
00113 #define CS_DISABLE      2
00114 #define CS_DELETE_TRANSFORM 3
00115 
00116 
DWORD _loadds 
FAR PASCAL 
CMGetInfo(DWORD dwInfo);
00117 
00118 
HCTMTRANSFORM _loadds      
FAR PASCAL 
CMCreateTransform(LPLOGCOLORSPACE lpCS, 
00119                                                 LPSTR lpDevCh, LPSTR lpTargetDevCh);
00120 
00121 
BOOL _loadds    
FAR PASCAL  
CMDeleteTransform(HCTMTRANSFORM hTransform);
00122 
00123 
BOOL _loadds    
FAR PASCAL  
CMTranslateRGB(HCTMTRANSFORM hTransform,RGBQUAD RGBQuad,
00124                                                 LPVOID lpResult, DWORD dwFlags);
00125 
00126 
BOOL _loadds    
FAR PASCAL  
CMTranslateRGBs(HCTMTRANSFORM hTransform, 
00127                                                  LPVOID    lpSrc, DWORD dwSrcFlags,
00128                                                         DWORD nSrcWidth, DWORD nSrcHeight, DWORD nSrcStride,
00129                                                  LPVOID lpDest, DWORD dwDestFlags, DWORD dwFlags);
00130 
00131 
BOOL _loadds    
FAR PASCAL   
CMCheckColorsInGamut(HCTMTRANSFORM hTransform, 
00132                                                  LPVOID   lpSrc,
00133                                                  LPVOID lpDest, DWORD dwCount);
00134 
BOOL _loadds    
FAR PASCAL   
CMGetPS2ColorSpaceArray(
00135                                                  LPSTR       lpProfileName,
00136                                                  DWORD       InputIntent,
00137                                                  WORD        InpDrvClrSp,
00138                                                  MEMPTR      lpBuffer, 
00139                                                  LPDWORD     lpcbSize,
00140                                                  BOOL        AllowBinary);
00141 
00142 
BOOL _loadds    
FAR PASCAL   
CMGetPS2ColorRenderingDictionary(
00143                                                  LPSTR       lpProfileName,
00144                                                  DWORD       Intent, 
00145                                                  MEMPTR      lpMem, 
00146                                                  LPDWORD     lpcbSize,
00147                                                  BOOL        AllowBinary);
00148 
00149 
BOOL _loadds    
FAR PASCAL  
CMGetPS2ColorRenderingIntent(
00150                                                  LPSTR       lpProfileName,
00151                                                  DWORD       Intent,
00152                                                  MEMPTR      lpMem,
00153                                                  LPDWORD     lpcbSize);
00154 
00155 
00156 
HCTMTRANSFORM _loadds      
FAR PASCAL 
ICMCreateTransform(LPLOGCOLORSPACE lpCS, 
00157                                                 LPSTR lpDevCh, LPSTR lpTargetDevCh);
00158 
00159 
BOOL _loadds    
FAR PASCAL  
ICMDeleteTransform(HCTMTRANSFORM hTransform);
00160 
00161 
BOOL _loadds    
FAR PASCAL  
ICMTranslateRGB(HCTMTRANSFORM hTransform, RGBQUAD RGBQuad,
00162                                                 LPVOID lpResult, DWORD dwFlags);
00163 
00164 
BOOL _loadds    
FAR PASCAL  
ICMTranslateRGBs(HCTMTRANSFORM hTransform, 
00165                                                  LPVOID    lpSrc, DWORD dwSrcFlags,     
00166                    DWORD nSrcWidth, DWORD nSrcHeight, DWORD nSrcStride,
00167                                                  LPVOID lpDest, DWORD dwDestFlags, DWORD dwFlags);
00168 
00169 
BOOL _loadds    
FAR PASCAL   
ICMCheckColorsInGamut(HCTMTRANSFORM hTransform, 
00170                                                  LPVOID   lpSrc,
00171                                                  LPVOID lpDest, DWORD dwCount);
00172 
00173 
HCTMTRANSFORM _loadds 
FAR PASCAL 
CreateDefTransform (LPVOID lppd);
00174 
BOOL _loadds 
FAR PASCAL 
DeleteDefTransform (HCTMTRANSFORM hTransform);
00175 
#endif
00176