icm.h
Upload User: caisha3
Upload Date: 2013-09-21
Package Size: 208739k
Code Size: 6k
Category:

Windows Develop

Development Platform:

Visual C++

  1. #ifndef ICM_H
  2. #define ICM_H
  3. #include "windows.h"
  4. #include "icc.h"
  5. #include "icc_i386.h"
  6. #define CMS_GET_VERSION     0x00000000
  7. #define CMS_GET_IDENT       0x00000001
  8. #define CMS_GET_DRIVER_LEVEL 0x00000002
  9. #define CMS_GET_RESERVED    0xFFFFFFFC
  10. #define CMS_LEVEL_1         0x00000001
  11. #define CMS_LEVEL_2         0x00000002
  12. #define CMS_LEVEL_3         0x00000004
  13. #define CMS_LEVEL_RESERVED  0xFFFFFFFC
  14. #define CMS_FORWARD         0x00000000
  15. #define CMS_BACKWARD        0x00000001
  16. #define CMS_X555WORD        0x00000000
  17. #define CMS_565WORD         0x00000001
  18. #define CMS_RGBTRIPLETS     0x00000002
  19. #define CMS_BGRTRIPLETS     0x00000004
  20. #define CMS_XRGBQUADS       0x00000008
  21. #define CMS_XBGRQUADS       0x00000010
  22. #define CMS_QUADS           0x00000020
  23. #ifndef ICMDLL
  24. #define LCS_CALIBRATED_RGB  0x00000000
  25. #define LCS_DEVICE_RGB     0x00000001
  26. #define LCS_DEVICE_CMYK     0x00000002
  27. #define LCS_GM_DEFAULT      0x00000000
  28. #define LCS_GM_BUSINESS     0x00000001
  29. #define LCS_GM_GRAPHICS     0x00000002
  30. #define LCS_GM_IMAGES       0x00000004
  31. #endif
  32. // Use printer colors       == 0
  33. // Change all RGBs          == CM_USE_ICM;
  34. // Select downloaded CRD    == CM_USE_CS | CM_USE_CRD
  35. // Download/select CRD      == CM_USE_CS | CM_USE_CRD | CM_SEND_CRD
  36. // Use Sony                 == CM_USE_CS
  37. #define CM_USE_CS           0x00000001
  38. #define CM_USE_CRD          0x00000002
  39. #define CM_SEND_CRD         0x00000004
  40. #define CM_USE_ICM          0x00000008
  41. #define CM_CMYK_IN          0x00000010
  42. #define CM_CMYK_DIB_IN     0x00000020
  43. #define CM_CMYK_OUT         0x00000040
  44. #define CM_CMYK      CM_CMYK_IN | CM_CMYK_DIB_IN | CM_CMYK_OUT
  45. typedef HANDLE      HCOLORSPACE;
  46. typedef DWORD       HCTMTRANSFORM;
  47. // SRGB98
  48. #define  REVCURVE_RATIO         1
  49. /*  Logical Color Space Structure */
  50. #ifndef ICMDLL
  51. typedef struct tagLOGCOLORSPACE {
  52. DWORD lcsSignature;
  53. DWORD lcsVersion;
  54. DWORD lcsSize;
  55. DWORD lcsCSType;
  56. DWORD lcsGamutMatch;
  57. CIEXYZTRIPLE lcsEndpoints;
  58. DWORD lcsGammaRed;
  59. DWORD lcsGammaGreen;
  60. DWORD lcsGammaBlue;
  61. char    lcsFilename[MAX_PATH];
  62. } LOGCOLORSPACE;
  63. typedef LOGCOLORSPACE FAR *LPLOGCOLORSPACE;
  64. #endif
  65. typedef struct tagICMINFO {
  66. LOGCOLORSPACE   lcsSource;  // source image colorspace
  67. HCTMTRANSFORM   hICMT;      // Handle to the associated transform
  68.         char            lcsDestFilename[256];
  69.         char            lcsTargetFilename[256];
  70.         LPSTR           lppd;       // Used to find the buffered bitmap.
  71.                                     // Fix bug 195632. jjia  2/20/97.
  72. } ICMINFO , FAR *LPICMINFO;
  73. typedef enum {CS_DEVICE_RGB = 0, CS_DEVICE_CMYK,
  74. CS_CALIBRATED_RGB, CS_SONY_TRINITRON } CSPACESET;
  75. #ifndef ICMDLL
  76. BOOL FAR PASCAL EnableICM(HDC, BOOL);
  77. HANDLE FAR PASCAL LoadImageColorMatcher(LPSTR);
  78. BOOL FAR PASCAL FreeImageColorMatcher(HANDLE);
  79. int FAR PASCAL EnumColorProfiles(HDC,FARPROC,LPARAM);
  80. BOOL FAR PASCAL CheckColorsInGamut(HDC,LPVOID,LPVOID,DWORD);
  81. HANDLE FAR PASCAL GetColorSpace(HDC);
  82. BOOL FAR PASCAL GetLogColorSpace(HCOLORSPACE,LPVOID,DWORD);
  83. HCOLORSPACE FAR PASCAL CreateColorSpace(LPLOGCOLORSPACE);
  84. BOOL FAR PASCAL SetColorSpace(HDC,HCOLORSPACE);
  85. BOOL FAR PASCAL DeleteColorSpace(HCOLORSPACE);
  86. BOOL FAR PASCAL GetColorProfile(HDC,LPSTR,WORD);
  87. BOOL FAR PASCAL SetColorProfile(HDC,LPSTR);
  88. BOOL FAR PASCAL GetDeviceGammaRamp(HDC,LPVOID);
  89. BOOL FAR PASCAL SetDeviceGammaRamp(HDC,LPVOID);
  90. BOOL FAR PASCAL ColorMatchToTarget(HDC,HDC,WORD);
  91. #endif
  92. #define CS_ENABLE       1
  93. #define CS_DISABLE      2
  94. #define CS_DELETE_TRANSFORM 3
  95. DWORD _loadds FAR PASCAL CMGetInfo(DWORD dwInfo);
  96. HCTMTRANSFORM _loadds      FAR PASCAL CMCreateTransform(LPLOGCOLORSPACE lpCS, 
  97. LPSTR lpDevCh, LPSTR lpTargetDevCh);
  98. BOOL _loadds    FAR PASCAL  CMDeleteTransform(HCTMTRANSFORM hTransform);
  99. BOOL _loadds    FAR PASCAL  CMTranslateRGB(HCTMTRANSFORM hTransform,RGBQUAD RGBQuad,
  100. LPVOID lpResult, DWORD dwFlags);
  101. BOOL _loadds    FAR PASCAL  CMTranslateRGBs(HCTMTRANSFORM hTransform, 
  102.  LPVOID    lpSrc, DWORD dwSrcFlags,
  103. DWORD nSrcWidth, DWORD nSrcHeight, DWORD nSrcStride,
  104.  LPVOID lpDest, DWORD dwDestFlags, DWORD dwFlags);
  105. BOOL _loadds    FAR PASCAL   CMCheckColorsInGamut(HCTMTRANSFORM hTransform, 
  106.  LPVOID   lpSrc,
  107.  LPVOID lpDest, DWORD dwCount);
  108. BOOL _loadds    FAR PASCAL   CMGetPS2ColorSpaceArray(
  109.                                                  LPSTR       lpProfileName,
  110.                                                  DWORD       InputIntent,
  111.                                                  WORD        InpDrvClrSp,
  112.                                                  MEMPTR      lpBuffer, 
  113.                                                  LPDWORD     lpcbSize,
  114.                                                  BOOL        AllowBinary);
  115. BOOL _loadds    FAR PASCAL   CMGetPS2ColorRenderingDictionary(
  116.                                                  LPSTR       lpProfileName,
  117.                                                  DWORD       Intent, 
  118.                                                  MEMPTR      lpMem, 
  119.                                                  LPDWORD     lpcbSize,
  120.                                                  BOOL        AllowBinary);
  121. BOOL _loadds    FAR PASCAL  CMGetPS2ColorRenderingIntent(
  122.                                                  LPSTR       lpProfileName,
  123.                                                  DWORD       Intent,
  124.                                                  MEMPTR      lpMem,
  125.                                                  LPDWORD     lpcbSize);
  126. HCTMTRANSFORM _loadds      FAR PASCAL ICMCreateTransform(LPLOGCOLORSPACE lpCS, 
  127. LPSTR lpDevCh, LPSTR lpTargetDevCh);
  128. BOOL _loadds    FAR PASCAL  ICMDeleteTransform(HCTMTRANSFORM hTransform);
  129. BOOL _loadds    FAR PASCAL  ICMTranslateRGB(HCTMTRANSFORM hTransform, RGBQUAD RGBQuad,
  130. LPVOID lpResult, DWORD dwFlags);
  131. BOOL _loadds    FAR PASCAL  ICMTranslateRGBs(HCTMTRANSFORM hTransform, 
  132.  LPVOID    lpSrc, DWORD dwSrcFlags,
  133.                    DWORD nSrcWidth, DWORD nSrcHeight, DWORD nSrcStride,
  134.  LPVOID lpDest, DWORD dwDestFlags, DWORD dwFlags);
  135. BOOL _loadds    FAR PASCAL   ICMCheckColorsInGamut(HCTMTRANSFORM hTransform, 
  136.  LPVOID   lpSrc,
  137.  LPVOID lpDest, DWORD dwCount);
  138. // ALWAYS_ICM
  139. HCTMTRANSFORM _loadds FAR PASCAL CreateDefTransform (LPVOID lppd);
  140. BOOL _loadds FAR PASCAL DeleteDefTransform (HCTMTRANSFORM hTransform);
  141. #endif