Unicows.dll

Shachar Shemesh wine-patches at shemesh.biz
Wed Nov 26 17:12:09 CST 2003


The unbelieveable has finally happened. With lots of thanks to 
Alexandre, here is the first Unicows patch, covering 90% of the 
functionality.

License: LGPL

Changelog:
Shachar Shemesh <winecode at shemesh.biz>
configure.ac:

    * Add a directory to dlls called "unicows".
    * Make sure it's makefile is properly generated.

dlls/Makefile.in:

    * Add a "unicows" subdirectory, and the other commands related to
      the DLL loading.

dlls/unicows:

    * Implements the unicows DLL, by forwarding each Unicode call to the
      appropriate Unicode call.
    * For code purity reasons, there is a seperate C file for each DLL
      from which we import functions.
    * Each call in has to be individually coded in both spec file and
      appropriate C file.

Bugs:

    * Not all functions implemented by Wine are forwarded at the moment.
    * Due to the way the link-time library tries to load the DLL, dll
      overrides do not always affect this DLL. It may be necessary to
      manually replace the actual DLL with a symlink to the builtin one.
    * Wine's unicows unicode coverage is too wide. The original unicows
      is merely translating the unicode strings into ANSI, and passing
      them to the ANSI implementation. Wine's unicows gives the
      application a complete Unicode coverage. Due to the way unicows is
      supposed to be used, this is not expected to cause problems.
      However, the linker library allows an application to override a
      unicows function. If the application overrides some of the
      functions to bypass bugs/deficiencies in the native unicows.dll
      implementation, this override may break things for Wine.


-- 
Shachar Shemesh
Open Source integration & consulting
Home page & resume - http://www.shemesh.biz/

-------------- next part --------------
Index: configure.ac
===================================================================
RCS file: /home/sun/sources/cvs/wine/configure.ac,v
retrieving revision 1.211
diff -u -r1.211 configure.ac
--- configure.ac	25 Nov 2003 03:31:26 -0000	1.211
+++ configure.ac	25 Nov 2003 12:43:54 -0000
@@ -1578,6 +1578,7 @@
 dlls/tapi32/Makefile
 dlls/ttydrv/Makefile
 dlls/twain/Makefile
+dlls/unicows/Makefile
 dlls/url/Makefile
 dlls/urlmon/Makefile
 dlls/urlmon/tests/Makefile
Index: dlls/Makefile.in
===================================================================
RCS file: /home/sun/sources/cvs/wine/dlls/Makefile.in,v
retrieving revision 1.191
diff -u -r1.191 Makefile.in
--- dlls/Makefile.in	14 Nov 2003 03:50:35 -0000	1.191
+++ dlls/Makefile.in	17 Nov 2003 10:43:21 -0000
@@ -98,6 +98,7 @@
 	tapi32 \
 	ttydrv \
 	twain \
+	unicows \
 	url \
 	urlmon \
 	user \
@@ -293,6 +294,7 @@
 	tapi32.dll$(DLLEXT) \
 	ttydrv.dll$(DLLEXT) \
 	twain_32.dll$(DLLEXT) \
+	unicows.dll$(DLLEXT) \
 	url.dll$(DLLEXT) \
 	urlmon.dll$(DLLEXT) \
 	user32.dll$(DLLEXT) \
@@ -618,6 +620,9 @@
 twain_32.dll$(DLLEXT): twain/twain_32.dll$(DLLEXT)
 	$(RM) $@ && $(LN_S) twain/twain_32.dll$(DLLEXT) $@
 
+unicows.dll$(DLLEXT): unicows/unicows.dll$(DLLEXT) $@
+	$(RM) $@ && $(LN_S) unicows/unicows.dll$(DLLEXT) $@
+
 url.dll$(DLLEXT): url/url.dll$(DLLEXT)
 	$(RM) $@ && $(LN_S) url/url.dll$(DLLEXT) $@
 
@@ -788,6 +793,7 @@
 	libtapi32 \
 	libttydrv \
 	libtwain_32 \
+	libunicows \
 	liburl \
 	liburlmon \
 	libuser32 \
@@ -1229,6 +1235,11 @@
 libtwain_32.a: twain/twain_32.spec.def
 	$(DLLTOOL) -k -l $@ -d twain/twain_32.spec.def
 
+libunicows.def: unicows/unicows.spec.def
+	$(RM) $@ && $(LN_S) unicows/unicows.spec.def $@
+libunicows.a: unicows/unicows.spec.def
+	$(DLLTOOL) -k -l $@ -d unicows/unicows.spec.def
+
 liburl.def: url/url.spec.def
 	$(RM) $@ && $(LN_S) url/url.spec.def $@
 liburl.a: url/url.spec.def
@@ -1413,6 +1424,7 @@
 tapi32/tapi32.spec.def: $(WINEBUILD)
 ttydrv/ttydrv.spec.def: $(WINEBUILD)
 twain/twain_32.spec.def: $(WINEBUILD)
+unicows/unicows.spec.def: $(WINEBUILD)
 url/url.spec.def: $(WINEBUILD)
 urlmon/urlmon.spec.def: $(WINEBUILD)
 user/user32.spec.def: $(WINEBUILD)
@@ -1536,6 +1548,7 @@
 tapi32/tapi32.dll$(DLLEXT): tapi32
 ttydrv/ttydrv.dll$(DLLEXT): ttydrv
 twain/twain_32.dll$(DLLEXT): twain
+unicows/unicows.dll$(DLLEXT): unicows
 url/url.dll$(DLLEXT): url
 urlmon/urlmon.dll$(DLLEXT): urlmon
 user/user32.dll$(DLLEXT): user
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/Makefile.in	2003-11-26 23:38:23.000000000 +0200
@@ -0,0 +1,31 @@
+EXTRADEFS = -D_UNICOWS_
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = unicows.dll
+IMPORTS   = advapi32 avicap32 comdlg32 gdi32 kernel32 mpr msvfw32 oledlg rasapi32 shell32 user32 winmm winspool version
+
+LDDLLFLAGS = @LDDLLFLAGS@
+SYMBOLFILE = $(MODULE).tmp.o
+
+C_SRCS = \
+	advapi.c \
+	avicap.c \
+	comdlg.c \
+	gdi.c \
+	kernel.c \
+	main.c \
+	mpr.c \
+	msvfw32.c \
+	oledlg.c \
+	rasapi.c \
+	shell.c \
+	user.c \
+	version.c \
+	winmm.c \
+	winspool.c
+
+ at MAKE_DLL_RULES@
+
+### Dependencies:
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/advapi.c	2003-11-27 00:45:31.000000000 +0200
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wincrypt.h"
+#include "winreg.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC5(BOOL WINAPI, CryptAcquireContextW, HCRYPTPROV *, LPCWSTR, LPCWSTR, DWORD, DWORD )
+FORWARDFUNC6(BOOL WINAPI, CryptEnumProviderTypesW, DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD * )
+FORWARDFUNC6(BOOL WINAPI, CryptEnumProvidersW, DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD * )
+FORWARDFUNC5(BOOL WINAPI, CryptGetDefaultProviderW, DWORD, DWORD *, DWORD, LPWSTR, DWORD * )
+FORWARDFUNC4(BOOL WINAPI, CryptSetProviderExW, LPCWSTR, DWORD, DWORD *, DWORD )
+FORWARDFUNC2(BOOL WINAPI, CryptSetProviderW, LPCWSTR, DWORD )
+FORWARDFUNC2(BOOL WINAPI, GetUserNameW, LPWSTR, LPDWORD )
+FORWARDFUNC3(BOOL WINAPI, IsTextUnicode, CONST LPVOID, int, LPINT )
+FORWARDFUNC3(LONG WINAPI, RegConnectRegistryW, LPCWSTR, HKEY, PHKEY )
+FORWARDFUNC9(DWORD WINAPI, RegCreateKeyExW, HKEY, LPCWSTR, DWORD, LPCWSTR, DWORD, REGSAM, SECURITY_ATTRIBUTES *, PHKEY, LPDWORD )
+FORWARDFUNC3(DWORD WINAPI, RegCreateKeyW, HKEY, LPCWSTR, PHKEY )
+FORWARDFUNC2(DWORD WINAPI, RegDeleteKeyW, HKEY, LPCWSTR )
+FORWARDFUNC2(DWORD WINAPI, RegDeleteValueW, HKEY, LPCWSTR )
+FORWARDFUNC8(DWORD WINAPI, RegEnumKeyExW, HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPWSTR, LPDWORD, FILETIME * )
+FORWARDFUNC4(DWORD WINAPI, RegEnumKeyW, HKEY, DWORD, LPWSTR, DWORD )
+FORWARDFUNC8(DWORD WINAPI, RegEnumValueW, HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD )
+FORWARDFUNC3(LONG WINAPI, RegLoadKeyW, HKEY, LPCWSTR, LPCWSTR )
+FORWARDFUNC5(DWORD WINAPI, RegOpenKeyExW, HKEY, LPCWSTR, DWORD, REGSAM, PHKEY )
+FORWARDFUNC3(DWORD WINAPI, RegOpenKeyW, HKEY, LPCWSTR, PHKEY )
+FORWARDFUNC12(DWORD WINAPI, RegQueryInfoKeyW, HKEY, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, FILETIME * )
+FORWARDFUNC5(DWORD WINAPI, RegQueryMultipleValuesW, HKEY, PVALENTW, DWORD, LPWSTR, LPDWORD )
+FORWARDFUNC6(DWORD WINAPI, RegQueryValueExW, HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD )
+FORWARDFUNC4(DWORD WINAPI, RegQueryValueW, HKEY, LPCWSTR, LPWSTR, LPLONG )
+FORWARDFUNC4(LONG WINAPI, RegReplaceKeyW, HKEY, LPCWSTR, LPCWSTR, LPCWSTR )
+FORWARDFUNC3(LONG WINAPI, RegSaveKeyW, HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES )
+FORWARDFUNC6(DWORD WINAPI, RegSetValueExW, HKEY, LPCWSTR, DWORD, DWORD, CONST BYTE *, DWORD )
+FORWARDFUNC5(DWORD WINAPI, RegSetValueW, HKEY, LPCWSTR, DWORD, LPCWSTR, DWORD )
+FORWARDFUNC2(LONG WINAPI, RegUnLoadKeyW, HKEY, LPCWSTR )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/avicap.c	2003-11-27 00:45:43.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/comdlg.c	2003-11-27 00:45:51.000000000 +0200
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "commdlg.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC1( BOOL WINAPI, ChooseColorW, LPCHOOSECOLORW )
+FORWARDFUNC1( BOOL WINAPI, ChooseFontW, LPCHOOSEFONTW )
+FORWARDFUNC1( HWND WINAPI, FindTextW, LPFINDREPLACEW )
+FORWARDFUNC3( short WINAPI, GetFileTitleW, LPCWSTR, LPWSTR, UINT )
+FORWARDFUNC1( BOOL WINAPI, GetOpenFileNameW, LPOPENFILENAMEW )
+FORWARDFUNC1( BOOL WINAPI, GetSaveFileNameW, LPOPENFILENAMEW )
+FORWARDFUNC1( BOOL WINAPI, PageSetupDlgW, LPPAGESETUPDLGW )
+FORWARDFUNC1( BOOL WINAPI, PrintDlgW, LPPRINTDLGW )
+FORWARDFUNC1( HWND WINAPI, ReplaceTextW, LPFINDREPLACEW )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/gdi.c	2003-11-27 00:46:01.000000000 +0200
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC1(INT WINAPI, AddFontResourceW, LPCWSTR )
+FORWARDFUNC2(HMETAFILE WINAPI, CopyMetaFileW, HMETAFILE, LPCWSTR )
+FORWARDFUNC1(HCOLORSPACE WINAPI, CreateColorSpaceW, LPLOGCOLORSPACEW )
+FORWARDFUNC4(HDC WINAPI, CreateDCW, LPCWSTR, LPCWSTR, LPCWSTR, const DEVMODEW* )
+FORWARDFUNC4(HDC WINAPI, CreateEnhMetaFileW, HDC, LPCWSTR, const RECT*, LPCWSTR )
+FORWARDFUNC1(HFONT WINAPI, CreateFontIndirectW, const LOGFONTW* )
+FORWARDFUNC14(HFONT WINAPI, CreateFontW, INT, INT, INT, INT, INT, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR )
+FORWARDFUNC4(HDC WINAPI, CreateICW, LPCWSTR, LPCWSTR, LPCWSTR, const DEVMODEW* )
+FORWARDFUNC1(HDC WINAPI, CreateMetaFileW, LPCWSTR )
+FORWARDFUNC4(BOOL WINAPI, CreateScalableFontResourceW, DWORD, LPCWSTR, LPCWSTR, LPCWSTR )
+FORWARDFUNC5(INT WINAPI, EnumFontFamiliesExW, HDC, LPLOGFONTW, FONTENUMPROCW, LPARAM, DWORD )
+FORWARDFUNC4(INT WINAPI, EnumFontFamiliesW, HDC, LPCWSTR, FONTENUMPROCW, LPARAM )
+FORWARDFUNC4(INT WINAPI, EnumFontsW, HDC, LPCWSTR, FONTENUMPROCW, LPARAM )
+FORWARDFUNC8(BOOL WINAPI, ExtTextOutW, HDC, INT, INT, UINT, const RECT*, LPCWSTR, UINT, const INT* )
+FORWARDFUNC4(BOOL WINAPI, GetCharABCWidthsFloatW, HDC, UINT, UINT, LPABCFLOAT )
+FORWARDFUNC4(BOOL WINAPI, GetCharABCWidthsW, HDC, UINT, UINT, LPABC )
+FORWARDFUNC4(BOOL WINAPI, GetCharWidth32W, HDC, UINT, UINT, LPINT )
+FORWARDFUNC4(BOOL WINAPI, GetCharWidthFloatW, HDC, UINT, UINT, PFLOAT )
+FORWARDFUNC6(DWORD WINAPI, GetCharacterPlacementW, HDC, LPCWSTR, INT, INT, GCP_RESULTSW*, DWORD )
+FORWARDFUNC3(UINT WINAPI, GetEnhMetaFileDescriptionW, HENHMETAFILE, UINT, LPWSTR )
+FORWARDFUNC1(HENHMETAFILE WINAPI, GetEnhMetaFileW, LPCWSTR )
+FORWARDFUNC7(DWORD WINAPI, GetGlyphOutlineW, HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, const MAT2* )
+FORWARDFUNC3(DWORD WINAPI, GetKerningPairsW, HDC, DWORD, LPKERNINGPAIR )
+FORWARDFUNC1(HMETAFILE WINAPI, GetMetaFileW, LPCWSTR )
+FORWARDFUNC3(INT WINAPI, GetObjectW, HANDLE, INT, LPVOID )
+FORWARDFUNC3(UINT WINAPI, GetOutlineTextMetricsW, HDC, UINT, LPOUTLINETEXTMETRICW )
+FORWARDFUNC7(BOOL WINAPI, GetTextExtentExPointW, HDC, LPCWSTR, INT, INT, LPINT, LPINT, LPSIZE )
+FORWARDFUNC4(BOOL WINAPI, GetTextExtentPoint32W, HDC, LPCWSTR, INT, LPSIZE )
+FORWARDFUNC4(BOOL WINAPI, GetTextExtentPointW, HDC, LPCWSTR, INT, LPSIZE )
+FORWARDFUNC3(INT WINAPI, GetTextFaceW, HDC, INT, LPWSTR )
+FORWARDFUNC2(BOOL WINAPI, GetTextMetricsW, HDC, LPTEXTMETRICW )
+FORWARDFUNC3(BOOL WINAPI, PolyTextOutW, HDC, PPOLYTEXTW, INT )
+FORWARDFUNC1(BOOL WINAPI, RemoveFontResourceW, LPCWSTR )
+FORWARDFUNC2(HDC WINAPI, ResetDCW, HDC, const DEVMODEW * )
+FORWARDFUNC2(INT WINAPI, StartDocW, HDC, const DOCINFOW* )
+FORWARDFUNC5(BOOL WINAPI, TextOutW, HDC, INT, INT, LPCWSTR, INT )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/kernel.c	2003-11-27 00:46:31.000000000 +0200
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "winnls.h"
+#include "wincon.h"
+#include "winver.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC1(ATOM WINAPI, AddAtomW, LPCWSTR )
+FORWARDFUNC2(HANDLE WINAPI, BeginUpdateResourceA, LPCSTR, BOOL )
+FORWARDFUNC2(HANDLE WINAPI, BeginUpdateResourceW, LPCWSTR, BOOL )
+FORWARDFUNC3(BOOL WINAPI, BuildCommDCBAndTimeoutsW, LPCWSTR, LPDCB, LPCOMMTIMEOUTS )
+FORWARDFUNC2(BOOL WINAPI, BuildCommDCBW, LPCWSTR, LPDCB )
+FORWARDFUNC7(BOOL WINAPI, CallNamedPipeW, LPCWSTR, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, DWORD )
+FORWARDFUNC3(BOOL WINAPI, CommConfigDialogW, LPCWSTR, HANDLE, LPCOMMCONFIG )
+FORWARDFUNC6(INT WINAPI, CompareStringW, LCID, DWORD, LPCWSTR, INT, LPCWSTR, INT )
+FORWARDFUNC6(BOOL WINAPI, CopyFileExW, LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD )
+FORWARDFUNC3(BOOL WINAPI, CopyFileW, LPCWSTR, LPCWSTR, BOOL )
+FORWARDFUNC3(BOOL WINAPI, CreateDirectoryExW, LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES )
+FORWARDFUNC2(BOOL WINAPI, CreateDirectoryW, LPCWSTR, LPSECURITY_ATTRIBUTES )
+FORWARDFUNC4(HANDLE WINAPI, CreateEventW, SECURITY_ATTRIBUTES *, BOOL, BOOL, LPCWSTR )
+FORWARDFUNC6(HANDLE WINAPI, CreateFileMappingW, HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR )
+FORWARDFUNC7(HANDLE WINAPI, CreateFileW, LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE )
+FORWARDFUNC4(HANDLE WINAPI, CreateMailslotW, LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES )
+FORWARDFUNC3(HANDLE WINAPI, CreateMutexW, SECURITY_ATTRIBUTES *, BOOL, LPCWSTR )
+FORWARDFUNC8(HANDLE WINAPI, CreateNamedPipeW, LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES )
+FORWARDFUNC10(BOOL WINAPI, CreateProcessW, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION )
+FORWARDFUNC4(HANDLE WINAPI, CreateSemaphoreW, SECURITY_ATTRIBUTES *, LONG, LONG, LPCWSTR )
+FORWARDFUNC3(HANDLE WINAPI, CreateWaitableTimerW, SECURITY_ATTRIBUTES *, BOOL, LPCWSTR )
+FORWARDFUNC1(BOOL WINAPI, DeleteFileW, LPCWSTR )
+FORWARDFUNC2(BOOL WINAPI, EndUpdateResourceA, HANDLE, BOOL )
+FORWARDFUNC2(BOOL WINAPI, EndUpdateResourceW, HANDLE, BOOL )
+FORWARDFUNC3(BOOL WINAPI, EnumDateFormatsW, DATEFMT_ENUMPROCW, LCID, DWORD )
+FORWARDFUNC2(BOOL WINAPI, EnumSystemCodePagesW, CODEPAGE_ENUMPROCW, DWORD )
+FORWARDFUNC2(BOOL WINAPI, EnumSystemLocalesW, LOCALE_ENUMPROCW, DWORD )
+FORWARDFUNC3(BOOL WINAPI, EnumTimeFormatsW, TIMEFMT_ENUMPROCW, LCID, DWORD )
+FORWARDFUNC3(DWORD WINAPI, ExpandEnvironmentStringsW, LPCWSTR, LPWSTR, DWORD )
+FORWARDFUNC2(void WINAPI, FatalAppExitW, UINT, LPCWSTR )
+FORWARDFUNC5(BOOL WINAPI, FillConsoleOutputCharacterW, HANDLE, WCHAR, DWORD, COORD, LPDWORD )
+FORWARDFUNC1(ATOM WINAPI, FindAtomW, LPCWSTR )
+FORWARDFUNC3(HANDLE WINAPI, FindFirstChangeNotificationW, LPCWSTR, BOOL, DWORD )
+FORWARDFUNC2(HANDLE WINAPI, FindFirstFileW, LPCWSTR, WIN32_FIND_DATAW * )
+FORWARDFUNC2(BOOL WINAPI, FindNextFileW, HANDLE, WIN32_FIND_DATAW * )
+FORWARDFUNC4(HRSRC WINAPI, FindResourceExW, HMODULE, LPCWSTR, LPCWSTR, WORD )
+FORWARDFUNC3(HRSRC WINAPI, FindResourceW, HINSTANCE, LPCWSTR, LPCWSTR )
+FORWARDFUNC7(DWORD WINAPI, FormatMessageW, DWORD	, LPCVOID	, DWORD	, DWORD	, LPWSTR	, DWORD	, va_list* )
+FORWARDFUNC1(BOOL WINAPI, FreeEnvironmentStringsW, LPWSTR )
+FORWARDFUNC3(UINT WINAPI, GetAtomNameW, ATOM, LPWSTR, INT )
+FORWARDFUNC2(BOOL WINAPI, GetCPInfo, UINT, LPCPINFO )
+FORWARDFUNC3(BOOL WINAPI, GetCPInfoExW, UINT, DWORD, LPCPINFOEXW )
+FORWARDFUNC6(int WINAPI, GetCalendarInfoW, LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD )
+FORWARDFUNC2(BOOL WINAPI, GetComputerNameW, LPWSTR, LPDWORD )
+FORWARDFUNC2(DWORD WINAPI, GetConsoleTitleW, LPWSTR, DWORD )
+FORWARDFUNC6(INT WINAPI, GetCurrencyFormatW, LCID, DWORD, LPCWSTR, const CURRENCYFMTW *, LPWSTR, int )
+FORWARDFUNC2(UINT WINAPI, GetCurrentDirectoryW, UINT, LPWSTR )
+FORWARDFUNC6(INT WINAPI, GetDateFormatW, LCID, DWORD, const SYSTEMTIME*, LPCWSTR, LPWSTR, INT )
+FORWARDFUNC3(BOOL WINAPI, GetDefaultCommConfigW, LPCWSTR, LPCOMMCONFIG, LPDWORD )
+FORWARDFUNC4(BOOL WINAPI, GetDiskFreeSpaceExW, LPCWSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER )
+FORWARDFUNC5(BOOL WINAPI, GetDiskFreeSpaceW, LPCWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD )
+FORWARDFUNC1(UINT WINAPI, GetDriveTypeW, LPCWSTR )
+FORWARDFUNC0(LPWSTR WINAPI, GetEnvironmentStringsW )
+FORWARDFUNC3(DWORD WINAPI, GetEnvironmentVariableW, LPCWSTR, LPWSTR, DWORD )
+FORWARDFUNC3(BOOL WINAPI, GetFileAttributesExW, LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID )
+FORWARDFUNC1(DWORD WINAPI, GetFileAttributesW, LPCWSTR )
+FORWARDFUNC4(DWORD WINAPI, GetFullPathNameW, LPCWSTR, DWORD, LPWSTR, LPWSTR * )
+FORWARDFUNC4(INT WINAPI, GetLocaleInfoW, LCID, LCTYPE, LPWSTR, INT )
+FORWARDFUNC2(UINT WINAPI, GetLogicalDriveStringsW, UINT, LPWSTR )
+FORWARDFUNC3(DWORD WINAPI, GetLongPathNameW, LPCWSTR, LPWSTR, DWORD )
+FORWARDFUNC3(DWORD WINAPI, GetModuleFileNameW, HMODULE, LPWSTR, DWORD )
+FORWARDFUNC1(HMODULE WINAPI, GetModuleHandleW, LPCWSTR )
+FORWARDFUNC7(BOOL WINAPI, GetNamedPipeHandleStateW, HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPWSTR, DWORD )
+FORWARDFUNC6(INT WINAPI, GetNumberFormatW, LCID, DWORD, LPCWSTR, const NUMBERFMTW *, LPWSTR, int )
+FORWARDFUNC4(UINT WINAPI, GetPrivateProfileIntW, LPCWSTR, LPCWSTR, INT, LPCWSTR )
+FORWARDFUNC3(DWORD WINAPI, GetPrivateProfileSectionNamesW, LPWSTR, DWORD, LPCWSTR )
+FORWARDFUNC4(INT WINAPI, GetPrivateProfileSectionW, LPCWSTR, LPWSTR, DWORD, LPCWSTR )
+FORWARDFUNC6(INT WINAPI, GetPrivateProfileStringW, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, UINT, LPCWSTR )
+FORWARDFUNC5(BOOL WINAPI, GetPrivateProfileStructW, LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR )
+FORWARDFUNC2(FARPROC WINAPI, GetProcAddress, HMODULE, LPCSTR )
+FORWARDFUNC3(UINT WINAPI, GetProfileIntW, LPCWSTR, LPCWSTR, INT )
+FORWARDFUNC3(INT WINAPI, GetProfileSectionW, LPCWSTR, LPWSTR, DWORD )
+FORWARDFUNC5(INT WINAPI, GetProfileStringW, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, UINT )
+FORWARDFUNC3(DWORD WINAPI, GetShortPathNameW, LPCWSTR, LPWSTR, DWORD )
+FORWARDFUNC1(VOID WINAPI, GetStartupInfoW, LPSTARTUPINFOW )
+FORWARDFUNC5(BOOL WINAPI, GetStringTypeExW, LCID, DWORD, LPCWSTR, INT, LPWORD )
+FORWARDFUNC4(BOOL WINAPI, GetStringTypeW, DWORD, LPCWSTR, INT, LPWORD )
+FORWARDFUNC2(UINT WINAPI, GetSystemDirectoryW, LPWSTR, UINT )
+FORWARDFUNC2(UINT WINAPI, GetSystemWindowsDirectoryW, LPWSTR, UINT )
+FORWARDFUNC4(UINT WINAPI, GetTempFileNameW, LPCWSTR, LPCWSTR, UINT, LPWSTR )
+FORWARDFUNC2(UINT WINAPI, GetTempPathW, UINT, LPWSTR )
+FORWARDFUNC6(INT WINAPI, GetTimeFormatW, LCID, DWORD, const SYSTEMTIME*, LPCWSTR, LPWSTR, INT )
+FORWARDFUNC1(BOOL WINAPI, GetVersionExW, OSVERSIONINFOW * )
+FORWARDFUNC8(BOOL WINAPI, GetVolumeInformationW, LPCWSTR, LPWSTR, DWORD, DWORD *, DWORD *, DWORD *, LPWSTR, DWORD )
+FORWARDFUNC2(UINT WINAPI, GetWindowsDirectoryW, LPWSTR, UINT )
+FORWARDFUNC1(ATOM WINAPI, GlobalAddAtomW, LPCWSTR )
+FORWARDFUNC1(ATOM WINAPI, GlobalFindAtomW, LPCWSTR )
+FORWARDFUNC3(UINT WINAPI, GlobalGetAtomNameW, ATOM, LPWSTR, INT )
+FORWARDFUNC2(BOOL WINAPI, IsBadStringPtrW, LPCWSTR, UINT )
+FORWARDFUNC1(BOOL WINAPI, IsValidCodePage, UINT )
+FORWARDFUNC6(INT WINAPI, LCMapStringW, LCID, DWORD, LPCWSTR, INT, LPWSTR, INT )
+FORWARDFUNC3(HMODULE WINAPI, LoadLibraryExW, LPCWSTR, HANDLE, DWORD )
+FORWARDFUNC1(HMODULE WINAPI, LoadLibraryW, LPCWSTR )
+FORWARDFUNC2(BOOL WINAPI, MoveFileW, LPCWSTR, LPCWSTR )
+FORWARDFUNC6(INT WINAPI, MultiByteToWideChar, UINT, DWORD, LPCSTR, INT, LPWSTR, INT )
+FORWARDFUNC3(HANDLE WINAPI, OpenEventW, DWORD, BOOL, LPCWSTR )
+FORWARDFUNC3(HANDLE WINAPI, OpenFileMappingW, DWORD, BOOL, LPCWSTR )
+FORWARDFUNC3(HANDLE WINAPI, OpenMutexW, DWORD, BOOL, LPCWSTR )
+FORWARDFUNC3(HANDLE WINAPI, OpenSemaphoreW, DWORD, BOOL, LPCWSTR )
+FORWARDFUNC3(HANDLE WINAPI, OpenWaitableTimerW, DWORD, BOOL, LPCWSTR )
+FORWARDFUNC1(void WINAPI, OutputDebugStringW, LPCWSTR )
+FORWARDFUNC4(BOOL WINAPI, PeekConsoleInputW, HANDLE, LPINPUT_RECORD, DWORD, LPDWORD )
+FORWARDFUNC3(DWORD WINAPI, QueryDosDeviceW, LPCWSTR, LPWSTR, DWORD )
+FORWARDFUNC4(BOOL WINAPI, ReadConsoleInputW, HANDLE, LPINPUT_RECORD, DWORD, LPDWORD )
+FORWARDFUNC5(BOOL WINAPI, ReadConsoleOutputCharacterW, HANDLE, LPWSTR, DWORD, COORD, LPDWORD )
+FORWARDFUNC5(BOOL WINAPI, ReadConsoleOutputW, HANDLE, LPCHAR_INFO, COORD, COORD, LPSMALL_RECT )
+FORWARDFUNC5(BOOL WINAPI, ReadConsoleW, HANDLE, LPVOID, DWORD, LPDWORD, LPVOID )
+FORWARDFUNC1(BOOL WINAPI, RemoveDirectoryW, LPCWSTR )
+FORWARDFUNC5(BOOL WINAPI, ScrollConsoleScreenBufferW, HANDLE, LPSMALL_RECT, LPSMALL_RECT, COORD, LPCHAR_INFO )
+FORWARDFUNC6(DWORD WINAPI, SearchPathW, LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR * )
+FORWARDFUNC4(int WINAPI, SetCalendarInfoW, LCID, CALID, CALTYPE, LPCWSTR )
+FORWARDFUNC1(BOOL WINAPI, SetComputerNameW, LPCWSTR )
+FORWARDFUNC1( BOOL WINAPI, SetConsoleTitleW, LPCWSTR )
+FORWARDFUNC1(BOOL WINAPI, SetCurrentDirectoryW, LPCWSTR )
+FORWARDFUNC3(BOOL WINAPI, SetDefaultCommConfigW, LPCWSTR, LPCOMMCONFIG, DWORD )
+FORWARDFUNC2(BOOL WINAPI, SetEnvironmentVariableW, LPCWSTR, LPCWSTR )
+FORWARDFUNC2(BOOL WINAPI, SetFileAttributesW, LPCWSTR, DWORD )
+FORWARDFUNC3(BOOL WINAPI, SetLocaleInfoW, LCID, LCTYPE, LPCWSTR )
+FORWARDFUNC2(BOOL WINAPI, SetVolumeLabelW, LPCWSTR, LPCWSTR )
+FORWARDFUNC6(BOOL WINAPI, UpdateResourceA, HANDLE, LPCSTR, LPCSTR, WORD, LPVOID, DWORD )
+FORWARDFUNC6(BOOL WINAPI, UpdateResourceW, HANDLE, LPCWSTR, LPCWSTR, WORD, LPVOID, DWORD )
+FORWARDFUNC3(DWORD WINAPI, VerLanguageNameW, UINT, LPWSTR, UINT )
+FORWARDFUNC2(BOOL WINAPI, WaitNamedPipeW, LPCWSTR, DWORD )
+FORWARDFUNC8(INT WINAPI, WideCharToMultiByte, UINT, DWORD, LPCWSTR, INT, LPSTR, INT, LPCSTR, BOOL * )
+FORWARDFUNC4(BOOL WINAPI, WriteConsoleInputW, HANDLE, const INPUT_RECORD *, DWORD, LPDWORD )
+FORWARDFUNC5(BOOL WINAPI, WriteConsoleOutputCharacterW, HANDLE, LPCWSTR, DWORD, COORD, LPDWORD )
+FORWARDFUNC5(BOOL WINAPI, WriteConsoleOutputW, HANDLE, const CHAR_INFO *, COORD, COORD, LPSMALL_RECT )
+FORWARDFUNC5(BOOL WINAPI, WriteConsoleW, HANDLE, LPCVOID, DWORD, LPDWORD, LPVOID )
+FORWARDFUNC3(BOOL WINAPI, WritePrivateProfileSectionW, LPCWSTR, LPCWSTR, LPCWSTR )
+FORWARDFUNC4(BOOL WINAPI, WritePrivateProfileStringW, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR )
+FORWARDFUNC5(BOOL WINAPI, WritePrivateProfileStructW, LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR )
+FORWARDFUNC2(BOOL WINAPI, WriteProfileSectionW, LPCWSTR, LPCWSTR )
+FORWARDFUNC3(BOOL WINAPI, WriteProfileStringW, LPCWSTR, LPCWSTR, LPCWSTR )
+FORWARDFUNC2(LPWSTR WINAPI, lstrcatW, LPWSTR, LPCWSTR )
+FORWARDFUNC2(int WINAPI, lstrcmpW, LPCWSTR, LPCWSTR )
+FORWARDFUNC2(int WINAPI, lstrcmpiW, LPCWSTR, LPCWSTR )
+FORWARDFUNC2(LPWSTR WINAPI, lstrcpyW, LPWSTR, LPCWSTR )
+FORWARDFUNC3(LPWSTR WINAPI, lstrcpynW, LPWSTR, LPCWSTR, INT )
+FORWARDFUNC1(INT WINAPI, lstrlenW, LPCWSTR )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/main.c	2003-11-27 00:35:08.000000000 +0200
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * 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
+ */
+
+/* The "Microsoft Layer for Unicode on Win9x Systems (MSLU)" library is
+ * an attempt to bring NT Unicode support to the Unicodeless Win 9x systems.
+ * This works very poorly with Wine, as the library scrambles to translate
+ * to ANSI things that are actually better handled by Wine's internal
+ * Unicode support. Just because wine claims to be a version that does not
+ * support something does not mean Wine really doesn't support it.
+ *
+ * As such, this library is a pretty straightforward affair - catch the system
+ * call, forward it to the standard Wine system call of the same name - end of
+ * story.
+ *
+ * As of 28-Oct-2003, 63 functions exported by Unicows.dll version 1.0.4018.0 are
+ * not implemented by Wine.
+ *
+ * If your application stumbles upon a stub while linking with unicows.dll, check
+ * whether the relevant function is available in Wine. If it is, just follow my lead
+ * as I did for the other functions. If not - leave as a stub.
+ *
+ * In order to add a new function, you need to change the following locations:
+ * unicows.spec - change from "stub" to the real prototype.
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+BOOL APIENTRY DllMain( HINSTANCE hModule,
+                       DWORD  ul_reason_for_call,
+                       LPVOID lpReserved
+                                         )
+{
+   switch( ul_reason_for_call )
+   {
+   case DLL_PROCESS_ATTACH:
+      TRACE("Attach\n");
+      break;
+   case DLL_PROCESS_DETACH:
+      TRACE("Detach\n");
+      break;
+   }
+
+   return TRUE;
+}
+
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/mpr.c	2003-11-27 00:46:55.000000000 +0200
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/msvfw32.c	2003-11-27 00:47:04.000000000 +0200
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "commdlg.h"
+#include "vfw.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC1( BOOL WINAPI, GetOpenFileNamePreviewW, LPOPENFILENAMEW )
+FORWARDFUNC1( BOOL WINAPI, GetSaveFileNamePreviewW, LPOPENFILENAMEW )
+FORWARDFUNC4( HWND VFWAPIV, MCIWndCreateW, HWND, HINSTANCE, DWORD, LPCWSTR )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/oledlg.c	2003-11-27 00:47:16.000000000 +0200
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/rasapi.c	2003-11-27 00:48:11.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/shell.c	2003-11-27 00:48:19.000000000 +0200
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "shtypes.h"
+#include "shellapi.h"
+#include "shlobj.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC4( UINT WINAPI, DragQueryFileW, HDROP, UINT, LPWSTR, UINT )
+FORWARDFUNC5( UINT WINAPI, ExtractIconExW, LPCWSTR, INT, HICON *, HICON *, UINT )
+FORWARDFUNC3( HICON WINAPI, ExtractIconW, HINSTANCE, LPCWSTR, UINT )
+FORWARDFUNC3( HINSTANCE WINAPI, FindExecutableW, LPCWSTR, LPCWSTR, LPWSTR )
+FORWARDFUNC1( LPITEMIDLIST WINAPI, SHBrowseForFolderW, LPBROWSEINFOW )
+FORWARDFUNC4( void WINAPI, SHChangeNotify, LONG, UINT, LPCVOID, LPCVOID )
+FORWARDFUNC1( DWORD WINAPI, SHFileOperationW, LPSHFILEOPSTRUCTW )
+FORWARDFUNC5( DWORD WINAPI, SHGetFileInfoW, LPCWSTR, DWORD, SHFILEINFOW *, UINT, UINT )
+FORWARDFUNC2( BOOL WINAPI, SHGetPathFromIDListW, LPCITEMIDLIST, LPWSTR )
+FORWARDFUNC4( BOOL WINAPI, ShellAboutW, HWND, LPCWSTR, LPCWSTR, HICON )
+FORWARDFUNC1( BOOL WINAPI, ShellExecuteExW, LPSHELLEXECUTEINFOW )
+FORWARDFUNC6( HINSTANCE WINAPI, ShellExecuteW, HWND, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, INT )
+FORWARDFUNC2( BOOL WINAPI, Shell_NotifyIconW, DWORD, PNOTIFYICONDATAW )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/unicows.h	2003-11-27 00:57:00.000000000 +0200
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * 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
+ */
+
+#ifndef _UNICOWS_H
+#define _UNICOWS_H
+
+BOOL InitAdv();
+BOOL InitAvi();
+BOOL InitComDlg();
+BOOL InitGDI();
+BOOL InitKernel();
+BOOL InitMPR();
+BOOL InitMSVFW();
+BOOL InitOleDlg();
+BOOL InitRAS();
+BOOL InitShell();
+BOOL InitUser();
+BOOL InitWinMM();
+BOOL InitWinSpool();
+
+#define FORWARDFUNC0(ret, function)\
+ret UNICOWS_##function()\
+{\
+    TRACE("Called\n");\
+    return function();\
+}
+
+#define FORWARDFUNC1(ret, function, arg1type)\
+ret UNICOWS_##function(arg1type arg1)\
+{\
+    TRACE("Called\n");\
+    return function(arg1);\
+}
+
+#define FORWARDFUNC2(ret, function, arg1type, arg2type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2);\
+}
+
+#define FORWARDFUNC3(ret, function, arg1type, arg2type, arg3type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3);\
+}
+
+#define FORWARDFUNC4(ret, function, arg1type, arg2type, arg3type, arg4type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4);\
+}
+
+#define FORWARDFUNC5(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5);\
+}
+
+#define FORWARDFUNC6(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6);\
+}
+
+#define FORWARDFUNC7(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6, arg7type arg7)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7);\
+}
+
+#define FORWARDFUNC8(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type, arg8type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6,\
+        arg7type arg7, arg8type arg8)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);\
+}
+
+#define FORWARDFUNC9(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type,\
+        arg8type, arg9type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6,\
+        arg7type arg7, arg8type arg8, arg9type arg9)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);\
+}
+
+#define FORWARDFUNC10(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type,\
+        arg8type, arg9type, arg10type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6,\
+        arg7type arg7, arg8type arg8, arg9type arg9, arg10type arg10)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);\
+}
+
+#define FORWARDFUNC11(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type,\
+        arg8type, arg9type, arg10type, arg11type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6,\
+        arg7type arg7, arg8type arg8, arg9type arg9, arg10type arg10, arg11type arg11)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);\
+}
+
+#define FORWARDFUNC12(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type,\
+        arg8type, arg9type, arg10type, arg11type, arg12type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6,\
+        arg7type arg7, arg8type arg8, arg9type arg9, arg10type arg10, arg11type arg11, arg12type arg12)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);\
+}
+
+#define FORWARDFUNC13(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type,\
+        arg8type, arg9type, arg10type, arg11type, arg12type, arg13type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6,\
+        arg7type arg7, arg8type arg8, arg9type arg9, arg10type arg10, arg11type arg11, arg12type arg12, arg13type arg13)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);\
+}
+
+#define FORWARDFUNC14(ret, function, arg1type, arg2type, arg3type, arg4type, arg5type, arg6type, arg7type,\
+        arg8type, arg9type, arg10type, arg11type, arg12type, arg13type, arg14type)\
+ret UNICOWS_##function(arg1type arg1, arg2type arg2, arg3type arg3, arg4type arg4, arg5type arg5, arg6type arg6,\
+        arg7type arg7, arg8type arg8, arg9type arg9, arg10type arg10, arg11type arg11, arg12type arg12, arg13type arg13, arg14type arg14)\
+{\
+    TRACE("Called\n");\
+    return function(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);\
+}
+
+#endif /* _UNICOWS_USER_H */
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/unicows.spec	2003-11-27 00:43:42.000000000 +0200
@@ -0,0 +1,545 @@
+@ stub AcquireCredentialsHandleW
+@ stdcall AddAtomW(wstr) UNICOWS_AddAtomW
+@ stdcall AddFontResourceW(wstr) UNICOWS_AddFontResourceW
+@ stdcall AddJobW(long long ptr long ptr) UNICOWS_AddJobW
+@ stub AddMonitorW
+@ stub AddPortW
+@ stub AddPrintProcessorW
+@ stub AddPrintProvidorW
+@ stdcall AddPrinterDriverW(wstr long ptr) UNICOWS_AddPrinterDriverW
+@ stdcall AddPrinterW(wstr long ptr) UNICOWS_AddPrinterW
+@ stub AdvancedDocumentPropertiesW
+@ stdcall AppendMenuW(long long long ptr) UNICOWS_AppendMenuW
+@ stdcall BeginUpdateResourceA(str long) UNICOWS_BeginUpdateResourceA
+@ stdcall BeginUpdateResourceW(wstr long) UNICOWS_BeginUpdateResourceW
+@ stdcall BroadcastSystemMessageW(long ptr long long long) UNICOWS_BroadcastSystemMessageW
+@ stdcall BuildCommDCBAndTimeoutsW(wstr ptr ptr) UNICOWS_BuildCommDCBAndTimeoutsW
+@ stdcall BuildCommDCBW(wstr ptr) UNICOWS_BuildCommDCBW
+@ stdcall CallMsgFilterW(ptr long) UNICOWS_CallMsgFilterW
+@ stdcall CallNamedPipeW(wstr ptr long ptr long ptr long) UNICOWS_CallNamedPipeW
+@ stdcall CallWindowProcA(ptr long long long long) UNICOWS_CallWindowProcA
+@ stdcall CallWindowProcW(ptr long long long long) UNICOWS_CallWindowProcW
+@ stdcall ChangeDisplaySettingsExW(wstr ptr long long ptr) UNICOWS_ChangeDisplaySettingsExW
+@ stdcall ChangeDisplaySettingsW(ptr long) UNICOWS_ChangeDisplaySettingsW
+@ stdcall ChangeMenuW(long long ptr long long) UNICOWS_ChangeMenuW
+@ stdcall CharLowerBuffW(wstr long) UNICOWS_CharLowerBuffW
+@ stdcall CharLowerW(wstr) UNICOWS_CharLowerW
+@ stdcall CharNextW(wstr) UNICOWS_CharNextW
+@ stdcall CharPrevW(wstr wstr) UNICOWS_CharPrevW
+@ stdcall CharToOemBuffW(wstr ptr long) UNICOWS_CharToOemBuffW
+@ stdcall CharToOemW(wstr ptr) UNICOWS_CharToOemW
+@ stdcall CharUpperBuffW(wstr long) UNICOWS_CharUpperBuffW
+@ stdcall CharUpperW(wstr) UNICOWS_CharUpperW
+@ stdcall ChooseColorW(ptr) UNICOWS_ChooseColorW
+@ stdcall ChooseFontW(ptr) UNICOWS_ChooseFontW
+@ stdcall CommConfigDialogW(wstr long ptr) UNICOWS_CommConfigDialogW
+@ stdcall CompareStringW(long long wstr long wstr long) UNICOWS_CompareStringW
+@ stub ConfigurePortW
+@ stdcall CopyAcceleratorTableW(long ptr long) UNICOWS_CopyAcceleratorTableW
+@ stub CopyEnhMetaFileW
+@ stdcall CopyFileExW (wstr wstr ptr ptr ptr long) UNICOWS_CopyFileExW 
+@ stdcall CopyFileW(wstr wstr long) UNICOWS_CopyFileW
+@ stdcall CopyMetaFileW(long wstr) UNICOWS_CopyMetaFileW
+@ stdcall CreateAcceleratorTableW(ptr long) UNICOWS_CreateAcceleratorTableW
+@ stdcall CreateColorSpaceW(ptr) UNICOWS_CreateColorSpaceW
+@ stdcall CreateDCW(wstr wstr wstr ptr) UNICOWS_CreateDCW
+@ stdcall CreateDialogIndirectParamW(long ptr long ptr long) UNICOWS_CreateDialogIndirectParamW
+@ stdcall CreateDialogParamW(long ptr long ptr long) UNICOWS_CreateDialogParamW
+@ stdcall CreateDirectoryExW(wstr wstr ptr) UNICOWS_CreateDirectoryExW
+@ stdcall CreateDirectoryW(wstr ptr) UNICOWS_CreateDirectoryW
+@ stdcall CreateEnhMetaFileW(long wstr ptr wstr) UNICOWS_CreateEnhMetaFileW
+@ stdcall CreateEventW(ptr long long wstr) UNICOWS_CreateEventW
+@ stdcall CreateFileMappingW(long ptr long long long wstr) UNICOWS_CreateFileMappingW
+@ stdcall CreateFileW(wstr long long ptr long long long) UNICOWS_CreateFileW
+@ stdcall CreateFontIndirectW(ptr) UNICOWS_CreateFontIndirectW
+@ stdcall CreateFontW(long long long long long long long long long long long long long wstr) UNICOWS_CreateFontW
+@ stdcall CreateICW(wstr wstr wstr ptr) UNICOWS_CreateICW
+@ stdcall CreateMDIWindowW(ptr ptr long long long long long long long long) UNICOWS_CreateMDIWindowW
+@ stdcall CreateMailslotW(ptr long long ptr) UNICOWS_CreateMailslotW
+@ stdcall CreateMetaFileW(wstr) UNICOWS_CreateMetaFileW
+@ stdcall CreateMutexW(ptr long wstr) UNICOWS_CreateMutexW
+@ stdcall CreateNamedPipeW(wstr long long long long long long ptr) UNICOWS_CreateNamedPipeW
+@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) UNICOWS_CreateProcessW
+@ stdcall CreateScalableFontResourceW(long wstr wstr wstr) UNICOWS_CreateScalableFontResourceW
+@ stdcall CreateSemaphoreW(ptr long long wstr) UNICOWS_CreateSemaphoreW
+@ stub CreateStdAccessibleProxyW
+@ stdcall CreateWaitableTimerW(ptr long wstr) UNICOWS_CreateWaitableTimerW
+@ stdcall CreateWindowExW(long wstr wstr long long long long long long long long ptr) UNICOWS_CreateWindowExW
+@ stdcall CryptAcquireContextW(ptr wstr wstr long long) UNICOWS_CryptAcquireContextW
+@ stdcall CryptEnumProviderTypesW(long ptr long ptr ptr ptr) UNICOWS_CryptEnumProviderTypesW
+@ stdcall CryptEnumProvidersW(long ptr long ptr ptr ptr) UNICOWS_CryptEnumProvidersW
+@ stdcall CryptGetDefaultProviderW(long ptr long ptr ptr) UNICOWS_CryptGetDefaultProviderW
+@ stdcall CryptSetProviderExW(wstr long ptr long) UNICOWS_CryptSetProviderExW
+@ stdcall CryptSetProviderW(wstr long) UNICOWS_CryptSetProviderW
+#@ stdcall CryptSignHashW(long long ptr long ptr ptr) advapi32.CryptSignHashW
+@ stub CryptSignHashW
+#@ stdcall CryptVerifySignatureW(long ptr long long ptr long) advapi32.CryptVerifySignatureW
+@ stub CryptVerifySignatureW
+@ stdcall DdeConnect(long long long ptr) UNICOWS_DdeConnect
+@ stdcall DdeConnectList(long long long long ptr) UNICOWS_DdeConnectList
+@ stdcall DdeCreateStringHandleW(long ptr long) UNICOWS_DdeCreateStringHandleW
+@ stdcall DdeInitializeW(ptr ptr long long) UNICOWS_DdeInitializeW
+@ stdcall DdeQueryConvInfo(long long ptr) UNICOWS_DdeQueryConvInfo
+@ stdcall DdeQueryStringW(long long ptr long long) UNICOWS_DdeQueryStringW
+@ stdcall DefDlgProcW(long long long long) UNICOWS_DefDlgProcW
+@ stdcall DefFrameProcW(long long long long long) UNICOWS_DefFrameProcW
+@ stdcall DefMDIChildProcW(long long long long) UNICOWS_DefMDIChildProcW
+@ stdcall DefWindowProcW(long long long long) UNICOWS_DefWindowProcW
+@ stdcall DeleteFileW(wstr) UNICOWS_DeleteFileW
+@ stub DeleteMonitorW
+@ stub DeletePortW
+@ stub DeletePrintProcessorW
+@ stub DeletePrintProvidorW
+@ stub DeletePrinterDriverW
+@ stdcall DeviceCapabilitiesW(wstr wstr long wstr ptr) UNICOWS_DeviceCapabilitiesW
+@ stdcall DialogBoxIndirectParamW(long ptr long ptr long) UNICOWS_DialogBoxIndirectParamW
+@ stdcall DialogBoxParamW(long wstr long ptr long) UNICOWS_DialogBoxParamW
+@ stdcall DispatchMessageW(ptr) UNICOWS_DispatchMessageW
+@ stdcall DlgDirListComboBoxW(long ptr long long long) UNICOWS_DlgDirListComboBoxW
+@ stdcall DlgDirListW(long wstr long long long) UNICOWS_DlgDirListW
+@ stdcall DlgDirSelectComboBoxExW(long ptr long long) UNICOWS_DlgDirSelectComboBoxExW
+@ stdcall DlgDirSelectExW(long ptr long long) UNICOWS_DlgDirSelectExW
+@ stdcall DocumentPropertiesW(long long ptr ptr ptr long) UNICOWS_DocumentPropertiesW
+@ stdcall DragQueryFileW(long long ptr long) UNICOWS_DragQueryFileW
+@ stdcall DrawStateW(long long ptr long long long long long long long) UNICOWS_DrawStateW
+@ stdcall DrawTextExW(long wstr long ptr long ptr) UNICOWS_DrawTextExW
+@ stdcall DrawTextW(long wstr long ptr long) UNICOWS_DrawTextW
+@ stdcall EnableWindow(long long) UNICOWS_EnableWindow
+@ stdcall EndUpdateResourceA(long long) UNICOWS_EndUpdateResourceA
+@ stdcall EndUpdateResourceW(long long) UNICOWS_EndUpdateResourceW
+@ stub EnumCalendarInfoExW
+@ stub EnumCalendarInfoW
+@ stdcall EnumClipboardFormats(long) UNICOWS_EnumClipboardFormats
+@ stub EnumDateFormatsExW
+@ stdcall EnumDateFormatsW(ptr long long) UNICOWS_EnumDateFormatsW
+@ stdcall EnumDisplayDevicesW(ptr long ptr long) UNICOWS_EnumDisplayDevicesW
+@ stdcall EnumDisplaySettingsExW(wstr long ptr long) UNICOWS_EnumDisplaySettingsExW
+@ stdcall EnumDisplaySettingsW(wstr long ptr ) UNICOWS_EnumDisplaySettingsW
+@ stdcall EnumFontFamiliesExW(long ptr ptr long long) UNICOWS_EnumFontFamiliesExW
+@ stdcall EnumFontFamiliesW(long wstr ptr long) UNICOWS_EnumFontFamiliesW
+@ stdcall EnumFontsW(long wstr ptr long) UNICOWS_EnumFontsW
+@ stub EnumICMProfilesW
+@ stub EnumMonitorsW
+@ stub EnumPortsW
+@ stub EnumPrintProcessorDatatypesW
+@ stub EnumPrintProcessorsW
+@ stdcall EnumPrinterDriversW(wstr wstr long ptr long ptr ptr) UNICOWS_EnumPrinterDriversW
+@ stdcall EnumPrintersW(long ptr long ptr long ptr ptr) UNICOWS_EnumPrintersW
+@ stdcall EnumPropsA(long ptr) UNICOWS_EnumPropsA
+@ stdcall EnumPropsExA(long ptr long) UNICOWS_EnumPropsExA
+@ stdcall EnumPropsExW(long ptr long) UNICOWS_EnumPropsExW
+@ stdcall EnumPropsW(long ptr) UNICOWS_EnumPropsW
+@ stdcall EnumSystemCodePagesW(ptr long) UNICOWS_EnumSystemCodePagesW
+@ stdcall EnumSystemLocalesW(ptr long) UNICOWS_EnumSystemLocalesW
+@ stdcall EnumTimeFormatsW(ptr long long) UNICOWS_EnumTimeFormatsW
+@ stub EnumerateSecurityPackagesW
+@ stdcall ExpandEnvironmentStringsW(wstr ptr long) UNICOWS_ExpandEnvironmentStringsW
+@ stdcall ExtTextOutW(long long long long ptr wstr long ptr) UNICOWS_ExtTextOutW
+@ stdcall ExtractIconExW(wstr long ptr ptr long) UNICOWS_ExtractIconExW
+@ stdcall ExtractIconW(long wstr long) UNICOWS_ExtractIconW
+@ stdcall FatalAppExitW(long wstr) UNICOWS_FatalAppExitW
+@ stdcall FillConsoleOutputCharacterW(long long long long ptr) UNICOWS_FillConsoleOutputCharacterW
+@ stdcall FindAtomW(wstr) UNICOWS_FindAtomW
+@ stdcall FindExecutableW(wstr wstr wstr) UNICOWS_FindExecutableW
+@ stdcall FindFirstChangeNotificationW(wstr long long) UNICOWS_FindFirstChangeNotificationW
+@ stdcall FindFirstFileW(wstr ptr) UNICOWS_FindFirstFileW
+@ stdcall FindNextFileW(long ptr) UNICOWS_FindNextFileW
+@ stdcall FindResourceExW(long wstr wstr long) UNICOWS_FindResourceExW
+@ stdcall FindResourceW(long wstr wstr) UNICOWS_FindResourceW
+@ stdcall FindTextW(ptr) UNICOWS_FindTextW
+@ stdcall FindWindowExW(long long wstr wstr) UNICOWS_FindWindowExW
+@ stdcall FindWindowW(wstr wstr) UNICOWS_FindWindowW
+@ stdcall FormatMessageW(long ptr long long ptr long ptr) UNICOWS_FormatMessageW
+@ stub FreeContextBuffer
+@ stdcall FreeEnvironmentStringsW(ptr) UNICOWS_FreeEnvironmentStringsW
+@ stub GetAltTabInfoW
+@ stdcall GetAtomNameW(long ptr long) UNICOWS_GetAtomNameW
+@ stdcall GetCPInfo(long ptr) UNICOWS_GetCPInfo
+@ stdcall GetCPInfoExW(long long ptr) UNICOWS_GetCPInfoExW
+@ stdcall GetCalendarInfoW(long long long ptr long ptr) UNICOWS_GetCalendarInfoW
+@ stdcall GetCharABCWidthsFloatW(long long long ptr) UNICOWS_GetCharABCWidthsFloatW
+@ stdcall GetCharABCWidthsW(long long long ptr) UNICOWS_GetCharABCWidthsW
+@ stdcall GetCharWidth32W(long long long long) UNICOWS_GetCharWidth32W
+@ stdcall GetCharWidthFloatW(long long long ptr) UNICOWS_GetCharWidthFloatW
+@ stdcall GetCharWidthW(long long long long) UNICOWS_GetCharWidth32W
+@ stdcall GetCharacterPlacementW(long wstr long long ptr long) UNICOWS_GetCharacterPlacementW
+@ stdcall GetClassInfoExW(long wstr ptr) UNICOWS_GetClassInfoExW
+@ stdcall GetClassInfoW(long wstr ptr) UNICOWS_GetClassInfoW
+@ stdcall GetClassLongW(long long) UNICOWS_GetClassLongW
+@ stdcall GetClassNameW(long ptr long) UNICOWS_GetClassNameW
+@ stdcall GetClipboardData(long) UNICOWS_GetClipboardData
+@ stdcall GetClipboardFormatNameW(long ptr long) UNICOWS_GetClipboardFormatNameW
+@ stdcall GetComputerNameW(ptr ptr) UNICOWS_GetComputerNameW
+@ stdcall GetConsoleTitleW(ptr long) UNICOWS_GetConsoleTitleW
+@ stdcall GetCurrencyFormatW(long long str ptr str long) UNICOWS_GetCurrencyFormatW
+@ stdcall GetCurrentDirectoryW(long ptr) UNICOWS_GetCurrentDirectoryW
+@ stub GetCurrentHwProfileW
+@ stdcall GetDateFormatW(long long ptr wstr ptr long) UNICOWS_GetDateFormatW
+@ stdcall GetDefaultCommConfigW(wstr ptr long) UNICOWS_GetDefaultCommConfigW
+@ stdcall GetDiskFreeSpaceExW (wstr ptr ptr ptr) UNICOWS_GetDiskFreeSpaceExW 
+@ stdcall GetDiskFreeSpaceW(wstr ptr ptr ptr ptr) UNICOWS_GetDiskFreeSpaceW
+@ stdcall GetDlgItemTextW(long long ptr long) UNICOWS_GetDlgItemTextW
+@ stdcall GetDriveTypeW(wstr) UNICOWS_GetDriveTypeW
+@ stdcall GetEnhMetaFileDescriptionW(long long ptr) UNICOWS_GetEnhMetaFileDescriptionW
+@ stdcall GetEnhMetaFileW(wstr) UNICOWS_GetEnhMetaFileW
+@ stdcall GetEnvironmentStringsW()
+@ stdcall GetEnvironmentVariableW(wstr ptr long) UNICOWS_GetEnvironmentVariableW
+@ stdcall GetFileAttributesExW(wstr long ptr) UNICOWS_GetFileAttributesExW
+@ stdcall GetFileAttributesW(wstr) UNICOWS_GetFileAttributesW
+@ stdcall GetFileTitleW(wstr ptr long) UNICOWS_GetFileTitleW
+@ stdcall GetFileVersionInfoSizeW(wstr ptr) UNICOWS_GetFileVersionInfoSizeW
+@ stdcall GetFileVersionInfoW(wstr long long ptr) UNICOWS_GetFileVersionInfoW
+@ stdcall GetFullPathNameW(wstr long ptr ptr) UNICOWS_GetFullPathNameW
+@ stdcall GetGlyphOutlineW(long long long ptr long ptr ptr) UNICOWS_GetGlyphOutlineW
+@ stub GetICMProfileW
+@ stub GetJobW
+@ stdcall GetKerningPairsW(long long ptr) UNICOWS_GetKerningPairsW
+@ stdcall GetKeyNameTextW(long ptr long) UNICOWS_GetKeyNameTextW
+@ stdcall GetKeyboardLayoutNameW(ptr) UNICOWS_GetKeyboardLayoutNameW
+@ stdcall GetLocaleInfoW(long long ptr long) UNICOWS_GetLocaleInfoW
+@ stub GetLogColorSpaceW
+@ stdcall GetLogicalDriveStringsW(long ptr) UNICOWS_GetLogicalDriveStringsW
+@ stdcall GetLongPathNameW (wstr long long) UNICOWS_GetLongPathNameW 
+@ stdcall GetMenuItemInfoW(long long long ptr) UNICOWS_GetMenuItemInfoW
+@ stdcall GetMenuStringW(long long ptr long long) UNICOWS_GetMenuStringW
+@ stdcall GetMessageW(ptr long long long) UNICOWS_GetMessageW
+@ stdcall GetMetaFileW(wstr) UNICOWS_GetMetaFileW
+@ stdcall GetModuleFileNameW(long ptr long) UNICOWS_GetModuleFileNameW
+@ stdcall GetModuleHandleW(wstr) UNICOWS_GetModuleHandleW
+@ stdcall GetMonitorInfoW(long ptr) UNICOWS_GetMonitorInfoW
+@ stdcall GetNamedPipeHandleStateW(long ptr ptr ptr ptr wstr long) UNICOWS_GetNamedPipeHandleStateW
+@ stdcall GetNumberFormatW(long long wstr ptr ptr long) UNICOWS_GetNumberFormatW
+@ stdcall GetObjectW(long long ptr) UNICOWS_GetObjectW
+@ stdcall GetOpenFileNamePreviewW(ptr) UNICOWS_GetOpenFileNamePreviewW
+@ stdcall GetOpenFileNameW(ptr) UNICOWS_GetOpenFileNameW
+@ stdcall GetOutlineTextMetricsW(long long ptr) UNICOWS_GetOutlineTextMetricsW
+@ stdcall GetPrinterDataW(long wstr ptr ptr long ptr) UNICOWS_GetPrinterDataW
+@ stdcall GetPrinterDriverDirectoryW(wstr wstr long ptr long ptr) UNICOWS_GetPrinterDriverDirectoryW
+@ stdcall GetPrinterDriverW(long str long ptr long ptr) UNICOWS_GetPrinterDriverW
+@ stdcall GetPrinterW(long long ptr long ptr) UNICOWS_GetPrinterW
+@ stdcall GetPrivateProfileIntW(wstr wstr long wstr) UNICOWS_GetPrivateProfileIntW
+@ stdcall GetPrivateProfileSectionNamesW(ptr long wstr) UNICOWS_GetPrivateProfileSectionNamesW
+@ stdcall GetPrivateProfileSectionW(wstr ptr long wstr) UNICOWS_GetPrivateProfileSectionW
+@ stdcall GetPrivateProfileStringW(wstr wstr wstr ptr long wstr) UNICOWS_GetPrivateProfileStringW
+@ stdcall GetPrivateProfileStructW(wstr wstr ptr long wstr) UNICOWS_GetPrivateProfileStructW
+@ stdcall GetProcAddress(long str) UNICOWS_GetProcAddress
+@ stdcall GetProfileIntW(wstr wstr long) UNICOWS_GetProfileIntW
+@ stdcall GetProfileSectionW(wstr ptr long) UNICOWS_GetProfileSectionW
+@ stdcall GetProfileStringW(wstr wstr wstr ptr long) UNICOWS_GetProfileStringW
+@ stdcall GetPropA(long str) UNICOWS_GetPropA
+@ stdcall GetPropW(long wstr) UNICOWS_GetPropW
+@ stub GetRoleTextW
+@ stdcall GetSaveFileNamePreviewW(ptr) UNICOWS_GetSaveFileNamePreviewW
+@ stdcall GetSaveFileNameW(ptr) UNICOWS_GetSaveFileNameW
+@ stdcall GetShortPathNameW(wstr ptr long) UNICOWS_GetShortPathNameW
+@ stdcall GetStartupInfoW(ptr) UNICOWS_GetStartupInfoW
+@ stub GetStateTextW
+@ stdcall GetStringTypeExW(long long wstr long ptr) UNICOWS_GetStringTypeExW
+@ stdcall GetStringTypeW(long wstr long ptr) UNICOWS_GetStringTypeW
+@ stdcall GetSystemDirectoryW(ptr long) UNICOWS_GetSystemDirectoryW
+@ stdcall GetSystemWindowsDirectoryW(ptr long) UNICOWS_GetSystemWindowsDirectoryW
+@ stdcall GetTabbedTextExtentW(long wstr long long ptr) UNICOWS_GetTabbedTextExtentW
+@ stdcall GetTempFileNameW(wstr wstr long ptr) UNICOWS_GetTempFileNameW
+@ stdcall GetTempPathW(long ptr) UNICOWS_GetTempPathW
+@ stdcall GetTextExtentExPointW(long wstr long long ptr ptr ptr) UNICOWS_GetTextExtentExPointW
+@ stdcall GetTextExtentPoint32W(long wstr long ptr) UNICOWS_GetTextExtentPoint32W
+@ stdcall GetTextExtentPointW(long wstr long ptr) UNICOWS_GetTextExtentPointW
+@ stdcall GetTextFaceW(long long ptr) UNICOWS_GetTextFaceW
+@ stdcall GetTextMetricsW(long ptr) UNICOWS_GetTextMetricsW
+@ stdcall GetTimeFormatW(long long ptr wstr ptr long) UNICOWS_GetTimeFormatW
+@ stdcall GetUserNameW(ptr ptr) UNICOWS_GetUserNameW
+@ stdcall GetVersionExW(ptr) UNICOWS_GetVersionExW
+@ stdcall GetVolumeInformationW(wstr ptr long ptr ptr ptr ptr long) UNICOWS_GetVolumeInformationW
+@ stdcall GetWindowLongA(long long) UNICOWS_GetWindowLongA
+@ stdcall GetWindowLongW(long long) UNICOWS_GetWindowLongW
+@ stdcall GetWindowModuleFileNameW(long ptr long) UNICOWS_GetWindowModuleFileNameW
+@ stdcall GetWindowTextLengthW(long) UNICOWS_GetWindowTextLengthW
+@ stdcall GetWindowTextW(long ptr long) UNICOWS_GetWindowTextW
+@ stdcall GetWindowsDirectoryW(ptr long) UNICOWS_GetWindowsDirectoryW
+@ stdcall GlobalAddAtomW(wstr) UNICOWS_GlobalAddAtomW
+@ stdcall GlobalFindAtomW(wstr) UNICOWS_GlobalFindAtomW
+@ stdcall GlobalGetAtomNameW(long ptr long) UNICOWS_GlobalGetAtomNameW
+@ stdcall GrayStringW(long long ptr long long long long long long) UNICOWS_GrayStringW
+@ stub InitSecurityInterfaceW
+@ stub InitializeSecurityContextW
+@ stdcall InsertMenuItemW(long long long ptr) UNICOWS_InsertMenuItemW
+@ stdcall InsertMenuW(long long long long ptr) UNICOWS_InsertMenuW
+@ stdcall IsBadStringPtrW(ptr long) UNICOWS_IsBadStringPtrW
+@ stdcall IsCharAlphaNumericW(long) UNICOWS_IsCharAlphaNumericW
+@ stdcall IsCharAlphaW(long) UNICOWS_IsCharAlphaW
+@ stdcall IsCharLowerW(long) UNICOWS_IsCharLowerW
+@ stdcall IsCharUpperW(long) UNICOWS_IsCharUpperW
+@ stdcall IsClipboardFormatAvailable(long) UNICOWS_IsClipboardFormatAvailable
+@ stub IsDestinationReachableW
+@ stdcall IsDialogMessageW(long ptr) UNICOWS_IsDialogMessageW
+@ stdcall IsTextUnicode(ptr long ptr) UNICOWS_IsTextUnicode
+@ stdcall IsValidCodePage(long) UNICOWS_IsValidCodePage
+@ stdcall IsWindowUnicode(long) UNICOWS_IsWindowUnicode
+@ stdcall LCMapStringW(long long wstr long ptr long) UNICOWS_LCMapStringW
+@ stdcall LoadAcceleratorsW(long wstr) UNICOWS_LoadAcceleratorsW
+@ stdcall LoadBitmapW(long wstr) UNICOWS_LoadBitmapW
+@ stdcall LoadCursorFromFileW(wstr) UNICOWS_LoadCursorFromFileW
+@ stdcall LoadCursorW(long wstr) UNICOWS_LoadCursorW
+@ stdcall LoadIconW(long wstr) UNICOWS_LoadIconW
+@ stdcall LoadImageW(long wstr long long long long) UNICOWS_LoadImageW
+@ stdcall LoadKeyboardLayoutW(wstr long) UNICOWS_LoadKeyboardLayoutW
+@ stdcall LoadLibraryExW(wstr long long) UNICOWS_LoadLibraryExW
+@ stdcall LoadLibraryW(wstr) UNICOWS_LoadLibraryW
+@ stdcall LoadMenuIndirectW(ptr) UNICOWS_LoadMenuIndirectW
+@ stdcall LoadMenuW(long wstr) UNICOWS_LoadMenuW
+@ stdcall LoadStringW(long long ptr long) UNICOWS_LoadStringW
+@ cdecl   MCIWndCreateW (long long long wstr) UNICOWS_MCIWndCreateW
+@ stdcall MapVirtualKeyExW(long long long) UNICOWS_MapVirtualKeyExW
+@ stdcall MapVirtualKeyW(long long) UNICOWS_MapVirtualKeyW
+@ stdcall MessageBoxExW(long wstr wstr long long) UNICOWS_MessageBoxExW
+@ stdcall MessageBoxIndirectW(ptr) UNICOWS_MessageBoxIndirectW
+@ stdcall MessageBoxW(long wstr wstr long) UNICOWS_MessageBoxW
+@ stdcall ModifyMenuW(long long long long ptr) UNICOWS_ModifyMenuW
+@ stdcall MoveFileW(wstr wstr) UNICOWS_MoveFileW
+@ stdcall MultiByteToWideChar(long long str long ptr long) UNICOWS_MultiByteToWideChar
+#@ stdcall MultinetGetConnectionPerformanceW(ptr ptr) mpr.MultinetGetConnectionPerformanceW
+@ stub MultinetGetConnectionPerformanceW
+@ stdcall OemToCharBuffW(ptr ptr long) UNICOWS_OemToCharBuffW
+@ stdcall OemToCharW(ptr ptr) UNICOWS_OemToCharW
+#@ stdcall OleUIAddVerbMenuW(ptr wstr long long long long long long ptr) oledlg.OleUIAddVerbMenuW
+@ stub OleUIAddVerbMenuW
+#@ stdcall OleUIBusyW(ptr) oledlg.OleUIBusyW
+@ stub OleUIBusyW
+#@ stdcall OleUIChangeIconW(ptr) oledlg.OleUIChangeIconW
+@ stub OleUIChangeIconW
+#@ stdcall OleUIChangeSourceW(ptr) oledlg.OleUIChangeSourceW
+@ stub OleUIChangeSourceW
+#@ stdcall OleUIConvertW(ptr) oledlg.OleUIConvertW
+@ stub OleUIConvertW
+#@ stdcall OleUIEditLinksW(ptr) oledlg.OleUIEditLinksW
+@ stub OleUIEditLinksW
+#@ stdcall OleUIInsertObjectW(ptr) oledlg.OleUIInsertObjectW
+@ stub OleUIInsertObjectW
+#@ stdcall OleUIObjectPropertiesW(ptr) oledlg.OleUIObjectPropertiesW
+@ stub OleUIObjectPropertiesW
+#@ stdcall OleUIPasteSpecialW(ptr) oledlg.OleUIPasteSpecialW
+@ stub OleUIPasteSpecialW
+#@ varargs OleUIPromptUserW(long long) oledlg.OleUIPromptUserW
+@ stub OleUIPromptUserW
+#@ stdcall OleUIUpdateLinksW(ptr long wstr long) oledlg.OleUIUpdateLinksW
+@ stub OleUIUpdateLinksW
+@ stdcall OpenEventW(long long wstr) UNICOWS_OpenEventW
+@ stdcall OpenFileMappingW(long long wstr) UNICOWS_OpenFileMappingW
+@ stdcall OpenMutexW(long long wstr) UNICOWS_OpenMutexW
+@ stdcall OpenPrinterW(wstr ptr ptr) UNICOWS_OpenPrinterW
+@ stdcall OpenSemaphoreW(long long wstr) UNICOWS_OpenSemaphoreW
+@ stdcall OpenWaitableTimerW(long long wstr) UNICOWS_OpenWaitableTimerW
+@ stdcall OutputDebugStringW(wstr) UNICOWS_OutputDebugStringW
+@ stdcall PageSetupDlgW(ptr) UNICOWS_PageSetupDlgW
+@ stdcall PeekConsoleInputW(ptr ptr long ptr) UNICOWS_PeekConsoleInputW
+@ stdcall PeekMessageW(ptr long long long long) UNICOWS_PeekMessageW
+@ stdcall PlaySoundW(ptr long long) UNICOWS_PlaySoundW
+@ stdcall PolyTextOutW(long ptr long) UNICOWS_PolyTextOutW
+@ stdcall PostMessageW(long long long long) UNICOWS_PostMessageW
+@ stdcall PostThreadMessageW(long long long long) UNICOWS_PostThreadMessageW
+@ stdcall PrintDlgW(ptr) UNICOWS_PrintDlgW
+@ stub QueryContextAttributesW
+@ stub QueryCredentialsAttributesW
+@ stdcall QueryDosDeviceW(wstr ptr long) UNICOWS_QueryDosDeviceW
+@ stub QuerySecurityPackageInfoW
+@ stub RasConnectionNotificationW
+@ stub RasCreatePhonebookEntryW
+#@ stdcall RasDeleteEntryW(wstr wstr) rasapi32.RasDeleteEntryW
+@ stub RasDeleteEntryW
+@ stub RasDeleteSubEntryW
+@ stub RasDialW
+@ stub RasEditPhonebookEntryW
+#@ stdcall RasEnumConnectionsW(ptr ptr ptr) rasapi32.RasEnumConnectionsW
+@ stub RasEnumConnectionsW
+#@ stdcall RasEnumDevicesW(ptr ptr ptr) rasapi32.RasEnumDevicesW
+@ stub RasEnumDevicesW
+#@ stdcall RasEnumEntriesW(str str ptr ptr ptr) rasapi32.RasEnumEntriesW
+@ stub RasEnumEntriesW
+@ stub RasGetConnectStatusW
+@ stub RasGetEntryDialParamsW
+@ stub RasGetEntryPropertiesW
+@ stub RasGetErrorStringW
+@ stub RasGetProjectionInfoW
+@ stub RasHangUpW
+@ stub RasRenameEntryW
+@ stub RasSetEntryDialParamsW
+#@ stdcall RasSetEntryPropertiesW(wstr wstr ptr long ptr long) rasapi32.RasSetEntryPropertiesW
+@ stub RasSetEntryPropertiesW
+@ stub RasSetSubEntryPropertiesW
+@ stub RasValidateEntryNameW
+@ stdcall ReadConsoleInputW(long ptr long ptr) UNICOWS_ReadConsoleInputW
+@ stdcall ReadConsoleOutputCharacterW(long ptr long long ptr) UNICOWS_ReadConsoleOutputCharacterW
+@ stdcall ReadConsoleOutputW(long ptr long long ptr) UNICOWS_ReadConsoleOutputW
+@ stdcall ReadConsoleW(long ptr long ptr ptr) UNICOWS_ReadConsoleW
+@ stdcall RegConnectRegistryW(wstr long ptr) UNICOWS_RegConnectRegistryW
+@ stdcall RegCreateKeyExW(long wstr long ptr long long ptr ptr ptr) UNICOWS_RegCreateKeyExW
+@ stdcall RegCreateKeyW(long wstr ptr) UNICOWS_RegCreateKeyW
+@ stdcall RegDeleteKeyW(long wstr) UNICOWS_RegDeleteKeyW
+@ stdcall RegDeleteValueW(long wstr) UNICOWS_RegDeleteValueW
+@ stdcall RegEnumKeyExW(long long ptr ptr ptr ptr ptr ptr) UNICOWS_RegEnumKeyExW
+@ stdcall RegEnumKeyW(long long ptr long) UNICOWS_RegEnumKeyW
+@ stdcall RegEnumValueW(long long ptr ptr ptr ptr ptr ptr) UNICOWS_RegEnumValueW
+@ stdcall RegLoadKeyW(long wstr wstr) UNICOWS_RegLoadKeyW
+@ stdcall RegOpenKeyExW(long wstr long long ptr) UNICOWS_RegOpenKeyExW
+@ stdcall RegOpenKeyW(long wstr ptr) UNICOWS_RegOpenKeyW
+@ stdcall RegQueryInfoKeyW(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) UNICOWS_RegQueryInfoKeyW
+@ stdcall RegQueryMultipleValuesW(long ptr long ptr ptr) UNICOWS_RegQueryMultipleValuesW
+@ stdcall RegQueryValueExW(long wstr ptr ptr ptr ptr) UNICOWS_RegQueryValueExW
+@ stdcall RegQueryValueW(long wstr ptr ptr) UNICOWS_RegQueryValueW
+@ stdcall RegReplaceKeyW(long wstr wstr wstr) UNICOWS_RegReplaceKeyW
+@ stdcall RegSaveKeyW(long ptr ptr) UNICOWS_RegSaveKeyW
+@ stdcall RegSetValueExW(long wstr long long ptr long) UNICOWS_RegSetValueExW
+@ stdcall RegSetValueW(long wstr long ptr long) UNICOWS_RegSetValueW
+@ stdcall RegUnLoadKeyW(long wstr) UNICOWS_RegUnLoadKeyW
+@ stdcall RegisterClassExW(ptr) UNICOWS_RegisterClassExW
+@ stdcall RegisterClassW(ptr) UNICOWS_RegisterClassW
+@ stdcall RegisterClipboardFormatW(wstr) UNICOWS_RegisterClipboardFormatW
+@ stub RegisterDeviceNotificationW
+@ stdcall RegisterWindowMessageW(wstr) UNICOWS_RegisterWindowMessageW
+@ stdcall RemoveDirectoryW(wstr) UNICOWS_RemoveDirectoryW
+@ stdcall RemoveFontResourceW(wstr) UNICOWS_RemoveFontResourceW
+@ stdcall RemovePropA(long str) UNICOWS_RemovePropA
+@ stdcall RemovePropW(long wstr) UNICOWS_RemovePropW
+@ stdcall ReplaceTextW(ptr) UNICOWS_ReplaceTextW
+@ stdcall ResetDCW(long ptr) UNICOWS_ResetDCW
+@ stdcall ResetPrinterW(long ptr) UNICOWS_ResetPrinterW
+@ stdcall SHBrowseForFolderW(ptr) UNICOWS_SHBrowseForFolderW
+@ stdcall SHChangeNotify (long long ptr ptr) UNICOWS_SHChangeNotify
+@ stdcall SHFileOperationW(ptr) UNICOWS_SHFileOperationW
+@ stdcall SHGetFileInfoW(ptr long ptr long long) UNICOWS_SHGetFileInfoW
+@ stub SHGetNewLinkInfoW
+@ stdcall SHGetPathFromIDListW(ptr ptr) UNICOWS_SHGetPathFromIDListW
+@ stdcall ScrollConsoleScreenBufferW(long ptr ptr ptr ptr) UNICOWS_ScrollConsoleScreenBufferW
+@ stdcall SearchPathW(wstr wstr wstr long ptr ptr) UNICOWS_SearchPathW
+@ stdcall SendDlgItemMessageW(long long long long long) UNICOWS_SendDlgItemMessageW
+@ stdcall SendMessageCallbackW(long long long long ptr long) UNICOWS_SendMessageCallbackW
+@ stdcall SendMessageTimeoutW(long long long long long long ptr) UNICOWS_SendMessageTimeoutW
+@ stdcall SendMessageW(long long long long) UNICOWS_SendMessageW
+@ stdcall SendNotifyMessageW(long long long long) UNICOWS_SendNotifyMessageW
+@ stdcall SetCalendarInfoW(long long long wstr) UNICOWS_SetCalendarInfoW
+@ stdcall SetClassLongW(long long long) UNICOWS_SetClassLongW
+@ stdcall SetComputerNameW(wstr) UNICOWS_SetComputerNameW
+@ stdcall SetConsoleTitleW(wstr) UNICOWS_SetConsoleTitleW
+@ stdcall SetCurrentDirectoryW(wstr) UNICOWS_SetCurrentDirectoryW
+@ stdcall SetDefaultCommConfigW(wstr ptr long) UNICOWS_SetDefaultCommConfigW
+@ stdcall SetDlgItemTextW(long long wstr) UNICOWS_SetDlgItemTextW
+@ stdcall SetEnvironmentVariableW(wstr wstr) UNICOWS_SetEnvironmentVariableW
+@ stdcall SetFileAttributesW(wstr long) UNICOWS_SetFileAttributesW
+@ stub SetICMProfileW
+@ stdcall SetJobW(long long long ptr long) UNICOWS_SetJobW
+@ stdcall SetLocaleInfoW(long long wstr) UNICOWS_SetLocaleInfoW
+@ stdcall SetMenuItemInfoW(long long long ptr) UNICOWS_SetMenuItemInfoW
+@ stdcall SetPrinterDataW(long wstr long ptr long) UNICOWS_SetPrinterDataW
+@ stdcall SetPrinterW(long long ptr long) UNICOWS_SetPrinterW
+@ stdcall SetPropA(long str long) UNICOWS_SetPropA
+@ stdcall SetPropW(long wstr long) UNICOWS_SetPropW
+@ stdcall SetVolumeLabelW(wstr wstr) UNICOWS_SetVolumeLabelW
+@ stdcall SetWindowLongA(long long long) UNICOWS_SetWindowLongA
+@ stdcall SetWindowLongW(long long long) UNICOWS_SetWindowLongW
+@ stdcall SetWindowTextW(long wstr) UNICOWS_SetWindowTextW
+@ stdcall SetWindowsHookExW(long long long long) UNICOWS_SetWindowsHookExW
+@ stdcall SetWindowsHookW(long ptr) UNICOWS_SetWindowsHookW
+@ stdcall ShellAboutW(long wstr wstr long) UNICOWS_ShellAboutW
+@ stdcall ShellExecuteExW (long) UNICOWS_ShellExecuteExW
+@ stdcall ShellExecuteW (long wstr wstr wstr wstr long) UNICOWS_ShellExecuteW
+@ stdcall Shell_NotifyIconW(long ptr) UNICOWS_Shell_NotifyIconW
+@ stdcall StartDocPrinterW(long long ptr) UNICOWS_StartDocPrinterW
+@ stdcall StartDocW(long ptr) UNICOWS_StartDocW
+@ stdcall SystemParametersInfoW(long long ptr long) UNICOWS_SystemParametersInfoW
+@ stdcall TabbedTextOutW(long long long wstr long long ptr long) UNICOWS_TabbedTextOutW
+@ stdcall TextOutW(long long long wstr long) UNICOWS_TextOutW
+@ stdcall TranslateAcceleratorW(long long ptr) UNICOWS_TranslateAcceleratorW
+@ stdcall UnregisterClassW(wstr long) UNICOWS_UnregisterClassW
+@ stub UpdateICMRegKeyW
+@ stdcall UpdateResourceA(long str str long ptr long) UNICOWS_UpdateResourceA
+@ stdcall UpdateResourceW(long wstr wstr long ptr long) UNICOWS_UpdateResourceW
+@ stdcall VerFindFileW(long wstr wstr wstr ptr ptr ptr ptr) UNICOWS_VerFindFileW
+@ stdcall VerInstallFileW(long wstr wstr wstr wstr wstr ptr ptr) UNICOWS_VerInstallFileW
+@ stdcall VerLanguageNameW(long wstr long) UNICOWS_VerLanguageNameW
+@ stdcall VerQueryValueW(ptr wstr ptr ptr) UNICOWS_VerQueryValueW
+@ stdcall VkKeyScanExW(long long) UNICOWS_VkKeyScanExW
+@ stdcall VkKeyScanW(long) UNICOWS_VkKeyScanW
+#@ stdcall WNetAddConnection2W(ptr wstr wstr long) mpr.WNetAddConnection2W
+@ stub WNetAddConnection2W
+#@ stdcall WNetAddConnection3W(long ptr wstr wstr long) mpr.WNetAddConnection3W
+@ stub WNetAddConnection3W
+#@ stdcall WNetAddConnectionW(wstr wstr wstr) mpr.WNetAddConnectionW
+@ stub WNetAddConnectionW
+#@ stdcall WNetCancelConnection2W(wstr long long) mpr.WNetCancelConnection2W
+@ stub WNetCancelConnection2W
+#@ stdcall WNetCancelConnectionW(wstr long) mpr.WNetCancelConnectionW
+@ stub WNetCancelConnectionW
+#@ stdcall WNetConnectionDialog1W(ptr) mpr.WNetConnectionDialog1W
+@ stub WNetConnectionDialog1W
+#@ stdcall WNetDisconnectDialog1W(ptr) mpr.WNetDisconnectDialog1W
+@ stub WNetDisconnectDialog1W
+#@ stdcall WNetEnumResourceW(long ptr ptr ptr) mpr.WNetEnumResourceW
+@ stub WNetEnumResourceW
+#@ stdcall WNetGetConnectionW(wstr ptr ptr) mpr.WNetGetConnectionW
+@ stub WNetGetConnectionW
+#@ stdcall WNetGetLastErrorW(ptr ptr long ptr long) mpr.WNetGetLastErrorW
+@ stub WNetGetLastErrorW
+#@ stdcall WNetGetNetworkInformationW(wstr ptr) mpr.WNetGetNetworkInformationW
+@ stub WNetGetNetworkInformationW
+#@ stdcall WNetGetProviderNameW(long ptr ptr) mpr.WNetGetProviderNameW
+@ stub WNetGetProviderNameW
+#@ stdcall WNetGetResourceInformationW(ptr ptr ptr ptr) mpr.WNetGetResourceInformationW
+@ stub WNetGetResourceInformationW
+#@ stdcall WNetGetResourceParentW(ptr ptr ptr) mpr.WNetGetResourceParentW
+@ stub WNetGetResourceParentW
+#@ stdcall WNetGetUniversalNameW (wstr long ptr ptr) mpr.WNetGetUniversalNameW
+@ stub WNetGetUniversalNameW 
+#@ stdcall WNetGetUserW(wstr wstr ptr) mpr.WNetGetUserW
+@ stub WNetGetUserW
+#@ stdcall WNetOpenEnumW(long long long ptr ptr) mpr.WNetOpenEnumW
+@ stub WNetOpenEnumW
+#@ stdcall WNetUseConnectionW(long ptr wstr wstr long wstr ptr ptr) mpr.WNetUseConnectionW
+@ stub WNetUseConnectionW
+@ stdcall WaitNamedPipeW (wstr long) UNICOWS_WaitNamedPipeW 
+@ stdcall WideCharToMultiByte(long long wstr long ptr long ptr ptr) UNICOWS_WideCharToMultiByte
+@ stdcall WinHelpW(long wstr long long) UNICOWS_WinHelpW
+@ stdcall WriteConsoleInputW(long ptr long ptr) UNICOWS_WriteConsoleInputW
+@ stdcall WriteConsoleOutputCharacterW(long ptr long long ptr) UNICOWS_WriteConsoleOutputCharacterW
+@ stdcall WriteConsoleOutputW(long ptr long long ptr) UNICOWS_WriteConsoleOutputW
+@ stdcall WriteConsoleW(long ptr long ptr ptr) UNICOWS_WriteConsoleW
+@ stdcall WritePrivateProfileSectionW(wstr wstr wstr) UNICOWS_WritePrivateProfileSectionW
+@ stdcall WritePrivateProfileStringW(wstr wstr wstr wstr) UNICOWS_WritePrivateProfileStringW
+@ stdcall WritePrivateProfileStructW(wstr wstr ptr long wstr) UNICOWS_WritePrivateProfileStructW
+@ stdcall WriteProfileSectionW(str str) UNICOWS_WriteProfileSectionW
+@ stdcall WriteProfileStringW(wstr wstr wstr) UNICOWS_WriteProfileStringW
+@ stub __FreeAllLibrariesInMsluDll
+@ stdcall auxGetDevCapsW(long ptr long) UNICOWS_auxGetDevCapsW
+#@ stdcall capCreateCaptureWindowW(wstr long long long long long long long) avicap32.capCreateCaptureWindowW
+@ stub capCreateCaptureWindowW
+#@ stdcall capGetDriverDescriptionW(long ptr long ptr long) avicap32.capGetDriverDescriptionW
+@ stub capGetDriverDescriptionW
+@ stdcall joyGetDevCapsW(long ptr long) UNICOWS_joyGetDevCapsW
+@ stdcall lstrcatW(wstr wstr) UNICOWS_lstrcatW
+@ stdcall lstrcmpW(wstr wstr) UNICOWS_lstrcmpW
+@ stdcall lstrcmpiW(wstr wstr) UNICOWS_lstrcmpiW
+@ stdcall lstrcpyW(ptr wstr) UNICOWS_lstrcpyW
+@ stdcall lstrcpynW(ptr wstr long) UNICOWS_lstrcpynW
+@ stdcall lstrlenW(wstr) UNICOWS_lstrlenW
+@ stdcall mciGetDeviceIDW(str) UNICOWS_mciGetDeviceIDW
+@ stdcall mciGetErrorStringW(long ptr long) UNICOWS_mciGetErrorStringW
+@ stdcall mciSendCommandW(long long long long) UNICOWS_mciSendCommandW
+@ stdcall mciSendStringW(wstr ptr long long) UNICOWS_mciSendStringW
+@ stdcall midiInGetDevCapsW(long ptr long) UNICOWS_midiInGetDevCapsW
+@ stdcall midiInGetErrorTextW(long ptr long) UNICOWS_midiInGetErrorTextW
+@ stdcall midiOutGetDevCapsW(long ptr long) UNICOWS_midiOutGetDevCapsW
+@ stdcall midiOutGetErrorTextW(long ptr long) UNICOWS_midiOutGetErrorTextW
+@ stdcall mixerGetControlDetailsW(long ptr long) UNICOWS_mixerGetControlDetailsW
+@ stdcall mixerGetDevCapsW(long ptr long) UNICOWS_mixerGetDevCapsW
+@ stdcall mixerGetLineControlsW(long ptr long) UNICOWS_mixerGetLineControlsW
+@ stdcall mixerGetLineInfoW(long ptr long) UNICOWS_mixerGetLineInfoW
+@ stdcall mmioInstallIOProcW(long ptr long) UNICOWS_mmioInstallIOProcW
+@ stdcall mmioOpenW(wstr ptr long) UNICOWS_mmioOpenW
+@ stdcall mmioRenameW(wstr wstr ptr long) UNICOWS_mmioRenameW
+@ stdcall mmioStringToFOURCCW(wstr long) UNICOWS_mmioStringToFOURCCW
+@ stdcall sndPlaySoundW(ptr long) UNICOWS_sndPlaySoundW
+@ stdcall waveInGetDevCapsW(long ptr long) UNICOWS_waveInGetDevCapsW
+@ stdcall waveInGetErrorTextW(long ptr long) UNICOWS_waveInGetErrorTextW
+@ stdcall waveOutGetDevCapsW(long ptr long) UNICOWS_waveOutGetDevCapsW
+@ stdcall waveOutGetErrorTextW(long ptr long) UNICOWS_waveOutGetErrorTextW
+@ varargs wsprintfW(wstr wstr)
+@ stdcall wvsprintfW(ptr wstr ptr) UNICOWS_wvsprintfW
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/user.c	2003-11-27 00:47:56.000000000 +0200
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "ddeml.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC4(BOOL WINAPI, AppendMenuW, HMENU, UINT, UINT_PTR, LPCWSTR )
+FORWARDFUNC5(LONG WINAPI, BroadcastSystemMessageW, DWORD, LPDWORD, UINT, WPARAM, LPARAM )
+FORWARDFUNC2(BOOL WINAPI, CallMsgFilterW, LPMSG, INT )
+FORWARDFUNC5(LRESULT WINAPI, CallWindowProcA, WNDPROC, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC5(LRESULT WINAPI, CallWindowProcW, WNDPROC, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC5(LONG WINAPI, ChangeDisplaySettingsExW, LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID )
+FORWARDFUNC2(LONG WINAPI, ChangeDisplaySettingsW, LPDEVMODEW, DWORD )
+FORWARDFUNC5(BOOL WINAPI, ChangeMenuW, HMENU, UINT, LPCWSTR, UINT, UINT )
+FORWARDFUNC2(DWORD WINAPI, CharLowerBuffW, LPWSTR, DWORD )
+FORWARDFUNC1(LPWSTR WINAPI, CharLowerW, LPWSTR )
+FORWARDFUNC1(LPWSTR WINAPI, CharNextW, LPCWSTR )
+FORWARDFUNC2(LPWSTR WINAPI, CharPrevW, LPCWSTR, LPCWSTR )
+FORWARDFUNC3(BOOL WINAPI, CharToOemBuffW, LPCWSTR, LPSTR, DWORD )
+FORWARDFUNC2(BOOL WINAPI, CharToOemW, LPCWSTR, LPSTR )
+FORWARDFUNC2(DWORD WINAPI, CharUpperBuffW, LPWSTR, DWORD )
+FORWARDFUNC1(LPWSTR WINAPI, CharUpperW, LPWSTR )
+FORWARDFUNC3(INT WINAPI, CopyAcceleratorTableW, HACCEL, LPACCEL, INT )
+FORWARDFUNC2(HACCEL WINAPI, CreateAcceleratorTableW, LPACCEL, INT )
+FORWARDFUNC5(HWND WINAPI, CreateDialogIndirectParamW, HINSTANCE, LPCDLGTEMPLATEW, HWND, DLGPROC, LPARAM )
+FORWARDFUNC5(HWND WINAPI, CreateDialogParamW, HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM )
+FORWARDFUNC10(HWND WINAPI, CreateMDIWindowW, LPCWSTR, LPCWSTR, DWORD, INT, INT, INT, INT, HWND, HINSTANCE, LPARAM ) 
+FORWARDFUNC12(HWND WINAPI, CreateWindowExW, DWORD, LPCWSTR, LPCWSTR, DWORD, INT, INT, INT, INT, HWND, HMENU, HINSTANCE, LPVOID )
+FORWARDFUNC4(HCONV WINAPI, DdeConnect, DWORD, HSZ, HSZ, PCONVCONTEXT )
+FORWARDFUNC5(HCONVLIST WINAPI, DdeConnectList, DWORD, HSZ, HSZ, HCONVLIST, PCONVCONTEXT )
+FORWARDFUNC3(HSZ WINAPI, DdeCreateStringHandleW, DWORD, LPCWSTR, INT )
+FORWARDFUNC4(UINT WINAPI, DdeInitializeW, LPDWORD, PFNCALLBACK, DWORD, DWORD )
+FORWARDFUNC3(UINT WINAPI, DdeQueryConvInfo, HCONV, DWORD, PCONVINFO )
+FORWARDFUNC5(DWORD WINAPI, DdeQueryStringW, DWORD, HSZ, LPWSTR, DWORD, INT )
+FORWARDFUNC4(LRESULT WINAPI, DefDlgProcW, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC5(LRESULT WINAPI, DefFrameProcW, HWND, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC4(LRESULT WINAPI, DefMDIChildProcW, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC4(LRESULT WINAPI, DefWindowProcW, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC5(INT_PTR WINAPI, DialogBoxIndirectParamW, HINSTANCE, LPCDLGTEMPLATEW, HWND, DLGPROC, LPARAM )
+FORWARDFUNC5(INT_PTR WINAPI, DialogBoxParamW, HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM )
+FORWARDFUNC1(LONG WINAPI, DispatchMessageW, const MSG* )
+FORWARDFUNC5(INT WINAPI, DlgDirListComboBoxW, HWND, LPWSTR, INT, INT, UINT )
+FORWARDFUNC5(INT WINAPI, DlgDirListW, HWND, LPWSTR, INT, INT, UINT )
+FORWARDFUNC4(BOOL WINAPI, DlgDirSelectComboBoxExW, HWND, LPWSTR, INT, INT )
+FORWARDFUNC4(BOOL WINAPI, DlgDirSelectExW, HWND, LPWSTR, INT, INT )
+FORWARDFUNC10(BOOL WINAPI, DrawStateW, HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, INT, INT, INT, INT, UINT )
+FORWARDFUNC6(INT WINAPI, DrawTextExW, HDC, LPWSTR, INT, LPRECT, UINT, LPDRAWTEXTPARAMS )
+FORWARDFUNC5(INT WINAPI, DrawTextW, HDC, LPCWSTR, INT, LPRECT, UINT )
+FORWARDFUNC2(BOOL WINAPI, EnableWindow, HWND, BOOL )
+FORWARDFUNC1(UINT WINAPI, EnumClipboardFormats, UINT )
+FORWARDFUNC4(BOOL WINAPI, EnumDisplayDevicesW, LPVOID, DWORD, LPDISPLAY_DEVICEW, DWORD )
+FORWARDFUNC4(BOOL WINAPI, EnumDisplaySettingsExW, LPCWSTR, DWORD, LPDEVMODEW, DWORD )
+FORWARDFUNC3(BOOL WINAPI, EnumDisplaySettingsW, LPCWSTR, DWORD, LPDEVMODEW )
+FORWARDFUNC2(INT WINAPI, EnumPropsA, HWND, PROPENUMPROCA )
+FORWARDFUNC3(INT WINAPI, EnumPropsExA, HWND, PROPENUMPROCEXA, LPARAM )
+FORWARDFUNC3(INT WINAPI, EnumPropsExW, HWND, PROPENUMPROCEXW, LPARAM )
+FORWARDFUNC2(INT WINAPI, EnumPropsW, HWND, PROPENUMPROCW )
+FORWARDFUNC4(HWND WINAPI, FindWindowExW, HWND, HWND, LPCWSTR, LPCWSTR )
+FORWARDFUNC2(HWND WINAPI, FindWindowW, LPCWSTR, LPCWSTR )
+FORWARDFUNC3(BOOL WINAPI, GetClassInfoExW, HINSTANCE, LPCWSTR, WNDCLASSEXW *)
+FORWARDFUNC3(BOOL WINAPI, GetClassInfoW, HINSTANCE, LPCWSTR, WNDCLASSW *)
+FORWARDFUNC2(LONG WINAPI, GetClassLongW, HWND, INT )
+FORWARDFUNC3(INT WINAPI, GetClassNameW, HWND, LPWSTR, INT )
+FORWARDFUNC1(HANDLE WINAPI, GetClipboardData, UINT )
+FORWARDFUNC3(INT WINAPI, GetClipboardFormatNameW, UINT, LPWSTR, INT )
+FORWARDFUNC4(INT WINAPI, GetDlgItemTextW, HWND, INT, LPWSTR, UINT )
+FORWARDFUNC3(INT WINAPI, GetKeyNameTextW, LONG, LPWSTR, INT)
+FORWARDFUNC1(INT WINAPI, GetKeyboardLayoutNameW, LPWSTR);
+FORWARDFUNC4(BOOL WINAPI, GetMenuItemInfoW, HMENU, UINT, BOOL, LPMENUITEMINFOW )
+FORWARDFUNC5(INT WINAPI, GetMenuStringW, HMENU, UINT, LPWSTR, INT, UINT )
+FORWARDFUNC4(BOOL WINAPI, GetMessageW, MSG *, HWND, UINT, UINT )
+FORWARDFUNC2(BOOL WINAPI, GetMonitorInfoW, HMONITOR, LPMONITORINFO)
+FORWARDFUNC2(HANDLE WINAPI, GetPropA, HWND, LPCSTR )
+FORWARDFUNC2(HANDLE WINAPI, GetPropW, HWND, LPCWSTR )
+FORWARDFUNC5(DWORD WINAPI, GetTabbedTextExtentW, HDC, LPCWSTR, INT, INT, const INT * )
+FORWARDFUNC2(LONG WINAPI, GetWindowLongA, HWND, INT)
+FORWARDFUNC2(LONG WINAPI, GetWindowLongW, HWND, INT)
+FORWARDFUNC3(UINT WINAPI, GetWindowModuleFileNameW, HWND, LPWSTR, UINT )
+FORWARDFUNC1(INT WINAPI, GetWindowTextLengthW, HWND)
+FORWARDFUNC3(INT WINAPI, GetWindowTextW, HWND, LPWSTR, INT)
+FORWARDFUNC9(BOOL WINAPI, GrayStringW, HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, INT, INT, INT, INT, INT )
+FORWARDFUNC4(BOOL WINAPI, InsertMenuItemW, HMENU, UINT, BOOL, const MENUITEMINFOW *)
+FORWARDFUNC5(BOOL WINAPI, InsertMenuW, HMENU, UINT, UINT, UINT_PTR, LPCWSTR )
+FORWARDFUNC1(BOOL WINAPI, IsCharAlphaNumericW, WCHAR )
+FORWARDFUNC1(BOOL WINAPI, IsCharAlphaW, WCHAR )
+FORWARDFUNC1(BOOL WINAPI, IsCharLowerW, WCHAR )
+FORWARDFUNC1(BOOL WINAPI, IsCharUpperW, WCHAR )
+FORWARDFUNC1(BOOL WINAPI, IsClipboardFormatAvailable, UINT )
+FORWARDFUNC2(BOOL WINAPI, IsDialogMessageW, HWND, LPMSG)
+FORWARDFUNC1(BOOL WINAPI, IsWindowUnicode, HWND)
+FORWARDFUNC2(HACCEL WINAPI, LoadAcceleratorsW, HINSTANCE, LPCWSTR )
+FORWARDFUNC2(HBITMAP WINAPI, LoadBitmapW, HINSTANCE, LPCWSTR)
+FORWARDFUNC1(HCURSOR WINAPI, LoadCursorFromFileW, LPCWSTR)
+FORWARDFUNC2(HCURSOR WINAPI, LoadCursorW, HINSTANCE, LPCWSTR)
+FORWARDFUNC2(HICON WINAPI, LoadIconW, HINSTANCE, LPCWSTR)
+FORWARDFUNC6(HANDLE WINAPI, LoadImageW, HINSTANCE, LPCWSTR, UINT, INT, INT, UINT)
+FORWARDFUNC2(HKL WINAPI, LoadKeyboardLayoutW, LPCWSTR, UINT)
+FORWARDFUNC1(HMENU WINAPI, LoadMenuIndirectW, LPCVOID )
+FORWARDFUNC2(HMENU WINAPI, LoadMenuW, HINSTANCE, LPCWSTR )
+FORWARDFUNC4(INT WINAPI, LoadStringW, HINSTANCE, UINT, LPWSTR, INT )
+FORWARDFUNC3(UINT WINAPI, MapVirtualKeyExW, UINT, UINT, HKL)
+FORWARDFUNC2(UINT WINAPI, MapVirtualKeyW, UINT, UINT)
+FORWARDFUNC5(INT WINAPI, MessageBoxExW, HWND, LPCWSTR, LPCWSTR, UINT, WORD)
+FORWARDFUNC1(INT WINAPI, MessageBoxIndirectW, LPMSGBOXPARAMSW)
+FORWARDFUNC4(INT WINAPI, MessageBoxW, HWND, LPCWSTR, LPCWSTR, UINT)
+FORWARDFUNC5(BOOL WINAPI, ModifyMenuW, HMENU, UINT, UINT, UINT_PTR, LPCWSTR )
+FORWARDFUNC3(BOOL WINAPI, OemToCharBuffW, LPCSTR, LPWSTR, DWORD )
+FORWARDFUNC2(BOOL WINAPI, OemToCharW, LPCSTR, LPWSTR )
+FORWARDFUNC5(BOOL WINAPI, PeekMessageW, MSG *, HWND, UINT, UINT, UINT )
+FORWARDFUNC4(BOOL WINAPI, PostMessageW, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC4(BOOL WINAPI, PostThreadMessageW, DWORD, UINT, WPARAM, LPARAM )
+FORWARDFUNC1(ATOM WINAPI, RegisterClassExW, const WNDCLASSEXW *)
+FORWARDFUNC1(ATOM WINAPI, RegisterClassW, const WNDCLASSW *)
+FORWARDFUNC1(UINT WINAPI, RegisterClipboardFormatW, LPCWSTR)
+FORWARDFUNC1(WORD WINAPI, RegisterWindowMessageW, LPCWSTR)
+FORWARDFUNC2(HANDLE WINAPI, RemovePropA, HWND, LPCSTR )
+FORWARDFUNC2(HANDLE WINAPI, RemovePropW, HWND, LPCWSTR )
+FORWARDFUNC5(LRESULT WINAPI, SendDlgItemMessageW, HWND, INT, UINT, WPARAM, LPARAM)
+FORWARDFUNC6(BOOL WINAPI, SendMessageCallbackW, HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, ULONG_PTR )
+FORWARDFUNC7(LRESULT WINAPI, SendMessageTimeoutW, HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD_PTR )
+FORWARDFUNC4(LRESULT WINAPI, SendMessageW, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC4(BOOL WINAPI, SendNotifyMessageW, HWND, UINT, WPARAM, LPARAM )
+FORWARDFUNC3(LONG WINAPI, SetClassLongW, HWND, INT, LONG)
+FORWARDFUNC3(BOOL WINAPI, SetDlgItemTextW, HWND, INT, LPCWSTR)
+FORWARDFUNC4(BOOL WINAPI, SetMenuItemInfoW, HMENU, UINT, BOOL, const MENUITEMINFOW *)
+FORWARDFUNC3(BOOL WINAPI, SetPropA, HWND, LPCSTR, HANDLE )
+FORWARDFUNC3(BOOL WINAPI, SetPropW, HWND, LPCWSTR, HANDLE )
+FORWARDFUNC3(LONG WINAPI, SetWindowLongA, HWND, INT, LONG)
+FORWARDFUNC3(LONG WINAPI, SetWindowLongW, HWND, INT, LONG)
+FORWARDFUNC2(BOOL WINAPI, SetWindowTextW, HWND, LPCWSTR)
+FORWARDFUNC4(HHOOK WINAPI, SetWindowsHookExW, INT, HOOKPROC, HINSTANCE, DWORD )
+FORWARDFUNC2(HHOOK WINAPI, SetWindowsHookW, INT, HOOKPROC )
+FORWARDFUNC4(BOOL WINAPI, SystemParametersInfoW, UINT, UINT, LPVOID, UINT)
+FORWARDFUNC8(LONG WINAPI, TabbedTextOutW, HDC, INT, INT, LPCWSTR, INT, INT, const INT *, INT )
+FORWARDFUNC3(INT WINAPI, TranslateAcceleratorW, HWND, HACCEL, LPMSG )
+FORWARDFUNC2(BOOL WINAPI, UnregisterClassW, LPCWSTR, HINSTANCE)
+FORWARDFUNC2(WORD WINAPI, VkKeyScanExW, WCHAR, HKL)
+FORWARDFUNC1(WORD WINAPI, VkKeyScanW, WCHAR)
+FORWARDFUNC4(BOOL WINAPI, WinHelpW, HWND, LPCWSTR, UINT, ULONG_PTR)
+FORWARDFUNC3(INT WINAPI, wvsprintfW, LPWSTR, LPCWSTR, va_list )
+
+INT WINAPIV wsprintfW( LPWSTR buffer, LPCWSTR spec, ... )
+{
+    va_list valist;
+    INT res;
+
+    TRACE("Called\n");
+
+    va_start( valist, spec );
+    res = wvsprintfW( buffer, spec, valist );
+    va_end( valist );
+    return  res;
+}
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/version.c	2003-11-26 23:44:45.000000000 +0200
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "winver.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC2( DWORD WINAPI, GetFileVersionInfoSizeW, LPCWSTR, LPDWORD )
+FORWARDFUNC4( BOOL WINAPI, GetFileVersionInfoW, LPCWSTR, DWORD, DWORD, LPVOID )
+FORWARDFUNC8( DWORD WINAPI, VerFindFileW, UINT, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, UINT *, LPWSTR, UINT *)
+FORWARDFUNC8( DWORD WINAPI, VerInstallFileW, UINT, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, UINT *)
+FORWARDFUNC4( DWORD WINAPI, VerQueryValueW, LPVOID, LPCWSTR, LPVOID *, UINT *)
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/winmm.c	2003-11-27 00:34:01.000000000 +0200
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "mmsystem.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC3( BOOL WINAPI, PlaySoundW, LPCWSTR, HMODULE, DWORD )
+FORWARDFUNC3( UINT WINAPI, auxGetDevCapsW, UINT, LPAUXCAPSW, UINT )
+FORWARDFUNC3( MMRESULT WINAPI, joyGetDevCapsW, UINT, LPJOYCAPSW, UINT )
+FORWARDFUNC1( UINT WINAPI, mciGetDeviceIDW, LPCWSTR )
+FORWARDFUNC3( BOOL WINAPI, mciGetErrorStringW, DWORD, LPWSTR, UINT )
+FORWARDFUNC4( DWORD WINAPI, mciSendCommandW, UINT, UINT, DWORD, DWORD )
+FORWARDFUNC4( DWORD WINAPI, mciSendStringW, LPCWSTR, LPWSTR, UINT, HWND )
+FORWARDFUNC3( UINT WINAPI, midiInGetDevCapsW, UINT, LPMIDIINCAPSW, UINT )
+FORWARDFUNC3( UINT WINAPI, midiInGetErrorTextW, UINT, LPWSTR, UINT )
+FORWARDFUNC3( UINT WINAPI, midiOutGetDevCapsW, UINT, LPMIDIOUTCAPSW, UINT )
+FORWARDFUNC3( UINT WINAPI, midiOutGetErrorTextW, UINT, LPWSTR, UINT )
+FORWARDFUNC3( UINT WINAPI, mixerGetControlDetailsW, HMIXEROBJ, LPMIXERCONTROLDETAILS, DWORD )
+FORWARDFUNC3( UINT WINAPI, mixerGetDevCapsW, UINT, LPMIXERCAPSW, UINT )
+FORWARDFUNC3( UINT WINAPI, mixerGetLineControlsW, HMIXEROBJ, LPMIXERLINECONTROLSW, DWORD )
+FORWARDFUNC3( UINT WINAPI, mixerGetLineInfoW, HMIXEROBJ, LPMIXERLINEW, DWORD )
+FORWARDFUNC3( LPMMIOPROC WINAPI, mmioInstallIOProcW, FOURCC, LPMMIOPROC, DWORD )
+FORWARDFUNC3( HMMIO WINAPI, mmioOpenW, LPWSTR, MMIOINFO*, DWORD )
+FORWARDFUNC4( MMRESULT WINAPI, mmioRenameW, LPCWSTR, LPCWSTR, const MMIOINFO*, DWORD )
+FORWARDFUNC2( FOURCC WINAPI, mmioStringToFOURCCW, LPCWSTR, UINT )
+FORWARDFUNC2( BOOL WINAPI, sndPlaySoundW, LPCWSTR, UINT )
+FORWARDFUNC3( UINT WINAPI, waveInGetDevCapsW, UINT, LPWAVEINCAPSW, UINT )
+FORWARDFUNC3( UINT WINAPI, waveInGetErrorTextW, UINT, LPWSTR, UINT )
+FORWARDFUNC3( UINT WINAPI, waveOutGetDevCapsW, UINT, LPWAVEOUTCAPSW, UINT )
+FORWARDFUNC3( UINT WINAPI, waveOutGetErrorTextW, UINT, LPWSTR, UINT )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/winspool.c	2003-11-27 00:47:28.000000000 +0200
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2003 Shachar Shemesh
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * 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
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winspool.h"
+
+#include "wine/debug.h"
+
+#include "unicows.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(unicows);
+
+FORWARDFUNC5( BOOL WINAPI, AddJobW, HANDLE, DWORD, LPBYTE, DWORD, LPDWORD )
+FORWARDFUNC3( BOOL WINAPI, AddPrinterDriverW, LPWSTR, DWORD, LPBYTE )
+FORWARDFUNC3( HANDLE WINAPI, AddPrinterW, LPWSTR, DWORD, LPBYTE )
+FORWARDFUNC5( INT WINAPI, DeviceCapabilitiesW, LPCWSTR, LPCWSTR, WORD, LPWSTR, const DEVMODEW * )
+FORWARDFUNC6( LONG WINAPI, DocumentPropertiesW, HWND, HANDLE, LPWSTR, LPDEVMODEW, LPDEVMODEW, DWORD )
+FORWARDFUNC7( BOOL WINAPI, EnumPrinterDriversW, LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD )
+FORWARDFUNC7( BOOL WINAPI, EnumPrintersW, DWORD, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD)
+FORWARDFUNC6( DWORD WINAPI, GetPrinterDataW, HANDLE, LPWSTR, LPDWORD, LPBYTE, DWORD, LPDWORD)
+FORWARDFUNC6( BOOL WINAPI, GetPrinterDriverDirectoryW, LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD )
+FORWARDFUNC6( BOOL WINAPI, GetPrinterDriverW, HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD )
+FORWARDFUNC5( BOOL WINAPI, GetPrinterW, HANDLE, DWORD, LPBYTE, DWORD, LPDWORD )
+FORWARDFUNC3( BOOL WINAPI, OpenPrinterW, LPWSTR, HANDLE *, LPPRINTER_DEFAULTSW )
+FORWARDFUNC2( BOOL WINAPI, ResetPrinterW, HANDLE, LPPRINTER_DEFAULTSW )
+FORWARDFUNC5( BOOL WINAPI, SetJobW, HANDLE, DWORD, DWORD, LPBYTE, DWORD )
+FORWARDFUNC5( DWORD WINAPI, SetPrinterDataW, HANDLE, LPWSTR, DWORD, LPBYTE, DWORD )
+FORWARDFUNC4( BOOL WINAPI, SetPrinterW, HANDLE, DWORD, LPBYTE, DWORD )
+FORWARDFUNC3( DWORD WINAPI, StartDocPrinterW, HANDLE, DWORD, LPBYTE )
--- /dev/null	2003-08-25 19:02:45.000000000 +0300
+++ dlls/unicows/.cvsignore	2003-10-29 15:23:56.000000000 +0200
@@ -0,0 +1,4 @@
+Makefile
+unicows.dll.dbg.c
+unicows.spec.c
+unicows.spec.def


More information about the wine-patches mailing list