1 /* GLIB - Library of useful routines for C programming 2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * Boston, MA 02111-1307, USA. 18 */ 19 20 /* 21 * Modified by the GLib Team and others 1997-2000. See the AUTHORS 22 * file for a list of people on the GLib Team. See the ChangeLog 23 * files for a list of changes. These files are distributed with 24 * GLib at ftp://ftp.gtk.org/pub/gtk/. 25 */ 26 27 #if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) 28 #error "Only <glib.h> can be included directly." 29 #endif 30 31 #ifndef __G_WIN32_H__ 32 #define __G_WIN32_H__ 33 34 #include <glib/gtypes.h> 35 36 #ifdef G_PLATFORM_WIN32 37 38 G_BEGIN_DECLS 39 40 #ifndef MAXPATHLEN 41 #define MAXPATHLEN 1024 42 #endif 43 44 #ifdef G_OS_WIN32 45 46 /* 47 * To get prototypes for the following POSIXish functions, you have to 48 * include the indicated non-POSIX headers. The functions are defined 49 * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). But note that 50 * for POSIX functions that take or return file names in the system 51 * codepage, in many cases you would want to use the GLib wrappers in 52 * gstdio.h and UTF-8 instead. 53 * 54 * getcwd: <direct.h> (MSVC), <io.h> (mingw32) 55 * getpid: <process.h> 56 * access: <io.h> 57 * unlink: <stdio.h> or <io.h> 58 * open, read, write, lseek, close: <io.h> 59 * rmdir: <io.h> 60 * pipe: <io.h> (actually, _pipe()) 61 */ 62 63 /* For some POSIX functions that are not provided by the MS runtime, 64 * we provide emulation functions in glib, which are prefixed with 65 * g_win32_. Or that was the idea at some time, but there is just one 66 * of those: 67 */ 68 gint g_win32_ftruncate (gint f, 69 guint size); 70 #endif /* G_OS_WIN32 */ 71 72 /* The MS setlocale uses locale names of the form "English_United 73 * States.1252" etc. We want the Unixish standard form "en", "zh_TW" 74 * etc. This function gets the current thread locale from Windows and 75 * returns it as a string of the above form for use in forming file 76 * names etc. The returned string should be deallocated with g_free(). 77 */ 78 gchar* g_win32_getlocale (void); 79 80 /* Translate a Win32 error code (as returned by GetLastError()) into 81 * the corresponding message. The returned string should be deallocated 82 * with g_free(). 83 */ 84 gchar* g_win32_error_message (gint error); 85 86 #ifndef G_DISABLE_DEPRECATED 87 88 #define g_win32_get_package_installation_directory g_win32_get_package_installation_directory_utf8 89 #define g_win32_get_package_installation_subdirectory g_win32_get_package_installation_subdirectory_utf8 90 91 gchar* g_win32_get_package_installation_directory (const gchar *package, 92 const gchar *dll_name); 93 94 gchar* g_win32_get_package_installation_subdirectory (const gchar *package, 95 const gchar *dll_name, 96 const gchar *subdir); 97 98 #endif 99 100 gchar* g_win32_get_package_installation_directory_of_module (gpointer hmodule); 101 102 guint g_win32_get_windows_version (void); 103 104 gchar* g_win32_locale_filename_from_utf8 (const gchar *utf8filename); 105 106 /* As of GLib 2.14 we only support NT-based Windows */ 107 #define G_WIN32_IS_NT_BASED() TRUE 108 #define G_WIN32_HAVE_WIDECHAR_API() TRUE 109 110 G_END_DECLS 111 112 #endif /* G_PLATFORM_WIN32 */ 113 114 #endif /* __G_WIN32_H__ */ 115