Release 970112

Sat Jan 11 18:17:59 1997  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [controls/menu.c]
	Updated to new Win32 types.

	* [controls/listbox.c]
	Fixed Winfile extended selection bug.

	* [files/directory.c]
	Changed DIR_SearchPath to return both long and short file names.

	* [files/dos_fs.c]
	Implemented VFAT ioctl to retrieve the original short filenames
	from a VFAT filesystem (Linux only for now).
	Replaced DOSFS_GetUnixFileName()/DOSFS_GetDosTrueName() by
	DOS_GetFullName().
	Properly implemented GetShortPathName() and GetFullPathName().
	Made all functions re-entrant.

	* [files/file.c] [misc/main.c]
	Replaced -allowreadonly option by -failreadonly. The default is
	now to report success when opening a read-only file for writing.

	* [objects/metafile.c]
	Fixed bug in DIB bitmaps pointer calculation.

	* [scheduler/process.c]
	Implemented environment strings and Get/SetStdHandle with process
 	environment block.

	* [tools/build.c]
	Rewrote BuildContext32() to avoid instructions that may not be
	supported by all assemblers.
	
Fri Jan 10 17:11:09 1997  David Faure  <david.faure@ifhamy.insa-lyon.fr>

	* [windows/event.c]
	Created table keyc2vkey, which associate a vkey(+extended bit) to
	any keycode. Changed EVENT_event_to_vkey to use this table to
	return the correct vkey. Changed EVENT_ToAscii to get the keycode
	from this table too.  Assigned OEM specific vkeys arbitrarily.

Fri Jan 10 09:26:17 1997  John Harvey <john@division.co.uk>

	* [misc/winsock.c] [misc/winsoc_async.c]
        Fixed svr4 header files.
        Changed bzero() to memset().

	* [tools/fnt2bdf.c]
        Removed bcopy() and used memcpy() instead.

	* [debugger/msc.c]
        Include string.h instead of strings.h

	* [debugger/stabs.c]
        Include string.h instead of strings.h.
        Define __ELF__ for svr4 systems.

	* [loader/signal.c]
        Use wait() instead of wait4() which doesnt exist on Unixware.

	* [memory/global.c]
        Use sysconf() instead of getpagesize() for svr4 systems.

Thu Jan  9 21:07:20 1997  Robert Pouliot <krynos@clic.net>

	* [Make.rules.in] [Makefile.in] [make_os2.sh] [rc/Makefile.in]
	  [tools/Makefile.in] [documentation/wine_os2.txt]
	Patches for OS/2 support. Note that it doesn't compile yet.

Tue Jan  7 20:03:53 1997  Eric Youngdale <eric@sub2304.jic.com>

	* [debugger/*]
	Many more debugger improvements (see debugger/README for details).

Tue Jan  7 15:12:21 1997  Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>

	* [windows/graphics.c] [objects/text.c] [graphics/x11drv/*]
	  [graphics/metafiledrv/*]
	Moved some device dependent code into the resp. subdirs.

	* [include/gdi.h] [include/metafiledrv.h] [include/x11drv.h]
	Prototypes added,
	DC_FUNCTIONS: GetPixel added, some unnecessary functions removed.

	* [objects/region.c]
	CreatePolyPolygonRgn32 added.

	* [files/dos_fs.c]
	QueryDosDevice added.

	* [misc/lstr.c]
	FormatMessage: broken heap management fixed.

	* [scheduler/process.c] [scheduler/thread.c]
	Get/SetThreadPriority/PriorityClass added.

Mon Jan  6 21:55:30 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>

	* [misc/keyboard.c]
	ToAscii : Use EVENT_ToAscii instead.

	* [windows/event.c]
	keypad_key : Do not convert XK_Mode_switch to VK_MENU; recognize
	keypad cursor keys.
	EVENT_event_to_vkey : New function, to transform a X keycode
	into a MSwin vkey + extended bit.
	EVENT_ToAscii : New function, to transform a vkey + extended bit
	(+ key state table) into ascii char(s), using XLookupString, and
	recognizing dead chars.
	EVENT_key : Transform AltGr into Ctrl+Alt sequence; call
	EVENT_event_to_vkey for keycode to vkey conversion; fixed
	previous, context and extended bits.

	* [windows/keyboard.c]
	Include stddebug.h, to get -debugmsg messages.
	GetKeyState : Handle VK_MBUTTON case.
	GetKeyboardState, SetKeyboardState : Debugging messages added.

	* [windows/message.c]
	TranslateMessage : Handle dead chars.

Mon Jan  6 20:10:11 1997  Dominik Strasser  <bm424953@muenchen.org>

	* [if1632/crtdll.spec] [misc/crtdll.c]
	C++ functions new/delete/set_new_handler implemented.

Mon Jan  6 15:48:15 1997 Frans van Dorsselaer <dorssel@rulhmpc49.LeidenUniv.nl>

	* [controls/edit.c] [include/windows.h]
	Moved the edit control to 32 bits.
	Included new (win95) message definitions in windows.h
	Implemented EM_SCROLLCARET, EM_SETMARGINS, EM_GETMARGINS,
	EM_GETLIMITTEXT, EM_POSFROMCHAR, EM_CHARFROMPOS.
	Broke EM_SETWORDBREAKPROC (internal wordwrap still works).
	Fixed some bugs, introduced a couple of others.
	Text buffer is now initially in 32-bit heap.

	* [controls/EDIT.TODO] [controls/combo.c] [controls/widgets.c]
	  [if1632/wprocs.spec] [library/miscstubs.c] [windows/defdlg.c]
	  [misc/commdlg.c]
	Updated to work with 32-bit edit control.

Sat Jan  4 22:07:27 1997  O.Flebbe  <O.Flebbe@science-computing.uni-tuebingen.de>

	* [loader/pe_image.c]
	Use mmap rather then malloc. Better workaround for clean
	segments.
diff --git a/include/accel.h b/include/accel.h
index b8e5690..7c3ad95 100644
--- a/include/accel.h
+++ b/include/accel.h
@@ -5,6 +5,9 @@
  *
  */
 
+#ifndef __WINE_ACCEL_H
+#define __WINE_ACCEL_H
+
 #include "windows.h"
 
 typedef struct {
@@ -23,3 +26,5 @@
 #define CONTROL_ACCEL	0x08
 #define ALT_ACCEL       0x10
 #define SYSTEM_ACCEL	0x80
+
+#endif  /* __WINE_ACCEL_H */
diff --git a/include/atom.h b/include/atom.h
index 3c6f057..3fcc757 100644
--- a/include/atom.h
+++ b/include/atom.h
@@ -4,8 +4,8 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#ifndef ATOM_H
-#define ATOM_H
+#ifndef __WINE_ATOM_H
+#define __WINE_ATOM_H
 
 #include "windows.h"
 
@@ -25,4 +25,4 @@
     HANDLE16    entries[1];
 } ATOMTABLE;
 
-#endif  /* ATOM_H */
+#endif  /* __WINE_ATOM_H */
diff --git a/include/button.h b/include/button.h
index ae1b6fe..b0c7a1f 100644
--- a/include/button.h
+++ b/include/button.h
@@ -4,8 +4,8 @@
  * Copyright 1994 Alexandre Julliard
  */
 
-#ifndef BUTTON_H
-#define BUTTON_H
+#ifndef __WINE_BUTTON_H
+#define __WINE_BUTTON_H
 
 #include "windows.h"
 
@@ -31,4 +31,4 @@
 extern LRESULT ButtonWndProc( HWND32 hWnd, UINT32 uMsg,
                               WPARAM32 wParam, LPARAM lParam );
 
-#endif  /* BUTTON_H */
+#endif  /* __WINE_BUTTON_H */
diff --git a/include/class.h b/include/class.h
index e02bec7..faa94c7 100644
--- a/include/class.h
+++ b/include/class.h
@@ -4,8 +4,8 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#ifndef CLASS_H
-#define CLASS_H
+#ifndef __WINE_CLASS_H
+#define __WINE_CLASS_H
 
 #include "windows.h"
 #include "winproc.h"
@@ -40,4 +40,4 @@
 extern void CLASS_FreeModuleClasses( HMODULE16 hModule );
 extern CLASS *CLASS_FindClassByAtom( ATOM atom, HINSTANCE16 hinstance );
 
-#endif  /* CLASS_H */
+#endif  /* __WINE_CLASS_H */
diff --git a/include/comm.h b/include/comm.h
index 0d3df44..5f2b0af 100644
--- a/include/comm.h
+++ b/include/comm.h
@@ -1,5 +1,5 @@
-#ifndef COMM_H
-#define COMM_H
+#ifndef __WINE_COMM_H
+#define __WINE_COMM_H
 
 #define MAX_PORTS   16
 
@@ -14,4 +14,4 @@
 
 extern void COMM_Init(void);
 
-#endif  /* COMM_H */
+#endif  /* __WINE_COMM_H */
diff --git a/include/crtdll.h b/include/crtdll.h
index beb87cc..916e9b4 100644
--- a/include/crtdll.h
+++ b/include/crtdll.h
@@ -1,5 +1,5 @@
-#ifndef _WINE_CRTDLL_H
-#define _WINE_CRTDLL_H
+#ifndef __WINE_CRTDLL_H
+#define __WINE_CRTDLL_H
 
 #define CRTDLL_LC_ALL		0
 #define CRTDLL_LC_COLLATE	1
diff --git a/include/dce.h b/include/dce.h
index b21ec2a..368174c 100644
--- a/include/dce.h
+++ b/include/dce.h
@@ -4,8 +4,8 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#ifndef DCE_H
-#define DCE_H
+#ifndef __WINE_DCE_H
+#define __WINE_DCE_H
 
 #include "windows.h"
 #include "win.h"
@@ -50,4 +50,4 @@
 extern void  DCE_FreeDCE( DCE *dce );
 extern INT16 DCE_ExcludeRgn( HDC32, WND*, HRGN32 );
 
-#endif  /* DCE_H */
+#endif  /* __WINE_DCE_H */
diff --git a/include/debugger.h b/include/debugger.h
index 5a69215..13779d0 100644
--- a/include/debugger.h
+++ b/include/debugger.h
@@ -14,17 +14,58 @@
 
 #define STEP_FLAG 0x100 /* single step flag */
 
+#define SYM_FUNC	 0x0
+#define SYM_DATA	 0x1
+#define SYM_WIN32	 0x2
+#define SYM_WINE	 0x4
+#define SYM_INVALID	 0x8
+#define SYM_TRAMPOLINE	 0x10
+#define SYM_STEP_THROUGH 0x20
+
+enum	debug_type {BASIC, CONST, POINTER, ARRAY, STRUCT, ENUM, TYPEDEF, FUNC, BITFIELD};
+
+
+/*
+ * Return values for DEBUG_CheckLinenoStatus.  Used to determine
+ * what to do when the 'step' command is given.
+ */
+#define FUNC_HAS_NO_LINES	(0)
+#define NOT_ON_LINENUMBER	(1)
+#define AT_LINENUMBER		(2)
+#define FUNC_IS_TRAMPOLINE	(3)
+
+/*
+ * For constants generated by the parser, we use this datatype
+ */
+extern struct datatype * DEBUG_TypeInt;
+extern struct datatype * DEBUG_TypeIntConst;
+extern struct datatype * DEBUG_TypeUSInt;
+extern struct datatype * DEBUG_TypeString;
+
 typedef struct
 {
+    struct datatype * type;
     DWORD seg;  /* 0xffffffff means current default segment (cs or ds) */
     DWORD off;
 } DBG_ADDR;
 
+struct list_id
+{
+    char * sourcefile;
+    int    line;
+};
+
 struct  wine_lines {
   unsigned long		line_number;
   DBG_ADDR		pc_offset;
 };
 
+struct symbol_info
+{
+  struct name_hash * sym;
+  struct list_id     list;
+};
+
 typedef struct wine_lines WineLineNo;
 
 /*
@@ -34,30 +75,15 @@
  */
 struct  wine_locals {
   unsigned int		regno:8;	/* For register symbols */
-  unsigned int		offset:24;	/* offset from esp/ebp to symbol */
+  signed int		offset:24;	/* offset from esp/ebp to symbol */
   unsigned int		pc_start;	/* For RBRAC/LBRAC */
   unsigned int		pc_end;		/* For RBRAC/LBRAC */
   char		      * name;		/* Name of symbol */
+  struct datatype     * type;		/* Datatype of symbol */
 };
 
 typedef struct wine_locals WineLocals;
 
-struct name_hash
-{
-    struct name_hash * next;
-    char *             name;
-    char *             sourcefile;
-
-    int		       n_locals;
-    int		       locals_alloc;
-    WineLocals       * local_vars;
-  
-    int		       n_lines;
-    int		       lines_alloc;
-    WineLineNo       * linetab;
-
-    DBG_ADDR           addr;
-};
 
 #define DBG_FIX_ADDR_SEG(addr,default) \
     { if ((addr)->seg == 0xffffffff) (addr)->seg = (default); \
@@ -97,8 +123,16 @@
 enum exec_mode
 {
     EXEC_CONT,       /* Continuous execution */
-    EXEC_STEP_OVER,  /* Stepping over a call */
-    EXEC_STEP_INSTR  /* Single-stepping an instruction */
+    EXEC_STEP_OVER,  /* Stepping over a call to next source line */
+    EXEC_STEP_INSTR,  /* Step to next source line, stepping in if needed */
+    EXEC_STEPI_OVER,  /* Stepping over a call */
+    EXEC_STEPI_INSTR,  /* Single-stepping an instruction */
+    EXEC_FINISH,		/* Step until we exit current frame */
+    EXEC_STEP_OVER_TRAMPOLINE  /* Step over trampoline.  Requires that
+				* we dig the real return value off the stack
+				* and set breakpoint there - not at the
+				* instr just after the call.
+				*/
 };
 
 extern CONTEXT DEBUG_context;  /* debugger/registers.c */
@@ -112,40 +146,91 @@
 extern void DEBUG_EnableBreakpoint( int num, BOOL32 enable );
 extern void DEBUG_InfoBreakpoints(void);
 extern BOOL32 DEBUG_HandleTrap(void);
-extern BOOL32 DEBUG_ShouldContinue( enum exec_mode mode );
-extern void DEBUG_RestartExecution( enum exec_mode mode, int instr_len );
+extern BOOL32 DEBUG_ShouldContinue( enum exec_mode mode, int * count );
+extern enum exec_mode DEBUG_RestartExecution( enum exec_mode mode, int count );
+extern BOOL32 DEBUG_IsFctReturn(void);
 
   /* debugger/db_disasm.c */
-extern void DEBUG_Disasm( DBG_ADDR *addr );
+extern void DEBUG_Disasm( DBG_ADDR *addr, int display );
+
+  /* debugger/expr.c */
+extern void DEBUG_FreeExprMem(void);
+struct expr * DEBUG_RegisterExpr(enum debug_regs);
+struct expr * DEBUG_SymbolExpr(const char * name);
+struct expr * DEBUG_ConstExpr(int val);
+struct expr * DEBUG_StringExpr(const char * str);
+struct expr * DEBUG_SegAddr(struct expr *, struct expr *);
+struct expr * DEBUG_USConstExpr(unsigned int val);
+struct expr * DEBUG_BinopExpr(int oper, struct expr *, struct expr *);
+struct expr * DEBUG_UnopExpr(int oper, struct expr *);
+struct expr * DEBUG_StructPExpr(struct expr *, const char * element);
+struct expr * DEBUG_StructExpr(struct expr *, const char * element);
+struct expr * DEBUG_ArrayExpr(struct expr *, struct expr * index);
+struct expr * DEBUG_CallExpr(const char *, int nargs, ...);
+extern   int  DEBUG_ExprValue(DBG_ADDR *, unsigned int *);
+DBG_ADDR DEBUG_EvalExpr(struct expr *);
+extern int DEBUG_AddDisplay(struct expr * exp);
+extern int DEBUG_DelDisplay(int displaynum);
+extern struct expr * DEBUG_CloneExpr(struct expr * exp);
+extern int DEBUG_FreeExpr(struct expr * exp);
+extern int DEBUG_DisplayExpr(struct expr * exp);
+
+  /* more debugger/break.c */
+extern int DEBUG_AddBPCondition(int bpnum, struct expr * exp);
+
+  /* debugger/display.c */
+extern int DEBUG_DoDisplay(void);
+extern int DEBUG_AddDisplay(struct expr * exp);
+extern int DEBUG_DoDisplay(void);
+extern int DEBUG_DelDisplay(int displaynum);
+extern int DEBUG_InfoDisplay(void);
 
   /* debugger/hash.c */
 extern struct name_hash * DEBUG_AddSymbol( const char *name, 
 					   const DBG_ADDR *addr,
+					   const char * sourcefile,
+					   int flags);
+extern struct name_hash * DEBUG_AddInvSymbol( const char *name, 
+					   const DBG_ADDR *addr,
 					   const char * sourcefile);
 extern BOOL32 DEBUG_GetSymbolValue( const char * name, const int lineno,
-				    DBG_ADDR *addr );
+				    DBG_ADDR *addr, int );
 extern BOOL32 DEBUG_SetSymbolValue( const char * name, const DBG_ADDR *addr );
 extern const char * DEBUG_FindNearestSymbol( const DBG_ADDR *addr, int flag,
 					     struct name_hash ** rtn,
-					     unsigned int ebp);
+					     unsigned int ebp,
+					     struct list_id * source);
 extern void DEBUG_ReadSymbolTable( const char * filename );
 extern void DEBUG_LoadEntryPoints(void);
 extern void DEBUG_AddLineNumber( struct name_hash * func, int line_num, 
 		     unsigned long offset );
-extern void DEBUG_AddLocal( struct name_hash * func, int regno, 
+extern struct wine_locals *
+            DEBUG_AddLocal( struct name_hash * func, int regno, 
 			    int offset,
 			    int pc_start,
 			    int pc_end,
 			    char * name);
+extern int DEBUG_CheckLinenoStatus(const DBG_ADDR *addr);
+extern void DEBUG_GetFuncInfo(struct list_id * ret, const char * file, 
+			      const char * func);
+extern int DEBUG_SetSymbolSize(struct name_hash * sym, unsigned int len);
+extern int DEBUG_SetSymbolBPOff(struct name_hash * sym, unsigned int len);
+extern int DEBUG_GetSymbolAddr(struct name_hash * sym, DBG_ADDR * addr);
+extern int DEBUG_cmp_sym(const void * p1, const void * p2);
+extern BOOL32 DEBUG_GetLineNumberAddr( struct name_hash *, const int lineno, 
+				DBG_ADDR *addr, int bp_flag );
 
+extern int DEBUG_SetLocalSymbolType(struct wine_locals * sym, 
+				    struct datatype * type);
+BOOL32 DEBUG_Normalize(struct name_hash * nh );
 
   /* debugger/info.c */
-extern void DEBUG_Print( const DBG_ADDR *addr, int count, char format );
-extern struct name_hash * DEBUG_PrintAddress( const DBG_ADDR *addr, 
+extern void DEBUG_PrintBasic( const DBG_ADDR *addr, int count, char format );
+extern struct symbol_info DEBUG_PrintAddress( const DBG_ADDR *addr, 
 					      int addrlen, int flag );
 extern void DEBUG_Help(void);
-extern void DEBUG_List( DBG_ADDR *addr, int count );
-extern struct name_hash * DEBUG_PrintAddressAndArgs( const DBG_ADDR *addr, 
+extern void DEBUG_HelpInfo(void);
+extern struct symbol_info DEBUG_PrintAddressAndArgs( const DBG_ADDR *addr, 
 						     int addrlen, 
 						     unsigned int ebp, 
 						     int flag );
@@ -164,13 +249,17 @@
 extern BOOL32 DEBUG_ValidateRegisters(void);
 extern void DEBUG_SetSigContext( const SIGCONTEXT *sigcontext );
 extern void DEBUG_GetSigContext( SIGCONTEXT *sigcontext );
+extern int DEBUG_PrintRegister(enum debug_regs reg);
 
   /* debugger/stack.c */
 extern void DEBUG_InfoStack(void);
 extern void DEBUG_BackTrace(void);
-extern BOOL32 DEBUG_GetStackSymbolValue( const char * name, DBG_ADDR *addr );
+extern void DEBUG_SilentBackTrace(void);
 extern int  DEBUG_InfoLocals(void);
 extern int  DEBUG_SetFrame(int newframe);
+extern int  DEBUG_GetCurrentFrame(struct name_hash ** name, 
+				  unsigned int * eip,
+				  unsigned int * ebp);
 
   /* debugger/stabs.c */
 extern int DEBUG_ReadExecutableDbgInfo(void);
@@ -179,6 +268,42 @@
 extern int DEBUG_RegisterDebugInfo(int, struct pe_data *pe,
 				   int, unsigned long, unsigned long);
 extern int DEBUG_ProcessDeferredDebug(void);
+extern int DEBUG_RegisterELFDebugInfo(int load_addr, u_long size, char * name);
+extern void DEBUG_InfoShare(void);
+extern void DEBUG_InitCVDataTypes(void);
+
+  /* debugger/types.c */
+extern void DEBUG_InitTypes(void);
+extern struct datatype * DEBUG_NewDataType(enum debug_type xtype, 
+					   const char * typename);
+extern unsigned int 
+DEBUG_TypeDerefPointer(DBG_ADDR * addr, struct datatype ** newtype);
+extern int DEBUG_AddStructElement(struct datatype * dt, 
+				  char * name, struct datatype * type, 
+				  int offset, int size);
+extern int DEBUG_SetStructSize(struct datatype * dt, int size);
+extern int DEBUG_SetPointerType(struct datatype * dt, struct datatype * dt2);
+extern int DEBUG_SetArrayParams(struct datatype * dt, int min, int max,
+				struct datatype * dt2);
+extern void DEBUG_Print( const DBG_ADDR *addr, int count, char format, int level );
+extern unsigned int DEBUG_FindStructElement(DBG_ADDR * addr, 
+					    const char * ele_name, int * tmpbuf);
+extern struct datatype * DEBUG_GetPointerType(struct datatype * dt);
+extern int DEBUG_GetObjectSize(struct datatype * dt);
+extern unsigned int DEBUG_ArrayIndex(DBG_ADDR * addr, DBG_ADDR * result, int index);
+extern struct datatype * DEBUG_FindOrMakePointerType(struct datatype * reftype);
+extern long long int DEBUG_GetExprValue(DBG_ADDR * addr, char ** format);
+extern int DEBUG_SetBitfieldParams(struct datatype * dt, int offset, 
+				   int nbits, struct datatype * dt2);
+extern int DEBUG_CopyFieldlist(struct datatype * dt, struct datatype * dt2);
+
+
+  /* debugger/source.c */
+extern void DEBUG_ShowDir(void);
+extern void DEBUG_AddPath(const char * path);
+extern void DEBUG_List(struct list_id * line1, struct list_id * line2,  
+		       int delta);
+extern void DEBUG_NukePath(void);
 
   /* debugger/dbg.y */
 extern void DEBUG_EnterDebugger(void);
diff --git a/include/desktop.h b/include/desktop.h
index 44ced36..129f96e 100644
--- a/include/desktop.h
+++ b/include/desktop.h
@@ -4,8 +4,8 @@
  * Copyright 1994 Alexandre Julliard
  */
 
-#ifndef DESKTOP_H
-#define DESKTOP_H
+#ifndef __WINE_DESKTOP_H
+#define __WINE_DESKTOP_H
 
 #include "windows.h"
 
@@ -21,4 +21,4 @@
 extern LRESULT DesktopWndProc( HWND32 hwnd, UINT32 message,
                                WPARAM32 wParam, LPARAM lParam );
 
-#endif  /* DESKTOP_H */
+#endif  /* __WINE_DESKTOP_H */
diff --git a/include/dialog.h b/include/dialog.h
index b9cb5f4..a9db72e 100644
--- a/include/dialog.h
+++ b/include/dialog.h
@@ -4,8 +4,8 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#ifndef DIALOG_H
-#define DIALOG_H
+#ifndef __WINE_DIALOG_H
+#define __WINE_DIALOG_H
 
 #include "windows.h"
 #include "winproc.h"
@@ -44,4 +44,4 @@
                                      WINDOWPROCTYPE procType );
 extern INT32 DIALOG_DoDialogBox( HWND32 hwnd, HWND32 owner );
 
-#endif  /* DIALOG_H */
+#endif  /* __WINE_DIALOG_H */
diff --git a/include/dlgs.h b/include/dlgs.h
index f7116ac..c77251f 100644
--- a/include/dlgs.h
+++ b/include/dlgs.h
@@ -2,8 +2,8 @@
 * dlgs.h -      Common dialog's dialog control ID numbers                     *
 ******************************************************************************/
 
-#ifndef DLGS_H
-#define DLGS_H
+#ifndef __WINE_DLGS_H
+#define __WINE_DLGS_H
 
 #define ctlFirst    0x0400
 #define ctlLast     0x04ff
@@ -183,4 +183,4 @@
 #define FORMATDLGORD31   1543
 #define FORMATDLGORD30   1544
 
-#endif  /* #ifdef DLGS_H */
+#endif  /* #ifdef __WINE_DLGS_H */
diff --git a/include/dos_fs.h b/include/dos_fs.h
deleted file mode 100644
index ec7a717..0000000
--- a/include/dos_fs.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * DOS file system declarations
- *
- * Copyright 1996 Alexandre Julliard
- */
-
-#ifndef __WINE_DOS_FS_H
-#define __WINE_DOS_FS_H
-
-#include <time.h>
-#include "windows.h"
-
-#define MAX_PATHNAME_LEN   1024
-
-#define IS_END_OF_NAME(ch)  (!(ch) || ((ch) == '/') || ((ch) == '\\'))
-
-extern void DOSFS_ToDosDateTime( time_t unixtime, WORD *pDate, WORD *pTime );
-extern time_t DOSFS_DosDateTimeToUnixTime(WORD,WORD);
-extern const char *DOSFS_ToDosFCBFormat( const char *name );
-extern const char *DOSFS_ToDosDTAFormat( const char *name );
-extern const char *DOSFS_IsDevice( const char *name );
-extern BOOL32 DOSFS_FindUnixName( const char *path, const char *name,
-                                  char *buffer, int maxlen,
-                                  UINT32 drive_flags );
-extern const char * DOSFS_GetUnixFileName( const char * name, int check_last );
-extern const char * DOSFS_GetDosTrueName( const char *name, int unix_format );
-extern int DOSFS_GetDosFileName( const char *name, char *buffer, int len );
-extern time_t DOSFS_FileTimeToUnixTime( const FILETIME *ft );
-extern void DOSFS_UnixTimeToFileTime(time_t unixtime,LPFILETIME ft);
-extern int DOSFS_FindNext( const char *path, const char *short_mask,
-                           const char *long_mask, int drive, BYTE attr,
-                           int skip, WIN32_FIND_DATA32A *entry );
-
-#endif /* __WINE_DOS_FS_H */
diff --git a/include/driver.h b/include/driver.h
index a033802..16ee0e2 100644
--- a/include/driver.h
+++ b/include/driver.h
@@ -2,6 +2,9 @@
  * Drivers definitions
  */
 
+#ifndef __WINE_DRIVER_H
+#define __WINE_DRIVER_H
+
 #define DRV_LOAD                0x0001
 #define DRV_ENABLE              0x0002
 #define DRV_OPEN                0x0003
@@ -64,5 +67,4 @@
 HDRVR16 GetNextDriver(HDRVR16, DWORD);
 BOOL16 GetDriverInfo(HDRVR16, DRIVERINFOSTRUCT16 *);
 
-
-
+#endif  /* __WINE_DRIVER_H */
diff --git a/include/file.h b/include/file.h
index 4856df6..a2bd376 100644
--- a/include/file.h
+++ b/include/file.h
@@ -7,9 +7,23 @@
 #ifndef __WINE_FILE_H
 #define __WINE_FILE_H
 
+#include <time.h>
 #include "windows.h"
 #include "handle32.h"
 
+#define MAX_PATHNAME_LEN   1024
+
+/* Definition of a full DOS file name */
+typedef struct
+{
+    char  long_name[MAX_PATHNAME_LEN];  /* Long pathname in Unix format */
+    char  short_name[MAX_PATHNAME_LEN]; /* Short pathname in DOS 8.3 format */
+    int   drive;
+} DOS_FULL_NAME;
+
+#define IS_END_OF_NAME(ch)  (!(ch) || ((ch) == '/') || ((ch) == '\\'))
+
+
 /* files/file.c */
 extern void FILE_Destroy( K32OBJ *ptr );
 extern void FILE_SetDosError(void);
@@ -29,7 +43,21 @@
 extern UINT32 DIR_GetDosPath( INT32 element, LPSTR path, UINT32 count );
 extern UINT32 DIR_GetUnixPath( INT32 element, LPSTR path, UINT32 count );
 extern DWORD DIR_SearchPath( LPCSTR path, LPCSTR name, LPCSTR ext,
-                             DWORD buflen, LPSTR buffer, LPSTR *lastpart,
-                             BOOL32 win32 );
+                             DOS_FULL_NAME *full_name, BOOL32 win32 );
+
+/* files/dos_fs.c */
+extern void DOSFS_UnixTimeToFileTime( time_t unixtime, LPFILETIME ft,
+                                      DWORD remainder );
+extern time_t DOSFS_FileTimeToUnixTime( const FILETIME *ft, DWORD *remainder );
+extern BOOL32 DOSFS_ToDosFCBFormat( LPCSTR name, LPSTR buffer );
+extern const char *DOSFS_IsDevice( const char *name );
+extern BOOL32 DOSFS_FindUnixName( LPCSTR path, LPCSTR name, LPSTR long_buf,
+                                  INT32 long_len, LPSTR short_buf,
+                                  BOOL32 ignore_case );
+extern BOOL32 DOSFS_GetFullName( LPCSTR name, BOOL32 check_last,
+                                 DOS_FULL_NAME *full );
+extern int DOSFS_FindNext( const char *path, const char *short_mask,
+                           const char *long_mask, int drive, BYTE attr,
+                           int skip, WIN32_FIND_DATA32A *entry );
 
 #endif  /* __WINE_FILE_H */
diff --git a/include/gdi.h b/include/gdi.h
index b00988e..ad48849 100644
--- a/include/gdi.h
+++ b/include/gdi.h
@@ -4,8 +4,8 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#ifndef GDI_H
-#define GDI_H
+#ifndef __WINE_GDI_H
+#define __WINE_GDI_H
 
 #include "windows.h"
 #include "ldt.h"
@@ -158,14 +158,11 @@
     INT32      (*pExcludeVisRect)(DC*,INT32,INT32,INT32,INT32);
     BOOL32     (*pExtFloodFill)(DC*,INT32,INT32,COLORREF,UINT32);
     BOOL32     (*pExtTextOut)(DC*,INT32,INT32,UINT32,const RECT32*,LPCSTR,UINT32,const INT32*);
-    BOOL32     (*pFillRgn)(DC*,HRGN32,HBRUSH32);
-    BOOL32     (*pFloodFill)(DC*,INT32,INT32,COLORREF);
-    BOOL32     (*pFrameRgn)(DC*,HRGN32,HBRUSH32,INT32,INT32);
+    COLORREF   (*pGetPixel)(DC*,INT32,INT32);
     BOOL32     (*pGetTextExtentPoint)(DC*,LPCSTR,INT32,LPSIZE32);
     BOOL32     (*pGetTextMetrics)(DC*,TEXTMETRIC32A*);
     INT32      (*pIntersectClipRect)(DC*,INT32,INT32,INT32,INT32);
     INT32      (*pIntersectVisRect)(DC*,INT32,INT32,INT32,INT32);
-    BOOL32     (*pInvertRgn)(DC*,HRGN32);
     BOOL32     (*pLineTo)(DC*,INT32,INT32);
     BOOL32     (*pMoveToEx)(DC*,INT32,INT32,LPPOINT32);
     INT32      (*pOffsetClipRgn)(DC*,INT32,INT32);
@@ -208,7 +205,6 @@
     BOOL32     (*pSetWindowOrg)(DC*,INT32,INT32);
     BOOL32     (*pStretchBlt)(DC*,INT32,INT32,INT32,INT32,DC*,INT32,INT32,INT32,INT32,DWORD);
     INT32      (*pStretchDIBits)(DC*,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,LPSTR,LPBITMAPINFO,WORD,DWORD);
-    BOOL32     (*pTextOut)(DC*,INT32,INT32,LPCSTR,INT32);
 } DC_FUNCTIONS;
 
   /* DC hook codes */
@@ -299,4 +295,4 @@
 extern int screenWidth, screenHeight, screenDepth;
 extern int desktopX, desktopY;   /* misc/main.c */
 
-#endif  /* GDI_H */
+#endif  /* __WINE_GDI_H */
diff --git a/include/handle32.h b/include/handle32.h
index a589091..7699eed 100644
--- a/include/handle32.h
+++ b/include/handle32.h
@@ -43,45 +43,4 @@
 extern void K32OBJ_IncCount( K32OBJ *ptr );
 extern void K32OBJ_DecCount( K32OBJ *ptr );
 
-
-/* The _*_OBJECT structures contain information needed about each
- * particular type of handle.  This information is a combination of
- * equivalent UNIX-style handles/descriptors and general information
- * that the Win32 API might request.
- *
- * The KERNEL_OBJECT structure must be the first member of any specific
- * kernel object type's structure.
- */
-
-typedef struct {
-    unsigned long       magic;
-} KERNEL_OBJECT;
-
-
-/* Object number definitions.  These numbers are used to
- * validate the kernel object by comparison against the
- * object's 'magic' value.
-  */
-#define KERNEL_OBJECT_UNUSED    2404554046UL
-#define KERNEL_OBJECT_THREAD    (KERNEL_OBJECT_UNUSED + 1)
-#define KERNEL_OBJECT_PROCESS   (KERNEL_OBJECT_UNUSED + 2)
-#define KERNEL_OBJECT_FILE      (KERNEL_OBJECT_UNUSED + 3)
-#define KERNEL_OBJECT_SEMAPHORE (KERNEL_OBJECT_UNUSED + 4)
-#define KERNEL_OBJECT_EVENT     (KERNEL_OBJECT_UNUSED + 5)
-#define KERNEL_OBJECT_REGKEY    (KERNEL_OBJECT_UNUSED + 6)
-#define KERNEL_OBJECT_FILEMAP   (KERNEL_OBJECT_UNUSED + 7)
-#define KERNEL_OBJECT_VRANGE    (KERNEL_OBJECT_UNUSED + 8)
-#define KERNEL_OBJECT_HEAP      (KERNEL_OBJECT_UNUSED + 9)
-#define KERNEL_OBJECT_HEAPITEM  (KERNEL_OBJECT_UNUSED + 10)
-
-/* Functions for checking kernel objects.
- */
-int ValidateKernelObject(KERNEL_OBJECT *ptr);
-
-/* For now, CreateKernelObject and ReleaseKernelObject will
- * simply map to malloc() and free().
- */
-#define CreateKernelObject(size) (malloc(size))
-#define ReleaseKernelObject(ptr) (free(ptr))
-
 #endif /* __WINE_HANDLE32_H */
diff --git a/include/lzexpand.h b/include/lzexpand.h
index b368272..a026793 100644
--- a/include/lzexpand.h
+++ b/include/lzexpand.h
@@ -3,6 +3,9 @@
  * Copyright 1996 Marcus Meissner
  */
 
+#ifndef __WINE_LZEXPAND_H
+#define __WINE_LZEXPAND_H
+
 #define LZERROR_BADINHANDLE	0xFFFF	/* -1 */
 #define LZERROR_BADOUTHANDLE	0xFFFE	/* -2 */
 #define LZERROR_READ		0xFFFD	/* -3 */
@@ -11,3 +14,5 @@
 #define LZERROR_GLOBLOCK	0xFFFA	/* -6 */
 #define LZERROR_BADVALUE	0xFFF9	/* -7 */
 #define LZERROR_UNKNOWNALG	0xFFF8	/* -8 */
+
+#endif  /* __WINE_LZEXPAND_H */
diff --git a/include/mdi.h b/include/mdi.h
index 564b40a..5db75b6 100644
--- a/include/mdi.h
+++ b/include/mdi.h
@@ -6,8 +6,8 @@
  * MDI structure definitions.
  */
 
-#ifndef MDI_H
-#define MDI_H
+#ifndef __WINE_MDI_H
+#define __WINE_MDI_H
 
 #include "windows.h"
 
@@ -43,5 +43,5 @@
     HWND   	self;
 } MDICLIENTINFO;
 
-#endif /* MDI_H */
+#endif /* __WINE_MDI_H */
 
diff --git a/include/menu.h b/include/menu.h
index 4cd9318..69ef851 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -5,16 +5,14 @@
 #ifndef __WINE_MENU_H
 #define __WINE_MENU_H
 
-extern BOOL MENU_Init(void);
-extern HMENU16 MENU_GetDefSysMenu(void);
-extern void MENU_InitSysMenuPopup(HMENU16 hmenu, DWORD style, DWORD clsStyle);
-extern UINT MENU_GetMenuBarHeight( HWND hwnd, UINT menubarWidth,
-				   int orgX, int orgY );
-extern void MENU_TrackMouseMenuBar( WND* , INT16 ht, POINT16 pt );
-extern void MENU_TrackKbdMenuBar( WND*, UINT16 wParam, INT16 vkey);
-extern UINT MENU_DrawMenuBar( HDC32 hDC, LPRECT16 lprect,
-			      HWND hwnd, BOOL suppress_draw );
-extern LRESULT PopupMenuWndProc( HWND hwnd, UINT message,
-                                 WPARAM16 wParam, LPARAM lParam );
+extern BOOL32 MENU_Init(void);
+extern HMENU32 MENU_GetDefSysMenu(void);
+extern void MENU_InitSysMenuPopup(HMENU32 hmenu, DWORD style, DWORD clsStyle);
+extern UINT32 MENU_GetMenuBarHeight( HWND32 hwnd, UINT32 menubarWidth,
+                                     INT32 orgX, INT32 orgY );
+extern void MENU_TrackMouseMenuBar( WND *wnd, INT32 ht, POINT32 pt );
+extern void MENU_TrackKbdMenuBar( WND *wnd, UINT32 wParam, INT32 vkey );
+extern UINT32 MENU_DrawMenuBar( HDC32 hDC, LPRECT32 lprect,
+                                HWND32 hwnd, BOOL32 suppress_draw );
 
 #endif /* __WINE_MENU_H */
diff --git a/include/metafile.h b/include/metafile.h
index 22e0b61..b511fce 100644
--- a/include/metafile.h
+++ b/include/metafile.h
@@ -4,8 +4,8 @@
  * Copyright  David W. Metcalfe, 1994
  */
 
-#ifndef METAFILE_H
-#define METAFILE_H
+#ifndef __WINE_METAFILE_H
+#define __WINE_METAFILE_H
 
 #include "windows.h"
 
@@ -37,5 +37,5 @@
 		   short heightDest, DC *dcSrc, short xSrc, short ySrc, 
 		   short widthSrc, short heightSrc, DWORD rop);
 
-#endif   /* METAFILE_H */
+#endif   /* __WINE_METAFILE_H */
 
diff --git a/include/metafiledrv.h b/include/metafiledrv.h
index 91027a8..dfb4b92 100644
--- a/include/metafiledrv.h
+++ b/include/metafiledrv.h
@@ -43,5 +43,33 @@
                                       INT32 xDenom, INT32 yNum, INT32 yDenom );
 extern BOOL32 MFDRV_ScaleWindowExt( struct tagDC *dc, INT32 xNum, INT32 xDenom,
                                     INT32 yNum, INT32 yDenom );
+extern BOOL32 MFDRV_MoveToEx(struct tagDC *dc, INT32 x, INT32 y, LPPOINT32 pt);
+extern BOOL32 MFDRV_LineTo( struct tagDC *dc, INT32 x, INT32 y );
+extern BOOL32 MFDRV_Arc( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
+			 INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
+			 INT32 yend );
+extern BOOL32 MFDRV_Pie( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
+			 INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
+			 INT32 yend );
+extern BOOL32 MFDRV_Chord( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
+			   INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
+			   INT32 yend );
+extern BOOL32 MFDRV_Ellipse( struct tagDC *dc, INT32 left, INT32 top,
+			     INT32 right, INT32 bottom );
+extern BOOL32 MFDRV_Rectangle( struct tagDC *dc, INT32 left, INT32 top,
+			       INT32 right, INT32 bottom);
+extern BOOL32 MFDRV_RoundRect( struct tagDC *dc, INT32 left, INT32 top,
+			       INT32 right, INT32 bottom, INT32 ell_width,
+			       INT32 ell_height );
+extern COLORREF MFDRV_SetPixel( struct tagDC *dc, INT32 x, INT32 y, COLORREF color );
+extern BOOL32 MFDRV_Polyline( struct tagDC *dc, const LPPOINT32 pt,INT32 count);
+extern BOOL32 MFDRV_Polygon( struct tagDC *dc, LPPOINT32 pt, INT32 count );
+extern BOOL32 MFDRV_PolyPolygon( struct tagDC *dc, LPPOINT32 pt, LPINT32 counts,
+				 UINT32 polygons);
+extern BOOL32 MFDRV_ExtFloodFill( struct tagDC *dc, INT32 x, INT32 y,
+				  COLORREF color, UINT32 fillType );
+extern BOOL32 MFDRV_ExtTextOut( struct tagDC *dc, INT32 x, INT32 y,
+				UINT32 flags, const RECT32 *lprect, LPCSTR str,
+				UINT32 count, const INT32 *lpDx );
 
 #endif  /* __WINE_METAFILEDRV_H */
diff --git a/include/mmsystem.h b/include/mmsystem.h
index 91e7ef5..cd1c9b7 100644
--- a/include/mmsystem.h
+++ b/include/mmsystem.h
@@ -2,8 +2,8 @@
  * MMSYSTEM - Multimedia Wine Extension ... :-)
  */
 
-#ifndef MMSYSTEM_H
-#define MMSYSTEM_H
+#ifndef __WINE_MMSYSTEM_H
+#define __WINE_MMSYSTEM_H
 
 typedef LPSTR		    HPSTR;          /* a huge version of LPSTR */
 typedef LPCSTR			HPCSTR;         /* a huge version of LPCSTR */
@@ -1539,7 +1539,4 @@
 DWORD wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, 
 					DWORD dwParam1, DWORD dwParam2);
 
-#endif /* MMSYSTEM_H */
-
-
-
+#endif /* __WINE_MMSYSTEM_H */
diff --git a/include/module.h b/include/module.h
index f3a4522..3b52039 100644
--- a/include/module.h
+++ b/include/module.h
@@ -4,8 +4,8 @@
  * Copyright 1995 Alexandre Julliard
  */
 
-#ifndef _WINE_MODULE_H
-#define _WINE_MODULE_H
+#ifndef __WINE_MODULE_H
+#define __WINE_MODULE_H
 
 #include "wintypes.h"
 #include "pe_image.h"
@@ -140,4 +140,4 @@
 extern void NE_FixupPrologs( NE_MODULE *pModule );
 extern void NE_InitializeDLLs( HMODULE16 hModule );
 
-#endif  /* _WINE_MODULE_H */
+#endif  /* __WINE_MODULE_H */
diff --git a/include/msdos.h b/include/msdos.h
index 355aed7..111fbc7 100644
--- a/include/msdos.h
+++ b/include/msdos.h
@@ -1,5 +1,5 @@
-#ifndef __MSDOS_H
-#define __MSDOS_H
+#ifndef __WINE_MSDOS_H
+#define __WINE_MSDOS_H
 
 #include <dirent.h>
 #include "windows.h"
@@ -158,4 +158,4 @@
 #define EL_Serial            0x04
 #define EL_Memory            0x05
 
-#endif /* __MSDOS_H */
+#endif /* __WINE_MSDOS_H */
diff --git a/include/neexe.h b/include/neexe.h
index 7cc36e4..e425573 100644
--- a/include/neexe.h
+++ b/include/neexe.h
@@ -1,10 +1,8 @@
-/* $Id: neexe.h,v 1.4 1993/07/04 04:04:21 root Exp root $
- */
 /*
  * Copyright  Robert J. Amstadt, 1993
  */
-#ifndef NEEXE_H
-#define NEEXE_H
+#ifndef __WINE_NEEXE_H
+#define __WINE_NEEXE_H
 
 #include "wintypes.h"
 
@@ -229,4 +227,4 @@
 int  load_typeinfo  (int, struct resource_typeinfo_s *);
 int  load_nameinfo  (int, struct resource_nameinfo_s *);
 
-#endif /* NEEXE_H */
+#endif  /* __WINE_NEEXE_H */
diff --git a/include/nonclient.h b/include/nonclient.h
index e8a5980..64b8da1 100644
--- a/include/nonclient.h
+++ b/include/nonclient.h
@@ -21,5 +21,7 @@
 extern LONG NC_HandleNCLButtonDblClk( WND *pWnd, WPARAM16 wParam, LPARAM lParam);
 extern LONG NC_HandleSysCommand( HWND32 hwnd, WPARAM16 wParam, POINT16 pt );
 extern LONG NC_HandleSetCursor( HWND32 hwnd, WPARAM16 wParam, LPARAM lParam );
+extern void NC_DrawSysButton( HWND32 hwnd, HDC32 hdc, BOOL32 down );
+extern BOOL32 NC_GetSysPopupPos( WND* wndPtr, RECT32* rect );
 
 #endif /* __WINE_NONCLIENT_H */
diff --git a/include/ole2.h b/include/ole2.h
index 10a16e9..d3856d7 100644
--- a/include/ole2.h
+++ b/include/ole2.h
@@ -2,6 +2,9 @@
  *	ole2.h - Declarations for OLE2
  */
 
+#ifndef __WINE_OLE2_H
+#define __WINE_OLE2_H
+
 typedef LONG HRESULT;
 
 #define S_OK	0
@@ -10,3 +13,5 @@
 /* OLE version */
 #define rmm             23
 #define rup            639
+
+#endif  /* __WINE_OLE2_H */
diff --git a/include/options.h b/include/options.h
index 9e430fc..6fcf570 100644
--- a/include/options.h
+++ b/include/options.h
@@ -4,8 +4,8 @@
  * Copyright 1994 Alexandre Julliard
  */
 
-#ifndef OPTIONS_H
-#define OPTIONS_H
+#ifndef __WINE_OPTIONS_H
+#define __WINE_OPTIONS_H
 
 #include "wintypes.h"
 
@@ -50,7 +50,7 @@
     int    backingstore;    /* Use backing store */
     short  cmdShow;
     int    debug;
-    int    allowReadOnly;   /* Opening a read only file will succeed even
+    int    failReadOnly;    /* Opening a read only file will fail
 			       if write access is requested */
     WINE_MODE mode;         /* Start Wine in selected mode
 			       (standard/enhanced) */
@@ -70,4 +70,4 @@
 extern int PROFILE_GetWineIniInt( const char *section, const char *key_name,
                                   int def );
 
-#endif
+#endif  /* __WINE_OPTIONS_H */
diff --git a/include/peexe.h b/include/peexe.h
index a7d5474..ca46e97 100644
--- a/include/peexe.h
+++ b/include/peexe.h
@@ -253,4 +253,22 @@
 #define IMAGE_REL_BASED_HIGHADJ			4
 #define IMAGE_REL_BASED_MIPS_JMPADDR	5
 
+/*
+ * This is the structure that appears at the very start of a .DBG file.
+ */
+struct PE_DBG_FileHeader {
+    unsigned short int Signature;
+    unsigned short int Flags;
+    unsigned short int Machine;
+    unsigned short int Characteristics;
+    unsigned int       TimeDateStamp;
+    unsigned int       CheckSum;
+    unsigned int       ImageBase;
+    unsigned int       SizeOfImage;
+    unsigned int       NumberOfSections;
+    unsigned int       ExportedNamesSize;
+    unsigned int       DebugDirectorySize;
+    unsigned int       Reserved[ 3 ];
+};
+
 #endif /* __WINE_PEEXE_H */
diff --git a/include/process.h b/include/process.h
index ca5670c..2c018e7 100644
--- a/include/process.h
+++ b/include/process.h
@@ -10,6 +10,7 @@
 #include "windows.h"
 #include "winbase.h"
 #include "handle32.h"
+#include "task.h"
 
 /* Process handle entry */
 typedef struct
@@ -29,13 +30,13 @@
 typedef struct
 {
     LPSTR           environ;          /* 00 Process environment strings */
-    DWORD           unknown1;         /* 04 Unknown */
+    DWORD           env_size;         /* 04 Environment size (was: Unknown) */
     LPSTR           cmd_line;         /* 08 Command line */
     LPSTR           cur_dir;          /* 0c Current directory */
     STARTUPINFO32A *startup_info;     /* 10 Startup information */
-    HANDLE32        hStdin;            /* 14 Handle for standard input */
-    HANDLE32        hStdout;           /* 18 Handle for standard output */
-    HANDLE32        hStderr;           /* 1c Handle for standard error */
+    HANDLE32        hStdin;           /* 14 Handle for standard input */
+    HANDLE32        hStdout;          /* 18 Handle for standard output */
+    HANDLE32        hStderr;          /* 1c Handle for standard error */
     DWORD           unknown2;         /* 20 Unknown */
     DWORD           inherit_console;  /* 24 Inherit console flag */
     DWORD           break_type;       /* 28 Console events flag */
@@ -66,7 +67,7 @@
     HANDLE32         system_heap;      /* 34 System heap to allocate handles */
     HTASK32          task;             /* 38 Win16 task */
     void            *mem_map_files;    /* 3c Pointer to mem-mapped files */
-    ENVDB           *env_DB;           /* 40 Environment database */
+    ENVDB           *env_db;           /* 40 Environment database */
     HANDLE_TABLE    *handle_table;     /* 44 Handle table */
     struct _PDB32   *parent;           /* 48 Parent process */
     void            *modref_list;      /* 4c MODREF list */
@@ -91,13 +92,15 @@
     WORD             error_mode;       /* b6 Error mode */
     K32OBJ          *load_done_evt;    /* b8 Event for process loading done */
     DWORD            unknown7;         /* bc Unknown */
+    DWORD            unknown8;         /* c0 Unknown (NT) */
+    LCID             locale;           /* c4 Locale to be queried by GetThreadLocale (NT) */
 } PDB32;
 
 extern HANDLE32 PROCESS_AllocHandle( K32OBJ *ptr, DWORD flags);
 extern K32OBJ *PROCESS_GetObjPtr( HANDLE32 handle, K32OBJ_TYPE type );
 extern BOOL32 PROCESS_SetObjPtr( HANDLE32 handle, K32OBJ *ptr, DWORD flags );
 
-extern PDB32 *PROCESS_Create(void);
+extern PDB32 *PROCESS_Create( TDB *pTask );
 extern void PROCESS_Destroy( K32OBJ *ptr );
 
 extern PDB32 *pCurrentProcess;
diff --git a/include/scroll.h b/include/scroll.h
index 90411dc..7090245 100644
--- a/include/scroll.h
+++ b/include/scroll.h
@@ -5,8 +5,8 @@
  * Copyright 1994 Alexandre Julliard
  */
 
-#ifndef SCROLL_H
-#define SCROLL_H
+#ifndef __WINE_SCROLL_H
+#define __WINE_SCROLL_H
 
 #include "windows.h"
 
@@ -26,4 +26,4 @@
 extern void SCROLL_HandleScrollEvent( HWND32 hwnd, INT32 nBar,
                                       UINT32 msg, POINT32 pt );
 
-#endif  /* SCROLL_H */
+#endif  /* __WINE_SCROLL_H */
diff --git a/include/selectors.h b/include/selectors.h
index b8e1196..f807403 100644
--- a/include/selectors.h
+++ b/include/selectors.h
@@ -40,6 +40,11 @@
 #define WINE_CODE_SELECTOR 0x17
 #endif  /* svr4 || SCO_DS */
 
+#ifdef __EMX__
+#define WINE_DATA_SELECTOR 0x00 /* FIXME: This is wrong */
+#define WINE_CODE_SELECTOR 0x00
+#endif  /* OS/2 */
+
 #else  /* WINELIB */
 
 #define WINE_DATA_SELECTOR 0x00
diff --git a/include/shell.h b/include/shell.h
index 49cade42..daebe80 100644
--- a/include/shell.h
+++ b/include/shell.h
@@ -1,8 +1,6 @@
 /*
  * 				Shell Library definitions
  */
-#include "wintypes.h"
-
 #ifndef __WINE_SHELL_H
 #define __WINE_SHELL_H
 
diff --git a/include/static.h b/include/static.h
index 42ebfe0..0dd624e 100644
--- a/include/static.h
+++ b/include/static.h
@@ -4,8 +4,8 @@
  * Copyright 1994 Alexandre Julliard
  */
 
-#ifndef STATIC_H
-#define STATIC_H
+#ifndef __WINE_STATIC_H
+#define __WINE_STATIC_H
 
 #include "windows.h"
 
@@ -19,4 +19,4 @@
 
 extern LRESULT StaticWndProc(HWND hWnd,UINT uMsg,WPARAM16 wParam,LPARAM lParam );
 
-#endif  /* STATIC_H */
+#endif  /* __WINE_STATIC_H */
diff --git a/include/stress.h b/include/stress.h
index 190e675..0d1ef93 100644
--- a/include/stress.h
+++ b/include/stress.h
@@ -1,5 +1,5 @@
-#ifndef __STRESS_H
-#define __STRESS_H
+#ifndef __WINE_STRESS_H
+#define __WINE_STRESS_H
 
 #include <windows.h>
 
@@ -27,4 +27,4 @@
 }
 #endif
 
-#endif /* __STRESS_H */
+#endif /* __WINE_STRESS_H */
diff --git a/include/string32.h b/include/string32.h
index 371b5cc..6c644a2 100644
--- a/include/string32.h
+++ b/include/string32.h
@@ -5,12 +5,12 @@
  *
  */
 
-#ifndef _STRING32_H
-#define _STRING32_H
+#ifndef __WINE_STRING32_H
+#define __WINE_STRING32_H
 
 #include "wintypes.h"
 
 LPWSTR	STRING32_DupAnsiToUni(LPCSTR src);
 LPWSTR	STRING32_strdupW(LPCWSTR);
 
-#endif
+#endif  /* __WINE_STRING32_H */
diff --git a/include/struct32.h b/include/struct32.h
index c0e88ce..81a60e1 100644
--- a/include/struct32.h
+++ b/include/struct32.h
@@ -3,12 +3,6 @@
 #define __WINE__STRUCT32_H
 #include "handle32.h"
 
-void STRUCT32_RECT32to16(const RECT32*,RECT16*);
-void STRUCT32_RECT16to32(const RECT16*,RECT32*);
-void STRUCT32_POINT32to16(const POINT32*,POINT16*);
-void STRUCT32_POINT16to32(const POINT16*,POINT32*);
-void STRUCT32_SIZE16to32(const SIZE16*, SIZE32*);
-
 extern void STRUCT32_MINMAXINFO32to16( const MINMAXINFO32*, MINMAXINFO16* );
 extern void STRUCT32_MINMAXINFO16to32( const MINMAXINFO16*, MINMAXINFO32* );
 extern void STRUCT32_WINDOWPOS32to16( const WINDOWPOS32*, WINDOWPOS16* );
diff --git a/include/syscolor.h b/include/syscolor.h
index c8fa8c9..f8bd654 100644
--- a/include/syscolor.h
+++ b/include/syscolor.h
@@ -4,8 +4,8 @@
  * Copyright  Alexandre Julliard, 1994
  */
 
-#ifndef SYSCOLOR_H
-#define SYSCOLOR_H
+#ifndef __WINE_SYSCOLOR_H
+#define __WINE_SYSCOLOR_H
 
 #include "windows.h"
 
@@ -37,4 +37,4 @@
 extern void SYSCOLOR_Init(void);
 extern struct SysColorObjects sysColorObjects;
 
-#endif  /* SYSCOLOR_H */
+#endif  /* __WINE_SYSCOLOR_H */
diff --git a/include/sysmetrics.h b/include/sysmetrics.h
index 52ffa6c..4d5de2f 100644
--- a/include/sysmetrics.h
+++ b/include/sysmetrics.h
@@ -4,8 +4,8 @@
  * Copyright 1994 Alexandre Julliard
  */
 
-#ifndef SYSMETRICS_H
-#define SYSMETRICS_H
+#ifndef __WINE_SYSMETRICS_H
+#define __WINE_SYSMETRICS_H
 
 #include "windows.h"
 
@@ -77,4 +77,4 @@
 extern void SYSMETRICS_Init(void);
 extern short sysMetrics[SM_CMETRICS+1];
 
-#endif
+#endif  /* __WINE_SYSMETRICS_H */
diff --git a/include/task.h b/include/task.h
index df65c60..70f79bc 100644
--- a/include/task.h
+++ b/include/task.h
@@ -4,8 +4,8 @@
  * Copyright 1995 Alexandre Julliard
  */
 
-#ifndef _WINE_TASK_H
-#define _WINE_TASK_H
+#ifndef __WINE_TASK_H
+#define __WINE_TASK_H
 
 #include "wintypes.h"
 
@@ -28,7 +28,8 @@
     WORD      reserved2[2];
     WORD      nbFiles;                 /* 32 Number of file handles */
     SEGPTR    fileHandlesPtr;          /* 34 Pointer to file handle table */
-    WORD      reserved3[18];
+    HANDLE16  hFileHandles;            /* 38 Handle to fileHandlesPtr */
+    WORD      reserved3[17];
     BYTE      fcb1[16];                /* 5c First FCB */
     BYTE      fcb2[20];                /* 6c Second FCB */
     BYTE      cmdLine[128];            /* 80 Command-line (first byte is len)*/
@@ -117,4 +118,4 @@
 extern void TASK_KillCurrentTask( INT16 exitCode );
 extern HTASK16 TASK_GetNextTask( HTASK16 hTask );
 
-#endif /* _WINE_TASK_H */
+#endif /* __WINE_TASK_H */
diff --git a/include/toolhelp.h b/include/toolhelp.h
index c1d9836..dbebe81 100644
--- a/include/toolhelp.h
+++ b/include/toolhelp.h
@@ -1,5 +1,5 @@
-#ifndef __TOOLHELP_H
-#define __TOOLHELP_H
+#ifndef __WINE_TOOLHELP_H
+#define __WINE_TOOLHELP_H
 
 #include "windows.h"
 
@@ -343,4 +343,4 @@
     FARPROC16   lpfnErrorAddr;
     void      **lpBadParam;
 } NFYLOGPARAMERROR;
-#endif /* __TOOLHELP_H */
+#endif /* __WINE_TOOLHELP_H */
diff --git a/include/user.h b/include/user.h
index f22fa1a..cfb068b 100644
--- a/include/user.h
+++ b/include/user.h
@@ -4,8 +4,8 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#ifndef USER_H
-#define USER_H
+#ifndef __WINE_USER_H
+#define __WINE_USER_H
 
 #include "ldt.h"
 #include "local.h"
@@ -23,4 +23,4 @@
 #define USER_HEAP_SEG_ADDR(handle)  \
          ((handle) ? PTR_SEG_OFF_TO_SEGPTR(USER_HeapSel, (handle)) : (SEGPTR)0)
 
-#endif  /* USER_H */
+#endif  /* __WINE_USER_H */
diff --git a/include/win.h b/include/win.h
index 445ee3b..b8b778a 100644
--- a/include/win.h
+++ b/include/win.h
@@ -4,8 +4,8 @@
  * Copyright 1993 Alexandre Julliard
  */
 
-#ifndef WIN_H
-#define WIN_H
+#ifndef __WINE_WIN_H
+#define __WINE_WIN_H
 
 #include <X11/Xlib.h>
 
@@ -111,4 +111,4 @@
 extern Screen * screen;
 extern Window rootWindow;
 
-#endif  /* WIN_H */
+#endif  /* __WINE_WIN_H */
diff --git a/include/windows.h b/include/windows.h
index e0d8cd4..a65782d 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -2614,10 +2614,10 @@
 #define HWND_BROADCAST	    ((HWND)0xffff)
 
 /* SetWindowPos() hwndInsertAfter field values */
-#define HWND_TOP            ((HWND)0)
-#define HWND_BOTTOM         ((HWND)1)
-#define HWND_TOPMOST        ((HWND)-1)
-#define HWND_NOTOPMOST      ((HWND)-2)
+#define HWND_TOP            ((HWND32)0)
+#define HWND_BOTTOM         ((HWND32)1)
+#define HWND_TOPMOST        ((HWND32)-1)
+#define HWND_NOTOPMOST      ((HWND32)-2)
 
 /* Flags for TrackPopupMenu */
 #define TPM_LEFTBUTTON    0x0000
@@ -3279,52 +3279,137 @@
 #define ODS_FOCUS       0x0010
 
 /* Edit control styles */
-#define ES_LEFT         0x00000000L
-#define ES_CENTER       0x00000001L
-#define ES_RIGHT        0x00000002L
-#define ES_MULTILINE    0x00000004L
-#define ES_UPPERCASE    0x00000008L
-#define ES_LOWERCASE    0x00000010L
-#define ES_PASSWORD     0x00000020L
-#define ES_AUTOVSCROLL  0x00000040L
-#define ES_AUTOHSCROLL  0x00000080L
-#define ES_NOHIDESEL    0x00000100L
-#define ES_OEMCONVERT   0x00000400L
-#define ES_READONLY     0x00000800L
-#define ES_WANTRETURN   0x00001000L
+#define ES_LEFT         0x00000000
+#define ES_CENTER       0x00000001
+#define ES_RIGHT        0x00000002
+#define ES_MULTILINE    0x00000004
+#define ES_UPPERCASE    0x00000008
+#define ES_LOWERCASE    0x00000010
+#define ES_PASSWORD     0x00000020
+#define ES_AUTOVSCROLL  0x00000040
+#define ES_AUTOHSCROLL  0x00000080
+#define ES_NOHIDESEL    0x00000100
+#define ES_OEMCONVERT   0x00000400
+#define ES_READONLY     0x00000800
+#define ES_WANTRETURN   0x00001000
+#define ES_NUMBER       0x00002000
 
 /* Edit control messages */
-#define EM_GETSEL              (WM_USER+0)
-#define EM_SETSEL              (WM_USER+1)
-#define EM_GETRECT             (WM_USER+2)
-#define EM_SETRECT             (WM_USER+3)
-#define EM_SETRECTNP           (WM_USER+4)
-#define EM_LINESCROLL          (WM_USER+6)
-#define EM_GETMODIFY           (WM_USER+8)
-#define EM_SETMODIFY           (WM_USER+9)
-#define EM_GETLINECOUNT        (WM_USER+10)
-#define EM_LINEINDEX           (WM_USER+11)
-#define EM_SETHANDLE           (WM_USER+12)
-#define EM_GETHANDLE           (WM_USER+13)
-#define EM_LINELENGTH          (WM_USER+17)
-#define EM_REPLACESEL          (WM_USER+18)
-#define EM_GETLINE             (WM_USER+20)
-#define EM_LIMITTEXT           (WM_USER+21)
-#define EM_CANUNDO             (WM_USER+22)
-#define EM_UNDO                (WM_USER+23)
-#define EM_FMTLINES            (WM_USER+24)
-#define EM_LINEFROMCHAR        (WM_USER+25)
-#define EM_SETTABSTOPS         (WM_USER+27)
-#define EM_SETPASSWORDCHAR     (WM_USER+28)
-#define EM_EMPTYUNDOBUFFER     (WM_USER+29)
-#define EM_GETFIRSTVISIBLELINE (WM_USER+30)
-#define EM_SETREADONLY         (WM_USER+31)
-#define EM_SETWORDBREAKPROC    (WM_USER+32)
-#define EM_GETWORDBREAKPROC    (WM_USER+33)
-#define EM_GETPASSWORDCHAR     (WM_USER+34)
-/* Edit control undocumented messages */
-#define EM_SCROLL              (WM_USER+5)
-#define EM_GETTHUMB            (WM_USER+14)
+#define EM_GETSEL16                (WM_USER+0)
+#define EM_GETSEL32                0x00b0
+#define EM_GETSEL                  WINELIB_NAME(EM_GETSEL)
+#define EM_SETSEL16                (WM_USER+1)
+#define EM_SETSEL32                0x00b1
+#define EM_SETSEL                  WINELIB_NAME(EM_SETSEL)
+#define EM_GETRECT16               (WM_USER+2)
+#define EM_GETRECT32               0x00b2
+#define EM_GETRECT                 WINELIB_NAME(EM_GETRECT)
+#define EM_SETRECT16               (WM_USER+3)
+#define EM_SETRECT32               0x00b3
+#define EM_SETRECT                 WINELIB_NAME(EM_SETRECT)
+#define EM_SETRECTNP16             (WM_USER+4)
+#define EM_SETRECTNP32             0x00b4
+#define EM_SETRECTNP               WINELIB_NAME(EM_SETRECTNP)
+#define EM_SCROLL16                (WM_USER+5)
+#define EM_SCROLL32                0x00b5
+#define EM_SCROLL                  WINELIB_NAME(EM_SCROLL)
+#define EM_LINESCROLL16            (WM_USER+6)
+#define EM_LINESCROLL32            0x00b6
+#define EM_LINESCROLL              WINELIB_NAME(EM_LINESCROLL)
+#define EM_SCROLLCARET16           (WM_USER+7)
+#define EM_SCROLLCARET32           0x00b7
+#define EM_SCROLLCARET             WINELIB_NAME(EM_SCROLLCARET)
+#define EM_GETMODIFY16             (WM_USER+8)
+#define EM_GETMODIFY32             0x00b8
+#define EM_GETMODIFY               WINELIB_NAME(EM_GETMODIFY)
+#define EM_SETMODIFY16             (WM_USER+9)
+#define EM_SETMODIFY32             0x00b9
+#define EM_SETMODIFY               WINELIB_NAME(EM_SETMODIFY)
+#define EM_GETLINECOUNT16          (WM_USER+10)
+#define EM_GETLINECOUNT32          0x00ba
+#define EM_GETLINECOUNT            WINELIB_NAME(EM_GETLINECOUNT)
+#define EM_LINEINDEX16             (WM_USER+11)
+#define EM_LINEINDEX32             0x00bb
+#define EM_LINEINDEX               WINELIB_NAME(EM_LINEINDEX)
+#define EM_SETHANDLE16             (WM_USER+12)
+#define EM_SETHANDLE32             0x00bc
+#define EM_SETHANDLE               WINELIB_NAME(EM_SETHANDLE)
+#define EM_GETHANDLE16             (WM_USER+13)
+#define EM_GETHANDLE32             0x00bd
+#define EM_GETHANDLE               WINELIB_NAME(EM_GETHANDLE)
+#define EM_GETTHUMB16              (WM_USER+14)
+#define EM_GETTHUMB32              0x00be
+#define EM_GETTHUMB                WINELIB_NAME(EM_GETTHUMB)
+/* FIXME : missing from specs 0x00bf and 0x00c0 */
+#define EM_LINELENGTH16            (WM_USER+17)
+#define EM_LINELENGTH32            0x00c1
+#define EM_LINELENGTH              WINELIB_NAME(EM_LINELENGTH)
+#define EM_REPLACESEL16            (WM_USER+18)
+#define EM_REPLACESEL32            0x00c2
+#define EM_REPLACESEL              WINELIB_NAME(EM_REPLACESEL)
+/* FIXME : missing from specs 0x00c3 */
+#define EM_GETLINE16               (WM_USER+20)
+#define EM_GETLINE32               0x00c4
+#define EM_GETLINE                 WINELIB_NAME(EM_GETLINE)
+#define EM_LIMITTEXT16             (WM_USER+21)
+#define EM_LIMITTEXT32             0x00c5
+#define EM_LIMITTEXT               WINELIB_NAME(EM_LIMITTEXT)
+#define EM_CANUNDO16               (WM_USER+22)
+#define EM_CANUNDO32               0x00c6
+#define EM_CANUNDO                 WINELIB_NAME(EM_CANUNDO)
+#define EM_UNDO16                  (WM_USER+23)
+#define EM_UNDO32                  0x00c7
+#define EM_UNDO                    WINELIB_NAME(EM_UNDO)
+#define EM_FMTLINES16              (WM_USER+24)
+#define EM_FMTLINES32              0x00c8
+#define EM_FMTLINES                WINELIB_NAME(EM_FMTLINES)
+#define EM_LINEFROMCHAR16          (WM_USER+25)
+#define EM_LINEFROMCHAR32          0x00c9
+#define EM_LINEFROMCHAR            WINELIB_NAME(EM_LINEFROMCHAR)
+/* FIXME : missing from specs 0x00ca */
+#define EM_SETTABSTOPS16           (WM_USER+27)
+#define EM_SETTABSTOPS32           0x00cb
+#define EM_SETTABSTOPS             WINELIB_NAME(EM_SETTABSTOPS)
+#define EM_SETPASSWORDCHAR16       (WM_USER+28)
+#define EM_SETPASSWORDCHAR32       0x00cc
+#define EM_SETPASSWORDCHAR         WINELIB_NAME(EM_SETPASSWORDCHAR)
+#define EM_EMPTYUNDOBUFFER16       (WM_USER+29)
+#define EM_EMPTYUNDOBUFFER32       0x00cd
+#define EM_EMPTYUNDOBUFFER         WINELIB_NAME(EM_EMPTYUNDOBUFFER)
+#define EM_GETFIRSTVISIBLELINE16   (WM_USER+30)
+#define EM_GETFIRSTVISIBLELINE32   0x00ce
+#define EM_GETFIRSTVISIBLELINE     WINELIB_NAME(EM_GETFIRSTVISIBLELINE)
+#define EM_SETREADONLY16           (WM_USER+31)
+#define EM_SETREADONLY32           0x00cf
+#define EM_SETREADONLY             WINELIB_NAME(EM_SETREADONLY)
+#define EM_SETWORDBREAKPROC16      (WM_USER+32)
+#define EM_SETWORDBREAKPROC32      0x00d0
+#define EM_SETWORDBREAKPROC        WINELIB_NAME(EM_SETWORDBREAKPROC)
+#define EM_GETWORDBREAKPROC16      (WM_USER+33)
+#define EM_GETWORDBREAKPROC32      0x00d1
+#define EM_GETWORDBREAKPROC        WINELIB_NAME(EM_GETWORDBREAKPROC)
+#define EM_GETPASSWORDCHAR16       (WM_USER+34)
+#define EM_GETPASSWORDCHAR32       0x00d2
+#define EM_GETPASSWORDCHAR         WINELIB_NAME(EM_GETPASSWORDCHAR)
+#define EM_SETMARGINS16            WM_NULL /* not in win16 */
+#define EM_SETMARGINS32            0x00d3
+#define EM_SETMARGINS              WINELIB_NAME(EM_SETMARGINS)
+#define EM_GETMARGINS16            WM_NULL /* not in win16 */
+#define EM_GETMARGINS32            0x00d4
+#define EM_GETMARGINS              WINELIB_NAME(EM_GETMARGINS)
+#define EM_GETLIMITTEXT16          WM_NULL /* not in win16 */
+#define EM_GETLIMITTEXT32          0x00d5
+#define EM_GETLIMITTEXT            WINELIB_NAME(EM_GETLIMITTEXT)
+#define EM_POSFROMCHAR16           WM_NULL /* not in win16 */
+#define EM_POSFROMCHAR32           0x00d6
+#define EM_POSFROMCHAR             WINELIB_NAME(EM_POSFROMCHAR)
+#define EM_CHARFROMPOS16           WM_NULL /* not in win16 */
+#define EM_CHARFROMPOS32           0x00d7
+#define EM_CHARFROMPOS             WINELIB_NAME(EM_CHARFROMPOS)
+/* a name change since win95 */
+#define EM_SETLIMITTEXT16          WM_NULL /* no name change in win16 */
+#define EM_SETLIMITTEXT32          EM_LIMITTEXT32
+#define EM_SETLIMITTEXT            WINELIB_NAME(EM_SETLIMITTEXT)
 
 /* EDITWORDBREAKPROC code values */
 #define WB_LEFT         0
@@ -3341,6 +3426,11 @@
 #define EN_HSCROLL      0x0601
 #define EN_VSCROLL      0x0602
 
+/* New since win95 : EM_SETMARGIN parameters */
+#define EC_LEFTMARGIN	0x0001
+#define EC_RIGHTMARGIN	0x0002
+#define EC_USEFONTINFO	0xffff
+
 
 typedef struct
 {
@@ -4353,6 +4443,12 @@
 	LPWSTR	Buffer;
 } UNICODE_STRING,*LPUNICODE_STRING;
 
+/* {G,S}etPriorityClass */
+#define	NORMAL_PRIORITY_CLASS	0x00000020
+#define	IDLE_PRIORITY_CLASS	0x00000040
+#define	HIGH_PRIORITY_CLASS	0x00000080
+#define	REALTIME_PRIORITY_CLASS	0x00000100
+
 #pragma pack(4)
 
 /* Declarations for functions that exist only in Win16 */
@@ -4361,8 +4457,6 @@
 WORD       AllocDStoCSAlias(WORD);
 WORD       AllocSelector(WORD);
 WORD       AllocSelectorArray(WORD);
-LPSTR      AnsiLower(LPSTR);
-LPSTR      AnsiUpper(LPSTR);
 INT16      Catch(LPCATCHBUF);
 WORD       ChangeSelector(WORD,WORD);
 INT16      CloseComm(INT16);
@@ -4425,6 +4519,7 @@
 HTASK16    IsTaskLocked(void);
 BOOL16     LocalInit(HANDLE16,WORD,WORD);
 HTASK16    LockCurrentTask(BOOL16);
+HMENU16    LookupMenuHandle(HMENU16,INT16);
 DWORD      MoveTo(HDC16,INT16,INT16);
 DWORD      OffsetViewportOrg(HDC16,INT16,INT16);
 INT16      OffsetVisRgn(HDC16,INT16,INT16);
@@ -4474,6 +4569,9 @@
 BOOL32     Beep(DWORD,DWORD);
 BOOL32     ClearCommError(INT32,LPDWORD,LPCOMSTAT);
 BOOL32     CloseHandle(HANDLE32);
+BOOL32     CopyFile32A(LPCSTR,LPCSTR,BOOL32);
+BOOL32     CopyFile32W(LPCWSTR,LPCWSTR,BOOL32);
+#define    CopyFile WINELIB_NAME_AW(CopyFile)
 HFILE32    CreateFile32A(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE32);
 HFILE32    CreateFile32W(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE32);
 #define    CreateFile WINELIB_NAME_AW(CreateFile)
@@ -4500,6 +4598,9 @@
 HRSRC32    FindResourceEx32W(HINSTANCE32,LPCWSTR,LPCWSTR,WORD);
 #define    FindResourceEx WINELIB_NAME_AW(FindResourceEx)
 BOOL32     FlushFileBuffers(HFILE32);
+BOOL32     FreeEnvironmentStrings32A(LPSTR);
+BOOL32     FreeEnvironmentStrings32W(LPWSTR);
+#define    FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings)
 UINT32     GetACP(void);
 LPCSTR     GetCommandLine32A();
 LPCWSTR    GetCommandLine32W();
@@ -4511,13 +4612,23 @@
 HANDLE32   GetCurrentThread(void);
 DWORD      GetCurrentThreadId(void);
 BOOL32     GetDCOrgEx(HDC32,LPPOINT32);
+LPSTR      GetEnvironmentStrings32A(void);
+LPWSTR     GetEnvironmentStrings32W(void);
+#define    GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings)
+DWORD      GetEnvironmentVariable32A(LPCSTR,LPSTR,DWORD);
+DWORD      GetEnvironmentVariable32W(LPCWSTR,LPWSTR,DWORD);
+#define    GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable)
 DWORD      GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*);
 DWORD      GetFileSize(HFILE32,LPDWORD);
 BOOL32     GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME);
 DWORD      GetFileType(HFILE32);
+DWORD      GetFullPathName32A(LPCSTR,DWORD,LPSTR,LPSTR*);
+DWORD      GetFullPathName32W(LPCWSTR,DWORD,LPWSTR,LPWSTR*);
+#define    GetFullPathName WINELIB_NAME_AW(GetFullPathName)
 VOID       GetLocalTime(LPSYSTEMTIME);
 DWORD      GetLogicalDrives(void);
 UINT32     GetOEMCP(void);
+DWORD      GetPriorityClass(HANDLE32);
 HANDLE32   GetProcessHeap(void);
 DWORD      GetShortPathName32A(LPCSTR,LPSTR,DWORD);
 DWORD      GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
@@ -4526,6 +4637,8 @@
 VOID       GetSystemInfo(LPSYSTEM_INFO);
 BOOL32     GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
 VOID       GetSystemTime(LPSYSTEMTIME);
+LCID       GetThreadLocale();
+INT32      GetThreadPriority(HANDLE32);
 VOID       GlobalMemoryStatus(LPMEMORYSTATUS);
 LPVOID     HeapAlloc(HANDLE32,DWORD,DWORD);
 DWORD      HeapCompact(HANDLE32,DWORD);
@@ -4537,6 +4650,7 @@
 DWORD      HeapSize(HANDLE32,DWORD,LPVOID);
 BOOL32     HeapUnlock(HANDLE32);
 BOOL32     HeapValidate(HANDLE32,DWORD,LPVOID);
+BOOL32     IsDBCSLeadByteEx(UINT32,BYTE);
 BOOL32     IsWindowUnicode(HWND32);
 BOOL32     IsValidLocale(DWORD,DWORD);
 BOOL32     LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
@@ -4544,6 +4658,9 @@
 BOOL32     MoveFile32A(LPCSTR,LPCSTR);
 BOOL32     MoveFile32W(LPCWSTR,LPCWSTR);
 #define    MoveFile WINELIB_NAME_AW(MoveFile)
+DWORD      QueryDosDevice32A(LPCSTR,LPSTR,DWORD);
+DWORD      QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD);
+#define    QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
 BOOL32     QueryPerformanceCounter(LPLARGE_INTEGER);
 BOOL32     ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
 BOOL32     ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
@@ -4578,12 +4695,18 @@
 BOOL32     SetConsoleTitle32W(LPCWSTR);
 #define    SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle)
 BOOL32     SetEndOfFile(HFILE32);
+BOOL32     SetEnvironmentVariable32A(LPCSTR,LPCSTR);
+BOOL32     SetEnvironmentVariable32W(LPCWSTR,LPCWSTR);
+#define    SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
 DWORD      SetFilePointer(HFILE32,LONG,LPLONG,DWORD);
 BOOL32     SetFileTime(HFILE32,const FILETIME*,const FILETIME*,const FILETIME*);
 VOID       SetLastErrorEx(DWORD,DWORD);
-BOOL32     SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION);
+BOOL32     SetPriorityClass(HANDLE32,DWORD);
+BOOL32     SetStdHandle(DWORD,HANDLE32);
 BOOL32     SetSystemPowerState(BOOL32,BOOL32);
 BOOL32     SetSystemTime(const SYSTEMTIME*);
+BOOL32     SetThreadPriority(HANDLE32,INT32);
+BOOL32     SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION);
 VOID       Sleep(DWORD);
 BOOL32     SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME);
 BOOL32     TrackPopupMenuEx(HMENU32,UINT32,INT32,INT32,HWND32,LPTPMPARAMS);
@@ -4613,8 +4736,10 @@
 DWORD      GetAppCompatFlags(HTASK32);
 LONG       GetBitmapBits(HBITMAP32,LONG,LPVOID);
 WORD       GetClassWord(HWND32,INT32);
+DWORD      GetDialogBaseUnits(void);
 INT16      GetDlgCtrlID(HWND32);
 DWORD      GetLastError(void);
+DWORD      GetMenuCheckMarkDimensions(void);
 COLORREF   GetSysColor(INT32);
 DWORD      GetTickCount(void);
 INT16      GetUpdateRgn(HWND32,HRGN32,BOOL32);
@@ -4652,6 +4777,22 @@
 HGLOBAL16  AllocResource16(HINSTANCE16,HRSRC16,DWORD);
 HGLOBAL32  AllocResource32(HINSTANCE32,HRSRC32,DWORD);
 #define    AllocResource WINELIB_NAME(AllocResource)
+SEGPTR     AnsiLower16(SEGPTR);
+#define    AnsiLower32A CharLower32A
+#define    AnsiLower32W CharLower32W
+#define    AnsiLower WINELIB_NAME_AW(AnsiLower)
+UINT16     AnsiLowerBuff16(LPSTR,UINT16);
+#define    AnsiLowerBuff32A CharLowerBuff32A
+#define    AnsiLowerBuff32W CharLowerBuff32W
+#define    AnsiLowerBuff WINELIB_NAME_AW(AnsiLowerBuff)
+SEGPTR     AnsiNext16(SEGPTR);
+#define    AnsiNext32A CharNext32A
+#define    AnsiNext32W CharNext32W
+#define    AnsiNext WINELIB_NAME_AW(AnsiNext)
+SEGPTR     AnsiPrev16(SEGPTR,SEGPTR);
+#define    AnsiPrev32A CharPrev32A
+#define    AnsiPrev32W CharPrev32W
+#define    AnsiPrev WINELIB_NAME_AW(AnsiPrev)
 INT16      AnsiToOem16(LPCSTR,LPSTR);
 #define    AnsiToOem32A CharToOem32A
 #define    AnsiToOem32W CharToOem32W
@@ -4660,6 +4801,14 @@
 #define    AnsiToOemBuff32A CharToOemBuff32A
 #define    AnsiToOemBuff32W CharToOemBuff32W
 #define    AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff)
+SEGPTR     AnsiUpper16(SEGPTR);
+#define    AnsiUpper32A CharUpper32A
+#define    AnsiUpper32W CharUpper32W
+#define    AnsiUpper WINELIB_NAME_AW(AnsiUpper)
+UINT16     AnsiUpperBuff16(LPSTR,UINT16);
+#define    AnsiUpperBuff32A CharUpperBuff32A
+#define    AnsiUpperBuff32W CharUpperBuff32W
+#define    AnsiUpperBuff WINELIB_NAME_AW(AnsiUpperBuff)
 BOOL16     AppendMenu16(HMENU16,UINT16,UINT16,SEGPTR);
 BOOL32     AppendMenu32A(HMENU32,UINT32,UINT32,LPCSTR);
 BOOL32     AppendMenu32W(HMENU32,UINT32,UINT32,LPCWSTR);
@@ -4687,6 +4836,9 @@
 LRESULT    CallWindowProc32A(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM);
 LRESULT    CallWindowProc32W(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM);
 #define    CallWindowProc WINELIB_NAME_AW(CallWindowProc)
+BOOL16     ChangeClipboardChain16(HWND16,HWND16);
+BOOL32     ChangeClipboardChain32(HWND32,HWND32);
+#define    ChangeClipboardChain WINELIB_NAME(ChangeClipboardChain)
 BOOL16     ChangeMenu16(HMENU16,UINT16,SEGPTR,UINT16,UINT16);
 BOOL32     ChangeMenu32A(HMENU32,UINT32,LPCSTR,UINT32,UINT32);
 BOOL32     ChangeMenu32W(HMENU32,UINT32,LPCWSTR,UINT32,UINT32);
@@ -4721,6 +4873,9 @@
 BOOL32     CharToOemBuff32A(LPCSTR,LPSTR,DWORD);
 BOOL32     CharToOemBuff32W(LPCWSTR,LPSTR,DWORD);
 #define    CharToOemBuff WINELIB_NAME_AW(CharToOemBuff)
+BOOL16     CheckMenuItem16(HMENU16,UINT16,UINT16);
+DWORD      CheckMenuItem32(HMENU32,UINT32,UINT32);
+#define    CheckMenuItem WINELIB_NAME(CheckMenuItem)
 HWND16     ChildWindowFromPoint16(HWND16,POINT16);
 HWND32     ChildWindowFromPoint32(HWND32,POINT32);
 #define    ChildWindowFromPoint WINELIB_NAME(ChildWindowFromPoint)
@@ -4827,6 +4982,9 @@
 HDC32      CreateIC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*);
 HDC32      CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
 #define    CreateIC WINELIB_NAME_AW(CreateIC)
+HMENU16    CreateMenu16(void);
+HMENU32    CreateMenu32(void);
+#define    CreateMenu WINELIB_NAME(CreateMenu)
 HDC16      CreateMetaFile16(LPCSTR);
 HDC32      CreateMetaFile32A(LPCSTR);
 HDC32      CreateMetaFile32W(LPCWSTR);
@@ -4846,6 +5004,9 @@
 HRGN16     CreatePolygonRgn16(const POINT16*,INT16,INT16);
 HRGN32     CreatePolygonRgn32(const POINT32*,INT32,INT32);
 #define    CreatePolygonRgn WINELIB_NAME(CreatePolygonRgn)
+HMENU16    CreatePopupMenu16(void);
+HMENU32    CreatePopupMenu32(void);
+#define    CreatePopupMenu WINELIB_NAME(CreatePopupMenu)
 HRGN16     CreateRectRgn16(INT16,INT16,INT16,INT16);
 HRGN32     CreateRectRgn32(INT32,INT32,INT32,INT32);
 #define    CreateRectRgn WINELIB_NAME(CreateRectRgn)
@@ -4899,12 +5060,18 @@
 BOOL32     DeleteFile32A(LPCSTR);
 BOOL32     DeleteFile32W(LPCWSTR);
 #define    DeleteFile WINELIB_NAME_AW(DeleteFile)
+BOOL16     DeleteMenu16(HMENU16,UINT16,UINT16);
+BOOL32     DeleteMenu32(HMENU32,UINT32,UINT32);
+#define    DeleteMenu WINELIB_NAME(DeleteMenu)
 BOOL16     DeleteMetaFile16(HMETAFILE16);
 BOOL32     DeleteMetaFile32(HMETAFILE32);
 #define    DeleteMetaFile WINELIB_NAME(DeleteMetaFile)
 BOOL16     DeleteObject16(HGDIOBJ16);
 BOOL32     DeleteObject32(HGDIOBJ32);
 #define    DeleteObject WINELIB_NAME(DeleteObject)
+BOOL16     DestroyMenu16(HMENU16);
+BOOL32     DestroyMenu32(HMENU32);
+#define    DestroyMenu WINELIB_NAME(DestroyMenu)
 INT16      DialogBox16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16);
 #define    DialogBox32A(inst,template,owner,func) \
            DialogBoxParam32A(inst,template,owner,func,0)
@@ -4953,6 +5120,9 @@
 BOOL16     DrawFrameControl16(HDC16,LPRECT16,UINT16,UINT16);
 BOOL32     DrawFrameControl32(HDC32,LPRECT32,UINT32,UINT32);
 #define    DrawFrameControl WINELIB_NAME(DrawFrameControl)
+VOID       DrawMenuBar16(HWND16);
+BOOL32     DrawMenuBar32(HWND32);
+#define    DrawMenuBar WINELIB_NAME(DrawMenuBar)
 INT16      DrawText16(HDC16,LPCSTR,INT16,LPRECT16,UINT16);
 INT32      DrawText32A(HDC32,LPCSTR,INT32,LPRECT32,UINT32);
 INT32      DrawText32W(HDC32,LPCWSTR,INT32,LPRECT32,UINT32);
@@ -4960,6 +5130,9 @@
 BOOL16     Ellipse16(HDC16,INT16,INT16,INT16,INT16);
 BOOL32     Ellipse32(HDC32,INT32,INT32,INT32,INT32);
 #define    Ellipse WINELIB_NAME(Ellipse)
+BOOL16     EnableMenuItem16(HMENU16,UINT16,UINT16);
+BOOL32     EnableMenuItem32(HMENU32,UINT32,UINT32);
+#define    EnableMenuItem WINELIB_NAME(EnableMenuItem)
 BOOL16     EnableScrollBar16(HWND16,INT16,UINT16);
 BOOL32     EnableScrollBar32(HWND32,INT32,UINT32);
 #define    EnableScrollBar WINELIB_NAME(EnableScrollBar)
@@ -5194,6 +5367,22 @@
 INT16      GetMapMode16(HDC16);
 INT32      GetMapMode32(HDC32);
 #define    GetMapMode WINELIB_NAME(GetMapMode)
+HMENU16    GetMenu16(HWND16);
+HMENU32    GetMenu32(HWND32);
+#define    GetMenu WINELIB_NAME(GetMenu)
+INT16      GetMenuItemCount16(HMENU16);
+INT32      GetMenuItemCount32(HMENU32);
+#define    GetMenuItemCount WINELIB_NAME(GetMenuItemCount)
+UINT16     GetMenuItemID16(HMENU16,INT16);
+UINT32     GetMenuItemID32(HMENU32,INT32);
+#define    GetMenuItemID WINELIB_NAME(GetMenuItemID)
+UINT16     GetMenuState16(HMENU16,UINT16,UINT16);
+UINT32     GetMenuState32(HMENU32,UINT32,UINT32);
+#define    GetMenuState WINELIB_NAME(GetMenuState)
+INT16      GetMenuString16(HMENU16,UINT16,LPSTR,INT16,UINT16);
+INT32      GetMenuString32A(HMENU32,UINT32,LPSTR,INT32,UINT32);
+INT32      GetMenuString32W(HMENU32,UINT32,LPWSTR,INT32,UINT32);
+#define    GetMenuString WINELIB_NAME_AW(GetMenuString)
 INT16      GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
 DWORD      GetModuleFileName32A(HMODULE32,LPSTR,DWORD);
 DWORD      GetModuleFileName32W(HMODULE32,LPWSTR,DWORD);
@@ -5264,6 +5453,9 @@
 INT16      GetStretchBltMode16(HDC16);
 INT32      GetStretchBltMode32(HDC32);
 #define    GetStretchBltMode WINELIB_NAME(GetStretchBltMode)
+HMENU16    GetSubMenu16(HMENU16,INT16);
+HMENU32    GetSubMenu32(HMENU32,INT32);
+#define    GetSubMenu WINELIB_NAME(GetSubMenu)
 HBRUSH16   GetSysColorBrush16(INT16);
 HBRUSH32   GetSysColorBrush32(INT32);
 #define    GetSysColorBrush WINELIB_NAME(GetSysColorBrush)
@@ -5274,6 +5466,9 @@
 UINT32     GetSystemDirectory32A(LPSTR,UINT32);
 UINT32     GetSystemDirectory32W(LPWSTR,UINT32);
 #define    GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory)
+HMENU16    GetSystemMenu16(HWND16,BOOL16);
+HMENU32    GetSystemMenu32(HWND32,BOOL32);
+#define    GetSystemMenu WINELIB_NAME(GetSystemMenu)
 UINT16     GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR);
 UINT32     GetTempFileName32A(LPCSTR,LPCSTR,UINT32,LPSTR);
 UINT32     GetTempFileName32W(LPCWSTR,LPCWSTR,UINT32,LPWSTR);
@@ -5390,6 +5585,9 @@
 BOOL16     GlobalUnlock16(HGLOBAL16);
 BOOL32     GlobalUnlock32(HGLOBAL32);
 #define    GlobalUnlock WINELIB_NAME(GlobalUnlock)
+BOOL16     HiliteMenuItem16(HWND16,HMENU16,UINT16,UINT16);
+BOOL32     HiliteMenuItem32(HWND32,HMENU32,UINT32,UINT32);
+#define    HiliteMenuItem WINELIB_NAME(HiliteMenuItem)
 void       InflateRect16(LPRECT16,INT16,INT16);
 void       InflateRect32(LPRECT32,INT32,INT32);
 #define    InflateRect WINELIB_NAME(InflateRect)
@@ -5450,6 +5648,12 @@
 BOOL32     IsCharUpper32A(CHAR);
 BOOL32     IsCharUpper32W(WCHAR);
 #define    IsCharUpper WINELIB_NAME_AW(IsCharUpper)
+BOOL16     IsDBCSLeadByte16(BYTE);
+BOOL32     IsDBCSLeadByte32(BYTE);
+#define    IsDBCSLeadByte WINELIB_NAME(IsDBCSLeadByte)
+BOOL16     IsMenu16(HMENU16);
+BOOL32     IsMenu32(HMENU32);
+#define    IsMenu WINELIB_NAME(IsMenu)
 BOOL16     IsRectEmpty16(const RECT16*);
 BOOL32     IsRectEmpty32(const RECT32*);
 #define    IsRectEmpty WINELIB_NAME(IsRectEmpty)
@@ -5732,6 +5936,9 @@
 BOOL32     RemoveDirectory32A(LPCSTR);
 BOOL32     RemoveDirectory32W(LPCWSTR);
 #define    RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
+BOOL16     RemoveMenu16(HMENU16,UINT16,UINT16);
+BOOL32     RemoveMenu32(HMENU32,UINT32,UINT32);
+#define    RemoveMenu WINELIB_NAME(RemoveMenu)
 HDC16      ResetDC16(HDC16,const DEVMODE16 *);
 HDC32      ResetDC32A(HDC32,const DEVMODE32A *);
 HDC32      ResetDC32W(HDC32,const DEVMODE32W *);
@@ -5818,9 +6025,6 @@
 void       SetDlgItemText32A(HWND32,INT32,LPCSTR);
 void       SetDlgItemText32W(HWND32,INT32,LPCWSTR);
 #define    SetDlgItemText WINELIB_NAME_AW(SetDlgItemText)
-BOOL32     SetEnvironmentVariable32A(LPCSTR,LPCSTR);
-BOOL32     SetEnvironmentVariable32W(LPCWSTR,LPCWSTR);
-#define    SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable)
 BOOL16     SetFileAttributes16(LPCSTR,DWORD);
 BOOL32     SetFileAttributes32A(LPCSTR,DWORD);
 BOOL32     SetFileAttributes32W(LPCWSTR,DWORD);
@@ -5837,6 +6041,12 @@
 INT16      SetMapMode16(HDC16,INT16);
 INT32      SetMapMode32(HDC32,INT32);
 #define    SetMapMode WINELIB_NAME(SetMapMode)
+BOOL16     SetMenu16(HWND16,HMENU16);
+BOOL32     SetMenu32(HWND32,HMENU32);
+#define    SetMenu WINELIB_NAME(SetMenu)
+BOOL16     SetMenuItemBitmaps16(HMENU16,UINT16,UINT16,HBITMAP16,HBITMAP16);
+BOOL32     SetMenuItemBitmaps32(HMENU32,UINT32,UINT32,HBITMAP32,HBITMAP32);
+#define    SetMenuItemBitmaps WINELIB_NAME(SetMenuItemBitmaps)
 COLORREF   SetPixel16(HDC16,INT16,INT16,COLORREF);
 COLORREF   SetPixel32(HDC32,INT32,INT32,COLORREF);
 #define    SetPixel WINELIB_NAME(SetPixel)
@@ -5877,6 +6087,9 @@
 UINT16     SetSystemTimer16(HWND16,UINT16,UINT16,TIMERPROC16);
 UINT32     SetSystemTimer32(HWND32,UINT32,UINT32,TIMERPROC32);
 #define    SetSystemTimer WINELIB_NAME(SetSystemTimer)
+BOOL16     SetSystemMenu16(HWND16,HMENU16);
+BOOL32     SetSystemMenu32(HWND32,HMENU32);
+#define    SetSystemMenu WINELIB_NAME(SetSystemMenu)
 UINT16     SetTextAlign16(HDC16,UINT16);
 UINT32     SetTextAlign32(HDC32,UINT32);
 #define    SetTextAlign WINELIB_NAME(SetTextAlign)
@@ -6131,18 +6344,12 @@
 ATOM       AddAtom(SEGPTR);
 INT        AddFontResource(LPCSTR);
 BOOL       AnimatePalette(HPALETTE16,UINT,UINT,LPPALETTEENTRY);
-UINT       AnsiLowerBuff(LPSTR,UINT);
-SEGPTR     AnsiNext(SEGPTR);
-SEGPTR     AnsiPrev(SEGPTR,SEGPTR);
-UINT       AnsiUpperBuff(LPSTR,UINT);
 BOOL       AnyPopup(void);
 UINT       ArrangeIconicWindows(HWND);
 HDWP16     BeginDeferWindowPos(INT);
 BOOL       BringWindowToTop(HWND);
 void       CalcChildScroll(HWND,WORD);
 BOOL       CallMsgFilter(SEGPTR,INT);
-BOOL       ChangeClipboardChain(HWND,HWND);
-INT        CheckMenuItem(HMENU16,UINT,UINT);
 BOOL       CloseClipboard(void);
 void       CloseSound(void);
 BOOL       CloseWindow(HWND);
@@ -6153,24 +6360,18 @@
 HCURSOR16  CreateCursor(HINSTANCE16,INT,INT,INT,INT,const BYTE*,const BYTE*);
 HGLOBAL16  CreateCursorIconIndirect(HINSTANCE16,CURSORICONINFO*,const BYTE*,const BYTE*);
 HICON16    CreateIcon(HINSTANCE16,INT,INT,BYTE,BYTE,const BYTE*,const BYTE*);
-HMENU16    CreateMenu(void);
 HPALETTE16 CreatePalette(const LOGPALETTE*);
-HMENU16    CreatePopupMenu(void);
 HDWP16     DeferWindowPos(HDWP16,HWND,HWND,INT,INT,INT,INT,UINT);
 ATOM       DeleteAtom(ATOM);
-BOOL       DeleteMenu(HMENU16,UINT,UINT);
 BOOL       DestroyCursor(HCURSOR16);
 BOOL       DestroyIcon(HICON16);
-BOOL       DestroyMenu(HMENU16);
 BOOL       DestroyWindow(HWND);
 LONG       DispatchMessage(const MSG16*);
 BOOL16     DragDetect(HWND16,POINT16);
 DWORD      DragObject(HWND, HWND, WORD, HANDLE16, WORD, HCURSOR16);
 BOOL       DrawIcon(HDC16,INT,INT,HICON16);
-void       DrawMenuBar(HWND);
 DWORD      DumpIcon(SEGPTR,WORD*,SEGPTR*,SEGPTR*);
 BOOL       EmptyClipboard(void);
-BOOL       EnableMenuItem(HMENU16,UINT,UINT);
 BOOL       EnableWindow(HWND,BOOL);
 BOOL       EndDeferWindowPos(HDWP16);
 UINT16     EnumClipboardFormats(UINT16);
@@ -6197,7 +6398,6 @@
 HCURSOR16  GetCursor(void);
 SEGPTR     GetDOSEnvironment(void);
 int        GetDeviceCaps(HDC16,WORD);
-DWORD      GetDialogBaseUnits(void);
 HWND       GetDlgItem(HWND,WORD);
 WORD       GetDlgItemInt(HWND,WORD,BOOL*,BOOL);
 WORD       GetDoubleClickTime(void);
@@ -6211,12 +6411,6 @@
 void       GetKeyboardState(BYTE*);
 int        GetKeyboardType(int);
 HWND       GetLastActivePopup(HWND);
-HMENU16    GetMenu(HWND);
-DWORD      GetMenuCheckMarkDimensions(void);
-INT        GetMenuItemCount(HMENU16);
-UINT       GetMenuItemID(HMENU16,int);
-UINT       GetMenuState(HMENU16,UINT,UINT);
-int        GetMenuString(HMENU16,UINT,LPSTR,short,UINT);
 BOOL       GetMessage(SEGPTR,HWND,UINT,UINT);
 LONG       GetMessageExtraInfo(void);
 DWORD      GetMessagePos(void);
@@ -6233,8 +6427,6 @@
 int        GetPriorityClipboardFormat(WORD*,short);
 DWORD      GetQueueStatus(UINT);
 BOOL       GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
-HMENU16    GetSubMenu(HMENU16,short);
-HMENU16    GetSystemMenu(HWND,BOOL);
 int        GetSystemMetrics(WORD);
 WORD       GetSystemPaletteEntries(HDC16,WORD,WORD,LPPALETTEENTRY);
 WORD       GetSystemPaletteUse(HDC16);
@@ -6252,7 +6444,6 @@
 void       GlobalUnfix(HGLOBAL16);
 SEGPTR     GlobalWire(HGLOBAL16);
 BOOL       GrayString(HDC16,HBRUSH16,GRAYSTRINGPROC16,LPARAM,INT,INT,INT,INT,INT);
-BOOL       HiliteMenuItem(HWND,HMENU16,UINT,UINT);
 BOOL       InSendMessage(void);
 WORD       InitAtomTable(WORD);
 BOOL       IsChild(HWND,HWND);
@@ -6260,14 +6451,12 @@
 BOOL       IsDialogMessage(HWND,LPMSG16);
 WORD       IsDlgButtonChecked(HWND,WORD);
 BOOL       IsIconic(HWND);
-BOOL       IsMenu(HMENU16);
 BOOL       IsValidMetaFile(HMETAFILE16);
 BOOL       IsWindowEnabled(HWND);
 BOOL       IsWindowVisible(HWND);
 BOOL       IsZoomed(HWND);
 HINSTANCE16 LoadModule(LPCSTR,LPVOID);
 FARPROC16  LocalNotify(FARPROC16);
-HMENU16    LookupMenuHandle(HMENU16,INT);
 WORD       MapVirtualKey(WORD,WORD);
 void       MessageBeep(WORD);
 BOOL       MoveWindow(HWND,short,short,short,short,BOOL);
@@ -6290,7 +6479,6 @@
 void       ProfStop(void);
 WORD       RealizeDefaultPalette(HDC16);
 BOOL       RemoveFontResource(LPSTR);
-BOOL       RemoveMenu(HMENU16,UINT,UINT);
 void       ReplyMessage(LRESULT);
 BOOL       ResizePalette(HPALETTE16,UINT);
 void       ScrollChildren(HWND,UINT,WPARAM16,LPARAM);
@@ -6309,8 +6497,6 @@
 WORD       SetHookFlags(HDC16,WORD);
 void       SetKeyboardState(BYTE*);
 DWORD      SetMapperFlags(HDC16,DWORD);
-BOOL       SetMenu(HWND,HMENU16);
-BOOL       SetMenuItemBitmaps(HMENU16,UINT,UINT,HBITMAP16,HBITMAP16);
 BOOL       SetMessageQueue(int);
 HMETAFILE16 SetMetaFileBits(HGLOBAL16);
 WORD       SetPaletteEntries(HPALETTE16,WORD,WORD,LPPALETTEENTRY);
diff --git a/include/winerror.h b/include/winerror.h
index c48cc69..6488e5e 100644
--- a/include/winerror.h
+++ b/include/winerror.h
@@ -1,3 +1,7 @@
+#ifndef __WINE_WINERROR_H
+#define __WINE_WINERROR_H
+
+
 extern int WIN32_LastError;
 
 /* ERROR_UNKNOWN is a placeholder for error conditions which haven't
@@ -30,3 +34,5 @@
 #define ERROR_IO_DEVICE             1117
 #define ERROR_POSSIBLE_DEADLOCK     1131
 #define ERROR_BAD_DEVICE            1200
+
+#endif  /* __WINE_WINERROR_H */
diff --git a/include/winnt.h b/include/winnt.h
index 654ec46..55a96a8 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -10,6 +10,7 @@
 #include "wintypes.h"
 
 /* Heap flags */
+
 #define HEAP_NO_SERIALIZE               0x00000001
 #define HEAP_GROWABLE                   0x00000002
 #define HEAP_GENERATE_EXCEPTIONS        0x00000004
@@ -138,4 +139,50 @@
 
 #endif  /* __WINE__ */
 
+/* Language IDs */
+
+#define LANG_NEUTRAL                     0x00
+#define LANG_ARABIC                      0x01
+#define LANG_AFRIKAANS                   0x36
+#define LANG_ALBANIAN                    0x1c
+#define LANG_BASQUE                      0x2d
+#define LANG_BULGARIAN                   0x02
+#define LANG_BYELORUSSIAN                0x23
+#define LANG_CATALAN                     0x03
+#define LANG_CHINESE                     0x04
+#define LANG_CROATIAN                    0x1a
+#define LANG_CZECH                       0x05
+#define LANG_DANISH                      0x06
+#define LANG_DUTCH                       0x13
+#define LANG_ENGLISH                     0x09
+#define LANG_ESTONIAN                    0x25
+#define LANG_FAEROESE                    0x38
+#define LANG_FARSI                       0x29
+#define LANG_FINNISH                     0x0b
+#define LANG_FRENCH                      0x0c
+#define LANG_GERMAN                      0x07
+#define LANG_GREEK                       0x08
+#define LANG_HEBREW                      0x0D
+#define LANG_HUNGARIAN                   0x0e
+#define LANG_ICELANDIC                   0x0f
+#define LANG_INDONESIAN                  0x21
+#define LANG_ITALIAN                     0x10
+#define LANG_JAPANESE                    0x11
+#define LANG_KOREAN                      0x12
+#define LANG_LATVIAN                     0x26
+#define LANG_LITHUANIAN                  0x27
+#define LANG_NORWEGIAN                   0x14
+#define LANG_POLISH                      0x15
+#define LANG_PORTUGUESE                  0x16
+#define LANG_ROMANIAN                    0x18
+#define LANG_RUSSIAN                     0x19
+#define LANG_SLOVAK                      0x1b
+#define LANG_SLOVENIAN                   0x24
+#define LANG_SORBIAN                     0x2e
+#define LANG_SPANISH                     0x0a
+#define LANG_SWEDISH                     0x1d
+#define LANG_THAI                        0x1e
+#define LANG_TURKISH                     0x1f
+#define LANG_UKRAINIAN                   0x22
+
 #endif  /* __WINE_WINNT_H */
diff --git a/include/x11drv.h b/include/x11drv.h
index 0c811a4..9372224 100644
--- a/include/x11drv.h
+++ b/include/x11drv.h
@@ -62,5 +62,38 @@
                                  INT32 widthDst, INT32 heightDst,
                                  struct tagDC *dcSrc, INT32 xSrc, INT32 ySrc,
                                  INT32 widthSrc, INT32 heightSrc, DWORD rop );
+extern BOOL32 X11DRV_MoveToEx( struct tagDC *dc, INT32 x, INT32 y,LPPOINT32 pt);
+extern BOOL32 X11DRV_LineTo( struct tagDC *dc, INT32 x, INT32 y);
+extern BOOL32 X11DRV_Arc( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
+			  INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
+			  INT32 yend );
+extern BOOL32 X11DRV_Pie( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
+			  INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
+			  INT32 yend );
+extern BOOL32 X11DRV_Chord( struct tagDC *dc, INT32 left, INT32 top,
+			    INT32 right, INT32 bottom, INT32 xstart,
+			    INT32 ystart, INT32 xend, INT32 yend );
+extern BOOL32 X11DRV_Ellipse( struct tagDC *dc, INT32 left, INT32 top,
+			      INT32 right, INT32 bottom );
+extern BOOL32 X11DRV_Rectangle(struct tagDC *dc, INT32 left, INT32 top,
+			      INT32 right, INT32 bottom);
+extern BOOL32 X11DRV_RoundRect( struct tagDC *dc, INT32 left, INT32 top,
+				INT32 right, INT32 bottom, INT32 ell_width,
+				INT32 ell_height );
+extern COLORREF X11DRV_SetPixel( struct tagDC *dc, INT32 x, INT32 y,
+				 COLORREF color );
+extern COLORREF X11DRV_GetPixel( struct tagDC *dc, INT32 x, INT32 y);
+extern BOOL32 X11DRV_PaintRgn( struct tagDC *dc, HRGN32 hrgn );
+extern BOOL32 X11DRV_Polyline( struct tagDC *dc,const LPPOINT32 pt,INT32 count);
+extern BOOL32 X11DRV_Polygon( struct tagDC *dc, LPPOINT32 pt, INT32 count );
+extern BOOL32 X11DRV_PolyPolygon( struct tagDC *dc, LPPOINT32 pt,
+				  LPINT32 counts, UINT32 polygons);
+
+extern BOOL32 X11DRV_ExtFloodFill( struct tagDC *dc, INT32 x, INT32 y,
+				   COLORREF color, UINT32 fillType );
+extern BOOL32 X11DRV_ExtTextOut( struct tagDC *dc, INT32 x, INT32 y,
+				 UINT32 flags, const RECT32 *lprect,
+				 LPCSTR str, UINT32 count, const INT32 *lpDx );
+
 
 #endif  /* __WINE_X11DRV_H */