ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mscms_priv.h
Go to the documentation of this file.
00001 /*
00002  * MSCMS - Color Management System for Wine
00003  *
00004  * Copyright 2004, 2005 Hans Leidekker
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00019  */
00020 
00021 #ifdef HAVE_LCMS
00022 
00023 /*  These basic Windows types are defined in lcms.h when compiling on
00024  *  a non-Windows platform (why?), so they would normally not conflict
00025  *  with anything included earlier. But since we are building Wine they
00026  *  most certainly will have been defined before we include lcms.h.
00027  *  The preprocessor comes to the rescue.
00028  */
00029 
00030 #define BYTE    LCMS_BYTE
00031 #define LPBYTE  LCMS_LPBYTE
00032 #define WORD    LCMS_WORD
00033 #define LPWORD  LCMS_LPWORD
00034 #define DWORD   LCMS_DWORD
00035 #define LPDWORD LCMS_LPDWORD
00036 #define BOOL    LCMS_BOOL
00037 #define LPSTR   LCMS_LPSTR
00038 #define LPVOID  LCMS_LPVOID
00039 
00040 #undef cdecl
00041 #undef FAR
00042 
00043 #undef ZeroMemory
00044 #undef CopyMemory
00045 
00046 #undef LOWORD
00047 #undef HIWORD
00048 #undef MAX_PATH
00049 
00050 #ifdef HAVE_LCMS_LCMS_H
00051 #include <lcms/lcms.h>
00052 #else
00053 #include <lcms.h>
00054 #endif
00055 
00056 /*  Funny thing is lcms.h defines DWORD as an 'unsigned long' whereas Wine
00057  *  defines it as an 'unsigned int'. To avoid compiler warnings we use a
00058  *  preprocessor define for DWORD and LPDWORD to get back Wine's original
00059  *  (typedef) definitions.
00060  */
00061 
00062 #undef BOOL
00063 #undef DWORD
00064 #undef LPDWORD
00065 
00066 #define BOOL    BOOL
00067 #define DWORD   DWORD
00068 #define LPDWORD LPDWORD
00069 
00070 /*  A simple structure to tie together a pointer to an icc profile, an lcms
00071  *  color profile handle and a Windows file handle. If the profile is memory
00072  *  based the file handle field is set to INVALID_HANDLE_VALUE. The 'access'
00073  *  field records the access parameter supplied to an OpenColorProfile()
00074  *  call, i.e. PROFILE_READ or PROFILE_READWRITE.
00075  */
00076 
00077 struct profile
00078 {
00079     HANDLE file;
00080     DWORD access;
00081     icProfile *iccprofile;
00082     cmsHPROFILE cmsprofile;
00083 };
00084 
00085 struct transform
00086 {
00087     cmsHTRANSFORM cmstransform;
00088 };
00089 
00090 extern HPROFILE create_profile( struct profile * ) DECLSPEC_HIDDEN;
00091 extern BOOL close_profile( HPROFILE ) DECLSPEC_HIDDEN;
00092 
00093 extern HTRANSFORM create_transform( struct transform * ) DECLSPEC_HIDDEN;
00094 extern BOOL close_transform( HTRANSFORM ) DECLSPEC_HIDDEN;
00095 
00096 struct profile *grab_profile( HPROFILE ) DECLSPEC_HIDDEN;
00097 struct transform *grab_transform( HTRANSFORM ) DECLSPEC_HIDDEN;
00098 
00099 void release_profile( struct profile * ) DECLSPEC_HIDDEN;
00100 void release_transform( struct transform * ) DECLSPEC_HIDDEN;
00101 
00102 extern void free_handle_tables( void ) DECLSPEC_HIDDEN;
00103 
00104 extern DWORD MSCMS_get_tag_count( const icProfile *iccprofile ) DECLSPEC_HIDDEN;
00105 extern void MSCMS_get_tag_by_index( icProfile *iccprofile, DWORD index, icTag *tag ) DECLSPEC_HIDDEN;
00106 extern void MSCMS_get_tag_data( const icProfile *iccprofile, const icTag *tag, DWORD offset, void *buffer ) DECLSPEC_HIDDEN;
00107 extern void MSCMS_set_tag_data( icProfile *iccprofile, const icTag *tag, DWORD offset, const void *buffer ) DECLSPEC_HIDDEN;
00108 extern void MSCMS_get_profile_header( const icProfile *iccprofile, PROFILEHEADER *header ) DECLSPEC_HIDDEN;
00109 extern void MSCMS_set_profile_header( icProfile *iccprofile, const PROFILEHEADER *header ) DECLSPEC_HIDDEN;
00110 extern DWORD MSCMS_get_profile_size( const icProfile *iccprofile ) DECLSPEC_HIDDEN;
00111 
00112 #endif /* HAVE_LCMS */
00113 
00114 extern const char *MSCMS_dbgstr_tag(DWORD) DECLSPEC_HIDDEN;

Generated on Fri May 25 2012 04:22:54 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.