Commit a69b88b2 authored by Alexandre Julliard's avatar Alexandre Julliard

Release 980315

Sun Mar 15 03:46:50 1998 Dimitrie O. Paun <dimi@mail.cs.toronto.edu> * [*/*] Fixed some dprintf_ such that there is one and only one new line for each dprintf and that new line occurs at the end. Transformed some fprintfs into proper debug statements. Removed much redundancy from most of the debug statements. The redundancy appeared because now the component and function name is output automatically. Most debug statements also used to output the name of the function. All these changes prepared the source to switch completely to the new debugging interface. For more info, refer to ./documentation/debug-msg Sat Mar 14 19:45:23 1997 Andreas Mohr <100.30936@germany.net> * [misc/shell.c] [if1632/kernel.spec] Changed parameters of FUNC004() to fix a crash. Not sure if this fix is correct (doc wanted). * [windows/user.c] [if1632/user.spec] [include/user.h] Implemented UserSeeUserDo. * [msdos/int21.c] [include/msdos.h] Added "GET LIST OF LISTS" (INT 21/52h). Sat Mar 14 15:48:02 1998 Douglas Ridgway <ridgway@gmcl.com> * [include/windows.h] [relay32/gdi32.spec] [objects/enhmetafile.c] Beginnings of enhanced metafile support. Fri Mar 13 20:53:09 1998 John Richardson <jrichard@zko.dec.com> * [win32/console.c] Restart interrupted console writes. Fri Mar 13 18:59:24 1998 Matthew Becker <mbecker@glasscity.net> * [*/*.c] Updated documentation for API manpages. * [windows/dce.c] ReleaseDC16: Fixed cast. * [include/windows.h] [memory/virtual.c] VirtualQuery{Ex} should return DWORD instead of BOOL32. Fri Mar 13 13:03:06 1998 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [README][documentation/status/] README updated, added lzexpand,version and multimedia status notes to new documentation/status directory. * [ole/*.c][if1632/typelib.spec] Added typelib stubs, several small additions and fixes. * [loader/pe_image.c] Fixed a small bug (fixup_imports got passed the wrong hModule in a remapcase). * [loader/signal.c][if1632/signal.c][misc/winsock_dns.c] [loader/module.c] Fixed some recursive debugger crashes (caused by invalid FS). * [misc/registry.c] Two bugs fixed. Fri Mar 13 04:55:01 1998 David Lee Lambert <lamber45@egr.msu.edu> * [include/winnt.h] [include/winnls.h] Moved LANG_xxx flags to winnls.h * [include/winnls.h] Added flags for GetDateFormat(); fixed validity of LOCALE_SYSTEM_DEFAULT. * [include/windows.h] Added GetTimeFormat() prototypes. * [ole/ole2nls.c] Implemented ASCII date- and time-functions, using an optimized common core; added stubs for Unicode versions; started work on a Unicode core. * [AUTHORS] Added my name. Mon Mar 9 20:10:15 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de> * [relay32/comctl32.spec] [include/imagelist.h] [include/commctrl.h] [misc/imagelist.c] [misc/Makefile.in] First attempt at implementing ImageLists. Sun Mar 8 20:19:49 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> * [files/dos_fs.c] [configure.in] Try to get FileTimeToLocalFileTime,FileTimeToSystemTime and SystemTimeToFileTime right. Use timegm() where available. * [misc/lstr.c] Fix an off by one error in FormatMessage and handle the case when args = NULL (used by programs to get the length of the string). * [win32/console.c] Actual display a per-process Title string, better working attempt for WriteConsole32W and ReadConsole32W. Fri Mar 6 20:33:45 1998 Slaven Rezic <eserte@cs.tu-berlin.de> * [include/config.h.in][configure.in][multimedia/audio.c] [multimedia/dsound.c] Added check for FreeBSD sound system. Sun Mar 1 17:40:10 1998 Jason Schonberg <schon@mti.sgi.com> * [controls/edit.c] [include/ole.h] [include/shlobj.h] Removed final commas in enum types. Mon Feb 23 07:52:18 1998 Luiz Otavio L. Zorzella <zorzella@nr.conexware.com> * [multimedia/time.c] Workaround to avoid infinite recursion inside timeGetTime. * [multimedia/audio.c] WODM_GETNUMDEVS and WIDM_GETNUMDEVS only return 1 now if the SOUND_DEV can be opened, or if it's busy.
parent a11d7b1a
This is release 980301 of Wine, the MS Windows emulator. This is still a
This is release 980315 of Wine, the MS Windows emulator. This is still a
developer's only release. There are many bugs and many unimplemented API
features. Most applications still do not work correctly.
Patches should be submitted to "julliard@lrc.epfl.ch". Please don't
forget to include a ChangeLog entry.
WHAT'S NEW with Wine-980301: (see ChangeLog for details)
- New debugging printfs scheme.
- Better DOS device handling.
WHAT'S NEW with Wine-980315: (see ChangeLog for details)
- Preliminary ImageLists support.
- Beginnings of enhanced metafiles.
- More debugging macros changes.
- Lots of bug fixes.
See the README file in the distribution for installation instructions.
......@@ -16,10 +17,10 @@ Because of lags created by using mirror, this message may reach you before
the release is available at the ftp sites. The sources will be available
from the following locations:
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-980301.tar.gz
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-980301.tar.gz
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-980301.tar.gz
ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-980301.tar.gz
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-980315.tar.gz
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-980315.tar.gz
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-980315.tar.gz
ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-980315.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite.
......
......@@ -55,11 +55,13 @@ Pavel Kankovsky,
Jochen Karrer,
Andreas Kirschbaum,
Albrecht Kleine,
Eric Kohl,
Jon Konrath,
Alex Korobka,
Greg Kreider,
Anand Kumria,
Scott A. Laird,
David Lee Lambert,
Andrew Lewycky,
Martin von Loewis,
Michiel van Loon,
......@@ -131,4 +133,5 @@ Eric Youngdale,
James Youngman,
Nikita V. Youshchenko,
Mikolaj Zalewski,
and John Zero.
John Zero,
and Luiz Otavio L. Zorzella.
----------------------------------------------------------------------
Sun Feb 29 10:45:23 1997 Andreas Mohr <100.30936@germany.net>
Sun Mar 15 03:46:50 1998 Dimitrie O. Paun <dimi@mail.cs.toronto.edu>
* [*/*]
Fixed some dprintf_ such that there is one and only one
new line for each dprintf and that new line occurs at the end.
Transformed some fprintfs into proper debug statements.
Removed much redundancy from most of the debug statements. The
redundancy appeared because now the component and function
name is output automatically. Most debug statements also used to
output the name of the function.
All these changes prepared the source to switch completely to
the new debugging interface.
For more info, refer to ./documentation/debug-msg
Sat Mar 14 19:45:23 1997 Andreas Mohr <100.30936@germany.net>
* [misc/shell.c] [if1632/kernel.spec]
Changed parameters of FUNC004() to fix a crash.
Not sure if this fix is correct (doc wanted).
* [windows/user.c] [if1632/user.spec] [include/user.h]
Implemented UserSeeUserDo.
* [msdos/int21.c] [include/msdos.h]
Added "GET LIST OF LISTS" (INT 21/52h).
Sat Mar 14 15:48:02 1998 Douglas Ridgway <ridgway@gmcl.com>
* [include/windows.h] [relay32/gdi32.spec] [objects/enhmetafile.c]
Beginnings of enhanced metafile support.
Fri Mar 13 20:53:09 1998 John Richardson <jrichard@zko.dec.com>
* [win32/console.c]
Restart interrupted console writes.
Fri Mar 13 18:59:24 1998 Matthew Becker <mbecker@glasscity.net>
* [*/*.c]
Updated documentation for API manpages.
* [windows/dce.c]
ReleaseDC16: Fixed cast.
* [include/windows.h] [memory/virtual.c]
VirtualQuery{Ex} should return DWORD instead of BOOL32.
Fri Mar 13 13:03:06 1998 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [README][documentation/status/]
README updated, added lzexpand,version and multimedia
status notes to new documentation/status directory.
* [ole/*.c][if1632/typelib.spec]
Added typelib stubs, several small additions and fixes.
* [loader/pe_image.c]
Fixed a small bug (fixup_imports got passed the wrong hModule in a
remapcase).
* [loader/signal.c][if1632/signal.c][misc/winsock_dns.c]
[loader/module.c]
Fixed some recursive debugger crashes (caused by invalid FS).
* [misc/registry.c]
Two bugs fixed.
Fri Mar 13 04:55:01 1998 David Lee Lambert <lamber45@egr.msu.edu>
* [include/winnt.h] [include/winnls.h]
Moved LANG_xxx flags to winnls.h
* [include/winnls.h]
Added flags for GetDateFormat(); fixed validity of
LOCALE_SYSTEM_DEFAULT.
* [include/windows.h]
Added GetTimeFormat() prototypes.
* [ole/ole2nls.c]
Implemented ASCII date- and time-functions, using an
optimized common core; added stubs for Unicode versions;
started work on a Unicode core.
* [AUTHORS]
Added my name.
Mon Mar 9 20:10:15 1998 Eric Kohl <ekohl@abo.rhein-zeitung.de>
* [relay32/comctl32.spec] [include/imagelist.h]
[include/commctrl.h] [misc/imagelist.c] [misc/Makefile.in]
First attempt at implementing ImageLists.
Sun Mar 8 20:19:49 1998 Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
* [files/dos_fs.c] [configure.in]
Try to get FileTimeToLocalFileTime,FileTimeToSystemTime and
SystemTimeToFileTime right.
Use timegm() where available.
* [misc/lstr.c]
Fix an off by one error in FormatMessage and handle the case
when args = NULL (used by programs to get the length of the
string).
* [win32/console.c]
Actual display a per-process Title string, better working
attempt for WriteConsole32W and ReadConsole32W.
Fri Mar 6 20:33:45 1998 Slaven Rezic <eserte@cs.tu-berlin.de>
* [include/config.h.in][configure.in][multimedia/audio.c]
[multimedia/dsound.c]
Added check for FreeBSD sound system.
Sun Mar 1 17:40:10 1998 Jason Schonberg <schon@mti.sgi.com>
* [controls/edit.c] [include/ole.h] [include/shlobj.h]
Removed final commas in enum types.
Mon Feb 23 07:52:18 1998 Luiz Otavio L. Zorzella <zorzella@nr.conexware.com>
* [multimedia/time.c]
Workaround to avoid infinite recursion inside timeGetTime.
* [multimedia/audio.c]
WODM_GETNUMDEVS and WIDM_GETNUMDEVS only return 1 now if the
SOUND_DEV can be opened, or if it's busy.
----------------------------------------------------------------------
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).
......
......@@ -11,17 +11,20 @@ Basically, you can do anything with it, except claim that you wrote it.
2. COMPILATION
You must have one of:
To compile the emulator, you must have one of:
Linux version 0.99.13 or above
NetBSD-current
FreeBSD-current or FreeBSD 1.1
OpenBSD/i386 2.1 or later
Solaris x86 2.5 or later
You also need to have libXpm installed on your system. The sources for
it are probably available on the ftp site where you got Wine. They can
also be found on ftp.x.org and all its mirror sites.
On x86 Systems gcc >= 2.7.0 is required. You will probably need flex too.
To build Wine, first do a "./configure" and then a "make depend; make".
This will build the library "libwine.a" and the program "wine".
......
......@@ -67,9 +67,22 @@ AC_CACHE_CHECK("for Open Sound System",
#endif
],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
if test "$ac_cv_c_opensoundsystem" = "yes"
AC_CACHE_CHECK("for Open Sound System on *BSD",
ac_cv_c_opensoundsystem_bsd,
AC_TRY_COMPILE([#include <machine/soundcard.h>],[
/* check for one of the Open Sound System specific SNDCTL_ defines */
#if !defined(SNDCTL_DSP_STEREO)
#error No open sound system
#endif
],ac_cv_c_opensoundsystem_bsd="yes",ac_cv_c_opensoundsystem_bsd="no"))
if test "$ac_cv_c_opensoundsystem" = "yes" -o "$ac_cv_c_opensoundsystem_bsd" = "yes"
then
AC_DEFINE(HAVE_OSS)
if test "$ac_cv_c_opensoundsystem_bsd" = "yes"
then
AC_DEFINE(HAVE_MACHINE_SOUNDCARD_H)
fi
fi
dnl **** Check for union semun ****
......@@ -204,7 +217,7 @@ fi
dnl **** Check for functions and header files ****
AC_CHECK_FUNCS(clone memmove strerror tcgetattr usleep wait4 waitpid)
AC_CHECK_FUNCS(clone memmove strerror tcgetattr timegm usleep wait4 waitpid)
AC_CHECK_HEADERS(wctype.h)
AC_HEADER_STAT()
AC_C_CONST()
......
......@@ -62,7 +62,7 @@ static BOOL32 COMBO_Init()
CBitHeight = bm.bmHeight;
CBitWidth = bm.bmWidth;
dprintf_info(combo, "combo bitmap [%i,%i]\n", CBitWidth, CBitHeight );
TRACE(combo, "combo bitmap [%i,%i]\n", CBitWidth, CBitHeight );
hPrevB = SelectObject16( hDC, hComboBmp);
SetRect16( &r, 0, 0, CBitWidth, CBitHeight );
......@@ -101,8 +101,8 @@ static LRESULT COMBO_NCCreate(WND* wnd, LPARAM lParam)
if( !(wnd->dwExStyle & WS_EX_NOPARENTNOTIFY) )
lphc->wState |= CBF_NOTIFY;
dprintf_info(combo, "COMBO_NCCreate: [0x%08x], style = %08x\n",
(UINT32)lphc, lphc->dwStyle );
TRACE(combo, "[0x%08x], style = %08x\n",
(UINT32)lphc, lphc->dwStyle );
return (LRESULT)(UINT32)wnd->hwndSelf;
}
......@@ -119,7 +119,7 @@ static LRESULT COMBO_NCDestroy( LPHEADCOMBO lphc )
{
WND* wnd = lphc->self;
dprintf_info(combo,"Combo [%04x]: freeing storage\n", CB_HWND(lphc));
TRACE(combo,"[%04x]: freeing storage\n", CB_HWND(lphc));
if( (CB_GETTYPE(lphc) != CBS_SIMPLE) && lphc->hWndLBox )
DestroyWindow32( lphc->hWndLBox );
......@@ -218,13 +218,18 @@ static void CBCalcPlacement( LPHEADCOMBO lphc,
if( lphc->droppedWidth > (lprLB->right - lprLB->left) )
lprLB->right = lprLB->left + (INT16)lphc->droppedWidth;
dprintf_info(combo,"Combo [%04x]: (%i,%i-%i,%i) placement\n\ttext\t= (%i,%i-%i,%i)\
\n\tbutton\t= (%i,%i-%i,%i)\n\tlbox\t= (%i,%i-%i,%i)\n", CB_HWND(lphc),
lphc->RectCombo.left, lphc->RectCombo.top, lphc->RectCombo.right, lphc->RectCombo.bottom,
lprEdit->left, lprEdit->top, lprEdit->right, lprEdit->bottom,
lprButton->left, lprButton->top, lprButton->right, lprButton->bottom,
lprLB->left, lprLB->top, lprLB->right, lprLB->bottom );
TRACE(combo,"[%04x]: (%i,%i-%i,%i) placement\n",
CB_HWND(lphc), lphc->RectCombo.left, lphc->RectCombo.top,
lphc->RectCombo.right, lphc->RectCombo.bottom);
TRACE(combo,"\ttext\t= (%i,%i-%i,%i)\n",
lprEdit->left, lprEdit->top, lprEdit->right, lprEdit->bottom);
TRACE(combo,"\tbutton\t= (%i,%i-%i,%i)\n",
lprButton->left, lprButton->top, lprButton->right, lprButton->bottom);
TRACE(combo,"\tlbox\t= (%i,%i-%i,%i)\n",
lprLB->left, lprLB->top, lprLB->right, lprLB->bottom );
}
/***********************************************************************
......@@ -337,12 +342,12 @@ static LRESULT COMBO_Create( LPHEADCOMBO lphc, WND* wnd, LPARAM lParam)
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE );
lphc->wState &= ~CBF_NORESIZE;
}
dprintf_info(combo,"COMBO_Create: init done\n");
TRACE(combo,"init done\n");
return wnd->hwndSelf;
}
dprintf_err(combo, "COMBO_Create: edit control failure.\n");
} else dprintf_err(combo, "COMBO_Create: listbox failure.\n");
} else dprintf_err(combo, "COMBO_Create: no owner for visible combo.\n");
ERR(combo, "edit control failure.\n");
} else ERR(combo, "listbox failure.\n");
} else ERR(combo, "no owner for visible combo.\n");
/* CreateWindow() will send WM_NCDESTROY to cleanup */
......@@ -561,7 +566,7 @@ static INT32 CBUpdateLBox( LPHEADCOMBO lphc )
if( length > 0 )
pText = (LPSTR) HeapAlloc( GetProcessHeap(), 0, length + 1);
dprintf_info(combo,"\tCBUpdateLBox: edit text length %i\n", length );
TRACE(combo,"\t edit text length %i\n", length );
if( pText )
{
......@@ -597,7 +602,7 @@ static void CBUpdateEdit( LPHEADCOMBO lphc , INT32 index )
INT32 length;
LPSTR pText = NULL;
dprintf_info(combo,"\tCBUpdateEdit: %i\n", index );
TRACE(combo,"\t %i\n", index );
if( index == -1 )
{
......@@ -642,7 +647,7 @@ static void CBDropDown( LPHEADCOMBO lphc )
RECT16 rect;
LPRECT16 pRect = NULL;
dprintf_info(combo,"Combo [%04x]: drop down\n", CB_HWND(lphc));
TRACE(combo,"[%04x]: drop down\n", CB_HWND(lphc));
CB_NOTIFY( lphc, CBN_DROPDOWN );
......@@ -698,7 +703,7 @@ static void CBRollUp( LPHEADCOMBO lphc, BOOL32 ok, BOOL32 bButton )
if( IsWindow32( hWnd ) && CB_GETTYPE(lphc) != CBS_SIMPLE )
{
dprintf_info(combo,"Combo [%04x]: roll up [%i]\n", CB_HWND(lphc), (INT32)ok );
TRACE(combo,"[%04x]: roll up [%i]\n", CB_HWND(lphc), (INT32)ok );
/* always send WM_LBUTTONUP? */
SendMessage32A( lphc->hWndLBox, WM_LBUTTONUP, 0, (LPARAM)(-1) );
......@@ -839,16 +844,16 @@ static LRESULT COMBO_Command( LPHEADCOMBO lphc, WPARAM32 wParam, HWND32 hWnd )
{
case (EN_SETFOCUS >> 8):
dprintf_info(combo,"Combo [%04x]: edit [%04x] got focus\n",
CB_HWND(lphc), (HWND16)lphc->hWndEdit );
TRACE(combo,"[%04x]: edit [%04x] got focus\n",
CB_HWND(lphc), (HWND16)lphc->hWndEdit );
if( !(lphc->wState & CBF_FOCUSED) ) COMBO_SetFocus( lphc );
break;
case (EN_KILLFOCUS >> 8):
dprintf_info(combo,"Combo [%04x]: edit [%04x] lost focus\n",
CB_HWND(lphc), (HWND16)lphc->hWndEdit );
TRACE(combo,"[%04x]: edit [%04x] lost focus\n",
CB_HWND(lphc), (HWND16)lphc->hWndEdit );
/* NOTE: it seems that Windows' edit control sends an
* undocumented message WM_USER + 0x1B instead of this
......@@ -888,8 +893,8 @@ static LRESULT COMBO_Command( LPHEADCOMBO lphc, WPARAM32 wParam, HWND32 hWnd )
case LBN_SELCHANGE:
case LBN_SELCANCEL:
dprintf_info(combo,"Combo [%04x]: lbox selection change [%04x]\n",
CB_HWND(lphc), lphc->wState );
TRACE(combo,"[%04x]: lbox selection change [%04x]\n",
CB_HWND(lphc), lphc->wState );
/* do not roll up if selection is being tracked
* by arrowkeys in the dropdown listbox */
......@@ -922,8 +927,8 @@ static LRESULT COMBO_ItemOp32( LPHEADCOMBO lphc, UINT32 msg,
{
HWND32 hWnd = lphc->self->hwndSelf;
dprintf_info(combo,"Combo [%04x]: ownerdraw op %04x\n",
CB_HWND(lphc), (UINT16)msg );
TRACE(combo,"[%04x]: ownerdraw op %04x\n",
CB_HWND(lphc), (UINT16)msg );
#define lpIS ((LPDELETEITEMSTRUCT32)lParam)
......@@ -1060,7 +1065,7 @@ static void COMBO_Size( LPHEADCOMBO lphc )
GetWindowRect16( lphc->self->hwndSelf, &rect );
w = rect.right - rect.left; h = rect.bottom - rect.top;
dprintf_info(combo,"COMBO_Size: w = %i, h = %i\n", w, h );
TRACE(combo,"w = %i, h = %i\n", w, h );
/* CreateWindow() may send a bogus WM_SIZE, ignore it */
......@@ -1257,8 +1262,8 @@ LRESULT WINAPI ComboWndProc( HWND32 hwnd, UINT32 message,
{
LPHEADCOMBO lphc = CB_GETPTR(pWnd);
dprintf_info(combo, "Combo [%04x]: msg %s wp %08x lp %08lx\n",
pWnd->hwndSelf, SPY_GetMsgName(message), wParam, lParam );
TRACE(combo, "[%04x]: msg %s wp %08x lp %08lx\n",
pWnd->hwndSelf, SPY_GetMsgName(message), wParam, lParam );
if( lphc || message == WM_NCCREATE )
switch(message)
......@@ -1559,7 +1564,7 @@ LRESULT WINAPI ComboWndProc( HWND32 hwnd, UINT32 message,
return (lphc->wState & CBF_EUI) ? TRUE : FALSE;
case (WM_USER + 0x1B):
dprintf_warn(combo, "Combo [%04x]: undocumented msg!\n", (HWND16)hwnd );
WARN(combo, "[%04x]: undocumented msg!\n", (HWND16)hwnd );
}
return DefWindowProc32A(hwnd, message, wParam, lParam);
}
......
......@@ -26,8 +26,8 @@
/* Work constants */
#define UNKNOWN_PARAM(msg, wParam, lParam) dprintf_warn(progress, \
"Progress Ctrl: Unknown parameter(s) for message " #msg \
#define UNKNOWN_PARAM(msg, wParam, lParam) WARN(progress, \
"Unknown parameter(s) for message " #msg \
"(%04x): wp=%04x lp=%08lx\n", msg, wParam, lParam);
#define PROGRESS_GetInfoPtr(wndPtr) ((PROGRESS_INFO *)wndPtr->wExtra)
......@@ -47,8 +47,8 @@ static void PROGRESS_Paint(WND *wndPtr, HDC32 dc)
RECT32 rect;
HDC32 hdc;
dprintf_info(progress, "Progress Bar: paint pos=%d min=%d, max=%d\n",
infoPtr->CurVal, infoPtr->MinVal, infoPtr->MaxVal);
TRACE(progress, "paint pos=%d min=%d, max=%d\n",
infoPtr->CurVal, infoPtr->MinVal, infoPtr->MaxVal);
/* get a dc */
hdc = dc==0 ? BeginPaint32(wndPtr->hwndSelf, &ps) : dc;
......@@ -114,11 +114,11 @@ LRESULT WINAPI ProgressWindowProc(HWND32 hwnd, UINT32 message,
infoPtr->MaxVal=100;
infoPtr->CurVal=0;
infoPtr->Step=10;
dprintf_info(updown, "Progress Ctrl creation, hwnd=%04x\n", hwnd);
TRACE(updown, "Progress Ctrl creation, hwnd=%04x\n", hwnd);
break;
case WM_DESTROY:
dprintf_info(updown, "Progress Ctrl destruction, hwnd=%04x\n", hwnd);
TRACE(updown, "Progress Ctrl destruction, hwnd=%04x\n", hwnd);
break;
case WM_ERASEBKGND:
......@@ -194,8 +194,8 @@ LRESULT WINAPI ProgressWindowProc(HWND32 hwnd, UINT32 message,
default:
if (message >= WM_USER)
fprintf( stderr, "Progress Ctrl: unknown msg %04x wp=%04x lp=%08lx\n",
message, wParam, lParam );
ERR(progress, "unknown msg %04x wp=%04x lp=%08lx\n",
message, wParam, lParam );
return DefWindowProc32A( hwnd, message, wParam, lParam );
}
......
......@@ -615,8 +615,8 @@ void SCROLL_HandleScrollEvent( HWND32 hwnd, INT32 nBar, UINT32 msg, POINT32 pt)
return; /* Should never happen */
}
dprintf_info(scroll, "ScrollBar Event: hwnd=%04x bar=%d msg=%x pt=%d,%d hit=%d\n",
hwnd, nBar, msg, pt.x, pt.y, hittest );
TRACE(scroll, "Event: hwnd=%04x bar=%d msg=%x pt=%d,%d hit=%d\n",
hwnd, nBar, msg, pt.x, pt.y, hittest );
switch(trackHitTest)
{
......@@ -766,8 +766,8 @@ LRESULT WINAPI ScrollBarWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam,
CREATESTRUCT32A *lpCreat = (CREATESTRUCT32A *)lParam;
if (lpCreat->style & SBS_SIZEBOX)
{
fprintf( stdnimp, "Unimplemented style SBS_SIZEBOX.\n" );
return 0; /* FIXME */
FIXME(scroll, "Unimplemented style SBS_SIZEBOX.\n" );
return 0;
}
if (lpCreat->style & SBS_VERT)
......@@ -794,7 +794,7 @@ LRESULT WINAPI ScrollBarWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam,
}
}
if (!hUpArrow) SCROLL_LoadBitmaps();
dprintf_info(scroll, "ScrollBar creation, hwnd=%04x\n", hwnd );
TRACE(scroll, "ScrollBar creation, hwnd=%04x\n", hwnd );
return 0;
case WM_LBUTTONDOWN:
......@@ -845,9 +845,7 @@ LRESULT WINAPI ScrollBarWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam,
return 0; /* FIXME: return previous position */
case SBM_GETRANGE16:
/* FIXME */
fprintf( stderr, "ScrollBar: don't know how to handle SBM_GETRANGE16 (wp=%04x,lp=%08lx)\n",
wParam, lParam );
FIXME(scroll, "don't know how to handle SBM_GETRANGE16 (wp=%04x,lp=%08lx)\n", wParam, lParam );
return 0;
case SBM_GETRANGE32:
......@@ -876,14 +874,14 @@ LRESULT WINAPI ScrollBarWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam,
case 0x00ed:
case 0x00ee:
case 0x00ef:
fprintf(stderr, "ScrollBar: unknown Win32 msg %04x wp=%08x lp=%08lx\n",
message, wParam, lParam );
ERR(scroll, "unknown Win32 msg %04x wp=%08x lp=%08lx\n",
message, wParam, lParam );
break;
default:
if (message >= WM_USER)
fprintf( stderr, "ScrollBar: unknown msg %04x wp=%04x lp=%08lx\n",
message, wParam, lParam );
WARN(scroll, "unknown msg %04x wp=%04x lp=%08lx\n",
message, wParam, lParam );
return DefWindowProc32A( hwnd, message, wParam, lParam );
}
return 0;
......@@ -952,7 +950,7 @@ INT32 WINAPI SetScrollInfo32( HWND32 hwnd, INT32 nBar, const SCROLLINFO *info,
}
}
dprintf_info(scroll, "SetScrollInfo: hwnd=%04x bar=%d %s\n",
TRACE(scroll, "hwnd=%04x bar=%d %s\n",
hwnd, nBar, dbg_str(scroll));
/* Make sure the page size is valid */
......@@ -968,9 +966,9 @@ INT32 WINAPI SetScrollInfo32( HWND32 hwnd, INT32 nBar, const SCROLLINFO *info,
else if (infoPtr->CurVal > infoPtr->MaxVal - MAX( infoPtr->Page-1, 0 ))
infoPtr->CurVal = infoPtr->MaxVal - MAX( infoPtr->Page-1, 0 );
dprintf_info(scroll, "\n new values: page=%d pos=%d min=%d max=%d\n",
infoPtr->Page, infoPtr->CurVal,
infoPtr->MinVal, infoPtr->MaxVal );
TRACE(scroll, " new values: page=%d pos=%d min=%d max=%d\n",
infoPtr->Page, infoPtr->CurVal,
infoPtr->MinVal, infoPtr->MaxVal );
/* Check if the scrollbar should be hidden or disabled */
......@@ -1209,7 +1207,7 @@ BOOL32 WINAPI ShowScrollBar32( HWND32 hwnd, INT32 nBar, BOOL32 fShow )
WND *wndPtr = WIN_FindWndPtr( hwnd );
if (!wndPtr) return FALSE;
dprintf_info(scroll, "ShowScrollBar: hwnd=%04x bar=%d on=%d\n",
TRACE(scroll, "hwnd=%04x bar=%d on=%d\n",
hwnd, nBar, fShow );
switch(nBar)
......@@ -1285,7 +1283,7 @@ BOOL32 WINAPI EnableScrollBar32( HWND32 hwnd, INT32 nBar, UINT32 flags )
SCROLLBAR_INFO *infoPtr;
if (!(infoPtr = SCROLL_GetScrollInfo( hwnd, nBar ))) return FALSE;
dprintf_info(scroll, "EnableScrollBar: %04x %d %d\n",
TRACE(scroll, "%04x %d %d\n",
hwnd, nBar, flags );
flags &= ESB_DISABLE_BOTH;
if (infoPtr->flags == flags) return FALSE;
......
......@@ -12,6 +12,7 @@
#include "cursoricon.h"
#include "static.h"
#include "heap.h"
#include "debug.h"
static void STATIC_PaintTextfn( WND *wndPtr, HDC32 hdc );
static void STATIC_PaintRectfn( WND *wndPtr, HDC32 hdc );
......@@ -61,7 +62,7 @@ static HICON16 STATIC_SetIcon( WND *wndPtr, HICON16 hicon )
if ((wndPtr->dwStyle & SS_TYPEMASK) != SS_ICON) return 0;
if (hicon && !info) {
fprintf(stderr,"STATIC_SetIcon: huh? hicon!=0, but info=0???\n");
ERR(static, "huh? hicon!=0, but info=0???\n");
return 0;
}
prevIcon = infoPtr->hIcon;
......@@ -88,7 +89,7 @@ static HICON16 STATIC_SetBitmap( WND *wndPtr, HICON16 hicon )
if ((wndPtr->dwStyle & SS_TYPEMASK) != SS_BITMAP) return 0;
if (hicon && !info) {
fprintf(stderr,"STATIC_SetBitmap: huh? hicon!=0, but info=0???\n");
ERR(static, "huh? hicon!=0, but info=0???\n");
return 0;
}
prevIcon = infoPtr->hIcon;
......@@ -184,7 +185,8 @@ LRESULT WINAPI StaticWndProc( HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam,
if (cs->lpszName)
STATIC_SetBitmap( wndPtr,
STATIC_LoadBitmap( wndPtr, cs->lpszName ));
fprintf(stderr,"STATIC:style SS_BITMAP, dwStyle is 0x%08lx\n",wndPtr->dwStyle);
WARN(static, "style SS_BITMAP, dwStyle is 0x%08lx\n",
wndPtr->dwStyle);
return 1;
}
return DefWindowProc32A( hWnd, uMsg, wParam, lParam );
......@@ -192,7 +194,7 @@ LRESULT WINAPI StaticWndProc( HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam,
case WM_CREATE:
if (style < 0L || style > SS_TYPEMASK)
{
fprintf( stderr, "STATIC: Unknown style 0x%02lx\n", style );
ERR(static, "Unknown style 0x%02lx\n", style );
lResult = -1L;
break;
}
......
......@@ -574,7 +574,7 @@ BOOL16 WINAPI DrawEdge16( HDC16 hdc, LPRECT16 rc, UINT16 edge, UINT16 flags )
*/
BOOL32 WINAPI DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags )
{
dprintf_info(graphics, "DrawEdge: %04x %d,%d-%d,%d %04x %04x\n",
TRACE(graphics, "%04x %d,%d-%d,%d %04x %04x\n",
hdc, rc->left, rc->top, rc->right, rc->bottom,
edge, flags );
......@@ -941,7 +941,7 @@ static BOOL32 UITOOLS_DrawFrameButton(HDC32 hdc, LPRECT32 rc, UINT32 uState)
return UITOOLS_DFC_ButtonRadio(hdc, rc, uState);
default:
fprintf(stdnimp, "UITOOLS_DrawFrameButton: Report this: Invalid button state: 0x%04x\n", uState);
WARN(uitools, "Invalid button state: 0x%04x\n", uState);
}
return FALSE;
......@@ -1077,7 +1077,7 @@ static BOOL32 UITOOLS_DrawFrameCaption(HDC32 dc, LPRECT32 r, UINT32 uFlags)
break;
default:
fprintf(stdnimp, "UITOOLS_DrawFrameCaption: Report this: Invalid caption; flags: 0x%04x\n", uFlags);
WARN(uitools, "Invalid caption; flags: 0x%04x\n", uFlags);
return FALSE;
}
......@@ -1247,7 +1247,7 @@ static BOOL32 UITOOLS_DrawFrameScroll(HDC32 dc, LPRECT32 r, UINT32 uFlags)
return TRUE;
default:
fprintf(stdnimp, "UITOOLS_DrawFrameScroll: Report this: Invalid scroll; flags: 0x%04x\n", uFlags);
WARN(uitools, "Invalid scroll; flags: 0x%04x\n", uFlags);
return FALSE;
}
......@@ -1349,7 +1349,7 @@ static BOOL32 UITOOLS_DrawFrameMenu(HDC32 dc, LPRECT32 r, UINT32 uFlags)
break;
default:
fprintf(stdnimp, "UITOOLS_DrawFrameMenu: Report this: Invalid menu; flags: 0x%04x\n", uFlags);
WARN(uitools, "Invalid menu; flags: 0x%04x\n", uFlags);
retval = FALSE;
break;
}
......@@ -1397,8 +1397,8 @@ BOOL32 WINAPI DrawFrameControl32( HDC32 hdc, LPRECT32 rc, UINT32 uType,
case DFC_SCROLL:
return UITOOLS_DrawFrameScroll(hdc, rc, uState);
default:
fprintf( stdnimp,"DrawFrameControl32(%x,%p,%d,%x), bad type!\n",
hdc,rc,uType,uState );
WARN(uitools, "(%x,%p,%d,%x), bad type!\n",
hdc,rc,uType,uState );
}
return FALSE;
}
......@@ -60,7 +60,7 @@
static int accelIndex = -1;
#define UNKNOWN_PARAM(msg, wParam, lParam) dprintf_warn(updown, \
#define UNKNOWN_PARAM(msg, wParam, lParam) WARN(updown, \
"UpDown Ctrl: Unknown parameter(s) for message " #msg \
"(%04x): wp=%04x lp=%08lx\n", msg, wParam, lParam);
......@@ -207,8 +207,8 @@ static BOOL32 UPDOWN_GetBuddyInt(WND *wndPtr)
if(*src || !UPDOWN_InBounds(wndPtr, newVal))
return FALSE;
dprintf_info(updown, "UpDown Ctrl: new value(%d) read from buddy "
"(old=%d)\n", newVal, infoPtr->CurVal);
TRACE(updown, "new value(%d) read from buddy (old=%d)\n",
newVal, infoPtr->CurVal);
}
infoPtr->CurVal = newVal;
......@@ -232,8 +232,8 @@ static BOOL32 UPDOWN_SetBuddyInt(WND *wndPtr)
if (!IsWindow32(infoPtr->Buddy))
return FALSE;
dprintf_info(updown, "UpDown Ctrl: set new value(%d) to buddy.\n",
infoPtr->CurVal);
TRACE(updown, "set new value(%d) to buddy.\n",
infoPtr->CurVal);
/*if the buddy is a list window, we must set curr index */
if(WIDGETS_IsControl32(WIN_FindWndPtr(infoPtr->Buddy), BIC32_LISTBOX)){
......@@ -326,8 +326,7 @@ static BOOL32 UPDOWN_SetBuddy(WND *wndPtr, HWND32 hwndBud)
return FALSE;
if(wndPtr->dwStyle & UDS_ARROWKEYS){
/* FIXME: we need to subclass the buddy to process the arrow keys. */
fprintf(stderr, "UpDown Ctrl: we should subclass the buddy window!\n");
FIXME(updown, "we need to subclass the buddy to process the arrow keys.\n");
}
/* do we need to do any adjustments? */
......@@ -379,8 +378,7 @@ static void UPDOWN_DoAction(WND *wndPtr, int delta, BOOL32 incr)
int old_val = infoPtr->CurVal;
NM_UPDOWN ni;
dprintf_info(updown, "UpDown Ctrl action: %s by %d\n",
incr ? "inc" : "dec", delta);
TRACE(updown, "%s by %d\n", incr ? "inc" : "dec", delta);
/* check if we can do the modification first */
delta *= (incr ? 1 : -1) * (infoPtr->MaxVal < infoPtr->MinVal ? -1 : 1);
......@@ -548,8 +546,7 @@ static void UPDOWN_HandleMouseEvent(WND *wndPtr, UINT32 msg, POINT32 pt)
break;
default:
fprintf(stderr, "UpDown: Impossible case in proc "
"UPDOWN_HandleMouseEvent");
ERR(updown, "Impossible case!\n");
}
}
......@@ -581,13 +578,13 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
if(wndPtr->dwStyle & UDS_AUTOBUDDY)
UPDOWN_SetBuddy(wndPtr, GetWindow32(wndPtr->hwndSelf, GW_HWNDPREV));
dprintf_info(updown, "UpDown Ctrl creation, hwnd=%04x\n", hwnd);
TRACE(updown, "UpDown Ctrl creation, hwnd=%04x\n", hwnd);
break;
case WM_DESTROY:
if(infoPtr->AccelVect)
free(infoPtr->AccelVect);
dprintf_info(updown, "UpDown Ctrl destruction, hwnd=%04x\n", hwnd);
TRACE(updown, "UpDown Ctrl destruction, hwnd=%04x\n", hwnd);
break;
case WM_ENABLE:
......@@ -677,7 +674,7 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
return temp;
case UDM_SETACCEL:
dprintf_info(updown, "UpDown Ctrl new accel info, hwnd=%04x\n", hwnd);
TRACE(updown, "UpDown Ctrl new accel info, hwnd=%04x\n", hwnd);
if(infoPtr->AccelVect){
free(infoPtr->AccelVect);
infoPtr->AccelCount = 0;
......@@ -697,7 +694,7 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
return infoPtr->Base;
case UDM_SETBASE:
dprintf_info(updown, "UpDown Ctrl new base(%d), hwnd=%04x\n",
TRACE(updown, "UpDown Ctrl new base(%d), hwnd=%04x\n",
wParam, hwnd);
if ( !(wParam==10 || wParam==16) || lParam)
UNKNOWN_PARAM(UDM_SETBASE, wParam, lParam);
......@@ -719,7 +716,7 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
temp = infoPtr->Buddy;
infoPtr->Buddy = wParam;
UPDOWN_SetBuddy(wndPtr, wParam);
dprintf_info(updown, "UpDown Ctrl new buddy(%04x), hwnd=%04x\n",
TRACE(updown, "UpDown Ctrl new buddy(%04x), hwnd=%04x\n",
infoPtr->Buddy, hwnd);
return temp;
......@@ -733,7 +730,7 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
if (wParam || HIWORD(lParam))
UNKNOWN_PARAM(UDM_GETPOS, wParam, lParam);
temp = SLOWORD(lParam);
dprintf_info(updown, "UpDown Ctrl new value(%d), hwnd=%04x\n",
TRACE(updown, "UpDown Ctrl new value(%d), hwnd=%04x\n",
temp, hwnd);
if(!UPDOWN_InBounds(wndPtr, temp)){
if(temp < infoPtr->MinVal)
......@@ -758,14 +755,14 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
infoPtr->MaxVal = SLOWORD(lParam); /* UD_MINVAL <= Max <= UD_MAXVAL */
infoPtr->MinVal = SHIWORD(lParam); /* UD_MINVAL <= Min <= UD_MAXVAL */
/* |Max-Min| <= UD_MAXVAL */
dprintf_info(updown, "UpDown Ctrl new range(%d to %d), hwnd=%04x\n",
TRACE(updown, "UpDown Ctrl new range(%d to %d), hwnd=%04x\n",
infoPtr->MinVal, infoPtr->MaxVal, hwnd);
break;
default:
if (message >= WM_USER)
fprintf( stderr, "UpDown Ctrl: unknown msg %04x wp=%04x lp=%08lx\n",
message, wParam, lParam );
WARN(updown, "unknown msg %04x wp=%04x lp=%08lx\n",
message, wParam, lParam );
return DefWindowProc32A( hwnd, message, wParam, lParam );
}
......
......@@ -40,6 +40,7 @@ works correctly.
FreeConsole is called on process exit (in ExitProcess) if
pdb->console is not NULL.
BUGS
----
Console processes do not inherit their parent's handles. I think
......@@ -47,6 +48,13 @@ there needs to be two cases, one where they have to inherit
the stdin/stdout/stderr from unix, and one where they have to
inherit from another windows app.
SetConsoleMode -- UNIX only has ICANON and various ECHOs
to play around with for processing input. Win32 has
line-at-a-time processing, character processing, and
echo. I'm putting together an intermediate driver
that will handle this (and hopefully won't be any more
buggy then the NT4 console implementation).
================================================================
......@@ -80,3 +88,7 @@ FreeConsole
o even when all the handles to it are freed, the win32 console
stays visible, the only way I could find to free it
was via the FreeConsole
Is it possible to interrupt win32's FileWrite? I'm not sure.
It may not be possible to interrupt any system calls.
This file contains information about the LZ file decompression libraries.
The LZ (Lempel Ziv) decompression was used in win16 installation programs.
(Win32 installation programs now use mostly CAB or WINZIP selfextractors
or something similair.)
It is a simple tabledriven decompression engine, the algorithm is not
documented as far as I know. WINE does not contain a compressor for
this format.
The libraries consist of LZEXPAND.DLL (win16) and LZ32.DLL (win32), the
implementation can be found in misc/lzexpand.c and there is a small
example program in libtest/expand.c.
The implementation is complete and there have been no reports of failures
for some time.
FIXMEs:
- Check for correct include files
- Check whether the return values are correct
- Write a compressor for this format.
This file contains information about the implementation of the multimedia
layer of WINE.
The libraries consist of MMSYSTEM.DLL (win16), WINMM.DLL (win32) and some
(abstracted, not Windows compatible) lowlevel drivers. The implementation
can be found in the multimedia/ subdirectory.
The multimedia stuff is split into 3 layers. The lowlevel (device drivers),
midlevel (MCI commands) and highlevel abstraction layers.
1. Lowlevel layers
Following lowlevel layers are implemented:
1.1 (Waveform) Audio
The API consists of the waveIn*/waveOut* functions found in
multimedia/mmsystem.c. They call the real lowlevel audiodriver using
the wodMessage/widMessage function in multimedia/audio.c, which handles
the different requests.
The lowlevel audio driver is currently only implemented for the
OpenSoundSystem (OSS) as supplied in the Linux and FreeBSD kernels by
4Front Technologies (http://www.4front-tech.com/). The presence of this
driver is checked by configure (depends on the <sys/soundcard.h> file).
The implementation contains all features commonly used, but has several
problems. For instance:
Writes and reads are not done asynchronously as they are supposed to
be done. This breaks some programs (soundrec.exe from the Windows applets),
but doesn't worry other programs. Some callbacks are probably done
incorrectly (there are reports of some broken multimedia applications,
but I haven't found one yet.)
TODO:
- add asynchronous writes and reads (must use threads)
- check the callback functions
- verify all functions for correctness
- add drivers for other soundsystems (Sun Audio, remote audio systems
(using X extensions, ...)
1.2 Mixer
The API consists of the mixer* functions found in multimedia/mmsystem.c.
They call the lowlevel driver functions in multimedia/mixer.c using the
mixMessage function.
The current implementation tries to use the OpenSoundSystem mixer, but is
missing nearly everything. There is no report of a working application.
TODO:
- implement mixing functionality for OSS correctly.
- implement mixing lowlevel drivers for other mixers.
1.3 MIDI
The API consists of the midi* functions found in multimedia/mmsystem.c.
They call the lowlevel driver functions in multimedia/midi.c using the
midMessage and the modMessage functions.
The current implementation is completely broken. (I think open(), read()
and write() of the /dev/midi device would make this implementation nearly
complete...)
TODO:
- Implement correct MIDI output
- Do not implement a software synthesizer. This should be done
using MIDI loopback devices in an external program (like timidity).
1.4 Timers
The API consists of the timer* functions found in multimedia/timer.c.
There is currently only one implementation, which uses normal windows timers.
The implementation works for most cases found. The only problem is that
it doesn't support asynchronous timer events (as it is supposed to do).
There is a workaround for this lack in timeGetTime() to make Diablo work
and 'Pinball! SpaceCadet' at least start up.
TODO:
- Implemented asynchronous timers (using a thread probably)
1.5 MMIO
The API consists of the mmio* functions found in multimedia/mmio.c.
FIXME: I am not sure about the status of this implementation.
TODO:
- add win32 support.
- ...
1.6 AUX
The API consists of the aux* functions found in multimedia/mmsystem.c.
They call auxMessage in multimedia/mmaux.c.
The aux* functions are the predecessor of the mixer* functions.
The implementation uses the OSS mixer API, and is incomplete.
TODO:
- verify the implementation
1.7 JOYSTICK
The API consists of the joy* functions found in multimedia/joystick.c.
The implementation currently uses the Linux joystick device driver API.
It is lacking support for enhanced joysticks and has not been extensively
tested.
TODO:
- better support of enhanced joysticks
- support more joystick drivers (like the XInput extension)
2. Midlevel drivers (MCI)
The midlevel drivers are represented by some common API functions,
mostly mciSendCommand and mciSendString. The mciSendString function
uses commandstrings, which are translated into normal MCI commands as
used by mciSendCommand. The API can be found in multimedia/mmsystem.c
and multimedia/mcistring.c.
The functions there (mciOpen,mciSysInfo) handle midlevel driver
allocation and calls.
The implementation is not complete, but works for most cases.
Win32 support for mciSendCommand is missing (mciSendString works
in the Win32 case, since the use of strings doesn't differ between
win16 and win32).
TODO:
- Win32 support
- support windows MCI drivers (should be possible for they usually
do not use lowlevel calls)
- MCI command loading support
- implement other stuff as yet unknown
WINE implements several MCI midlevel drivers:
2.1 CDAUDIO
The currently best implementation is the MCI CDAUDIO driver that can
be found in multimedia/mcicda.c. The implementation is mostly complete,
there have been no reports of errors.
The implementation currently uses only the Linux /dev/cdrom controlling
functions. (Sun and BSD like should be similair, but are not implemented.)
A very small example of a cdplayer consists just of the line
mciSendString("play cdaudio",NULL,0,0);
TODO:
- add support for other cdaudio drivers
2.2 MCIWAVE
The implementation is rather complete and can be found in multimedia/audio.c.
It uses the lowlevel audio API (although not abstracted correctly).
FIXME: The MCI_STATUS command is broken.
TODO: - check for correctness
2.3 MIDI/SEQUENCER
The implementation can be found in multimedia/midi.c. I am not sure
about the completeness.
It uses the lowlevel midi driver and is probably broken too.
TODO:
- implement it correctly
2.4 MCIANIM
The implementation consists of stubs and is in multimedia/mcianim.c.
TODO:
- implement it, probably using xanim or something similair. Could
also be implemented by using the Windows MCI video drivers.
This file contains information about the versioning libraries.
They consist of VER.DLL (win16) and VERSION.DLL (win32).
The implementation can be found in misc/ver.c.
The purpose of this library is to:
- Extract resource information from possibly compressed files
- Install dlls including versionchecking
- Query version dependend variables.
The resource extraction is almost complete. There have been no reports of
missing functionality, but I am not sure about absolute completeness.
The DLL installation APIs do work, but is probably not correct.
The API to query version dependend variables (VerQueryValue) works for
both win16/win32 resources, but is probably not correct for some cases.
FIXME:
- Check the installation functions.
- Verify VerQueryValue.
......@@ -96,10 +96,10 @@ void DIR_ParseWindowsPath( char *path )
DIR_PathElements++;
}
if (debugging_info(dosfs))
if (TRACE_ON(dosfs))
for (i = 0; i < DIR_PathElements; i++)
{
dprintf_info(dosfs, "Path[%d]: %s = %s\n",
TRACE(dosfs, "Path[%d]: %s = %s\n",
i, DIR_DosPath[i], DIR_UnixPath[i] );
}
}
......@@ -155,10 +155,11 @@ int DIR_Init(void)
path, sizeof(path) );
DIR_ParseWindowsPath( path );
dprintf_info(dosfs, "WindowsDir = %s\nSystemDir = %s\n",
DIR_WindowsDosDir, DIR_SystemDosDir );
dprintf_info(dosfs, "TempDir = %s\nCwd = %c:\\%s\n",
DIR_TempDosDir, 'A' + drive, DRIVE_GetDosCwd( drive ) );
TRACE(dosfs, "WindowsDir = %s\n", DIR_WindowsDosDir);
TRACE(dosfs, "SystemDir = %s\n", DIR_SystemDosDir);
TRACE(dosfs, "TempDir = %s\n", DIR_TempDosDir);
TRACE(dosfs, "Cwd = %c:\\%s\n",
'A' + drive, DRIVE_GetDosCwd( drive ) );
/* Put the temp and Windows and system directories into the environment */
......@@ -327,7 +328,7 @@ UINT32 WINAPI GetSystemDirectory32W( LPWSTR path, UINT32 count )
*/
BOOL16 WINAPI CreateDirectory16( LPCSTR path, LPVOID dummy )
{
dprintf_info(file,"CreateDirectory16(%s,%p)\n", path, dummy );
TRACE(file,"(%s,%p)\n", path, dummy );
return (BOOL16)CreateDirectory32A( path, NULL );
}
......@@ -340,10 +341,10 @@ BOOL32 WINAPI CreateDirectory32A( LPCSTR path,
{
DOS_FULL_NAME full_name;
dprintf_info(file, "CreateDirectory32A(%s,%p)\n", path, lpsecattribs );
TRACE(file, "(%s,%p)\n", path, lpsecattribs );
if (DOSFS_IsDevice( path ))
{
dprintf_info(file, "CreateDirectory: cannot use device '%s'!\n",path);
TRACE(file, "cannot use device '%s'!\n",path);
DOS_ERROR( ER_AccessDenied, EC_AccessDenied, SA_Abort, EL_Disk );
return FALSE;
}
......@@ -406,11 +407,11 @@ BOOL32 WINAPI RemoveDirectory32A( LPCSTR path )
{
DOS_FULL_NAME full_name;
dprintf_info(file, "RemoveDirectory: '%s'\n", path );
TRACE(file, "'%s'\n", path );
if (DOSFS_IsDevice( path ))
{
dprintf_info(file, "RemoveDirectory: cannot remove device '%s'!\n", path);
TRACE(file, "cannot remove device '%s'!\n", path);
DOS_ERROR( ER_FileNotFound, EC_NotFound, SA_Abort, EL_Disk );
return FALSE;
}
......
......@@ -500,13 +500,13 @@ BOOL32 DOSFS_FindUnixName( LPCSTR path, LPCSTR name, LPSTR long_buf,
if ((p = strchr( name, '\\' ))) len = MIN( (int)(p - name), len );
if (long_len < len + 1) return FALSE;
dprintf_info(dosfs, "DOSFS_FindUnixName: %s,%s\n", path, name );
TRACE(dosfs, "%s,%s\n", path, name );
if (!DOSFS_ToDosFCBFormat( name, dos_name )) dos_name[0] = '\0';
if (!(dir = DOSFS_OpenDir( path )))
{
dprintf_warn(dosfs, "DOSFS_FindUnixName(%s,%s): can't open dir: %s\n",
WARN(dosfs, "(%s,%s): can't open dir: %s\n",
path, name, strerror(errno) );
return FALSE;
}
......@@ -546,11 +546,11 @@ BOOL32 DOSFS_FindUnixName( LPCSTR path, LPCSTR name, LPSTR long_buf,
else
DOSFS_Hash( long_name, short_buf, FALSE, ignore_case );
}
dprintf_info(dosfs, "(%s,%s) -> %s (%s)\n",
TRACE(dosfs, "(%s,%s) -> %s (%s)\n",
path, name, long_name, short_buf ? short_buf : "***");
}
else
dprintf_warn(dosfs, "file: '%s' NOT FOUND in dir: '%s'\n", name, path);
WARN(dosfs, "'%s' not found in '%s'\n", name, path);
DOSFS_CloseDir( dir );
return ret;
}
......@@ -613,7 +613,7 @@ HFILE32 DOSFS_OpenDevice( const char *name, int unixmode )
return GetStdHandle( STD_OUTPUT_HANDLE );
break;
default:
fprintf(stderr,"DOSFS_OpenDevice: CON cannot be opened read/write currently, FIXME.\n");
FIXME(dosfs,"can't open CON read/write\n");
return HFILE_ERROR32;
break;
}
......@@ -679,7 +679,7 @@ BOOL32 DOSFS_GetFullName( LPCSTR name, BOOL32 check_last, DOS_FULL_NAME *full )
UINT32 flags;
char *p_l, *p_s, *root;
dprintf_info(dosfs, "DOSFS_GetFullName: %s (last=%d)\n",
TRACE(dosfs, "%s (last=%d)\n",
name, check_last );
if ((full->drive = DOSFS_GetPathDrive( &name )) == -1) return FALSE;
......@@ -787,7 +787,7 @@ BOOL32 DOSFS_GetFullName( LPCSTR name, BOOL32 check_last, DOS_FULL_NAME *full )
}
if (!full->long_name[0]) strcpy( full->long_name, "/" );
if (!full->short_name[2]) strcpy( full->short_name + 2, "\\" );
dprintf_info(dosfs, "DOSFS_GetFullName: returning %s = %s\n",
TRACE(dosfs, "returning %s = %s\n",
full->long_name, full->short_name );
return TRUE;
}
......@@ -877,7 +877,7 @@ static DWORD DOSFS_DoGetFullPathName( LPCSTR name, DWORD len, LPSTR result,
int drive;
char *p;
dprintf_info(dosfs, "GetFullPathName: converting %s\n", name );
TRACE(dosfs, "converting %s\n", name );
if (!name || !result) return 0;
......@@ -941,7 +941,7 @@ static DWORD DOSFS_DoGetFullPathName( LPCSTR name, DWORD len, LPSTR result,
if (unicode) lstrcpynAtoW( (LPWSTR)result, buffer, len );
else lstrcpyn32A( result, buffer, len );
dprintf_info(dosfs, "GetFullPathName: returning %s\n", buffer );
TRACE(dosfs, "returning %s\n", buffer );
return strlen(buffer);
}
......@@ -1026,7 +1026,7 @@ int DOSFS_FindNext( const char *path, const char *short_mask,
else /* Not in the cache, open it anew */
{
const char *drive_path;
dprintf_info(dosfs, "DOSFS_FindNext: cache miss, path=%s skip=%d buf=%s cur=%d\n",
TRACE(dosfs, "cache miss, path=%s skip=%d buf=%s cur=%d\n",
path, skip, buffer, cur_pos );
cur_pos = skip;
if (dir) DOSFS_CloseDir(dir);
......@@ -1035,7 +1035,7 @@ int DOSFS_FindNext( const char *path, const char *short_mask,
drive_path = path + strlen(DRIVE_GetRoot(drive));
while ((*drive_path == '/') || (*drive_path == '\\')) drive_path++;
drive_root = !*drive_path;
dprintf_info(dosfs, "DOSFS_FindNext: drive_root = %d\n", drive_root);
TRACE(dosfs, "drive_root = %d\n", drive_root);
lstrcpyn32A( buffer, path, sizeof(buffer) - 1 );
}
strcat( buffer, "/" );
......@@ -1079,7 +1079,7 @@ int DOSFS_FindNext( const char *path, const char *short_mask,
lstrcpyn32A( p, long_name, sizeof(buffer) - (int)(p - buffer) );
if (!FILE_Stat( buffer, &info ))
{
fprintf( stderr, "DOSFS_FindNext: can't stat %s\n", buffer );
WARN(dosfs, "can't stat %s\n", buffer);
continue;
}
if (info.dwFileAttributes & ~attr) continue;
......@@ -1101,7 +1101,7 @@ int DOSFS_FindNext( const char *path, const char *short_mask,
lstrcpyn32A( entry->cFileName, long_name, sizeof(entry->cFileName) );
if (!(flags & DRIVE_CASE_PRESERVING)) CharLower32A( entry->cFileName );
dprintf_info(dosfs, "DOSFS_FindNext: returning %s (%s) %02lx %ld\n",
TRACE(dosfs, "returning %s (%s) %02lx %ld\n",
entry->cFileName, entry->cAlternateFileName,
entry->dwFileAttributes, entry->nFileSizeLow );
cur_pos += count;
......@@ -1547,13 +1547,26 @@ BOOL32 WINAPI LocalFileTimeToFileTime( const FILETIME *localft,
BOOL32 WINAPI FileTimeToLocalFileTime( const FILETIME *utcft,
LPFILETIME localft )
{
struct tm *xtm;
DWORD remainder;
/* convert from UTC to local. Perhaps not correct. FIXME */
time_t unixtime = DOSFS_FileTimeToUnixTime( utcft, &remainder );
#ifdef HAVE_TIMEGM
struct tm *xtm = localtime( &unixtime );
time_t localtime;
localtime = timegm(xtm);
DOSFS_UnixTimeToFileTime( localtime, localft, remainder );
#else
struct tm *xtm,*gtm;
time_t time1,time2;
xtm = localtime( &unixtime );
DOSFS_UnixTimeToFileTime( mktime(xtm), localft, remainder );
gtm = gmtime( &unixtime );
time1 = mktime(xtm);
time2 = mktime(gtm);
DOSFS_UnixTimeToFileTime( 2*time1-time2, localft, remainder );
#endif
return TRUE;
}
......@@ -1567,7 +1580,7 @@ BOOL32 WINAPI FileTimeToSystemTime( const FILETIME *ft, LPSYSTEMTIME syst )
DWORD remainder;
time_t xtime = DOSFS_FileTimeToUnixTime( ft, &remainder );
xtm = gmtime(&xtime);
syst->wYear = xtm->tm_year;
syst->wYear = xtm->tm_year+1900;
syst->wMonth = xtm->tm_mon + 1;
syst->wDayOfWeek = xtm->tm_wday;
syst->wDay = xtm->tm_mday;
......@@ -1588,7 +1601,7 @@ DWORD WINAPI QueryDosDevice32A(LPCSTR devname,LPSTR target,DWORD bufsize)
LPSTR s;
char buffer[200];
dprintf_info(dosfs,"QueryDosDevice(%s,...)\n",devname?devname:"<null>");
TRACE(dosfs,"(%s,...)\n",devname?devname:"<null>");
if (!devname) {
/* return known MSDOS devices */
lstrcpy32A(buffer,"CON COM1 COM2 LPT1 NUL ");
......@@ -1629,15 +1642,33 @@ DWORD WINAPI QueryDosDevice32W(LPCWSTR devname,LPWSTR target,DWORD bufsize)
*/
BOOL32 WINAPI SystemTimeToFileTime( const SYSTEMTIME *syst, LPFILETIME ft )
{
#ifdef HAVE_TIMEGM
struct tm xtm;
time_t utctime;
#else
struct tm xtm,*local_tm,*utc_tm;
time_t localtim,utctime;
#endif
xtm.tm_year = syst->wYear;
xtm.tm_year = syst->wYear-1900;
xtm.tm_mon = syst->wMonth - 1;
xtm.tm_wday = syst->wDayOfWeek;
xtm.tm_mday = syst->wDay;
xtm.tm_hour = syst->wHour;
xtm.tm_min = syst->wMinute;
xtm.tm_sec = syst->wSecond;
DOSFS_UnixTimeToFileTime( mktime(&xtm), ft, syst->wMilliseconds * 10000 );
xtm.tm_sec = syst->wSecond; /* this is UTC */
xtm.tm_isdst = -1;
#ifdef HAVE_TIMEGM
utctime = timegm(&xtm);
DOSFS_UnixTimeToFileTime( utctime, ft,
syst->wMilliseconds * 10000 );
#else
localtim = mktime(&xtm); /* now we've got local time */
local_tm = localtime(&localtim);
utc_tm = gmtime(&localtim);
utctime = mktime(utc_tm);
DOSFS_UnixTimeToFileTime( 2*localtim -utctime, ft,
syst->wMilliseconds * 10000 );
#endif
return TRUE;
}
......@@ -193,12 +193,12 @@ int DRIVE_Init(void)
DRIVE_CurDrive = i;
count++;
dprintf_info(dosfs, "%s: path=%s type=%s label='%s' serial=%08lx flags=%08x dev=%x ino=%x\n",
TRACE(dosfs, "%s: path=%s type=%s label='%s' serial=%08lx flags=%08x dev=%x ino=%x\n",
name, path, DRIVE_Types[drive->type],
drive->label, drive->serial, drive->flags,
(int)drive->dev, (int)drive->ino );
}
else dprintf_warn(dosfs, "%s: not defined\n", name );
else WARN(dosfs, "%s: not defined\n", name );
}
if (!count)
......@@ -265,7 +265,7 @@ int DRIVE_SetCurrentDrive( int drive )
DOS_ERROR( ER_InvalidDrive, EC_MediaError, SA_Abort, EL_Disk );
return 0;
}
dprintf_info(dosfs, "DRIVE_SetCurrentDrive: %c:\n", 'A' + drive );
TRACE(dosfs, "%c:\n", 'A' + drive );
DRIVE_CurDrive = drive;
if (pTask) pTask->curdrive = drive | 0x80;
return 1;
......@@ -325,7 +325,7 @@ int DRIVE_FindDriveRoot( const char **path )
*next = 0;
if (rootdrive != -1)
dprintf_info(dosfs, "DRIVE_FindDriveRoot: %s -> drive %c:, root='%s', name='%s'\n",
TRACE(dosfs, "%s -> drive %c:, root='%s', name='%s'\n",
buffer, 'A' + rootdrive,
DOSDrives[rootdrive].root, *path );
return rootdrive;
......@@ -446,7 +446,7 @@ int DRIVE_Chdir( int drive, const char *path )
BY_HANDLE_FILE_INFORMATION info;
TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() );
dprintf_info(dosfs, "DRIVE_Chdir(%c:,%s)\n", 'A' + drive, path );
TRACE(dosfs, "(%c:,%s)\n", 'A' + drive, path );
strcpy( buffer, "A:" );
buffer[0] += drive;
lstrcpyn32A( buffer + 2, path, sizeof(buffer) - 2 );
......@@ -461,7 +461,7 @@ int DRIVE_Chdir( int drive, const char *path )
unix_cwd = full_name.long_name + strlen( DOSDrives[drive].root );
while (*unix_cwd == '/') unix_cwd++;
dprintf_info(dosfs, "DRIVE_Chdir(%c:): unix_cwd=%s dos_cwd=%s\n",
TRACE(dosfs, "(%c:): unix_cwd=%s dos_cwd=%s\n",
'A' + drive, unix_cwd, full_name.short_name + 3 );
HeapFree( SystemHeap, 0, DOSDrives[drive].dos_cwd );
......@@ -534,7 +534,7 @@ int DRIVE_SetLogicalMapping ( int existing_drive, int new_drive )
if ( new->root )
{
dprintf_info(dosfs, "Can\'t map drive %c to drive %c - "
TRACE(dosfs, "Can\'t map drive %c to drive %c - "
"drive %c already exists\n",
'A' + existing_drive, 'A' + new_drive,
'A' + new_drive );
......@@ -551,7 +551,7 @@ int DRIVE_SetLogicalMapping ( int existing_drive, int new_drive )
new->dev = old->dev;
new->ino = old->ino;
dprintf_info(dosfs, "Drive %c is now equal to drive %c\n",
TRACE(dosfs, "Drive %c is now equal to drive %c\n",
'A' + new_drive, 'A' + existing_drive );
return 1;
......@@ -734,7 +734,7 @@ BOOL32 WINAPI GetDiskFreeSpaceEx32W( LPCWSTR root, LPULARGE_INTEGER avail,
*/
UINT16 WINAPI GetDriveType16( UINT16 drive )
{
dprintf_info(dosfs, "GetDriveType16(%c:)\n", 'A' + drive );
TRACE(dosfs, "(%c:)\n", 'A' + drive );
switch(DRIVE_GetType(drive))
{
case TYPE_FLOPPY: return DRIVE_REMOVABLE;
......@@ -752,7 +752,7 @@ UINT16 WINAPI GetDriveType16( UINT16 drive )
*/
UINT32 WINAPI GetDriveType32A( LPCSTR root )
{
dprintf_info(dosfs, "GetDriveType32A(%s)\n", root );
TRACE(dosfs, "(%s)\n", root );
if ((root[1]) && (root[1] != ':'))
{
fprintf( stderr, "GetDriveType32A: invalid root '%s'\n", root );
......
......@@ -215,12 +215,12 @@ static PROFILESECTION *PROFILE_Load( FILE *file )
*prev_key = key;
prev_key = &key->next;
}
if (debugging_info(profile))
if (TRACE_ON(profile))
{
dprintf_info(profile, "PROFILE_Load:\n" );
TRACE(profile, "dump:\n" );
/* FIXME: improper use of stddeb! */
PROFILE_Save(stddeb, first_section );
dprintf_info(profile, "PROFILE_Load finished.\n" );
TRACE(profile, "finished.\n" );
}
return first_section;
}
......@@ -357,7 +357,7 @@ static BOOL32 PROFILE_FlushFile(void)
return FALSE;
}
dprintf_info(profile, "Saving '%s' into '%s'\n",
TRACE(profile, "Saving '%s' into '%s'\n",
CurProfile.dos_name, unix_name );
PROFILE_Save( file, CurProfile.section );
fclose( file );
......@@ -380,7 +380,7 @@ static BOOL32 PROFILE_Open( LPCSTR filename )
if (CurProfile.filename && !strcmp( filename, CurProfile.filename ))
{
dprintf_info(profile, "PROFILE_Open(%s): already opened\n",
TRACE(profile, "(%s): already opened\n",
filename );
return TRUE;
}
......@@ -400,7 +400,7 @@ static BOOL32 PROFILE_Open( LPCSTR filename )
if (CurProfile.dos_name &&
!strcmp( full_name.short_name, CurProfile.dos_name ))
{
dprintf_info(profile, "PROFILE_Open(%s): already opened\n",
TRACE(profile, "(%s): already opened\n",
filename );
return TRUE;
}
......@@ -429,7 +429,7 @@ static BOOL32 PROFILE_Open( LPCSTR filename )
CharLower32A( p );
if ((file = fopen( buffer, "r" )))
{
dprintf_info(profile, "PROFILE_Open(%s): found it in %s\n",
TRACE(profile, "(%s): found it in %s\n",
filename, buffer );
CurProfile.unix_name = HEAP_strdupA( SystemHeap, 0, buffer );
}
......@@ -440,7 +440,7 @@ static BOOL32 PROFILE_Open( LPCSTR filename )
CurProfile.unix_name = HEAP_strdupA( SystemHeap, 0,
full_name.long_name );
if ((file = fopen( full_name.long_name, "r" )))
dprintf_info(profile, "PROFILE_Open(%s): found it in %s\n",
TRACE(profile, "(%s): found it in %s\n",
filename, full_name.long_name );
}
......@@ -506,7 +506,7 @@ static INT32 PROFILE_GetString( LPCSTR section, LPCSTR key_name,
key = PROFILE_Find( &CurProfile.section, section, key_name, FALSE );
PROFILE_CopyEntry( buffer, (key && key->value) ? key->value : def_val,
len, FALSE );
dprintf_info(profile, "PROFILE_GetString('%s','%s','%s'): returning '%s'\n",
TRACE(profile, "('%s','%s','%s'): returning '%s'\n",
section, key_name, def_val, buffer );
return strlen( buffer );
}
......@@ -524,7 +524,7 @@ static BOOL32 PROFILE_SetString( LPCSTR section_name, LPCSTR key_name,
{
if (!key_name) /* Delete a whole section */
{
dprintf_info(profile, "PROFILE_DeleteSection('%s')\n", section_name);
TRACE(profile, "('%s')\n", section_name);
CurProfile.changed |= PROFILE_DeleteSection( &CurProfile.section,
section_name );
return TRUE; /* Even if PROFILE_DeleteSection() has failed,
......@@ -532,7 +532,7 @@ static BOOL32 PROFILE_SetString( LPCSTR section_name, LPCSTR key_name,
}
else if (!value) /* Delete a key */
{
dprintf_info(profile, "PROFILE_DeleteKey('%s','%s')\n",
TRACE(profile, "('%s','%s')\n",
section_name, key_name );
CurProfile.changed |= PROFILE_DeleteKey( &CurProfile.section,
section_name, key_name );
......@@ -542,20 +542,20 @@ static BOOL32 PROFILE_SetString( LPCSTR section_name, LPCSTR key_name,
{
PROFILEKEY *key = PROFILE_Find( &CurProfile.section, section_name,
key_name, TRUE );
dprintf_info(profile, "PROFILE_SetString('%s','%s','%s'): \n",
TRACE(profile, "('%s','%s','%s'): \n",
section_name, key_name, value );
if (!key) return FALSE;
if (key->value)
{
if (!strcmp( key->value, value ))
{
dprintf_info(profile, " no change needed\n" );
TRACE(profile, " no change needed\n" );
return TRUE; /* No change needed */
}
dprintf_info(profile, " replacing '%s'\n", key->value );
TRACE(profile, " replacing '%s'\n", key->value );
HeapFree( SystemHeap, 0, key->value );
}
else dprintf_info(profile, " creating key\n" );
else TRACE(profile, " creating key\n" );
key->value = HEAP_strdupA( SystemHeap, 0, value );
CurProfile.changed = TRUE;
}
......@@ -576,7 +576,7 @@ int PROFILE_GetWineIniString( const char *section, const char *key_name,
PROFILEKEY *key = PROFILE_Find(&WineProfile, section, key_name, FALSE);
PROFILE_CopyEntry( buffer, (key && key->value) ? key->value : def,
len, TRUE );
dprintf_info(profile, "PROFILE_GetWineIniString('%s','%s','%s'): returning '%s'\n",
TRACE(profile, "('%s','%s','%s'): returning '%s'\n",
section, key_name, def, buffer );
return strlen( buffer );
}
......@@ -707,7 +707,7 @@ int PROFILE_GetWineIniBool(
retval = def;
}
dprintf_info(profile, "PROFILE_GetWineIniBool(\"%s\", \"%s\", %s), "
TRACE(profile, "(\"%s\", \"%s\", %s), "
"[%c], ret %s.\n", section, key_name,
def ? "TRUE" : "FALSE", key_value[0],
retval ? "TRUE" : "FALSE");
......@@ -1031,11 +1031,11 @@ BOOL32 WINAPI WritePrivateProfileSection32A( LPCSTR section,
{
char *p =(char*)string;
dprintf_fixme(profile, "WritePrivateProfileSection32A empty stup\n");
if (debugging_info(profile)) {
dprintf_info(profile, "file(%s) => [%s]\n", filename, section);
FIXME(profile, "WritePrivateProfileSection32A empty stup\n");
if (TRACE_ON(profile)) {
TRACE(profile, "(%s) => [%s]\n", filename, section);
while (*(p+1)) {
dprintf_info(profile, "%s\n", p);
TRACE(profile, "%s\n", p);
p += strlen(p);
p += 1;
}
......
......@@ -17,7 +17,7 @@ BOOL16 WINAPI PatBlt16( HDC16 hdc, INT16 left, INT16 top,
DC * dc = DC_GetDCPtr( hdc );
if (!dc || !dc->funcs->pPatBlt) return FALSE;
dprintf_info(bitblt, "PatBlt16: %04x %d,%d %dx%d %06lx\n",
TRACE(bitblt, "%04x %d,%d %dx%d %06lx\n",
hdc, left, top, width, height, rop );
return dc->funcs->pPatBlt( dc, left, top, width, height, rop );
}
......@@ -32,7 +32,7 @@ BOOL32 WINAPI PatBlt32( HDC32 hdc, INT32 left, INT32 top,
DC * dc = DC_GetDCPtr( hdc );
if (!dc || !dc->funcs->pPatBlt) return FALSE;
dprintf_info(bitblt, "PatBlt32: %04x %d,%d %dx%d %06lx\n",
TRACE(bitblt, "%04x %d,%d %dx%d %06lx\n",
hdc, left, top, width, height, rop );
return dc->funcs->pPatBlt( dc, left, top, width, height, rop );
}
......@@ -51,10 +51,9 @@ BOOL16 WINAPI BitBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst, INT16 width,
if (!dcDst->funcs->pBitBlt) return FALSE;
dcSrc = DC_GetDCPtr( hdcSrc );
dprintf_info(bitblt,
"BitBlt16: hdcSrc=%04x %d,%d %d bpp -> hdcDest=%04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, dcSrc ? dcSrc->w.bitsPerPixel : 0,
hdcDst, xDst, yDst, width, height, dcDst->w.bitsPerPixel, rop);
TRACE(bitblt, "hdcSrc=%04x %d,%d %d bpp -> hdcDest=%04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, dcSrc ? dcSrc->w.bitsPerPixel : 0,
hdcDst, xDst, yDst, width, height, dcDst->w.bitsPerPixel, rop);
return dcDst->funcs->pBitBlt( dcDst, xDst, yDst, width, height,
dcSrc, xSrc, ySrc, rop );
}
......@@ -73,10 +72,9 @@ BOOL32 WINAPI BitBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst, INT32 width,
if (!dcDst->funcs->pBitBlt) return FALSE;
dcSrc = DC_GetDCPtr( hdcSrc );
dprintf_info(bitblt,
"BitBlt32: hdcSrc=%04x %d,%d %d bpp -> hdcDest=%04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, dcSrc ? dcSrc->w.bitsPerPixel : 0,
hdcDst, xDst, yDst, width, height, dcDst->w.bitsPerPixel, rop);
TRACE(bitblt, "hdcSrc=%04x %d,%d %d bpp -> hdcDest=%04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, dcSrc ? dcSrc->w.bitsPerPixel : 0,
hdcDst, xDst, yDst, width, height, dcDst->w.bitsPerPixel, rop);
return dcDst->funcs->pBitBlt( dcDst, xDst, yDst, width, height,
dcSrc, xSrc, ySrc, rop );
}
......@@ -96,11 +94,10 @@ BOOL16 WINAPI StretchBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst,
if (!dcDst->funcs->pStretchBlt) return FALSE;
dcSrc = DC_GetDCPtr( hdcSrc );
dprintf_info(bitblt,
"StretchBlt16: %04x %d,%d %dx%dx%d -> %04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, widthSrc, heightSrc,
dcSrc ? dcSrc->w.bitsPerPixel : 0, hdcDst, xDst, yDst,
widthDst, heightDst, dcDst->w.bitsPerPixel, rop );
TRACE(bitblt, "%04x %d,%d %dx%dx%d -> %04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, widthSrc, heightSrc,
dcSrc ? dcSrc->w.bitsPerPixel : 0, hdcDst, xDst, yDst,
widthDst, heightDst, dcDst->w.bitsPerPixel, rop );
return dcDst->funcs->pStretchBlt( dcDst, xDst, yDst, widthDst, heightDst,
dcSrc, xSrc, ySrc, widthSrc, heightSrc,
rop );
......@@ -121,11 +118,10 @@ BOOL32 WINAPI StretchBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst,
if (!dcDst->funcs->pStretchBlt) return FALSE;
dcSrc = DC_GetDCPtr( hdcSrc );
dprintf_info(bitblt,
"StretchBlt32: %04x %d,%d %dx%dx%d -> %04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, widthSrc, heightSrc,
dcSrc ? dcSrc->w.bitsPerPixel : 0, hdcDst, xDst, yDst,
widthDst, heightDst, dcDst->w.bitsPerPixel, rop );
TRACE(bitblt, "%04x %d,%d %dx%dx%d -> %04x %d,%d %dx%dx%d rop=%06lx\n",
hdcSrc, xSrc, ySrc, widthSrc, heightSrc,
dcSrc ? dcSrc->w.bitsPerPixel : 0, hdcDst, xDst, yDst,
widthDst, heightDst, dcDst->w.bitsPerPixel, rop );
return dcDst->funcs->pStretchBlt( dcDst, xDst, yDst, widthDst, heightDst,
dcSrc, xSrc, ySrc, widthSrc, heightSrc,
rop );
......
......@@ -163,7 +163,7 @@ INT32 WINAPI SetMapMode32( HDC32 hdc, INT32 mode )
if (!dc) return 0;
if (dc->funcs->pSetMapMode) return dc->funcs->pSetMapMode( dc, mode );
dprintf_info(gdi, "SetMapMode: %04x %d\n", hdc, mode );
TRACE(gdi, "%04x %d\n", hdc, mode );
prevMode = dc->w.MapMode;
switch(mode)
......
......@@ -150,7 +150,7 @@ HDC16 WINAPI CreateMetaFile16(
METAFILEDRV_PDEVICE *physDev;
HFILE32 hFile;
dprintf_info(metafile, "CreateMetaFile16: '%s'\n", filename );
TRACE(metafile, "'%s'\n", filename );
if (!(dc = MFDRV_AllocMetaFile())) return 0;
physDev = (METAFILEDRV_PDEVICE *)dc->physDev;
......@@ -175,7 +175,7 @@ HDC16 WINAPI CreateMetaFile16(
else /* memory based metafile */
physDev->mh->mtType = METAFILE_MEMORY;
dprintf_info(metafile, "CreateMetaFile16: returning %04x\n", dc->hSelf);
TRACE(metafile, "returning %04x\n", dc->hSelf);
return dc->hSelf;
}
......@@ -198,7 +198,7 @@ HMETAFILE16 WINAPI CloseMetaFile16(
HFILE32 hFile;
METAFILEDRV_PDEVICE *physDev;
dprintf_info(metafile, "CloseMetaFile(%04x)\n", hdc );
TRACE(metafile, "(%04x)\n", hdc );
if (!(dc = (DC *) GDI_GetObjPtr( hdc, METAFILE_DC_MAGIC ))) return 0;
physDev = (METAFILEDRV_PDEVICE *)dc->physDev;
......
......@@ -85,7 +85,7 @@ HGDIOBJ32 MFDRV_SelectObject( DC *dc, HGDIOBJ32 handle )
HGDIOBJ32 ret = 0;
if (!ptr) return 0;
dprintf_info(gdi, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle );
TRACE(gdi, "hdc=%04x %04x\n", dc->hSelf, handle );
switch(ptr->wMagic)
{
......
......@@ -227,8 +227,7 @@ BOOL32 WINAPI CloseFigure32(HDC32 hdc)
INT16 WINAPI GetPath16(HDC16 hdc, LPPOINT16 pPoints, LPBYTE pTypes,
INT16 nSize)
{
/* FIXME: Not implemented */
fprintf(stdnimp, "GetPath16: Unimplemented stub\n");
FIXME(gdi, "Unimplemented stub\n");
return 0;
}
......
......@@ -25,7 +25,7 @@ HBRUSH32 WIN16DRV_BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush,
if ( physDev->BrushInfo )
{
dprintf_info(win16drv, "UnRealizing BrushInfo\n");
TRACE(win16drv, "UnRealizing BrushInfo\n");
nSize = PRTDRV_RealizeObject (physDev->segptrPDEVICE, -DRVOBJ_BRUSH,
physDev->BrushInfo,
physDev->BrushInfo, 0);
......
......@@ -24,7 +24,7 @@ BOOL32 WIN16DRV_GetTextExtentPoint( DC *dc, LPCSTR str, INT32 count,
WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev;
DWORD dwRet;
dprintf_info(win16drv, "WIN16DRV_GetTextExtPoint: %04x %s %d %p\n",
TRACE(win16drv, "%04x %s %d %p\n",
dc->hSelf, str, count, size);
dwRet = PRTDRV_ExtTextOut(physDev->segptrPDEVICE, 0, 0,
......@@ -34,7 +34,7 @@ BOOL32 WIN16DRV_GetTextExtentPoint( DC *dc, LPCSTR str, INT32 count,
win16drv_SegPtr_TextXForm, NULL, NULL, 0);
size->cx = XDSTOLS(dc,LOWORD(dwRet));
size->cy = YDSTOLS(dc,HIWORD(dwRet));
dprintf_info(win16drv, "WIN16DRV_GetTextExtPoint: cx=0x%x, cy=0x%x\n",
TRACE(win16drv, "cx=0x%x, cy=0x%x\n",
size->cx, size->cy );
return TRUE;
}
......@@ -47,12 +47,11 @@ BOOL32 WIN16DRV_GetTextMetrics( DC *dc, TEXTMETRIC32A *metrics )
{
WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev;
dprintf_info(win16drv, "WIN16DRV_GetTextMetrics: %04x \n", dc->hSelf);
TRACE(win16drv, "%04x \n", dc->hSelf);
FONT_TextMetric16to32A( &physDev->tm, metrics );
dprintf_info(win16drv,
"H %d, A %d, D %d, Int %d, Ext %d, AW %d, MW %d, W %d\n",
TRACE(win16drv, "H %d, A %d, D %d, Int %d, Ext %d, AW %d, MW %d, W %d\n",
metrics->tmHeight,
metrics->tmAscent,
metrics->tmDescent,
......@@ -73,13 +72,13 @@ HFONT32 WIN16DRV_FONT_SelectObject( DC * dc, HFONT32 hfont, FONTOBJ * font)
dc->w.hFont = hfont;
dprintf_info(win16drv, "WIN16DRV_FONT_SelectObject '%s' h=%d\n",
TRACE(win16drv, "WIN16DRV_FONT_SelectObject '%s' h=%d\n",
font->logfont.lfFaceName, font->logfont.lfHeight);
if( physDev->FontInfo )
{
dprintf_info(win16drv, "UnRealizing FontInfo\n");
TRACE(win16drv, "UnRealizing FontInfo\n");
nSize = PRTDRV_RealizeObject (physDev->segptrPDEVICE, -DRVOBJ_FONT,
physDev->FontInfo,
physDev->FontInfo, 0);
......@@ -129,8 +128,7 @@ HFONT32 WIN16DRV_FONT_SelectObject( DC * dc, HFONT32 hfont, FONTOBJ * font)
physDev->tm.tmCharSet = fi->dfCharSet;
#undef fi
dprintf_info(win16drv,
"H %d, A %d, D %d, Int %d, Ext %d, AW %d, MW %d, W %d\n",
TRACE(win16drv, "H %d, A %d, D %d, Int %d, Ext %d, AW %d, MW %d, W %d\n",
physDev->tm.tmHeight,
physDev->tm.tmAscent,
physDev->tm.tmDescent,
......@@ -154,16 +152,16 @@ BOOL32 WIN16DRV_GetCharWidth( DC *dc, UINT32 firstChar, UINT32 lastChar,
WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev;
dprintf_info(win16drv, "WIN16DRV_GetCharWidth: %d - %d into %p\n",
TRACE(win16drv, "%d - %d into %p\n",
firstChar, lastChar, buffer );
wRet = PRTDRV_GetCharWidth( physDev->segptrPDEVICE, buffer, firstChar,
lastChar, physDev->FontInfo,
win16drv_SegPtr_DrawMode,
win16drv_SegPtr_TextXForm );
if( debugging_info(win16drv) ){
if( TRACE_ON(win16drv) ){
for(i = 0; i <= lastChar - firstChar; i++)
dprintf_info(win16drv, "Char %x: width %d\n", i + firstChar,
TRACE(win16drv, "Char %x: width %d\n", i + firstChar,
buffer[i]);
}
......@@ -207,7 +205,7 @@ WORD WINAPI WineEnumDFontCallback(LPLOGFONT16 lpLogFont,
LPTEXTMETRIC16 lpTextMetrics,
WORD wFontType, LONG lpClientData)
{
dprintf_info(win16drv, "In WineEnumDFontCallback plf=%p\n", lpLogFont);
TRACE(win16drv, "In WineEnumDFontCallback plf=%p\n", lpLogFont);
return (*(((WEPFC *)lpClientData)->proc))( lpLogFont, lpTextMetrics,
wFontType, ((WEPFC *)lpClientData)->lp );
}
......
......@@ -60,9 +60,9 @@ WIN16DRV_Rectangle(DC *dc, INT32 left, INT32 top, INT32 right, INT32 bottom)
BOOL32 bRet = 0;
POINT16 points[2];
dprintf_info(win16drv, "In WIN16DRV_Rectangle, x %d y %d DCOrgX %d y %d\n",
TRACE(win16drv, "In WIN16DRV_Rectangle, x %d y %d DCOrgX %d y %d\n",
left, top, dc->w.DCOrgX, dc->w.DCOrgY);
dprintf_info(win16drv, "In WIN16DRV_Rectangle, VPortOrgX %d y %d\n",
TRACE(win16drv, "In WIN16DRV_Rectangle, VPortOrgX %d y %d\n",
dc->vportOrgX, dc->vportOrgY);
points[0].x = XLPTODP(dc, left);
points[0].y = YLPTODP(dc, top);
......@@ -152,9 +152,9 @@ WIN16DRV_Ellipse(DC *dc, INT32 left, INT32 top, INT32 right, INT32 bottom)
WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev;
BOOL32 bRet = 0;
POINT16 points[2];
dprintf_info(win16drv, "In WIN16DRV_Ellipse, x %d y %d DCOrgX %d y %d\n",
TRACE(win16drv, "In WIN16DRV_Ellipse, x %d y %d DCOrgX %d y %d\n",
left, top, dc->w.DCOrgX, dc->w.DCOrgY);
dprintf_info(win16drv, "In WIN16DRV_Ellipse, VPortOrgX %d y %d\n",
TRACE(win16drv, "In WIN16DRV_Ellipse, VPortOrgX %d y %d\n",
dc->vportOrgX, dc->vportOrgY);
points[0].x = XLPTODP(dc, left);
points[0].y = YLPTODP(dc, top);
......
......@@ -177,7 +177,7 @@ BOOL32 WIN16DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device, LPCSTR output,
return FALSE;
}
dprintf_info(win16drv, "In creatdc for (%s,%s,%s) initData 0x%p\n",driver, device, output, initData);
TRACE(win16drv, "In creatdc for (%s,%s,%s) initData 0x%p\n",driver, device, output, initData);
physDev = (WIN16DRV_PDEVICE *)HeapAlloc( SystemHeap, 0, sizeof(*physDev) );
if (!physDev) return FALSE;
......@@ -186,11 +186,11 @@ BOOL32 WIN16DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device, LPCSTR output,
pLPD = LoadPrinterDriver(driver);
if (pLPD == NULL)
{
dprintf_warn(win16drv, "LPGDI_CreateDC: Failed to find printer driver\n");
WARN(win16drv, "Failed to find printer driver\n");
HeapFree( SystemHeap, 0, physDev );
return FALSE;
}
dprintf_info(win16drv, "windevCreateDC pLPD 0x%p\n", pLPD);
TRACE(win16drv, "windevCreateDC pLPD 0x%p\n", pLPD);
/* Now Get the device capabilities from the printer driver */
......@@ -226,7 +226,7 @@ BOOL32 WIN16DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device, LPCSTR output,
pPDH = (PDEVICE_HEADER *)((BYTE*)PTR_SEG_TO_LIN(physDev->segptrPDEVICE) - sizeof(PDEVICE_HEADER));
pPDH->pLPD = pLPD;
dprintf_info(win16drv, "PRTDRV_Enable: PDEVICE allocated %08lx\n",(DWORD)(physDev->segptrPDEVICE));
TRACE(win16drv, "PDEVICE allocated %08lx\n",(DWORD)(physDev->segptrPDEVICE));
/* Now get the printer driver to initialise this data */
wRet = PRTDRV_Enable((LPVOID)physDev->segptrPDEVICE, INITPDEVICE, device, driver, output, NULL);
......@@ -538,7 +538,7 @@ HANDLE16 WINAPI OpenJob(LPSTR lpOutput, LPSTR lpTitle, HDC16 hDC)
HANDLE16 hHandle = (HANDLE16)SP_ERROR;
PPRINTJOB pPrintJob;
dprintf_info(win16drv, "OpenJob: \"%s\" \"%s\" %04x\n", lpOutput, lpTitle, hDC);
TRACE(win16drv, "\"%s\" \"%s\" %04x\n", lpOutput, lpTitle, hDC);
pPrintJob = gPrintJobsTable[0];
if (pPrintJob == NULL)
......@@ -563,7 +563,7 @@ HANDLE16 WINAPI OpenJob(LPSTR lpOutput, LPSTR lpTitle, HDC16 hDC)
gPrintJobsTable[pPrintJob->nIndex] = pPrintJob;
}
}
dprintf_info(win16drv, "OpenJob: return %04x\n", hHandle);
TRACE(win16drv, "return %04x\n", hHandle);
return hHandle;
}
......@@ -572,7 +572,7 @@ int WINAPI CloseJob(HANDLE16 hJob)
int nRet = SP_ERROR;
PPRINTJOB pPrintJob = NULL;
dprintf_info(win16drv, "CloseJob: %04x\n", hJob);
TRACE(win16drv, "%04x\n", hJob);
pPrintJob = FindPrintJobFromHandle(hJob);
if (pPrintJob != NULL)
......@@ -590,7 +590,7 @@ int WINAPI WriteSpool(HANDLE16 hJob, LPSTR lpData, WORD cch)
int nRet = SP_ERROR;
PPRINTJOB pPrintJob = NULL;
dprintf_info(win16drv, "WriteSpool: %04x %08lx %04x\n", hJob, (DWORD)lpData, cch);
TRACE(win16drv, "%04x %08lx %04x\n", hJob, (DWORD)lpData, cch);
pPrintJob = FindPrintJobFromHandle(hJob);
if (pPrintJob != NULL && pPrintJob->fd >= 0 && cch)
......@@ -607,7 +607,7 @@ int WINAPI WriteDialog(HANDLE16 hJob, LPSTR lpMsg, WORD cchMsg)
{
int nRet = 0;
dprintf_info(win16drv, "WriteDialog: %04x %04x \"%s\"\n", hJob, cchMsg, lpMsg);
TRACE(win16drv, "%04x %04x '%s'\n", hJob, cchMsg, lpMsg);
nRet = MessageBox16(0, lpMsg, "Printing Error", MB_OKCANCEL);
return nRet;
......@@ -617,7 +617,7 @@ int WINAPI DeleteJob(HANDLE16 hJob, WORD wNotUsed)
{
int nRet;
dprintf_info(win16drv, "DeleteJob: %04x\n", hJob);
TRACE(win16drv, "%04x\n", hJob);
nRet = FreePrintJob(hJob);
return nRet;
......@@ -630,13 +630,13 @@ int WINAPI DeleteJob(HANDLE16 hJob, WORD wNotUsed)
*/
int WINAPI StartSpoolPage(HANDLE16 hJob)
{
dprintf_fixme(win16drv, "StartSpoolPage GDI.246 unimplemented\n");
FIXME(win16drv, "StartSpoolPage GDI.246 unimplemented\n");
return 1;
}
int WINAPI EndSpoolPage(HANDLE16 hJob)
{
dprintf_fixme(win16drv, "EndSpoolPage GDI.247 unimplemented\n");
FIXME(win16drv, "EndSpoolPage GDI.247 unimplemented\n");
return 1;
}
......@@ -644,6 +644,6 @@ int WINAPI EndSpoolPage(HANDLE16 hJob)
DWORD WINAPI GetSpoolJob(int nOption, LONG param)
{
DWORD retval = 0;
dprintf_info(win16drv, "In GetSpoolJob param 0x%lx noption %d\n",param, nOption);
TRACE(win16drv, "In GetSpoolJob param 0x%lx noption %d\n",param, nOption);
return retval;
}
......@@ -31,7 +31,7 @@ HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle )
HGDIOBJ32 ret = 0;
if (!ptr) return 0;
dprintf_info(gdi, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle );
TRACE(gdi, "hdc=%04x %04x\n", dc->hSelf, handle );
switch(ptr->wMagic)
{
......
......@@ -20,7 +20,7 @@ HPEN32 WIN16DRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen )
int nSize;
LOGPEN16 lPen16;
dc->w.hPen = hpen;
dprintf_info(win16drv, "In WIN16DRV_PEN_SelectObject\n");
TRACE(win16drv, "In WIN16DRV_PEN_SelectObject\n");
lPen16.lopnStyle = pen->logpen.lopnStyle;
lPen16.lopnWidth.x = pen->logpen.lopnWidth.x;
lPen16.lopnWidth.y = pen->logpen.lopnWidth.y;
......@@ -28,7 +28,7 @@ HPEN32 WIN16DRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen )
if ( physDev->PenInfo )
{
dprintf_info(win16drv, "UnRealizing PenInfo\n");
TRACE(win16drv, "UnRealizing PenInfo\n");
nSize = PRTDRV_RealizeObject (physDev->segptrPDEVICE, -DRVOBJ_PEN,
physDev->PenInfo,
physDev->PenInfo, 0);
......
......@@ -31,7 +31,7 @@ BOOL32 WIN16DRV_ExtTextOut( DC *dc, INT32 x, INT32 y, UINT32 flags,
if (count == 0)
return FALSE;
dprintf_info(win16drv, "WIN16DRV_ExtTextOut: %04x %d %d %x %p %*s %p\n",
TRACE(win16drv, "%04x %d %d %x %p %*s %p\n",
dc->hSelf, x, y, flags, lprect, count > 0 ? count : 8, str, lpDx);
......@@ -54,7 +54,7 @@ BOOL32 WIN16DRV_ExtTextOut( DC *dc, INT32 x, INT32 y, UINT32 flags,
}
dprintf_info(win16drv, "textalign = %d\n", dc->w.textAlign);
TRACE(win16drv, "textalign = %d\n", dc->w.textAlign);
if (dc->w.textAlign & TA_UPDATECP)
{
......
......@@ -1119,12 +1119,12 @@ static BOOL32 BITBLT_InternalStretchBlt( DC *dcDst, INT32 xDst, INT32 yDst,
widthDst = widthDst * dcDst->vportExtX / dcDst->wndExtX;
heightDst = heightDst * dcDst->vportExtY / dcDst->wndExtY;
dprintf_info(bitblt, " vportdst=%d,%d-%d,%d wnddst=%d,%d-%d,%d\n",
TRACE(bitblt, " vportdst=%d,%d-%d,%d wnddst=%d,%d-%d,%d\n",
dcDst->vportOrgX, dcDst->vportOrgY,
dcDst->vportExtX, dcDst->vportExtY,
dcDst->wndOrgX, dcDst->wndOrgY,
dcDst->wndExtX, dcDst->wndExtY );
dprintf_info(bitblt, " rectdst=%d,%d-%d,%d orgdst=%d,%d\n",
TRACE(bitblt, " rectdst=%d,%d-%d,%d orgdst=%d,%d\n",
xDst, yDst, widthDst, heightDst,
dcDst->w.DCOrgX, dcDst->w.DCOrgY );
......@@ -1135,19 +1135,19 @@ static BOOL32 BITBLT_InternalStretchBlt( DC *dcDst, INT32 xDst, INT32 yDst,
widthSrc = widthSrc * dcSrc->vportExtX / dcSrc->wndExtX;
heightSrc = heightSrc * dcSrc->vportExtY / dcSrc->wndExtY;
fStretch = (widthSrc != widthDst) || (heightSrc != heightDst);
dprintf_info(bitblt," vportsrc=%d,%d-%d,%d wndsrc=%d,%d-%d,%d\n",
TRACE(bitblt," vportsrc=%d,%d-%d,%d wndsrc=%d,%d-%d,%d\n",
dcSrc->vportOrgX, dcSrc->vportOrgY,
dcSrc->vportExtX, dcSrc->vportExtY,
dcSrc->wndOrgX, dcSrc->wndOrgY,
dcSrc->wndExtX, dcSrc->wndExtY );
dprintf_info(bitblt, " rectsrc=%d,%d-%d,%d orgsrc=%d,%d\n",
TRACE(bitblt, " rectsrc=%d,%d-%d,%d orgsrc=%d,%d\n",
xSrc, ySrc, widthSrc, heightSrc,
dcSrc->w.DCOrgX, dcSrc->w.DCOrgY );
if (!BITBLT_GetVisRectangles( dcDst, xDst, yDst, widthDst, heightDst,
dcSrc, xSrc, ySrc, widthSrc, heightSrc,
&visRectSrc, &visRectDst ))
return TRUE;
dprintf_info(bitblt, " vissrc=%d,%d-%d,%d visdst=%d,%d-%d,%d\n",
TRACE(bitblt, " vissrc=%d,%d-%d,%d visdst=%d,%d-%d,%d\n",
visRectSrc.left, visRectSrc.top,
visRectSrc.right, visRectSrc.bottom,
visRectDst.left, visRectDst.top,
......@@ -1159,7 +1159,7 @@ static BOOL32 BITBLT_InternalStretchBlt( DC *dcDst, INT32 xDst, INT32 yDst,
if (!BITBLT_GetVisRectangles( dcDst, xDst, yDst, widthDst, heightDst,
NULL, 0, 0, 0, 0, NULL, &visRectDst ))
return TRUE;
dprintf_info(bitblt, " vissrc=none visdst=%d,%d-%d,%d\n",
TRACE(bitblt, " vissrc=none visdst=%d,%d-%d,%d\n",
visRectDst.left, visRectDst.top,
visRectDst.right, visRectDst.bottom );
}
......
......@@ -208,7 +208,7 @@ HBRUSH32 X11DRV_BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush, BRUSHOBJ * brush )
BITMAPINFO * bmpInfo;
HBRUSH16 prevHandle = dc->w.hBrush;
dprintf_info(gdi, "Brush_SelectObject: hdc=%04x hbrush=%04x\n",
TRACE(gdi, "hdc=%04x hbrush=%04x\n",
dc->hSelf,hbrush);
#ifdef NOTDEF
if (dc->header.wMagic == METAFILE_DC_MAGIC)
......@@ -243,16 +243,16 @@ HBRUSH32 X11DRV_BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush, BRUSHOBJ * brush )
switch(brush->logbrush.lbStyle)
{
case BS_NULL:
dprintf_info(gdi,"BS_NULL\n" );
TRACE(gdi,"BS_NULL\n" );
break;
case BS_SOLID:
dprintf_info(gdi,"BS_SOLID\n" );
TRACE(gdi,"BS_SOLID\n" );
BRUSH_SelectSolidBrush( dc, brush->logbrush.lbColor );
break;
case BS_HATCHED:
dprintf_info(gdi, "BS_HATCHED\n" );
TRACE(gdi, "BS_HATCHED\n" );
dc->u.x.brush.pixel = COLOR_ToPhysical( dc, brush->logbrush.lbColor );
dc->u.x.brush.pixmap = TSXCreateBitmapFromData( display, rootWindow,
HatchBrushes[brush->logbrush.lbHatch], 8, 8 );
......@@ -260,12 +260,12 @@ HBRUSH32 X11DRV_BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush, BRUSHOBJ * brush )
break;
case BS_PATTERN:
dprintf_info(gdi, "BS_PATTERN\n");
TRACE(gdi, "BS_PATTERN\n");
BRUSH_SelectPatternBrush( dc, (HBRUSH16)brush->logbrush.lbHatch );
break;
case BS_DIBPATTERN:
dprintf_info(gdi, "BS_DIBPATTERN\n");
TRACE(gdi, "BS_DIBPATTERN\n");
if ((bmpInfo = (BITMAPINFO *) GlobalLock16( (HGLOBAL16)brush->logbrush.lbHatch )))
{
int size = DIB_BitmapInfoSize( bmpInfo, brush->logbrush.lbColor );
......
......@@ -270,7 +270,7 @@ BOOL32
X11DRV_RoundRect( DC *dc, INT32 left, INT32 top, INT32 right,
INT32 bottom, INT32 ell_width, INT32 ell_height )
{
dprintf_info(graphics, "X11DRV_RoundRect(%d %d %d %d %d %d\n",
TRACE(graphics, "(%d %d %d %d %d %d\n",
left, top, right, bottom, ell_width, ell_height);
left = XLPTODP( dc, left );
......@@ -694,7 +694,7 @@ X11DRV_ExtFloodFill( DC *dc, INT32 x, INT32 y, COLORREF color,
BOOL32 result;
struct FloodFill_params params = { dc, x, y, color, fillType };
dprintf_info(graphics, "X11DRV_ExtFloodFill %d,%d %06lx %d\n",
TRACE(graphics, "X11DRV_ExtFloodFill %d,%d %06lx %d\n",
x, y, color, fillType );
if (!PtVisible32( dc->hSelf, x, y )) return FALSE;
......
......@@ -31,7 +31,7 @@ HGDIOBJ32 X11DRV_SelectObject( DC *dc, HGDIOBJ32 handle )
HGDIOBJ32 ret = 0;
if (!ptr) return 0;
dprintf_info(gdi, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle );
TRACE(gdi, "hdc=%04x %04x\n", dc->hSelf, handle );
switch(ptr->wMagic)
{
......
......@@ -43,10 +43,10 @@ X11DRV_ExtTextOut( DC *dc, INT32 x, INT32 y, UINT32 flags,
lfUnderline = (pfo->fo_flags & FO_SYNTH_UNDERLINE) ? 1 : 0;
lfStrikeOut = (pfo->fo_flags & FO_SYNTH_STRIKEOUT) ? 1 : 0;
dprintf_info(text,"ExtTextOut: hdc=%04x df=%04x %d,%d '%.*s', %d flags=%d\n",
TRACE(text,"hdc=%04x df=%04x %d,%d '%.*s', %d flags=%d\n",
dc->hSelf, (UINT16)(dc->u.x.font), x, y, (int)count, str, count, flags);
if (lprect != NULL) dprintf_info(text, "\trect=(%d,%d- %d,%d)\n",
if (lprect != NULL) TRACE(text, "\trect=(%d,%d- %d,%d)\n",
lprect->left, lprect->top,
lprect->right, lprect->bottom );
/* Setup coordinates */
......@@ -85,7 +85,7 @@ X11DRV_ExtTextOut( DC *dc, INT32 x, INT32 y, UINT32 flags,
x = XLPTODP( dc, x );
y = YLPTODP( dc, y );
dprintf_info(text,"\treal coord: x=%i, y=%i, rect=(%d,%d-%d,%d)\n",
TRACE(text,"\treal coord: x=%i, y=%i, rect=(%d,%d-%d,%d)\n",
x, y, rect.left, rect.top, rect.right, rect.bottom);
/* Draw the rectangle */
......
......@@ -523,7 +523,7 @@ static BOOL32 LFD_ComposeLFD( fontObject* fo,
sprintf( lpch, "%i-*-*-*-*-*-%s*", fo->fi->lfd_height, lpEncoding );
}
dprintf_info(font,"\tLFD: %s\n", lpLFD );
TRACE(font,"\tLFD: %s\n", lpLFD );
return TRUE;
}
......@@ -825,7 +825,7 @@ static void XFONT_WindowsNames( char* buffer )
}
#ifdef DEBUG_FONT_INIT
dprintf_info(font,"typeface \'%s\'\n", fr->lfFaceName);
TRACE(font,"typeface \'%s\'\n", fr->lfFaceName);
#endif
fr->fr_flags |= FR_NAMESET;
}
......@@ -866,7 +866,7 @@ static fontAlias* XFONT_CreateAlias( LPCSTR lpTypeFace, LPCSTR lpAlias )
if( !lstrcmpi32A( pfa->faTypeFace, lpAlias ) )
{
#ifdef DEBUG_FONT_INIT
dprintf_info(font,"\tredundant alias '%s' -> '%s'\n", lpAlias, lpTypeFace );
TRACE(font,"\tredundant alias '%s' -> '%s'\n", lpAlias, lpTypeFace );
#endif
return NULL;
}
......@@ -886,7 +886,7 @@ static fontAlias* XFONT_CreateAlias( LPCSTR lpTypeFace, LPCSTR lpAlias )
lstrcpy32A( pfa->faAlias, lpAlias );
#ifdef DEBUG_FONT_INIT
dprintf_info(font, "\tadded alias '%s' for %s\n", lpAlias, lpTypeFace );
TRACE(font, "\tadded alias '%s' for %s\n", lpAlias, lpTypeFace );
#endif
return pfa;
}
......@@ -988,7 +988,7 @@ static void XFONT_LoadAliases( char** buffer, int buf_size )
}
#ifdef DEBUG_FONT_INIT
dprintf_info(font, "\tsubstituted '%s' with %s\n",
TRACE(font, "\tsubstituted '%s' with %s\n",
frMatch->lfFaceName, lpAlias );
#endif
lstrcpyn32A( frMatch->lfFaceName, lpAlias, LF_FACESIZE );
......@@ -1062,7 +1062,7 @@ static BOOL32 XFONT_ReadCachedMetrics( int fd, int res, unsigned x_checksum, int
fontResource* pfr = fontList;
fontInfo* pfi = NULL;
dprintf_info(font,"Reading cached font metrics:\n");
TRACE(font,"Reading cached font metrics:\n");
read( fd, fontList, i); /* read all metrics at once */
while( offset < length )
......@@ -1102,7 +1102,7 @@ static BOOL32 XFONT_ReadCachedMetrics( int fd, int res, unsigned x_checksum, int
offset += sizeof(int);
for( pfr = fontList; pfr; pfr = pfr->next )
{
dprintf_info(font,"\t%s, %i instances\n", lpch, pfr->count );
TRACE(font,"\t%s, %i instances\n", lpch, pfr->count );
pfr->resource = lpch;
while( TRUE )
{
......@@ -1158,13 +1158,13 @@ static BOOL32 XFONT_WriteCachedMetrics( int fd, unsigned x_checksum, int x_count
i += n_ff * sizeof(fontResource) + j * sizeof(fontInfo) + sizeof(int);
write( fd, &i, sizeof(int) );
dprintf_info(font,"Writing font cache:\n");
TRACE(font,"Writing font cache:\n");
for( pfr = fontList; pfr; pfr = pfr->next )
{
fontInfo fi;
dprintf_info(font,"\t%s, %i instances\n", pfr->resource, pfr->count );
TRACE(font,"\t%s, %i instances\n", pfr->resource, pfr->count );
i = write( fd, pfr, sizeof(fontResource) );
if( i == sizeof(fontResource) )
......@@ -1323,7 +1323,7 @@ BOOL32 X11DRV_FONT_Init( DeviceCaps* pDevCaps )
x_pattern = TSXListFonts(display, "*", MAX_FONT_FAMILIES * 16, &x_count );
dprintf_info(font,"Font Mapper: initializing %i fonts [LPY=%i, XDR=%i, DR=%i]\n",
TRACE(font,"Font Mapper: initializing %i fonts [LPY=%i, XDR=%i, DR=%i]\n",
x_count, pDevCaps->logPixelsY, DefResolution, res);
for( i = x_checksum = 0; i < x_count; i++ )
{
......@@ -1396,7 +1396,7 @@ BOOL32 X11DRV_FONT_Init( DeviceCaps* pDevCaps )
lstrcpyn32A( fr->resource, typeface, j + 1 );
#ifdef DEBUG_FONT_INIT
dprintf_info(font," family: %s\n", fr->resource );
TRACE(font," family: %s\n", fr->resource );
#endif
if( pfr ) pfr->next = fr;
......@@ -1440,7 +1440,7 @@ BOOL32 X11DRV_FONT_Init( DeviceCaps* pDevCaps )
TSXFreeFont( display, x_fs );
#ifdef DEBUG_FONT_INIT
dprintf_info(font,"\t[% 2ipt] '%s'\n", fi->df.dfPoints, typeface );
TRACE(font,"\t[% 2ipt] '%s'\n", fi->df.dfPoints, typeface );
#endif
XFONT_CheckFIList( fr, fi, REMOVE_SUBSETS );
fi = NULL; /* preventing reuse */
......@@ -1485,7 +1485,7 @@ BOOL32 X11DRV_FONT_Init( DeviceCaps* pDevCaps )
XFONT_GrowFreeList(0, fontCacheSize - 1);
#ifdef DEBUG_FONT_INIT
dprintf_info(font,"done!\n");
TRACE(font,"done!\n");
#endif
/* update text caps parameter */
......@@ -1549,7 +1549,7 @@ static UINT32 XFONT_Match( fontMatch* pfm )
BOOL32 bScale = pfi->fi_flags & FI_SCALABLE;
INT32 d, h;
dprintf_info(font,"\t[ %-2ipt h=%-3i w=%-3i %s%s]\n", pfi->df.dfPoints,
TRACE(font,"\t[ %-2ipt h=%-3i w=%-3i %s%s]\n", pfi->df.dfPoints,
pfi->df.dfPixHeight, pfi->df.dfAvgWidth,
(pfi->df.dfWeight > 400) ? "Bold " : "Normal ",
(pfi->df.dfItalic) ? "Italic" : "" );
......@@ -1639,7 +1639,7 @@ static UINT32 XFONT_Match( fontMatch* pfm )
if( penalty && pfi->lfd_resolution != DefResolution )
penalty++;
dprintf_info(font," returning %i\n", penalty );
TRACE(font," returning %i\n", penalty );
return penalty;
}
......@@ -1717,7 +1717,7 @@ static void XFONT_CheckFIList( fontResource* fr, fontInfo* fi, int action)
}
#ifdef DEBUG_FONT_INIT
if( i ) dprintf_info(font,"\t purged %i subsets [%i]\n", i , fr->count);
if( i ) TRACE(font,"\t purged %i subsets [%i]\n", i , fr->count);
#endif
}
......@@ -1760,7 +1760,7 @@ static BOOL32 XFONT_MatchDeviceFont( fontResource* start, fontMatch* pfm )
if( fm.pfr ) /* match family */
{
dprintf_info(font, "%s\n", fm.pfr->lfFaceName );
TRACE(font, "%s\n", fm.pfr->lfFaceName );
XFONT_MatchFIList( &fm );
*pfm = fm;
......@@ -1774,7 +1774,7 @@ static BOOL32 XFONT_MatchDeviceFont( fontResource* start, fontMatch* pfm )
for( start = fontList; start && score; start = start->next )
{
fm.pfr = start;
dprintf_info(font, "%s\n", fm.pfr->lfFaceName );
TRACE(font, "%s\n", fm.pfr->lfFaceName );
current_score = XFONT_MatchFIList( &fm );
if( current_score < score )
......@@ -1849,7 +1849,7 @@ static fontObject* XFONT_GetCacheEntry()
{
int prev_i, prev_j, j;
dprintf_info(font,"font cache is full\n");
TRACE(font,"font cache is full\n");
/* lookup the least recently used font */
......@@ -1868,7 +1868,7 @@ static fontObject* XFONT_GetCacheEntry()
{
/* detach from the lru list */
dprintf_info(font,"\tfreeing entry %i\n", j );
TRACE(font,"\tfreeing entry %i\n", j );
if( prev_j >= 0 )
fontCache[prev_j].lru = fontCache[j].lru;
......@@ -1886,7 +1886,7 @@ static fontObject* XFONT_GetCacheEntry()
prev_i = fontCacheSize + FONTCACHE;
dprintf_info(font,"\tgrowing font cache from %i to %i\n", fontCacheSize, prev_i );
TRACE(font,"\tgrowing font cache from %i to %i\n", fontCacheSize, prev_i );
if( (newCache = (fontObject*)HeapReAlloc(SystemHeap, 0,
fontCache, prev_i)) )
......@@ -1941,9 +1941,9 @@ static X_PHYSFONT XFONT_RealizeFont( LPLOGFONT16 plf )
{
UINT32 uRelaxLevel = 0;
dprintf_info(font,"XRealizeFont: (%u) '%s' h=%i weight=%i %s\n",
plf->lfCharSet, plf->lfFaceName, plf->lfHeight,
plf->lfWeight, (plf->lfItalic) ? "Italic" : "" );
TRACE(font,"(%u) '%s' h=%i weight=%i %s\n",
plf->lfCharSet, plf->lfFaceName, plf->lfHeight,
plf->lfWeight, (plf->lfItalic) ? "Italic" : "" );
XFONT_MatchDeviceFont( fontList, &fm );
......@@ -2019,7 +2019,7 @@ static X_PHYSFONT XFONT_RealizeFont( LPLOGFONT16 plf )
pfo->lru = fontMRU;
fontMRU = (pfo - fontCache);
dprintf_info(font,"physfont %i\n", fontMRU);
TRACE(font,"physfont %i\n", fontMRU);
return (X_PHYSFONT)(X_PFONT_MAGIC | fontMRU);
}
......
......@@ -29,6 +29,7 @@ DLLS = \
stress.spec \
system.spec \
toolhelp.spec \
typelib.spec \
user.spec \
ver.spec \
w32sys.spec \
......
......@@ -67,6 +67,7 @@ extern const WIN16_DESCRIPTOR STORAGE_Descriptor;
extern const WIN16_DESCRIPTOR STRESS_Descriptor;
extern const WIN16_DESCRIPTOR SYSTEM_Descriptor;
extern const WIN16_DESCRIPTOR TOOLHELP_Descriptor;
extern const WIN16_DESCRIPTOR TYPELIB_Descriptor;
extern const WIN16_DESCRIPTOR USER_Descriptor;
extern const WIN16_DESCRIPTOR VER_Descriptor;
extern const WIN16_DESCRIPTOR W32SYS_Descriptor;
......@@ -108,6 +109,7 @@ static BUILTIN16_DLL BuiltinDLLs[] =
{ &STORAGE_Descriptor, DLL_FLAG_NOT_USED },
{ &STRESS_Descriptor, 0 },
{ &TOOLHELP_Descriptor, 0 },
{ &TYPELIB_Descriptor, 0 },
{ &VER_Descriptor, 0 },
{ &W32SYS_Descriptor, 0 },
{ &WIN32S16_Descriptor, 0 },
......@@ -141,7 +143,7 @@ static HMODULE16 BUILTIN_DoLoadModule16( const WIN16_DESCRIPTOR *descr )
if (!hModule) return 0;
FarSetOwner( hModule, hModule );
dprintf_info(module, "Built-in %s: hmodule=%04x\n",
TRACE(module, "Built-in %s: hmodule=%04x\n",
descr->name, hModule );
pModule = (NE_MODULE *)GlobalLock16( hModule );
pModule->self = hModule;
......
......@@ -34,7 +34,7 @@ type win16
31 pascal CoDosDateTimeToFileTime(word word ptr) DosDateTimeToFileTime
32 stub COMARSHALHRESULT
33 stub COUNMARSHALHRESULT
34 stub COGETCURRENTPROCESS
34 pascal CoGetCurrentProcess() CoGetCurrentProcess
#35 ___EXPORTEDSTUB
36 stub COISOLE1CLASS
37 stub _GUID_NULL
......@@ -63,7 +63,7 @@ type win16
60 stub _IID_IMESSAGEFILTER
61 pascal CLSIDFromProgID(str ptr) CLSIDFromProgID16
62 stub PROGIDFROMCLSID
63 stub COLOCKOBJECTEXTERNAL
63 pascal CoLockObjectExternal(segptr word word) CoLockObjectExternal16
64 stub _CLSID_STDMARSHAL
65 stub COGETTREATASCLASS
66 stub COTREATASCLASS
......@@ -75,7 +75,7 @@ type win16
72 stub _IID_IEXTERNALCONNECTION
73 stub COCREATEGUID
75 stub FNASSERT
76 stub STRINGFROMGUID2
76 pascal STRINGFROMGUID2(ptr ptr word) StringFromGUID2
77 stub COGETCLASSEXT
78 stub OLE1CLASSFROMCLSID2
79 stub CLSIDFROMOLE1CLASS
......
......@@ -301,6 +301,7 @@ file krnl386.exe
422 pascal16 GetDiskFreeSpace(ptr ptr ptr ptr ptr) GetDiskFreeSpace16
431 pascal16 KERNEL_431(str word) KERNEL_431
432 stub FileTimeToLocalFileTime
434 stub KERNEL_434
435 stub KERNEL_435
439 stub KERNEL_439
440 stub KERNEL_440
......@@ -355,6 +356,6 @@ file krnl386.exe
621 stub KERNEL_621
627 stub IsBadFlatReadWritePtr
630 stub KERNEL_630
631 pascal FUNC004(word word long) FUNC004 #C16ThkSl01?
631 pascal FUNC004(word word word) FUNC004 #C16ThkSl01?
651 stub KERNEL_651 #ThunkConnect16?
700 pascal KERNEL_700() stub_KERNEL_700
......@@ -28,14 +28,14 @@ type win16
25 stub OLELOADFROMSTREAM
26 stub CREATEBINDCTX
27 stub CREATEITEMMONIKER
28 stub CREATEFILEMONIKER
28 pascal CreateFileMoniker(str ptr) CreateFileMoniker16
29 stub CREATEGENERICCOMPOSITE
30 stub GETRUNNINGOBJECTTABLE
30 pascal GetRunningObjectTable(long ptr) GetRunningObjectTable16
31 stub OLEGETMALLOC
32 stub RELEASESTGMEDIUM
33 stub READSTRINGSTREAM
34 stub WRITESTRINGSTREAM
35 stub REGISTERDRAGDROP
35 pascal RegisterDragDrop(word segptr) RegisterDragDrop16
36 stub REVOKEDRAGDROP
37 stub DODRAGDROP
38 stub CREATEOLEADVISEHOLDER
......
......@@ -2,12 +2,12 @@ name ole2disp
type win16
1 stub DLLGETCLASSOBJECT
2 pascal SysAllocString(ptr) SysAllocString
3 pascal SysReallocString(ptr ptr) SysReAllocString
4 pascal SysAllocStringLen(ptr word) SysAllocStringLen
5 pascal SysReAllocStringLen(ptr ptr word) SysReAllocStringLen
6 pascal SysFreeString(long) SysFreeString
7 pascal SysStringLen(long) SysStringLen
2 pascal SysAllocString(str) SysAllocString
3 pascal SysReallocString(ptr str) SysReAllocString
4 pascal SysAllocStringLen(str word) SysAllocStringLen
5 pascal SysReAllocStringLen(ptr str word) SysReAllocStringLen
6 pascal SysFreeString(segstr) SysFreeString
7 pascal SysStringLen(segstr) SysStringLen
8 stub VARIANTINIT
9 stub VARIANTCLEAR
10 stub VARIANTCOPY
......
......@@ -7,8 +7,8 @@ type win16
4 pascal GetSystemDefaultLangID() GetSystemDefaultLangID
5 pascal GetLocaleInfoA(long long ptr word) GetLocaleInfo16
6 stub LCMAPSTRINGA
7 pascal16 GetStringTypeA(long long ptr word ptr) GetStringType16
8 pascal16 CompareStringA(long long ptr word ptr word) CompareString16
7 pascal16 GetStringTypeA(long long str word ptr) GetStringType16
8 pascal16 CompareStringA(long long str word str word) CompareString16
#9 WEP
10 stub LIBMAIN
11 stub NOTIFYWINDOWPROC
......@@ -56,7 +56,7 @@ type win16
57 stub OLEEXECUTE
58 stub OLECREATEINVISIBLE
59 stub OLEQUERYCLIENTVERSION
60 pascal16 OleIsDcMeta(word) OleIsDcMeta
60 pascal16 OleIsDcMeta(word) OleIsDcMeta16
100 stub DOCWNDPROC
101 stub SRVRWNDPROC
102 stub MFCALLBACKFUNC
......
......@@ -17,7 +17,7 @@
#if 0
/* Make make_debug think these were really used */
dprintf_info(relay, "test - dummy");
TRACE(relay, "test - dummy");
#endif
......@@ -81,7 +81,7 @@ void RELAY_DebugCallFrom16( int func_type, char *args,
char *args16;
int i;
if (!debugging_info(relay)) return;
if (!TRACE_ON(relay)) return;
frame = CURRENT_STACK16;
printf( "Call %s(", BUILTIN_GetEntryPoint16( frame->entry_cs,
......@@ -199,7 +199,7 @@ void RELAY_DebugCallFrom16Ret( int func_type, int ret_val, CONTEXT *context)
STACK16FRAME *frame;
WORD ordinal;
if (!debugging_info(relay)) return;
if (!TRACE_ON(relay)) return;
frame = CURRENT_STACK16;
printf( "Ret %s() ", BUILTIN_GetEntryPoint16( frame->entry_cs,
frame->entry_ip,
......@@ -257,7 +257,7 @@ void RELAY_DebugCallTo16( int* stack, int nb_args )
{
THDB *thdb;
if (!debugging_info(relay)) return;
if (!TRACE_ON(relay)) return;
thdb = THREAD_Current();
if (nb_args == -1) /* Register function */
......@@ -383,7 +383,7 @@ void WINAPI Throw( CONTEXT *context )
if (lpbuf[8] != SS_reg(context))
fprintf( stderr, "Switching stack segment with Throw() not supported; expect crash now\n" );
if (debugging_info(relay)) /* Make sure we have a valid entry point address */
if (TRACE_ON(relay)) /* Make sure we have a valid entry point address */
{
static FARPROC16 entryPoint = NULL;
......@@ -468,7 +468,7 @@ static DWORD RELAY_CallProc32W(int Ex)
if (!Ex) STACK16_POP( THREAD_Current(),
(3 + nrofargs) * sizeof(DWORD) );
dprintf_info(relay,"%s - returns %08lx\n",dbg_str(relay),ret);
TRACE(relay,"%s - returns %08lx\n",dbg_str(relay),ret);
HeapFree( GetProcessHeap(), 0, args );
return ret;
}
......
......@@ -44,6 +44,7 @@ extern BOOL32 INSTR_EmulateInstruction( SIGCONTEXT *context );
*/
static HANDLER_DEF(SIGNAL_break)
{
HANDLER_INIT();
if (Options.debug)
wine_debug( signal, HANDLER_CONTEXT ); /* Enter our debugger */
else exit(0);
......@@ -57,6 +58,7 @@ static HANDLER_DEF(SIGNAL_break)
*/
static HANDLER_DEF(SIGNAL_trap)
{
HANDLER_INIT();
wine_debug( signal, HANDLER_CONTEXT ); /* Enter our debugger */
}
......@@ -70,6 +72,7 @@ static HANDLER_DEF(SIGNAL_fault)
{
WORD cs;
GET_CS(cs);
HANDLER_INIT();
if (CS_sig(HANDLER_CONTEXT) == cs)
{
fprintf( stderr, "Segmentation fault in 32-bit code (0x%08lx).\n",
......
......@@ -14,4 +14,6 @@ type win16
13 pascal freeallusermem() FreeAllUserMem
14 pascal allocgdimem(word) AllocGDIMem
15 pascal freeallgdimem() FreeAllGDIMem
16 stub GETFREEHEAP32SPACE
17 stub ALLOCHEAP32MEM
18 stub FREEALLHEAP32MEM
......@@ -226,7 +226,7 @@ static void THUNK_Free( THUNK *thunk )
return;
}
}
dprintf_err(thunk, "THUNK_Free: invalid thunk addr %p\n", thunk );
ERR(thunk, "invalid thunk addr %p\n", thunk );
}
......@@ -625,7 +625,7 @@ static BOOL32 WINAPI THUNK_WOWCallback16Ex(
LPDWORD args = (LPDWORD)xargs;
DWORD ret,i;
dprintf_info(relay,"WOWCallback16Ex(%p,0x%08lx,%ld,%p,%p)\n",
TRACE(relay,"(%p,0x%08lx,%ld,%p,%p)\n",
proc,dwFlags,cbArgs,xargs,pdwret
);
if (dwFlags == WCB16_CDECL) {
......
......@@ -35,3 +35,6 @@ type win16
81 stub TASKSETCSIP
82 stub TASKGETCSIP
83 stub TASKSWITCH
84 stub LOCAL32INFO
85 stub LOCAL32FIRST
86 stub LOCAL32NEXT
name typelib
type win16
2 stub CREATETYPELIB
3 stub LOADTYPELIB
4 stub LHASHVALOFNAMESYS
5 stub _IID_ICREATETYPEINFO
6 stub _IID_ICREATETYPELIB
7 stub _IID_ITYPECOMP
8 stub _IID_ITYPEINFO
9 stub _IID_ITYPELIB
10 stub REGISTERTYPELIB
11 stub LOADREGTYPELIB
14 pascal QueryPathOfRegTypeLib(ptr word word word ptr) QueryPathOfRegTypeLib
15 stub OABUILDVERSION
......@@ -218,7 +218,7 @@ file user.exe
213 pascal16 BuildCommDCB(ptr ptr) BuildCommDCB16
214 pascal EscapeCommFunction(word word) EscapeCommFunction16
215 pascal16 FlushComm(word word) FlushComm
216 stub USERSEEUSERDO
216 pascal UserSeeUserDo(word word word word) UserSeeUserDo
217 pascal16 LookupMenuHandle(word s_word) LookupMenuHandle
218 pascal16 DialogBoxIndirect(word word word segptr) DialogBoxIndirect16
219 pascal16 CreateDialogIndirect(word ptr word segptr) CreateDialogIndirect16
......
......@@ -20,3 +20,6 @@
/* Define if X libraries are not reentrant (compiled without -D_REENTRANT). */
#undef NO_REENTRANT_X11
/* Define if you have machine/soundcard.h instead of sys/soundcard.h. */
#undef HAVE_MACHINE_SOUNDCARD_H
......@@ -108,4 +108,84 @@ VOID WINAPI DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32);
VOID WINAPI DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32);
#define DrawStatusText WINELIB_NAME_AW(DrawStatusText)
/* ImageList */
#if defined(__WINE__) && defined(__WINE_IMAGELIST_C)
#else
struct _IMAGELIST;
typedef struct _IMAGELIST *HIMAGELIST;
#endif /* __WINE__ */
#define CLR_NONE 0xFFFFFFFF
#define CLR_DEFAULT 0x00000000
#define CLR_HILIGHT CLR_DEFAULT
#define ILC_MASK 0x0001
#define ILC_COLOR 0x0000
#define ILC_COLORDDB 0x00FE
#define ILC_COLOR4 0x0004
#define ILC_COLOR8 0x0008
#define ILC_COLOR16 0x0010
#define ILC_COLOR24 0x0018
#define ILC_COLOR32 0x0020
#define ILC_PALETTE 0x0800
#define ILD_NORMAL 0x0000
#define ILD_TRANSPARENT 0x0001
#define ILD_BLEND25 0x0002
#define ILD_BLEND50 0x0004
#define ILD_MASK 0x0010
#define ILD_IMAGE 0x0020
#define ILD_ROP 0x0040
#define ILD_OVERLAYMASK 0x0F00
#define ILD_SELECTED ILD_BLEND50
#define ILD_FOCUS ILD_BLEND25
#define ILD_BLEND ILD_BLEND50
#define INDEXTOOVERLAYMASK(i) ((i)<<8)
typedef struct _IMAGEINFO
{
HBITMAP32 hbmImage;
HBITMAP32 hbmMask;
INT32 Unused1;
INT32 Unused2;
RECT32 rcImage;
} IMAGEINFO;
INT32 WINAPI ImageList_Add(HIMAGELIST,HBITMAP32,HBITMAP32);
INT32 WINAPI ImageList_AddMasked(HIMAGELIST,HBITMAP32,COLORREF);
HIMAGELIST WINAPI ImageList_Create(INT32,INT32,UINT32,INT32,INT32);
BOOL32 WINAPI ImageList_Destroy(HIMAGELIST);
BOOL32 WINAPI ImageList_Draw(HIMAGELIST,INT32,HDC32,INT32,INT32,UINT32);
COLORREF WINAPI ImageList_GetBkColor(HIMAGELIST);
BOOL32 WINAPI ImageList_GetIconSize(HIMAGELIST,INT32*,INT32*);
INT32 WINAPI ImageList_GetImageCount(HIMAGELIST);
BOOL32 WINAPI ImageList_GetImageInfo(HIMAGELIST,INT32,IMAGEINFO*);
HIMAGELIST WINAPI ImageList_LoadImage32A(HINSTANCE32,LPCSTR,INT32,INT32,
COLORREF,UINT32,UINT32);
HIMAGELIST WINAPI ImageList_LoadImage32W(HINSTANCE32,LPCWSTR,INT32,INT32,
COLORREF,UINT32,UINT32);
#define ImageList_LoadImage WINELIB_NAME_AW(ImageList_LoadImage)
HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,INT32,HIMAGELIST,INT32,INT32,INT32);
BOOL32 WINAPI ImageList_Replace(HIMAGELIST,INT32,HBITMAP32,HBITMAP32);
INT32 WINAPI ImageList_ReplaceIcon(HIMAGELIST,INT32,HICON32);
COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST,COLORREF);
BOOL32 WINAPI ImageList_SetOverlayImage(HIMAGELIST,INT32,INT32);
#define ImageList_AddIcon(himl,hicon) ImageList_ReplaceIcon(himl,-1,hicon)
#define ImageList_LoadBitmap(hi,lpbmp,cx,cGrow,crMask) \
ImageList_LoadImage(hi,lpbmp,cx,cGrow,crMask,IMAGE_BITMAP,0)
#endif /* __WINE_COMMCTRL_H */
......@@ -33,6 +33,9 @@
/* Define if X libraries are not reentrant (compiled without -D_REENTRANT). */
#undef NO_REENTRANT_X11
/* Define if you have machine/soundcard.h instead of sys/soundcard.h. */
#undef HAVE_MACHINE_SOUNDCARD_H
/* Define if you have the clone function. */
#undef HAVE_CLONE
......@@ -45,6 +48,9 @@
/* Define if you have the tcgetattr function. */
#undef HAVE_TCGETATTR
/* Define if you have the timegm function. */
#undef HAVE_TIMEGM
/* Define if you have the usleep function. */
#undef HAVE_USLEEP
......
/* Do not modify this file -- it is automatically generated! */
#ifndef __DEBUGTOOLS_H
#ifndef __WINE_DEBUGTOOLS_H
#include "debugtools.h"
#endif
/* Definitions for channels identifiers */
#define dbch_accel 0
#define dbch_aspi 1
#define dbch_atom 2
......@@ -22,74 +23,82 @@
#define dbch_cursor 15
#define dbch_dc 16
#define dbch_dde 17
#define dbch_ddraw 18
#define dbch_dialog 19
#define dbch_dll 20
#define dbch_dosfs 21
#define dbch_driver 22
#define dbch_dsound 23
#define dbch_edit 24
#define dbch_event 25
#define dbch_exec 26
#define dbch_file 27
#define dbch_fixup 28
#define dbch_font 29
#define dbch_gdi 30
#define dbch_global 31
#define dbch_graphics 32
#define dbch_heap 33
#define dbch_hook 34
#define dbch_icon 35
#define dbch_int 36
#define dbch_key 37
#define dbch_keyboard 38
#define dbch_ldt 39
#define dbch_listbox 40
#define dbch_local 41
#define dbch_mci 42
#define dbch_mcianim 43
#define dbch_mciwave 44
#define dbch_mdi 45
#define dbch_menu 46
#define dbch_message 47
#define dbch_metafile 48
#define dbch_midi 49
#define dbch_mmaux 50
#define dbch_mmio 51
#define dbch_mmsys 52
#define dbch_mmtime 53
#define dbch_module 54
#define dbch_msg 55
#define dbch_nonclient 56
#define dbch_ole 57
#define dbch_palette 58
#define dbch_profile 59
#define dbch_progress 60
#define dbch_prop 61
#define dbch_reg 62
#define dbch_region 63
#define dbch_relay 64
#define dbch_resource 65
#define dbch_scroll 66
#define dbch_selector 67
#define dbch_sem 68
#define dbch_sendmsg 69
#define dbch_shm 70
#define dbch_stddeb 71
#define dbch_stress 72
#define dbch_string 73
#define dbch_task 74
#define dbch_text 75
#define dbch_thunk 76
#define dbch_timer 77
#define dbch_toolhelp 78
#define dbch_tweak 79
#define dbch_updown 80
#define dbch_ver 81
#define dbch_virtual 82
#define dbch_vxd 83
#define dbch_win 84
#define dbch_win16drv 85
#define dbch_win32 86
#define dbch_winsock 87
#define dbch_x11 88
#define dbch_ddeml 18
#define dbch_ddraw 19
#define dbch_dialog 20
#define dbch_dll 21
#define dbch_dosfs 22
#define dbch_driver 23
#define dbch_dsound 24
#define dbch_edit 25
#define dbch_event 26
#define dbch_exec 27
#define dbch_file 28
#define dbch_fixup 29
#define dbch_font 30
#define dbch_gdi 31
#define dbch_global 32
#define dbch_graphics 33
#define dbch_heap 34
#define dbch_hook 35
#define dbch_icon 36
#define dbch_int 37
#define dbch_int21 38
#define dbch_key 39
#define dbch_keyboard 40
#define dbch_ldt 41
#define dbch_listbox 42
#define dbch_local 43
#define dbch_mci 44
#define dbch_mcianim 45
#define dbch_mciwave 46
#define dbch_mdi 47
#define dbch_menu 48
#define dbch_message 49
#define dbch_metafile 50
#define dbch_midi 51
#define dbch_mmaux 52
#define dbch_mmio 53
#define dbch_mmsys 54
#define dbch_mmtime 55
#define dbch_module 56
#define dbch_msg 57
#define dbch_nonclient 58
#define dbch_ole 59
#define dbch_palette 60
#define dbch_profile 61
#define dbch_progress 62
#define dbch_prop 63
#define dbch_reg 64
#define dbch_region 65
#define dbch_relay 66
#define dbch_resource 67
#define dbch_scroll 68
#define dbch_selector 69
#define dbch_sem 70
#define dbch_sendmsg 71
#define dbch_shm 72
#define dbch_static 73
#define dbch_stress 74
#define dbch_string 75
#define dbch_task 76
#define dbch_text 77
#define dbch_thunk 78
#define dbch_timer 79
#define dbch_toolhelp 80
#define dbch_tweak 81
#define dbch_uitools 82
#define dbch_updown 83
#define dbch_ver 84
#define dbch_virtual 85
#define dbch_vxd 86
#define dbch_win 87
#define dbch_win16drv 88
#define dbch_win32 89
#define dbch_winsock 90
#define dbch_x11 91
/* Definitions for classes identifiers */
#define dbcl_fixme 0
#define dbcl_err 1
#define dbcl_warn 2
#define dbcl_trace 3
/* Do not modify this file -- it is automatically generated! */
#ifndef __DEBUGTOOLS_H
#ifndef __WINE_DEBUGTOOLS_H
#include "debugtools.h"
#endif
#define DEBUG_CHANNEL_COUNT 89
#define DEBUG_CHANNEL_COUNT 92
#ifdef DEBUG_RUNTIME
short debug_msg_enabled[][DEBUG_CLASS_COUNT] = {
{1, 1, 0, 0},
......@@ -96,6 +96,9 @@ short debug_msg_enabled[][DEBUG_CLASS_COUNT] = {
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
};
const char* debug_ch_name[] = {
"accel",
......@@ -116,6 +119,7 @@ const char* debug_ch_name[] = {
"cursor",
"dc",
"dde",
"ddeml",
"ddraw",
"dialog",
"dll",
......@@ -135,6 +139,7 @@ const char* debug_ch_name[] = {
"hook",
"icon",
"int",
"int21",
"key",
"keyboard",
"ldt",
......@@ -169,7 +174,7 @@ const char* debug_ch_name[] = {
"sem",
"sendmsg",
"shm",
"stddeb",
"static",
"stress",
"string",
"task",
......@@ -178,6 +183,7 @@ const char* debug_ch_name[] = {
"timer",
"toolhelp",
"tweak",
"uitools",
"updown",
"ver",
"virtual",
......@@ -188,9 +194,12 @@ const char* debug_ch_name[] = {
"winsock",
"x11",
};
const char* debug_cl_name[] =
{ "fixme", "err", "warn", "info" };
const char* debug_cl_name[] = {
"fixme",
"err",
"warn",
"trace",
};
#endif /*DEBUG_RUNTIME*/
......
#ifndef __DEBUGTOOLS_H
#define __DEBUGTOOLS_H
#ifndef __WINE_DEBUGTOOLS_H
#define __WINE_DEBUGTOOLS_H
#include <stdio.h>
......@@ -11,8 +11,6 @@
#define DEBUG_CLASS_COUNT 4
extern short debug_msg_enabled[][DEBUG_CLASS_COUNT];
extern const char* debug_ch_name[];
extern const char* debug_cl_name[];
#define dbg_str(name) debug_str_##name
#define dbg_buf(name) debug_buf_##name
......@@ -29,38 +27,25 @@ extern const char* debug_cl_name[];
#define dbg_ch_index(ch) (dbch_##ch)
#define dbg_cl_index(cl) (dbcl_##cl)
#define debugging_(cl, ch) \
#define DEBUGGING(cl, ch) \
(dbg_ch_index(ch) >=0 && dbg_cl_index(cl) >= 0 && \
debug_msg_enabled[dbg_ch_index(ch)][dbg_cl_index(cl)])
#define dprintf(format, args...) \
#define DPRINTF(format, args...) \
fprintf(stddeb, format, ## args)
#define dprintf_(cl, ch, format, args...) \
if(!debugging_(cl, ch)) ; \
else dprintf("%s:%s:%s:%d:%s: "format, \
debug_cl_name[dbg_cl_index(cl)], \
debug_ch_name[dbg_ch_index(ch)], \
__FILE__, __LINE__, __FUNCTION__ , ## args)
#define debugging_fixme(ch) debugging_(fixme, ch)
#define debugging_err(ch) debugging_(err, ch)
#define debugging_warn(ch) debugging_(warn, ch)
#define debugging_info(ch) debugging_(info, ch)
#define dprintf_fixme(ch, format, args...) dprintf_(fixme, ch, format, ## args)
#define dprintf_err(ch, format, args...) dprintf_(err, ch, format, ## args)
#define dprintf_warn(ch, format, args...) dprintf_(warn, ch, format, ## args)
#define dprintf_info(ch, format, args...) dprintf_(info, ch, format, ## args)
#define dbcl_fixme 0
#define dbcl_err 1
#define dbcl_warn 2
#define dbcl_info 3
#endif
#define DPRINTF_(cl, ch, format, args...) \
if(!DEBUGGING(cl, ch)) ; \
else DPRINTF(# cl ":" # ch ":%s " format, __FUNCTION__ , ## args)
#define TRACE(ch, fmt, args...) DPRINTF_(trace, ch, fmt, ## args)
#define WARN(ch, fmt, args...) DPRINTF_(warn, ch, fmt, ## args)
#define FIXME(ch, fmt, args...) DPRINTF_(fixme, ch, fmt, ## args)
#define ERR(ch, fmt, args...) DPRINTF_(err, ch, fmt, ## args)
#define FIXME_ON(ch) DEBUGGING(fixme, ch)
#define ERR_ON(ch) DEBUGGING(err, ch)
#define WARN_ON(ch) DEBUGGING(warn, ch)
#define TRACE_ON(ch) DEBUGGING(trace, ch)
#endif /* __WINE_DEBUGTOOLS_H */
/*
* ImageList definitions
*
* Copyright 1998 Eric Kohl
*/
#ifndef __WINE_IMAGELIST_H
#define __WINE_IMAGELIST_H
struct _IMAGELIST
{
HANDLE32 hHeap;
HBITMAP32 hbmImage;
HBITMAP32 hbmMask;
COLORREF clrBk;
INT32 cGrow;
INT32 cMaxImage;
INT32 cCurImage;
INT32 cx;
INT32 cy;
UINT32 flags;
INT32 nOvlIdx[4];
};
typedef struct _IMAGELIST *HIMAGELIST;
#endif /* __WINE_IMAGELIST_H */
......@@ -56,6 +56,42 @@ typedef struct
DWORD filesize; /* 1c file size */
} DOS_DIRENTRY_LAYOUT;
typedef struct
{
WORD CX_Int21_5e01; /* contents of CX from INT 21/AX=5E01h */
WORD LRU_count_FCB_cache;
WORD LRU_count_FCB_open;
DWORD OEM_func_handler WINE_PACKED; /* OEM function of INT 21/AH=F8h */
WORD INT21_offset;/* offset in DOS CS of code to return from INT 21 call */
WORD sharing_retry_count;
WORD sharing_retry_delay;
DWORD ptr_disk_buf; /* ptr to current disk buf */
WORD offs_unread_CON; /* pointer in DOS data segment of unread CON input */
WORD seg_first_MCB;
DWORD ptr_first_DPB;
DWORD ptr_first_SysFileTable;
DWORD ptr_clock_dev_hdr;
DWORD ptr_CON_dev_hdr;
WORD max_byte_per_sec; /* maximum bytes per sector of any block device */
DWORD ptr_disk_buf_info WINE_PACKED;
DWORD ptr_array_CDS WINE_PACKED; /* current directory structure */
DWORD ptr_sys_FCB WINE_PACKED;
WORD nr_protect_FCB;
BYTE nr_block_dev;
BYTE nr_avail_drive_letters;
BYTE NUL_dev_header[18];
BYTE nr_drives_JOINed;
WORD ptr_spec_prg_names WINE_PACKED;
DWORD ptr_SETVER_prg_list WINE_PACKED;
WORD DOS_HIGH_A20_func_offs WINE_PACKED;
WORD PSP_last_exec WINE_PACKED; /* if DOS in HMA: PSP of program executed last; if DOS low: 0000h */
WORD BUFFERS_val WINE_PACKED;
WORD BUFFERS_nr_lookahead WINE_PACKED;
BYTE boot_drive WINE_PACKED;
BYTE flag_DWORD_moves WINE_PACKED; /* 01h for 386+, 00h otherwise */
WORD size_extended_mem WINE_PACKED; /* size of extended mem in KB */
} DOS_LISTOFLISTS;
#define MAX_DOS_DRIVES 26
extern struct DosDeviceStruct COM[MAX_PORTS];
......
......@@ -13,25 +13,27 @@
*/
typedef struct
{
WORD e_magic; /* MZ Header signature */
WORD e_cblp; /* Bytes on last page of file */
WORD e_cp; /* Pages in file */
WORD e_crlc; /* Relocations */
WORD e_cparhdr; /* Size of header in paragraphs */
WORD e_minalloc; /* Minimum extra paragraphs needed */
WORD e_maxalloc; /* Maximum extra paragraphs needed */
WORD e_ss; /* Initial (relative) SS value */
WORD e_sp; /* Initial SP value */
WORD e_csum; /* Checksum */
WORD e_ip; /* Initial IP value */
WORD e_cs; /* Initial (relative) CS value */
WORD e_lfarlc; /* File address of relocation table */
WORD e_ovno; /* Overlay number */
WORD e_res[4]; /* Reserved words */
WORD e_oemid; /* OEM identifier (for e_oeminfo) */
WORD e_oeminfo; /* OEM information; e_oemid specific */
WORD e_res2[10]; /* Reserved words */
WORD e_lfanew; /* Offset to extended header */
WORD e_magic; /* 00: MZ Header signature */
WORD e_cblp; /* 02: Bytes on last page of file */
WORD e_cp; /* 04: Pages in file */
WORD e_crlc; /* 06: Relocations */
WORD e_cparhdr; /* 08: Size of header in paragraphs */
WORD e_minalloc; /* 0a: Minimum extra paragraphs needed */
WORD e_maxalloc; /* 0c: Maximum extra paragraphs needed */
WORD e_ss; /* 0e: Initial (relative) SS value */
WORD e_sp; /* 10: Initial SP value */
WORD e_csum; /* 12: Checksum */
WORD e_ip; /* 14: Initial IP value */
WORD e_cs; /* 16: Initial (relative) CS value */
WORD e_lfarlc; /* 18: File address of relocation table */
WORD e_ovno; /* 1a: Overlay number */
WORD e_res[4]; /* 1c: Reserved words */
WORD e_oemid; /* 24: OEM identifier (for e_oeminfo) */
WORD e_oeminfo; /* 26: OEM information; e_oemid specific */
WORD e_res2[10]; /* 28: Reserved words */
WORD e_lfanew; /* 3c: Offset to extended header */
WORD e_xxx; /* 3e: Wine internal pad (some programs expect
* this to be 0) */
} IMAGE_DOS_HEADER,*LPIMAGE_DOS_HEADER;
#define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */
......
......@@ -119,7 +119,7 @@ typedef enum {
oleupdate_always,
oleupdate_onsave,
oleupdate_oncall,
oleupdate_onclose,
oleupdate_onclose
} OLEOPT_UPDATE;
typedef LONG LHSERVER;
......
......@@ -7,7 +7,10 @@
typedef LONG HRESULT;
/* to be implemented */
typedef LPVOID LPMESSAGEFILTER;
typedef LPVOID LPDROPTARGET;
typedef LPVOID LPMONIKER;
#define S_OK 0
#define S_FALSE 1
......
......@@ -96,7 +96,7 @@ typedef enum
{
SHGDN_NORMAL = 0, /* default (display purpose) */
SHGDN_INFOLDER = 1, /* displayed under a folder (relative)*/
SHGDN_FORPARSING = 0x8000, /* for ParseDisplayName or path */
SHGDN_FORPARSING = 0x8000 /* for ParseDisplayName or path */
} SHGNO;
/* IShellFolder::EnumObjects */
......@@ -104,7 +104,7 @@ typedef enum tagSHCONTF
{
SHCONTF_FOLDERS = 32, /* for shell browser */
SHCONTF_NONFOLDERS = 64, /* for default view */
SHCONTF_INCLUDEHIDDEN = 128, /* for hidden/system objects */
SHCONTF_INCLUDEHIDDEN = 128 /* for hidden/system objects */
} SHCONTF;
/* from oleidl.h */
......@@ -183,13 +183,13 @@ struct tagSHELLFOLDER {
typedef enum {
SLR_NO_UI = 0x0001,
SLR_ANY_MATCH = 0x0002,
SLR_UPDATE = 0x0004,
SLR_UPDATE = 0x0004
} SLR_FLAGS;
/* IShellLink::GetPath fFlags */
typedef enum {
SLGP_SHORTPATH = 0x0001,
SLGP_UNCPRIORITY = 0x0002,
SLGP_UNCPRIORITY = 0x0002
} SLGP_FLAGS;
......
......@@ -214,6 +214,17 @@ typedef struct _CONTEXT /* Note 1 */
#define FL_sig(context) (*(WORD*)&EFL_sig(context))
#ifdef FS_sig
#define HANDLER_INIT() SET_FS(FS_sig(HANDLER_CONTEXT))
#else FS_sig
#define HANDLER_INIT() /* nothing */
#endif
#else /* __i386__ */
#define HANDLER_DEF(name) void name (int signal)
#define HANDLER_INIT() /* nothing */
#endif /* __i386__ */
#endif /* __WINE_SIG_CONTEXT_H */
......@@ -23,6 +23,12 @@ extern WORD USER_HeapSel;
#define USER_HEAP_SEG_ADDR(handle) \
((handle) ? PTR_SEG_OFF_TO_SEGPTR(USER_HeapSel, (handle)) : (SEGPTR)0)
#define USUD_LOCALALLOC 0x0001
#define USUD_LOCALFREE 0x0002
#define USUD_LOCALCOMPACT 0x0003
#define USUD_LOCALHEAP 0x0004
#define USUD_FIRSTCLASS 0x0005
void USER_SignalProc(HANDLE16, UINT16, UINT16, HINSTANCE16, HQUEUE16);
void USER_ExitWindows(void);
HGLOBAL16 USER_CallDefaultRsrcHandler( HGLOBAL16 hMemObj, HMODULE16 hModule,
......
#define WINE_RELEASE_INFO "Wine release 980301"
#define WINE_RELEASE_INFO "Wine release 980315"
......@@ -2101,8 +2101,8 @@ typedef struct
/* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
typedef struct
{
INT32 dwLowDateTime;
INT32 dwHighDateTime;
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *LPFILETIME;
/* Find* structures */
......@@ -4429,6 +4429,147 @@ typedef INT32 (CALLBACK *MFENUMPROC32)(HDC32,HANDLETABLE32*,METARECORD*,
INT32,LPARAM);
DECL_WINELIB_TYPE(MFENUMPROC);
/* enhanced metafile structures and functions */
/* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
ie. the header is just the first record in the metafile */
typedef struct {
DWORD iType;
DWORD nSize;
RECT32 rclBounds;
RECT32 rclFrame;
DWORD dSignature;
DWORD nVersion;
DWORD nBytes;
DWORD nRecords;
WORD nHandles;
WORD sReserved;
DWORD nDescription;
DWORD offDescription;
DWORD nPalEntries;
SIZE32 szlDevice;
SIZE32 szlMillimeters;
DWORD cbPixelFormat;
DWORD offPixelFormat;
DWORD bOpenGL;
} ENHMETAHEADER, *LPENHMETAHEADER;
typedef struct {
DWORD iType;
DWORD nSize;
DWORD dParm[1];
} ENHMETARECORD, *LPENHMETARECORD;
typedef INT32 (CALLBACK *ENHMFENUMPROC32)(HDC32, LPHANDLETABLE32,
LPENHMETARECORD, INT32, LPVOID);
#define EMR_HEADER 1
#define EMR_POLYBEZIER 2
#define EMR_POLYGON 3
#define EMR_POLYLINE 4
#define EMR_POLYBEZIERTO 5
#define EMR_POLYLINETO 6
#define EMR_POLYPOLYLINE 7
#define EMR_POLYPOLYGON 8
#define EMR_SETWINDOWEXTEX 9
#define EMR_SETWINDOWORGEX 10
#define EMR_SETVIEWPORTEXTEX 11
#define EMR_SETVIEWPORTORGEX 12
#define EMR_SETBRUSHORGEX 13
#define EMR_EOF 14
#define EMR_SETPIXELV 15
#define EMR_SETMAPPERFLAGS 16
#define EMR_SETMAPMODE 17
#define EMR_SETBKMODE 18
#define EMR_SETPOLYFILLMODE 19
#define EMR_SETROP2 20
#define EMR_SETSTRETCHBLTMODE 21
#define EMR_SETTEXTALIGN 22
#define EMR_SETCOLORADJUSTMENT 23
#define EMR_SETTEXTCOLOR 24
#define EMR_SETBKCOLOR 25
#define EMR_OFFSETCLIPRGN 26
#define EMR_MOVETOEX 27
#define EMR_SETMETARGN 28
#define EMR_EXCLUDECLIPRECT 29
#define EMR_INTERSECTCLIPRECT 30
#define EMR_SCALEVIEWPORTEXTEX 31
#define EMR_SCALEWINDOWEXTEX 32
#define EMR_SAVEDC 33
#define EMR_RESTOREDC 34
#define EMR_SETWORLDTRANSFORM 35
#define EMR_MODIFYWORLDTRANSFORM 36
#define EMR_SELECTOBJECT 37
#define EMR_CREATEPEN 38
#define EMR_CREATEBRUSHINDIRECT 39
#define EMR_DELETEOBJECT 40
#define EMR_ANGLEARC 41
#define EMR_ELLIPSE 42
#define EMR_RECTANGLE 43
#define EMR_ROUNDRECT 44
#define EMR_ARC 45
#define EMR_CHORD 46
#define EMR_PIE 47
#define EMR_SELECTPALETTE 48
#define EMR_CREATEPALETTE 49
#define EMR_SETPALETTEENTRIES 50
#define EMR_RESIZEPALETTE 51
#define EMR_REALIZEPALETTE 52
#define EMR_EXTFLOODFILL 53
#define EMR_LINETO 54
#define EMR_ARCTO 55
#define EMR_POLYDRAW 56
#define EMR_SETARCDIRECTION 57
#define EMR_SETMITERLIMIT 58
#define EMR_BEGINPATH 59
#define EMR_ENDPATH 60
#define EMR_CLOSEFIGURE 61
#define EMR_FILLPATH 62
#define EMR_STROKEANDFILLPATH 63
#define EMR_STROKEPATH 64
#define EMR_FLATTENPATH 65
#define EMR_WIDENPATH 66
#define EMR_SELECTCLIPPATH 67
#define EMR_ABORTPATH 68
#define EMR_GDICOMMENT 70
#define EMR_FILLRGN 71
#define EMR_FRAMERGN 72
#define EMR_INVERTRGN 73
#define EMR_PAINTRGN 74
#define EMR_EXTSELECTCLIPRGN 75
#define EMR_BITBLT 76
#define EMR_STRETCHBLT 77
#define EMR_MASKBLT 78
#define EMR_PLGBLT 79
#define EMR_SETDIBITSTODEVICE 80
#define EMR_STRETCHDIBITS 81
#define EMR_EXTCREATEFONTINDIRECTW 82
#define EMR_EXTTEXTOUTA 83
#define EMR_EXTTEXTOUTW 84
#define EMR_POLYBEZIER16 85
#define EMR_POLYGON16 86
#define EMR_POLYLINE16 87
#define EMR_POLYBEZIERTO16 88
#define EMR_POLYLINETO16 89
#define EMR_POLYPOLYLINE16 90
#define EMR_POLYPOLYGON16 91
#define EMR_POLYDRAW16 92
#define EMR_CREATEMONOBRUSH 93
#define EMR_CREATEDIBPATTERNBRUSHPT 94
#define EMR_EXTCREATEPEN 95
#define EMR_POLYTEXTOUTA 96
#define EMR_POLYTEXTOUTW 97
#define EMR_SETICMMODE 98
#define EMR_CREATECOLORSPACE 99
#define EMR_SETCOLORSPACE 100
#define EMR_DELETECOLORSPACE 101
#define EMR_GLSRECORD 102
#define EMR_GLSBOUNDEDRECORD 103
#define EMR_PIXELFORMAT 104
#define ENHMETA_SIGNATURE 1179469088
#ifndef NOLOGERROR
/* LogParamError and LogError values */
......@@ -4935,6 +5076,7 @@ typedef struct _PRINTER_DEFAULTS32W {
} PRINTER_DEFAULTS32W, *LPPRINTER_DEFAULTS32W;
DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS);
DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS);
typedef struct _SYSTEM_POWER_STATUS
{
......@@ -5817,6 +5959,9 @@ BOOL32 WINAPI GetTextExtentExPoint32A(HDC32,LPCSTR,INT32,INT32,
BOOL32 WINAPI GetTextExtentExPoint32W(HDC32,LPCWSTR,INT32,INT32,
LPINT32,LPINT32,LPSIZE32);
#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
INT32 WINAPI GetTimeFormat32A(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT32);
INT32 WINAPI GetTimeFormat32W(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT32);
#define GetTimeFormat WINELIB_NAME_AW(GetTimeFormat)
LCID WINAPI GetThreadLocale();
INT32 WINAPI GetThreadPriority(HANDLE32);
BOOL32 WINAPI GetThreadSelectorEntry(HANDLE32,DWORD,LPLDT_ENTRY);
......@@ -5957,8 +6102,8 @@ BOOL32 WINAPI VirtualFree(LPVOID,DWORD,DWORD);
BOOL32 WINAPI VirtualLock(LPVOID,DWORD);
BOOL32 WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD);
BOOL32 WINAPI VirtualProtectEx(HANDLE32,LPVOID,DWORD,DWORD,LPDWORD);
BOOL32 WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
BOOL32 WINAPI VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
DWORD WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
DWORD WINAPI VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
BOOL32 WINAPI VirtualUnlock(LPVOID,DWORD);
DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE32*,BOOL32,DWORD);
DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE32*,BOOL32,DWORD,BOOL32);
......
......@@ -127,8 +127,61 @@
#define MAKELCID(l, s) (MAKELONG(l, s))
#define MAKELANGID(p, s) ((((WORD)(s))<<10) | (WORD)(p))
/* Language IDs (were in winnt.h, for some reason) */
/* 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
/* "default"ish values */
#define SORT_DEFAULT 0
#define SUBLANG_DEFAULT 1
#define SUBLANG_SYS_DEFAULT 1 /* FIXME: I don't know if this is right */
#define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT))
#define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT))
......@@ -146,4 +199,12 @@
#define LCMAP_HALFWIDTH 0x00400000 /* map double byte to single byte */
#define LCMAP_FULLWIDTH 0x00800000 /* map single byte to double byte */
/* Date Flags for GetDateFormat. */
#define DATE_SHORTDATE 0x00000001 /* use short date picture */
#define DATE_LONGDATE 0x00000002 /* use long date picture */
#define DATE_USE_ALT_CALENDAR 0x00000004 /* use alternate calendar */
/* alt. calendar support is broken anyway */
#endif /* __WINE_WINNLS_H */
......@@ -272,51 +272,7 @@ DWORD WINAPI UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers );
LPTOP_LEVEL_EXCEPTION_FILTER
WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter );
/* 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
/* I moved the Language IDs to winnls.h (David Lee Lambert) */
/* Access rights */
......
......@@ -155,6 +155,7 @@ DECLARE_HANDLE(HDC);
DECLARE_HANDLE(HDROP);
DECLARE_HANDLE(HDRVR);
DECLARE_HANDLE(HDWP);
DECLARE_HANDLE(HENHMETAFILE);
DECLARE_HANDLE(HFILE);
DECLARE_HANDLE(HFONT);
DECLARE_HANDLE(HGDIOBJ);
......@@ -262,6 +263,7 @@ DECL_WINELIB_TYPE(HDC);
DECL_WINELIB_TYPE(HDROP);
DECL_WINELIB_TYPE(HDRVR);
DECL_WINELIB_TYPE(HDWP);
DECL_WINELIB_TYPE(HENHMETAFILE);
DECL_WINELIB_TYPE(HFILE);
DECL_WINELIB_TYPE(HFONT);
DECL_WINELIB_TYPE(HGDIOBJ);
......
......@@ -129,7 +129,7 @@ ATOM DDE_GlobalAddAtom( SEGPTR name )
return (atom<MIN_STR_ATOM) ? atom : 0;
}
dprintf_info(atom,"GlobalAddAtom(\"%s\")\n",str);
TRACE(atom,"(\"%s\")\n",str);
DDE_IPC_init(); /* will initialize only if needed */
......@@ -174,7 +174,7 @@ ATOM DDE_GlobalDeleteAtom( ATOM atom )
AtomData_ptr atom_ptr;
ATOM retval=(ATOM) 0;
dprintf_info(atom,"GlobalDeleteAtom(\"%d\")\n",(int)atom);
TRACE(atom,"(\"%d\")\n",(int)atom);
atom_idx=(int)atom - MIN_STR_ATOM;
if (atom_idx < 0 )
......@@ -211,7 +211,7 @@ ATOM DDE_GlobalFindAtom( SEGPTR name )
int atom_ofs;
char *str;
dprintf_info(atom,"GlobalFindAtom(%08lx)\n", name );
TRACE(atom,"(%08lx)\n", name );
/* First check for integer atom */
......@@ -223,7 +223,7 @@ ATOM DDE_GlobalFindAtom( SEGPTR name )
ATOM atom= (ATOM) atoi(&str[1]);
return (atom<MIN_STR_ATOM) ? atom : 0;
}
dprintf_info(atom,"GlobalFindAtom(\"%s\")\n",str);
TRACE(atom,"(\"%s\")\n",str);
DDE_IPC_init(); /* will initialize only if needed */
......
......@@ -24,9 +24,9 @@ int main()
int i,j,atom_n;
int atom_len[TOGETHER];
debugging_info(shm)=1;
debugging_info(atom)=0;
debugging_info(sem)=0;
TRACE_ON(shm)=1;
TRACE_ON(atom)=0;
TRACE_ON(sem)=0;
for (i=0 ; i<=10000/TOGETHER ; i++) {
for (atom_n=0 ; atom_n<TOGETHER ; atom_n++) {
......
......@@ -58,18 +58,18 @@ static struct handle_info *locate_handle(HGLOBAL16 h, struct local_shm_map *map)
{
struct shm_block *block;
dprintf_info(global,"shm:locate_handle(0x%04x)\n", h);
TRACE(global,"shm: (0x%04x)\n", h);
if (SampleBit( &free_handles, DDE_MEM_IDX(h)) == 0) {
dprintf_info(global, "shm:locate_handle: return NULL\n");
TRACE(global, "shm: return NULL\n");
return NULL; /* free!!! */
}
block= shm_locate_block(DDE_MEM_INFO(h).shmid, map);
if (block == NULL) {
/* nothing found */
dprintf_info(global, "shm:locate_handle: return NULL\n");
TRACE(global, "shm: return NULL\n");
return NULL;
}
......@@ -87,7 +87,7 @@ static HGLOBAL16 dde_alloc_handle()
if (bit_nr != -1)
return DDE_MEM_HANDLE(bit_nr);
dprintf_info(global,"dde_alloc_handle: no free DDE handle found\n");
TRACE(global,"dde_alloc_handle: no free DDE handle found\n");
return 0;
}
/**********************************************************************
......@@ -102,7 +102,7 @@ DDE_malloc(unsigned int flags, unsigned long size, SHMDATA *shmdata)
struct local_shm_map *curr;
HGLOBAL16 handle;
dprintf_info(global,"DDE_malloc flags %4X, size %ld\n", flags, size);
TRACE(global,"DDE_malloc flags %4X, size %ld\n", flags, size);
DDE_IPC_init(); /* make sure main shm block allocated */
shm_write_wait(main_block->proc[curr_proc_idx].sem);
......@@ -151,14 +151,13 @@ DDE_malloc(unsigned int flags, unsigned long size, SHMDATA *shmdata)
handle= dde_alloc_handle();
if (handle) {
dprintf_info(global,
"DDE_malloc returning handle=0x%4x, ptr=0x%08lx\n",
TRACE(global, "returning handle=0x%4x, ptr=0x%08lx\n",
(int)handle, (long) HINFO2DATAPTR(h_info));
DDE_MEM_INFO(handle).rel= PTR2REL(block, h_info);
DDE_MEM_INFO(handle).shmid= shmid;
}
else
dprintf_warn(global, "DDE_malloc failed\n");
WARN(global, "failed\n");
shm_write_signal(main_block->proc[curr_proc_idx].sem);
......@@ -172,7 +171,7 @@ HGLOBAL16 DDE_GlobalFree(HGLOBAL16 h)
int handle_index= h & 0x7fff;
struct local_shm_map map;
dprintf_info(global,"DDE_GlobalFree(0x%04x)\n",h);
TRACE(global,"(0x%04x)\n",h);
if (h==0)
return 0;
......@@ -238,18 +237,18 @@ void *DDE_AttachHandle(HGLOBAL16 handle, SEGPTR *segptr)
if (segptr != NULL)
*segptr=0;
dprintf_info(global,"DDE_AttachHandle(%04x)\n",handle);
TRACE(global,"(%04x)\n",handle);
h_info=locate_handle(handle, NULL);
if (h_info == NULL)
return NULL;
if ( !(h_info->flags & GMEM_DDESHARE) ) {
fprintf(stderr,"DDE_AttachHandle: Corrupted memory handle info\n");
ERR(global,"Corrupted memory handle info\n");
return NULL;
}
dprintf_info(global,"DDE_AttachHandle: h_info=%06lx\n",(long)h_info);
TRACE(global,"h_info=%06lx\n",(long)h_info);
shmdata.handle= handle;
shmdata.shmid= DDE_MEM_INFO(handle).shmid;
......@@ -263,10 +262,10 @@ void *DDE_AttachHandle(HGLOBAL16 handle, SEGPTR *segptr)
if (segptr != NULL)
*segptr= (SEGPTR)MAKELONG( 0, shmdata.sel);
if (debugging_info(dde))
if (TRACE_ON(dde))
debug_last_handle_size= h_info->size;
dprintf_info(global,"DDE_AttachHandle returns ptr=0x%08lx\n", (long)ptr);
TRACE(global,"DDE_AttachHandle returns ptr=0x%08lx\n", (long)ptr);
return (LPSTR)ptr;
......
......@@ -123,7 +123,7 @@ void dde_proc_add(dde_proc procs)
{
dde_proc proc;
int proc_idx;
dprintf_info(dde,"dde_proc_add(..)\n");
TRACE(dde,"(..)\n");
shm_write_wait(main_block->sem);
/* find free proc_idx and allocate it */
......@@ -164,7 +164,7 @@ static BOOL32 get_ack()
size= msgrcv( main_block->proc[curr_proc_idx].msg , &ack_buff.dat,
1, DDE_ACK, IPC_NOWAIT);
if (size>=0) {
dprintf_info(msg,"get_ack: received DDE_ACK message\n");
TRACE(msg,"get_ack: received DDE_ACK message\n");
return TRUE;
}
if (DDE_GetRemoteMessage()) {
......@@ -197,7 +197,7 @@ static BOOL32 DDE_DoOneMessage (int proc_idx, int size, struct msgbuf *msgbuf)
return FALSE;
}
if (debugging_info(dde) || debugging_warn_dde) {
if (TRACE_ON(dde) || WARN_ON_dde) {
MSG16 *msg=(MSG16*) &msgbuf->mtext;
char *title;
if (msgbuf->mtype==DDE_SEND)
......@@ -209,14 +209,12 @@ static BOOL32 DDE_DoOneMessage (int proc_idx, int size, struct msgbuf *msgbuf)
if (title)
print_dde_message(title, msg);
else
dprintf_warn(dde, "Unknown message type=0x%lx\n", msgbuf->mtype);
WARN(dde, "Unknown message type=0x%lx\n", msgbuf->mtype);
}
dprintf_info(msg,
"DDE_DoOneMessage: to proc_idx=%d (pid=%d), queue=%u\n",
proc_idx, proc->pid, (unsigned)proc->msg);
TRACE(msg, "to proc_idx=%d (pid=%d), queue=%u\n",
proc_idx, proc->pid, (unsigned)proc->msg);
if ( proc->msg != -1) {
dprintf_info(msg, "DDE_DoOneMessage: doing...(type=%s)\n",
msg_type[msgbuf->mtype]);
TRACE(msg, "doing...(type=%s)\n", msg_type[msgbuf->mtype]);
size=msgsnd (proc->msg, msgbuf, size, 0);
if (size<0) {
......@@ -225,9 +223,8 @@ static BOOL32 DDE_DoOneMessage (int proc_idx, int size, struct msgbuf *msgbuf)
}
kill(proc->pid,SIGUSR2); /* tell the process there is a message */
dprintf_info(msg,"DDE_DoOneMessage: "
"Trying to get acknowledgment from msg queue=%d\n",
proc->msg);
TRACE(msg, "Trying to get acknowledgment from msg queue=%d\n",
proc->msg);
Yield16(); /* force task switch, and */
/* acknowledgment sending */
if (get_ack()) {
......@@ -239,8 +236,7 @@ static BOOL32 DDE_DoOneMessage (int proc_idx, int size, struct msgbuf *msgbuf)
}
}
else {
dprintf_warn(msg, "DDE_DoOneMessage: message not sent, "
"target has no message queue\n");
WARN(msg, "message not sent, target has no message queue\n");
return FALSE;
}
}
......@@ -312,13 +308,12 @@ static BOOL32 DDE_DoMessage( MSG16 *msg, int type )
if ( ! DDE_IsRemoteWindow(msg->hwnd) && msg->hwnd!= (HWND16)-1)
return FALSE;
dprintf_info(msg, "%s: DDE_DoMessage(hwnd=0x%x,msg=0x%x,..)\n",
msg_type[type], (int)msg->hwnd,(int)msg->message);
TRACE(msg, "(hwnd=0x%x,msg=0x%x,..) - %s\n",
(int)msg->hwnd,(int)msg->message,msg_type[type]);
dprintf_info(msg,
"DDE_DoMessage(hwnd=0x%x,msg=0x%x,..) // HWND_BROADCAST !\n",
(int)msg->hwnd,(int)msg->message);
TRACE(msg, "(hwnd=0x%x,msg=0x%x,..) -- HWND_BROADCAST !\n",
(int)msg->hwnd,(int)msg->message);
remote_message=(void*)&msg_dat.dat.mtext;
memcpy(remote_message, msg, sizeof(*msg));
......@@ -361,10 +356,8 @@ void dde_proc_send_ack(HWND16 wnd, BOOL32 val) {
proc=DDE_WIN2PROC(wnd);
msg=main_block->proc[proc].msg;
dprintf_info(msg,"DDE_GetRemoteMessage: sending ACK "
"to wnd=%4x, proc=%d,msg=%d, pid=%d\n",wnd,proc,msg,
main_block->proc[proc].pid
);
TRACE(msg,"sending ACK to wnd=%4x, proc=%d,msg=%d, pid=%d\n",
wnd,proc,msg,main_block->proc[proc].pid);
msg_ack.mtext[0]=val;
msgsnd (msg, &msg_ack, 1, 0);
......@@ -390,7 +383,7 @@ int DDE_GetRemoteMessage()
if (nesting>10) {
fflush(stdout);
fprintf(stderr,"DDE_GetRemoteMessage: suspecting infinite recursion, exiting");
ERR(msg, "suspecting infinite recursion, exiting");
return 0;
}
......@@ -402,19 +395,17 @@ int DDE_GetRemoteMessage()
if (size==DDE_MSG_SIZE) { /* is this a correct message (if any) ?*/
was_sent=TRUE;
dprintf_info(msg,
"DDE:receive sent message. msg=%04x wPar=%04x"
" lPar=%08lx\n",
remote_message->message, remote_message->wParam,
remote_message->lParam);
TRACE(msg, "DDE:receive sent message. msg=%04x wPar=%04x"
" lPar=%08lx\n",
remote_message->message, remote_message->wParam,
remote_message->lParam);
} else {
size= msgrcv( main_block->proc[curr_proc_idx].msg , &msg_dat.dat,
DDE_MSG_SIZE, DDE_POST, IPC_NOWAIT);
if (size==DDE_MSG_SIZE) { /* is this a correct message (if any) ?*/
was_sent=FALSE;
dprintf_info(msg,
"DDE:receive posted message. "
TRACE(msg, "DDE:receive posted message. "
"msg=%04x wPar=%04x lPar=%08lx\n",
remote_message->message, remote_message->wParam,
remote_message->lParam);
......@@ -429,7 +420,7 @@ int DDE_GetRemoteMessage()
nesting++;
if (debugging_info(dde)) {
if (TRACE_ON(dde)) {
char *title;
if (was_sent)
title="receive sent dde:";
......@@ -442,10 +433,8 @@ int DDE_GetRemoteMessage()
HWND16 dde_window= DDE_WIN_INFO(remote_message->hwnd).wnd;
/* we should know exactly where to send the message (locally)*/
if (was_sent) {
dprintf_info(dde,
"SendMessage(wnd=0x%04x, msg=0x%04x, wPar=0x%04x,"
"lPar=0x%08x\n",
dde_window, remote_message->message,
TRACE(dde, "SendMessage(wnd=0x%04x, msg=0x%04x, wPar=0x%04x,"
"lPar=0x%08x\n", dde_window, remote_message->message,
remote_message->wParam, (int)remote_message->lParam);
/* execute the recieved message */
......@@ -524,7 +513,7 @@ void DDE_TestDDE(HWND16 hwnd)
in_test--;
return;
}
dprintf_info(msg,"DDE_TestDDE(0x%04x)\n", hwnd);
TRACE(msg,"(0x%04x)\n", hwnd);
if (hwnd==0)
hwnd=-1;
/* just send a message to see how things are going */
......@@ -631,7 +620,7 @@ static void print_dde_message(char *desc, MSG16 *msg)
dsprintf(dde," atom=0x%04x",hWord);
break;
}
dprintf_info(dde,"%s\n", dbg_str(dde));
TRACE(dde,"%s\n", dbg_str(dde));
}
void dde_proc_done(dde_proc proc)
......
......@@ -37,7 +37,7 @@ struct local_shm_map *shm_map=NULL;
*/
void shm_setup_block(struct shm_block *block, int first, int size)
{
dprintf_info(shm,"Setting up shm block at 0x%08x\n",(int )block);
TRACE(shm,"Setting up shm block at 0x%08x\n",(int )block);
/* setup block internal data structure */
if (first <= 0) {
first=sizeof(*block);
......@@ -53,8 +53,7 @@ void shm_setup_block(struct shm_block *block, int first, int size)
/* block->size is initialized in shm_FragmentInit */
shm_FragmentInit(block, first, size); /* first item in the free list */
dprintf_info(shm,
"block was set up at 0x%08x, size=0x%04xKB, 1st usable=%02x\n",
TRACE(shm, "block was set up at 0x%08x, size=0x%04xKB, 1st usable=%02x\n",
(int )block,size/1024,first);
}
......
......@@ -79,7 +79,7 @@ int proc_exist(pid_t pid)
/* setup a new main shm block (only construct a shm block object). */
static void shm_setup_main_block()
{
dprintf_info(shm,"creating data structure\n");
TRACE(shm,"creating data structure\n");
main_block->build_lock=1;
strcpy(main_block->magic, shm_header);
......@@ -133,29 +133,29 @@ static int attach_MainBlock(int shm_id)
/* Make sure we don't work on somebody else's block */
if (shm_info.shm_perm.cuid != getuid()) { /* creator is not me */
dprintf_warn(shm, "Creator is not me!\n");
WARN(shm, "Creator is not me!\n");
return 0;
}
dprintf_info(shm,"shared memory exist, attaching anywhere\n");
TRACE(shm,"shared memory exist, attaching anywhere\n");
main_block=(struct shm_main_block *)shmat(shm_id, 0, 0);
if ( (int)main_block==-1) {
dprintf_warn(shm, "Attach failed\n");
WARN(shm, "Attach failed\n");
return 0;
}
if (strcmp(main_block->magic, shm_header) != 0) {
dprintf_info(shm,"Detaching, wrong magic\n");
TRACE(shm,"Detaching, wrong magic\n");
shmdt((void *)main_block);
return 0;
}
if (debugging_info(shm))
if (TRACE_ON(shm))
print_shm_info(shm_id);
/* Is it an old unused block ? */
if (shm_info.shm_nattch == 0) {
dprintf_info(shm,"No attaches, deleting old data\n");
TRACE(shm,"No attaches, deleting old data\n");
shm_delete_all(shm_id);
return 0;
}
......@@ -180,10 +180,10 @@ static int shm_locate_MainBlock(key_t shm_key)
int shm_id; /* Descriptor to this shared memory */
int i;
dprintf_info(shm,"shm_locate_MainBlock: trying to attach, key=0x%x\n",
TRACE(shm,"trying to attach, key=0x%x\n",
shm_key);
for (i=0 ; i < SHM_KEY_RANGE ; i++) {
dprintf_info(shm,"iteration=%d\n", i);
TRACE(shm,"iteration=%d\n", i);
shm_id= shmget ( shm_key+i, SHM_MINBLOCK ,0700);
......@@ -202,7 +202,7 @@ static int shm_locate_MainBlock(key_t shm_key)
case ENOMEM: /* no free memory */
case ENOENT: /* this key does not exist */
default :
dprintf_warn(shm,"shmget failed, errno=%d, %s\n",
WARN(shm,"shmget failed, errno=%d, %s\n",
errno, strerror(errno) );
return 0; /* Failed */
}
......@@ -222,7 +222,7 @@ static int shm_create_MainBlock(key_t MainShmKey)
int flags= 0700 | IPC_CREAT | IPC_EXCL;
int i;
dprintf_info(shm,"creating shared memory\n");
TRACE(shm,"creating shared memory\n");
/* try to allocate shared memory with key="Wine", size=SHM_MINBLOCK, */
/* complete user permission */
......@@ -232,12 +232,12 @@ static int shm_create_MainBlock(key_t MainShmKey)
break;
}
if (shm_id == -1) {
dprintf_warn(shm, "failed to create shared memory\n");
WARN(shm, "failed to create shared memory\n");
return 0;
}
dprintf_info(shm,"shared memory created, attaching\n");
TRACE(shm,"shared memory created, attaching\n");
main_block=(struct shm_main_block*) shmat(shm_id, 0,0);
if (debugging_info(shm))
if (TRACE_ON(shm))
print_shm_info(shm_id);
main_shm_id= shm_id;
shm_setup_main_block();
......
......@@ -28,7 +28,7 @@ void shm_read_wait(shm_sem semid)
struct sembuf sop[2];
int ret;
dprintf_info(sem,"shm_read_wait(%d)\n",semid);
TRACE(sem,"(%d)\n",semid);
sop[0].sem_num=SEM_READ;
sop[0].sem_op=1; /* add this read instance */
sop[0].sem_flg=SEM_UNDO; /* undo in case process dies */
......@@ -50,7 +50,7 @@ void shm_write_wait(shm_sem semid)
struct sembuf sop[3];
int ret;
dprintf_info(sem,"shm_write_wait(%d)\n",semid);
TRACE(sem,"(%d)\n",semid);
sop[0].sem_num=SEM_READ;
sop[0].sem_op=0; /* wait until no reading instance exist */
sop[0].sem_flg=SEM_UNDO;
......@@ -76,7 +76,7 @@ void shm_write_signal(shm_sem semid)
struct sembuf sop[2];
int ret;
dprintf_info(sem,"shm_write_signal(%d)\n",semid);
TRACE(sem,"(%d)\n",semid);
sop[0].sem_num=SEM_READ;
sop[0].sem_op=-1;
sop[0].sem_flg=IPC_NOWAIT | SEM_UNDO; /* no reason to wait */
......@@ -99,7 +99,7 @@ void shm_read_signal(shm_sem semid)
struct sembuf sop[2];
int ret;
dprintf_info(sem,"shm_read_signal(%d)\n",semid);
TRACE(sem,"(%d)\n",semid);
sop[0].sem_num=SEM_READ;
sop[0].sem_op=-1;
sop[0].sem_flg=IPC_NOWAIT | SEM_UNDO; /* no reason to wait */
......
......@@ -19,6 +19,7 @@
#include "module.h"
#include "neexe.h"
#include "process.h"
#include "thread.h"
#include "resource.h"
#include "selectors.h"
#include "stackframe.h"
......@@ -29,6 +30,8 @@
extern HINSTANCE16 PE_LoadModule( HFILE32 hf, OFSTRUCT *ofs, LOADPARAMS* params );
extern BOOL32 THREAD_InitDone;
static HMODULE16 hFirstModule = 0;
static HMODULE16 hCachedModule = 0; /* Module cached by MODULE_OpenFile */
......@@ -269,7 +272,7 @@ int MODULE_OpenFile( HMODULE32 hModule )
static int cachedfd = -1;
hModule = MODULE_HANDLEtoHMODULE16(hModule);
dprintf_info(module, "MODULE_OpenFile(%04x) cache: mod=%04x fd=%d\n",
TRACE(module, "(%04x) cache: mod=%04x fd=%d\n",
hModule, hCachedModule, cachedfd );
if (!(pModule = MODULE_GetPtr( hModule ))) return -1;
if (hCachedModule == hModule) return cachedfd;
......@@ -280,7 +283,7 @@ int MODULE_OpenFile( HMODULE32 hModule )
(cachedfd = open( full_name.long_name, O_RDONLY )) == -1)
fprintf( stderr, "MODULE_OpenFile: can't open file '%s' for module %04x\n",
name, hModule );
dprintf_info(module, "MODULE_OpenFile: opened '%s' -> %d\n",
TRACE(module, "opened '%s' -> %d\n",
name, cachedfd );
return cachedfd;
}
......@@ -561,7 +564,7 @@ static HMODULE32 MODULE_LoadExeHeader( HFILE32 hFile, OFSTRUCT *ofs )
/* Clear internal Wine flags in case they are set in the EXE file */
pModule->flags &= ~(NE_FFLAGS_BUILTIN | NE_FFLAGS_WIN32);
pModule->flags &= ~(NE_FFLAGS_BUILTIN|NE_FFLAGS_WIN32|NE_FFLAGS_IMPLICIT);
/* Read the fast-load area */
......@@ -569,7 +572,7 @@ static HMODULE32 MODULE_LoadExeHeader( HFILE32 hFile, OFSTRUCT *ofs )
{
fastload_offset=ne_header.fastload_offset<<ne_header.align_shift_count;
fastload_length=ne_header.fastload_length<<ne_header.align_shift_count;
dprintf_info(module, "Using fast-load area offset=%x len=%d\n",
TRACE(module, "Using fast-load area offset=%x len=%d\n",
fastload_offset, fastload_length );
if ((fastload = HeapAlloc( SystemHeap, 0, fastload_length )) != NULL)
{
......@@ -756,7 +759,7 @@ WORD MODULE_GetOrdinal( HMODULE32 hModule, const char *name )
if (!(pModule = MODULE_GetPtr( hModule ))) return 0;
dprintf_info(module, "MODULE_GetOrdinal(%04x,'%s')\n",
TRACE(module, "(%04x,'%s')\n",
hModule, name );
/* First handle names of the form '#xxxx' */
......@@ -779,7 +782,7 @@ WORD MODULE_GetOrdinal( HMODULE32 hModule, const char *name )
{
if (((BYTE)*cpnt == len) && !memcmp( cpnt+1, buffer, len ))
{
dprintf_info(module, " Found: ordinal=%d\n",
TRACE(module, " Found: ordinal=%d\n",
*(WORD *)(cpnt + *cpnt + 1) );
return *(WORD *)(cpnt + *cpnt + 1);
}
......@@ -797,7 +800,7 @@ WORD MODULE_GetOrdinal( HMODULE32 hModule, const char *name )
{
if (((BYTE)*cpnt == len) && !memcmp( cpnt+1, buffer, len ))
{
dprintf_info(module, " Found: ordinal=%d\n",
TRACE(module, " Found: ordinal=%d\n",
*(WORD *)(cpnt + *cpnt + 1) );
return *(WORD *)(cpnt + *cpnt + 1);
}
......@@ -1044,7 +1047,7 @@ static BOOL16 MODULE_CallWEP( HMODULE16 hModule )
if (ordinal) WEP = MODULE_GetEntryPoint( hModule, ordinal );
if (!WEP)
{
dprintf_warn(module, "module %04x doesn't have a WEP\n", hModule );
WARN(module, "module %04x doesn't have a WEP\n", hModule );
return FALSE;
}
return Callbacks->CallWindowsExitProc( WEP, WEP_FREE_DLL );
......@@ -1307,7 +1310,7 @@ BOOL16 WINAPI FreeModule16( HMODULE16 hModule )
NE_MODULE *pModule;
if (!(pModule = MODULE_GetPtr( hModule ))) return FALSE;
dprintf_info(module, "FreeModule16: %s count %d\n",
TRACE(module, "%s count %d\n",
MODULE_GetModuleName(hModule), pModule->count );
return MODULE_FreeModule( hModule, GlobalLock16(GetCurrentTask()) );
......@@ -1335,7 +1338,7 @@ HMODULE32 WINAPI GetModuleHandle32A(LPCSTR module)
{
HMODULE32 hModule;
dprintf_info(win32, "GetModuleHandleA: %s\n", module ? module : "NULL");
TRACE(win32, "%s\n", module ? module : "NULL");
/* Freecell uses the result of GetModuleHandleA(0) as the hInstance in
all calls to e.g. CreateWindowEx. */
if (module == NULL) {
......@@ -1364,7 +1367,7 @@ INT16 WINAPI GetModuleUsage( HINSTANCE16 hModule )
NE_MODULE *pModule;
if (!(pModule = MODULE_GetPtr( hModule ))) return 0;
dprintf_info(module, "GetModuleUsage(%04x): returning %d\n",
TRACE(module, "(%04x): returning %d\n",
hModule, pModule->count );
return pModule->count;
}
......@@ -1381,7 +1384,7 @@ INT16 WINAPI GetModuleFileName16( HINSTANCE16 hModule, LPSTR lpFileName,
if (!hModule) hModule = GetCurrentTask();
if (!(pModule = MODULE_GetPtr( hModule ))) return 0;
lstrcpyn32A( lpFileName, NE_MODULE_NAME(pModule), nSize );
dprintf_info(module, "GetModuleFileName16: %s\n", lpFileName );
TRACE(module, "%s\n", lpFileName );
return strlen(lpFileName);
}
......@@ -1401,7 +1404,7 @@ DWORD WINAPI GetModuleFileName32A( HMODULE32 hModule, LPSTR lpFileName,
}
if (!(pModule = MODULE_GetPtr( hModule ))) return 0;
lstrcpyn32A( lpFileName, NE_MODULE_NAME(pModule), size );
dprintf_info(module, "GetModuleFileName32A: %s\n", lpFileName );
TRACE(module, "%s\n", lpFileName );
return strlen(lpFileName);
}
......@@ -1496,7 +1499,7 @@ HMODULE32 WINAPI LoadLibraryEx32W(LPCWSTR libnameW,HFILE32 hfile,DWORD flags)
*/
BOOL32 WINAPI FreeLibrary32(HINSTANCE32 hLibModule)
{
dprintf_info(module,"FreeLibrary: hLibModule: %08x\n", hLibModule);
TRACE(module,"hLibModule=%08x\n", hLibModule);
return MODULE_FreeModule(hLibModule,
GlobalLock16(GetCurrentTask()) );
}
......@@ -1514,7 +1517,7 @@ HINSTANCE16 WINAPI LoadLibrary16( LPCSTR libname )
fprintf( stderr, "LoadLibrary not supported in Winelib\n" );
return 0;
}
dprintf_info(module, "LoadLibrary: (%08x) %s\n", (int)libname, libname);
TRACE(module, "(%08x) %s\n", (int)libname, libname);
handle = MODULE_Load( libname, (LPVOID)-1, 0 );
if (handle == (HINSTANCE16)2) /* file not found */
......@@ -1544,7 +1547,7 @@ HINSTANCE32 WINAPI PrivateLoadLibrary(LPCSTR libname)
*/
void WINAPI FreeLibrary16( HINSTANCE16 handle )
{
dprintf_info(module,"FreeLibrary: %04x\n", handle );
TRACE(module,"%04x\n", handle );
FreeModule16( handle );
}
......@@ -1683,6 +1686,7 @@ HINSTANCE32 WINAPI WinExec32( LPCSTR lpCmdLine, UINT32 nCmdShow )
int iconic = (nCmdShow == SW_SHOWMINIMIZED ||
nCmdShow == SW_SHOWMINNOACTIVE);
THREAD_InitDone = FALSE; /* we didn't init this process */
/* get unixfilename */
if (strchr(filename, '/') ||
strchr(filename, ':') ||
......@@ -1758,16 +1762,16 @@ FARPROC16 WINAPI WIN32_GetProcAddress16( HMODULE32 hModule, LPSTR name )
hModule = MODULE_HANDLEtoHMODULE16(hModule);
if (HIWORD(name)) {
ordinal = MODULE_GetOrdinal( hModule, name );
dprintf_info(module, "WIN32_GetProcAddress16: %04x '%s'\n",
TRACE(module, "%04x '%s'\n",
hModule, name );
} else {
ordinal = LOWORD(name);
dprintf_info(module, "GetProcAddress: %04x %04x\n",
TRACE(module, "%04x %04x\n",
hModule, ordinal );
}
if (!ordinal) return (FARPROC16)0;
ret = MODULE_GetEntryPoint( hModule, ordinal );
dprintf_info(module,"WIN32_GetProcAddress16: returning %08x\n",(UINT32)ret);
TRACE(module,"returning %08x\n",(UINT32)ret);
return ret;
}
......@@ -1785,20 +1789,20 @@ FARPROC16 WINAPI GetProcAddress16( HMODULE16 hModule, SEGPTR name )
if (HIWORD(name) != 0)
{
ordinal = MODULE_GetOrdinal( hModule, (LPSTR)PTR_SEG_TO_LIN(name) );
dprintf_info(module, "GetProcAddress: %04x '%s'\n",
TRACE(module, "%04x '%s'\n",
hModule, (LPSTR)PTR_SEG_TO_LIN(name) );
}
else
{
ordinal = LOWORD(name);
dprintf_info(module, "GetProcAddress: %04x %04x\n",
TRACE(module, "%04x %04x\n",
hModule, ordinal );
}
if (!ordinal) return (FARPROC16)0;
ret = MODULE_GetEntryPoint( hModule, ordinal );
dprintf_info(module, "GetProcAddress: returning %08x\n", (UINT32)ret );
TRACE(module, "returning %08x\n", (UINT32)ret );
return ret;
}
......@@ -1811,9 +1815,9 @@ FARPROC32 WINAPI GetProcAddress32( HMODULE32 hModule, LPCSTR function )
NE_MODULE *pModule;
if (HIWORD(function))
dprintf_info(win32,"GetProcAddress32(%08lx,%s)\n",(DWORD)hModule,function);
TRACE(win32,"(%08lx,%s)\n",(DWORD)hModule,function);
else
dprintf_info(win32,"GetProcAddress32(%08lx,%p)\n",(DWORD)hModule,function);
TRACE(win32,"(%08lx,%p)\n",(DWORD)hModule,function);
if (!(pModule = MODULE_GetPtr( hModule )))
return (FARPROC32)0;
if (!pModule->module32)
......
......@@ -54,7 +54,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
if (!pSeg->filepos) return TRUE; /* No file image, just return */
fd = MODULE_OpenFile( pModule->self );
dprintf_info(module, "Loading segment %d, selector=%04x, flags=%04x\n",
TRACE(module, "Loading segment %d, selector=%04x, flags=%04x\n",
segnum, pSeg->selector, pSeg->flags );
lseek( fd, pSeg->filepos << pModule->alignment, SEEK_SET );
if (pSeg->size) size = pSeg->size;
......@@ -115,7 +115,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
/*
The following bit of code for "iterated segments" was written without
any documentation on the format of these segments. It seems to work,
but may be missing something. If you have any doco please either send
but may be missing something. If you have any doc please either send
it to me or fix the code yourself. gfm@werple.mira.net.au
*/
char* buff = xmalloc(size);
......@@ -142,7 +142,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
read( fd, &count, sizeof(count) );
if (!count) return TRUE;
dprintf_info(fixup, "Fixups for %*.*s, segment %d, selector %04x\n",
TRACE(fixup, "Fixups for %*.*s, segment %d, selector %04x\n",
*((BYTE *)pModule + pModule->name_table),
*((BYTE *)pModule + pModule->name_table),
(char *)pModule + pModule->name_table + 1,
......@@ -152,12 +152,12 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
if (read( fd, reloc_entries, count * sizeof(struct relocation_entry_s)) !=
count * sizeof(struct relocation_entry_s))
{
dprintf_warn(fixup, "Unable to read relocation information\n" );
WARN(fixup, "Unable to read relocation information\n" );
return FALSE;
}
/*
* Go through the relocation table on entry at a time.
* Go through the relocation table one entry at a time.
*/
rep = reloc_entries;
for (i = 0; i < count; i++, rep++)
......@@ -193,10 +193,10 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
(char *)pTarget + pTarget->name_table + 1,
ordinal );
}
if (debugging_info(fixup))
if (TRACE_ON(fixup))
{
NE_MODULE *pTarget = MODULE_GetPtr( module );
dprintf_info(fixup, "%d: %*.*s.%d=%04x:%04x\n", i + 1,
TRACE(fixup, "%d: %*.*s.%d=%04x:%04x\n", i + 1,
*((BYTE *)pTarget + pTarget->name_table),
*((BYTE *)pTarget + pTarget->name_table),
(char *)pTarget + pTarget->name_table + 1,
......@@ -214,17 +214,17 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
address = MODULE_GetEntryPoint( module, ordinal );
if (debugging_err(fixup) && !address)
if (ERR_ON(fixup) && !address)
{
NE_MODULE *pTarget = MODULE_GetPtr( module );
dprintf_err(fixup, "Warning: no handler for %.*s.%s, setting to 0:0\n",
ERR(fixup, "Warning: no handler for %.*s.%s, setting to 0:0\n",
*((BYTE *)pTarget + pTarget->name_table),
(char *)pTarget + pTarget->name_table + 1, func_name );
}
if (debugging_info(fixup))
if (TRACE_ON(fixup))
{
NE_MODULE *pTarget = MODULE_GetPtr( module );
dprintf_info(fixup, "%d: %.*s.%s=%04x:%04x\n", i + 1,
TRACE(fixup, "%d: %.*s.%s=%04x:%04x\n", i + 1,
*((BYTE *)pTarget + pTarget->name_table),
(char *)pTarget + pTarget->name_table + 1,
func_name, HIWORD(address), LOWORD(address) );
......@@ -241,7 +241,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
address = (FARPROC16)PTR_SEG_OFF_TO_SEGPTR( pSegTable[rep->target1-1].selector, rep->target2 );
}
dprintf_info(fixup,"%d: %04x:%04x\n",
TRACE(fixup,"%d: %04x:%04x\n",
i + 1, HIWORD(address), LOWORD(address) );
break;
......@@ -254,14 +254,13 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
* successfully emulate the coprocessor if it doesn't
* exist.
*/
dprintf_info(fixup,
"%d: ADDR TYPE %d, TYPE %d, OFFSET %04x, TARGET %04x %04x\n",
i + 1, rep->address_type, rep->relocation_type,
rep->offset, rep->target1, rep->target2);
TRACE(fixup, "%d: ADDR TYPE %d, TYPE %d, OFFSET %04x, "
"TARGET %04x %04x\n", i + 1, rep->address_type,
rep->relocation_type, rep->offset, rep->target1, rep->target2);
continue;
default:
dprintf_warn(fixup, "WARNING: %d: ADDR TYPE %d, "
WARN(fixup, "WARNING: %d: ADDR TYPE %d, "
"unknown TYPE %d, OFFSET %04x, TARGET %04x %04x\n",
i + 1, rep->address_type, rep->relocation_type,
rep->offset, rep->target1, rep->target2);
......@@ -282,7 +281,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
case NE_RADDR_LOWBYTE:
do {
sp = PTR_SEG_OFF_TO_LIN( pSeg->selector, offset );
dprintf_info(fixup," %04x:%04x:%04x BYTE%s\n",
TRACE(fixup," %04x:%04x:%04x BYTE%s\n",
pSeg->selector, offset, *sp, additive ? " additive":"");
offset = *sp;
if(additive)
......@@ -296,7 +295,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
case NE_RADDR_OFFSET16:
do {
sp = PTR_SEG_OFF_TO_LIN( pSeg->selector, offset );
dprintf_info(fixup," %04x:%04x:%04x OFFSET16%s\n",
TRACE(fixup," %04x:%04x:%04x OFFSET16%s\n",
pSeg->selector, offset, *sp, additive ? " additive" : "" );
offset = *sp;
*sp = LOWORD(address);
......@@ -308,7 +307,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
case NE_RADDR_POINTER32:
do {
sp = PTR_SEG_OFF_TO_LIN( pSeg->selector, offset );
dprintf_info(fixup," %04x:%04x:%04x POINTER32%s\n",
TRACE(fixup," %04x:%04x:%04x POINTER32%s\n",
pSeg->selector, offset, *sp, additive ? " additive" : "" );
offset = *sp;
*sp = LOWORD(address);
......@@ -321,7 +320,7 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
case NE_RADDR_SELECTOR:
do {
sp = PTR_SEG_OFF_TO_LIN( pSeg->selector, offset );
dprintf_info(fixup," %04x:%04x:%04x SELECTOR%s\n",
TRACE(fixup," %04x:%04x:%04x SELECTOR%s\n",
pSeg->selector, offset, *sp, additive ? " additive" : "" );
offset = *sp;
*sp = HIWORD(address);
......@@ -334,10 +333,10 @@ BOOL32 NE_LoadSegment( NE_MODULE *pModule, WORD segnum )
break;
default:
dprintf_warn(fixup, "WARNING: %d: unknown ADDR TYPE %d, "
"TYPE %d, OFFSET %04x, TARGET %04x %04x\n",
i + 1, rep->address_type, rep->relocation_type,
rep->offset, rep->target1, rep->target2);
WARN(fixup, "WARNING: %d: unknown ADDR TYPE %d, "
"TYPE %d, OFFSET %04x, TARGET %04x %04x\n",
i + 1, rep->address_type, rep->relocation_type,
rep->offset, rep->target1, rep->target2);
free(reloc_entries);
return FALSE;
}
......@@ -367,9 +366,9 @@ BOOL32 NE_LoadAllSegments( NE_MODULE *pModule )
DWORD oldstack;
WORD saved_dgroup = pSegTable[pModule->dgroup - 1].selector;
dprintf_info(module, "NE_LoadAllSegments: %.*s is a self-loading module!\n",
*((BYTE*)pModule + pModule->name_table),
(char *)pModule + pModule->name_table + 1);
TRACE(module, "%.*s is a self-loading module!\n",
*((BYTE*)pModule + pModule->name_table),
(char *)pModule + pModule->name_table + 1);
if (!NE_LoadSegment( pModule, 1 )) return FALSE;
selfloadheader = (SELFLOADHEADER *)
PTR_SEG_OFF_TO_LIN(pSegTable->selector, 0);
......@@ -424,7 +423,7 @@ BOOL32 NE_LoadDLLs( NE_MODULE *pModule )
BYTE *pstr = (BYTE *)pModule + pModule->import_table + *pModRef;
memcpy( buffer, pstr + 1, *pstr );
strcpy( buffer + *pstr, ".dll" );
dprintf_info(module, "Loading '%s'\n", buffer );
TRACE(module, "Loading '%s'\n", buffer );
if (!(*pModRef = MODULE_FindModule( buffer )))
{
/* If the DLL is not loaded yet, load it and store */
......@@ -482,7 +481,7 @@ void NE_FixupPrologs( NE_MODULE *pModule )
if (pModule->flags & NE_FFLAGS_SINGLEDATA)
dgroup = pSegTable[pModule->dgroup-1].selector;
dprintf_info(module, "MODULE_FixupPrologs(%04x)\n", pModule->self );
TRACE(module, "(%04x)\n", pModule->self );
p = (BYTE *)pModule + pModule->entry_table;
while (*p)
{
......@@ -517,7 +516,7 @@ void NE_FixupPrologs( NE_MODULE *pModule )
fixup_ptr = (char *)GET_SEL_BASE(pSegTable[sel-1].selector) +
*(WORD *)(p + 1);
}
dprintf_info(module, "%s Signature: %02x %02x %02x,ff %x\n",
TRACE(module, "%s Signature: %02x %02x %02x,ff %x\n",
dbg_str(module), fixup_ptr[0], fixup_ptr[1],
fixup_ptr[2], pModule->flags );
if (*p & 0x0001)
......@@ -549,11 +548,11 @@ void NE_FixupPrologs( NE_MODULE *pModule )
}
}
} else {
dprintf_warn(fixup, "Unknown signature\n" );
WARN(fixup, "Unknown signature\n" );
}
}
else
dprintf_info(module,"\n");
TRACE(module,"\n");
p += (sel == 0xff) ? 6 : 3;
}
}
......@@ -635,7 +634,7 @@ static BOOL32 NE_InitDLL( TDB* pTask, HMODULE16 hModule )
pModule->cs = 0; /* Don't initialize it twice */
dprintf_info(dll, "Calling LibMain, cs:ip=%04lx:%04x ds=%04lx di=%04x cx=%04x\n",
TRACE(dll, "Calling LibMain, cs:ip=%04lx:%04x ds=%04lx di=%04x cx=%04x\n",
CS_reg(&context), IP_reg(&context), DS_reg(&context),
DI_reg(&context), CX_reg(&context) );
Callbacks->CallRegisterShortProc( &context, 0 );
......
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment