Release 960712

Fri Jul 12 17:43:05 1996  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [controls/scroll.c]
	Use Win32 heap functions to allocate scroll-bar info structure.

	* [debugger/dbg.y] [debugger/registers.c]
	Added support for FS and GS segment registers.
	Check that segment registers value are OK before returning from
	the signal handler.

	* [tools/build.c] [if1632/relay.c] [loader/builtin.c]
	Changed relay debugging for Win32 function: the relay code now
	passes the entry point address instead of the function name.

	* [tools/build.c] [miscemu/*.c]
	Added support for data entry points in Win32 DLLs.
	Added 'cdecl' function type for Win32.
	For 'register' function, the relay code now passes a pointer to
	the SIGCONTEXT structure.
	
	* [include/registers.h] [include/wine.h]
	Moved SIGCONTEXT structure definition in registers.h.

	* [loader/pe_image.c]
	Don't die at once if some Win32 entry points cannot be found, but
	set them to NULL, just like we do for Win16. This allows some
	programs to go further before crashing.

	* [loader/task.c] [loader/main.c]
	Moved global initializations from InitTask() to MAIN_Init(), as
	they no longer need a task context with the new SEGPTR heap functions.

	* [memory/string.c]
	Added lstrcpynAtoW and lstrcpynWtoA; not real API functions, but
 	very convenient.

	* [windows/graphics.c]
	Partially implemented DrawEdge().

	* [windows/timer.c] [windows/caret.c]
	Implemented Win32 timer handling. Updated caret management to use
	Win32 timers (avoids having to use a Win16 callback).

	* [windows/win.c]
	Prevent programs from setting some style bits with
	SetWindowLong(). This should fix some BadMatch crashes.
	Link new windows at the end of the linked list.

	* [windows/winpos.c]
	Don't try to activate a child window in ShowWindow().

	* [windows/winproc.c]
	Added a 32->32 thunk to support Ansi-Unicode translation.

Wed Jul 10 22:11:12 1996  Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>

	* [files/directory.c]
	Additional (undocumented) return value for GetTempDrive() added.

	* [files/dos_fs.c] [files/file.c] [include/windows.h]
	GetTempFileName32* added.
	GetShortPathName* added.

	* [memory/string.c]
	Win16 lstrcpy() can get NULL ptrs as argument and survive.

	* [misc/lzexpand.c]
	LZOpenFile(): also try opening with compressed filename if normal
 	open fails.

	* [misc/ole2nls.c] [misc/lstr.c] [include/windows.h]
	Char* added.
	CompareString* added.

Sun Jul  7 01:22:14 1996  Jukka Iivonen <iivonen@cc.helsinki.fi>

	* [objects/font.c] [if1632/gdi32.spec]
	CreateFontIndirect32A and CreateFontIndirect32W added.

	* [misc/ole2nls.c]
	GetUserDefaultLCID return values updated for new languages.
	Finnish support added for GetLocaleInfoA.

	* [object/palette] [gdi32.spec]
	RealizePalette32 and SelectPalette32 added.
	
Sat Jul  6 17:27:30 1996  Ronan Waide  <root@waider.ie>

	* [misc/shell.c]
	Fixup for SHELL_FindExecutable so that File->Run from progman
	works once more. Still needs some more fixups - grep for FIXME in
	this file.
diff --git a/include/brush.h b/include/brush.h
index 6803254..d1836b3 100644
--- a/include/brush.h
+++ b/include/brush.h
@@ -9,9 +9,7 @@
 
 #include "gdi.h"
 
-#ifndef WINELIB
 #pragma pack(1)
-#endif
 
   /* GDI logical brush object */
 typedef struct
@@ -20,9 +18,7 @@
     LOGBRUSH16  logbrush WINE_PACKED;
 } BRUSHOBJ;
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
 extern BOOL BRUSH_Init(void);
 extern int BRUSH_GetObject( BRUSHOBJ * brush, int count, LPSTR buffer );
diff --git a/include/callback.h b/include/callback.h
index b45373b..89d231a 100644
--- a/include/callback.h
+++ b/include/callback.h
@@ -1,5 +1,5 @@
 /*
- * 16-bit mode callback functions
+ * Callback functions
  *
  * Copyright 1995 Alexandre Julliard
  */
@@ -77,16 +77,16 @@
 #define CallWindowsExitProc( func, nExitType ) \
     CallTo16_word_w( func, CURRENT_DS, nExitType )
 #define CallWndProc16( func, ds, hwnd, msg, wParam, lParam ) \
-    CallTo16_long_wwwl( func, ds, hwnd, msg, wParam, lParam )
+    CallTo16_long_wwwl( (FARPROC16)(func), ds, hwnd, msg, wParam, lParam )
 #define CallWordBreakProc( func, lpch, ichCurrent, cch, code ) \
     CallTo16_word_lwww( func, CURRENT_DS, lpch, ichCurrent, cch, code )
 #define CallWndProcNCCREATE16( func, ds, exStyle, clsName, winName, style, \
                                x, y, cx, cy, hparent, hmenu, instance, \
                                params, hwnd, msg, wParam, lParam ) \
-    CallTo16_long_lllllllwlwwwl( func, ds, exStyle, clsName, winName, style, \
-                                 MAKELONG(y,x), MAKELONG(cy,cx), \
-                                 MAKELONG(hmenu,hparent), instance, params, \
-                                 hwnd, msg, wParam, lParam )
+    CallTo16_long_lllllllwlwwwl( (FARPROC16)(func), ds, exStyle, clsName, \
+                              winName, style, MAKELONG(y,x), MAKELONG(cy,cx), \
+                              MAKELONG(hmenu,hparent), instance, params, \
+                              hwnd, msg, wParam, lParam )
 
 /* List of the 32-bit callback functions. This list is used  */
 /* by the build program to generate the file if1632/callto32.S */
diff --git a/include/commdlg.h b/include/commdlg.h
index 47efc9d..0140d32 100644
--- a/include/commdlg.h
+++ b/include/commdlg.h
@@ -11,10 +11,6 @@
 
 #include "wintypes.h"		/* needed for CHOOSEFONT structure */
 
-#ifndef WINELIB
-#pragma pack(1)
-#endif
-
 #define RT_CURSOR           MAKEINTRESOURCE(1)
 #define RT_BITMAP           MAKEINTRESOURCE(2)
 #define RT_ICON             MAKEINTRESOURCE(3)
@@ -29,10 +25,6 @@
 #define RT_GROUP_CURSOR     MAKEINTRESOURCE(12)
 #define RT_GROUP_ICON       MAKEINTRESOURCE(14)
 
-#ifndef HGLOBAL
-#define HGLOBAL     HANDLE
-#endif
-
 #define OFN_READONLY                 0x00000001
 #define OFN_OVERWRITEPROMPT          0x00000002
 #define OFN_HIDEREADONLY             0x00000004
@@ -55,7 +47,6 @@
 #define OFN_SHARENOWARN          1
 #define OFN_SHAREWARN            0
 
-
 typedef struct {
 	DWORD		lStructSize;
 	HWND		hwndOwner;
@@ -75,8 +66,7 @@
 	UINT		nFileExtension;
 	SEGPTR		lpstrDefExt;
 	LPARAM 		lCustData;
-/*	UINT 		(CALLBACK *lpfnHook)(HWND, UINT, WPARAM, LPARAM);*/
-        FARPROC         lpfnHook;
+        WNDPROC16       lpfnHook;
 	SEGPTR 		lpTemplateName;
 	}   OPENFILENAME;
 typedef OPENFILENAME * LPOPENFILENAME;
@@ -90,7 +80,7 @@
 	COLORREF       *lpCustColors;
 	DWORD 		Flags;
 	LPARAM		lCustData;
-	UINT		(*lpfnHook)(HWND, UINT, WPARAM, LPARAM);
+        WNDPROC16       lpfnHook;
 	SEGPTR 		lpTemplateName;
 	} CHOOSECOLOR;
 typedef CHOOSECOLOR *LPCHOOSECOLOR;
@@ -114,8 +104,7 @@
 	UINT		wFindWhatLen;           /* size of find buffer      */
 	UINT 		wReplaceWithLen;        /* size of replace buffer   */
 	LPARAM 		lCustData;              /* data passed to hook fn.  */
-/*	UINT		(CALLBACK* lpfnHook)(HWND, UINT, WPARAM, LPARAM); */
-        FARPROC         lpfnHook;
+        WNDPROC16       lpfnHook;
 	SEGPTR 		lpTemplateName;         /* custom template name     */
 	} FINDREPLACE;
 typedef FINDREPLACE *LPFINDREPLACE;
@@ -139,6 +128,8 @@
 #define FR_HIDEWHOLEWORD                0x00010000
 
 
+#pragma pack(1)
+
 typedef struct {
 	DWORD			lStructSize;
 	HWND			hwndOwner;          /* caller's window handle   */
@@ -148,8 +139,7 @@
 	DWORD			Flags WINE_PACKED;  /* enum. type flags         */
 	COLORREF		rgbColors;          /* returned text color      */
 	LPARAM	                lCustData;          /* data passed to hook fn.  */
-/*	UINT (CALLBACK* lpfnHook)(HWND, UINT, WPARAM, LPARAM);*/
-        FARPROC                 lpfnHook;
+        WNDPROC16               lpfnHook;
 	SEGPTR			lpTemplateName;     /* custom template name     */
 	HINSTANCE		hInstance;          /* instance handle of.EXE that   */
 							/* contains cust. dlg. template  */
@@ -164,6 +154,7 @@
 	} CHOOSEFONT;
 typedef CHOOSEFONT *LPCHOOSEFONT;
 
+#pragma pack(4)
 
 #define CF_SCREENFONTS               0x00000001
 #define CF_PRINTERFONTS              0x00000002
@@ -226,10 +217,8 @@
 	UINT		nCopies;
 	HINSTANCE 	hInstance;
 	LPARAM 		lCustData;
-/*	UINT		(CALLBACK* lpfnPrintHook)(HWND, UINT, WPARAM, LPARAM);
-	UINT		(CALLBACK* lpfnSetupHook)(HWND, UINT, WPARAM, LPARAM);*/
-        FARPROC         lpfnPrintHook;
-        FARPROC         lpfnSetupHook;
+        WNDPROC16       lpfnPrintHook;
+        WNDPROC16       lpfnSetupHook;
 	SEGPTR 		lpPrintTemplateName;
 	SEGPTR 		lpSetupTemplateName;
 	HGLOBAL 	hPrintTemplate;
@@ -237,7 +226,6 @@
 	} PRINTDLG;
 typedef PRINTDLG * LPPRINTDLG;
 
-
 #define PD_ALLPAGES                  0x00000000
 #define PD_SELECTION                 0x00000001
 #define PD_PAGENUMS                  0x00000002
@@ -306,10 +294,6 @@
 LRESULT PrintSetupDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
 LRESULT FormatCharDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
 
-#ifndef WINELIB
-#pragma pack(4)
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/cursoricon.h b/include/cursoricon.h
index 214ddbf..1555b18 100644
--- a/include/cursoricon.h
+++ b/include/cursoricon.h
@@ -10,10 +10,6 @@
 #include <X11/Xlib.h>
 #include "windows.h"
 
-#ifndef WINELIB
-#pragma pack(1)
-#endif
-
 typedef struct
 {
     BYTE   bWidth;
@@ -42,6 +38,8 @@
     CURSORDIRENTRY  cursor;
 } CURSORICONDIRENTRY;
 
+#pragma pack(1)
+
 typedef struct
 {
     WORD                idReserved;
@@ -50,9 +48,7 @@
     CURSORICONDIRENTRY  idEntries[1] WINE_PACKED;
 } CURSORICONDIR;
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
 extern Cursor CURSORICON_XCursor;  /* Current X cursor */
 
diff --git a/include/debug.h b/include/debug.h
index 0e0ab86..8936cca 100644
--- a/include/debug.h
+++ b/include/debug.h
@@ -36,7 +36,6 @@
 #undef DEBUG_DOSFS
 #undef DEBUG_DRIVER
 #undef DEBUG_EDIT
-#undef DEBUG_ENUM
 #undef DEBUG_ENV
 #undef DEBUG_EVENT
 #undef DEBUG_EXEC
@@ -114,7 +113,6 @@
 #define DEBUG_DOSFS
 #define DEBUG_DRIVER
 #define DEBUG_EDIT
-#define DEBUG_ENUM
 #define DEBUG_ENV
 #define DEBUG_EVENT
 #define DEBUG_EXEC
@@ -274,11 +272,6 @@
 #else
     0,
 #endif
-#ifdef DEBUG_ENUM
-    1,
-#else
-    0,
-#endif
 #ifdef DEBUG_ENV
     1,
 #else
@@ -817,21 +810,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_enum if(!debug_msg_enabled[20]) ; else fprintf
-#define debugging_enum debug_msg_enabled[20]
-#else
-#ifdef DEBUG_ENUM
-#define dprintf_enum fprintf
-#define debugging_enum 1
-#else
-#define dprintf_enum while(0) fprintf
-#define debugging_enum 0
-#endif
-#endif
-
-#ifdef DEBUG_RUNTIME
-#define dprintf_env if(!debug_msg_enabled[21]) ; else fprintf
-#define debugging_env debug_msg_enabled[21]
+#define dprintf_env if(!debug_msg_enabled[20]) ; else fprintf
+#define debugging_env debug_msg_enabled[20]
 #else
 #ifdef DEBUG_ENV
 #define dprintf_env fprintf
@@ -843,8 +823,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_event if(!debug_msg_enabled[22]) ; else fprintf
-#define debugging_event debug_msg_enabled[22]
+#define dprintf_event if(!debug_msg_enabled[21]) ; else fprintf
+#define debugging_event debug_msg_enabled[21]
 #else
 #ifdef DEBUG_EVENT
 #define dprintf_event fprintf
@@ -856,8 +836,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_exec if(!debug_msg_enabled[23]) ; else fprintf
-#define debugging_exec debug_msg_enabled[23]
+#define dprintf_exec if(!debug_msg_enabled[22]) ; else fprintf
+#define debugging_exec debug_msg_enabled[22]
 #else
 #ifdef DEBUG_EXEC
 #define dprintf_exec fprintf
@@ -869,8 +849,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_file if(!debug_msg_enabled[24]) ; else fprintf
-#define debugging_file debug_msg_enabled[24]
+#define dprintf_file if(!debug_msg_enabled[23]) ; else fprintf
+#define debugging_file debug_msg_enabled[23]
 #else
 #ifdef DEBUG_FILE
 #define dprintf_file fprintf
@@ -882,8 +862,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_fixup if(!debug_msg_enabled[25]) ; else fprintf
-#define debugging_fixup debug_msg_enabled[25]
+#define dprintf_fixup if(!debug_msg_enabled[24]) ; else fprintf
+#define debugging_fixup debug_msg_enabled[24]
 #else
 #ifdef DEBUG_FIXUP
 #define dprintf_fixup fprintf
@@ -895,8 +875,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_font if(!debug_msg_enabled[26]) ; else fprintf
-#define debugging_font debug_msg_enabled[26]
+#define dprintf_font if(!debug_msg_enabled[25]) ; else fprintf
+#define debugging_font debug_msg_enabled[25]
 #else
 #ifdef DEBUG_FONT
 #define dprintf_font fprintf
@@ -908,8 +888,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_gdi if(!debug_msg_enabled[27]) ; else fprintf
-#define debugging_gdi debug_msg_enabled[27]
+#define dprintf_gdi if(!debug_msg_enabled[26]) ; else fprintf
+#define debugging_gdi debug_msg_enabled[26]
 #else
 #ifdef DEBUG_GDI
 #define dprintf_gdi fprintf
@@ -921,8 +901,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_global if(!debug_msg_enabled[28]) ; else fprintf
-#define debugging_global debug_msg_enabled[28]
+#define dprintf_global if(!debug_msg_enabled[27]) ; else fprintf
+#define debugging_global debug_msg_enabled[27]
 #else
 #ifdef DEBUG_GLOBAL
 #define dprintf_global fprintf
@@ -934,8 +914,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_graphics if(!debug_msg_enabled[29]) ; else fprintf
-#define debugging_graphics debug_msg_enabled[29]
+#define dprintf_graphics if(!debug_msg_enabled[28]) ; else fprintf
+#define debugging_graphics debug_msg_enabled[28]
 #else
 #ifdef DEBUG_GRAPHICS
 #define dprintf_graphics fprintf
@@ -947,8 +927,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_heap if(!debug_msg_enabled[30]) ; else fprintf
-#define debugging_heap debug_msg_enabled[30]
+#define dprintf_heap if(!debug_msg_enabled[29]) ; else fprintf
+#define debugging_heap debug_msg_enabled[29]
 #else
 #ifdef DEBUG_HEAP
 #define dprintf_heap fprintf
@@ -960,8 +940,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_hook if(!debug_msg_enabled[31]) ; else fprintf
-#define debugging_hook debug_msg_enabled[31]
+#define dprintf_hook if(!debug_msg_enabled[30]) ; else fprintf
+#define debugging_hook debug_msg_enabled[30]
 #else
 #ifdef DEBUG_HOOK
 #define dprintf_hook fprintf
@@ -973,8 +953,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_icon if(!debug_msg_enabled[32]) ; else fprintf
-#define debugging_icon debug_msg_enabled[32]
+#define dprintf_icon if(!debug_msg_enabled[31]) ; else fprintf
+#define debugging_icon debug_msg_enabled[31]
 #else
 #ifdef DEBUG_ICON
 #define dprintf_icon fprintf
@@ -986,8 +966,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_int if(!debug_msg_enabled[33]) ; else fprintf
-#define debugging_int debug_msg_enabled[33]
+#define dprintf_int if(!debug_msg_enabled[32]) ; else fprintf
+#define debugging_int debug_msg_enabled[32]
 #else
 #ifdef DEBUG_INT
 #define dprintf_int fprintf
@@ -999,8 +979,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_key if(!debug_msg_enabled[34]) ; else fprintf
-#define debugging_key debug_msg_enabled[34]
+#define dprintf_key if(!debug_msg_enabled[33]) ; else fprintf
+#define debugging_key debug_msg_enabled[33]
 #else
 #ifdef DEBUG_KEY
 #define dprintf_key fprintf
@@ -1012,8 +992,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_keyboard if(!debug_msg_enabled[35]) ; else fprintf
-#define debugging_keyboard debug_msg_enabled[35]
+#define dprintf_keyboard if(!debug_msg_enabled[34]) ; else fprintf
+#define debugging_keyboard debug_msg_enabled[34]
 #else
 #ifdef DEBUG_KEYBOARD
 #define dprintf_keyboard fprintf
@@ -1025,8 +1005,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_ldt if(!debug_msg_enabled[36]) ; else fprintf
-#define debugging_ldt debug_msg_enabled[36]
+#define dprintf_ldt if(!debug_msg_enabled[35]) ; else fprintf
+#define debugging_ldt debug_msg_enabled[35]
 #else
 #ifdef DEBUG_LDT
 #define dprintf_ldt fprintf
@@ -1038,8 +1018,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_listbox if(!debug_msg_enabled[37]) ; else fprintf
-#define debugging_listbox debug_msg_enabled[37]
+#define dprintf_listbox if(!debug_msg_enabled[36]) ; else fprintf
+#define debugging_listbox debug_msg_enabled[36]
 #else
 #ifdef DEBUG_LISTBOX
 #define dprintf_listbox fprintf
@@ -1051,8 +1031,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_local if(!debug_msg_enabled[38]) ; else fprintf
-#define debugging_local debug_msg_enabled[38]
+#define dprintf_local if(!debug_msg_enabled[37]) ; else fprintf
+#define debugging_local debug_msg_enabled[37]
 #else
 #ifdef DEBUG_LOCAL
 #define dprintf_local fprintf
@@ -1064,8 +1044,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_mci if(!debug_msg_enabled[39]) ; else fprintf
-#define debugging_mci debug_msg_enabled[39]
+#define dprintf_mci if(!debug_msg_enabled[38]) ; else fprintf
+#define debugging_mci debug_msg_enabled[38]
 #else
 #ifdef DEBUG_MCI
 #define dprintf_mci fprintf
@@ -1077,8 +1057,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_mcianim if(!debug_msg_enabled[40]) ; else fprintf
-#define debugging_mcianim debug_msg_enabled[40]
+#define dprintf_mcianim if(!debug_msg_enabled[39]) ; else fprintf
+#define debugging_mcianim debug_msg_enabled[39]
 #else
 #ifdef DEBUG_MCIANIM
 #define dprintf_mcianim fprintf
@@ -1090,8 +1070,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_mciwave if(!debug_msg_enabled[41]) ; else fprintf
-#define debugging_mciwave debug_msg_enabled[41]
+#define dprintf_mciwave if(!debug_msg_enabled[40]) ; else fprintf
+#define debugging_mciwave debug_msg_enabled[40]
 #else
 #ifdef DEBUG_MCIWAVE
 #define dprintf_mciwave fprintf
@@ -1103,8 +1083,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_mdi if(!debug_msg_enabled[42]) ; else fprintf
-#define debugging_mdi debug_msg_enabled[42]
+#define dprintf_mdi if(!debug_msg_enabled[41]) ; else fprintf
+#define debugging_mdi debug_msg_enabled[41]
 #else
 #ifdef DEBUG_MDI
 #define dprintf_mdi fprintf
@@ -1116,8 +1096,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_menu if(!debug_msg_enabled[43]) ; else fprintf
-#define debugging_menu debug_msg_enabled[43]
+#define dprintf_menu if(!debug_msg_enabled[42]) ; else fprintf
+#define debugging_menu debug_msg_enabled[42]
 #else
 #ifdef DEBUG_MENU
 #define dprintf_menu fprintf
@@ -1129,8 +1109,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_message if(!debug_msg_enabled[44]) ; else fprintf
-#define debugging_message debug_msg_enabled[44]
+#define dprintf_message if(!debug_msg_enabled[43]) ; else fprintf
+#define debugging_message debug_msg_enabled[43]
 #else
 #ifdef DEBUG_MESSAGE
 #define dprintf_message fprintf
@@ -1142,8 +1122,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_metafile if(!debug_msg_enabled[45]) ; else fprintf
-#define debugging_metafile debug_msg_enabled[45]
+#define dprintf_metafile if(!debug_msg_enabled[44]) ; else fprintf
+#define debugging_metafile debug_msg_enabled[44]
 #else
 #ifdef DEBUG_METAFILE
 #define dprintf_metafile fprintf
@@ -1155,8 +1135,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_midi if(!debug_msg_enabled[46]) ; else fprintf
-#define debugging_midi debug_msg_enabled[46]
+#define dprintf_midi if(!debug_msg_enabled[45]) ; else fprintf
+#define debugging_midi debug_msg_enabled[45]
 #else
 #ifdef DEBUG_MIDI
 #define dprintf_midi fprintf
@@ -1168,8 +1148,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_mmio if(!debug_msg_enabled[47]) ; else fprintf
-#define debugging_mmio debug_msg_enabled[47]
+#define dprintf_mmio if(!debug_msg_enabled[46]) ; else fprintf
+#define debugging_mmio debug_msg_enabled[46]
 #else
 #ifdef DEBUG_MMIO
 #define dprintf_mmio fprintf
@@ -1181,8 +1161,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_mmsys if(!debug_msg_enabled[48]) ; else fprintf
-#define debugging_mmsys debug_msg_enabled[48]
+#define dprintf_mmsys if(!debug_msg_enabled[47]) ; else fprintf
+#define debugging_mmsys debug_msg_enabled[47]
 #else
 #ifdef DEBUG_MMSYS
 #define dprintf_mmsys fprintf
@@ -1194,8 +1174,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_mmtime if(!debug_msg_enabled[49]) ; else fprintf
-#define debugging_mmtime debug_msg_enabled[49]
+#define dprintf_mmtime if(!debug_msg_enabled[48]) ; else fprintf
+#define debugging_mmtime debug_msg_enabled[48]
 #else
 #ifdef DEBUG_MMTIME
 #define dprintf_mmtime fprintf
@@ -1207,8 +1187,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_module if(!debug_msg_enabled[50]) ; else fprintf
-#define debugging_module debug_msg_enabled[50]
+#define dprintf_module if(!debug_msg_enabled[49]) ; else fprintf
+#define debugging_module debug_msg_enabled[49]
 #else
 #ifdef DEBUG_MODULE
 #define dprintf_module fprintf
@@ -1220,8 +1200,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_msg if(!debug_msg_enabled[51]) ; else fprintf
-#define debugging_msg debug_msg_enabled[51]
+#define dprintf_msg if(!debug_msg_enabled[50]) ; else fprintf
+#define debugging_msg debug_msg_enabled[50]
 #else
 #ifdef DEBUG_MSG
 #define dprintf_msg fprintf
@@ -1233,8 +1213,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_nonclient if(!debug_msg_enabled[52]) ; else fprintf
-#define debugging_nonclient debug_msg_enabled[52]
+#define dprintf_nonclient if(!debug_msg_enabled[51]) ; else fprintf
+#define debugging_nonclient debug_msg_enabled[51]
 #else
 #ifdef DEBUG_NONCLIENT
 #define dprintf_nonclient fprintf
@@ -1246,8 +1226,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_ole if(!debug_msg_enabled[53]) ; else fprintf
-#define debugging_ole debug_msg_enabled[53]
+#define dprintf_ole if(!debug_msg_enabled[52]) ; else fprintf
+#define debugging_ole debug_msg_enabled[52]
 #else
 #ifdef DEBUG_OLE
 #define dprintf_ole fprintf
@@ -1259,8 +1239,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_palette if(!debug_msg_enabled[54]) ; else fprintf
-#define debugging_palette debug_msg_enabled[54]
+#define dprintf_palette if(!debug_msg_enabled[53]) ; else fprintf
+#define debugging_palette debug_msg_enabled[53]
 #else
 #ifdef DEBUG_PALETTE
 #define dprintf_palette fprintf
@@ -1272,8 +1252,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_profile if(!debug_msg_enabled[55]) ; else fprintf
-#define debugging_profile debug_msg_enabled[55]
+#define dprintf_profile if(!debug_msg_enabled[54]) ; else fprintf
+#define debugging_profile debug_msg_enabled[54]
 #else
 #ifdef DEBUG_PROFILE
 #define dprintf_profile fprintf
@@ -1285,8 +1265,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_prop if(!debug_msg_enabled[56]) ; else fprintf
-#define debugging_prop debug_msg_enabled[56]
+#define dprintf_prop if(!debug_msg_enabled[55]) ; else fprintf
+#define debugging_prop debug_msg_enabled[55]
 #else
 #ifdef DEBUG_PROP
 #define dprintf_prop fprintf
@@ -1298,8 +1278,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_reg if(!debug_msg_enabled[57]) ; else fprintf
-#define debugging_reg debug_msg_enabled[57]
+#define dprintf_reg if(!debug_msg_enabled[56]) ; else fprintf
+#define debugging_reg debug_msg_enabled[56]
 #else
 #ifdef DEBUG_REG
 #define dprintf_reg fprintf
@@ -1311,8 +1291,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_region if(!debug_msg_enabled[58]) ; else fprintf
-#define debugging_region debug_msg_enabled[58]
+#define dprintf_region if(!debug_msg_enabled[57]) ; else fprintf
+#define debugging_region debug_msg_enabled[57]
 #else
 #ifdef DEBUG_REGION
 #define dprintf_region fprintf
@@ -1324,8 +1304,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_relay if(!debug_msg_enabled[59]) ; else fprintf
-#define debugging_relay debug_msg_enabled[59]
+#define dprintf_relay if(!debug_msg_enabled[58]) ; else fprintf
+#define debugging_relay debug_msg_enabled[58]
 #else
 #ifdef DEBUG_RELAY
 #define dprintf_relay fprintf
@@ -1337,8 +1317,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_resource if(!debug_msg_enabled[60]) ; else fprintf
-#define debugging_resource debug_msg_enabled[60]
+#define dprintf_resource if(!debug_msg_enabled[59]) ; else fprintf
+#define debugging_resource debug_msg_enabled[59]
 #else
 #ifdef DEBUG_RESOURCE
 #define dprintf_resource fprintf
@@ -1350,8 +1330,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_scroll if(!debug_msg_enabled[61]) ; else fprintf
-#define debugging_scroll debug_msg_enabled[61]
+#define dprintf_scroll if(!debug_msg_enabled[60]) ; else fprintf
+#define debugging_scroll debug_msg_enabled[60]
 #else
 #ifdef DEBUG_SCROLL
 #define dprintf_scroll fprintf
@@ -1363,8 +1343,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_selector if(!debug_msg_enabled[62]) ; else fprintf
-#define debugging_selector debug_msg_enabled[62]
+#define dprintf_selector if(!debug_msg_enabled[61]) ; else fprintf
+#define debugging_selector debug_msg_enabled[61]
 #else
 #ifdef DEBUG_SELECTOR
 #define dprintf_selector fprintf
@@ -1376,8 +1356,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_sem if(!debug_msg_enabled[63]) ; else fprintf
-#define debugging_sem debug_msg_enabled[63]
+#define dprintf_sem if(!debug_msg_enabled[62]) ; else fprintf
+#define debugging_sem debug_msg_enabled[62]
 #else
 #ifdef DEBUG_SEM
 #define dprintf_sem fprintf
@@ -1389,8 +1369,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_shm if(!debug_msg_enabled[64]) ; else fprintf
-#define debugging_shm debug_msg_enabled[64]
+#define dprintf_shm if(!debug_msg_enabled[63]) ; else fprintf
+#define debugging_shm debug_msg_enabled[63]
 #else
 #ifdef DEBUG_SHM
 #define dprintf_shm fprintf
@@ -1402,8 +1382,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_stress if(!debug_msg_enabled[65]) ; else fprintf
-#define debugging_stress debug_msg_enabled[65]
+#define dprintf_stress if(!debug_msg_enabled[64]) ; else fprintf
+#define debugging_stress debug_msg_enabled[64]
 #else
 #ifdef DEBUG_STRESS
 #define dprintf_stress fprintf
@@ -1415,8 +1395,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_syscolor if(!debug_msg_enabled[66]) ; else fprintf
-#define debugging_syscolor debug_msg_enabled[66]
+#define dprintf_syscolor if(!debug_msg_enabled[65]) ; else fprintf
+#define debugging_syscolor debug_msg_enabled[65]
 #else
 #ifdef DEBUG_SYSCOLOR
 #define dprintf_syscolor fprintf
@@ -1428,8 +1408,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_task if(!debug_msg_enabled[67]) ; else fprintf
-#define debugging_task debug_msg_enabled[67]
+#define dprintf_task if(!debug_msg_enabled[66]) ; else fprintf
+#define debugging_task debug_msg_enabled[66]
 #else
 #ifdef DEBUG_TASK
 #define dprintf_task fprintf
@@ -1441,8 +1421,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_text if(!debug_msg_enabled[68]) ; else fprintf
-#define debugging_text debug_msg_enabled[68]
+#define dprintf_text if(!debug_msg_enabled[67]) ; else fprintf
+#define debugging_text debug_msg_enabled[67]
 #else
 #ifdef DEBUG_TEXT
 #define dprintf_text fprintf
@@ -1454,8 +1434,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_timer if(!debug_msg_enabled[69]) ; else fprintf
-#define debugging_timer debug_msg_enabled[69]
+#define dprintf_timer if(!debug_msg_enabled[68]) ; else fprintf
+#define debugging_timer debug_msg_enabled[68]
 #else
 #ifdef DEBUG_TIMER
 #define dprintf_timer fprintf
@@ -1467,8 +1447,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_toolhelp if(!debug_msg_enabled[70]) ; else fprintf
-#define debugging_toolhelp debug_msg_enabled[70]
+#define dprintf_toolhelp if(!debug_msg_enabled[69]) ; else fprintf
+#define debugging_toolhelp debug_msg_enabled[69]
 #else
 #ifdef DEBUG_TOOLHELP
 #define dprintf_toolhelp fprintf
@@ -1480,8 +1460,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_vxd if(!debug_msg_enabled[71]) ; else fprintf
-#define debugging_vxd debug_msg_enabled[71]
+#define dprintf_vxd if(!debug_msg_enabled[70]) ; else fprintf
+#define debugging_vxd debug_msg_enabled[70]
 #else
 #ifdef DEBUG_VXD
 #define dprintf_vxd fprintf
@@ -1493,8 +1473,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_win if(!debug_msg_enabled[72]) ; else fprintf
-#define debugging_win debug_msg_enabled[72]
+#define dprintf_win if(!debug_msg_enabled[71]) ; else fprintf
+#define debugging_win debug_msg_enabled[71]
 #else
 #ifdef DEBUG_WIN
 #define dprintf_win fprintf
@@ -1506,8 +1486,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_win32 if(!debug_msg_enabled[73]) ; else fprintf
-#define debugging_win32 debug_msg_enabled[73]
+#define dprintf_win32 if(!debug_msg_enabled[72]) ; else fprintf
+#define debugging_win32 debug_msg_enabled[72]
 #else
 #ifdef DEBUG_WIN32
 #define dprintf_win32 fprintf
@@ -1519,8 +1499,8 @@
 #endif
 
 #ifdef DEBUG_RUNTIME
-#define dprintf_winsock if(!debug_msg_enabled[74]) ; else fprintf
-#define debugging_winsock debug_msg_enabled[74]
+#define dprintf_winsock if(!debug_msg_enabled[73]) ; else fprintf
+#define debugging_winsock debug_msg_enabled[73]
 #else
 #ifdef DEBUG_WINSOCK
 #define dprintf_winsock fprintf
@@ -1555,7 +1535,6 @@
     "dosfs",
     "driver",
     "edit",
-    "enum",
     "env",
     "event",
     "exec",
diff --git a/include/debugger.h b/include/debugger.h
index 6cb3e97..ebdefc4 100644
--- a/include/debugger.h
+++ b/include/debugger.h
@@ -4,12 +4,11 @@
  * Copyright 1995 Alexandre Julliard
  */
 
-#ifndef DEBUGGER_H
-#define DEBUGGER_H
+#ifndef __WINE_DEBUGGER_H
+#define __WINE_DEBUGGER_H
 
 #include "ldt.h"
 #include "registers.h"
-#include "wine.h"
 
 #define STEP_FLAG 0x100 /* single step flag */
 
@@ -50,7 +49,7 @@
     REG_EDI, REG_EBP, REG_EFL, REG_EIP, REG_ESP,
     REG_AX, REG_BX, REG_CX, REG_DX, REG_SI,
     REG_DI, REG_BP, REG_FL, REG_IP, REG_SP,
-    REG_CS, REG_DS, REG_ES, REG_SS
+    REG_CS, REG_DS, REG_ES, REG_SS, REG_FS, REG_GS
 };
 
 
@@ -104,6 +103,7 @@
 extern void DEBUG_SetRegister( enum debug_regs reg, int val );
 extern int DEBUG_GetRegister( enum debug_regs reg );
 extern void DEBUG_InfoRegisters(void);
+extern BOOL32 DEBUG_ValidateRegisters(void);
 
   /* debugger/stack.c */
 extern void DEBUG_InfoStack(void);
@@ -113,4 +113,4 @@
 extern void DEBUG_EnterDebugger(void);
 extern void wine_debug( int signal, SIGCONTEXT *regs );
 
-#endif  /* DEBUGGER_H */
+#endif  /* __WINE_DEBUGGER_H */
diff --git a/include/font.h b/include/font.h
index 8372ebd..f282a0d 100644
--- a/include/font.h
+++ b/include/font.h
@@ -9,9 +9,7 @@
 
 #include "gdi.h"
 
-#ifndef WINELIB
 #pragma pack(1)
-#endif
 
   /* GDI logical font object */
 typedef struct
@@ -20,6 +18,8 @@
     LOGFONT16   logfont WINE_PACKED;
 } FONTOBJ;
 
+#pragma pack(4)
+
 /* may be switched... */
 #define GGO_BITMAP	0x4F4D
 #define GGO_NATIVE	0x4F50
@@ -39,9 +39,6 @@
 	DWORD	eM22;
 } MAT2,*LPMAT2;
 
-#ifndef WINELIB
-#pragma pack(4)
-#endif
 
 extern BOOL FONT_Init( void );
 extern int FONT_GetObject( FONTOBJ * font, int count, LPSTR buffer );
diff --git a/include/gdi.h b/include/gdi.h
index 7bb9aa1..8a1ef42 100644
--- a/include/gdi.h
+++ b/include/gdi.h
@@ -28,10 +28,6 @@
 #define METAFILE_DC_MAGIC     0x4f51
 #define MAGIC_DONTCARE	      0xffff
 
-#ifndef WINELIB
-#pragma pack(1)
-#endif
-
 typedef struct tagGDIOBJHDR
 {
     HANDLE16    hNext;
@@ -75,11 +71,6 @@
     WORD   colorRes;      /* 108: color resolution */    
 } DeviceCaps;
 
-#ifndef WINELIB
-#pragma pack(4)
-#endif
-
-
   /* Device independent DC information */
 typedef struct
 {
@@ -265,15 +256,9 @@
 #define GDI_HEAP_FREE(handle) \
             LOCAL_Free( GDI_HeapSel, (handle) )
 #define GDI_HEAP_LIN_ADDR(handle)  \
-            ((handle) ? PTR_SEG_OFF_TO_LIN(GDI_HeapSel, (handle)) : NULL)
-
-#ifdef WINELIB
-#define GDI_HEAP_SEG_ADDR(handle) ((SEGPTR)GDI_HEAP_LIN_ADDR(handle))
-#else
+         ((handle) ? PTR_SEG_OFF_TO_LIN(GDI_HeapSel, (handle)) : NULL)
 #define GDI_HEAP_SEG_ADDR(handle)  \
-            ((handle) ? MAKELONG((handle), GDI_HeapSel) : 0)
-
-#endif  /* WINELIB */
+         ((handle) ? PTR_SEG_OFF_TO_SEGPTR(GDI_HeapSel, (handle)) : (SEGPTR)0)
 
 extern BOOL32 GDI_Init(void);
 extern HANDLE16 GDI_AllocObject( WORD, WORD );
diff --git a/include/hook.h b/include/hook.h
index eb04e86..3a4284a 100644
--- a/include/hook.h
+++ b/include/hook.h
@@ -11,9 +11,7 @@
 #include "ldt.h"
 #include "callback.h"
 
-#ifndef WINELIB
 #pragma pack(1)
-#endif
 
   /* Hook data (pointed to by a HHOOK) */
 typedef struct
@@ -26,9 +24,7 @@
     WORD       inHookProc;         /* 0c TRUE if in this->proc */
 } HOOKDATA;
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
 #define HOOK_MAGIC  ((int)'H' | (int)'K' << 8)  /* 'HK' */
 
diff --git a/include/kernel.h b/include/kernel.h
deleted file mode 100644
index f8bf0f5..0000000
--- a/include/kernel.h
+++ /dev/null
@@ -1,4 +0,0 @@
-extern int KERNEL_LockSegment(int segment);
-extern int KERNEL_UnlockSegment(int segment);
-extern KERNEL_InitTask(void);
-extern int KERNEL_WaitEvent(int task);
diff --git a/include/lzexpand.h b/include/lzexpand.h
index 380ee98..b368272 100644
--- a/include/lzexpand.h
+++ b/include/lzexpand.h
@@ -3,26 +3,6 @@
  * Copyright 1996 Marcus Meissner
  */
 
-INT16      LZStart(void);
-HFILE      LZInit(HFILE);
-void       LZDone(void);
-LONG       LZSeek(HFILE,LONG,INT32);
-LONG       LZCopy(HFILE,HFILE);
-void       LZClose(HFILE);
-LONG       CopyLZFile(HFILE,HFILE);
-
-INT16      GetExpandedName16(LPCSTR,LPSTR);
-INT32      GetExpandedName32A(LPCSTR,LPSTR);
-INT32      GetExpandedName32W(LPCWSTR,LPWSTR);
-#define    GetExpandedName WINELIB_NAME_AW(GetExpandedName)
-HFILE      LZOpenFile16(LPCSTR,LPOFSTRUCT,UINT16);
-HFILE      LZOpenFile32A(LPCSTR,LPOFSTRUCT,UINT32);
-HFILE      LZOpenFile32W(LPCWSTR,LPOFSTRUCT,UINT32);
-#define    LZOpenFile WINELIB_NAME_AW(LZOpenFile)
-INT16      LZRead16(HFILE,SEGPTR,UINT16); 
-INT32      LZRead32(HFILE,LPVOID,UINT32); 
-#define    LZRead WINELIB_NAME(LZRead)
-
 #define LZERROR_BADINHANDLE	0xFFFF	/* -1 */
 #define LZERROR_BADOUTHANDLE	0xFFFE	/* -2 */
 #define LZERROR_READ		0xFFFD	/* -3 */
diff --git a/include/message.h b/include/message.h
index 365ee59..ba77b6d 100644
--- a/include/message.h
+++ b/include/message.h
@@ -17,13 +17,13 @@
 				    short code, WORD flags, BOOL sendIdle );
 
 /* timer.c */
-extern void TIMER_RemoveWindowTimers( HWND hwnd );
-extern void TIMER_RemoveQueueTimers( HQUEUE hqueue );
-extern void TIMER_SwitchQueue( HQUEUE hOldQueue, HQUEUE hNewQueue );
+extern void TIMER_RemoveWindowTimers( HWND32 hwnd );
+extern void TIMER_RemoveQueueTimers( HQUEUE16 hqueue );
+extern void TIMER_SwitchQueue( HQUEUE16 hOldQueue, HQUEUE16 hNewQueue );
 extern LONG TIMER_GetNextExpiration(void);
 extern void TIMER_ExpireTimers(void);
-extern BOOL TIMER_GetTimerMsg( MSG16 *msg, HWND hwnd,
-                               HQUEUE hQueue, BOOL remove );
+extern BOOL32 TIMER_GetTimerMsg( MSG16 *msg, HWND32 hwnd,
+                                 HQUEUE16 hQueue, BOOL32 remove );
 
 /* event.c */
 extern BOOL EVENT_WaitXEvent( BOOL sleep );
diff --git a/include/miscemu.h b/include/miscemu.h
index dd05077..90b9184 100644
--- a/include/miscemu.h
+++ b/include/miscemu.h
@@ -7,28 +7,29 @@
 #ifndef __WINE_MISCEMU_H
 #define __WINE_MISCEMU_H
 
+#include <stdio.h>
 #include "wintypes.h"
 #include "registers.h"
 
   /* miscemu/dosmem.c */
-extern BOOL DOSMEM_Init(void);
+extern BOOL32 DOSMEM_Init(void);
 extern void DOSMEM_Tick(void);
 extern void DOSMEM_FillBiosSegment(void);
-extern HANDLE DOSMEM_BiosSeg;
+extern HANDLE16 DOSMEM_BiosSeg;
 
   /* miscemu/instr.c */
-extern BOOL INSTR_EmulateInstruction( SIGCONTEXT *context );
+extern BOOL32 INSTR_EmulateInstruction( SIGCONTEXT *context );
 
   /* miscemu/interrupts.c */
-extern BOOL INT_Init(void);
-extern SEGPTR INT_GetHandler( BYTE intnum );
-extern void INT_SetHandler( BYTE intnum, SEGPTR handler );
+extern BOOL32 INT_Init(void);
+extern FARPROC16 INT_GetHandler( BYTE intnum );
+extern void INT_SetHandler( BYTE intnum, FARPROC16 handler );
 
   /* miscemu/int1a.c */
 extern DWORD INT1A_GetTicksSinceMidnight(void);
 
   /* miscemu/int21.c */
-extern BOOL INT21_Init(void);
+extern BOOL32 INT21_Init(void);
 
   /* miscemu/ioports.c */
 extern DWORD inport( int port, int count );
diff --git a/include/module.h b/include/module.h
index 4eed450..322328a 100644
--- a/include/module.h
+++ b/include/module.h
@@ -10,10 +10,6 @@
 #include "wintypes.h"
 #include "pe_image.h"
 
-#ifndef WINELIB
-#pragma pack(1)
-#endif
-
   /* In-memory module structure. See 'Windows Internals' p. 219 */
 typedef struct
 {
@@ -84,16 +80,19 @@
     FARPROC16 SetOwner;      /* Set Owner procedure, exported by wine */
 } SELFLOADHEADER;
 
-  /* Parameters for LoadModule() */
+#pragma pack(1)
 
+  /* Parameters for LoadModule() */
 typedef struct
 {
-    HANDLE16 hEnvironment;  /* Environment segment */
-    SEGPTR   cmdLine;       /* Command-line */
-    SEGPTR   showCmd;       /* Code for ShowWindow() */
-    SEGPTR   reserved;
+    HANDLE16 hEnvironment;         /* Environment segment */
+    SEGPTR   cmdLine WINE_PACKED;  /* Command-line */
+    SEGPTR   showCmd WINE_PACKED;  /* Code for ShowWindow() */
+    SEGPTR   reserved WINE_PACKED;
 } LOADPARAMS;
 
+#pragma pack(4)
+
 /* Resource types */
 typedef struct resource_typeinfo_s NE_TYPEINFO;
 typedef struct resource_nameinfo_s NE_NAMEINFO;
@@ -111,10 +110,6 @@
     ((struct pe_data *)(((pModule)->flags & NE_FFLAGS_WIN32) ? \
                     ((NE_WIN32_EXTRAINFO *)((pModule) + 1))->pe_module : 0))
 
-#ifndef WINELIB
-#pragma pack(4)
-#endif
-
 /* module.c */
 extern NE_MODULE *MODULE_GetPtr( HMODULE16 hModule );
 extern void MODULE_DumpModule( HMODULE16 hmodule );
@@ -124,7 +119,7 @@
 extern void MODULE_RegisterModule( NE_MODULE *pModule );
 extern HINSTANCE16 MODULE_GetInstance( HMODULE16 hModule );
 extern WORD MODULE_GetOrdinal( HMODULE16 hModule, const char *name );
-extern SEGPTR MODULE_GetEntryPoint( HMODULE16 hModule, WORD ordinal );
+extern FARPROC16 MODULE_GetEntryPoint( HMODULE16 hModule, WORD ordinal );
 extern BOOL16 MODULE_SetEntryPoint( HMODULE16 hModule, WORD ordinal,
                                     WORD offset );
 extern FARPROC16 MODULE_GetWndProcEntry16( const char *name );
@@ -132,9 +127,9 @@
 /* builtin.c */
 extern BOOL16 BUILTIN_Init(void);
 extern HMODULE16 BUILTIN_LoadModule( LPCSTR name, BOOL16 force );
-extern NE_MODULE *BUILTIN_GetEntryPoint( WORD cs, WORD ip,
-                                         WORD *pOrd, char **ppName );
-extern DWORD BUILTIN_GetProcAddress32( NE_MODULE *pModule, char *function );
+extern LPCSTR BUILTIN_GetEntryPoint16( WORD cs, WORD ip, WORD *pOrd );
+extern LPCSTR BUILTIN_GetEntryPoint32( void *relay );
+extern FARPROC32 BUILTIN_GetProcAddress32(NE_MODULE *pModule, LPCSTR function);
 extern BOOL16 BUILTIN_ParseDLLOptions( const char *str );
 extern void BUILTIN_PrintDLLs(void);
 
diff --git a/include/palette.h b/include/palette.h
index d5145f2..6345d7b 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -9,9 +9,7 @@
 
 #include "gdi.h"
 
-#ifndef WINELIB
 #pragma pack(1)
-#endif
 
   /* GDI logical palette object */
 typedef struct
@@ -20,10 +18,8 @@
     LOGPALETTE  logpalette WINE_PACKED;
 } PALETTEOBJ;
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
 extern int PALETTE_GetObject( PALETTEOBJ * palette, int count, LPSTR buffer );
      
-#endif /* __WINE_FONT_H */
+#endif /* __WINE_PALETTE_H */
diff --git a/include/pe_image.h b/include/pe_image.h
index a60c893..c174fa4 100644
--- a/include/pe_image.h
+++ b/include/pe_image.h
@@ -20,6 +20,7 @@
 typedef struct pe_data PE_MODULE;
 
 extern int PE_unloadImage(HMODULE32 hModule);
+extern FARPROC32 PE_FindExportedFunction(struct pe_data *pe, LPCSTR funcName);
 extern void my_wcstombs(char * result, u_short * source, int len);
 
 #endif /* __WINE_PE_IMAGE_H */
diff --git a/include/pen.h b/include/pen.h
index 55858ec..d9c8ff9 100644
--- a/include/pen.h
+++ b/include/pen.h
@@ -9,9 +9,7 @@
 
 #include "gdi.h"
 
-#ifndef WINELIB
 #pragma pack(1)
-#endif
 
   /* GDI logical pen object */
 typedef struct
@@ -20,9 +18,7 @@
     LOGPEN16    logpen WINE_PACKED;
 } PENOBJ;
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
 extern int PEN_GetObject( PENOBJ * pen, int count, LPSTR buffer );
 extern HPEN16 PEN_SelectObject( DC * dc, HPEN16 hpen, PENOBJ * pen );
diff --git a/include/queue.h b/include/queue.h
index f0e254f..8743eb7 100644
--- a/include/queue.h
+++ b/include/queue.h
@@ -9,10 +9,6 @@
 
 #include "windows.h"
 
-#ifndef WINELIB
-#pragma pack(1)
-#endif
-
   /* Message as stored in the queue (contains the extraInfo field) */
 typedef struct tagQMSG
 {
@@ -20,11 +16,12 @@
     MSG16   msg;
 } QMSG;
 
+#pragma pack(1)
 
 typedef struct tagMESSAGEQUEUE
 {
-  HQUEUE    next;                   /* 00 Next queue */
-  HTASK     hTask;                  /* 02 hTask owning the queue */
+  HQUEUE16  next;                   /* 00 Next queue */
+  HTASK16   hTask;                  /* 02 hTask owning the queue */
   WORD      msgSize;                /* 04 Size of messages in the queue */
   WORD      msgCount;               /* 06 Number of waiting messages */
   WORD      nextMessage;            /* 08 Next message to be retrieved */
@@ -32,22 +29,22 @@
   WORD      queueSize;              /* 0c Size of the queue */
   DWORD     GetMessageTimeVal WINE_PACKED;  /* 0e Value for GetMessageTime */
   DWORD     GetMessagePosVal WINE_PACKED;   /* 12 Value for GetMessagePos */
-  HQUEUE    self;                   /* 16 Handle to self (was: reserved) */
+  HQUEUE16  self;                   /* 16 Handle to self (was: reserved) */
   DWORD     GetMessageExtraInfoVal; /* 18 Value for GetMessageExtraInfo */
   WORD      reserved2;              /* 1c Unknown */
   LPARAM    lParam WINE_PACKED;     /* 1e Next 4 values set by SendMessage */
-  WPARAM    wParam;                 /* 22 */
-  UINT      msg;                    /* 24 */
-  HWND      hWnd;                   /* 26 */
+  WPARAM16  wParam;                 /* 22 */
+  UINT16    msg;                    /* 24 */
+  HWND16    hWnd;                   /* 26 */
   DWORD     SendMessageReturn;      /* 28 Return value for SendMessage */
   WORD      wPostQMsg;              /* 2c PostQuitMessage flag */
   WORD      wExitCode;              /* 2e PostQuitMessage exit code */
   WORD      flags;                  /* 30 Queue flags */
   WORD      reserved3[2];           /* 32 Unknown */
   WORD      wWinVersion;            /* 36 Expected Windows version */
-  HQUEUE    InSendMessageHandle;    /* 38 Queue of task that sent a message */
-  HTASK     hSendingTask;           /* 3a Handle of task that sent a message */
-  HTASK     hPrevSendingTask;       /* 3c Handle of previous sender */
+  HQUEUE16  InSendMessageHandle;    /* 38 Queue of task that sent a message */
+  HTASK16   hSendingTask;           /* 3a Handle of task that sent a message */
+  HTASK16   hPrevSendingTask;       /* 3c Handle of previous sender */
   WORD      wPaintCount;            /* 3e Number of WM_PAINT needed */
   WORD      wTimerCount;            /* 40 Number of timers for this task */
   WORD      changeBits;             /* 42 Changed wake-up bits */
@@ -60,9 +57,7 @@
   QMSG      messages[1];            /* 6e Queue messages */
 } MESSAGEQUEUE;
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
 /* Extra (undocumented) queue wake bits; not sure about the values */
 #define QS_SMRESULT      0x0100  /* Queue has a SendMessage() result */
@@ -71,22 +66,22 @@
 /* Queue flags */
 #define QUEUE_FLAG_REPLIED  0x0001  /* Replied to a SendMessage() */
 
-extern void QUEUE_DumpQueue( HQUEUE hQueue );
+extern void QUEUE_DumpQueue( HQUEUE16 hQueue );
 extern void QUEUE_WalkQueues(void);
 extern MESSAGEQUEUE *QUEUE_GetSysQueue(void);
 extern void QUEUE_SetWakeBit( MESSAGEQUEUE *queue, WORD bit );
 extern void QUEUE_ClearWakeBit( MESSAGEQUEUE *queue, WORD bit );
 extern void QUEUE_ReceiveMessage( MESSAGEQUEUE *queue );
 extern void QUEUE_WaitBits( WORD bits );
-extern void QUEUE_IncPaintCount( HQUEUE hQueue );
-extern void QUEUE_DecPaintCount( HQUEUE hQueue );
-extern void QUEUE_IncTimerCount( HQUEUE hQueue );
-extern void QUEUE_DecTimerCount( HQUEUE hQueue );
-extern BOOL QUEUE_CreateSysMsgQueue( int size );
-extern BOOL QUEUE_DeleteMsgQueue( HQUEUE hQueue );
-extern HTASK QUEUE_GetQueueTask( HQUEUE hQueue );
-extern BOOL QUEUE_AddMsg( HQUEUE hQueue, MSG16 * msg, DWORD extraInfo );
-extern int QUEUE_FindMsg( MESSAGEQUEUE * msgQueue, HWND hwnd,
+extern void QUEUE_IncPaintCount( HQUEUE16 hQueue );
+extern void QUEUE_DecPaintCount( HQUEUE16 hQueue );
+extern void QUEUE_IncTimerCount( HQUEUE16 hQueue );
+extern void QUEUE_DecTimerCount( HQUEUE16 hQueue );
+extern BOOL32 QUEUE_CreateSysMsgQueue( int size );
+extern BOOL32 QUEUE_DeleteMsgQueue( HQUEUE16 hQueue );
+extern HTASK16 QUEUE_GetQueueTask( HQUEUE16 hQueue );
+extern BOOL32 QUEUE_AddMsg( HQUEUE16 hQueue, MSG16 * msg, DWORD extraInfo );
+extern int QUEUE_FindMsg( MESSAGEQUEUE * msgQueue, HWND32 hwnd,
                           int first, int last );
 extern void QUEUE_RemoveMsg( MESSAGEQUEUE * msgQueue, int pos );
 extern void hardware_event( WORD message, WORD wParam, LONG lParam,
diff --git a/include/registers.h b/include/registers.h
index 1f919a5..bfff59a 100644
--- a/include/registers.h
+++ b/include/registers.h
@@ -7,8 +7,70 @@
 #ifndef __WINE_REGISTERS_H
 #define __WINE_REGISTERS_H
 
-#include <windows.h>
-#include "wine.h"
+#include "wintypes.h"
+
+#ifndef WINELIB
+
+#ifdef i386
+extern int runtime_cpu (void);
+#else
+static inline int runtime_cpu(void) { return 3; }
+#endif
+
+#ifdef linux
+typedef struct
+{
+    unsigned short sc_gs, __gsh;
+    unsigned short sc_fs, __fsh;
+    unsigned short sc_es, __esh;
+    unsigned short sc_ds, __dsh;
+    unsigned long sc_edi;
+    unsigned long sc_esi;
+    unsigned long sc_ebp;
+    unsigned long sc_esp;
+    unsigned long sc_ebx;
+    unsigned long sc_edx;
+    unsigned long sc_ecx;
+    unsigned long sc_eax;
+    unsigned long sc_trapno;
+    unsigned long sc_err;
+    unsigned long sc_eip;
+    unsigned short sc_cs, __csh;
+    unsigned long sc_eflags;
+    unsigned long esp_at_signal;
+    unsigned short sc_ss, __ssh;
+    unsigned long i387;
+    unsigned long oldmask;
+    unsigned long cr2;
+} SIGCONTEXT;
+#define WINE_DATA_SELECTOR 0x2b
+#define WINE_CODE_SELECTOR 0x23
+#endif  /* linux */
+
+#ifdef __NetBSD__
+#include <signal.h>
+typedef struct sigcontext SIGCONTEXT;
+#define WINE_DATA_SELECTOR 0x1f
+#define WINE_CODE_SELECTOR 0x17
+#endif  /* NetBSD */
+
+#if defined(__svr4__) || defined(_SCO_DS)
+#include <signal.h>
+#ifdef _SCO_DS
+#include <sys/regset.h>
+#endif
+#include <sys/ucontext.h>
+typedef struct ucontext SIGCONTEXT;
+#define WINE_DATA_SELECTOR 0x1f
+#define WINE_CODE_SELECTOR 0x17
+#endif  /* svr4 || SCO_DS */
+
+#ifdef __FreeBSD__
+#include <signal.h>
+typedef struct sigcontext SIGCONTEXT;
+#define WINE_DATA_SELECTOR 0x27
+#define WINE_CODE_SELECTOR 0x1f
+#endif  /* FreeBSD */
 
 #if !defined(__svr4__) && !defined(_SCO_DS)
 
@@ -125,4 +187,12 @@
 #define SET_CFLAG(context)   (EFL_reg(context) |= 0x0001)
 #define RESET_CFLAG(context) (EFL_reg(context) &= 0xfffffffe)
 
+#else  /* ifndef WINELIB */
+
+typedef void SIGCONTEXT;
+#define WINE_DATA_SELECTOR 0x00
+#define WINE_CODE_SELECTOR 0x00
+
+#endif  /* ifndef WINELIB */
+
 #endif /* __WINE_REGISTERS_H */
diff --git a/include/stackframe.h b/include/stackframe.h
index e52eb14..77bb0e0 100644
--- a/include/stackframe.h
+++ b/include/stackframe.h
@@ -4,15 +4,13 @@
  * Copyright 1995 Alexandre Julliard
  */
 
-#ifndef WINE_STACKFRAME_H
-#define WINE_STACKFRAME_H
+#ifndef __WINE_STACKFRAME_H
+#define __WINE_STACKFRAME_H
 
 #include <windows.h>
 #include "ldt.h"
 
-#ifndef WINELIB
 #pragma pack(1)
-#endif
 
   /* 16-bit stack layout after CallFrom16() */
 typedef struct
@@ -45,9 +43,7 @@
     DWORD   args[1];        /* arguments to 16-bit function */
 } STACK32FRAME;
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
   /* Saved 16-bit stack for current process (Win16 only) */
 extern WORD IF1632_Saved16_ss;
@@ -80,4 +76,4 @@
 #define MAKE_SEGPTR(ptr)   ((SEGPTR)ptr)
 #endif
 
-#endif /* WINE_STACKFRAME_H */
+#endif /* __WINE_STACKFRAME_H */
diff --git a/include/stddebug.h b/include/stddebug.h
index eb1e0ec..fc531a9 100644
--- a/include/stddebug.h
+++ b/include/stddebug.h
@@ -96,7 +96,6 @@
 #undef DEBUG_DOSFS
 #undef DEBUG_DRIVER
 #undef DEBUG_EDIT
-#undef DEBUG_ENUM
 #undef DEBUG_ENV
 #undef DEBUG_EVENT
 #undef DEBUG_EXEC
@@ -174,7 +173,6 @@
 #define DEBUG_DOSFS
 #define DEBUG_DRIVER
 #define DEBUG_EDIT
-#define DEBUG_ENUM
 #define DEBUG_ENV
 #define DEBUG_EVENT
 #define DEBUG_EXEC
diff --git a/include/struct32.h b/include/struct32.h
index 0fe7769..0e43982 100644
--- a/include/struct32.h
+++ b/include/struct32.h
@@ -1,12 +1,8 @@
 /* Structure definitions for Win32 -- used only internally */
-#ifndef _STRUCT32_H
-#define _STRUCT32_H
+#ifndef __WINE__STRUCT32_H
+#define __WINE__STRUCT32_H
 #include "handle32.h"
 
-#ifndef WINELIB
-#pragma pack(1)
-#endif
-
 void STRUCT32_RECT32to16(const RECT32*,RECT16*);
 void STRUCT32_RECT16to32(const RECT16*,RECT32*);
 void STRUCT32_POINT32to16(const POINT32*,POINT16*);
@@ -24,23 +20,14 @@
                                            NCCALCSIZE_PARAMS32* to,
                                            int validRects );
 
-
-typedef struct {
-	DWORD style;
-	DWORD dwExtendedStyle;
-	WORD noOfItems WINE_PACKED;
-	short x WINE_PACKED;
-	short y WINE_PACKED;
-	WORD cx WINE_PACKED;
-	WORD cy WINE_PACKED;
-} DLGTEMPLATE32;
-
 void STRUCT32_MSG16to32(const MSG16 *msg16,MSG32 *msg32);
 void STRUCT32_MSG32to16(const MSG32 *msg32,MSG16 *msg16);
 
 void STRUCT32_CREATESTRUCT32Ato16(const CREATESTRUCT32A*,CREATESTRUCT16*);
 void STRUCT32_CREATESTRUCT16to32A(const CREATESTRUCT16*,CREATESTRUCT32A*);
 
+#pragma pack(1)
+
 typedef struct {
 	BYTE   bWidth;
 	BYTE   bHeight;
@@ -77,9 +64,6 @@
 } CURSORICONDIR32;
 
 
-
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
-#endif
+#endif  /* __WINE_STRUCT32_H */
diff --git a/include/task.h b/include/task.h
index f9a8b9c..307dd8e 100644
--- a/include/task.h
+++ b/include/task.h
@@ -9,31 +9,29 @@
 
 #include "wintypes.h"
 
-#ifndef WINELIB
 #pragma pack(1)
-#endif
 
   /* Process database (i.e. a normal DOS PSP) */
 
 typedef struct
 {
-    WORD   int20;                   /* 00 int 20h instruction */
-    WORD   nextParagraph;           /* 02 Segment of next paragraph */
-    BYTE   reserved1;
-    BYTE   dispatcher[5];           /* 05 Long call to DOS */
-    SEGPTR savedint22 WINE_PACKED;  /* 0a Saved int 22h handler */
-    SEGPTR savedint23 WINE_PACKED;  /* 0e Saved int 23h handler */
-    SEGPTR savedint24 WINE_PACKED;  /* 12 Saved int 24h handler */
-    WORD   parentPSP;               /* 16 Selector of parent PSP */
-    BYTE   fileHandles[20];         /* 18 Open file handles */
-    HANDLE environment;             /* 2c Selector of environment */
-    WORD   reserved2[2];
-    WORD   nbFiles;                 /* 32 Number of file handles */
-    SEGPTR fileHandlesPtr;          /* 34 Pointer to file handle table */
-    WORD   reserved3[18];
-    BYTE   fcb1[16];                /* 5c First FCB */
-    BYTE   fcb2[20];                /* 6c Second FCB */
-    BYTE   cmdLine[128];            /* 80 Command-line (first byte is len) */
+    WORD      int20;                   /* 00 int 20h instruction */
+    WORD      nextParagraph;           /* 02 Segment of next paragraph */
+    BYTE      reserved1;
+    BYTE      dispatcher[5];           /* 05 Long call to DOS */
+    FARPROC16 savedint22 WINE_PACKED;  /* 0a Saved int 22h handler */
+    FARPROC16 savedint23 WINE_PACKED;  /* 0e Saved int 23h handler */
+    FARPROC16 savedint24 WINE_PACKED;  /* 12 Saved int 24h handler */
+    WORD      parentPSP;               /* 16 Selector of parent PSP */
+    BYTE      fileHandles[20];         /* 18 Open file handles */
+    HANDLE16  environment;             /* 2c Selector of environment */
+    WORD      reserved2[2];
+    WORD      nbFiles;                 /* 32 Number of file handles */
+    SEGPTR    fileHandlesPtr;          /* 34 Pointer to file handle table */
+    WORD      reserved3[18];
+    BYTE      fcb1[16];                /* 5c First FCB */
+    BYTE      fcb2[20];                /* 6c Second FCB */
+    BYTE      cmdLine[128];            /* 80 Command-line (first byte is len)*/
 } PDB;
 
 
@@ -107,9 +105,7 @@
 #define TDBF_OS2APP     0x0008
 #define TDBF_WIN32S     0x0010
 
-#ifndef WINELIB
 #pragma pack(4)
-#endif
 
 extern BOOL TASK_Init(void);
 extern HTASK TASK_CreateTask( HMODULE hModule, HANDLE hInstance,
diff --git a/include/user.h b/include/user.h
index e4eead7..f22fa1a 100644
--- a/include/user.h
+++ b/include/user.h
@@ -19,13 +19,8 @@
 #define USER_HEAP_FREE(handle) \
             LOCAL_Free( USER_HeapSel, (handle) )
 #define USER_HEAP_LIN_ADDR(handle)  \
-            ((handle) ? PTR_SEG_OFF_TO_LIN(USER_HeapSel, (handle)) : NULL)
-
-#ifdef WINELIB
-#define USER_HEAP_SEG_ADDR(handle)  ((SEGPTR)(USER_HEAP_LIN_ADDR(handle)))
-#else
+         ((handle) ? PTR_SEG_OFF_TO_LIN(USER_HeapSel, (handle)) : NULL)
 #define USER_HEAP_SEG_ADDR(handle)  \
-            ((handle) ? MAKELONG((handle), USER_HeapSel) : 0)
-#endif  /* WINELIB */
+         ((handle) ? PTR_SEG_OFF_TO_SEGPTR(USER_HeapSel, (handle)) : (SEGPTR)0)
 
 #endif  /* USER_H */
diff --git a/include/ver.h b/include/ver.h
index 8672d86..d626967 100644
--- a/include/ver.h
+++ b/include/ver.h
@@ -136,59 +136,6 @@
 		DWORD off,DWORD reslen,LPVOID data
 );
 
-DWORD GetFileVersionInfoSize16(LPCSTR filename,LPDWORD handle);
-DWORD GetFileVersionInfoSize32A(LPCSTR filename,LPDWORD handle);
-DWORD GetFileVersionInfoSize32W(LPCWSTR filename,LPDWORD handle);
-#define GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
-
-DWORD GetFileVersionInfo16(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data);
-DWORD GetFileVersionInfo32A(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data);
-DWORD GetFileVersionInfo32W(LPCWSTR filename,DWORD handle,DWORD datasize,LPVOID data);
-#define GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
-
-DWORD
-VerFindFile16(
-	UINT16 flags,LPCSTR filename,LPCSTR windir,LPCSTR appdir,
-	LPSTR curdir,UINT16 *curdirlen,LPSTR destdir,UINT16 *destdirlen
-);
-DWORD
-VerFindFile32A(
-	UINT32 flags,LPCSTR filename,LPCSTR windir,LPCSTR appdir,
-	LPSTR curdir,UINT32 *curdirlen,LPSTR destdir,UINT32 *destdirlen
-);
-DWORD
-VerFindFile32W(
-	UINT32 flags,LPCWSTR filename,LPCWSTR windir,LPCWSTR appdir,
-	LPWSTR curdir,UINT32 *curdirlen,LPWSTR destdir,UINT32 *destdirlen
-);
-#define VerFindFile WINELIB_NAME_AW(VerFindFile)
-
-DWORD
-VerInstallFile16(
-	UINT16 flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir,
-	LPCSTR destdir,LPSTR tmpfile,UINT16 *tmpfilelen
-);
-DWORD
-VerInstallFile32A(
-	UINT32 flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir,
-	LPCSTR destdir,LPSTR tmpfile,UINT32 *tmpfilelen
-);
-DWORD
-VerInstallFile32W(
-	UINT32 flags,LPCWSTR srcfilename,LPCWSTR destfilename,LPCWSTR srcdir,
-	LPCWSTR destdir,LPWSTR tmpfile,UINT32 *tmpfilelen
-);
-#define VerInstallFile WINELIB_NAME_AW(VerInstallFile)
-
-DWORD VerLanguageName16(UINT16 lang,LPSTR langname,UINT16 langnamelen);
-DWORD VerLanguageName32A(UINT32 lang,LPSTR langname,UINT32 langnamelen);
-DWORD VerLanguageName32W(UINT32 lang,LPWSTR langname,UINT32 langnamelen);
-#define VerLanguageName WINELIB_NAME_AW(VerLanguageName)
-
-DWORD VerQueryValue16(SEGPTR block,LPCSTR subblock,SEGPTR *buffer,UINT16 *buflen);
-DWORD VerQueryValue32A(LPVOID block,LPCSTR subblock,LPVOID *buffer,UINT32 *buflen);
-DWORD VerQueryValue32W(LPVOID block,LPCWSTR subblock,LPVOID *buffer,UINT32 *buflen);
-#define VerQueryValue WINELIB_NAME_AW(VerQueryValue)
 
 /* 20 GETFILEVERSIONINFORAW */
 
diff --git a/include/win.h b/include/win.h
index 7a36cec..37938c1 100644
--- a/include/win.h
+++ b/include/win.h
@@ -45,14 +45,14 @@
     POINT16        ptIconPos;     /* Icon position */
     POINT16        ptMaxPos;      /* Maximized window position */
     LPSTR          text;          /* Window text */
+    void          *pVScroll;      /* Vertical scroll-bar info */
+    void          *pHScroll;      /* Horizontal scroll-bar info */
     HGLOBAL        hmemTaskQ;     /* Task queue global memory handle */
     HRGN           hrgnUpdate;    /* Update region */
     HWND           hwndLastActive;/* Last active popup hwnd */
     DWORD          dwStyle;       /* Window style (from CreateWindow) */
     DWORD          dwExStyle;     /* Extended style (from CreateWindowEx) */
     HANDLE         hdce;          /* Window DCE (if CS_OWNDC or CS_CLASSDC) */
-    HANDLE         hVScroll;      /* Vertical scroll-bar info */
-    HANDLE         hHScroll;      /* Horizontal scroll-bar info */
     UINT           wIDmenu;       /* ID or hmenu (from CreateWindow) */
     WORD           flags;         /* Misc. flags (see below) */
     Window         window;        /* X window (only for top-level windows) */
diff --git a/include/windows.h b/include/windows.h
index 16e6f80..72fea65 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -1449,15 +1449,15 @@
 typedef KANJISTRUCT *NPKANJISTRUCT;
 typedef KANJISTRUCT *PKANJISTRUCT;
 
+#define OFS_MAXPATHNAME 128
 typedef struct
 {
     BYTE cBytes;
     BYTE fFixedDisk;
     WORD nErrCode;
     BYTE reserved[4];
-    BYTE szPathName[128];
-} OFSTRUCT;
-typedef OFSTRUCT *LPOFSTRUCT;
+    BYTE szPathName[OFS_MAXPATHNAME];
+} OFSTRUCT, *LPOFSTRUCT;
 
 #define OF_READ               0x0000
 #define OF_WRITE              0x0001
@@ -2247,6 +2247,43 @@
 #define DT_NOPREFIX 2048
 #define DT_INTERNAL 4096
 
+/* DrawEdge() flags */
+#define BDR_RAISEDOUTER    0x0001
+#define BDR_SUNKENOUTER    0x0002
+#define BDR_RAISEDINNER    0x0004
+#define BDR_SUNKENINNER    0x0008
+
+#define BDR_OUTER          0x0003
+#define BDR_INNER          0x000c
+#define BDR_RAISED         0x0005
+#define BDR_SUNKEN         0x000a
+
+#define EDGE_RAISED        (BDR_RAISEDOUTER | BDR_RAISEDINNER)
+#define EDGE_SUNKEN        (BDR_SUNKENOUTER | BDR_SUNKENINNER)
+#define EDGE_ETCHED        (BDR_SUNKENOUTER | BDR_RAISEDINNER)
+#define EDGE_BUMP          (BDR_RAISEDOUTER | BDR_SUNKENINNER)
+
+/* border flags */
+#define BF_LEFT            0x0001
+#define BF_TOP             0x0002
+#define BF_RIGHT           0x0004
+#define BF_BOTTOM          0x0008
+#define BF_DIAGONAL        0x0010
+#define BF_MIDDLE          0x0800  /* Fill in the middle */
+#define BF_SOFT            0x1000  /* For softer buttons */
+#define BF_ADJUST          0x2000  /* Calculate the space left over */
+#define BF_FLAT            0x4000  /* For flat rather than 3D borders */
+#define BF_MONO            0x8000  /* For monochrome borders */
+#define BF_TOPLEFT         (BF_TOP | BF_LEFT)
+#define BF_TOPRIGHT        (BF_TOP | BF_RIGHT)
+#define BF_BOTTOMLEFT      (BF_BOTTOM | BF_LEFT)
+#define BF_BOTTOMRIGHT     (BF_BOTTOM | BF_RIGHT)
+#define BF_RECT            (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
+#define BF_DIAGONAL_ENDTOPRIGHT     (BF_DIAGONAL | BF_TOP | BF_RIGHT)
+#define BF_DIAGONAL_ENDTOPLEFT      (BF_DIAGONAL | BF_TOP | BF_LEFT)
+#define BF_DIAGONAL_ENDBOTTOMLEFT   (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
+#define BF_DIAGONAL_ENDBOTTOMRIGHT  (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
+
 /* Window Styles */
 #define WS_OVERLAPPED    0x00000000L
 #define WS_POPUP         0x80000000L
@@ -3153,6 +3190,8 @@
 WORD       FreeSelector(WORD);
 DWORD      GetBitmapDimension(HBITMAP16);
 HTASK16    GetCurrentTask(void);
+HINSTANCE16 GetTaskDS(void);
+HQUEUE16   GetTaskQueue(HTASK16);
 BOOL16     LocalInit(HANDLE16,WORD,WORD);
 DWORD      OffsetViewportOrg(HDC16,INT16,INT16);
 DWORD      OffsetWindowOrg(HDC16,INT16,INT16);
@@ -3183,6 +3222,7 @@
 DWORD      HeapSize(HANDLE32,DWORD,LPVOID);
 BOOL32     HeapUnlock(HANDLE32);
 BOOL32     HeapValidate(HANDLE32,DWORD,LPVOID);
+BOOL32     IsWindowUnicode(HWND32);
 VOID       RtlFillMemory(LPVOID,UINT32,UINT32);
 VOID       RtlMoveMemory(LPVOID,LPCVOID,UINT32);
 VOID       RtlZeroMemory(LPVOID,UINT32);
@@ -3191,31 +3231,55 @@
 
 /* Declarations for functions that are the same in Win16 and Win32 */
 
+BOOL16     CheckDlgButton(HWND32,INT32,UINT32);
+BOOL16     CheckRadioButton(HWND32,UINT32,UINT32,UINT32);
 INT16      CombineRgn(HRGN32,HRGN32,HRGN32,INT32);
+LONG       CopyLZFile(HFILE,HFILE);
 HBITMAP16  CreateBitmap(INT32,INT32,UINT32,UINT32,LPCVOID);
+BOOL16     CreateCaret(HWND32,HBITMAP32,INT32,INT32);
 HBITMAP16  CreateCompatibleBitmap(HDC32,INT32,INT32);
 HBITMAP16  CreateDiscardableBitmap(HDC32,INT32,INT32);
 HRGN16     CreateEllipticRgn(INT32,INT32,INT32,INT32);
 HRGN16     CreateRectRgn(INT32,INT32,INT32,INT32);
 HRGN16     CreateRoundRectRgn(INT32,INT32,INT32,INT32,INT32,INT32);
+BOOL16     DestroyCaret(void);
 BOOL16     EndDialog(HWND32,INT32);
 BOOL16     EqualRgn(HRGN32,HRGN32);
 INT16      ExcludeUpdateRgn(HDC32,HWND32);
+BOOL16     ExtFloodFill(HDC32,INT32,INT32,COLORREF,UINT32);
+BOOL16     FloodFill(HDC32,INT32,INT32,COLORREF);
 DWORD      GetAppCompatFlags(HTASK32);
 LONG       GetBitmapBits(HBITMAP32,LONG,LPVOID);
 WORD       GetClassWord(HWND32,INT32);
+INT16      GetDlgCtrlID(HWND32);
+DWORD      GetTickCount(void);
 INT16      GetUpdateRgn(HWND32,HRGN32,BOOL32);
 WORD       GetWindowWord(HWND32,INT32);
+BOOL16     HideCaret(HWND32);
+BOOL16     IsWindow(HWND32);
+void       LZClose(HFILE);
+LONG       LZCopy(HFILE,HFILE);
+void       LZDone(void);
+HFILE      LZInit(HFILE);
+LONG       LZSeek(HFILE,LONG,INT32);
+INT16      LZStart(void);
 INT16      OffsetRgn(HRGN32,INT32,INT32);
+HFILE      OpenFile(LPCSTR,OFSTRUCT*,UINT32);
 BOOL16     PtInRegion(HRGN32,INT32,INT32);
 DWORD      RegCloseKey(HKEY);
 DWORD      RegFlushKey(HKEY);
 LONG       SetBitmapBits(HBITMAP32,LONG,LPCVOID);
+BOOL16     SetCaretBlinkTime(UINT32);
+BOOL16     SetCaretPos(INT32,INT32);
 WORD       SetClassWord(HWND32,INT32,WORD);
 INT16      SetDIBits(HDC32,HBITMAP32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
 INT16      SetDIBitsToDevice(HDC32,INT32,INT32,DWORD,DWORD,INT32,INT32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32);
 VOID       SetRectRgn(HRGN32,INT32,INT32,INT32,INT32);
 WORD       SetWindowWord(HWND32,INT32,WORD);
+BOOL16     ShowCaret(HWND32);
+HFILE      _lclose(HFILE);
+HFILE      _lcreat(LPCSTR,INT32);
+HFILE      _lopen(LPCSTR,INT32);
 
 /* Declarations for functions that change between Win16 and Win32 */
 
@@ -3240,6 +3304,36 @@
 BOOL32     ChangeMenu32A(HMENU32,UINT32,LPCSTR,UINT32,UINT32);
 BOOL32     ChangeMenu32W(HMENU32,UINT32,LPCWSTR,UINT32,UINT32);
 #define    ChangeMenu WINELIB_NAME_AW(ChangeMenu)
+LPSTR      CharLower32A(LPSTR);
+LPWSTR     CharLower32W(LPWSTR);
+#define    CharLower WINELIB_NAME_AW(CharLower)
+DWORD      CharLowerBuff32A(LPSTR,DWORD);
+DWORD      CharLowerBuff32W(LPWSTR,DWORD);
+#define    CharLowerBuff WINELIB_NAME_AW(CharLowerBuff)
+LPSTR      CharNext32A(LPCSTR);
+LPWSTR     CharNext32W(LPCWSTR);
+#define    CharNext WINELIB_NAME_AW(CharNext)
+LPSTR      CharNextEx32A(WORD,LPCSTR,DWORD);
+LPWSTR     CharNextEx32W(WORD,LPCWSTR,DWORD);
+#define    CharNextEx WINELIB_NAME_AW(CharNextEx)
+LPSTR      CharPrev32A(LPCSTR,LPCSTR);
+LPWSTR     CharPrev32W(LPCWSTR,LPCWSTR);
+#define    CharPrev WINELIB_NAME_AW(CharPrev)
+LPSTR      CharPrevEx32A(WORD,LPCSTR,LPCSTR,DWORD);
+LPWSTR     CharPrevEx32W(WORD,LPCWSTR,LPCWSTR,DWORD);
+#define    CharPrevEx WINELIB_NAME_AW(CharPrevEx)
+LPSTR      CharUpper32A(LPSTR);
+LPWSTR     CharUpper32W(LPWSTR);
+#define    CharUpper WINELIB_NAME_AW(CharUpper)
+DWORD      CharUpperBuff32A(LPSTR,DWORD);
+DWORD      CharUpperBuff32W(LPWSTR,DWORD);
+#define    CharUpperBuff WINELIB_NAME_AW(CharUpperBuff)
+BOOL32     CharToOem32A(LPSTR,LPSTR);
+BOOL32     CharToOem32W(LPCWSTR,LPSTR);
+#define    CharToOem WINELIB_NAME_AW(CharToOem)
+BOOL32     CharToOemBuff32A(LPSTR,LPSTR,DWORD);
+BOOL32     CharToOemBuff32W(LPCWSTR,LPSTR,DWORD);
+#define    CharToOemBuff WINELIB_NAME_AW(CharToOemBuff)
 HWND16     ChildWindowFromPoint16(HWND16,POINT16);
 HWND32     ChildWindowFromPoint32(HWND32,POINT32);
 #define    ChildWindowFromPoint WINELIB_NAME(ChildWindowFromPoint)
@@ -3249,6 +3343,16 @@
 BOOL16     ClipCursor16(const RECT16*);
 BOOL32     ClipCursor32(const RECT32*);
 #define    ClipCursor WINELIB_NAME(ClipCursor)
+UINT16     CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
+UINT32     CompareString32A(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
+UINT32     CompareString32W(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD);
+#define    CompareString WINELIB_NAME_AW(CompareString)
+HCURSOR16  CopyCursor16(HINSTANCE16,HCURSOR16);
+#define    CopyCursor32(cur) ((HCURSOR32)CopyIcon32((HICON32)(cur)))
+#define    CopyCursor WINELIB_NAME(CopyCursor)
+HICON16    CopyIcon16(HINSTANCE16,HICON16);
+HICON32    CopyIcon32(HICON32);
+#define    CopyIcon WINELIB_NAME(CopyIcon)
 BOOL16     CopyRect16(RECT16*,const RECT16*);
 BOOL32     CopyRect32(RECT32*,const RECT32*);
 #define    CopyRect WINELIB_NAME(CopyRect)
@@ -3282,6 +3386,10 @@
 HRGN16     CreateEllipticRgnIndirect16(const RECT16 *);
 HRGN32     CreateEllipticRgnIndirect32(const RECT32 *);
 #define    CreateEllipticRgnIndirect WINELIB_NAME(CreateEllipticRgnIndirect)
+HFONT16    CreateFontIndirect16(const LOGFONT16*);
+HFONT32    CreateFontIndirect32A(const LOGFONT32A*);
+HFONT32    CreateFontIndirect32W(const LOGFONT32W*);
+#define    CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
 HRGN16     CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
 HRGN32     CreatePolyPolygonRgn32(const POINT32*,const INT32*,INT32,INT32);
 #define    CreatePolyPolygonRgn WINELIB_NAME(CreatePolyPolygonRgn)
@@ -3352,9 +3460,15 @@
 BOOL16     DPtoLP16(HDC16,LPPOINT16,INT16);
 BOOL32     DPtoLP32(HDC32,LPPOINT32,INT32);
 #define    DPtoLP WINELIB_NAME(DPtoLP)
+BOOL16     DrawEdge16(HDC16,LPRECT16,UINT16,UINT16);
+BOOL32     DrawEdge32(HDC32,LPRECT32,UINT32,UINT32);
+#define    DrawEdge WINELIB_NAME(DrawEdge)
 void       DrawFocusRect16(HDC16,const RECT16*);
 void       DrawFocusRect32(HDC32,const RECT32*);
 #define    DrawFocusRect WINELIB_NAME(DrawFocusRect)
+BOOL16     DrawFrameControl16(HDC16,LPRECT16,UINT16,UINT16);
+BOOL32     DrawFrameControl32(HDC32,LPRECT32,UINT32,UINT32);
+#define    DrawFrameControl WINELIB_NAME(DrawFrameControl)
 INT16      DrawText16(HDC16,LPCSTR,INT16,LPRECT16,UINT16);
 INT32      DrawText32A(HDC32,LPCSTR,INT32,LPRECT32,UINT32);
 INT32      DrawText32W(HDC32,LPCWSTR,INT32,LPRECT32,UINT32);
@@ -3397,7 +3511,7 @@
 #define    FreeModule32(handle) FreeLibrary32(handle)
 #define    FreeModule WINELIB_NAME(FreeModule)
 void       FreeProcInstance16(FARPROC16);
-#define    FreeProcInstance32(proc) (proc)
+#define    FreeProcInstance32(proc) /*nothing*/
 #define    FreeProcInstance WINELIB_NAME(FreeProcInstance)
 BOOL16     GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
 BOOL32     GetBitmapDimensionEx32(HBITMAP32,LPSIZE32);
@@ -3405,8 +3519,11 @@
 BOOL16     GetBrushOrgEx16(HDC16,LPPOINT16);
 BOOL32     GetBrushOrgEx32(HDC32,LPPOINT32);
 #define    GetBrushOrgEx WINELIB_NAME(GetBrushOrgEx)
-void       GetCaretPos16(LPPOINT16);
-void       GetCaretPos32(LPPOINT32);
+UINT16     GetCaretBlinkTime16(void);
+UINT32     GetCaretBlinkTime32(void);
+#define    GetCaretBlinkTime WINELIB_NAME(GetCaretBlinkTime)
+VOID       GetCaretPos16(LPPOINT16);
+BOOL32     GetCaretPos32(LPPOINT32);
 #define    GetCaretPos WINELIB_NAME(GetCaretPos)
 BOOL16     GetClassInfo16(HINSTANCE16,SEGPTR,WNDCLASS16 *);
 BOOL32     GetClassInfo32A(HINSTANCE32,LPCSTR,WNDCLASS32A *);
@@ -3455,6 +3572,18 @@
 UINT32     GetDriveType32A(LPCSTR);
 UINT32     GetDriveType32W(LPCWSTR);
 #define    GetDriveType WINELIB_NAME_AW(GetDriveType)
+INT16      GetExpandedName16(LPCSTR,LPSTR);
+INT32      GetExpandedName32A(LPCSTR,LPSTR);
+INT32      GetExpandedName32W(LPCWSTR,LPWSTR);
+#define    GetExpandedName WINELIB_NAME_AW(GetExpandedName)
+DWORD      GetFileVersionInfoSize16(LPCSTR,LPDWORD);
+DWORD      GetFileVersionInfoSize32A(LPCSTR,LPDWORD);
+DWORD      GetFileVersionInfoSize32W(LPCWSTR,LPDWORD);
+#define    GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize)
+DWORD      GetFileVersionInfo16(LPCSTR,DWORD,DWORD,LPVOID);
+DWORD      GetFileVersionInfo32A(LPCSTR,DWORD,DWORD,LPVOID);
+DWORD      GetFileVersionInfo32W(LPCWSTR,DWORD,DWORD,LPVOID);
+#define    GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo)
 UINT16     GetInternalWindowPos16(HWND16,LPRECT16,LPPOINT16);
 UINT32     GetInternalWindowPos32(HWND32,LPRECT32,LPPOINT32);
 #define    GetInternalWindowPos WINELIB_NAME(GetInternalWindowPos)
@@ -3465,13 +3594,23 @@
 INT32      GetObject32A(HANDLE32,INT32,LPVOID);
 INT32      GetObject32W(HANDLE32,INT32,LPVOID);
 #define    GetObject WINELIB_NAME_AW(GetObject)
+FARPROC16  GetProcAddress16(HMODULE16,SEGPTR);
+FARPROC32  GetProcAddress32(HMODULE32,LPCSTR);
+#define    GetProcAddress WINELIB_NAME(GetProcAddress)
 INT16      GetRgnBox16(HRGN16,LPRECT16);
 INT32      GetRgnBox32(HRGN32,LPRECT32);
 #define    GetRgnBox WINELIB_NAME(GetRgnBox)
+DWORD      GetShortPathName32A(LPCSTR,LPSTR,DWORD);
+DWORD      GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
+#define    GetShortPathName WINELIB_NAME_AW(GetShortPathName)
 UINT16     GetSystemDirectory16(LPSTR,UINT16);
 UINT32     GetSystemDirectory32A(LPSTR,UINT32);
 UINT32     GetSystemDirectory32W(LPWSTR,UINT32);
 #define    GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
+UINT16     GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
+UINT32     GetTempFileName32A(LPCSTR,LPCSTR,UINT32,LPSTR);
+UINT32     GetTempFileName32W(LPCWSTR,LPCWSTR,UINT32,LPWSTR);
+#define    GetTempFileName WINELIB_NAME_AW(GetTempFileName)
 UINT32     GetTempPath32A(UINT32,LPSTR);
 UINT32     GetTempPath32W(UINT32,LPWSTR);
 #define    GetTempPath WINELIB_NAME_AW(GetTempPath)
@@ -3511,6 +3650,9 @@
 void       GetWindowRect16(HWND16,LPRECT16);
 void       GetWindowRect32(HWND32,LPRECT32);
 #define    GetWindowRect WINELIB_NAME(GetWindowRect)
+HTASK16    GetWindowTask16(HWND16);
+#define    GetWindowTask32(hwnd) ((HTASK32)GetWindowThreadProcessId(hwnd,NULL))
+#define    GetWindowTask WINELIB_NAME(GetWindowTask)
 INT16      GetWindowText16(HWND16,SEGPTR,INT16);
 INT32      GetWindowText32A(HWND32,LPSTR,INT32);
 INT32      GetWindowText32W(HWND32,LPWSTR,INT32);
@@ -3570,9 +3712,38 @@
 void       InvertRect16(HDC16,const RECT16*);
 void       InvertRect32(HDC32,const RECT32*);
 #define    InvertRect WINELIB_NAME(InvertRect)
+BOOL16     IsCharAlpha16(CHAR);
+BOOL32     IsCharAlpha32A(CHAR);
+BOOL32     IsCharAlpha32W(WCHAR);
+#define    IsCharAlpha WINELIB_NAME_AW(IsCharAlpha)
+BOOL16     IsCharAlphaNumeric16(CHAR);
+BOOL32     IsCharAlphaNumeric32A(CHAR);
+BOOL32     IsCharAlphaNumeric32W(WCHAR);
+#define    IsCharAlphaNumeric WINELIB_NAME_AW(IsCharAlphaNumeric)
+BOOL16     IsCharLower16(CHAR);
+BOOL32     IsCharLower32A(CHAR);
+BOOL32     IsCharLower32W(WCHAR);
+#define    IsCharLower WINELIB_NAME_AW(IsCharLower)
+BOOL16     IsCharUpper16(CHAR);
+BOOL32     IsCharUpper32A(CHAR);
+BOOL32     IsCharUpper32W(WCHAR);
+#define    IsCharUpper WINELIB_NAME_AW(IsCharUpper)
 BOOL16     IsRectEmpty16(const RECT16*);
 BOOL32     IsRectEmpty32(const RECT32*);
 #define    IsRectEmpty WINELIB_NAME(IsRectEmpty)
+BOOL16     KillSystemTimer16(HWND16,UINT16);
+BOOL32     KillSystemTimer32(HWND32,UINT32);
+#define    KillSystemTimer WINELIB_NAME(KillSystemTimer)
+BOOL16     KillTimer16(HWND16,UINT16);
+BOOL32     KillTimer32(HWND32,UINT32);
+#define    KillTimer WINELIB_NAME(KillTimer)
+HFILE      LZOpenFile16(LPCSTR,LPOFSTRUCT,UINT16);
+HFILE      LZOpenFile32A(LPCSTR,LPOFSTRUCT,UINT32);
+HFILE      LZOpenFile32W(LPCWSTR,LPOFSTRUCT,UINT32);
+#define    LZOpenFile WINELIB_NAME_AW(LZOpenFile)
+INT16      LZRead16(HFILE,SEGPTR,UINT16); 
+INT32      LZRead32(HFILE,LPVOID,UINT32); 
+#define    LZRead WINELIB_NAME(LZRead)
 HMENU16    LoadMenuIndirect16(LPCVOID);
 HMENU32    LoadMenuIndirect32A(LPCVOID);
 HMENU32    LoadMenuIndirect32W(LPCVOID);
@@ -3632,6 +3803,12 @@
 INT16      MulDiv16(INT16,INT16,INT16);
 INT32      MulDiv32(INT32,INT32,INT32);
 #define    MulDiv WINELIB_NAME(MulDiv)
+BOOL32     OemToChar32A(LPSTR,LPSTR);
+BOOL32     OemToChar32W(LPCSTR,LPWSTR);
+#define    OemToChar WINELIB_NAME_AW(OemToChar)
+BOOL32     OemToCharBuff32A(LPSTR,LPSTR,DWORD);
+BOOL32     OemToCharBuff32W(LPCSTR,LPWSTR,DWORD);
+#define    OemToCharBuff WINELIB_NAME_AW(OemToCharBuff)
 void       OffsetRect16(LPRECT16,INT16,INT16);
 void       OffsetRect32(LPRECT32,INT32,INT32);
 #define    OffsetRect WINELIB_NAME(OffsetRect)
@@ -3785,6 +3962,12 @@
 void       SetRectEmpty16(LPRECT16);
 void       SetRectEmpty32(LPRECT32);
 #define    SetRectEmpty WINELIB_NAME(SetRectEmpty)
+UINT16     SetSystemTimer16(HWND16,UINT16,UINT16,TIMERPROC16);
+UINT32     SetSystemTimer32(HWND32,UINT32,UINT32,TIMERPROC32);
+#define    SetSystemTimer WINELIB_NAME(SetSystemTimer)
+UINT16     SetTimer16(HWND16,UINT16,UINT16,TIMERPROC16);
+UINT32     SetTimer32(HWND32,UINT32,UINT32,TIMERPROC32);
+#define    SetTimer WINELIB_NAME(SetTimer)
 BOOL16     SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
 BOOL32     SetViewportExtEx32(HDC32,INT32,INT32,LPSIZE32);
 #define    SetViewportExtEx WINELIB_NAME(SetViewportExtEx)
@@ -3831,6 +4014,22 @@
 void       ValidateRect16(HWND16,const RECT16*);
 void       ValidateRect32(HWND32,const RECT32*);
 #define    ValidateRect WINELIB_NAME(ValidateRect)
+DWORD      VerFindFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*,LPSTR,UINT16*);
+DWORD      VerFindFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*,LPSTR,UINT32*);
+DWORD      VerFindFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*,LPWSTR,UINT32*);
+#define    VerFindFile WINELIB_NAME_AW(VerFindFile)
+DWORD      VerInstallFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*);
+DWORD      VerInstallFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*);
+DWORD      VerInstallFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*);
+#define    VerInstallFile WINELIB_NAME_AW(VerInstallFile)
+DWORD      VerLanguageName16(UINT16,LPSTR,UINT16);
+DWORD      VerLanguageName32A(UINT32,LPSTR,UINT32);
+DWORD      VerLanguageName32W(UINT32,LPWSTR,UINT32);
+#define    VerLanguageName WINELIB_NAME_AW(VerLanguageName)
+DWORD      VerQueryValue16(SEGPTR,LPCSTR,SEGPTR*,UINT16*);
+DWORD      VerQueryValue32A(LPVOID,LPCSTR,LPVOID*,UINT32*);
+DWORD      VerQueryValue32W(LPVOID,LPCWSTR,LPVOID*,UINT32*);
+#define    VerQueryValue WINELIB_NAME_AW(VerQueryValue)
 HWND16     WindowFromPoint16(POINT16);
 HWND32     WindowFromPoint32(POINT32);
 #define    WindowFromPoint WINELIB_NAME(WindowFromPoint)
@@ -3862,14 +4061,6 @@
 INT32      lstrlen32A(LPCSTR);
 INT32      lstrlen32W(LPCWSTR);
 #define    lstrlen WINELIB_NAME_AW(lstrlen)
-INT16      lstrncmp16(LPCSTR,LPCSTR,INT16);
-INT32      lstrncmp32A(LPCSTR,LPCSTR,INT32);
-INT32      lstrncmp32W(LPCWSTR,LPCWSTR,INT32);
-#define    lstrncmp WINELIB_NAME_AW(lstrncmp)
-INT16      lstrncmpi16(LPCSTR,LPCSTR,INT16);
-INT32      lstrncmpi32A(LPCSTR,LPCSTR,INT32);
-INT32      lstrncmpi32W(LPCWSTR,LPCWSTR,INT32);
-#define    lstrncmpi WINELIB_NAME_AW(lstrncmpi)
 INT16      wsnprintf16(LPSTR,UINT16,LPCSTR,...);
 INT32      wsnprintf32A(LPSTR,UINT32,LPCSTR,...);
 INT32      wsnprintf32W(LPWSTR,UINT32,LPCWSTR,...);
@@ -3887,6 +4078,15 @@
 INT32      wvsprintf32W(LPWSTR,LPCWSTR,LPCVOID);
 #define    wvsprintf WINELIB_NAME_AW(wvsprintf)
 
+/* Extra functions that don't exist in the Windows API */
+
+INT32      lstrncmp32A(LPCSTR,LPCSTR,INT32);
+INT32      lstrncmp32W(LPCWSTR,LPCWSTR,INT32);
+INT32      lstrncmpi32A(LPCSTR,LPCSTR,INT32);
+INT32      lstrncmpi32W(LPCWSTR,LPCWSTR,INT32);
+LPWSTR     lstrcpynAtoW(LPWSTR,LPCSTR,INT32);
+LPSTR      lstrcpynWtoA(LPSTR,LPCWSTR,INT32);
+
 /* Library data types defined as a transition aid for the emulator. */
 /* These should _not_ be used in the emulator and will be removed someday. */
 
@@ -3958,7 +4158,7 @@
 UINT       AnsiLowerBuff(LPSTR,UINT);
 SEGPTR     AnsiNext(SEGPTR);
 SEGPTR     AnsiPrev(SEGPTR,SEGPTR);
-INT        AnsiToOem(LPSTR,LPSTR);
+INT        AnsiToOem(LPCSTR,LPSTR);
 void       AnsiToOemBuff(LPCSTR,LPSTR,UINT);
 LPSTR      AnsiUpper(LPSTR);
 UINT       AnsiUpperBuff(LPSTR,UINT);
@@ -3975,9 +4175,7 @@
 INT        Catch(LPCATCHBUF);
 BOOL       ChangeClipboardChain(HWND,HWND);
 WORD       ChangeSelector(WORD,WORD);
-BOOL       CheckDlgButton(HWND,INT,UINT);
 INT        CheckMenuItem(HMENU,UINT,UINT);
-BOOL       CheckRadioButton(HWND,UINT,UINT,UINT);
 BOOL       Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
 int        ClearCommBreak(int);
 BOOL       CloseClipboard(void);
@@ -3986,18 +4184,10 @@
 void       CloseSound(void);
 BOOL       CloseWindow(HWND);
 int        ConvertRequest(HWND,LPKANJISTRUCT);
-#ifdef WINELIB32
-HCURSOR    CopyCursor(HCURSOR); /* Win32 */
-HICON      CopyIcon(HICON); /* Win32 */
-#else
-HCURSOR    CopyCursor(HINSTANCE,HCURSOR); /* Win16 */
-HICON      CopyIcon(HINSTANCE,HICON); /* Win16 */
-#endif
 HMETAFILE  CopyMetaFile(HMETAFILE,LPCSTR);
 INT        CountClipboardFormats(void);
 INT        CountVoiceNotes(INT);
 HBRUSH     CreateBrushIndirect(const LOGBRUSH16*);
-BOOL       CreateCaret(HWND,HBITMAP,INT,INT);
 HDC        CreateCompatibleDC(HDC);
 HCURSOR    CreateCursor(HANDLE,INT,INT,INT,INT,const BYTE*,const BYTE*);
 HANDLE     CreateCursorIconIndirect(HANDLE,CURSORICONINFO*,const BYTE*,const BYTE*);
@@ -4005,7 +4195,6 @@
 HBRUSH     CreateDIBPatternBrush(HGLOBAL,UINT);
 HBITMAP    CreateDIBitmap(HDC,BITMAPINFOHEADER*,DWORD,LPVOID,BITMAPINFO*,UINT);
 HFONT      CreateFont(INT,INT,INT,INT,INT,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
-HFONT      CreateFontIndirect(const LOGFONT16*);
 HBRUSH     CreateHatchBrush(INT,COLORREF);
 HDC        CreateIC(LPCSTR,LPCSTR,LPCSTR,const DEVMODE*);
 HICON      CreateIcon(HINSTANCE,INT,INT,BYTE,BYTE,const BYTE*,const BYTE*);
@@ -4025,7 +4214,6 @@
 BOOL       DeleteMenu(HMENU,UINT,UINT);
 BOOL       DeleteMetaFile(HMETAFILE);
 BOOL       DeleteObject(HGDIOBJ16);
-BOOL       DestroyCaret(void);
 BOOL       DestroyCursor(HCURSOR);
 BOOL       DestroyIcon(HICON);
 BOOL       DestroyMenu(HMENU);
@@ -4059,7 +4247,6 @@
 int        ExcludeClipRect(HDC,short,short,short,short);
 int        ExcludeVisRect(HDC,short,short,short,short);
 BOOL       ExitWindows(DWORD,WORD);
-BOOL       ExtFloodFill(HDC,INT,INT,COLORREF,WORD);
 HICON      ExtractIcon(HINSTANCE,LPCSTR,WORD);
 HANDLE16   FarGetOwner(HANDLE16);
 void       FarSetOwner(HANDLE16,HANDLE16);
@@ -4070,7 +4257,6 @@
 HINSTANCE  FindExecutable(LPCSTR,LPCSTR,LPSTR);
 HRSRC      FindResource(HINSTANCE,SEGPTR,SEGPTR);
 BOOL       FlashWindow(HWND,BOOL);
-BOOL       FloodFill(HDC,INT,INT,COLORREF);
 int        FlushComm(int,int);
 BOOL       FrameRgn(HDC,HRGN,HBRUSH,int,int);
 void       FreeLibrary(HANDLE);
@@ -4086,7 +4272,6 @@
 WORD       GetBkMode(HDC);
 DWORD      GetBrushOrg(HDC);
 HWND       GetCapture(void);
-WORD       GetCaretBlinkTime(void);
 BOOL       GetCharABCWidths(HDC,UINT,UINT,LPABC16);
 BOOL       GetCharWidth(HDC,WORD,WORD,LPINT16);
 HRGN       GetClipRgn(HDC);
@@ -4115,7 +4300,6 @@
 HWND       GetDesktopWindow(void);
 int        GetDeviceCaps(HDC,WORD);
 DWORD      GetDialogBaseUnits(void);
-int        GetDlgCtrlID(HWND);
 HWND       GetDlgItem(HWND,WORD);
 WORD       GetDlgItemInt(HWND,WORD,BOOL*,BOOL);
 WORD       GetDoubleClickTime(void);
@@ -4165,7 +4349,6 @@
 int        GetPriorityClipboardFormat(WORD*,short);
 UINT       GetPrivateProfileInt(LPCSTR,LPCSTR,INT,LPCSTR);
 INT        GetPrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT,LPCSTR);
-FARPROC    GetProcAddress(HANDLE,SEGPTR);
 UINT       GetProfileInt(LPCSTR,LPCSTR,INT);
 INT        GetProfileString(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT);
 HANDLE     GetProp(HWND,SEGPTR);
@@ -4189,10 +4372,7 @@
 BOOL       GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
 VOID       GetSystemTime(LPSYSTEMTIME); /* Win32 */
 DWORD      GetTabbedTextExtent(HDC,LPSTR,int,int,LPINT16);
-HINSTANCE  GetTaskDS(void);
-HQUEUE     GetTaskQueue(HTASK);
 BYTE       GetTempDrive(BYTE);
-INT        GetTempFileName(BYTE,LPCSTR,UINT,LPSTR);
 WORD       GetTextAlign(HDC);
 short      GetTextCharacterExtra(HDC);
 COLORREF   GetTextColor(HDC);
@@ -4200,7 +4380,6 @@
 INT        GetTextFace(HDC,INT,LPSTR);
 LPINT16    GetThresholdEvent(void);
 int        GetThresholdStatus(void);
-DWORD      GetTickCount(void);
 HWND       GetTopWindow(HWND);
 LONG       GetVersion(void);
 DWORD      GetViewportExt(HDC);
@@ -4211,7 +4390,6 @@
 HDC        GetWindowDC(HWND);
 DWORD      GetWindowExt(HDC);
 DWORD      GetWindowOrg(HDC);
-HANDLE     GetWindowTask(HWND);
 int        GetWindowTextLength(HWND);
 UINT       GetWindowsDirectory(LPSTR,UINT);
 DWORD      GlobalDOSAlloc(DWORD);
@@ -4228,7 +4406,6 @@
 void       GlobalUnfix(HGLOBAL16);
 SEGPTR     GlobalWire(HGLOBAL16);
 BOOL       GrayString(HDC,HBRUSH,FARPROC,LPARAM,INT,INT,INT,INT,INT);
-void       HideCaret(HWND);
 BOOL       HiliteMenuItem(HWND,HMENU,UINT,UINT);
 BOOL       InSendMessage(void);
 WORD       InitAtomTable(WORD);
@@ -4243,10 +4420,6 @@
 BOOL       IsBadReadPtr(SEGPTR,WORD);
 BOOL       IsBadStringPtr(SEGPTR,WORD);
 BOOL       IsBadWritePtr(SEGPTR,WORD);
-BOOL       IsCharAlpha(char);
-BOOL       IsCharAlphaNumeric(char);
-BOOL       IsCharLower(char);
-BOOL       IsCharUpper(char);
 BOOL       IsChild(HWND,HWND);
 BOOL       IsClipboardFormatAvailable(WORD);
 BOOL       IsDialogMessage(HWND,LPMSG16);
@@ -4256,13 +4429,9 @@
 BOOL       IsMenu(HMENU);
 BOOL       IsTask(HTASK);
 HTASK      IsTaskLocked(void);
-BOOL       IsWindow(HWND);
 BOOL       IsWindowEnabled(HWND);
-BOOL       IsWindowUnicode(HWND);
 BOOL       IsWindowVisible(HWND);
 BOOL       IsZoomed(HWND);
-BOOL       KillSystemTimer(HWND,WORD);
-BOOL       KillTimer(HWND,WORD);
 void       LimitEmsPages(DWORD);
 void       LineDDA(short,short,short,short,FARPROC,long);
 BOOL       LineTo(HDC,short,short);
@@ -4284,12 +4453,11 @@
 DWORD      MoveTo(HDC,short,short);
 BOOL       MoveWindow(HWND,short,short,short,short,BOOL);
 DWORD      OemKeyScan(WORD);
-BOOL       OemToAnsi(LPSTR,LPSTR);
-void       OemToAnsiBuff(LPSTR,LPSTR,INT);
+BOOL       OemToAnsi(LPCSTR,LPSTR);
+void       OemToAnsiBuff(LPCSTR,LPSTR,INT);
 int        OffsetClipRgn(HDC,short,short);
 BOOL       OpenClipboard(HWND);
 int        OpenComm(LPCSTR,UINT,UINT);
-HFILE      OpenFile(LPCSTR,OFSTRUCT*,UINT);
 BOOL       OpenIcon(HWND);
 int        OpenSound(void);
 void       OutputDebugString(LPCSTR);
@@ -4344,8 +4512,6 @@
 WORD       SetBkMode(HDC,WORD);
 DWORD      SetBrushOrg(HDC,short,short);
 HWND       SetCapture(HWND);
-void       SetCaretBlinkTime(WORD);
-void       SetCaretPos(short,short);
 HANDLE     SetClipboardData(WORD,HANDLE);
 HWND       SetClipboardViewer(HWND);
 int        SetCommBreak(int);
@@ -4393,13 +4559,11 @@
 WORD       SetSystemPaletteUse(HDC,WORD);
 BOOL       SetSystemPowerState(BOOL, BOOL);
 BOOL       SetSystemTime(const SYSTEMTIME*);
-WORD       SetSystemTimer(HWND,WORD,WORD,FARPROC);
 HQUEUE     SetTaskQueue(HTASK,HQUEUE);
 WORD       SetTextAlign(HDC,WORD);
 short      SetTextCharacterExtra(HDC,short);
 DWORD      SetTextColor(HDC,DWORD);
 short      SetTextJustification(HDC,short,short);
-WORD       SetTimer(HWND,WORD,WORD,FARPROC);
 int        SetVoiceAccent(int,int,int,int,int);
 int        SetVoiceEnvelope(int,int,int);
 int        SetVoiceNote(int,int,int,int);
@@ -4411,7 +4575,6 @@
 FARPROC    SetWindowsHook(short,FARPROC);
 HHOOK      SetWindowsHookEx(short,HOOKPROC,HINSTANCE,HTASK);
 HINSTANCE  ShellExecute(HWND,LPCSTR,LPCSTR,LPSTR,LPCSTR,INT);
-void       ShowCaret(HWND);
 int        ShowCursor(BOOL);
 void       ShowOwnedPopups(HWND,BOOL);
 void       ShowScrollBar(HWND,WORD,BOOL);
@@ -4460,10 +4623,7 @@
 void       Yield(void);
 LONG       _hread(HFILE,SEGPTR,LONG);
 LONG       _hwrite(HFILE,LPCSTR,LONG);
-HFILE      _lclose(HFILE);
-HFILE      _lcreat(LPCSTR,INT);
 LONG       _llseek(HFILE,LONG,INT);
-HFILE      _lopen(LPCSTR,INT);
 INT        _lread(HFILE,SEGPTR,WORD);
 INT        _lwrite(HFILE,LPCSTR,WORD);
 
diff --git a/include/wine.h b/include/wine.h
deleted file mode 100644
index bcfffca..0000000
--- a/include/wine.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef  __WINE_WINE_H
-#define  __WINE_WINE_H
-
-#ifdef i386
-extern int runtime_cpu (void);
-#else
-static inline int runtime_cpu(void) { return 3; }
-#endif
-
-#ifndef WINELIB
-
-#ifdef linux
-typedef struct
-{
-	unsigned short sc_gs, __gsh;
-	unsigned short sc_fs, __fsh;
-	unsigned short sc_es, __esh;
-	unsigned short sc_ds, __dsh;
-	unsigned long sc_edi;
-	unsigned long sc_esi;
-	unsigned long sc_ebp;
-	unsigned long sc_esp;
-	unsigned long sc_ebx;
-	unsigned long sc_edx;
-	unsigned long sc_ecx;
-	unsigned long sc_eax;
-	unsigned long sc_trapno;
-	unsigned long sc_err;
-	unsigned long sc_eip;
-	unsigned short sc_cs, __csh;
-	unsigned long sc_eflags;
-	unsigned long esp_at_signal;
-	unsigned short sc_ss, __ssh;
-	unsigned long i387;
-	unsigned long oldmask;
-	unsigned long cr2;
-} SIGCONTEXT;
-#define WINE_DATA_SELECTOR 0x2b
-#define WINE_CODE_SELECTOR 0x23
-#endif  /* linux */
-
-#ifdef __NetBSD__
-#include <signal.h>
-typedef struct sigcontext SIGCONTEXT;
-#define WINE_DATA_SELECTOR 0x1f
-#define WINE_CODE_SELECTOR 0x17
-#endif  /* NetBSD */
-
-#if defined(__svr4__) || defined(_SCO_DS)
-#include <signal.h>
-#ifdef _SCO_DS
-#include <sys/regset.h>
-#endif
-#include <sys/ucontext.h>
-typedef struct ucontext SIGCONTEXT;
-#define WINE_DATA_SELECTOR 0x1f
-#define WINE_CODE_SELECTOR 0x17
-#endif  /* svr4 || SCO_DS */
-
-#ifdef __FreeBSD__
-#include <signal.h>
-typedef struct sigcontext SIGCONTEXT;
-#define WINE_DATA_SELECTOR 0x27
-#define WINE_CODE_SELECTOR 0x1f
-#endif  /* FreeBSD */
-
-#else  /* WINELIB */
-
-typedef void SIGCONTEXT;
-#define WINE_DATA_SELECTOR 0x00
-#define WINE_CODE_SELECTOR 0x00
-
-#endif  /* WINELIB */
-
-#endif /* __WINE_WINE_H */
diff --git a/include/winproc.h b/include/winproc.h
index fd9b22a..f5ce4f5 100644
--- a/include/winproc.h
+++ b/include/winproc.h
@@ -26,4 +26,33 @@
 extern void WINPROC_FreeProc( HWINDOWPROC proc );
 extern WINDOWPROCTYPE WINPROC_GetProcType( HWINDOWPROC proc );
 
+extern INT32 WINPROC_MapMsg32ATo32W( UINT32 msg, WPARAM32 wParam,
+                                     LPARAM *plparam );
+extern INT32 WINPROC_MapMsg32WTo32A( UINT32 msg, WPARAM32 wParam,
+                                     LPARAM *plparam );
+extern INT32 WINPROC_MapMsg16To32A( UINT16 msg16, WPARAM16 wParam16,
+                                    UINT32 *pmsg32, WPARAM32 *pwparam32,
+                                    LPARAM *plparam );
+extern INT32 WINPROC_MapMsg16To32W( UINT16 msg16, WPARAM16 wParam16,
+                                    UINT32 *pmsg32, WPARAM32 *pwparam32,
+                                    LPARAM *plparam );
+extern INT32 WINPROC_MapMsg32ATo16( UINT32 msg32, WPARAM32 wParam32,
+                                    UINT16 *pmsg16, WPARAM16 *pwparam16,
+                                    LPARAM *plparam );
+extern INT32 WINPROC_MapMsg32WTo16( UINT32 msg32, WPARAM32 wParam32,
+                                    UINT16 *pmsg16, WPARAM16 *pwparam16,
+                                    LPARAM *plparam );
+extern void WINPROC_UnmapMsg32ATo32W( UINT32 msg, WPARAM32 wParam,
+                                      LPARAM lParam );
+extern void WINPROC_UnmapMsg32WTo32A( UINT32 msg, WPARAM32 wParam,
+                                      LPARAM lParam );
+extern void WINPROC_UnmapMsg16To32A( UINT32 msg, WPARAM32 wParam,
+                                     LPARAM lParam );
+extern void WINPROC_UnmapMsg16To32W( UINT32 msg, WPARAM32 wParam,
+                                     LPARAM lParam );
+extern void WINPROC_UnmapMsg32ATo16( UINT16 msg, WPARAM16 wParam,
+                                     LPARAM lParam );
+extern void WINPROC_UnmapMsg32WTo16( UINT16 msg, WPARAM16 wParam,
+                                     LPARAM lParam );
+
 #endif  /* __WINE_WINPROC_H */
diff --git a/include/wintypes.h b/include/wintypes.h
index 4f6c53e..9fe61f2 100644
--- a/include/wintypes.h
+++ b/include/wintypes.h
@@ -151,23 +151,17 @@
 
 /* Callback function pointers types for Win16. */
 
-#ifdef WINELIB
 typedef LRESULT (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
 typedef LRESULT (*FARPROC16)();
+typedef VOID (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD);
 typedef LRESULT (*WNDENUMPROC16)(HWND16,LPARAM);
 typedef LRESULT (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
-#else
-/* Function pointers are SEGPTR in Win16 */
-typedef SEGPTR DLGPROC16;
-typedef SEGPTR FARPROC16;
-typedef SEGPTR WNDENUMPROC16;
-typedef SEGPTR WNDPROC16;
-#endif
 
 /* Callback function pointers types for Win32. */
 
 typedef LRESULT (*DLGPROC32)(HWND32,UINT32,WPARAM32,LPARAM);
 typedef LRESULT (*FARPROC32)();
+typedef VOID (*TIMERPROC32)(HWND32,UINT32,UINT32,DWORD);
 typedef LRESULT (*WNDENUMPROC32)(HWND32,LPARAM);
 typedef LRESULT (*WNDPROC32)(HWND32,UINT32,WPARAM32,LPARAM);