* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/.
+ * GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
+#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__G_LIB_H__) && !defined (GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
#ifndef __G_WIN32_H__
#define __G_WIN32_H__
-#include <gtypes.h>
+#include <glib/gtypes.h>
#ifdef G_PLATFORM_WIN32
-/* Windows emulation stubs for common Unix functions
- */
-
G_BEGIN_DECLS
#ifndef MAXPATHLEN
#define MAXPATHLEN 1024
#endif
-#ifdef _MSC_VER
-typedef int pid_t;
-#endif
-
#ifdef G_OS_WIN32
/*
* To get prototypes for the following POSIXish functions, you have to
* include the indicated non-POSIX headers. The functions are defined
- * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32).
+ * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). But note that
+ * for POSIX functions that take or return file names in the system
+ * codepage, in many cases you would want to use the GLib wrappers in
+ * gstdio.h and UTF-8 instead.
*
* getcwd: <direct.h> (MSVC), <io.h> (mingw32)
* getpid: <process.h>
* access: <io.h>
* unlink: <stdio.h> or <io.h>
* open, read, write, lseek, close: <io.h>
- * rmdir: <direct.h>
- * pipe: <direct.h>
+ * rmdir: <io.h>
+ * pipe: <io.h> (actually, _pipe())
*/
-/* pipe is not in OLDNAMES.LIB or -lmoldname-msvc. */
-#define pipe(phandles) _pipe (phandles, 4096, _O_BINARY)
-
/* For some POSIX functions that are not provided by the MS runtime,
- * we provide emulators in glib, which are prefixed with g_win32_.
+ * we provide emulation functions in glib, which are prefixed with
+ * g_win32_. Or that was the idea at some time, but there is just one
+ * of those:
*/
-# define ftruncate(fd, size) g_win32_ftruncate (fd, size)
-
-/* -lmingw32 also has emulations for these, but we need our own
- * for MSVC anyhow, so we might aswell use them always.
- */
-# define opendir g_win32_opendir
-# define readdir g_win32_readdir
-# define rewinddir g_win32_rewinddir
-# define closedir g_win32_closedir
-# define NAME_MAX 255
-
-struct dirent
-{
- gchar d_name[NAME_MAX + 1];
-};
-
-struct DIR
-{
- gchar *dir_name;
- gboolean just_opened;
- guint find_file_handle;
- gpointer find_file_data;
- struct dirent readdir_result;
-};
-typedef struct DIR DIR;
-
-/* emulation functions */
gint g_win32_ftruncate (gint f,
guint size);
-DIR* g_win32_opendir (const gchar *dirname);
-struct dirent* g_win32_readdir (DIR *dir);
-void g_win32_rewinddir (DIR *dir);
-gint g_win32_closedir (DIR *dir);
-
#endif /* G_OS_WIN32 */
/* The MS setlocale uses locale names of the form "English_United
*/
gchar* g_win32_error_message (gint error);
-gchar* g_win32_get_package_installation_directory (gchar *package,
- gchar *dll_name);
+#define g_win32_get_package_installation_directory g_win32_get_package_installation_directory_utf8
+#define g_win32_get_package_installation_subdirectory g_win32_get_package_installation_subdirectory_utf8
+
+gchar* g_win32_get_package_installation_directory (const gchar *package,
+ const gchar *dll_name);
+
+gchar* g_win32_get_package_installation_subdirectory (const gchar *package,
+ const gchar *dll_name,
+ const gchar *subdir);
+
+gchar* g_win32_get_package_installation_directory_of_module (gpointer hmodule);
+
+guint g_win32_get_windows_version (void);
+
+gchar* g_win32_locale_filename_from_utf8 (const gchar *utf8filename);
-gchar* g_win32_get_package_installation_subdirectory (gchar *package,
- gchar *dll_name,
- gchar *subdir);
+/* As of GLib 2.14 we only support NT-based Windows */
+#define G_WIN32_IS_NT_BASED() TRUE
+#define G_WIN32_HAVE_WIDECHAR_API() TRUE
G_END_DECLS