cleanup
[platform/upstream/glib.git] / glib / gwin32.h
index 87f3240..b466b63 100644 (file)
  * 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., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
  * 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/.
  */
 
 #ifndef __G_WIN32_H__
 #define __G_WIN32_H__
 
+#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
 #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>
@@ -57,17 +55,15 @@ typedef int pid_t;
  * unlink: <stdio.h> or <io.h>
  * open, read, write, lseek, close: <io.h>
  * rmdir: <io.h>
- * pipe: <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 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:
  */
+GLIB_AVAILABLE_IN_ALL
 gint           g_win32_ftruncate       (gint            f,
                                         guint           size);
 #endif /* G_OS_WIN32 */
@@ -78,31 +74,61 @@ gint                g_win32_ftruncate       (gint            f,
  * returns it as a string of the above form for use in forming file
  * names etc. The returned string should be deallocated with g_free().
  */
+GLIB_AVAILABLE_IN_ALL
 gchar*                 g_win32_getlocale  (void);
 
 /* Translate a Win32 error code (as returned by GetLastError()) into
  * the corresponding message. The returned string should be deallocated
  * with g_free().
  */
+GLIB_AVAILABLE_IN_ALL
 gchar*          g_win32_error_message (gint error);
 
-#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
+#ifndef _WIN64
+GLIB_DEPRECATED
+gchar*          g_win32_get_package_installation_directory (const gchar *package,
+                                                           const gchar *dll_name);
 
-gchar*          g_win32_get_package_installation_directory (gchar *package,
-                                                           gchar *dll_name);
+GLIB_DEPRECATED
+gchar*          g_win32_get_package_installation_subdirectory (const gchar *package,
+                                                              const gchar *dll_name,
+                                                              const gchar *subdir);
+#endif
 
-gchar*          g_win32_get_package_installation_subdirectory (gchar *package,
-                                                              gchar *dll_name,
-                                                              gchar *subdir);
+GLIB_AVAILABLE_IN_ALL
+gchar*          g_win32_get_package_installation_directory_of_module (gpointer hmodule);
 
+GLIB_AVAILABLE_IN_ALL
 guint          g_win32_get_windows_version (void);
 
-#define G_WIN32_IS_NT_BASED() (g_win32_get_windows_version () < 0x80000000)
-#define G_WIN32_HAVE_WIDECHAR_API() (G_WIN32_IS_NT_BASED ())
+GLIB_AVAILABLE_IN_ALL
+gchar*          g_win32_locale_filename_from_utf8 (const gchar *utf8filename);
+
+GLIB_AVAILABLE_IN_2_40
+gchar **        g_win32_get_command_line (void);
+
+/* 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
 
 #endif  /* G_PLATFORM_WIN32 */
 
+#ifdef G_OS_WIN32
+#ifdef _WIN64
+#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
+#endif
+
+GLIB_AVAILABLE_IN_ALL
+gchar *g_win32_get_package_installation_directory_utf8    (const gchar *package,
+                                                           const gchar *dll_name);
+GLIB_AVAILABLE_IN_ALL
+gchar *g_win32_get_package_installation_subdirectory_utf8 (const gchar *package,
+                                                           const gchar *dll_name,
+                                                           const gchar *subdir);
+
+#endif /* G_OS_WIN32 */
+
 #endif /* __G_WIN32_H__ */