Release 951226

Sat Dec 23 18:15:59 1995  Alexandre Julliard  <julliard@sunsite.unc.edu>

	* [configure.in] [Makefile.in] [tools/install-sh]
	New 'install' target installs Wine binary, library and man page.
	Library is now more logically named libwine.a.
	Split toolkit/ directory into library (for library code) and
	libtest (for test programs).

	* [controls/edit.c]
	Quick hack to partially support EM_PASSWORD style (avoids
	displaying your passwords on the screen when testing programs...)

	* [configure.in] [controls/menu.c] [include/resource.h]
	  [misc/commdlg.c] [misc/ole2nls.c] [misc/shell.c] [windows/msgbox.c]
	Language is now a run-time option (wine -language xx).

	* [debugger/dbg.y]
	Dump some more debugging info on crash.

	* [misc/profile.c]
	Only consider ';' as a comment if it's the first non-blank
	character on the line.

	* [miscemu/dpmi.c]
	More debugging info for real-mode callback.

	* [objects/gdiobj.c]
	Rewrote EnumObjects() to do the Right Thing.

	* [resources/sysres*]
	New directory containing system resources.

Fri Dec 22 11:24:39 GMT 1995  John Harvey <john@division.co.uk>

	* [win32/file.c] [win32/memory.c]
        Unixware doesn't have MAP_ANON ifdefed out for now.

	* [misc/dos_fs.c]
        DOS_GetDosFileName didn't truncate paths starting ./ properly.

	* [tools/build.c]
	Produces assembly code that works with the unixware assembler.

Wed Dec 20 22:22:29 +0100 1995  Morten Welinder <terra@diku.dk>

	* [miscemu/instr.c]
	INSTR_GetOperandAddr: 16-bit addresses should be masked to 16 bits.

	* [misc/dos_fs.c]
	DOS_readdir should always return directories, even if they don't
 	match the file name mask.

Tue Dec 19 18:00:00 1995  Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
	
	* [misc/exec.c]
	Give arguments to winhelp.

	* [miscemu/int21.c]
	Implemented Interrupt 21 AX=6C00 EXTENDED OPEN/CREATE.
	Created function ExtendedOpenCreateFile.
	Give for some Windows95 interrupts the return value 'not
	implemented'.

Sun Dec 17 16:51:56 EST 1995  Jim Peterson <jspeter@birch.ee.vt.edu>

	* [include/kernel32.h] [include/windows.h]
	Moved the typedefs for SYSTEMTIME and LPSYSTEMTIME from
 	include/kernel32.h to include/windows.h and declared the new Win32
 	API functions Sleep(), GetLocalTime(), and GetSystemTime().
  	Redefined INFINITE as 0xFFFFFFFF if WINELIB32.

	* [rc/rc (new file)]
	Created the shell script 'rc', which should simplify resource
 	compilation.

	* [win32/environment.c]
	Kludged around an undefined reference to wine_files.  This change
 	should be fixed some time.

	* [win32/time.c] [if1632/kernel32.spec]
	Added the functions GetSystemTime(), and Sleep().

	* [miscemu/int21.c]
	Renamed static function GetSystemTime to INT21_GetSystemTime to
 	avoid conflicts with the API function of the same name.

	* [include/wintypes.h]
	Added the SPFMT definition for printf statements.

	* [misc/shell.c] [include/shell.h]
	Changed ERROR_* defines to SHELL_ERROR_*, as they were conflicting
 	with the ones in include/winerror.h.  They should probably use the
 	versions in winerror.h, but I'm not certain, and that can be done
 	later.

	* [windows/mdi.c]
	Translated WM_MDIACTIVATE(?,(LOhwnd,HIhwnd)) messages to
 	WM_MDIACTIVATE(HIhwnd,LOhwnd) for WINELIB32.  The ? parameter
 	(boolean) was discarded with this translation.  Translated handler
 	of WM_MDISETMENU(ref,(loHMENU,hiHMENU)) to handle
 	WM_MDISETMENU(loHMENU, hiHMENU) messages in WINELIB32 (ref assumed
 	false, call DrawMenuBar() if desired).

	* [*/*]
	General explicit casts and more rigid typing to remove warnings.

	* [include/winpos.h] [windows/winpos.c]
	Changed return type of WINPOS_ChangeActiveWindow to BOOL.

	* [include/commdlg.h] [misc/commdlg.c]
	Added prototypes for ChooseColor(), CommDlgExtendedError(),
 	FindText() GetFileTitle(), GetOpenFileName(), GetSaveFileName(),
 	PrintDlg, and ReplaceText().
	Renamed the CommDlgExtendError() function to CommDlgExtendedError().
	Made GetFileTitle return a short, as per the API definition.

	* [Makefile.in]
	Added line to clean and distclean that removes temporaries from
 	the include directory.

Sat Dec 16 19:39:14 MET 1995  Steffen Moeller <smoe0024@rz.uni-hildesheim.de>

	* [controls/edit.c]
	Almost rewrote EDIT_GetLineMsg.

Sat Dec 16 13:51:48 MST 1995  Andrew Taylor <andrew@riscan.com>

	* [windows/mdi.c]
	Fixed MDITile() bug that occurs when 0 windows are present or all
	windows are minimized.

Wed Dec 12 23:30:00 1995  Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>

	* [misc/profile.c]
        Try harder to find files, especially in the working directory.
	Look in $HOME/.wine too and create it there if it isn't found.
diff --git a/include/commdlg.h b/include/commdlg.h
index dcc96b9..f51e4b6 100644
--- a/include/commdlg.h
+++ b/include/commdlg.h
@@ -290,6 +290,15 @@
 #define FINDDLG		       		9
 #define REPLACEDLG	       		10
 
+BOOL  ChooseColor(LPCHOOSECOLOR lpChCol);
+DWORD CommDlgExtendedError(void);
+BOOL  FindText(LPFINDREPLACE lpFind);
+short GetFileTitle(LPCSTR lpFile, LPSTR lpTitle, UINT cbBuf);
+BOOL  GetOpenFileName(LPOPENFILENAME lpofn);
+BOOL  GetSaveFileName(LPOPENFILENAME lpofn);
+BOOL  PrintDlg(LPPRINTDLG lpPrint);
+BOOL  ReplaceText(LPFINDREPLACE lpFind);
+
 LRESULT FileOpenDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
 LRESULT FileSaveDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
 LRESULT ColorDlgProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
diff --git a/include/global.h b/include/global.h
index 6ea7b40..d1692be 100644
--- a/include/global.h
+++ b/include/global.h
@@ -16,7 +16,7 @@
     int shmid;
 } SHMDATA;
 
-extern HGLOBAL GLOBAL_CreateBlock( WORD flags, void *ptr, DWORD size,
+extern HGLOBAL GLOBAL_CreateBlock( WORD flags, const void *ptr, DWORD size,
                                    HGLOBAL hOwner, BOOL isCode,
                                    BOOL is32Bit, BOOL isReadOnly,
 				   SHMDATA *shmdata);
diff --git a/include/kernel32.h b/include/kernel32.h
index 501e8d8..367a639 100644
--- a/include/kernel32.h
+++ b/include/kernel32.h
@@ -56,16 +56,7 @@
         HANDLE hStdError;
 } STARTUPINFO, *LPSTARTUPINFO;
 
-typedef struct {
-        WORD wYear;
-        WORD wMonth;
-        WORD wDayOfWeek;
-        WORD wDay;
-        WORD wHour;
-        WORD wMinute;
-        WORD wSecond;
-        WORD wMilliseconds;
-} SYSTEMTIME, *LPSYSTEMTIME;
+/* SYSTEMTIME, and LPSYSTEMTIME moved to include/windows.h (JBP) */
 
 typedef struct {
         LONG Bias;
diff --git a/include/libres.h b/include/libres.h
index 918f042..a719692 100644
--- a/include/libres.h
+++ b/include/libres.h
@@ -6,18 +6,16 @@
 
 #ifdef WINELIB
 
-#include "windows.h"
+#include "wintypes.h"
 #include "resource.h"
 
-void    LIBRES_RegisterResources(struct resource** Res);
-
-INT     LIBRES_AccessResource( HINSTANCE hModule, HRSRC hRsrc );
-HGLOBAL LIBRES_AllocResource( HINSTANCE hModule, HRSRC hRsrc, DWORD size );
-HRSRC   LIBRES_FindResource( HINSTANCE hModule, LPCSTR name, LPCSTR type );
-BOOL    LIBRES_FreeResource( HGLOBAL handle );
-HGLOBAL LIBRES_LoadResource( HINSTANCE hModule, HRSRC hRsrc );
-LPVOID  LIBRES_LockResource( HGLOBAL handle );
-DWORD   LIBRES_SizeofResource( HINSTANCE hModule, HRSRC hRsrc );
+extern INT     LIBRES_AccessResource( HINSTANCE hModule, HRSRC hRsrc );
+extern HGLOBAL LIBRES_AllocResource( HINSTANCE hModule, HRSRC hRsrc, DWORD size );
+extern HRSRC   LIBRES_FindResource( HINSTANCE hModule, LPCSTR name, LPCSTR type );
+extern BOOL    LIBRES_FreeResource( HGLOBAL handle );
+extern HGLOBAL LIBRES_LoadResource( HINSTANCE hModule, HRSRC hRsrc );
+extern LPVOID  LIBRES_LockResource( HGLOBAL handle );
+extern DWORD   LIBRES_SizeofResource( HINSTANCE hModule, HRSRC hRsrc );
 
 #endif /* WINELIB */
 
diff --git a/include/message.h b/include/message.h
index 8956faf..85159b0 100644
--- a/include/message.h
+++ b/include/message.h
@@ -23,7 +23,7 @@
 
 typedef struct tagMESSAGEQUEUE
 {
-  WORD      next;                   /* 00 Next queue */
+  HANDLE    next;                   /* 00 Next queue */
   HTASK     hTask;                  /* 02 hTask owning the queue */
   WORD      msgSize;                /* 04 Size of messages in the queue */
   WORD      msgCount;               /* 06 Number of waiting messages */
diff --git a/include/module.h b/include/module.h
index 5ab729f..3ca58cc 100644
--- a/include/module.h
+++ b/include/module.h
@@ -113,7 +113,7 @@
 extern int MODULE_OpenFile( HMODULE hModule );
 extern LPSTR MODULE_GetModuleName( HMODULE hModule );
 extern WORD MODULE_GetOrdinal( HMODULE hModule, char *name );
-extern DWORD MODULE_GetEntryPoint( HMODULE hModule, WORD ordinal );
+extern SEGPTR MODULE_GetEntryPoint( HMODULE hModule, WORD ordinal );
 extern BOOL MODULE_SetEntryPoint( HMODULE hModule, WORD ordinal, WORD offset );
 extern LPSTR MODULE_GetEntryPointName( HMODULE hModule, WORD ordinal );
 
diff --git a/include/resource.h b/include/resource.h
index 26d5897..358a43e 100644
--- a/include/resource.h
+++ b/include/resource.h
@@ -9,6 +9,40 @@
 
 #include "wintypes.h"
 
+struct resource
+{
+    int id;
+    int type;
+    const char *name;
+    const unsigned char* bytes;
+    unsigned size;
+};
+
+/* Built-in resources */
+typedef enum
+{
+    SYSRES_MENU_SYSMENU,
+    SYSRES_DIALOG_MSGBOX,
+    SYSRES_DIALOG_SHELL_ABOUT_MSGBOX,
+    SYSRES_DIALOG_OPEN_FILE,
+    SYSRES_DIALOG_SAVE_FILE,
+    SYSRES_DIALOG_PRINT,
+    SYSRES_DIALOG_PRINT_SETUP,
+    SYSRES_DIALOG_CHOOSE_FONT,
+    SYSRES_DIALOG_CHOOSE_COLOR,
+    SYSRES_DIALOG_FIND_TEXT,
+    SYSRES_DIALOG_REPLACE_TEXT
+} SYSTEM_RESOURCE;
+
+extern void LIBRES_RegisterResources(const struct resource* const * Res);
+
+#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)
+#define WINE_CONSTRUCTOR  __attribute__((constructor))
+#define HAVE_WINE_CONSTRUCTOR
+#else
+#define WINE_CONSTRUCTOR
+#endif
+
 extern int NE_AccessResource( HMODULE hModule, HRSRC hRsrc );
 extern BOOL NE_FreeResource( HMODULE hModule, HGLOBAL handle );
 extern HRSRC NE_FindResource( HMODULE hModule, SEGPTR typeId, SEGPTR resId );
@@ -17,19 +51,7 @@
 extern HGLOBAL NE_AllocResource( HMODULE hModule, HRSRC hRsrc, DWORD size );
 extern HGLOBAL NE_LoadResource( HMODULE hModule,  HRSRC hRsrc );
 
-struct resource
-{
-        int id,type;
-        char *name;
-        unsigned char* bytes;
-        unsigned size;
-};
-
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)
-#define WINE_CONSTRUCTOR  __attribute__((constructor))
-#define HAVE_WINE_CONSTRUCTOR
-#else
-#define WINE_CONSTRUCTOR
-#endif
+extern HANDLE SYSRES_LoadResource( SYSTEM_RESOURCE id );
+extern void SYSRES_FreeResource( HANDLE handle );
 
 #endif /* __WINE_RESOURCE_H */
diff --git a/include/selectors.h b/include/selectors.h
index 83a5309..d06f13d 100644
--- a/include/selectors.h
+++ b/include/selectors.h
@@ -10,9 +10,10 @@
 #include "windows.h"
 #include "ldt.h"
 
-extern WORD SELECTOR_AllocBlock( void *base, DWORD size, enum seg_type type,
-                                 BOOL is32bit, BOOL readonly );
-extern WORD SELECTOR_ReallocBlock( WORD sel, void *base, DWORD size,
+extern WORD SELECTOR_AllocBlock( const void *base, DWORD size,
+				 enum seg_type type, BOOL is32bit,
+				 BOOL readonly );
+extern WORD SELECTOR_ReallocBlock( WORD sel, const void *base, DWORD size,
                                    enum seg_type type, BOOL is32bit,
                                    BOOL readonly );
 
diff --git a/include/shell.h b/include/shell.h
index 652f481..88ca4b1 100644
--- a/include/shell.h
+++ b/include/shell.h
@@ -7,15 +7,15 @@
 extern void SHELL_SaveRegistry();
 extern BOOL SHELL_Init();
 
-#define ERROR_SUCCESS           0L
-#define ERROR_BADDB             1L
-#define ERROR_BADKEY            2L
-#define ERROR_CANTOPEN          3L
-#define ERROR_CANTREAD          4L
-#define ERROR_CANTWRITE         5L
-#define ERROR_OUTOFMEMORY       6L
-#define ERROR_INVALID_PARAMETER 7L
-#define ERROR_ACCESS_DENIED     8L
+#define SHELL_ERROR_SUCCESS           0L
+#define SHELL_ERROR_BADDB             1L
+#define SHELL_ERROR_BADKEY            2L
+#define SHELL_ERROR_CANTOPEN          3L
+#define SHELL_ERROR_CANTREAD          4L
+#define SHELL_ERROR_CANTWRITE         5L
+#define SHELL_ERROR_OUTOFMEMORY       6L
+#define SHELL_ERROR_INVALID_PARAMETER 7L
+#define SHELL_ERROR_ACCESS_DENIED     8L
 
 #define REG_SZ                  1           /* string type */
 
diff --git a/include/windows.h b/include/windows.h
index e0430aa..3934834 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -1104,7 +1104,11 @@
 #define ONE5STOPBITS	1
 #define TWOSTOPBITS	2
 #define IGNORE		0
+#ifdef WINELIB32
+#define INFINITE        0xFFFFFFFF
+#else
 #define INFINITE	0xFFFF
+#endif
 
 #define CE_RXOVER	0x0001
 #define CE_OVERRUN	0x0002
@@ -2273,7 +2277,6 @@
 #define LMEM_ZEROINIT       0x0040
 #define LMEM_MODIFY         0x0080
 #define LMEM_DISCARDABLE    0x0F00
-#define LMEM_WINE_ALIGN     0x1000
 
 #define GMEM_FIXED          0x0000
 #define GMEM_MOVEABLE       0x0002
@@ -2510,6 +2513,18 @@
 #define DBF_APPLICATION     0x0008
 #define DBF_DRIVER          0x0010
 
+/* Win32-specific structures */
+
+typedef struct {
+        WORD wYear;
+        WORD wMonth;
+        WORD wDayOfWeek;
+        WORD wDay;
+        WORD wHour;
+        WORD wMinute;
+        WORD wSecond;
+        WORD wMilliseconds;
+} SYSTEMTIME, *LPSYSTEMTIME;
 
 #ifndef WINELIB
 #pragma pack(4)
@@ -2657,7 +2672,7 @@
 WORD       EnumClipboardFormats(WORD);
 int        EnumFonts(HDC,LPSTR,FARPROC,LPSTR);
 BOOL       EnumMetaFile(HDC,LOCALHANDLE,FARPROC,BYTE*);
-int        EnumObjects(HDC,int,FARPROC,LPSTR);
+int        EnumObjects(HDC,int,FARPROC,LPARAM);
 int        EnumProps(HWND,FARPROC);
 BOOL       EnumTaskWindows(HANDLE,FARPROC,LONG);
 BOOL       EnumWindows(FARPROC,LONG);
@@ -2762,10 +2777,11 @@
 void       GetKeyboardState(BYTE*);
 int        GetKeyboardType(int);
 HWND       GetLastActivePopup(HWND);
+VOID       GetLocalTime(LPSYSTEMTIME);     /* Win32 */
 WORD       GetMapMode(HDC);
 HMENU      GetMenu(HWND);
 DWORD      GetMenuCheckMarkDimensions(void);
-WORD       GetMenuItemCount(HMENU);
+INT        GetMenuItemCount(HMENU);
 UINT       GetMenuItemID(HMENU,int);
 UINT       GetMenuState(HMENU,UINT,UINT);
 int        GetMenuString(HMENU,UINT,LPSTR,short,UINT);
@@ -2815,6 +2831,7 @@
 int        GetSystemMetrics(WORD);
 WORD       GetSystemPaletteEntries(HDC,WORD,WORD,LPPALETTEENTRY);
 WORD       GetSystemPaletteUse(HDC);
+VOID       GetSystemTime(LPSYSTEMTIME);    /* Win32 */
 DWORD      GetTabbedTextExtent(HDC,LPSTR,int,int,LPINT);
 HINSTANCE  GetTaskDS(void);
 HGLOBAL    GetTaskQueue(HTASK);
@@ -3143,6 +3160,7 @@
 void       ShowScrollBar(HWND,WORD,BOOL);
 BOOL       ShowWindow(HWND,int);
 DWORD      SizeofResource(HINSTANCE,HRSRC);
+VOID       Sleep(DWORD);      /* Win32 */
 int        StartSound(void);
 int        StopSound(void);
 BOOL       StretchBlt(HDC,short,short,short,short,HDC,short,short,short,short,DWORD);
diff --git a/include/winpos.h b/include/winpos.h
index 56cabb7..8660036 100644
--- a/include/winpos.h
+++ b/include/winpos.h
@@ -28,7 +28,7 @@
 
 extern void WINPOS_FindIconPos( HWND hwnd );
 extern BOOL WINPOS_SetActiveWindow( HWND hWnd, BOOL fMouse, BOOL fChangeFocus);
-extern HWND WINPOS_ChangeActiveWindow( HWND hwnd, BOOL mouseMsg );
+extern BOOL WINPOS_ChangeActiveWindow( HWND hwnd, BOOL mouseMsg );
 extern LONG WINPOS_SendNCCalcSize( HWND hwnd, BOOL calcValidRect,
 				   RECT *newWindowRect, RECT *oldWindowRect,
 				   RECT *oldClientRect, WINDOWPOS *winpos,
diff --git a/include/wintypes.h b/include/wintypes.h
index 0d7689a..30ecb94 100644
--- a/include/wintypes.h
+++ b/include/wintypes.h
@@ -34,6 +34,7 @@
 typedef void* SEGPTR;
 #define UIFMT "%u"
 #define NPFMT "%p"
+#define SPFMT "%p"
 #else
 typedef short INT;
 typedef unsigned short UINT;
@@ -42,13 +43,15 @@
 typedef WORD NPVOID;
 typedef DWORD SEGPTR;
 #define UIFMT "%hu"
-#define NPFMT "%04X"
+#define NPFMT "%04x"
+#define SPFMT "%08lx"
 #endif
 typedef LONG LPARAM;
 typedef LONG LRESULT;
 typedef DWORD HHOOK;
 typedef char *LPSTR;
 typedef const char *LPCSTR;
+typedef LPCSTR LPCTSTR;
 typedef char *NPSTR;
 typedef INT *LPINT;
 typedef UINT *LPUINT;