<!-- ##### SECTION Title ##### -->
Windows Compatibility Functions

<!-- ##### SECTION Short_Description ##### -->
UNIX emulation on Windows.

<!-- ##### SECTION Long_Description ##### -->
<para>

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### MACRO MAXPATHLEN ##### -->
<para>
Provided for UNIX emulation on Windows; equivalent to UNIX 
macro %MAXPATHLEN, which is the maximum length of a filename
(including full path).
</para>



<!-- ##### MACRO pipe ##### -->
<para>
Provided for UNIX emulation on Windows; see documentation for <function>pipe()</function>
in any UNIX manual.
</para>

@phandles: 


<!-- ##### FUNCTION g_win32_error_message ##### -->
<para>

</para>

@error: 
@Returns: 


<!-- ##### FUNCTION g_win32_getlocale ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION g_win32_get_package_installation_directory ##### -->
<para>

</para>

@package: 
@dll_name: 
@Returns: 


<!-- ##### FUNCTION g_win32_get_package_installation_subdirectory ##### -->
<para>

</para>

@package: 
@dll_name: 
@subdir: 
@Returns: 


<!-- ##### FUNCTION g_win32_get_windows_version ##### -->
<para>

</para>

@Returns: 


<!-- ##### MACRO G_WIN32_DLLMAIN_FOR_DLL_NAME ##### -->
<para>
On Windows, this macro defines a <function>DllMain()</function> function 
that stores the actual DLL name that the code being compiled will be 
included in.
</para>
<para>
On non-Windows platforms, expands to nothing.
</para>

@static: empty or "static".
@dll_name: the name of the (pointer to the) char array where the DLL name 
   will be stored. If this is used, you must also include 
   <filename>windows.h</filename>. If you need a more complex DLL entry 
   point function, you cannot use this.


<!-- ##### MACRO G_WIN32_HAVE_WIDECHAR_API ##### -->
<para>
On Windows, this macro defines an expression which evaluates to %TRUE
if the code is running on a version of Windows where the wide
character versions of the Win32 API functions, and the wide chaacter
versions of the C library functions work. (They are always present in
the DLLs, but don't work on Windows 9x and Me.)
</para>
<para>
On non-Windows platforms, it is not defined.
</para>

@Since: 2.6


<!-- ##### MACRO G_WIN32_IS_NT_BASED ##### -->
<para>
On Windows, this macro defines an expression which evaluates to %TRUE 
if the code is running on an NT-based Windows operating system.
</para>
<para>
On non-Windows platforms, it is not defined.
</para>

@Since: 2.6


