Windows2000/private/ntos/w32/ntgdi/icm/adobe/aug98/test/icm.h
2020-09-30 17:12:32 +02:00

177 lines
6.5 KiB
C

#ifndef ICM_H
#define ICM_H
#include "windows.h"
#include "icc.h"
#include "icc_i386.h"
#define CMS_GET_VERSION 0x00000000
#define CMS_GET_IDENT 0x00000001
#define CMS_GET_DRIVER_LEVEL 0x00000002
#define CMS_GET_RESERVED 0xFFFFFFFC
#define CMS_LEVEL_1 0x00000001
#define CMS_LEVEL_2 0x00000002
#define CMS_LEVEL_3 0x00000004
#define CMS_LEVEL_RESERVED 0xFFFFFFFC
#define CMS_FORWARD 0x00000000
#define CMS_BACKWARD 0x00000001
#define CMS_X555WORD 0x00000000
#define CMS_565WORD 0x00000001
#define CMS_RGBTRIPLETS 0x00000002
#define CMS_BGRTRIPLETS 0x00000004
#define CMS_XRGBQUADS 0x00000008
#define CMS_XBGRQUADS 0x00000010
#define CMS_QUADS 0x00000020
#ifndef ICMDLL
#define LCS_CALIBRATED_RGB 0x00000000
#define LCS_DEVICE_RGB 0x00000001
#define LCS_DEVICE_CMYK 0x00000002
#define LCS_GM_DEFAULT 0x00000000
#define LCS_GM_BUSINESS 0x00000001
#define LCS_GM_GRAPHICS 0x00000002
#define LCS_GM_IMAGES 0x00000004
#endif
// Use printer colors == 0
// Change all RGBs == CM_USE_ICM;
// Select downloaded CRD == CM_USE_CS | CM_USE_CRD
// Download/select CRD == CM_USE_CS | CM_USE_CRD | CM_SEND_CRD
// Use Sony == CM_USE_CS
#define CM_USE_CS 0x00000001
#define CM_USE_CRD 0x00000002
#define CM_SEND_CRD 0x00000004
#define CM_USE_ICM 0x00000008
#define CM_CMYK_IN 0x00000010
#define CM_CMYK_DIB_IN 0x00000020
#define CM_CMYK_OUT 0x00000040
#define CM_CMYK CM_CMYK_IN | CM_CMYK_DIB_IN | CM_CMYK_OUT
typedef HANDLE HCOLORSPACE;
typedef DWORD HCTMTRANSFORM;
// SRGB98
#define REVCURVE_RATIO 1
/* Logical Color Space Structure */
#ifndef ICMDLL
typedef struct tagLOGCOLORSPACE {
DWORD lcsSignature;
DWORD lcsVersion;
DWORD lcsSize;
DWORD lcsCSType;
DWORD lcsGamutMatch;
CIEXYZTRIPLE lcsEndpoints;
DWORD lcsGammaRed;
DWORD lcsGammaGreen;
DWORD lcsGammaBlue;
char lcsFilename[MAX_PATH];
} LOGCOLORSPACE;
typedef LOGCOLORSPACE FAR *LPLOGCOLORSPACE;
#endif
typedef struct tagICMINFO {
LOGCOLORSPACE lcsSource; // source image colorspace
HCTMTRANSFORM hICMT; // Handle to the associated transform
char lcsDestFilename[256];
char lcsTargetFilename[256];
LPSTR lppd; // Used to find the buffered bitmap.
// Fix bug 195632. jjia 2/20/97.
} ICMINFO , FAR *LPICMINFO;
typedef enum {CS_DEVICE_RGB = 0, CS_DEVICE_CMYK,
CS_CALIBRATED_RGB, CS_SONY_TRINITRON } CSPACESET;
#ifndef ICMDLL
BOOL FAR PASCAL EnableICM(HDC, BOOL);
HANDLE FAR PASCAL LoadImageColorMatcher(LPSTR);
BOOL FAR PASCAL FreeImageColorMatcher(HANDLE);
int FAR PASCAL EnumColorProfiles(HDC,FARPROC,LPARAM);
BOOL FAR PASCAL CheckColorsInGamut(HDC,LPVOID,LPVOID,DWORD);
HANDLE FAR PASCAL GetColorSpace(HDC);
BOOL FAR PASCAL GetLogColorSpace(HCOLORSPACE,LPVOID,DWORD);
HCOLORSPACE FAR PASCAL CreateColorSpace(LPLOGCOLORSPACE);
BOOL FAR PASCAL SetColorSpace(HDC,HCOLORSPACE);
BOOL FAR PASCAL DeleteColorSpace(HCOLORSPACE);
BOOL FAR PASCAL GetColorProfile(HDC,LPSTR,WORD);
BOOL FAR PASCAL SetColorProfile(HDC,LPSTR);
BOOL FAR PASCAL GetDeviceGammaRamp(HDC,LPVOID);
BOOL FAR PASCAL SetDeviceGammaRamp(HDC,LPVOID);
BOOL FAR PASCAL ColorMatchToTarget(HDC,HDC,WORD);
#endif
#define CS_ENABLE 1
#define CS_DISABLE 2
#define CS_DELETE_TRANSFORM 3
DWORD _loadds FAR PASCAL CMGetInfo(DWORD dwInfo);
HCTMTRANSFORM _loadds FAR PASCAL CMCreateTransform(LPLOGCOLORSPACE lpCS,
LPSTR lpDevCh, LPSTR lpTargetDevCh);
BOOL _loadds FAR PASCAL CMDeleteTransform(HCTMTRANSFORM hTransform);
BOOL _loadds FAR PASCAL CMTranslateRGB(HCTMTRANSFORM hTransform,RGBQUAD RGBQuad,
LPVOID lpResult, DWORD dwFlags);
BOOL _loadds FAR PASCAL CMTranslateRGBs(HCTMTRANSFORM hTransform,
LPVOID lpSrc, DWORD dwSrcFlags,
DWORD nSrcWidth, DWORD nSrcHeight, DWORD nSrcStride,
LPVOID lpDest, DWORD dwDestFlags, DWORD dwFlags);
BOOL _loadds FAR PASCAL CMCheckColorsInGamut(HCTMTRANSFORM hTransform,
LPVOID lpSrc,
LPVOID lpDest, DWORD dwCount);
BOOL _loadds FAR PASCAL CMGetPS2ColorSpaceArray(
LPSTR lpProfileName,
DWORD InputIntent,
WORD InpDrvClrSp,
MEMPTR lpBuffer,
LPDWORD lpcbSize,
BOOL AllowBinary);
BOOL _loadds FAR PASCAL CMGetPS2ColorRenderingDictionary(
LPSTR lpProfileName,
DWORD Intent,
MEMPTR lpMem,
LPDWORD lpcbSize,
BOOL AllowBinary);
BOOL _loadds FAR PASCAL CMGetPS2ColorRenderingIntent(
LPSTR lpProfileName,
DWORD Intent,
MEMPTR lpMem,
LPDWORD lpcbSize);
HCTMTRANSFORM _loadds FAR PASCAL ICMCreateTransform(LPLOGCOLORSPACE lpCS,
LPSTR lpDevCh, LPSTR lpTargetDevCh);
BOOL _loadds FAR PASCAL ICMDeleteTransform(HCTMTRANSFORM hTransform);
BOOL _loadds FAR PASCAL ICMTranslateRGB(HCTMTRANSFORM hTransform, RGBQUAD RGBQuad,
LPVOID lpResult, DWORD dwFlags);
BOOL _loadds FAR PASCAL ICMTranslateRGBs(HCTMTRANSFORM hTransform,
LPVOID lpSrc, DWORD dwSrcFlags,
DWORD nSrcWidth, DWORD nSrcHeight, DWORD nSrcStride,
LPVOID lpDest, DWORD dwDestFlags, DWORD dwFlags);
BOOL _loadds FAR PASCAL ICMCheckColorsInGamut(HCTMTRANSFORM hTransform,
LPVOID lpSrc,
LPVOID lpDest, DWORD dwCount);
// ALWAYS_ICM
HCTMTRANSFORM _loadds FAR PASCAL CreateDefTransform (LPVOID lppd);
BOOL _loadds FAR PASCAL DeleteDefTransform (HCTMTRANSFORM hTransform);
#endif