Release 980301
Sun Mar 1 10:45:23 1998 Andreas Mohr <100.30936@germany.net>
* [loader/ne_image.c]
Fixed problem with weird DLLs (NE_FFLAGS_SINGLEDATA && DGROUP = 0).
* [msdos/dosmem.c]
Export address for __0000H, too.
* [msdos/dpmi.c]
Changed MemAlloc functions to return less fragmented addresses.
Sat Feb 28 18:50:12 1998 Alexandre Julliard <julliard@lrc.epfl.ch>
* [scheduler/process.c] [scheduler/sysdeps.c]
Don't use %fs register before threading initialization.
Sat Feb 28 14:04:56 1998 Kristian Nielsen <kristian.nielsen@risoe.dk>
* [configure.in] [include/acconfig.h]
Autoconf macro to check for non-reentrant X libraries.
* [windows/winpos.c]
In SetWindowPos32(), do not cause WM_SIZE messages when the
SWP_NOSIZE flag is specified. This fixes the division-by-zero in
Borland C++ 4.0 "Open Project" menu item.
Sat Feb 28 13:11:26 1998 James Moody <013263m@dragon.acadiau.ca>
* [ole/ole2nls.c]
Changed "English" values from German to English.
* [files/dos_fs.c]
Fixed off-by-one month bug.
Fri Feb 27 22:12:01 1998 Douglas Ridgway <ridgway@winehq.com>
* [windows/win.c]
Fix winelib class menu loading bug.
* [include/module.h] [loader/module.c]
LoadModule32 should be implemented in terms of CreateProcess.
* [programs/view/*]
Metafile viewer sample program.
* [documentation/wine.texinfo] [documentation/Makefile.in]
Improvements and additions, HTML target.
Fri Feb 27 04:27:48 1998 Dimitrie O. Paun <dimi@cs.toronto.edu>
* [*/*]
Switched to the new debug messages interface. For more information
please refer to documentation/debug-msgs. Because the new scheme
introduces a new semantic level, I had to manually do through
about 530 dprintf_xxx! The rest of about 2400 where transformed
via a script. Because of the large number of changes that I had
to do, some may have not come out as nicely as I wanted them. If
this is the case, please let me know. There is a lot of work left
to do: -- a few hundred printf's to be converted -- about 2300
fprintf's to be converted -- about 600 FIXME's to be transformed
The problem is that in the above mentioned cases, a lot of manual
intervention is required because a lot of the information is
missing. There are also a lot of other things to be done to the
interface and so forth. I have now ideas for a at least a month
worth of full time work :) I will proceed with many changes in the
next few releases, so please do not start modifing things because
there will be a hell of a lot of conflicts. If you have ideas that
you want to integrate or you want to work on different things,
please coordinate with me.
Thu Feb 26 13:04:29 1998 David Lee Lambert <lamber45@egr.msu.edu>
* [ole/ole2nls.c] [include/windows.h]
First try at OLE date- and time-formatting functions.
Wed Feb 25 11:20:35 1998 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [files/*.c]
Changed dos device handling, added 'CON' devicehandling.
* [graphics/ddraw.c]
Bug fixes, some additions.
* [if1632/builtin.c][loader/module.c][library/winestub.c]
Small hack so we don't need a dummy BUILTIN_LoadModule
in winestub.c.
* [ole/*][relay32/ole32.spec][if1632/storage.spec]
storage.dll started. winword loads documents (saving
doesn't work yet, dunno why).
Several ole additions, some cleanups and bugfixes.
IMalloc16 implemented.
* [loader/pe_image.c]
Added some comments, fixed circular dll references,
fixed modref ordering, fixed tls allocation.
* [memory/global.c]
Added validity checks before every GET_ARENA_PTR.
(several functions rely on Global* return values
on invalid handles, like IsTask).
Implemented GlobalUnlockFree16.
* [memory/virtual.c]
Replaced dprintf_virtual by fprintf, so we can
do 'info map' again in the debugger. Increase read
linesize for Linux2.1 cases.
* [misc/cpu.c][misc/registry.c]
Moved cpu registry initialization to misc/cpu.c.
* [multimedia/dsound.c]
Enhanced, replaced GETOSPACE bufferingcheck by SETFRAGMENT.
* [relay32/crtdll.spec][relay32/ntdll.spec]
Replaced some ptr by respective 'str' and 'wstr' arguments
for libc functions.
* [scheduler/thread.c]
Added some sanity checks to stackallocation, tlshandling fixed.
* [tools/build.c]
Fixed cdecl argumenttype order (was reversed).
* [win32/ordinals.c]
Implemented KERNEL_449.
* [windows/dinput.c]
Some fixes, needs much more work. Tomb Raider2 works with keyboard ;)
Tue Feb 24 20:46:37 1998 James Juran <jrj120@psu.edu>
* [windows/win.c]
Fixed USER32 ordinal numbers in documentation.
Sat Feb 21 12:30:38 1998 John Richardson <jrichard@zko.dec.com>
* [files/file.c] [include/k32obj.h] [memory/virtual.c]
[scheduler/critsection.c] [scheduler/event.c] [scheduler/handle.c]
[scheduler/k32obj.c] [scheduler/mutex.c] [scheduler/process.c]
[scheduler/semaphore.c] [scheduler/thread.c]
Added generic k32obj read and write routines for k32objs that
support I/O.
* [documentation/console]
Updated console docs.
* [win32/console.c]
Make console work like a k32obj that supports I/O.
* [include/windows.h]
Make WriteFile and ReadFile take HANDLE32 for handle.
Sun Feb 15 14:07:07 1998 Dimitrie O. Paun <dimi@mail.cs.toronto.edu>
* [controls/menu.c] [misc/ver.c] [multimedia/dsound.c]
[multimedia/joystick.c] [windows/dialog.c]
Modified some dprintf_xxx's to prepare them for a new
dprintf_ scheme. Basically, I changed the dprintf's that
outputed a line with many dprintf calls to do just one
dprintf call.
diff --git a/windows/win.c b/windows/win.c
index 74b55ea..d431b51 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -30,10 +30,8 @@
#include "clipboard.h"
#include "winproc.h"
#include "thread.h"
-#include "stddebug.h"
-/* #define DEBUG_WIN */
-/* #define DEBUG_MENU */
#include "debug.h"
+#include "debugstr.h"
/* Desktop window */
static WND *pWndDesktop = NULL;
@@ -237,7 +235,7 @@
{
if (!(pWnd->dwStyle & WS_VISIBLE))
{
- dprintf_win( stddeb, "FindWinToRepaint: skipping window %04x\n",
+ dprintf_info(win, "FindWinToRepaint: skipping window %04x\n",
pWnd->hwndSelf );
continue;
}
@@ -260,7 +258,7 @@
pWnd = pWnd->next;
}
if (pWnd) hwndRet = pWnd->hwndSelf;
- dprintf_win(stddeb,"FindWinToRepaint: found %04x\n",hwndRet);
+ dprintf_info(win,"FindWinToRepaint: found %04x\n",hwndRet);
return hwndRet;
}
@@ -275,7 +273,7 @@
HWND32 hwnd = wndPtr->hwndSelf;
WND *pWnd;
- dprintf_win( stddeb, "WIN_DestroyWindow: %04x\n", wndPtr->hwndSelf );
+ dprintf_info(win, "WIN_DestroyWindow: %04x\n", wndPtr->hwndSelf );
#ifdef CONFIG_IPC
if (main_block)
@@ -405,7 +403,7 @@
CLASS *class;
HWND32 hwndDesktop;
- dprintf_win(stddeb,"Creating desktop window\n");
+ dprintf_info(win,"Creating desktop window\n");
if (!ICONTITLE_Init() ||
!WINPOS_CreateInternalPosAtom() ||
@@ -469,14 +467,10 @@
POINT32 maxSize, maxPos, minTrack, maxTrack;
LRESULT (WINAPI *localSend32)(HWND32, UINT32, WPARAM32, LPARAM);
- dprintf_win( stddeb, "CreateWindowEx: " );
- if (HIWORD(cs->lpszName)) dprintf_win( stddeb, "'%s' ", cs->lpszName );
- else dprintf_win( stddeb, "#%04x ", LOWORD(cs->lpszName) );
- if (HIWORD(cs->lpszClass)) dprintf_win( stddeb, "'%s' ", cs->lpszClass );
- else dprintf_win( stddeb, "#%04x ", LOWORD(cs->lpszClass) );
-
- dprintf_win( stddeb, "%08lx %08lx %d,%d %dx%d %04x %04x %08x %p\n",
- cs->dwExStyle, cs->style, cs->x, cs->y, cs->cx, cs->cy,
+ dprintf_info(win, "CreateWindowEx: %s %s %08lx %08lx %d,%d %dx%d "
+ "%04x %04x %08x %p\n", debugres(cs->lpszName),
+ debugres(cs->lpszClass), cs->dwExStyle,
+ cs->style, cs->x, cs->y, cs->cx, cs->cy,
cs->hwndParent, cs->hMenu, cs->hInstance, cs->lpCreateParams);
/* Find the parent window */
@@ -521,7 +515,7 @@
if (!(hwnd = USER_HEAP_ALLOC( sizeof(*wndPtr) + classPtr->cbWndExtra
- sizeof(wndPtr->wExtra) )))
{
- dprintf_win( stddeb, "CreateWindowEx: out of memory\n" );
+ dprintf_info(win, "CreateWindowEx: out of memory\n" );
return 0;
}
@@ -580,7 +574,7 @@
cbtc.hwndInsertAfter = hwndLinkAfter;
if ( HOOK_CallHooks32A(WH_CBT, HCBT_CREATEWND, hwnd, (LPARAM)&cbtc) )
{
- dprintf_win(stddeb, "CreateWindowEx: CBT-hook returned 0\n");
+ dprintf_info(win, "CreateWindowEx: CBT-hook returned 0\n");
USER_HEAP_FREE( hwnd );
return 0;
}
@@ -711,9 +705,11 @@
LoadMenu(cs->hInstance,(SEGPTR)classPtr->menuNameA);
#else
SEGPTR menuName = (SEGPTR)GetClassLong16( hwnd, GCL_MENUNAME );
- if (HIWORD(cs->hInstance))
+ /* hInstance is still 16-bit in 980215 winelib */
+ if (HIWORD(cs->hInstance) || __winelib)
cs->hMenu = LoadMenu32A(cs->hInstance,PTR_SEG_TO_LIN(menuName));
else
+ /* doesn't work for winelib, since resources are unicode */
cs->hMenu = LoadMenu16(cs->hInstance,menuName);
#endif
}
@@ -780,14 +776,14 @@
if (!(wndPtr->dwStyle & WS_CHILD) && !wndPtr->owner)
HOOK_CallHooks16( WH_SHELL, HSHELL_WINDOWCREATED, hwnd, 0 );
- dprintf_win(stddeb, "CreateWindowEx: created window %04x\n", hwnd);
+ dprintf_info(win, "CreateWindowEx: created window %04x\n", hwnd);
return hwnd;
}
}
/* Abort window creation */
- dprintf_win(stddeb,"CreateWindowEx: aborted by WM_xxCREATE!\n");
+ dprintf_warn(win, "CreateWindowEx: aborted by WM_xxCREATE!\n");
WIN_UnlinkWindow( hwnd );
WIN_DestroyWindow( wndPtr );
return 0;
@@ -851,7 +847,7 @@
/***********************************************************************
- * CreateWindowEx32A (USER32.82)
+ * CreateWindowEx32A (USER32.83)
*/
HWND32 WINAPI CreateWindowEx32A( DWORD exStyle, LPCSTR className,
LPCSTR windowName, DWORD style, INT32 x,
@@ -891,7 +887,7 @@
/***********************************************************************
- * CreateWindowEx32W (USER32.83)
+ * CreateWindowEx32W (USER32.84)
*/
HWND32 WINAPI CreateWindowEx32W( DWORD exStyle, LPCWSTR className,
LPCWSTR windowName, DWORD style, INT32 x,
@@ -969,7 +965,7 @@
WIN_CheckFocus(pWnd);
}
else
- dprintf_win(stddeb,"\tdestroyed itself while in WM_DESTROY!\n");
+ dprintf_warn(win, "\tdestroyed itself while in WM_DESTROY!\n");
}
@@ -983,13 +979,13 @@
/***********************************************************************
- * DestroyWindow32 (USER32.134)
+ * DestroyWindow32 (USER32.135)
*/
BOOL32 WINAPI DestroyWindow32( HWND32 hwnd )
{
WND * wndPtr;
- dprintf_win(stddeb, "DestroyWindow(%04x)\n", hwnd);
+ dprintf_info(win, "DestroyWindow(%04x)\n", hwnd);
/* Initialization */
@@ -1085,7 +1081,7 @@
/***********************************************************************
- * CloseWindow32 (USER32.55)
+ * CloseWindow32 (USER32.56)
*/
BOOL32 WINAPI CloseWindow32( HWND32 hwnd )
{
@@ -1106,7 +1102,7 @@
/***********************************************************************
- * OpenIcon32 (USER32.409)
+ * OpenIcon32 (USER32.410)
*/
BOOL32 WINAPI OpenIcon32( HWND32 hwnd )
{
@@ -1192,7 +1188,7 @@
{
ATOM atom = 0;
- dprintf_win(stddeb, "FindWindowEx16: %04x %04x '%s' '%s'\n", parent,
+ dprintf_info(win, "FindWindowEx16: %04x %04x '%s' '%s'\n", parent,
child, HIWORD(className)?(char *)PTR_SEG_TO_LIN(className):"",
title ? title : "");
@@ -1207,7 +1203,7 @@
/***********************************************************************
- * FindWindow32A (USER32.197)
+ * FindWindow32A (USER32.198)
*/
HWND32 WINAPI FindWindow32A( LPCSTR className, LPCSTR title )
{
@@ -1216,7 +1212,7 @@
/***********************************************************************
- * FindWindowEx32A (USER32.198)
+ * FindWindowEx32A (USER32.199)
*/
HWND32 WINAPI FindWindowEx32A( HWND32 parent, HWND32 child,
LPCSTR className, LPCSTR title )
@@ -1234,7 +1230,7 @@
/***********************************************************************
- * FindWindowEx32W (USER32.199)
+ * FindWindowEx32W (USER32.200)
*/
HWND32 WINAPI FindWindowEx32W( HWND32 parent, HWND32 child,
LPCWSTR className, LPCWSTR title )
@@ -1257,7 +1253,7 @@
/***********************************************************************
- * FindWindow32W (USER32.200)
+ * FindWindow32W (USER32.201)
*/
HWND32 WINAPI FindWindow32W( LPCWSTR className, LPCWSTR title )
{
@@ -1284,7 +1280,7 @@
/**********************************************************************
- * GetDesktopWindow32 (USER32.231)
+ * GetDesktopWindow32 (USER32.232)
*/
HWND32 WINAPI GetDesktopWindow32(void)
{
@@ -1314,7 +1310,7 @@
/*******************************************************************
- * EnableWindow32 (USER32.171)
+ * EnableWindow32 (USER32.172)
*/
BOOL32 WINAPI EnableWindow32( HWND32 hwnd, BOOL32 enable )
{
@@ -1353,7 +1349,7 @@
/***********************************************************************
- * IsWindowEnabled32 (USER32.348)
+ * IsWindowEnabled32 (USER32.349)
*/
BOOL32 WINAPI IsWindowEnabled32(HWND32 hWnd)
{
@@ -1365,7 +1361,7 @@
/***********************************************************************
- * IsWindowUnicode (USER32.349)
+ * IsWindowUnicode (USER32.350)
*/
BOOL32 WINAPI IsWindowUnicode( HWND32 hwnd )
{
@@ -1386,7 +1382,7 @@
/**********************************************************************
- * GetWindowWord32 (USER32.313)
+ * GetWindowWord32 (USER32.314)
*/
WORD WINAPI GetWindowWord32( HWND32 hwnd, INT32 offset )
{
@@ -1440,7 +1436,7 @@
/**********************************************************************
- * SetWindowWord32 (USER32.523)
+ * SetWindowWord32 (USER32.524)
*/
WORD WINAPI SetWindowWord32( HWND32 hwnd, INT32 offset, WORD newval )
{
@@ -1584,7 +1580,7 @@
/**********************************************************************
- * GetWindowLong32A (USER32.304)
+ * GetWindowLong32A (USER32.305)
*/
LONG WINAPI GetWindowLong32A( HWND32 hwnd, INT32 offset )
{
@@ -1593,7 +1589,7 @@
/**********************************************************************
- * GetWindowLong32W (USER32.305)
+ * GetWindowLong32W (USER32.306)
*/
LONG WINAPI GetWindowLong32W( HWND32 hwnd, INT32 offset )
{
@@ -1611,7 +1607,7 @@
/**********************************************************************
- * SetWindowLong32A (USER32.516)
+ * SetWindowLong32A (USER32.517)
*/
LONG WINAPI SetWindowLong32A( HWND32 hwnd, INT32 offset, LONG newval )
{
@@ -1620,7 +1616,7 @@
/**********************************************************************
- * SetWindowLong32W (USER32.517)
+ * SetWindowLong32W (USER32.518)
*/
LONG WINAPI SetWindowLong32W( HWND32 hwnd, INT32 offset, LONG newval )
{
@@ -1638,7 +1634,7 @@
/*******************************************************************
- * GetWindowText32A (USER32.308)
+ * GetWindowText32A (USER32.309)
*/
INT32 WINAPI GetWindowText32A( HWND32 hwnd, LPSTR lpString, INT32 nMaxCount )
{
@@ -1648,7 +1644,7 @@
/*******************************************************************
- * GetWindowText32W (USER32.311)
+ * GetWindowText32W (USER32.312)
*/
INT32 WINAPI GetWindowText32W( HWND32 hwnd, LPWSTR lpString, INT32 nMaxCount )
{
@@ -1676,7 +1672,7 @@
/*******************************************************************
- * SetWindowText32W (USER32.522)
+ * SetWindowText32W (USER32.523)
*/
void WINAPI SetWindowText32W( HWND32 hwnd, LPCWSTR lpString )
{
@@ -1694,7 +1690,7 @@
/*******************************************************************
- * GetWindowTextLength32A (USER32.309)
+ * GetWindowTextLength32A (USER32.310)
*/
INT32 WINAPI GetWindowTextLength32A( HWND32 hwnd )
{
@@ -1702,7 +1698,7 @@
}
/*******************************************************************
- * GetWindowTextLength32W (USER32.309)
+ * GetWindowTextLength32W (USER32.311)
*/
INT32 WINAPI GetWindowTextLength32W( HWND32 hwnd )
{
@@ -1720,7 +1716,7 @@
/*******************************************************************
- * IsWindow32 (USER32.347)
+ * IsWindow32 (USER32.348)
*/
BOOL32 WINAPI IsWindow32( HWND32 hwnd )
{
@@ -1739,7 +1735,7 @@
/*****************************************************************
- * GetParent32 (USER32.277)
+ * GetParent32 (USER32.278)
*/
HWND32 WINAPI GetParent32( HWND32 hwnd )
{
@@ -1782,7 +1778,7 @@
/*****************************************************************
- * SetParent32 (USER32.494)
+ * SetParent32 (USER32.495)
*/
HWND32 WINAPI SetParent32( HWND32 hwndChild, HWND32 hwndNewParent )
{
@@ -1841,7 +1837,7 @@
/*******************************************************************
- * IsChild32 (USER32.338)
+ * IsChild32 (USER32.339)
*/
BOOL32 WINAPI IsChild32( HWND32 parent, HWND32 child )
{
@@ -1865,7 +1861,7 @@
/***********************************************************************
- * IsWindowVisible32 (USER32.350)
+ * IsWindowVisible32 (USER32.351)
*/
BOOL32 WINAPI IsWindowVisible32( HWND32 hwnd )
{
@@ -1928,7 +1924,7 @@
/*******************************************************************
- * GetWindow32 (USER32.301)
+ * GetWindow32 (USER32.302)
*/
HWND32 WINAPI GetWindow32( HWND32 hwnd, WORD rel )
{
@@ -1989,7 +1985,7 @@
/*******************************************************************
- * ShowOwnedPopups32 (USER32.530)
+ * ShowOwnedPopups32 (USER32.531)
*/
BOOL32 WINAPI ShowOwnedPopups32( HWND32 owner, BOOL32 fShow )
{
@@ -2014,7 +2010,7 @@
}
/*******************************************************************
- * GetLastActivePopup32 (USER32.255)
+ * GetLastActivePopup32 (USER32.256)
*/
HWND32 WINAPI GetLastActivePopup32( HWND32 hwnd )
{
@@ -2105,7 +2101,7 @@
/*******************************************************************
- * EnumWindows32 (USER32.192)
+ * EnumWindows32 (USER32.193)
*/
BOOL32 WINAPI EnumWindows32( WNDENUMPROC32 lpEnumFunc, LPARAM lParam )
{
@@ -2142,7 +2138,7 @@
/**********************************************************************
- * EnumThreadWindows (USER32.189)
+ * EnumThreadWindows (USER32.190)
*/
BOOL32 WINAPI EnumThreadWindows( DWORD id, WNDENUMPROC32 func, LPARAM lParam )
{
@@ -2196,7 +2192,7 @@
/**********************************************************************
- * EnumChildWindows32 (USER32.177)
+ * EnumChildWindows32 (USER32.178)
*/
BOOL32 WINAPI EnumChildWindows32( HWND32 parent, WNDENUMPROC32 func,
LPARAM lParam )
@@ -2216,7 +2212,7 @@
/*******************************************************************
- * AnyPopup32 (USER32.3)
+ * AnyPopup32 (USER32.4)
*/
BOOL32 WINAPI AnyPopup32(void)
{
@@ -2237,13 +2233,13 @@
/*******************************************************************
- * FlashWindow32 (USER32.201)
+ * FlashWindow32 (USER32.202)
*/
BOOL32 WINAPI FlashWindow32( HWND32 hWnd, BOOL32 bInvert )
{
WND *wndPtr = WIN_FindWndPtr(hWnd);
- dprintf_win(stddeb,"FlashWindow: %04x\n", hWnd);
+ dprintf_info(win,"FlashWindow: %04x\n", hWnd);
if (!wndPtr) return FALSE;
@@ -2286,7 +2282,7 @@
{
HWND32 hWndOldModal = hwndSysModal;
hwndSysModal = hWnd;
- dprintf_win(stdnimp,"EMPTY STUB !! SetSysModalWindow(%04x) !\n", hWnd);
+ dprintf_fixme(win, "EMPTY STUB !! SetSysModalWindow(%04x) !\n", hWnd);
return hWndOldModal;
}
@@ -2344,7 +2340,7 @@
if(ptrWnd)
{
- dprintf_msg(stddeb,"DragQueryUpdate: hwnd = %04x, %d %d - %d %d\n",
+ dprintf_info(msg,"DragQueryUpdate: hwnd = %04x, %d %d - %d %d\n",
ptrWnd->hwndSelf, ptrWnd->rectWindow.left, ptrWnd->rectWindow.top,
ptrWnd->rectWindow.right, ptrWnd->rectWindow.bottom );
if( !(ptrWnd->dwStyle & WS_DISABLED) )
@@ -2383,7 +2379,7 @@
}
/*******************************************************************
- * DragDetect32 (USER32.150)
+ * DragDetect32 (USER32.151)
*/
BOOL32 WINAPI DragDetect32( HWND32 hWnd, POINT32 pt )
{
@@ -2483,7 +2479,7 @@
lpDragInfo->pt = msg.pt;
/* update DRAGINFO struct */
- dprintf_msg(stddeb,"drag: lpDI->hScope = %04x\n",lpDragInfo->hScope);
+ dprintf_info(msg,"drag: lpDI->hScope = %04x\n",lpDragInfo->hScope);
if( DRAG_QueryUpdate(hwndScope, spDragInfo, FALSE) > 0 )
hCurrentCursor = hCursor;