| /* | 
 |  * MSCMS - Color Management System for Wine | 
 |  * | 
 |  * Copyright 2004, 2005 Hans Leidekker | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
 |  */ | 
 |  | 
 | #ifdef HAVE_LCMS | 
 |  | 
 | /*  These basic Windows types are defined in lcms.h when compiling on | 
 |  *  a non-Windows platform (why?), so they would normally not conflict | 
 |  *  with anything included earlier. But since we are building Wine they | 
 |  *  most certainly will have been defined before we include lcms.h. | 
 |  *  The preprocessor comes to the rescue. | 
 |  */ | 
 |  | 
 | #define BYTE    LCMS_BYTE | 
 | #define LPBYTE  LCMS_LPBYTE | 
 | #define WORD    LCMS_WORD | 
 | #define LPWORD  LCMS_LPWORD | 
 | #define DWORD   LCMS_DWORD | 
 | #define LPDWORD LCMS_LPDWORD | 
 | #define BOOL    LCMS_BOOL | 
 | #define LPSTR   LCMS_LPSTR | 
 | #define LPVOID  LCMS_LPVOID | 
 |  | 
 | #undef cdecl | 
 | #undef FAR | 
 |  | 
 | #undef ZeroMemory | 
 | #undef CopyMemory | 
 |  | 
 | #undef LOWORD | 
 | #undef MAX_PATH | 
 |  | 
 | #ifdef HAVE_LCMS_LCMS_H | 
 | #include <lcms/lcms.h> | 
 | #else | 
 | #include <lcms.h> | 
 | #endif | 
 |  | 
 | /*  Funny thing is lcms.h defines DWORD as an 'unsigned long' whereas Wine | 
 |  *  defines it as an 'unsigned int'. To avoid compiler warnings we use a | 
 |  *  preprocessor define for DWORD and LPDWORD to get back Wine's original | 
 |  *  (typedef) definitions. | 
 |  */ | 
 |  | 
 | #undef BOOL | 
 | #undef DWORD | 
 | #undef LPDWORD | 
 |  | 
 | #define BOOL    BOOL | 
 | #define DWORD   DWORD | 
 | #define LPDWORD LPDWORD | 
 |  | 
 | extern DWORD MSCMS_hprofile2access( HPROFILE ); | 
 | extern HPROFILE MSCMS_handle2hprofile( HANDLE file ); | 
 | extern HPROFILE MSCMS_cmsprofile2hprofile( cmsHPROFILE cmsprofile ); | 
 | extern HPROFILE MSCMS_iccprofile2hprofile( const icProfile *iccprofile ); | 
 | extern HANDLE MSCMS_hprofile2handle( HPROFILE profile ); | 
 | extern cmsHPROFILE MSCMS_hprofile2cmsprofile( HPROFILE profile ); | 
 | extern icProfile *MSCMS_hprofile2iccprofile( HPROFILE profile ); | 
 |  | 
 | extern HPROFILE MSCMS_create_hprofile_handle( HANDLE file, icProfile *iccprofile, | 
 |                                               cmsHPROFILE cmsprofile, DWORD access ); | 
 | extern void MSCMS_destroy_hprofile_handle( HPROFILE profile ); | 
 |  | 
 | extern cmsHTRANSFORM MSCMS_htransform2cmstransform( HTRANSFORM transform ); | 
 | extern HTRANSFORM MSCMS_create_htransform_handle( cmsHTRANSFORM cmstransform ); | 
 | extern void MSCMS_destroy_htransform_handle( HTRANSFORM transform ); | 
 |  | 
 | extern DWORD MSCMS_get_tag_count( const icProfile *iccprofile ); | 
 | extern void MSCMS_get_tag_by_index( icProfile *iccprofile, DWORD index, icTag *tag ); | 
 | extern void MSCMS_get_tag_data( const icProfile *iccprofile, const icTag *tag, DWORD offset, void *buffer ); | 
 | extern void MSCMS_set_tag_data( icProfile *iccprofile, const icTag *tag, DWORD offset, const void *buffer ); | 
 | extern void MSCMS_get_profile_header( const icProfile *iccprofile, PROFILEHEADER *header ); | 
 | extern void MSCMS_set_profile_header( icProfile *iccprofile, const PROFILEHEADER *header ); | 
 | extern DWORD MSCMS_get_profile_size( const icProfile *iccprofile ); | 
 |  | 
 | #endif /* HAVE_LCMS */ |