| /* |
| * 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 orginal |
| * (typedef) definitions. |
| */ |
| |
| #undef DWORD |
| #undef LPDWORD |
| |
| #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( 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( icProfile *iccprofile ); |
| extern void MSCMS_get_tag_by_index( icProfile *iccprofile, DWORD index, icTag *tag ); |
| extern void MSCMS_get_tag_data( icProfile *iccprofile, icTag *tag, DWORD offset, void *buffer ); |
| extern void MSCMS_set_tag_data( icProfile *iccprofile, icTag *tag, DWORD offset, void *buffer ); |
| extern void MSCMS_get_profile_header( icProfile *iccprofile, PROFILEHEADER *header ); |
| extern void MSCMS_set_profile_header( icProfile *iccprofile, PROFILEHEADER *header ); |
| extern DWORD MSCMS_get_profile_size( icProfile *iccprofile ); |
| |
| #endif /* HAVE_LCMS */ |