Release 970804

Sun Aug  3 14:03:43 1997  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [documentation/Makefile.in]
	Create links for files included from wine.texinfo.

	* [wine.man]
	Moved to documentation dir.

	* [if1632/builtin.c]
	Made SYSTEM.DLL always loaded by default.

	* [loader/signal.c] [if1632/signal.c]
	Split signal.c in generic/emulator-specific parts.

	* [misc/system.c] [if1632/thunk.c]
	Implemented system timer functions.
	Fixed InquireSystem parameters.

	* [msdos/ioports.c]
	Defined inb/outb functions to avoid including asm/io.h.
	Use the right instruction for word and dword direct access.

	* [multimedia/mmsystem.c]
	Fixed CallTo16 usage.

Sat Aug 2 13:05:23 1997  Andreas Mohr <100.30936@germany.net>

	* [controls/edit.c]
	When text is inserted into a newly created editline, the caret
	is placed after the text. Should be placed before the text. Fixed.

	* [files/file.c]
	Removed O_TRUNC flag from OF_WRITE mode in _lopen32().
	According to doc _lopen() never truncates files.

	* [if1632/user.spec] [misc/comm.c]
	Added stub for EnableCommNotification().

	* [misc/ver.c]
	Fixed problem with VerQueryValue*() running over end of name table
	in rare cases.

	* [msdos/int21.c]
	Enhanced ioctlGetDeviceInfo() to correctly return the current drive.

	* [multimedia/joystick.c] [windows/message.c]
	Added joystick support !!!
	Needs Linux >= 2.1.45 or joystick-0.8.0.tar.gz.

Fri Aug  1 18:02:09 1997  Morten Welinder  <terra@diku.dk>

	* [if1632/user32.spec]
	Define DrawAnimatedRects32.

	* [graphics/painting.c]
	(DrawAnimatedRects32): Create stub.

	* [misc/registry.c]
	Cope with NULL class in RegQueryInfoKey32A.

	* [if1632/user32.spec]
	Add GetMenuItemInfo32[AW].

	* [controls/menu.c]
	(InsertMenu32A): Upgrade flags to 8 hex-digits.
	(MENUEX_ParseResource): First shot at implementation.
	(LoadMenuIndirect32A): Handle extended menus.
	(GetMenuItemInfo32[AW]): First shot at implementation.

	* [include/windows.h]
	Define MFT_*, MFS_*, MIIM_* macros.  Define MENUITEMINFO[AW]
 	structures and pointers.

	* [Makefile.in]
	(etags): Add TAGS as target.

	* [if1632/comctl32.spec]
	Use Windows 95's ordinals.  Add a few missing stubs.

Thu Jul 31 14:01:13 1997  Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>

	* [objects/color.c]
	Fix for 16 color mode of XFree.

	* [if1632/kernel32.spec][win32/ordinals.c]
	Moved/added some ordinal only exported functions from kernel32.dll
	(mostly thunking preparation stuff).

Wed Jul 30 09:16:38 1997  John Harvey <john@division.co.uk>

	* [graphics/win16drv/init.c] [include/win16drv.h]
        Escape(SETABORTPROC) returns success to keep pbrush.exe happy.
        Escape(NEXTBAND) implemented to make HP PCL printer driver work in
 	word.  Stub for PATBLT added to start work on printing more than
 	text.

Mon Jul 28 13:14:28 1997  Victor Schneider <vischne@ibm.net>

	* [libtest/expand.c]
	New Winelib test program.

Wed Jul 23 09:37:13 1997  Adrian Harvey <adrian@select.com.au>

	* [tools/build.c] [tools/build-spec.txt] [if1632/kernel.spec]
	  [if1632/user.spec]
	Added ability to set filename wine considers the built-in DLLs 
	to be in  to something other than name.DLL with new "file" key
	in .spec files.
	Made kernel filename KRNL386.EXE (some programs use this name 
	explicitly - ChemOffice install now starts up).
	Made user filename USER.EXE (just to be tidy).

Sun Jul 20 23:51:02 1997  David A. Cuthbert <dacut@henry.ece.cmu.edu>

	* [controls/menu.c] [misc/tweak.c] [include/tweak.h]
	Fixed MENU_KeyLeft and MENU_KeyRight to handle multiple-column
	menus.  Misc menu drawing issues for Win95 tweaks fixed.  Misc
	warnings fixed.

	* [loader/module.c]
	Spaces are now permitted in file/path names on the command line.
	If multiple matches can be made, the preferred match is the
	path/file with fewer spaces.

Tue Jul 29 02:21:15 1997  Bruce Milner <Bruce.Milner@genetics.utah.edu>

	* [misc/compobj.c]
	Added CLSIDFromString and StringFromCLSID.
diff --git a/include/callback.h b/include/callback.h
index d1cb792..c2d1020 100644
--- a/include/callback.h
+++ b/include/callback.h
@@ -48,6 +48,8 @@
 
 #define CallDriverProc( func, dwId, msg, hdrvr, lparam1, lparam2 ) \
     CallTo16_long_lwwll( func, dwId, msg, hdrvr, lparam1, lparam2 )
+#define CallDriverCallback( func, hdev, msg, user, lparam1, lparam2 ) \
+    CallTo16_word_wwlll( func, hdev, msg, user, lparam1, lparam2 )
 #define CallTimeFuncProc( func, id, msg, dwUser, dw1, dw2 ) \
     CallTo16_word_wwlll( func, id, msg, dwUser, dw1, dw2 )
 #define CallWindowsExitProc( func, nExitType ) \
@@ -78,6 +80,8 @@
 
 #define CallDriverProc( func, dwId, msg, hdrvr, lparam1, lparam2 ) \
     (*func)( dwId, msg, hdrvr, lparam1, lparam2 )
+#define CallDriverCallback( func, hdev, msg, user, lparam1, lparam2 ) \
+    (*func)( hdev, msg, user, lparam1, lparam2 )
 #define CallTimeFuncProc( func, id, msg, dwUser, dw1, dw2 ) \
     (*func)( id, msg, dwUser, dw1, dw2 )
 #define CallWindowsExitProc( func, nExitType ) \
diff --git a/include/compobj.h b/include/compobj.h
new file mode 100644
index 0000000..baa348f
--- /dev/null
+++ b/include/compobj.h
@@ -0,0 +1,16 @@
+#if !defined(COMPOBJ_H)
+#define COMPOBJ_H
+
+struct tagCLSID {
+  DWORD	Data1;
+  WORD	Data2;
+  WORD  Data3;
+  BYTE	Data4[8];
+};
+
+typedef struct tagCLSID CLSID;
+
+OLESTATUS StringFromCLSID(const CLSID *id, LPSTR);
+OLESTATUS CLSIDFromString(const LPCSTR, CLSID *);
+
+#endif
diff --git a/include/miscemu.h b/include/miscemu.h
index dba7cff..4b5847b 100644
--- a/include/miscemu.h
+++ b/include/miscemu.h
@@ -10,7 +10,7 @@
 #include <stdio.h>
 #include "winnt.h"
 
-  /* miscemu/dosmem.c */
+  /* msdos/dosmem.c */
 extern HANDLE16 DOSMEM_BiosSeg;
 extern DWORD DOSMEM_CollateTable;
 
@@ -24,9 +24,6 @@
 extern LPVOID DOSMEM_MapDosToLinear(UINT32); /* linear DOS to Wine */
 extern UINT32 DOSMEM_MapLinearToDos(LPVOID); /* linear Wine to DOS */
 
-/* miscemu/interrupts.c */
-extern BOOL32 INT_Init(void);
-
 /* msdos/interrupts.c */
 extern FARPROC16 INT_GetHandler( BYTE intnum );
 extern void INT_SetHandler( BYTE intnum, FARPROC16 handler );
@@ -39,6 +36,14 @@
 /* msdos/int1a.c */
 extern DWORD INT1A_GetTicksSinceMidnight(void);
 
+/* loader/signal.c */
+extern BOOL32 SIGNAL_Init(void);
+extern void SIGNAL_SetHandler( int sig, void (*func)(), int flags );
+extern void SIGNAL_MaskAsyncEvents( BOOL32 flag );
+
+/* if1632/signal.c */
+extern BOOL32 SIGNAL_InitEmulator(void);
+
 #define INT_BARF(context,num) \
     fprintf( stderr, "int%x: unknown/not implemented parameters:\n" \
                      "int%x: AX %04x, BX %04x, CX %04x, DX %04x, " \
diff --git a/include/module.h b/include/module.h
index 872b498..563a2d8 100644
--- a/include/module.h
+++ b/include/module.h
@@ -126,6 +126,7 @@
 extern BOOL16 MODULE_SetEntryPoint( HMODULE16 hModule, WORD ordinal,
                                     WORD offset );
 extern FARPROC16 MODULE_GetWndProcEntry16( const char *name );
+extern FARPROC16 WIN32_GetProcAddress16( HMODULE16 hmodule, LPSTR name );
 
 /* builtin.c */
 extern BOOL16 BUILTIN_Init(void);
diff --git a/include/tweak.h b/include/tweak.h
index d2dcbf6..02ac88a 100644
--- a/include/tweak.h
+++ b/include/tweak.h
@@ -15,7 +15,9 @@
 int  TWEAK_CheckConfiguration();
 INT32  TWEAK_PartyMessageBox(LPCSTR, LPCSTR, DWORD);
 void  TWEAK_DrawReliefRect95(HDC32, RECT32 const *);
-void  TWEAK_DrawMenuSeparator95(HDC32, UINT32, UINT32, UINT32);
+void  TWEAK_DrawRevReliefRect95(HDC32, RECT32 const *);
+void  TWEAK_DrawMenuSeparatorHoriz95(HDC32, UINT32, UINT32, UINT32);
+void  TWEAK_DrawMenuSeparatorVert95(HDC32, UINT32, UINT32, UINT32);
 extern int  TWEAK_Win95Look;
 extern int  TWEAK_WineInitialized;
 extern HPEN32  TWEAK_PenFF95;
diff --git a/include/win16drv.h b/include/win16drv.h
index f7d144c..88acb12 100644
--- a/include/win16drv.h
+++ b/include/win16drv.h
@@ -188,6 +188,8 @@
                                   const RECT32 *lprect, LPCSTR str, UINT32 count,
                                   const INT32 *lpDx );
 extern HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle );
+extern BOOL32 WIN16DRV_PatBlt( struct tagDC *dc, INT32 left, INT32 top,
+                               INT32 width, INT32 height, DWORD rop );
 
 
 
diff --git a/include/windows.h b/include/windows.h
index 28dd31d..06814ac 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -2844,6 +2844,67 @@
 #define MF_HELP            0x4000
 #define MF_MOUSESELECT     0x8000
 
+/* Flags for extended menu item types.  */
+#define MFT_STRING         MF_STRING
+#define MFT_BITMAP         MF_BITMAP
+#define MFT_MENUBARBREAK   MF_MENUBARBREAK
+#define MFT_MENUBREAK      MF_MENUBREAK
+#define MFT_OWNERDRAW      MF_OWNERDRAW
+#define MFT_RADIOCHECK     0x00000200L
+#define MFT_SEPARATOR      MF_SEPARATOR
+#define MFT_RIGHTORDER     0x00002000L
+#define MFT_RIGHTJUSTIFY   MF_RIGHTJUSTIFY
+
+/* Flags for extended menu item states.  */
+#define MFS_GRAYED          0x00000003L
+#define MFS_DISABLED        MFS_GRAYED
+#define MFS_CHECKED         MF_CHECKED
+#define MFS_HILITE          MF_HILITE
+#define MFS_ENABLED         MF_ENABLED
+#define MFS_UNCHECKED       MF_UNCHECKED
+#define MFS_UNHILITE        MF_UNHILITE
+#define MFS_DEFAULT         MF_DEFAULT
+
+typedef struct {
+  UINT32    cbSize;
+  UINT32    fMask;
+  UINT32    fType;
+  UINT32    fState;
+  UINT32    wID;
+  HMENU32   hSubMenu;
+  HBITMAP32 hbmpChecked;
+  HBITMAP32 hbmpUnchecked;
+  DWORD     dwItemData;
+  LPSTR     dwTypeData;
+  UINT32    cch;
+} MENUITEMINFO32A, *LPMENUITEMINFO32A;
+
+typedef struct {
+  UINT32    cbSize;
+  UINT32    fMask;
+  UINT32    fType;
+  UINT32    fState;
+  UINT32    wID;
+  HMENU32   hSubMenu;
+  HBITMAP32 hbmpChecked;
+  HBITMAP32 hbmpUnchecked;
+  DWORD     dwItemData;
+  LPWSTR    dwTypeData;
+  UINT32    cch;
+} MENUITEMINFO32W, *LPMENUITEMINFO32W;
+
+DECL_WINELIB_TYPE_AW(MENUITEMINFO);
+DECL_WINELIB_TYPE_AW(LPMENUITEMINFO);
+
+/* Field specifiers for MENUITEMINFO[AW] type.  */
+#define MIIM_STATE       0x00000001
+#define MIIM_ID          0x00000002
+#define MIIM_SUBMENU     0x00000004
+#define MIIM_CHECKMARKS  0x00000008
+#define MIIM_TYPE        0x00000010
+#define MIIM_DATA        0x00000020
+
+
 #ifndef NOWINOFFSETS
 #define GCW_HBRBACKGROUND (-10)
 #endif
@@ -5070,13 +5131,17 @@
 WORD       ChangeSelector(WORD,WORD);
 INT16      CloseComm(INT16);
 HGLOBAL16  CreateCursorIconIndirect(HINSTANCE16,CURSORICONINFO*,LPCVOID,LPCVOID);
+WORD       CreateSystemTimer(WORD,FARPROC16);
 BOOL16     DCHook(HDC16,WORD,DWORD,LPARAM);
 VOID       DirectedYield(HTASK16);
 HGLOBAL16  DirectResAlloc(HINSTANCE16,WORD,UINT16);
+VOID       DisableSystemTimers(void);
 BOOL16     DlgDirSelect(HWND16,LPSTR,INT16);
 BOOL16     DlgDirSelectComboBox(HWND16,LPSTR,INT16);
 DWORD      DumpIcon(SEGPTR,WORD*,SEGPTR*,SEGPTR*);
+BOOL16     EnableCommNotification(INT16,HWND16,INT16,INT16);
 BOOL16     EnableHardwareInput(BOOL16);
+VOID       EnableSystemTimers(void);
 INT16      ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16);
 HANDLE16   FarGetOwner(HGLOBAL16);
 VOID       FarSetOwner(HGLOBAL16,HANDLE16);
@@ -5283,6 +5348,9 @@
 #define    GetFullPathName WINELIB_NAME_AW(GetFullPathName)
 VOID       GetLocalTime(LPSYSTEMTIME);
 DWORD      GetLogicalDrives(void);
+BOOL32     GetMenuItemInfo32A(HMENU32,UINT32,BOOL32,MENUITEMINFO32A*);
+BOOL32     GetMenuItemInfo32W(HMENU32,UINT32,BOOL32,MENUITEMINFO32W*);
+#define    GetMenuItemInfo WINELIB_NAME_AW(GetMenuItemInfo)
 UINT32     GetOEMCP(void);
 DWORD      GetPriorityClass(HANDLE32);
 HANDLE32   GetProcessHeap(void);