1 /* 2 * MSCMS - Color Management System for Wine 3 * 4 * Copyright 2004, 2005 Hans Leidekker 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21 #include "config.h" 22 23 #include "wine/port.h" 24 #include "wine/debug.h" 25 #include "wine/library.h" 26 27 #include <stdarg.h> 28 29 #include "windef.h" 30 #include "winbase.h" 31 #include "wingdi.h" 32 #include "winuser.h" 33 #include "icm.h" 34 35 #include "mscms_priv.h" 36 37 WINE_DEFAULT_DEBUG_CHANNEL(mscms); 38 39 #ifdef HAVE_LCMS2 40 static void lcms_error_handler(cmsContext ctx, cmsUInt32Number error, const char *text) 41 { 42 TRACE("%u %s\n", error, debugstr_a(text)); 43 } 44 #endif 45 46 BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved ) 47 { 48 TRACE( "(%p, %d, %p)\n", hinst, reason, reserved ); 49 50 switch (reason) 51 { 52 case DLL_PROCESS_ATTACH: 53 DisableThreadLibraryCalls( hinst ); 54 #ifdef HAVE_LCMS2 55 cmsSetLogErrorHandler( lcms_error_handler ); 56 #else 57 ERR( "No support for liblcms2, expect problems\n" ); 58 #endif 59 break; 60 case DLL_PROCESS_DETACH: 61 if (reserved) break; 62 #ifdef HAVE_LCMS2 63 free_handle_tables(); 64 #endif 65 break; 66 } 67 return TRUE; 68 } 69