Commit 77b9918e authored by Alexandre Julliard's avatar Alexandre Julliard

Release 970914

Thu Sep 11 18:24:56 1997 Philippe De Muyter <phdm@info.ucl.ac.be> * [objects/dc.c] In DC_SetupGCForPatBlt, replace R2_NOT by GXxor with (black xor white). Tue Sep 9 23:04:02 1997 U. Bonnes <bon@elektron.ikp.physik.th-darmstadt.de> * [memory/virtual.c] Do not write debugging info unconditionally to stderr. * [files/profile.c] Call PROFILE_GetSection in PROFILE_GetString for key_name "" too. * [misc/crtdll.c] Many new functions. * [include/windows.h] [windows/winpos.c] ClientToScreen16 doesn't have a return value. Sun Sep 7 10:06:39 1997 Alexandre Julliard <julliard@lrc.epfl.ch> * [misc/main.c] [AUTHORS] Update the list of contributors. Please let me know if I forgot someone. * [if1632/*.spec] [if1632/builtin.c] [tools/build.c] Ordinal base for Win32 DLLs is now computed automatically from the lowest ordinal found. * [include/wintypes.h] WINAPI is now defined as attribute((stdcall)). This will require gcc to compile. * [if1632/thunk.c] Removed Win32 thunks (no longer needed with stdcall). * [if1632/crtdll.spec] [misc/crtdll.c] Make sure we only reference cdecl functions in the spec file. * [objects/dc.c] Use CapNotLast drawing style for 1-pixel wide lines. * [tools/build.c] Added 'double' argument type. Added 'varargs' function type for Win32. Made CallTo16_xxx functions stdcall. Fri Sep 5 14:50:49 1997 Alex Korobka <alex@trantor.pharm.sunysb.edu> * [tools/build.c] [windows/win.c] [windows/event.c] [windows/message.c] More fixes to get message exchange closer to the original. * [misc/spy.c] Message logs now contain window names. * [loader/resource.c] [loader/ne_resource.c] [loader/task.c] [objects/cursoricon.c] [windows/user.c] Added some obscure features to fix memory leaks. Fri Sep 5 00:46:28 1997 Jan Willamowius <jan@janhh.shnet.org> * [if1632/kernel32.spec] [win32/newfns.c] Added stub for UTRegister() and UTUnRegister(). Thu Sep 4 12:03:12 1997 Frans van Dorsselaer <dorssel@rulhmpc49.LeidenUniv.nl> * [controls/edit.c] Allow ASCII codes > 127 in WM_CHAR. Mon Sep 1 17:23:24 1997 Dimitrie O. Paun <dimi@mail.cs.toronto.edu> * [controls/widgets.c] In InitCommonControls, remember the name of the class because lpszClassName was made to point to a local array Added the ProgressBar to the list of implemented controls. Call InitCommonControls from WIDGETS_Init to register all implemented Common Controls. * [include/commctrl.h] Added misc decl for the Progress Bar. * [controls/progress.c] [include/progress.h] First attempt at implementiong the Progress Bar class. * [objects/brush.h] Implementation for GetSysColorBrush[16|32] * [controls/status.c] Use DrawEdge to draw the borders and fill the background * [controls/uitools.c] Added DrawDiagEdge32 and DrawRectEdge32 * [graphics/painting.c] Implement DrawEdge[16|32] Started DrawFrameControl32 Mon Sep 1 10:07:09 1997 Lawson Whitney <lawson_whitney@juno.com> * [misc/comm.c] [include/windows.h] SetCommEventMask returns a SEGPTR. Sun Aug 31 23:28:32 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [loader/pe_image.c][loader/module.c][include/pe_image.h] [include/module.h] Cleaned up the whole Win32 library mess (a bit). * [debugger/stabs.c] If 'wine' has no absolute path and isn't found, check $PATH too. * [misc/ole2nls.c] Some fixes. * [misc/ver.c] Added support for PE style version resources. * [memory/string.c] Check for NULL pointers to _lstr* functions, just as Windows95 does. * [multimedia/time.c] Made list of timers a simple linked list. * [loader/resource.c] Netscape 3 seems to pass NEGATIVE resource Ids (in an unsigned int, yes). Don't know why, fixed it anyway. * [objects/bitmap.c] LoadImageW added. * [include/win.h][windows/win.c] Change wIDmenu from UINT16 to UINT32 and changed the SetWindow(Long|Word) accordingly. Thu Aug 28 19:30:08 1997 Morten Welinder <terra@diku.dk> * [include/windows.h] Add a few more colors defined for Win95. Add a few more brush styles. * [windows/syscolor.c] Add error checks for SYSCOLOR_SetColor, SYSCOLOR_Init, GetSysColor16, GetSysColor32. Add support for above colors. Sun Aug 24 16:22:57 1997 Andrew Taylor <andrew@riscan.com> * [multimedia/mmsystem.c] Changed mmioDescend to use mmio functions for file I/O, neccessary for memory files.
parent 670cdc45
This is release 970824 of Wine, the MS Windows emulator. This is still a This is release 970914 of Wine, the MS Windows emulator. This is still a
developer's only release. There are many bugs and many unimplemented API developer's only release. There are many bugs and many unimplemented API
features. Most applications still do not work correctly. features. Most applications still do not work correctly.
Patches should be submitted to "julliard@lrc.epfl.ch". Please don't Patches should be submitted to "julliard@lrc.epfl.ch". Please don't
forget to include a ChangeLog entry. forget to include a ChangeLog entry.
WHAT'S NEW with Wine-970824: (see ChangeLog for details) WHAT'S NEW with Wine-970914: (see ChangeLog for details)
- Better Win32 menu support. - Better resource handling.
- Improved Winsock. - New Progress control.
- UpDown control. - Improved PE module support.
- More undocumented Win95 hacks. - Many relay code changes.
- Lots of bug fixes. - Lots of bug fixes.
See the README file in the distribution for installation instructions. See the README file in the distribution for installation instructions.
...@@ -18,10 +18,10 @@ Because of lags created by using mirror, this message may reach you before ...@@ -18,10 +18,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 the release is available at the ftp sites. The sources will be available
from the following locations: from the following locations:
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-970824.tar.gz ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-970914.tar.gz
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-970824.tar.gz ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-970914.tar.gz
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-970824.tar.gz ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-970914.tar.gz
ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-970824.tar.gz ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-970914.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite. It should also be available from any site that mirrors tsx-11 or sunsite.
......
...@@ -4,28 +4,121 @@ ...@@ -4,28 +4,121 @@
@c This is a list of the Wine authors and copyright holders. @c This is a list of the Wine authors and copyright holders.
Wine is available thanks to the work of Bob Amstadt, Dag Asheim, Wine is available thanks to the work of:
Martin Ayotte, Peter Bajusz, Ross Biro, Uwe Bonnes, Erik Bos, Fons Bob Amstadt,
Botman, John Brezak, Andrew Bulhak, John Burton, Niels de Carpentier, Dag Asheim,
Jimen Ching, Huw D. M. Davies, Roman Dolejsi, Frans van Dorsselaer, Martin Ayotte,
Paul Falstad, David Faure, Claus Fischer, Olaf Flebbe, Peter Galbavy, Peter Bajusz,
Ramon Garcia, Matthew Ghio, Hans de Graaff, Charles M. Hannum, John Georg Beyerle,
Harvey, Cameron Heide, Jochen Hoenicke, Onno Hovers, Jeffrey Hsu, Ross Biro,
Miguel de Icaza, Jukka Iivonen, Lee Jaekil, Alexandre Julliard, Bang Uwe Bonnes,
Jun-Young, Pavel Kankovsky, Jochen Karrer, Andreas Kirschbaum, Erik Bos,
Albrecht Kleine, Jon Konrath, Alex Korobka, Greg Kreider, Anand Fons Botman,
Kumria, Scott A. Laird, Andrew Lewycky, Martin von Loewis, Kenneth John Brezak,
MacDonald, Peter MacDonald, William Magro, Juergen Marquardt, Ricardo Andrew Bulhak,
Massaro, Marcus Meissner, Graham Menhennitt, David Metcalfe, Bruce John Burton,
Milner, Steffen Moeller, Andreas Mohr, Philippe De Muyter, Itai Niels de Carpentier,
Nahshon, Michael Patra, Jim Peterson, Robert Pouliot, Keith Reynolds, Jimen Ching,
Slaven Rezic, John Richardson, Johannes Ruscheinski, Thomas Sandford, David A. Cuthbert,
Constantine Sapuntzakis, Pablo Saratxaga, Daniel Schepler, Ulrich Huw D. M. Davies,
Schmid, Bernd Schmidt, Yngvi Sigurjonsson, Stephen Simmons, Rick Roman Dolejsi,
Sladkey, William Smith, Dominik Strasser, Vadim Strizhevsky, Erik Frans van Dorsselaer,
Svendsen, Tristan Tarrant, Andrew Taylor, Duncan C Thomson, Goran Chris Faherty,
Thyni, Jimmy Tirtawangsa, Jon Tombs, Linus Torvalds, Gregory Paul Falstad,
Trubetskoy, Petri Tuomola, Michael Veksler, Sven Verdoolaege, Ronan David Faure,
Waide, Eric Warnke, Manfred Weichel, Morten Welinder, Jan Willamowius, Claus Fischer,
Carl Williams, Karl Guenter Wuensch, Eric Youngdale, James Youngman, Olaf Flebbe,
Mikolaj Zalewski, and John Zero. Chad Fraleigh,
Peter Galbavy,
Ramon Garcia,
Matthew Ghio,
Jody Goldberg,
Hans de Graaff,
Charles M. Hannum,
Adrian Harvey,
John Harvey,
Cameron Heide,
Jochen Hoenicke,
Onno Hovers,
Jeffrey Hsu,
Miguel de Icaza,
Jukka Iivonen,
Lee Jaekil,
Alexandre Julliard,
Bang Jun-Young,
Pavel Kankovsky,
Jochen Karrer,
Andreas Kirschbaum,
Albrecht Kleine,
Jon Konrath,
Alex Korobka,
Greg Kreider,
Anand Kumria,
Scott A. Laird,
Andrew Lewycky,
Martin von Loewis,
Michiel van Loon,
Kenneth MacDonald,
Peter MacDonald,
William Magro,
Juergen Marquardt,
Ricardo Massaro,
Marcus Meissner,
Graham Menhennitt,
David Metcalfe,
Bruce Milner,
Steffen Moeller,
Andreas Mohr,
Philippe De Muyter,
Itai Nahshon,
Henrik Olsen,
Michael Patra,
Dimitrie O. Paun,
Jim Peterson,
Robert Pouliot,
Keith Reynolds,
Slaven Rezic,
John Richardson,
Rick Richardson,
Doug Ridgway,
Bernhard Rosenkraenzer,
Johannes Ruscheinski,
Thomas Sandford,
Constantine Sapuntzakis,
Pablo Saratxaga,
Daniel Schepler,
Peter Schlaile,
Ulrich Schmid,
Bernd Schmidt,
Ingo Schneider,
Victor Schneider,
Yngvi Sigurjonsson,
Stephen Simmons,
Rick Sladkey,
William Smith,
Dominik Strasser,
Vadim Strizhevsky,
Erik Svendsen,
Tristan Tarrant,
Andrew Taylor,
Duncan C Thomson,
Goran Thyni,
Jimmy Tirtawangsa,
Jon Tombs,
Linus Torvalds,
Gregory Trubetskoy,
Petri Tuomola,
Michael Veksler,
Sven Verdoolaege,
Ronan Waide,
Eric Warnke,
Manfred Weichel,
Morten Welinder,
Lawson Whitney,
Jan Willamowius,
Carl Williams,
Karl Guenter Wuensch,
Eric Youngdale,
James Youngman,
Mikolaj Zalewski,
and John Zero.
...@@ -5,10 +5,15 @@ done something for one of the problems. You are encouraged to ...@@ -5,10 +5,15 @@ done something for one of the problems. You are encouraged to
add new entries and, more importantly, remove those for the add new entries and, more importantly, remove those for the
bugs you fixed ;-) bugs you fixed ;-)
------------------------------------------------------------ ------------------------------------------------------------
As of June 1997 - As of Sept 1997 -
General: General:
* LoadAccelerators() must not create any objects apart
from loading the resource.
* Catch/Throw() do not save SI and DI registers (quite fatal).
* We need to do InsertMenuItem32[AW] and then code most of the other * We need to do InsertMenuItem32[AW] and then code most of the other
inserting function in terms of this. Without this, we cannot support inserting function in terms of this. Without this, we cannot support
all the new extended menus. Not hard, but slightly big. all the new extended menus. Not hard, but slightly big.
...@@ -36,6 +41,17 @@ General: ...@@ -36,6 +41,17 @@ General:
Miscellaneous: Miscellaneous:
* nBytesWidth in CURSORICONINFO is bogus for some bpp
(doesn't reflect the fact that bits are packed and 16-bit aligned).
* Progman and AOL complain about being unable to convert bitmaps
(probably because of bytes width stuff).
* Netscape displays partially downloaded inline graphics with
wrong offsets. Bitmap is missing in the splash-window.
* BCW 4.5 crashes after SwitchStackBack().
* Text alignment problems in Word and Write (variable pitch fonts). * Text alignment problems in Word and Write (variable pitch fonts).
* Font mapper weights * Font mapper weights
......
---------------------------------------------------------------------- ----------------------------------------------------------------------
Thu Sep 11 18:24:56 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* [objects/dc.c]
In DC_SetupGCForPatBlt, replace R2_NOT by GXxor with (black xor white).
Tue Sep 9 23:04:02 1997 U. Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
* [memory/virtual.c]
Do not write debugging info unconditionally to stderr.
* [files/profile.c]
Call PROFILE_GetSection in PROFILE_GetString for key_name "" too.
* [misc/crtdll.c]
Many new functions.
* [include/windows.h] [windows/winpos.c]
ClientToScreen16 doesn't have a return value.
Sun Sep 7 10:06:39 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [misc/main.c] [AUTHORS]
Update the list of contributors. Please let me know if I forgot
someone.
* [if1632/*.spec] [if1632/builtin.c] [tools/build.c]
Ordinal base for Win32 DLLs is now computed automatically from the
lowest ordinal found.
* [include/wintypes.h]
WINAPI is now defined as attribute((stdcall)). This will require
gcc to compile.
* [if1632/thunk.c]
Removed Win32 thunks (no longer needed with stdcall).
* [if1632/crtdll.spec] [misc/crtdll.c]
Make sure we only reference cdecl functions in the spec file.
* [objects/dc.c]
Use CapNotLast drawing style for 1-pixel wide lines.
* [tools/build.c]
Added 'double' argument type.
Added 'varargs' function type for Win32.
Made CallTo16_xxx functions stdcall.
Fri Sep 5 14:50:49 1997 Alex Korobka <alex@trantor.pharm.sunysb.edu>
* [tools/build.c] [windows/win.c] [windows/event.c] [windows/message.c]
More fixes to get message exchange closer to the original.
* [misc/spy.c]
Message logs now contain window names.
* [loader/resource.c] [loader/ne_resource.c] [loader/task.c]
[objects/cursoricon.c] [windows/user.c]
Added some obscure features to fix memory leaks.
Fri Sep 5 00:46:28 1997 Jan Willamowius <jan@janhh.shnet.org>
* [if1632/kernel32.spec] [win32/newfns.c]
Added stub for UTRegister() and UTUnRegister().
Thu Sep 4 12:03:12 1997 Frans van Dorsselaer <dorssel@rulhmpc49.LeidenUniv.nl>
* [controls/edit.c]
Allow ASCII codes > 127 in WM_CHAR.
Mon Sep 1 17:23:24 1997 Dimitrie O. Paun <dimi@mail.cs.toronto.edu>
* [controls/widgets.c]
In InitCommonControls, remember the name of the class
because lpszClassName was made to point to a local array
Added the ProgressBar to the list of implemented controls.
Call InitCommonControls from WIDGETS_Init to register all
implemented Common Controls.
* [include/commctrl.h]
Added misc decl for the Progress Bar.
* [controls/progress.c] [include/progress.h]
First attempt at implementiong the Progress Bar class.
* [objects/brush.h]
Implementation for GetSysColorBrush[16|32]
* [controls/status.c]
Use DrawEdge to draw the borders and fill the background
* [controls/uitools.c]
Added DrawDiagEdge32 and DrawRectEdge32
* [graphics/painting.c]
Implement DrawEdge[16|32]
Started DrawFrameControl32
Mon Sep 1 10:07:09 1997 Lawson Whitney <lawson_whitney@juno.com>
* [misc/comm.c] [include/windows.h]
SetCommEventMask returns a SEGPTR.
Sun Aug 31 23:28:32 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [loader/pe_image.c][loader/module.c][include/pe_image.h]
[include/module.h]
Cleaned up the whole Win32 library mess (a bit).
* [debugger/stabs.c]
If 'wine' has no absolute path and isn't found, check $PATH too.
* [misc/ole2nls.c]
Some fixes.
* [misc/ver.c]
Added support for PE style version resources.
* [memory/string.c]
Check for NULL pointers to _lstr* functions, just as Windows95 does.
* [multimedia/time.c]
Made list of timers a simple linked list.
* [loader/resource.c]
Netscape 3 seems to pass NEGATIVE resource Ids (in an
unsigned int, yes). Don't know why, fixed it anyway.
* [objects/bitmap.c]
LoadImageW added.
* [include/win.h][windows/win.c]
Change wIDmenu from UINT16 to UINT32 and changed the
SetWindow(Long|Word) accordingly.
Thu Aug 28 19:30:08 1997 Morten Welinder <terra@diku.dk>
* [include/windows.h]
Add a few more colors defined for Win95.
Add a few more brush styles.
* [windows/syscolor.c]
Add error checks for SYSCOLOR_SetColor, SYSCOLOR_Init,
GetSysColor16, GetSysColor32. Add support for above colors.
Sun Aug 24 16:22:57 1997 Andrew Taylor <andrew@riscan.com>
* [multimedia/mmsystem.c]
Changed mmioDescend to use mmio functions for file I/O, neccessary
for memory files.
----------------------------------------------------------------------
Sat Aug 23 00:05:23 1997 Andreas Mohr <100.30936@germany.net> Sat Aug 23 00:05:23 1997 Andreas Mohr <100.30936@germany.net>
* [if1632/kernel.spec] [if1632/mmsystem.spec] * [if1632/kernel.spec] [if1632/mmsystem.spec]
......
...@@ -13,9 +13,11 @@ C_SRCS = \ ...@@ -13,9 +13,11 @@ C_SRCS = \
icontitle.c \ icontitle.c \
listbox.c \ listbox.c \
menu.c \ menu.c \
progress.c \
scroll.c \ scroll.c \
static.c \ static.c \
status.c \ status.c \
uitools.c \
updown.c \ updown.c \
widgets.c widgets.c
......
...@@ -982,11 +982,17 @@ static INT32 EDIT_CallWordBreakProc(WND *wnd, EDITSTATE *es, INT32 start, INT32 ...@@ -982,11 +982,17 @@ static INT32 EDIT_CallWordBreakProc(WND *wnd, EDITSTATE *es, INT32 start, INT32
segptr + start, index, count, action); segptr + start, index, count, action);
LocalUnlock16(hloc16); LocalUnlock16(hloc16);
return ret; return ret;
} else if (es->word_break_proc32A) }
return (INT32)CallWordBreakProc32A((FARPROC32)es->word_break_proc32A, else if (es->word_break_proc32A)
es->text + start, index, count, action); {
dprintf_relay( stddeb, "CallTo32(wordbrk=%p,str='%s',idx=%d,cnt=%d,act=%d)\n",
es->word_break_proc32A, es->text + start, index,
count, action );
return (INT32)es->word_break_proc32A( es->text + start, index,
count, action );
}
else else
return EDIT_WordBreakProc(es->text + start, index, count, action); return EDIT_WordBreakProc(es->text + start, index, count, action);
} }
...@@ -2819,7 +2825,7 @@ static void EDIT_WM_Char(WND *wnd, EDITSTATE *es, CHAR c, DWORD key_data) ...@@ -2819,7 +2825,7 @@ static void EDIT_WM_Char(WND *wnd, EDITSTATE *es, CHAR c, DWORD key_data)
EDIT_EM_ReplaceSel(wnd, es, TRUE, "\t"); EDIT_EM_ReplaceSel(wnd, es, TRUE, "\t");
break; break;
default: default:
if (!(es->style & ES_READONLY) && (c >= ' ') && (c != 127)) { if (!(es->style & ES_READONLY) && ((BYTE)c >= ' ') && (c != 127)) {
char str[2]; char str[2];
str[0] = c; str[0] = c;
str[1] = '\0'; str[1] = '\0';
......
...@@ -2462,7 +2462,7 @@ LRESULT WINAPI ListBoxWndProc( HWND32 hwnd, UINT32 msg, ...@@ -2462,7 +2462,7 @@ LRESULT WINAPI ListBoxWndProc( HWND32 hwnd, UINT32 msg,
default: default:
if ((msg >= WM_USER) && (msg < 0xc000)) if ((msg >= WM_USER) && (msg < 0xc000))
fprintf(stderr,"Listbox %04x: unknown msg %04x wp %08x lp %08lx\n", dprintf_listbox(stddeb,"Listbox %04x: unknown msg %04x wp %08x lp %08lx\n",
hwnd, msg, wParam, lParam ); hwnd, msg, wParam, lParam );
return DefWindowProc32A( hwnd, msg, wParam, lParam ); return DefWindowProc32A( hwnd, msg, wParam, lParam );
} }
......
...@@ -1141,48 +1141,44 @@ UINT32 MENU_DrawMenuBar( HDC32 hDC, LPRECT32 lprect, HWND32 hwnd, ...@@ -1141,48 +1141,44 @@ UINT32 MENU_DrawMenuBar( HDC32 hDC, LPRECT32 lprect, HWND32 hwnd,
/*********************************************************************** /***********************************************************************
* MENU_PatchResidentPopup * MENU_PatchResidentPopup
*/ */
BOOL32 MENU_PatchResidentPopup( HQUEUE16 checkQueue, WND* wndOwner ) BOOL32 MENU_PatchResidentPopup( HQUEUE16 checkQueue, WND* checkWnd )
{ {
/* checkQueue tells us whether we have to disconnect top
* popup from the wndOwner or (if the latter is NULL) from
* the checkQueue. If checkQueue is 0 then we need to set
* popup owner to the wndOwner.
*
* This is supposed to be called when top popup is hidden. */
if( pTopPopupWnd ) if( pTopPopupWnd )
{ {
HTASK16 hTask = 0; HTASK16 hTask = 0;
dprintf_menu(stddeb,"patching resident popup: %04x, %08x\n", dprintf_menu(stddeb,"patching resident popup: %04x %04x [%04x %04x]\n",
checkQueue, (unsigned) wndOwner); checkQueue, checkWnd ? checkWnd->hwndSelf : 0, pTopPopupWnd->hmemTaskQ,
if( wndOwner ) pTopPopupWnd->owner ? pTopPopupWnd->owner->hwndSelf : 0);
{
if( pTopPopupWnd->owner == wndOwner )
{
if( checkQueue ) pTopPopupWnd->owner = NULL;
return TRUE;
}
/* switch to the new owner */
if( wndOwner->hmemTaskQ == pTopPopupWnd->hmemTaskQ ) switch( checkQueue )
return TRUE;
hTask = QUEUE_GetQueueTask( wndOwner->hmemTaskQ );
}
else if( pTopPopupWnd->hmemTaskQ == checkQueue )
{ {
/* switch to the different task */ case 0: /* checkWnd is the new popup owner */
if( checkWnd )
hTask = QUEUE_GetQueueTask( pTopPopupWnd->hmemTaskQ ); {
hTask = TASK_GetNextTask( hTask ); pTopPopupWnd->owner = checkWnd;
if( pTopPopupWnd->hmemTaskQ != checkWnd->hmemTaskQ )
hTask = QUEUE_GetQueueTask( checkWnd->hmemTaskQ );
}
break;
case 0xFFFF: /* checkWnd is destroyed */
if( pTopPopupWnd->owner == checkWnd )
pTopPopupWnd->owner = NULL;
return TRUE;
default: /* checkQueue is exiting */
if( pTopPopupWnd->hmemTaskQ == checkQueue )
{
hTask = QUEUE_GetQueueTask( pTopPopupWnd->hmemTaskQ );
hTask = TASK_GetNextTask( hTask );
}
break;
} }
if( hTask ) if( hTask )
{ {
TDB* task = (TDB*)GlobalLock16( hTask ); TDB* task = (TDB*)GlobalLock16( hTask );
pTopPopupWnd->owner = wndOwner;
if( task ) if( task )
{ {
pTopPopupWnd->hInstance = task->hInstance; pTopPopupWnd->hInstance = task->hInstance;
...@@ -3537,7 +3533,7 @@ HMENU16 WINAPI LoadMenu16( HINSTANCE16 instance, SEGPTR name ) ...@@ -3537,7 +3533,7 @@ HMENU16 WINAPI LoadMenu16( HINSTANCE16 instance, SEGPTR name )
if (!name) return 0; if (!name) return 0;
/* check for Win32 module */ /* check for Win32 module */
instance = GetExePtr( instance ); instance = MODULE_HANDLEtoHMODULE16( instance );
if (MODULE_GetPtr(instance)->flags & NE_FFLAGS_WIN32) if (MODULE_GetPtr(instance)->flags & NE_FFLAGS_WIN32)
return LoadMenu32A(instance,PTR_SEG_TO_LIN(name)); return LoadMenu32A(instance,PTR_SEG_TO_LIN(name));
...@@ -3837,7 +3833,7 @@ BOOL16 WINAPI InsertMenuItem16( HMENU16 hmenu, UINT16 pos, BOOL16 byposition, ...@@ -3837,7 +3833,7 @@ BOOL16 WINAPI InsertMenuItem16( HMENU16 hmenu, UINT16 pos, BOOL16 byposition,
miia.cbSize = sizeof(miia); miia.cbSize = sizeof(miia);
miia.fMask = mii->fMask; miia.fMask = mii->fMask;
miia.dwTypeData = miia.dwTypeData; miia.dwTypeData = mii->dwTypeData;
miia.fType = mii->fType; miia.fType = mii->fType;
miia.fState = mii->fState; miia.fState = mii->fState;
miia.wID = mii->wID; miia.wID = mii->wID;
......
/*
* Progress control
*
* Copyright 1997 Dimitrie O. Paun
*
* TODO:
* - I do not know what to to on WM_[SG]ET_FONT
* Problems:
* - I think I do not compute correctly the numer of leds to be drawn
*/
#include <stdlib.h>
#include <stdio.h>
#include "windows.h"
#include "syscolor.h"
#include "sysmetrics.h"
#include "progress.h"
#include "graphics.h"
#include "heap.h"
#include "win.h"
#include "stddebug.h"
#include "debug.h"
/* Control configuration constants */
#define LED_WIDTH 8
#define LED_GAP 2
/* Work constants */
#define UNKNOWN_PARAM(msg, wParam, lParam) dprintf_progress(stddeb, \
"Progress Ctrl: Unknown parameter(s) for message " #msg \
"(%04x): wp=%04x lp=%08lx\n", msg, wParam, lParam);
#define PROGRESS_GetInfoPtr(wndPtr) ((PROGRESS_INFO *)wndPtr->wExtra)
/***********************************************************************
* PROGRESS_Paint
* Draw the arrows. The background need not be erased.
* If dc!=0, it draws on it
*/
static void PROGRESS_Paint(WND *wndPtr, HDC32 dc)
{
PROGRESS_INFO *infoPtr = PROGRESS_GetInfoPtr(wndPtr);
HBRUSH32 ledBrush;
int rightBar, rightMost;
PAINTSTRUCT32 ps;
RECT32 rect;
HDC32 hdc;
dprintf_progress(stddeb, "Progress Bar: 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;
/* get the required brush */
ledBrush = GetSysColorBrush32(COLOR_HIGHLIGHT);
/* get rect for the bar, adjusted for the border */
GetClientRect32(wndPtr->hwndSelf, &rect);
/* draw the border */
DrawEdge32(hdc, &rect, BDR_SUNKENOUTER, BF_RECT|BF_ADJUST|BF_MIDDLE);
rect.left++; rect.right--; rect.top++; rect.bottom--;
rightMost = rect.right;
/* compute extent of progress bar */
rightBar = rect.left +
MulDiv32(infoPtr->CurVal-infoPtr->MinVal,
rect.right - rect.left,
infoPtr->MaxVal-infoPtr->MinVal);
/* now draw the bar */
while(rect.left < rightBar) {
rect.right = rect.left+LED_WIDTH;
FillRect32(hdc, &rect, ledBrush);
rect.left = rect.right+LED_GAP;
}
/* clean-up */
if(!dc)
EndPaint32(wndPtr->hwndSelf, &ps);
}
/***********************************************************************
* PROGRESS_CoercePos
* Makes sure the current position (CUrVal) is within bounds.
*/
static void PROGRESS_CoercePos(WND *wndPtr)
{
PROGRESS_INFO *infoPtr = PROGRESS_GetInfoPtr(wndPtr);
if(infoPtr->CurVal < infoPtr->MinVal)
infoPtr->CurVal = infoPtr->MinVal;
if(infoPtr->CurVal > infoPtr->MaxVal)
infoPtr->CurVal = infoPtr->MaxVal;
}
/***********************************************************************
* ProgressWindowProc
*/
LRESULT WINAPI ProgressWindowProc(HWND32 hwnd, UINT32 message,
WPARAM32 wParam, LPARAM lParam)
{
WND *wndPtr = WIN_FindWndPtr(hwnd);
PROGRESS_INFO *infoPtr = PROGRESS_GetInfoPtr(wndPtr);
UINT32 temp;
switch(message)
{
case WM_CREATE:
/* initialize the info struct */
infoPtr->MinVal=0;
infoPtr->MaxVal=100;
infoPtr->CurVal=0;
infoPtr->Step=10;
dprintf_updown(stddeb, "Progress Ctrl creation, hwnd=%04x\n", hwnd);
break;
case WM_DESTROY:
dprintf_updown(stddeb, "Progress Ctrl destruction, hwnd=%04x\n", hwnd);
break;
case WM_ERASEBKGND:
/* pretend to erase it here, but we will do it in the paint
function to avoid flicker */
return 1;
case WM_GETFONT:
/* FIXME: What do we need to do? */
break;
case WM_SETFONT:
/* FIXME: What do we need to do? */
break;
case WM_PAINT:
PROGRESS_Paint(wndPtr, wParam);
break;
case PBM_DELTAPOS:
if(lParam)
UNKNOWN_PARAM(PBM_DELTAPOS, wParam, lParam);
temp = infoPtr->CurVal;
if(wParam != 0){
infoPtr->CurVal += (UINT16)wParam;
PROGRESS_CoercePos(wndPtr);
PROGRESS_Paint(wndPtr, 0);
}
return temp;
case PBM_SETPOS:
if (lParam)
UNKNOWN_PARAM(PBM_SETPOS, wParam, lParam);
temp = infoPtr->CurVal;
if(temp != wParam){
infoPtr->CurVal = (UINT16)wParam;
PROGRESS_CoercePos(wndPtr);
PROGRESS_Paint(wndPtr, 0);
}
return temp;
case PBM_SETRANGE:
if (wParam)
UNKNOWN_PARAM(PBM_SETRANGE, wParam, lParam);
temp = MAKELONG(infoPtr->MinVal, infoPtr->MaxVal);
if(temp != lParam){
infoPtr->MinVal = LOWORD(lParam);
infoPtr->MaxVal = HIWORD(lParam);
if(infoPtr->MaxVal <= infoPtr->MinVal)
infoPtr->MaxVal = infoPtr->MinVal+1;
PROGRESS_CoercePos(wndPtr);
PROGRESS_Paint(wndPtr, 0);
}
return temp;
case PBM_SETSTEP:
if (lParam)
UNKNOWN_PARAM(PBM_SETSTEP, wParam, lParam);
temp = infoPtr->Step;
infoPtr->Step = (UINT16)wParam;
return temp;
case PBM_STEPIT:
if (wParam || lParam)
UNKNOWN_PARAM(PBM_STEPIT, wParam, lParam);
temp = infoPtr->CurVal;
infoPtr->CurVal += infoPtr->Step;
if(infoPtr->CurVal > infoPtr->MaxVal)
infoPtr->CurVal = infoPtr->MinVal;
if(temp != infoPtr->CurVal)
PROGRESS_Paint(wndPtr, 0);
return temp;
default:
if (message >= WM_USER)
fprintf( stderr, "Progress Ctrl: unknown msg %04x wp=%04x lp=%08lx\n",
message, wParam, lParam );
return DefWindowProc32A( hwnd, message, wParam, lParam );
}
return 0;
}
...@@ -41,34 +41,29 @@ static STATUSWINDOWINFO *GetStatusInfo(HWND32 hwnd) ...@@ -41,34 +41,29 @@ static STATUSWINDOWINFO *GetStatusInfo(HWND32 hwnd)
void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text, void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text,
UINT32 style ) UINT32 style )
{ {
RECT32 r, rt; RECT32 r, rt;
int oldbkmode; int oldbkmode;
UINT32 border;
r = *lprc; r = *lprc;
if (style == 0 || if(style == SBT_OWNERDRAW){
style == SBT_POPOUT) { /* FIXME for SBT_OWNERDRAW, SBT_RTLREADING */
InflateRect32(&r, -1, -1);
SelectObject32(hdc, sysColorObjects.hbrushScrollbar);
Rectangle32(hdc, r.left, r.top, r.right, r.bottom);
/* draw border */
SelectObject32(hdc, sysColorObjects.hpenWindowFrame);
if (style == 0)
DrawEdge32(hdc, &r, EDGE_SUNKEN, BF_RECT);
else
DrawEdge32(hdc, &r, EDGE_RAISED, BF_RECT);
}
else if (style == SBT_NOBORDERS) {
SelectObject32(hdc, sysColorObjects.hbrushScrollbar);
Rectangle32(hdc, r.left, r.top, r.right, r.bottom);
}
else { /* fixme for SBT_OWNERDRAW, SBT_RTLREADING */
} }
else{
DrawEdge32(hdc, &r, BDR_RAISEDINNER, BF_RECT|BF_ADJUST|BF_FLAT);
/* now draw text */ if(style==SBT_POPOUT)
if ((style != SBT_OWNERDRAW) && text) { border = BDR_RAISEDOUTER;
else if(style==SBT_NOBORDERS)
border = 0;
else
border = BDR_SUNKENOUTER;
DrawEdge32(hdc, &r, border, BF_RECT | BF_ADJUST | BF_MIDDLE);
/* now draw text */
if (text) {
SelectObject32(hdc, sysColorObjects.hpenWindowText); SelectObject32(hdc, sysColorObjects.hpenWindowText);
oldbkmode = SetBkMode32(hdc, TRANSPARENT); oldbkmode = SetBkMode32(hdc, TRANSPARENT);
rt = r; rt = r;
...@@ -77,8 +72,10 @@ void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text, ...@@ -77,8 +72,10 @@ void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text,
&rt, DT_LEFT | DT_VCENTER | DT_SINGLELINE); &rt, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
if (oldbkmode != TRANSPARENT) if (oldbkmode != TRANSPARENT)
SetBkMode32(hdc, oldbkmode); SetBkMode32(hdc, oldbkmode);
}
} }
} }
static BOOL32 SW_Refresh( HWND32 hwnd, HDC32 hdc, STATUSWINDOWINFO *self ) static BOOL32 SW_Refresh( HWND32 hwnd, HDC32 hdc, STATUSWINDOWINFO *self )
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
* arrow keys * arrow keys
* - I am not sure about the default values for the Min, Max, Pos * - I am not sure about the default values for the Min, Max, Pos
* (in the UPDOWN_INFO the fields: MinVal, MaxVal, CurVal) * (in the UPDOWN_INFO the fields: MinVal, MaxVal, CurVal)
* - I think I do not handle correctly the WS_BORDER style.
* Testing: * Testing:
* Not much. The following have not been tested at all: * Not much. The following have not been tested at all:
* - horizontal arrows * - horizontal arrows
...@@ -20,10 +21,7 @@ ...@@ -20,10 +21,7 @@
* behave very well so I am confident it does work in most (all) of the * behave very well so I am confident it does work in most (all) of the
* untested cases. * untested cases.
* Problems: * Problems:
* At the moment, the control will no draw itself very well because it * I do not like the arrows yet, I'll work more on them later on.
* uses some features in DrawEdge that are not yet implemented.
* In other words, there is no known problem, exempt for the things in
* the TODO list above.
*/ */
#include <stdlib.h> #include <stdlib.h>
...@@ -47,10 +45,10 @@ ...@@ -47,10 +45,10 @@
#define INITIAL_DELAY 500 /* initial timer until auto-increment kicks in */ #define INITIAL_DELAY 500 /* initial timer until auto-increment kicks in */
#define REPEAT_DELAY 50 /* delay between auto-increments */ #define REPEAT_DELAY 50 /* delay between auto-increments */
#define DEFAULT_WIDTH 10 /* default width of the ctrl */ #define DEFAULT_WIDTH 14 /* default width of the ctrl */
#define DEFAULT_XSEP 0 /* default separation between buddy and crtl */ #define DEFAULT_XSEP 0 /* default separation between buddy and crtl */
#define DEFAULT_ADDTOP 1 /* amount to extend above the buddy window */ #define DEFAULT_ADDTOP 0 /* amount to extend above the buddy window */
#define DEFAULT_ADDBOT 1 /* amount to extend below the buddy window */ #define DEFAULT_ADDBOT 0 /* amount to extend below the buddy window */
/* Work constants */ /* Work constants */
...@@ -65,9 +63,6 @@ ...@@ -65,9 +63,6 @@
static int accelIndex = -1; static int accelIndex = -1;
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define UNKNOWN_PARAM(msg, wParam, lParam) dprintf_updown(stddeb, \ #define UNKNOWN_PARAM(msg, wParam, lParam) dprintf_updown(stddeb, \
"UpDown Ctrl: Unknown parameter(s) for message " #msg \ "UpDown Ctrl: Unknown parameter(s) for message " #msg \
"(%04x): wp=%04x lp=%08lx\n", msg, wParam, lParam); "(%04x): wp=%04x lp=%08lx\n", msg, wParam, lParam);
...@@ -129,7 +124,7 @@ static void UPDOWN_GetArrowRect(WND *wndPtr, RECT32 *rect, BOOL32 incr) ...@@ -129,7 +124,7 @@ static void UPDOWN_GetArrowRect(WND *wndPtr, RECT32 *rect, BOOL32 incr)
if (wndPtr->dwStyle & UDS_HORZ) { if (wndPtr->dwStyle & UDS_HORZ) {
len = rect->right - rect->left; /* compute the width */ len = rect->right - rect->left; /* compute the width */
if (incr) if (incr)
rect->left = len/2; rect->left = len/2+1;
else else
rect->right = len/2; rect->right = len/2;
} }
...@@ -138,7 +133,7 @@ static void UPDOWN_GetArrowRect(WND *wndPtr, RECT32 *rect, BOOL32 incr) ...@@ -138,7 +133,7 @@ static void UPDOWN_GetArrowRect(WND *wndPtr, RECT32 *rect, BOOL32 incr)
if (incr) if (incr)
rect->bottom = len/2; rect->bottom = len/2;
else else
rect->top = len/2; rect->top = len/2+1;
} }
} }
...@@ -290,48 +285,57 @@ static BOOL32 UPDOWN_SetBuddyInt(WND *wndPtr) ...@@ -290,48 +285,57 @@ static BOOL32 UPDOWN_SetBuddyInt(WND *wndPtr)
static void UPDOWN_DrawArrow(HDC32 hdc, RECT32 *rect, BOOL32 incr, static void UPDOWN_DrawArrow(HDC32 hdc, RECT32 *rect, BOOL32 incr,
BOOL32 pressed, BOOL32 horz) BOOL32 pressed, BOOL32 horz)
{ {
const int w = rect->right - rect->left; const int rw = rect->right - rect->left;
const int h = rect->bottom - rect->top; const int rh = rect->bottom - rect->top;
int offset = pressed ? 1 : 0, tmp; int offset = pressed ? 1 : 0;
POINT32 pts[3]; int th, x, y, len;
/* compute max extents of the triangle */
if(horz){ /* horizontal arrows */ if(horz){ /* horizontal arrows */
pts[0].x = rect->right - max(2, w/3) + offset; th = (3*rh)/5-2*4;
pts[0].y = rect->top + max(2, h/4) + offset; if(th > rw/2)
pts[1].x = pts[0].x; th = rw/2;
pts[1].y = rect->bottom - max(2, h/4) + offset; if(th < 2)
pts[2].x = rect->left + w/3 + offset; th = 2;
pts[2].y = (pts[0].y + pts[1].y)/2;
if(pts[2].x-2<rect->left) /* compute the position of the tip */
pts[2].x = rect->left + 2; y = (rect->top+rect->bottom+1)/2 + offset;
if(pts[2].x <= pts[0].x) if(incr)
pts[2].x = pts[0].x - 1; x = (rect->left+rect->right+1)/2 + (2*th)/3 + offset;
else
if(incr){ x = (rect->left+rect->right)/2 + th/3 + offset;
tmp = pts[2].x;
pts[2].x = pts[0].x; for(len=1; th>0; th--, len+=2){
pts[0].x = pts[1].x = tmp; MoveToEx32(hdc, x, y, 0);
} LineTo32(hdc, x, y+len);
if(incr) x--;
else x++;
y++;
}
} }
else{ /* vertical arrows */ else{ /* vertical arrows */
pts[0].x = rect->left + max(2, w/4) + offset; th = (3*rw)/5-2*4;
pts[0].y = rect->top + max(2, h/3) + offset; if(th > rh/2)
pts[1].x = rect->right- max(2, w/4) + offset; th = rh/2;
pts[1].y = pts[0].y; if(th < 2)
pts[2].x = (pts[0].x + pts[1].x)/2; th = 2;
pts[2].y = pts[0].y + h/3 + offset;
if(pts[2].y+2>rect->bottom) /* compute the position of the tip */
pts[2].y = rect->bottom - 2; x = (rect->left+rect->right+1)/2 + offset;
if(pts[2].y <= pts[0].y) if(incr)
pts[2].y = pts[0].y + 1; y = (rect->top+rect->bottom+1)/2 - th/3 + offset;
else
if(incr){ y = (rect->top+rect->bottom)/2 + (2*th)/3 + offset;
tmp = pts[2].y;
pts[2].y = pts[0].y; for(len=1; th>0; th--, len+=2){
pts[0].y = pts[1].y = tmp; MoveToEx32(hdc, x, y, 0);
LineTo32(hdc, x+len, y);
if(incr) y++;
else y--;
x--;
} }
} }
Polygon32(hdc, pts, 3);
} }
...@@ -350,14 +354,6 @@ static void UPDOWN_Paint(WND *wndPtr) ...@@ -350,14 +354,6 @@ static void UPDOWN_Paint(WND *wndPtr)
hdc = BeginPaint32( wndPtr->hwndSelf, &ps ); hdc = BeginPaint32( wndPtr->hwndSelf, &ps );
/*FIXME - this is just for test */
/* - when DrawEdge works properly, this should dissapear
as DrawEdge will erase the background */
/*oldBrush = SelectObject32(hdc, GetStockObject32(GRAY_BRUSH));
GetClientRect32(wndPtr->hwndSelf, &rect);
Rectangle32(hdc, rect.left, rect.top, rect.right, rect.bottom);
SelectObject32(hdc, oldBrush);*/
/* First select the proper brush */ /* First select the proper brush */
oldBrush = wndPtr->dwStyle & WS_DISABLED ? GRAY_BRUSH : BLACK_BRUSH; oldBrush = wndPtr->dwStyle & WS_DISABLED ? GRAY_BRUSH : BLACK_BRUSH;
oldBrush = SelectObject32(hdc, GetStockObject32(oldBrush)); oldBrush = SelectObject32(hdc, GetStockObject32(oldBrush));
...@@ -365,9 +361,12 @@ static void UPDOWN_Paint(WND *wndPtr) ...@@ -365,9 +361,12 @@ static void UPDOWN_Paint(WND *wndPtr)
/* Draw the incr button */ /* Draw the incr button */
UPDOWN_GetArrowRect(wndPtr, &rect, TRUE); UPDOWN_GetArrowRect(wndPtr, &rect, TRUE);
prssed = (infoPtr->Flags & FLAG_INCR) && (infoPtr->Flags & FLAG_MOUSEIN); prssed = (infoPtr->Flags & FLAG_INCR) && (infoPtr->Flags & FLAG_MOUSEIN);
DrawEdge32(hdc, &rect, prssed ? EDGE_SUNKEN : EDGE_RAISED, DrawEdge32(hdc, &rect, prssed?EDGE_SUNKEN:EDGE_RAISED, BF_RECT|BF_MIDDLE);
BF_RECT | BF_SOFT | BF_MIDDLE);
UPDOWN_DrawArrow(hdc, &rect, TRUE, prssed, wndPtr->dwStyle & UDS_HORZ); UPDOWN_DrawArrow(hdc, &rect, TRUE, prssed, wndPtr->dwStyle & UDS_HORZ);
/* Draw the space between the buttons */
rect.top = rect.bottom; rect.bottom++;
DrawEdge32(hdc, &rect, 0, BF_MIDDLE);
/* Draw the decr button */ /* Draw the decr button */
UPDOWN_GetArrowRect(wndPtr, &rect, FALSE); UPDOWN_GetArrowRect(wndPtr, &rect, FALSE);
...@@ -634,7 +633,7 @@ static void UPDOWN_HandleMouseEvent(WND *wndPtr, UINT32 msg, POINT32 pt) ...@@ -634,7 +633,7 @@ static void UPDOWN_HandleMouseEvent(WND *wndPtr, UINT32 msg, POINT32 pt)
* UpDownWndProc * UpDownWndProc
*/ */
LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam, LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
LPARAM lParam) LPARAM lParam)
{ {
WND *wndPtr = WIN_FindWndPtr(hwnd); WND *wndPtr = WIN_FindWndPtr(hwnd);
UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr);
...@@ -643,6 +642,9 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam, ...@@ -643,6 +642,9 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
switch(message) switch(message)
{ {
case WM_CREATE: case WM_CREATE:
/* get rid of border, if any */
wndPtr->dwStyle &= ~WS_BORDER;
/* initialize the info struct */ /* initialize the info struct */
infoPtr->AccelCount=0; infoPtr->AccelVect=0; infoPtr->AccelCount=0; infoPtr->AccelVect=0;
infoPtr->CurVal=0; infoPtr->MinVal=0; infoPtr->MaxVal=100; /*FIXME*/ infoPtr->CurVal=0; infoPtr->MinVal=0; infoPtr->MaxVal=100; /*FIXME*/
...@@ -745,7 +747,7 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam, ...@@ -745,7 +747,7 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
UNKNOWN_PARAM(UDM_GETACCEL, wParam, lParam); UNKNOWN_PARAM(UDM_GETACCEL, wParam, lParam);
return 0; return 0;
} }
temp = min(infoPtr->AccelCount, wParam); temp = MIN(infoPtr->AccelCount, wParam);
memcpy((void *)lParam, infoPtr->AccelVect, temp*sizeof(UDACCEL)); memcpy((void *)lParam, infoPtr->AccelVect, temp*sizeof(UDACCEL));
return temp; return temp;
......
...@@ -9,8 +9,10 @@ ...@@ -9,8 +9,10 @@
#include "win.h" #include "win.h"
#include "commctrl.h" #include "commctrl.h"
#include "button.h" #include "button.h"
#include "progress.h"
#include "static.h" #include "static.h"
#include "status.h" #include "status.h"
#include "updown.h"
#include "scroll.h" #include "scroll.h"
#include "updown.h" #include "updown.h"
#include "desktop.h" #include "desktop.h"
...@@ -104,7 +106,9 @@ static WNDCLASS32A WIDGETS_CommonControls32[] = ...@@ -104,7 +106,9 @@ static WNDCLASS32A WIDGETS_CommonControls32[] =
{ CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW, StatusWindowProc, 0, { CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW, StatusWindowProc, 0,
sizeof(STATUSWINDOWINFO), 0, 0, 0, 0, 0, STATUSCLASSNAME32A }, sizeof(STATUSWINDOWINFO), 0, 0, 0, 0, 0, STATUSCLASSNAME32A },
{ CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW, UpDownWindowProc, 0, { CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW, UpDownWindowProc, 0,
sizeof(UPDOWN_INFO), 0, 0, 0, 0, 0, UPDOWN_CLASS32A } sizeof(UPDOWN_INFO), 0, 0, 0, 0, 0, UPDOWN_CLASS32A },
{ CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW, ProgressWindowProc, 0,
sizeof(PROGRESS_INFO), 0, 0, 0, 0, 0, PROGRESS_CLASS32A }
}; };
#define NB_COMMON_CONTROLS32 \ #define NB_COMMON_CONTROLS32 \
...@@ -155,6 +159,8 @@ BOOL32 WIDGETS_Init(void) ...@@ -155,6 +159,8 @@ BOOL32 WIDGETS_Init(void)
if (!(bicAtomTable[i] = RegisterClass32A( class32 ))) return FALSE; if (!(bicAtomTable[i] = RegisterClass32A( class32 ))) return FALSE;
} }
/* FIXME: hack to enable using built-in controls with Windows COMCTL32 */
InitCommonControls();
SEGPTR_FREE(name); SEGPTR_FREE(name);
return TRUE; return TRUE;
} }
...@@ -167,15 +173,18 @@ void WINAPI InitCommonControls(void) ...@@ -167,15 +173,18 @@ void WINAPI InitCommonControls(void)
{ {
int i; int i;
char name[30]; char name[30];
const char *old_name;
WNDCLASS32A *class32 = WIDGETS_CommonControls32; WNDCLASS32A *class32 = WIDGETS_CommonControls32;
for (i = 0; i < NB_COMMON_CONTROLS32; i++, class32++) for (i = 0; i < NB_COMMON_CONTROLS32; i++, class32++)
{ {
/* Just to make sure the string is > 0x10000 */ /* Just to make sure the string is > 0x10000 */
old_name = class32->lpszClassName;
strcpy( name, (char *)class32->lpszClassName ); strcpy( name, (char *)class32->lpszClassName );
class32->lpszClassName = name; class32->lpszClassName = name;
class32->hCursor = LoadCursor16( 0, IDC_ARROW ); class32->hCursor = LoadCursor16( 0, IDC_ARROW );
RegisterClass32A( class32 ); RegisterClass32A( class32 );
class32->lpszClassName = old_name;
} }
} }
......
...@@ -553,7 +553,7 @@ static void DEBUG_Main( int signal ) ...@@ -553,7 +553,7 @@ static void DEBUG_Main( int signal )
*/ */
void DebugBreak32( CONTEXT *regs ) void DebugBreak32( CONTEXT *regs )
{ {
const char *module = MODULE_GetModuleName( GetExePtr(GetCurrentTask()) ); const char *module = MODULE_GetModuleName( GetCurrentTask() );
fprintf( stderr, "%s called DebugBreak\n", module ? module : "???" ); fprintf( stderr, "%s called DebugBreak\n", module ? module : "???" );
DEBUG_context = *regs; DEBUG_context = *regs;
DEBUG_Main( SIGTRAP ); DEBUG_Main( SIGTRAP );
...@@ -564,7 +564,7 @@ void DebugBreak32( CONTEXT *regs ) ...@@ -564,7 +564,7 @@ void DebugBreak32( CONTEXT *regs )
*/ */
void DebugBreak16( CONTEXT *regs ) void DebugBreak16( CONTEXT *regs )
{ {
const char *module = MODULE_GetModuleName( GetExePtr(GetCurrentTask()) ); const char *module = MODULE_GetModuleName( GetCurrentTask() );
fprintf( stderr, "%s called DebugBreak\n", module ? module : "???" ); fprintf( stderr, "%s called DebugBreak\n", module ? module : "???" );
DEBUG_context = *regs; DEBUG_context = *regs;
DEBUG_Main( SIGTRAP ); DEBUG_Main( SIGTRAP );
......
...@@ -886,8 +886,7 @@ DEBUG_InitCVDataTypes() ...@@ -886,8 +886,7 @@ DEBUG_InitCVDataTypes()
* We don't fully process it here for performance reasons. * We don't fully process it here for performance reasons.
*/ */
int int
DEBUG_RegisterDebugInfo(int fd, struct pe_data * pe, DEBUG_RegisterDebugInfo(struct pe_data * pe,int load_addr, u_long v_addr, u_long size)
int load_addr, u_long v_addr, u_long size)
{ {
int has_codeview = FALSE; int has_codeview = FALSE;
int rtn = FALSE; int rtn = FALSE;
...@@ -957,10 +956,7 @@ DEBUG_RegisterDebugInfo(int fd, struct pe_data * pe, ...@@ -957,10 +956,7 @@ DEBUG_RegisterDebugInfo(int fd, struct pe_data * pe,
* to proceed if we know what we need to do next. * to proceed if we know what we need to do next.
*/ */
deefer->dbg_size = dbgptr->SizeOfData; deefer->dbg_size = dbgptr->SizeOfData;
deefer->dbg_info = (char *) xmalloc(dbgptr->SizeOfData); deefer->dbg_info = pe->mappeddll+dbgptr->PointerToRawData;
lseek(fd, dbgptr->PointerToRawData, SEEK_SET);
read(fd, deefer->dbg_info, deefer->dbg_size);
deefer->load_addr = (char *) load_addr; deefer->load_addr = (char *) load_addr;
deefer->dbgdir = dbgptr; deefer->dbgdir = dbgptr;
deefer->next = dbglist; deefer->next = dbglist;
......
...@@ -128,7 +128,7 @@ int DEBUG_GetRegister( enum debug_regs reg ) ...@@ -128,7 +128,7 @@ int DEBUG_GetRegister( enum debug_regs reg )
* *
* Set the register values from a sigcontext. * Set the register values from a sigcontext.
*/ */
extern void DEBUG_SetSigContext( const SIGCONTEXT *sigcontext ) void DEBUG_SetSigContext( const SIGCONTEXT *sigcontext )
{ {
EAX_reg(&DEBUG_context) = EAX_sig(sigcontext); EAX_reg(&DEBUG_context) = EAX_sig(sigcontext);
EBX_reg(&DEBUG_context) = EBX_sig(sigcontext); EBX_reg(&DEBUG_context) = EBX_sig(sigcontext);
...@@ -164,7 +164,7 @@ extern void DEBUG_SetSigContext( const SIGCONTEXT *sigcontext ) ...@@ -164,7 +164,7 @@ extern void DEBUG_SetSigContext( const SIGCONTEXT *sigcontext )
* *
* Build a sigcontext from the register values. * Build a sigcontext from the register values.
*/ */
extern void DEBUG_GetSigContext( SIGCONTEXT *sigcontext ) void DEBUG_GetSigContext( SIGCONTEXT *sigcontext )
{ {
EAX_sig(sigcontext) = EAX_reg(&DEBUG_context); EAX_sig(sigcontext) = EAX_reg(&DEBUG_context);
EBX_sig(sigcontext) = EBX_reg(&DEBUG_context); EBX_sig(sigcontext) = EBX_reg(&DEBUG_context);
......
...@@ -1085,6 +1085,25 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset) ...@@ -1085,6 +1085,25 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
status = stat(filename, &statbuf); status = stat(filename, &statbuf);
if( status == -1 ) if( status == -1 )
{ {
char *s,*t,*fn,*paths;
if (strchr(filename,'/'))
goto leave;
paths = xstrdup(getenv("PATH"));
s = paths;
while (s && *s) {
t = strchr(s,':');
if (t) *t='\0';
fn = (char*)xmalloc(strlen(filename)+1+strlen(s)+1);
strcpy(fn,s);
strcat(fn,"/");
strcat(fn,filename);
if ((rtn = DEBUG_ProcessElfObject(fn,load_offset))) {
free(paths);
goto leave;
}
s = t+1;
}
free(paths);
goto leave; goto leave;
} }
......
...@@ -501,7 +501,7 @@ static INT32 PROFILE_GetString( LPCSTR section, LPCSTR key_name, ...@@ -501,7 +501,7 @@ static INT32 PROFILE_GetString( LPCSTR section, LPCSTR key_name,
PROFILEKEY *key = NULL; PROFILEKEY *key = NULL;
if (!def_val) def_val = ""; if (!def_val) def_val = "";
if (key_name) if (key_name && key_name[0])
{ {
key = PROFILE_Find( &CurProfile.section, section, key_name, FALSE ); key = PROFILE_Find( &CurProfile.section, section, key_name, FALSE );
PROFILE_CopyEntry( buffer, (key && key->value) ? key->value : def_val, PROFILE_CopyEntry( buffer, (key && key->value) ? key->value : def_val,
...@@ -839,6 +839,14 @@ INT32 WINAPI GetProfileString32W( LPCWSTR section, LPCWSTR entry, ...@@ -839,6 +839,14 @@ INT32 WINAPI GetProfileString32W( LPCWSTR section, LPCWSTR entry,
buffer, len, wininiW ); buffer, len, wininiW );
} }
/***********************************************************************
* GetProfileSection32A (KERNEL32.268)
*/
INT32 WINAPI GetProfileSection32A( LPCSTR section, LPSTR buffer, INT32 len )
{
return GetPrivateProfileSection32A( section, buffer, len, "win.ini" );
}
/*********************************************************************** /***********************************************************************
* WriteProfileString16 (KERNEL.59) * WriteProfileString16 (KERNEL.59)
...@@ -963,6 +971,16 @@ INT32 WINAPI GetPrivateProfileString32W( LPCWSTR section, LPCWSTR entry, ...@@ -963,6 +971,16 @@ INT32 WINAPI GetPrivateProfileString32W( LPCWSTR section, LPCWSTR entry,
return ret; return ret;
} }
/***********************************************************************
* GetPrivateProfileSection32A (KERNEL32.255)
*/
INT32 WINAPI GetPrivateProfileSection32A( LPCSTR section, LPSTR buffer,
INT32 len, LPCSTR filename )
{
if (PROFILE_Open( filename ))
return PROFILE_GetString( section, NULL, NULL, buffer, len );
return 0;
}
/*********************************************************************** /***********************************************************************
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
/* GDI 300 */ /* GDI 300 */
WORD WINAPI EngineEnumerateFont(LPSTR fontname, FARPROC16 proc, DWORD data ) WORD WINAPI EngineEnumerateFont(LPSTR fontname, FARPROC16 proc, DWORD data )
{ {
printf("In engineEnumerateFont for %s\n",(fontname)?fontname:"NULL"); fprintf(stderr,"EngineEnumerateFont(%s,%p,%d),stub\n",fontname,proc,data);
return 0; return 0;
} }
#ifdef NOTDEF #ifdef NOTDEF
...@@ -23,7 +23,7 @@ WORD WINAPI EngineDeleteFont(LPFONTINFO16 lpFontInfo) ...@@ -23,7 +23,7 @@ WORD WINAPI EngineDeleteFont(LPFONTINFO16 lpFontInfo)
/* GDI 302 */ /* GDI 302 */
WORD WINAPI EngineRealizeFont(LPLOGFONT16 lplogFont, LPTEXTXFORM16 lptextxform, LPFONTINFO16 lpfontInfo) WORD WINAPI EngineRealizeFont(LPLOGFONT16 lplogFont, LPTEXTXFORM16 lptextxform, LPFONTINFO16 lpfontInfo)
{ {
printf("In EngineRealizeFont\n"); fprintf(stderr,"EngineRealizeFont(%p,%p,%p),stub\n",lplogFont,lptextxform,lpfontInfo);
return 0; return 0;
} }
......
...@@ -25,6 +25,12 @@ ...@@ -25,6 +25,12 @@
#include "debug.h" #include "debug.h"
#include "xmalloc.h" #include "xmalloc.h"
BOOL32 DrawDiagEdge32(HDC32 hdc, RECT32 *rect, UINT32 edge, UINT32 flags);
BOOL32 DrawRectEdge32(HDC32 hdc, RECT32 *rect, UINT32 edge, UINT32 flags);
BOOL32 DrawFrameButton32(HDC32 hdc, LPRECT32 rc, UINT32 uState);
BOOL32 DrawFrameCaption32(HDC32 hdc, LPRECT32 rc, UINT32 uState);
BOOL32 DrawFrameMenu32(HDC32 hdc, LPRECT32 rc, UINT32 uState);
BOOL32 DrawFrameScroll32(HDC32 hdc, LPRECT32 rc, UINT32 uState);
/*********************************************************************** /***********************************************************************
* LineTo16 (GDI.19) * LineTo16 (GDI.19)
...@@ -659,127 +665,6 @@ BOOL32 WINAPI FloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color ) ...@@ -659,127 +665,6 @@ BOOL32 WINAPI FloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color )
/********************************************************************** /**********************************************************************
* DrawEdge16 (USER.659)
*/
BOOL16 WINAPI DrawEdge16( HDC16 hdc, LPRECT16 rc, UINT16 edge, UINT16 flags )
{
RECT32 rect32;
BOOL32 ret;
CONV_RECT16TO32( rc, &rect32 );
ret = DrawEdge32( hdc, &rect32, edge, flags );
CONV_RECT32TO16( &rect32, rc );
return ret;
}
/**********************************************************************
* DrawEdge32 (USER32.154)
*/
BOOL32 WINAPI DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags )
{
HBRUSH32 hbrushOld;
if (flags >= BF_DIAGONAL)
fprintf( stderr, "DrawEdge: unsupported flags %04x\n", flags );
dprintf_graphics( stddeb, "DrawEdge: %04x %d,%d-%d,%d %04x %04x\n",
hdc, rc->left, rc->top, rc->right, rc->bottom,
edge, flags );
/* First do all the raised edges */
hbrushOld = SelectObject32( hdc, sysColorObjects.hbrushBtnHighlight );
if (edge & BDR_RAISEDOUTER)
{
if (flags & BF_LEFT) PatBlt32( hdc, rc->left, rc->top,
1, rc->bottom - rc->top - 1, PATCOPY );
if (flags & BF_TOP) PatBlt32( hdc, rc->left, rc->top,
rc->right - rc->left - 1, 1, PATCOPY );
}
if (edge & BDR_SUNKENOUTER)
{
if (flags & BF_RIGHT) PatBlt32( hdc, rc->right - 1, rc->top,
1, rc->bottom - rc->top, PATCOPY );
if (flags & BF_BOTTOM) PatBlt32( hdc, rc->left, rc->bottom - 1,
rc->right - rc->left, 1, PATCOPY );
}
if (edge & BDR_RAISEDINNER)
{
if (flags & BF_LEFT) PatBlt32( hdc, rc->left + 1, rc->top + 1,
1, rc->bottom - rc->top - 2, PATCOPY );
if (flags & BF_TOP) PatBlt32( hdc, rc->left + 1, rc->top + 1,
rc->right - rc->left - 2, 1, PATCOPY );
}
if (edge & BDR_SUNKENINNER)
{
if (flags & BF_RIGHT) PatBlt32( hdc, rc->right - 2, rc->top + 1,
1, rc->bottom - rc->top - 2, PATCOPY );
if (flags & BF_BOTTOM) PatBlt32( hdc, rc->left + 1, rc->bottom - 2,
rc->right - rc->left - 2, 1, PATCOPY );
}
/* Then do all the sunken edges */
SelectObject32( hdc, sysColorObjects.hbrushBtnShadow );
if (edge & BDR_SUNKENOUTER)
{
if (flags & BF_LEFT) PatBlt32( hdc, rc->left, rc->top,
1, rc->bottom - rc->top - 1, PATCOPY );
if (flags & BF_TOP) PatBlt32( hdc, rc->left, rc->top,
rc->right - rc->left - 1, 1, PATCOPY );
}
if (edge & BDR_RAISEDOUTER)
{
if (flags & BF_RIGHT) PatBlt32( hdc, rc->right - 1, rc->top,
1, rc->bottom - rc->top, PATCOPY );
if (flags & BF_BOTTOM) PatBlt32( hdc, rc->left, rc->bottom - 1,
rc->right - rc->left, 1, PATCOPY );
}
if (edge & BDR_SUNKENINNER)
{
if (flags & BF_LEFT) PatBlt32( hdc, rc->left + 1, rc->top + 1,
1, rc->bottom - rc->top - 2, PATCOPY );
if (flags & BF_TOP) PatBlt32( hdc, rc->left + 1, rc->top + 1,
rc->right - rc->left - 2, 1, PATCOPY );
}
if (edge & BDR_RAISEDINNER)
{
if (flags & BF_RIGHT) PatBlt32( hdc, rc->right - 2, rc->top + 1,
1, rc->bottom - rc->top - 2, PATCOPY );
if (flags & BF_BOTTOM) PatBlt32( hdc, rc->left + 1, rc->bottom - 2,
rc->right - rc->left - 2, 1, PATCOPY );
}
SelectObject32( hdc, hbrushOld );
return TRUE;
}
/**********************************************************************
* DrawFrameControl16 (USER.656)
*/
BOOL16 WINAPI DrawFrameControl16( HDC16 hdc, LPRECT16 rc, UINT16 uType,
UINT16 uState )
{
fprintf( stdnimp,"DrawFrameControl16(%x,%p,%d,%x), empty stub!\n",
hdc,rc,uType,uState );
return TRUE;
}
/**********************************************************************
* DrawFrameControl32 (USER32.157)
*/
BOOL32 WINAPI DrawFrameControl32( HDC32 hdc, LPRECT32 rc, UINT32 uType,
UINT32 uState )
{
fprintf( stdnimp,"DrawFrameControl32(%x,%p,%d,%x), empty stub!\n",
hdc,rc,uType,uState );
return TRUE;
}
/**********************************************************************
* DrawFrameControl32 (USER32.152) * DrawFrameControl32 (USER32.152)
*/ */
BOOL32 WINAPI DrawAnimatedRects32( HWND32 hwnd, int idAni, BOOL32 WINAPI DrawAnimatedRects32( HWND32 hwnd, int idAni,
...@@ -795,7 +680,7 @@ BOOL32 WINAPI DrawState32A( ...@@ -795,7 +680,7 @@ BOOL32 WINAPI DrawState32A(
HDC32 hdc,HBRUSH32 hbrush,DRAWSTATEPROC drawstateproc, HDC32 hdc,HBRUSH32 hbrush,DRAWSTATEPROC drawstateproc,
LPARAM lparam,WPARAM32 wparam,INT32 x,INT32 y,INT32 z,INT32 a,UINT32 b LPARAM lparam,WPARAM32 wparam,INT32 x,INT32 y,INT32 z,INT32 a,UINT32 b
) { ) {
fprintf(stderr,"DrawStateA(%x,%x,%p,0x%08lx,0x%08lx,%d,%d,%d,%d,%d),stub\n", fprintf(stderr,"DrawStateA(%x,%x,%p,0x%08lx,0x%08x,%d,%d,%d,%d,%d),stub\n",
hdc,hbrush,drawstateproc,lparam,wparam,x,y,z,a,b hdc,hbrush,drawstateproc,lparam,wparam,x,y,z,a,b
); );
return TRUE; return TRUE;
......
...@@ -82,7 +82,7 @@ static LOADED_PRINTER_DRIVER *FindPrinterDriverFromName(const char *pszDriver) ...@@ -82,7 +82,7 @@ static LOADED_PRINTER_DRIVER *FindPrinterDriverFromName(const char *pszDriver)
pLPD = ptmpLPD; pLPD = ptmpLPD;
} }
} }
if (pLPD == NULL) printf("Couldn't find driver %s\n", pszDriver); if (pLPD == NULL) fprintf(stderr,"Couldn't find driver %s\n", pszDriver);
return pLPD; return pLPD;
} }
...@@ -132,7 +132,7 @@ LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver) ...@@ -132,7 +132,7 @@ LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver)
} }
if (!bSlotFound) if (!bSlotFound)
{ {
printf("Too many printers drivers loaded\n"); fprintf(stderr,"Too many printers drivers loaded\n");
return NULL; return NULL;
} }
...@@ -381,7 +381,7 @@ WORD PRTDRV_EnumDFonts(LPPDEVICE lpDestDev, LPSTR lpFaceName, ...@@ -381,7 +381,7 @@ WORD PRTDRV_EnumDFonts(LPPDEVICE lpDestDev, LPSTR lpFaceName,
lP1, lP2, lP3, lP4); lP1, lP2, lP3, lP4);
} }
else else
printf("Failed to find device\n"); fprintf(stderr,"Failed to find device\n");
dprintf_win16drv(stddeb, "PRTDRV_EnumDFonts: return %x\n", wRet); dprintf_win16drv(stddeb, "PRTDRV_EnumDFonts: return %x\n", wRet);
return wRet; return wRet;
...@@ -423,7 +423,7 @@ BOOL16 PRTDRV_EnumObj(LPPDEVICE lpDestDev, WORD iStyle, ...@@ -423,7 +423,7 @@ BOOL16 PRTDRV_EnumObj(LPPDEVICE lpDestDev, WORD iStyle,
lP1, wP2, lP3, lP4); lP1, wP2, lP3, lP4);
} }
else else
printf("Failed to find device\n"); fprintf(stderr,"Failed to find device\n");
dprintf_win16drv(stddeb, "PRTDRV_EnumDFonts: return %x\n", wRet); dprintf_win16drv(stddeb, "PRTDRV_EnumDFonts: return %x\n", wRet);
return wRet; return wRet;
...@@ -465,7 +465,7 @@ DWORD PRTDRV_RealizeObject(LPPDEVICE lpDestDev, WORD wStyle, ...@@ -465,7 +465,7 @@ DWORD PRTDRV_RealizeObject(LPPDEVICE lpDestDev, WORD wStyle,
nSize = sizeof(LOGFONT16); nSize = sizeof(LOGFONT16);
break; break;
default: default:
printf("PRTDRV_RealizeObject: Object type %d not supported\n", wStyle); fprintf(stderr,"PRTDRV_RealizeObject: Object type %d not supported\n", wStyle);
nSize = 0; nSize = 0;
} }
......
...@@ -2033,15 +2033,15 @@ LPIFONTINFO16 XFONT_GetFontInfo( X_PHYSFONT pFont ) ...@@ -2033,15 +2033,15 @@ LPIFONTINFO16 XFONT_GetFontInfo( X_PHYSFONT pFont )
HFONT32 X11DRV_FONT_SelectObject( DC* dc, HFONT32 hfont, FONTOBJ* font ) HFONT32 X11DRV_FONT_SelectObject( DC* dc, HFONT32 hfont, FONTOBJ* font )
{ {
HFONT32 hPrevFont = 0; HFONT32 hPrevFont = 0;
LOGFONT16 lf; LOGFONT16 lf;
if( CHECK_PFONT(dc->u.x.font) ) if( CHECK_PFONT(dc->u.x.font) )
XFONT_ReleaseCacheEntry( __PFONT(dc->u.x.font) ); XFONT_ReleaseCacheEntry( __PFONT(dc->u.x.font) );
/* FIXME: do we need to pass anything back from here? */ /* FIXME: do we need to pass anything back from here? */
memcpy(&lf,&font->logfont,sizeof(lf)); memcpy(&lf,&font->logfont,sizeof(lf));
lf.lfWidth = font->logfont.lfWidth * dc->vportExtX/dc->wndExtX; lf.lfWidth = font->logfont.lfWidth * dc->vportExtX/dc->wndExtX;
lf.lfHeight = font->logfont.lfHeight* dc->vportExtY/dc->wndExtY; lf.lfHeight = font->logfont.lfHeight* dc->vportExtY/dc->wndExtY;
dc->u.x.font = XFONT_RealizeFont( &lf ); dc->u.x.font = XFONT_RealizeFont( &lf );
hPrevFont = dc->w.hFont; hPrevFont = dc->w.hFont;
......
name advapi32 name advapi32
type win32 type win32
base 0
0000 stub AbortSystemShutdownA 0000 stub AbortSystemShutdownA
0001 stub AbortSystemShutdownW 0001 stub AbortSystemShutdownW
......
...@@ -33,6 +33,7 @@ typedef struct ...@@ -33,6 +33,7 @@ typedef struct
int size; /* Number of functions */ int size; /* Number of functions */
const void *code_start; /* Start of DLL code */ const void *code_start; /* Start of DLL code */
const void **functions; /* Pointer to functions table */ const void **functions; /* Pointer to functions table */
const void **nodbg_functions; /* Pointer to funcs without debug */
const char * const *names; /* Pointer to names table */ const char * const *names; /* Pointer to names table */
} WIN32_DESCRIPTOR; } WIN32_DESCRIPTOR;
...@@ -395,8 +396,8 @@ LPCSTR BUILTIN_GetEntryPoint32( void *relay ) ...@@ -395,8 +396,8 @@ LPCSTR BUILTIN_GetEntryPoint32( void *relay )
relay = (BYTE *)relay - 11; /* The relay entry point is 11 bytes long */ relay = (BYTE *)relay - 11; /* The relay entry point is 11 bytes long */
funcs = dll->descr->u.win32.functions; funcs = dll->descr->u.win32.functions;
for (i = 0; i < dll->descr->u.win32.size;i++) if (*funcs++ == relay) break; for (i = 0; i < dll->descr->u.win32.size;i++) if (*funcs++ == relay) break;
sprintf( buffer, "%s.%d: %s", sprintf( buffer, "%s.%d: %s", dll->descr->name,
dll->descr->name, i, dll->descr->u.win32.names[i] ); dll->descr->u.win32.base + i, dll->descr->u.win32.names[i] );
return buffer; return buffer;
} }
...@@ -411,6 +412,7 @@ FARPROC32 BUILTIN_GetProcAddress32( NE_MODULE *pModule, LPCSTR function ) ...@@ -411,6 +412,7 @@ FARPROC32 BUILTIN_GetProcAddress32( NE_MODULE *pModule, LPCSTR function )
{ {
BUILTIN_DLL *dll = (BUILTIN_DLL *)pModule->pe_module; BUILTIN_DLL *dll = (BUILTIN_DLL *)pModule->pe_module;
const WIN32_DESCRIPTOR *info = &dll->descr->u.win32; const WIN32_DESCRIPTOR *info = &dll->descr->u.win32;
WORD ordinal = 0;
if (!dll) return NULL; if (!dll) return NULL;
...@@ -422,17 +424,25 @@ FARPROC32 BUILTIN_GetProcAddress32( NE_MODULE *pModule, LPCSTR function ) ...@@ -422,17 +424,25 @@ FARPROC32 BUILTIN_GetProcAddress32( NE_MODULE *pModule, LPCSTR function )
function, dll->descr->name ); function, dll->descr->name );
for (i = 0; i < info->size; i++) for (i = 0; i < info->size; i++)
if (info->names[i] && !strcmp( function, info->names[i] )) if (info->names[i] && !strcmp( function, info->names[i] ))
return (FARPROC32)info->functions[i]; {
ordinal = info->base + i;
break;
}
if (i >= info->size) return NULL; /* not found */
} }
else /* Find function by ordinal */ else /* Find function by ordinal */
{ {
WORD ordinal = LOWORD(function); ordinal = LOWORD(function);
dprintf_module( stddeb, "Looking for ordinal %d in %s\n", dprintf_module( stddeb, "Looking for ordinal %d in %s\n",
ordinal, dll->descr->name ); ordinal, dll->descr->name );
if (ordinal && ordinal < info->size) if ((ordinal < info->base) || (ordinal >= info->base + info->size))
return (FARPROC32)info->functions[ordinal - info->base]; return NULL; /* not found */
} }
return NULL; #if testing
if (!debugging_relay)
return (FARPROC32)info->nodbg_functions[ordinal - info->base];
#endif
return (FARPROC32)info->functions[ordinal - info->base];
} }
......
name comctl32 name comctl32
type win32 type win32
base 2
# Functions exported by the Win95 comctl32.dll # Functions exported by the Win95 comctl32.dll
# (these need to have these exact ordinals, because some win95 dlls # (these need to have these exact ordinals, because some win95 dlls
# import comctl32.dll by ordinal) # import comctl32.dll by ordinal)
00 stub MenuHelp 2 stub MenuHelp
01 stub ShowHideMenuCtl 3 stub ShowHideMenuCtl
02 stub GetEffectiveClientRect 4 stub GetEffectiveClientRect
03 stdcall DrawStatusTextA(long ptr ptr long) DrawStatusText32A 5 stdcall DrawStatusTextA(long ptr ptr long) DrawStatusText32A
04 stdcall CreateStatusWindowA(long ptr long long) CreateStatusWindow32A 6 stdcall CreateStatusWindowA(long ptr long long) CreateStatusWindow32A
05 stub CreateToolbar 7 stub CreateToolbar
06 stub CreateMappedBitmap 8 stub CreateMappedBitmap
07 stub Cctl1632_ThunkData32 9 stub Cctl1632_ThunkData32
08 stub CreatePropertySheetPage 10 stub CreatePropertySheetPage
09 stub CreatePropertySheetPageA 11 stub CreatePropertySheetPageA
10 stub CreatePropertySheetPageW 12 stub CreatePropertySheetPageW
11 stub MakeDragList 13 stub MakeDragList
12 stub LBItemFromPt 14 stub LBItemFromPt
13 stub DrawInsert 15 stub DrawInsert
14 stdcall CreateUpDownControl(long long long long long long long long long long long long) CreateUpDownControl 16 stdcall CreateUpDownControl(long long long long long long long long long long long long) CreateUpDownControl
15 stdcall InitCommonControls() InitCommonControls 17 stdcall InitCommonControls() InitCommonControls
16 stub CreateStatusWindow 18 stub CreateStatusWindow
17 stub CreateStatusWindowW 19 stub CreateStatusWindowW
18 stub CreateToolbarEx 20 stub CreateToolbarEx
19 stub DestroyPropertySheetPage 21 stub DestroyPropertySheetPage
20 stub DllGetVersion 22 stub DllGetVersion
21 stub DrawStatusText 23 stub DrawStatusText
22 stub DrawStatusTextW 24 stub DrawStatusTextW
23 stub ImageList_Add 25 stub ImageList_Add
24 stub ImageList_AddIcon 26 stub ImageList_AddIcon
25 stub ImageList_AddMasked 27 stub ImageList_AddMasked
26 stub ImageList_BeginDrag 28 stub ImageList_BeginDrag
27 stub ImageList_Copy 29 stub ImageList_Copy
28 stub ImageList_Create 30 stub ImageList_Create
29 stub ImageList_Destroy 31 stub ImageList_Destroy
30 stub ImageList_DragEnter 32 stub ImageList_DragEnter
31 stub ImageList_DragLeave 33 stub ImageList_DragLeave
32 stub ImageList_DragMove 34 stub ImageList_DragMove
33 stub ImageList_DragShowNolock 35 stub ImageList_DragShowNolock
34 stub ImageList_Draw 36 stub ImageList_Draw
35 stub ImageList_DrawEx 37 stub ImageList_DrawEx
36 stub ImageList_EndDrag 38 stub ImageList_EndDrag
37 stub ImageList_GetBkColor 39 stub ImageList_GetBkColor
38 stub ImageList_GetDragImage 40 stub ImageList_GetDragImage
39 stub ImageList_GetIcon 41 stub ImageList_GetIcon
40 stub ImageList_GetIconSize 42 stub ImageList_GetIconSize
41 stub ImageList_GetImageCount 43 stub ImageList_GetImageCount
42 stub ImageList_GetImageInfo 44 stub ImageList_GetImageInfo
43 stub ImageList_GetImageRect 45 stub ImageList_GetImageRect
44 stub ImageList_LoadImage 46 stub ImageList_LoadImage
45 stub ImageList_LoadImageA 47 stub ImageList_LoadImageA
46 stub ImageList_LoadImageW 48 stub ImageList_LoadImageW
47 stub ImageList_Merge 49 stub ImageList_Merge
48 stub ImageList_Read 50 stub ImageList_Read
49 stub ImageList_Remove 51 stub ImageList_Remove
50 stub ImageList_Replace 52 stub ImageList_Replace
51 stub ImageList_ReplaceIcon 53 stub ImageList_ReplaceIcon
52 stub ImageList_SetBkColor 54 stub ImageList_SetBkColor
53 stub ImageList_SetDragCursorImage 55 stub ImageList_SetDragCursorImage
54 stub ImageList_SetFilter 56 stub ImageList_SetFilter
55 stub ImageList_SetIconSize 57 stub ImageList_SetIconSize
56 stub ImageList_SetImageCount 58 stub ImageList_SetImageCount
57 stub ImageList_SetOverlayImage 59 stub ImageList_SetOverlayImage
58 stub ImageList_Write 60 stub ImageList_Write
59 stub InitCommonControlsEx 61 stub InitCommonControlsEx
60 stub PropertySheet 62 stub PropertySheet
61 stub PropertySheetA 63 stub PropertySheetA
62 stub PropertySheetW 64 stub PropertySheetW
63 stub _TrackMouseEvent 65 stub _TrackMouseEvent
name comdlg32 name comdlg32
type win32 type win32
base 1
0000 stub ArrowBtnWndProc 0 stub ArrowBtnWndProc
0001 stub ChooseColorA 1 stub ChooseColorA
0002 stub ChooseColorW 2 stub ChooseColorW
0003 stub ChooseFontA 3 stub ChooseFontA
0004 stub ChooseFontW 4 stub ChooseFontW
0005 stdcall CommDlgExtendedError() CommDlgExtendedError 5 stdcall CommDlgExtendedError() CommDlgExtendedError
0006 stub FindTextA 6 stub FindTextA
0007 stub FindTextW 7 stub FindTextW
0008 stdcall GetFileTitleA(ptr ptr long) GetFileTitle32A 8 stdcall GetFileTitleA(ptr ptr long) GetFileTitle32A
0009 stdcall GetFileTitleW(ptr ptr long) GetFileTitle32W 9 stdcall GetFileTitleW(ptr ptr long) GetFileTitle32W
0010 stdcall GetOpenFileNameA(ptr) GetOpenFileName32A 10 stdcall GetOpenFileNameA(ptr) GetOpenFileName32A
0011 stdcall GetOpenFileNameW(ptr) GetOpenFileName32W 11 stdcall GetOpenFileNameW(ptr) GetOpenFileName32W
0012 stdcall GetSaveFileNameA(ptr) GetSaveFileName32A 12 stdcall GetSaveFileNameA(ptr) GetSaveFileName32A
0013 stdcall GetSaveFileNameW(ptr) GetSaveFileName32A 13 stdcall GetSaveFileNameW(ptr) GetSaveFileName32A
0014 stub LoadAlterBitmap 14 stub LoadAlterBitmap
0015 stub PageSetupDlgA 15 stub PageSetupDlgA
0016 stub PageSetupDlgW 16 stub PageSetupDlgW
0017 return PrintDlgA 4 0 17 return PrintDlgA 4 0
0018 return PrintDlgW 4 0 18 return PrintDlgW 4 0
0019 stub ReplaceTextA 19 stub ReplaceTextA
0020 stub ReplaceTextW 20 stub ReplaceTextW
0021 stub WantArrows 21 stub WantArrows
0022 stub dwLBSubclass 22 stub dwLBSubclass
0023 stub dwOKSubclass 23 stub dwOKSubclass
...@@ -18,9 +18,9 @@ type win16 ...@@ -18,9 +18,9 @@ type win16
15 pascal CoDisconnectObject(ptr long) CoDisconnectObject 15 pascal CoDisconnectObject(ptr long) CoDisconnectObject
16 stub CORELEASEMARSHALDATA 16 stub CORELEASEMARSHALDATA
17 stub COFREEUNUSEDLIBRARIES 17 stub COFREEUNUSEDLIBRARIES
18 stub ISEQUALGUID 18 pascal16 IsEqualGUID(ptr ptr) IsEqualGUID
19 pascal STRINGFROMCLSID(ptr ptr) StringFromCLSID 19 pascal StringFromCLSID(ptr ptr) StringFromCLSID
20 pascal CLSIDFROMSTRING(str ptr) CLSIDFromString 20 pascal CLSIDFromString(str ptr) CLSIDFromString
21 stub ISVALIDPTRIN 21 stub ISVALIDPTRIN
22 stub ISVALIDPTROUT 22 stub ISVALIDPTROUT
23 stub ISVALIDINTERFACE 23 stub ISVALIDINTERFACE
......
...@@ -38,7 +38,7 @@ file gdi.exe ...@@ -38,7 +38,7 @@ file gdi.exe
30 pascal16 SaveDC(word) SaveDC16 30 pascal16 SaveDC(word) SaveDC16
31 pascal SetPixel(word s_word s_word long) SetPixel16 31 pascal SetPixel(word s_word s_word long) SetPixel16
32 pascal16 OffsetClipRgn(word s_word s_word) OffsetClipRgn16 32 pascal16 OffsetClipRgn(word s_word s_word) OffsetClipRgn16
33 pascal16 TextOut(word s_word s_word ptr word) TextOut16 33 pascal16 TextOut(word s_word s_word str word) TextOut16
34 pascal16 BitBlt( word s_word s_word s_word s_word word s_word s_word long) 34 pascal16 BitBlt( word s_word s_word s_word s_word word s_word s_word long)
BitBlt16 BitBlt16
35 pascal16 StretchBlt(word s_word s_word s_word s_word word s_word s_word 35 pascal16 StretchBlt(word s_word s_word s_word s_word word s_word s_word
...@@ -236,7 +236,7 @@ file gdi.exe ...@@ -236,7 +236,7 @@ file gdi.exe
s_word s_word) Chord16 s_word s_word) Chord16
349 pascal SetMapperFlags(word long) SetMapperFlags16 349 pascal SetMapperFlags(word long) SetMapperFlags16
350 pascal16 GetCharWidth(word word word ptr) GetCharWidth16 350 pascal16 GetCharWidth(word word word ptr) GetCharWidth16
351 pascal16 ExtTextOut(word s_word s_word word ptr ptr word ptr) ExtTextOut16 351 pascal16 ExtTextOut(word s_word s_word word ptr str word ptr) ExtTextOut16
352 stub GetPhysicalFontHandle 352 stub GetPhysicalFontHandle
353 stub GetAspectRatioFilter 353 stub GetAspectRatioFilter
354 stub ShrinkGDIHeap 354 stub ShrinkGDIHeap
......
...@@ -39,7 +39,7 @@ file krnl386.exe ...@@ -39,7 +39,7 @@ file krnl386.exe
35 pascal16 GetTaskQueue(word) GetTaskQueue 35 pascal16 GetTaskQueue(word) GetTaskQueue
36 pascal GetCurrentTask() WIN16_GetCurrentTask 36 pascal GetCurrentTask() WIN16_GetCurrentTask
37 pascal GetCurrentPDB() GetCurrentPDB 37 pascal GetCurrentPDB() GetCurrentPDB
38 pascal SetTaskSignalProc(word segptr) SetTaskSignalProc 38 pascal SetTaskSignalProc(word segptr) THUNK_SetTaskSignalProc
41 return EnableDos 0 0 41 return EnableDos 0 0
42 return DisableDos 0 0 42 return DisableDos 0 0
45 pascal16 LoadModule(str ptr) LoadModule16 45 pascal16 LoadModule(str ptr) LoadModule16
...@@ -64,7 +64,7 @@ file krnl386.exe ...@@ -64,7 +64,7 @@ file krnl386.exe
64 pascal16 AccessResource(word word) AccessResource16 64 pascal16 AccessResource(word word) AccessResource16
65 pascal SizeofResource(word word) SizeofResource16 65 pascal SizeofResource(word word) SizeofResource16
66 pascal16 AllocResource(word word long) AllocResource16 66 pascal16 AllocResource(word word long) AllocResource16
67 pascal SetResourceHandler(word segstr ptr) SetResourceHandler 67 pascal SetResourceHandler(word segstr segptr) THUNK_SetResourceHandler
68 pascal16 InitAtomTable(word) InitAtomTable16 68 pascal16 InitAtomTable(word) InitAtomTable16
69 pascal16 FindAtom(segstr) FindAtom16 69 pascal16 FindAtom(segstr) FindAtom16
70 pascal16 AddAtom(segstr) AddAtom16 70 pascal16 AddAtom(segstr) AddAtom16
...@@ -89,12 +89,12 @@ file krnl386.exe ...@@ -89,12 +89,12 @@ file krnl386.exe
89 pascal lstrcat(segstr str) lstrcat16 89 pascal lstrcat(segstr str) lstrcat16
90 pascal16 lstrlen(str) lstrlen16 90 pascal16 lstrlen(str) lstrlen16
91 register InitTask() InitTask 91 register InitTask() InitTask
92 pascal GetTempDrive(byte) WIN16_GetTempDrive 92 pascal GetTempDrive(word) WIN16_GetTempDrive
93 pascal16 GetCodeHandle(segptr) GetCodeHandle 93 pascal16 GetCodeHandle(segptr) GetCodeHandle
94 stub DefineHandleTable 94 stub DefineHandleTable
95 pascal16 LoadLibrary(str) LoadLibrary16 95 pascal16 LoadLibrary(str) LoadLibrary16
96 pascal16 FreeLibrary(word) FreeLibrary16 96 pascal16 FreeLibrary(word) FreeLibrary16
97 pascal16 GetTempFileName(byte str word ptr) GetTempFileName16 97 pascal16 GetTempFileName(word str word ptr) GetTempFileName16
98 return GetLastDiskChange 0 0 98 return GetLastDiskChange 0 0
99 stub GetLPErrMode 99 stub GetLPErrMode
100 return ValidateCodeSegments 0 0 100 return ValidateCodeSegments 0 0
...@@ -135,7 +135,7 @@ file krnl386.exe ...@@ -135,7 +135,7 @@ file krnl386.exe
133 pascal16 GetExePtr(word) GetExePtr 133 pascal16 GetExePtr(word) GetExePtr
134 pascal16 GetWindowsDirectory(ptr word) GetWindowsDirectory16 134 pascal16 GetWindowsDirectory(ptr word) GetWindowsDirectory16
135 pascal16 GetSystemDirectory(ptr word) GetSystemDirectory16 135 pascal16 GetSystemDirectory(ptr word) GetSystemDirectory16
136 pascal16 GetDriveType(byte) GetDriveType16 136 pascal16 GetDriveType(word) GetDriveType16
137 pascal16 FatalAppExit(word str) FatalAppExit16 137 pascal16 FatalAppExit(word str) FatalAppExit16
138 pascal GetHeapSpaces(word) GetHeapSpaces 138 pascal GetHeapSpaces(word) GetHeapSpaces
139 stub DoSignal 139 stub DoSignal
......
...@@ -12,8 +12,8 @@ type win16 ...@@ -12,8 +12,8 @@ type win16
#126 pascal GetTableSeg #126 pascal GetTableSeg
#127 pascal NewTable #127 pascal NewTable
128 pascal OemKeyScan(word) OemKeyScan 128 pascal OemKeyScan(word) OemKeyScan
129 pascal16 VkKeyScan(byte) VkKeyScan16 129 pascal16 VkKeyScan(word) VkKeyScan16
130 pascal16 GetKeyboardType(byte) GetKeyboardType16 130 pascal16 GetKeyboardType(word) GetKeyboardType16
131 pascal16 MapVirtualKey(word word) MapVirtualKey16 131 pascal16 MapVirtualKey(word word) MapVirtualKey16
132 pascal16 GetKBCodePage() GetKBCodePage16 132 pascal16 GetKBCodePage() GetKBCodePage16
133 pascal16 GetKeyNameText(long ptr word) GetKeyNameText16 133 pascal16 GetKeyNameText(long ptr word) GetKeyNameText16
......
...@@ -48,7 +48,7 @@ type win32 ...@@ -48,7 +48,7 @@ type win32
0067 stub WNetFormatNetworkNameA 0067 stub WNetFormatNetworkNameA
0068 stub WNetFormatNetworkNameW 0068 stub WNetFormatNetworkNameW
0069 stdcall WNetGetCachedPassword(ptr long ptr ptr long) WNetGetCachedPassword 0069 stdcall WNetGetCachedPassword(ptr long ptr ptr long) WNetGetCachedPassword
0070 stub WNetGetConnectionA 0070 stdcall WNetGetConnectionA(ptr ptr ptr) WNetGetConnection32A
0071 stub WNetGetConnectionW 0071 stub WNetGetConnectionW
0072 stub WNetGetHomeDirectoryA 0072 stub WNetGetHomeDirectoryA
0073 stub WNetGetHomeDirectoryW 0073 stub WNetGetHomeDirectoryW
......
name ntdll name ntdll
type win32 type win32
base 0
001 stub CsrAllocateCaptureBuffer 001 stub CsrAllocateCaptureBuffer
002 stub CsrAllocateCapturePointer 002 stub CsrAllocateCapturePointer
...@@ -873,82 +872,82 @@ base 0 ...@@ -873,82 +872,82 @@ base 0
869 stub _snprintf 869 stub _snprintf
870 stub _snwprintf 870 stub _snwprintf
871 stub _splitpath 871 stub _splitpath
872 stub _strcmpi 872 cdecl _strcmpi(ptr ptr) CRTDLL__strcmpi
873 stdcall _stricmp(ptr ptr) lstrcmpi32A 873 cdecl _stricmp(ptr ptr) CRTDLL__strcmpi
874 stub _strlwr 874 stub _strlwr
875 stub _strnicmp 875 cdecl _strnicmp(ptr ptr long) CRTDLL__strnicmp
876 stdcall _strupr(ptr) CRTDLL__strupr 876 cdecl _strupr(ptr) CRTDLL__strupr
877 stub _ultoa 877 stub _ultoa
878 stub _vsnprintf 878 stub _vsnprintf
879 stdcall _wcsicmp(ptr ptr) lstrcmpi32W 879 cdecl _wcsicmp(ptr ptr) CRTDLL__wcsicmp
880 stdcall _wcslwr(ptr) CRTDLL__wcslwr 880 cdecl _wcslwr(ptr) CRTDLL__wcslwr
881 stdcall _wcsnicmp(ptr ptr long) lstrncmpi32W 881 cdecl _wcsnicmp(ptr ptr long) CRTDLL__wcsnicmp
882 stdcall _wcsupr(ptr) CRTDLL__wcsupr 882 cdecl _wcsupr(ptr) CRTDLL__wcsupr
883 stub abs 883 stub abs
884 stub atan 884 stub atan
885 stdcall atoi(ptr) CRTDLL_atoi 885 cdecl atoi(ptr) atoi
886 stdcall atol(ptr) CRTDLL_atol 886 cdecl atol(ptr) atol
887 stub ceil 887 stub ceil
888 stub cos 888 stub cos
889 stub fabs 889 stub fabs
890 stub floor 890 stub floor
891 stdcall isalpha(long) CRTDLL_isalpha 891 cdecl isalpha(long) isalpha
892 stdcall isdigit(long) CRTDLL_isdigit 892 cdecl isdigit(long) isdigit
893 stdcall islower(long) CRTDLL_islower 893 cdecl islower(long) islower
894 stdcall isprint(long) CRTDLL_isprint 894 cdecl isprint(long) isprint
895 stdcall isspace(long) CRTDLL_isspace 895 cdecl isspace(long) isspace
896 stdcall isupper(long) CRTDLL_isupper 896 cdecl isupper(long) isupper
897 stub iswalpha 897 stub iswalpha
898 stub iswctype 898 stub iswctype
899 stdcall isxdigit(long) CRTDLL_isxdigit 899 cdecl isxdigit(long) isxdigit
900 stub labs 900 stub labs
901 stub log 901 stub log
902 stub mbstowcs 902 stub mbstowcs
903 stub memchr 903 cdecl memchr(ptr long long) memchr
904 stub memcmp 904 cdecl memcmp(ptr ptr long) memcmp
905 stub memcpy 905 cdecl memcpy(ptr ptr long) memcpy
906 stdcall memmove(ptr ptr long) memmove 906 cdecl memmove(ptr ptr long) memmove
907 stub memset 907 cdecl memset(ptr long long) memset
908 stub pow 908 stub pow
909 stub qsort 909 stub qsort
910 stub sin 910 stub sin
911 stdcall sprintf() CRTDLL_sprintf 911 varargs sprintf() wsprintf32A
912 stub sqrt 912 stub sqrt
913 stdcall sscanf() CRTDLL_sscanf 913 varargs sscanf() sscanf
914 stub strcat 914 cdecl strcat(ptr ptr) strcat
915 stdcall strchr(ptr long) strchr 915 cdecl strchr(ptr long) strchr
916 stdcall strcmp(ptr ptr) lstrcmp32A 916 cdecl strcmp(ptr ptr) strcmp
917 stdcall strcpy(ptr ptr) lstrcpy32A 917 cdecl strcpy(ptr ptr) strcpy
918 stub strcspn 918 cdecl strcspn(ptr ptr) strcspn
919 stdcall strlen(ptr) lstrlen32A 919 cdecl strlen(ptr) strlen
920 stub strncat 920 cdecl strncat(ptr ptr long) strncat
921 stub strncmp 921 cdecl strncmp(ptr ptr long) strncmp
922 stub strncpy 922 cdecl strncpy(ptr ptr long) strncpy
923 stub strpbrk 923 cdecl strpbrk(ptr ptr long) strpbrk
924 stdcall strrchr(ptr long) strrchr 924 cdecl strrchr(ptr long) strrchr
925 stub strspn 925 cdecl strspn(ptr ptr) strspn
926 stub strstr 926 cdecl strstr(ptr ptr) strstr
927 stdcall swprintf() CRTDLL_swprintf 927 varargs swprintf() wsprintf32W
928 stub tan 928 stub tan
929 stdcall tolower(long) CRTDLL_tolower 929 cdecl tolower(long) tolower
930 stdcall toupper(long) CRTDLL_toupper 930 cdecl toupper(long) toupper
931 stub towlower 931 stub towlower
932 stub towupper 932 stub towupper
933 stub vsprintf 933 cdecl vsprintf(ptr ptr ptr) CRTDLL_vsprintf
934 stdcall wcscat(ptr ptr) lstrcat32W 934 cdecl wcscat(ptr ptr) CRTDLL_wcscat
935 stdcall wcschr(ptr long) CRTDLL_wcschr 935 cdecl wcschr(ptr long) CRTDLL_wcschr
936 stub wcscmp 936 stub wcscmp
937 stdcall wcscpy(ptr ptr) lstrcpy32W 937 cdecl wcscpy(ptr ptr) CRTDLL_wcscpy
938 stub wcscspn 938 stub wcscspn
939 stdcall wcslen(ptr) lstrlen32W 939 cdecl wcslen(ptr) CRTDLL_wcslen
940 stub wcsncat 940 stub wcsncat
941 stub wcsncmp 941 stub wcsncmp
942 stdcall wcsncpy(ptr ptr long) lstrcpyn32W 942 cdecl wcsncpy(ptr ptr long) CRTDLL_wcsncpy
943 stub wcspbrk 943 stub wcspbrk
944 stdcall wcsrchr(ptr long) CRTDLL_wcsrchr 944 cdecl wcsrchr(ptr long) CRTDLL_wcsrchr
945 stub wcsspn 945 stub wcsspn
946 stdcall wcsstr(ptr ptr) CRTDLL_wcsstr 946 cdecl wcsstr(ptr ptr) CRTDLL_wcsstr
947 stub wcstok 947 stub wcstok
948 stub wcstol 948 stub wcstol
949 stdcall wcstombs(ptr ptr) lstrcpyWtoA 949 cdecl wcstombs(ptr ptr long) CRTDLL_wcstombs
950 stub wcstoul 950 stub wcstoul
...@@ -74,7 +74,7 @@ type win16 ...@@ -74,7 +74,7 @@ type win16
71 stub OLECONVERTOLESTREAMTOISTORAGE 71 stub OLECONVERTOLESTREAMTOISTORAGE
74 stub READFMTUSERTYPESTG 74 stub READFMTUSERTYPESTG
75 stub WRITEFMTUSERTYPESTG 75 stub WRITEFMTUSERTYPESTG
76 stub OLEFLUSHCLIPBOARD 76 pascal16 OleFlushClipboard() OleFlushClipboard
77 stub OLEISCURRENTCLIPBOARD 77 stub OLEISCURRENTCLIPBOARD
78 stub OLETRANSLATEACCELERATOR 78 stub OLETRANSLATEACCELERATOR
79 stub OLEDOAUTOCONVERT 79 stub OLEDOAUTOCONVERT
......
name ole32 name ole32
type win32 type win32
base 1
0 stub BindMoniker 1 stub BindMoniker
1 stub CLSIDFromProgID 2 stub CLSIDFromProgID
2 stub CLSIDFromString 3 stub CLSIDFromString
3 stub CoBuildVersion 4 stub CoBuildVersion
4 stub CoCreateFreeThreadedMarshaler 5 stub CoCreateFreeThreadedMarshaler
5 stub CoCreateGuid 6 stub CoCreateGuid
6 stub CoCreateInstance 7 stub CoCreateInstance
7 stub CoDisconnectObject 8 stub CoDisconnectObject
8 stub CoDosDateTimeToFileTime 9 stub CoDosDateTimeToFileTime
9 stub CoFileTimeNow 10 stub CoFileTimeNow
10 stub CoFileTimeToDosDateTime 11 stub CoFileTimeToDosDateTime
11 stub CoFreeAllLibraries 12 stub CoFreeAllLibraries
12 stub CoFreeLibrary 13 stub CoFreeLibrary
13 stub CoFreeUnusedLibraries 14 stub CoFreeUnusedLibraries
14 stub CoGetCallerTID 15 stub CoGetCallerTID
15 stub CoGetClassObject 16 stub CoGetClassObject
16 stub CoGetCurrentLogicalThreadId 17 stub CoGetCurrentLogicalThreadId
17 stub CoGetCurrentProcess 18 stub CoGetCurrentProcess
18 stub CoGetInterfaceAndReleaseStream 19 stub CoGetInterfaceAndReleaseStream
19 stub CoGetMalloc 20 stub CoGetMalloc
20 stub CoGetMarshalSizeMax 21 stub CoGetMarshalSizeMax
21 stub CoGetPSClsid 22 stub CoGetPSClsid
22 stub CoGetStandardMarshal 23 stub CoGetStandardMarshal
23 stub CoGetState 24 stub CoGetState
24 stub CoGetTreatAsClass 25 stub CoGetTreatAsClass
25 stub CoInitialize 26 stub CoInitialize
26 stub CoInitializeWOW 27 stub CoInitializeWOW
27 stub CoIsHandlerConnected 28 stub CoIsHandlerConnected
28 stub CoIsOle1Class 29 stub CoIsOle1Class
29 stub CoLoadLibrary 30 stub CoLoadLibrary
30 stub CoLockObjectExternal 31 stub CoLockObjectExternal
31 stub CoMarshalHresult 32 stub CoMarshalHresult
32 stub CoMarshalInterThreadInterfaceInStream 33 stub CoMarshalInterThreadInterfaceInStream
33 stub CoMarshalInterface 34 stub CoMarshalInterface
34 stub CoQueryReleaseObject 35 stub CoQueryReleaseObject
35 stub CoRegisterClassObject 36 stub CoRegisterClassObject
36 stub CoRegisterMallocSpy 37 stub CoRegisterMallocSpy
37 stub CoRegisterMessageFilter 38 stub CoRegisterMessageFilter
38 stub CoReleaseMarshalData 39 stub CoReleaseMarshalData
39 stub CoRevokeClassObject 40 stub CoRevokeClassObject
40 stub CoRevokeMallocSpy 41 stub CoRevokeMallocSpy
41 stub CoSetState 42 stub CoSetState
42 stub CoTaskMemAlloc 43 stub CoTaskMemAlloc
43 stub CoTaskMemFree 44 stub CoTaskMemFree
44 stub CoTaskMemRealloc 45 stub CoTaskMemRealloc
45 stub CoTreatAsClass 46 stub CoTreatAsClass
46 stub CoUninitialize 47 stub CoUninitialize
47 stub CoUnloadingWOW 48 stub CoUnloadingWOW
48 stub CoUnmarshalHresult 49 stub CoUnmarshalHresult
49 stub CoUnmarshalInterface 50 stub CoUnmarshalInterface
50 stub CreateAntiMoniker 51 stub CreateAntiMoniker
51 stub CreateBindCtx 52 stub CreateBindCtx
52 stub CreateDataAdviseHolder 53 stub CreateDataAdviseHolder
53 stub CreateDataCache 54 stub CreateDataCache
54 stub CreateFileMoniker 55 stub CreateFileMoniker
55 stub CreateGenericComposite 56 stub CreateGenericComposite
56 stub CreateILockBytesOnHGlobal 57 stub CreateILockBytesOnHGlobal
57 stub CreateItemMoniker 58 stub CreateItemMoniker
58 stub CreateOleAdviseHolder 59 stub CreateOleAdviseHolder
59 stub CreatePointerMoniker 60 stub CreatePointerMoniker
60 stub CreateStreamOnHGlobal 61 stub CreateStreamOnHGlobal
61 stub DllDebugObjectRPCHook 62 stub DllDebugObjectRPCHook
62 stub DllGetClassObject 63 stub DllGetClassObject
63 stub DllGetClassObjectWOW 64 stub DllGetClassObjectWOW
64 stub DoDragDrop 65 stub DoDragDrop
65 stub EnableHookObject 66 stub EnableHookObject
66 stub GetClassFile 67 stub GetClassFile
67 stub GetConvertStg 68 stub GetConvertStg
68 stub GetDocumentBitStg 69 stub GetDocumentBitStg
69 stub GetHGlobalFromILockBytes 70 stub GetHGlobalFromILockBytes
70 stub GetHGlobalFromStream 71 stub GetHGlobalFromStream
71 stub GetHookInterface 72 stub GetHookInterface
72 stub GetRunningObjectTable 73 stub GetRunningObjectTable
73 stub IIDFromString 74 stub IIDFromString
74 stub IsAccelerator 75 stub IsAccelerator
75 stub IsEqualGUID 76 stub IsEqualGUID
76 stub IsValidIid 77 stub IsValidIid
77 stub IsValidInterface 78 stub IsValidInterface
78 stub IsValidPtrIn 79 stub IsValidPtrIn
79 stub IsValidPtrOut 80 stub IsValidPtrOut
80 stub MkParseDisplayName 81 stub MkParseDisplayName
81 stub MonikerCommonPrefixWith 82 stub MonikerCommonPrefixWith
82 stub MonikerRelativePathTo 83 stub MonikerRelativePathTo
83 stub OleBuildVersion 84 stub OleBuildVersion
84 stub OleConvertIStorageToOLESTREAM 85 stub OleConvertIStorageToOLESTREAM
85 stub OleConvertIStorageToOLESTREAMEx 86 stub OleConvertIStorageToOLESTREAMEx
86 stub OleConvertOLESTREAMToIStorage 87 stub OleConvertOLESTREAMToIStorage
87 stub OleConvertOLESTREAMToIStorageEx 88 stub OleConvertOLESTREAMToIStorageEx
88 stub OleCreate 89 stub OleCreate
89 stub OleCreateDefaultHandler 90 stub OleCreateDefaultHandler
90 stub OleCreateEmbeddingHelper 91 stub OleCreateEmbeddingHelper
91 stub OleCreateFromData 92 stub OleCreateFromData
92 stub OleCreateFromFile 93 stub OleCreateFromFile
93 stub OleCreateLink 94 stub OleCreateLink
94 stub OleCreateLinkFromData 95 stub OleCreateLinkFromData
95 stub OleCreateLinkToFile 96 stub OleCreateLinkToFile
96 stub OleCreateMenuDescriptor 97 stub OleCreateMenuDescriptor
97 stub OleCreateStaticFromData 98 stub OleCreateStaticFromData
98 stub OleDestroyMenuDescriptor 99 stub OleDestroyMenuDescriptor
99 stub OleDoAutoConvert 100 stub OleDoAutoConvert
100 stub OleDraw 101 stub OleDraw
101 stub OleDuplicateData 102 stub OleDuplicateData
102 stub OleFlushClipboard 103 stub OleFlushClipboard
103 stub OleGetAutoConvert 104 stub OleGetAutoConvert
104 stub OleGetClipboard 105 stub OleGetClipboard
105 stub OleGetIconOfClass 106 stub OleGetIconOfClass
106 stub OleGetIconOfFile 107 stub OleGetIconOfFile
107 return OleInitialize 4 0 108 return OleInitialize 4 0
108 stub OleInitializeWOW 109 stub OleInitializeWOW
109 stub OleIsCurrentClipboard 110 stub OleIsCurrentClipboard
110 stub OleIsRunning 111 stub OleIsRunning
111 stub OleLoad 112 stub OleLoad
112 stub OleLoadFromStream 113 stub OleLoadFromStream
113 stub OleLockRunning 114 stub OleLockRunning
114 stub OleMetafilePictFromIconAndLabel 115 stub OleMetafilePictFromIconAndLabel
115 stub OleNoteObjectVisible 116 stub OleNoteObjectVisible
116 stub OleQueryCreateFromData 117 stub OleQueryCreateFromData
117 stub OleQueryLinkFromData 118 stub OleQueryLinkFromData
118 stub OleRegEnumFormatEtc 119 stub OleRegEnumFormatEtc
119 stub OleRegEnumVerbs 120 stub OleRegEnumVerbs
120 stub OleRegGetMiscStatus 121 stub OleRegGetMiscStatus
121 stub OleRegGetUserType 122 stub OleRegGetUserType
122 stub OleRun 123 stub OleRun
123 stub OleSave 124 stub OleSave
124 stub OleSaveToStream 125 stub OleSaveToStream
125 stub OleSetAutoConvert 126 stub OleSetAutoConvert
126 stub OleSetClipboard 127 stub OleSetClipboard
127 stub OleSetContainedObject 128 stub OleSetContainedObject
128 stub OleSetMenuDescriptor 129 stub OleSetMenuDescriptor
129 stub OleTranslateAccelerator 130 stub OleTranslateAccelerator
130 return OleUninitialize 0 0 131 return OleUninitialize 0 0
131 stub OpenOrCreateStream 132 stub OpenOrCreateStream
132 stub ProgIDFromCLSID 133 stub ProgIDFromCLSID
133 stub ReadClassStg 134 stub ReadClassStg
134 stub ReadClassStm 135 stub ReadClassStm
135 stub ReadFmtUserTypeStg 136 stub ReadFmtUserTypeStg
136 stub ReadOleStg 137 stub ReadOleStg
137 stub ReadStringStream 138 stub ReadStringStream
138 stub RegisterDragDrop 139 stub RegisterDragDrop
139 stub ReleaseStgMedium 140 stub ReleaseStgMedium
140 stub RevokeDragDrop 141 stub RevokeDragDrop
141 stub SetConvertStg 142 stub SetConvertStg
142 stub SetDocumentBitStg 143 stub SetDocumentBitStg
143 stub StgCreateDocfile 144 stub StgCreateDocfile
144 stub StgCreateDocfileOnILockBytes 145 stub StgCreateDocfileOnILockBytes
145 stub StgIsStorageFile 146 stub StgIsStorageFile
146 stub StgIsStorageILockBytes 147 stub StgIsStorageILockBytes
147 stub StgOpenStorage 148 stub StgOpenStorage
148 stub StgOpenStorageOnILockBytes 149 stub StgOpenStorageOnILockBytes
149 stub StgSetTimes 150 stub StgSetTimes
150 stub StringFromCLSID 151 stub StringFromCLSID
151 stub StringFromGUID2 152 stub StringFromGUID2
152 stub StringFromIID 153 stub StringFromIID
153 stub UtConvertDvtd16toDvtd32 154 stub UtConvertDvtd16toDvtd32
154 stub UtConvertDvtd32toDvtd16 155 stub UtConvertDvtd32toDvtd16
155 stub UtGetDvtd16Info 156 stub UtGetDvtd16Info
156 stub UtGetDvtd32Info 157 stub UtGetDvtd32Info
157 stub WriteClassStg 158 stub WriteClassStg
158 stub WriteClassStm 159 stub WriteClassStm
159 stub WriteFmtUserTypeStg 160 stub WriteFmtUserTypeStg
160 stub WriteOleStg 161 stub WriteOleStg
161 stub WriteStringStream 162 stub WriteStringStream
...@@ -352,15 +352,15 @@ INT16 WINAPI Catch( LPCATCHBUF lpbuf ) ...@@ -352,15 +352,15 @@ INT16 WINAPI Catch( LPCATCHBUF lpbuf )
*/ */
/* FIXME: we need to save %si and %di */ /* FIXME: we need to save %si and %di */
lpbuf[0] = OFFSETOF(IF1632_Saved16_ss_sp); lpbuf[0] = pFrame->ip;
lpbuf[1] = LOWORD(IF1632_Saved32_esp); lpbuf[1] = pFrame->cs;
lpbuf[2] = HIWORD(IF1632_Saved32_esp); lpbuf[2] = LOWORD(pFrame->saved_ss_sp);
lpbuf[3] = LOWORD(pFrame->saved_ss_sp); lpbuf[3] = pFrame->bp;
lpbuf[4] = HIWORD(pFrame->saved_ss_sp); lpbuf[4] = LOWORD(IF1632_Saved32_esp);
lpbuf[5] = pFrame->ds; lpbuf[5] = HIWORD(IF1632_Saved32_esp);
lpbuf[6] = pFrame->bp; lpbuf[6] = pFrame->ds;
lpbuf[7] = pFrame->ip; lpbuf[7] = OFFSETOF(IF1632_Saved16_ss_sp);
lpbuf[8] = pFrame->cs; lpbuf[8] = HIWORD(pFrame->saved_ss_sp);
return 0; return 0;
} }
...@@ -373,15 +373,15 @@ INT16 WINAPI Throw( LPCATCHBUF lpbuf, INT16 retval ) ...@@ -373,15 +373,15 @@ INT16 WINAPI Throw( LPCATCHBUF lpbuf, INT16 retval )
STACK16FRAME *pFrame; STACK16FRAME *pFrame;
WORD es = CURRENT_STACK16->es; WORD es = CURRENT_STACK16->es;
IF1632_Saved16_ss_sp = MAKELONG( lpbuf[0] - sizeof(WORD), IF1632_Saved16_ss_sp = MAKELONG( lpbuf[7] - sizeof(WORD),
HIWORD(IF1632_Saved16_ss_sp) ); HIWORD(IF1632_Saved16_ss_sp) );
IF1632_Saved32_esp = MAKELONG( lpbuf[1], lpbuf[2] ); IF1632_Saved32_esp = MAKELONG( lpbuf[4], lpbuf[5] );
pFrame = CURRENT_STACK16; pFrame = CURRENT_STACK16;
pFrame->saved_ss_sp = MAKELONG( lpbuf[3], lpbuf[4] ); pFrame->saved_ss_sp = MAKELONG( lpbuf[2], lpbuf[8] );
pFrame->ds = lpbuf[5]; pFrame->ds = lpbuf[6];
pFrame->bp = lpbuf[6]; pFrame->bp = lpbuf[3];
pFrame->ip = lpbuf[7]; pFrame->ip = lpbuf[0];
pFrame->cs = lpbuf[8]; pFrame->cs = lpbuf[1];
pFrame->es = es; pFrame->es = es;
if (debugging_relay) /* Make sure we have a valid entry point address */ if (debugging_relay) /* Make sure we have a valid entry point address */
{ {
......
name shell32 name shell32
type win32 type win32
base 1
# Functions exported by the Win95 shell32.dll # Functions exported by the Win95 shell32.dll
# (these need to have these exact ordinals, for some win95 dlls # (these need to have these exact ordinals, for some win95 dlls
# import shell32.dll by ordinal) # import shell32.dll by ordinal)
1 stub CheckEscapesA 3 stub CheckEscapesA
4 stub CheckEscapesW 6 stub CheckEscapesW
5 stdcall CommandLineToArgvW(ptr ptr) CommandLineToArgvW 7 stdcall CommandLineToArgvW(ptr ptr) CommandLineToArgvW
6 stub Control_FillCache_RunDLL 8 stub Control_FillCache_RunDLL
10 stub Control_RunDLL 12 stdcall Control_RunDLL(long long long long) Control_RunDLL
12 stub DllGetClassObject 14 stub DllGetClassObject
20 stub DoEnvironmentSubstA 22 stub DoEnvironmentSubstA
36 stub DoEnvironmentSubstW 33 stub SHELL32_33
39 stdcall DragAcceptFiles(long long) DragAcceptFiles 34 stub SHELL32_34
40 stub DragFinish 35 stub SHELL32_35
42 stub DragQueryFile 38 stub DoEnvironmentSubstW
41 stdcall DragAcceptFiles(long long) DragAcceptFiles
42 stub DragFinish
44 stub DragQueryFile
46 stub SHELL32_46
47 stub SHELL32_47 47 stub SHELL32_47
48 stub DragQueryFileA 48 stub SHELL32_48
51 stub DragQueryFileAorW 49 stub SHELL32_49
52 stub DragQueryFileW 50 stub DragQueryFileA
74 stub DragQueryPoint 53 stub DragQueryFileAorW
78 stub DuplicateIcon 54 stub DragQueryFileW
80 stub ExtractAssociatedIconA 56 stub SHELL32_56
99 stub ExtractAssociatedIconExA 57 stub SHELL32_57
122 stub ExtractAssociatedIconExW 58 stub SHELL32_58
123 stub ExtractAssociatedIconW 62 stub SHELL32_62
131 stub ExtractIconA 63 stub SHELL32_63
133 stub ExtractIconEx 64 stub SHELL32_64
136 stub ExtractIconExA 65 stub SHELL32_65
146 stub ExtractIconResInfoA 76 stub DragQueryPoint
148 stub ExtractIconResInfoW 80 stub DuplicateIcon
154 stub SHELL32_154 82 stub ExtractAssociatedIconA
155 stub SHELL32_155 101 stub ExtractAssociatedIconExA
124 stub ExtractAssociatedIconExW
125 stub ExtractAssociatedIconW
133 stub ExtractIconA
135 stub ExtractIconEx
138 stub ExtractIconExA
148 stub ExtractIconResInfoA
150 stub ExtractIconResInfoW
156 stub SHELL32_156 156 stub SHELL32_156
157 stub SHELL32_157
158 stub SHELL32_158 158 stub SHELL32_158
178 stub ExtractIconW 159 stub SHELL32_159
180 stub ExtractVersionResource16W 160 stub SHELL32_160
182 stub SHELL32_182 180 stub ExtractIconW
183 stub SHELL32_183 182 stub ExtractVersionResource16W
184 stdcall FindExecutableA(ptr ptr ptr) FindExecutable32A 184 stub SHELL32_184
185 stub FindExecutableW 185 stub SHELL32_185
186 return FreeIconList 4 0 186 stdcall FindExecutableA(ptr ptr ptr) FindExecutable32A
187 stub InternalExtractIconListA 187 stub FindExecutableW
188 stub InternalExtractIconListW 188 return FreeIconList 4 0
189 stub OpenAs_RunDLL 189 stub InternalExtractIconListA
190 stub PrintersGetCommand_RunDLL 190 stub InternalExtractIconListW
191 stub RealShellExecuteA 191 stub OpenAs_RunDLL
192 stub RealShellExecuteExA 192 stub PrintersGetCommand_RunDLL
201 stub RealShellExecuteExW 193 stub RealShellExecuteA
202 stub RealShellExecuteW 194 stub RealShellExecuteExA
203 stub RegenerateUserEnvironment 203 stub RealShellExecuteExW
204 stub SHAddToRecentDocs 204 stub RealShellExecuteW
205 stub SHAppBarMessage 205 stub RegenerateUserEnvironment
206 stub SHBrowseForFolder 206 stub SHAddToRecentDocs
207 stub SHBrowseForFolderA 207 stub SHAppBarMessage
208 stub SHChangeNotify 208 stub SHBrowseForFolder
209 stub SHFileOperation 209 stub SHBrowseForFolderA
210 stub SHFileOperationA 210 stub SHChangeNotify
211 stub SHFormatDrive 211 stub SHFileOperation
212 stub SHFreeNameMappings 212 stub SHFileOperationA
213 stub SHGetDataFromIDListA 213 stub SHFormatDrive
214 stub SHGetDesktopFolder 214 stub SHFreeNameMappings
215 stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfo32A 215 stub SHGetDataFromIDListA
216 stdcall SHGetFileInfoA(ptr long ptr long long) SHGetFileInfo32A 216 stub SHGetDesktopFolder
217 stub SHGetInstanceExplorer 217 stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfo32A
218 stub SHGetMalloc 218 stdcall SHGetFileInfoA(ptr long ptr long long) SHGetFileInfo32A
219 stub SHGetPathFromIDList 219 stub SHGetInstanceExplorer
220 stub SHGetPathFromIDListA 220 stub SHGetMalloc
221 stub SHGetSpecialFolderLocation 221 stub SHGetPathFromIDList
222 stub SHHelpShortcuts_RunDLL 222 stub SHGetPathFromIDListA
223 stub SHLoadInProc 223 stub SHGetSpecialFolderLocation
224 stub SheChangeDirA 224 stub SHHelpShortcuts_RunDLL
225 stub SheChangeDirExA 225 stub SHLoadInProc
226 stub SheChangeDirExW 226 stub SheChangeDirA
227 stub SheChangeDirW 227 stub SheChangeDirExA
228 stub SheConvertPathW 228 stub SheChangeDirExW
229 stub SheFullPathA 229 stub SheChangeDirW
230 stub SheFullPathW 230 stub SheConvertPathW
231 stub SheGetCurDrive 231 stub SheFullPathA
232 stub SheGetDirA 232 stub SheFullPathW
233 stub SheGetDirExW 233 stub SheGetCurDrive
234 stub SheGetDirW 234 stub SheGetDirA
235 stub SheGetPathOffsetW 235 stub SheGetDirExW
236 stub SheRemoveQuotesA 236 stub SheGetDirW
237 stub SheRemoveQuotesW 237 stub SheGetPathOffsetW
238 stub SheSetCurDrive 238 stub SheRemoveQuotesA
239 stub SheShortenPathA 239 stub SheRemoveQuotesW
240 stub SheShortenPathW 240 stub SheSetCurDrive
241 stdcall ShellAboutA(long ptr ptr long) ShellAbout32A 241 stub SheShortenPathA
242 stdcall ShellAboutW(long ptr ptr long) ShellAbout32W 242 stub SheShortenPathW
243 stdcall ShellExecuteA(long ptr ptr ptr ptr long) ShellExecute32A 243 stdcall ShellAboutA(long ptr ptr long) ShellAbout32A
244 stub ShellExecuteEx 244 stdcall ShellAboutW(long ptr ptr long) ShellAbout32W
245 stub ShellExecuteExA 245 stdcall ShellExecuteA(long ptr ptr ptr ptr long) ShellExecute32A
246 stub ShellExecuteW 246 stub ShellExecuteEx
247 stub Shell_NotifyIcon 247 stub ShellExecuteExA
248 stub Shell_NotifyIconA 248 stub ShellExecuteW
249 stub Shl1632_ThunkData32 249 stub Shell_NotifyIcon
250 stub Shl3216_ThunkData32 250 stub Shell_NotifyIconA
1023 stub ExtractIconExW # proper ordinal unknown 251 stub Shl1632_ThunkData32
1028 stub FindExeDlgProc # proper ordinal unknown 252 stub Shl3216_ThunkData32
1041 stub RegisterShellHook # proper ordinal unknown 1025 stub ExtractIconExW # proper ordinal unknown
1046 stub SHBrowseForFolderW # proper ordinal unknown 1030 stub FindExeDlgProc # proper ordinal unknown
1050 stub SHFileOperationW # proper ordinal unknown 1043 stub RegisterShellHook # proper ordinal unknown
1056 stub SHGetFileInfoW # proper ordinal unknown 1048 stub SHBrowseForFolderW # proper ordinal unknown
1061 stub SHGetPathFromIDListW # proper ordinal unknown 1052 stub SHFileOperationW # proper ordinal unknown
1087 stub ShellExecuteExW # proper ordinal unknown 1058 stub SHGetFileInfoW # proper ordinal unknown
1089 stub ShellHookProc # proper ordinal unknown 1063 stub SHGetPathFromIDListW # proper ordinal unknown
1092 stub Shell_NotifyIconW # proper ordinal unknown 1089 stub ShellExecuteExW # proper ordinal unknown
1093 stub StrChrA # proper ordinal unknown 1091 stub ShellHookProc # proper ordinal unknown
1094 stub StrChrIA # proper ordinal unknown 1094 stub Shell_NotifyIconW # proper ordinal unknown
1095 stub StrChrIW # proper ordinal unknown 1095 stub StrChrA # proper ordinal unknown
1096 stub StrChrW # proper ordinal unknown 1096 stub StrChrIA # proper ordinal unknown
1097 stub StrCmpNA # proper ordinal unknown 1097 stub StrChrIW # proper ordinal unknown
1098 stub StrCmpNIA # proper ordinal unknown 1098 stub StrChrW # proper ordinal unknown
1099 stub StrCmpNIW # proper ordinal unknown 1099 stub StrCmpNA # proper ordinal unknown
1100 stub StrCmpNW # proper ordinal unknown 1100 stub StrCmpNIA # proper ordinal unknown
1101 stub StrCpyNA # proper ordinal unknown 1101 stub StrCmpNIW # proper ordinal unknown
1102 stub StrCpyNW # proper ordinal unknown 1102 stub StrCmpNW # proper ordinal unknown
1103 stub StrNCmpA # proper ordinal unknown 1103 stub StrCpyNA # proper ordinal unknown
1104 stub StrNCmpIA # proper ordinal unknown 1104 stub StrCpyNW # proper ordinal unknown
1105 stub StrNCmpIW # proper ordinal unknown 1105 stub StrNCmpA # proper ordinal unknown
1106 stub StrNCmpW # proper ordinal unknown 1106 stub StrNCmpIA # proper ordinal unknown
1107 stub StrNCpyA # proper ordinal unknown 1107 stub StrNCmpIW # proper ordinal unknown
1108 stub StrNCpyW # proper ordinal unknown 1108 stub StrNCmpW # proper ordinal unknown
1109 stub StrRChrA # proper ordinal unknown 1109 stub StrNCpyA # proper ordinal unknown
1110 stub StrRChrIA # proper ordinal unknown 1110 stub StrNCpyW # proper ordinal unknown
1111 stub StrRChrIW # proper ordinal unknown 1111 stub StrRChrA # proper ordinal unknown
1112 stub StrRChrW # proper ordinal unknown 1112 stub StrRChrIA # proper ordinal unknown
1113 stub StrRStrA # proper ordinal unknown 1113 stub StrRChrIW # proper ordinal unknown
1114 stub StrRStrIA # proper ordinal unknown 1114 stub StrRChrW # proper ordinal unknown
1115 stub StrRStrIW # proper ordinal unknown 1115 stub StrRStrA # proper ordinal unknown
1116 stub StrRStrW # proper ordinal unknown 1116 stub StrRStrIA # proper ordinal unknown
1117 stub StrStrA # proper ordinal unknown 1117 stub StrRStrIW # proper ordinal unknown
1118 stub StrStrIA # proper ordinal unknown 1118 stub StrRStrW # proper ordinal unknown
1119 stub StrStrIW # proper ordinal unknown 1119 stub StrStrA # proper ordinal unknown
1120 stub StrStrW # proper ordinal unknown 1120 stub StrStrIA # proper ordinal unknown
1121 stub WOWShellExecute # proper ordinal unknown 1121 stub StrStrIW # proper ordinal unknown
1122 stub StrStrW # proper ordinal unknown
1123 stub WOWShellExecute # proper ordinal unknown
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include "options.h" #include "options.h"
#include "sig_context.h" #include "sig_context.h"
#include "miscemu.h" #include "miscemu.h"
#include "thread.h"
/* Signal handler declaration */ /* Signal handler declaration */
...@@ -104,6 +104,115 @@ static HANDLER_DEF(SIGNAL_fault) ...@@ -104,6 +104,115 @@ static HANDLER_DEF(SIGNAL_fault)
} }
/***********************************************************************
* SIGNAL_SetContext
*
* Set the register values from a sigcontext.
*/
static void SIGNAL_SetSigContext( const SIGCONTEXT *sigcontext,
CONTEXT *context )
{
EAX_reg(context) = EAX_sig(sigcontext);
EBX_reg(context) = EBX_sig(sigcontext);
ECX_reg(context) = ECX_sig(sigcontext);
EDX_reg(context) = EDX_sig(sigcontext);
ESI_reg(context) = ESI_sig(sigcontext);
EDI_reg(context) = EDI_sig(sigcontext);
EBP_reg(context) = EBP_sig(sigcontext);
EFL_reg(context) = EFL_sig(sigcontext);
EIP_reg(context) = EIP_sig(sigcontext);
ESP_reg(context) = ESP_sig(sigcontext);
CS_reg(context) = LOWORD(CS_sig(sigcontext));
DS_reg(context) = LOWORD(DS_sig(sigcontext));
ES_reg(context) = LOWORD(ES_sig(sigcontext));
SS_reg(context) = LOWORD(SS_sig(sigcontext));
#ifdef FS_sig
FS_reg(context) = LOWORD(FS_sig(sigcontext));
#else
__asm__("movw %%fs,%w0":"=r" (FS_reg(&DEBUG_context)));
FS_reg(context) &= 0xffff;
#endif
#ifdef GS_sig
GS_reg(context) = LOWORD(GS_sig(sigcontext));
#else
__asm__("movw %%gs,%w0":"=r" (GS_reg(&DEBUG_context)));
GS_reg(context) &= 0xffff;
#endif
}
/***********************************************************************
* SIGNAL_GetSigContext
*
* Build a sigcontext from the register values.
*/
static void SIGNAL_GetSigContext( SIGCONTEXT *sigcontext,
const CONTEXT *context )
{
EAX_sig(sigcontext) = EAX_reg(context);
EBX_sig(sigcontext) = EBX_reg(context);
ECX_sig(sigcontext) = ECX_reg(context);
EDX_sig(sigcontext) = EDX_reg(context);
ESI_sig(sigcontext) = ESI_reg(context);
EDI_sig(sigcontext) = EDI_reg(context);
EBP_sig(sigcontext) = EBP_reg(context);
EFL_sig(sigcontext) = EFL_reg(context);
EIP_sig(sigcontext) = EIP_reg(context);
ESP_sig(sigcontext) = ESP_reg(context);
CS_sig(sigcontext) = CS_reg(context);
DS_sig(sigcontext) = DS_reg(context);
ES_sig(sigcontext) = ES_reg(context);
SS_sig(sigcontext) = SS_reg(context);
#ifdef FS_sig
FS_sig(sigcontext) = FS_reg(context);
#else
__asm__("movw %w0,%%fs"::"r" (FS_reg(context)));
#endif
#ifdef GS_sig
GS_sig(sigcontext) = GS_reg(context);
#else
__asm__("movw %w0,%%gs"::"r" (GS_reg(context)));
#endif
}
/***********************************************************************
* SIGNAL_InfoRegisters
*
* Display registers information.
*/
void SIGNAL_InfoRegisters( CONTEXT *context )
{
fprintf( stderr," CS:%04x SS:%04x DS:%04x ES:%04x FS:%04x GS:%04x",
(WORD)CS_reg(context), (WORD)SS_reg(context),
(WORD)DS_reg(context), (WORD)ES_reg(context),
(WORD)FS_reg(context), (WORD)GS_reg(context) );
fprintf( stderr, "\n EIP:%08lx ESP:%08lx EBP:%08lx EFLAGS:%08lx\n",
EIP_reg(context), ESP_reg(context),
EBP_reg(context), EFL_reg(context) );
fprintf( stderr, " EAX:%08lx EBX:%08lx ECX:%08lx EDX:%08lx\n",
EAX_reg(context), EBX_reg(context),
ECX_reg(context), EDX_reg(context) );
fprintf( stderr, " ESI:%08lx EDI:%08lx\n",
ESI_reg(context), EDI_reg(context) );
}
/**********************************************************************
* SIGNAL_tick
*
* Tick handler.
*/
static HANDLER_DEF(SIGNAL_tick)
{
HANDLER_PROLOG
CONTEXT nt_context;
SIGNAL_SetSigContext( context, &nt_context );
if (THREAD_SwitchThread( &nt_context ))
SIGNAL_GetSigContext( context, &nt_context );
HANDLER_EPILOG
}
/********************************************************************** /**********************************************************************
* SIGNAL_InitEmulator * SIGNAL_InitEmulator
* *
...@@ -111,14 +220,25 @@ static HANDLER_DEF(SIGNAL_fault) ...@@ -111,14 +220,25 @@ static HANDLER_DEF(SIGNAL_fault)
*/ */
BOOL32 SIGNAL_InitEmulator(void) BOOL32 SIGNAL_InitEmulator(void)
{ {
struct itimerval vt_timer;
SIGNAL_SetHandler( SIGINT, (void (*)())SIGNAL_break, 1); SIGNAL_SetHandler( SIGINT, (void (*)())SIGNAL_break, 1);
SIGNAL_SetHandler( SIGSEGV, (void (*)())SIGNAL_fault, 1); SIGNAL_SetHandler( SIGSEGV, (void (*)())SIGNAL_fault, 1);
SIGNAL_SetHandler( SIGILL, (void (*)())SIGNAL_fault, 1); SIGNAL_SetHandler( SIGILL, (void (*)())SIGNAL_fault, 1);
SIGNAL_SetHandler( SIGFPE, (void (*)())SIGNAL_fault, 1); SIGNAL_SetHandler( SIGFPE, (void (*)())SIGNAL_fault, 1);
SIGNAL_SetHandler( SIGVTALRM, (void (*)())SIGNAL_tick, 0);
SIGNAL_SetHandler( SIGTRAP, (void (*)())SIGNAL_trap, 1); /* debugger */ SIGNAL_SetHandler( SIGTRAP, (void (*)())SIGNAL_trap, 1); /* debugger */
SIGNAL_SetHandler( SIGHUP, (void (*)())SIGNAL_trap, 1); /* forced break*/ SIGNAL_SetHandler( SIGHUP, (void (*)())SIGNAL_trap, 1); /* forced break*/
#ifdef SIGBUS #ifdef SIGBUS
SIGNAL_SetHandler( SIGBUS, (void (*)())SIGNAL_fault, 1); SIGNAL_SetHandler( SIGBUS, (void (*)())SIGNAL_fault, 1);
#endif #endif
/* Start the tick timer */
#if 0
vt_timer.it_interval.tv_sec = 0;
vt_timer.it_interval.tv_usec = 10000;
vt_timer.it_value = vt_timer.it_interval;
setitimer( ITIMER_VIRTUAL, &vt_timer, NULL );
#endif
return TRUE; return TRUE;
} }
...@@ -86,7 +86,7 @@ file user.exe ...@@ -86,7 +86,7 @@ file user.exe
82 pascal16 InvertRect(word ptr) InvertRect16 82 pascal16 InvertRect(word ptr) InvertRect16
83 pascal16 FrameRect(word ptr word) FrameRect16 83 pascal16 FrameRect(word ptr word) FrameRect16
84 pascal16 DrawIcon(word s_word s_word word) DrawIcon16 84 pascal16 DrawIcon(word s_word s_word word) DrawIcon16
85 pascal16 DrawText(word ptr s_word ptr word) DrawText16 85 pascal16 DrawText(word str s_word ptr word) DrawText16
87 pascal16 DialogBox(word segstr word segptr) DialogBox16 87 pascal16 DialogBox(word segstr word segptr) DialogBox16
88 pascal16 EndDialog(word s_word) EndDialog16 88 pascal16 EndDialog(word s_word) EndDialog16
89 pascal16 CreateDialog(word segstr word segptr) CreateDialog16 89 pascal16 CreateDialog(word segstr word segptr) CreateDialog16
...@@ -207,13 +207,13 @@ file user.exe ...@@ -207,13 +207,13 @@ file user.exe
203 pascal16 GetCommError(word ptr) GetCommError 203 pascal16 GetCommError(word ptr) GetCommError
204 pascal16 ReadComm(word ptr word) ReadComm 204 pascal16 ReadComm(word ptr word) ReadComm
205 pascal16 WriteComm(word ptr word) WriteComm 205 pascal16 WriteComm(word ptr word) WriteComm
206 pascal16 TransmitCommChar(word byte) TransmitCommChar16 206 pascal16 TransmitCommChar(word word) TransmitCommChar16
207 pascal16 CloseComm(word) CloseComm 207 pascal16 CloseComm(word) CloseComm
208 pascal SetCommEventMask(word word) SetCommEventMask 208 pascal SetCommEventMask(word word) SetCommEventMask
209 pascal16 GetCommEventMask(word word) GetCommEventMask 209 pascal16 GetCommEventMask(word word) GetCommEventMask
210 pascal16 SetCommBreak(word) SetCommBreak16 210 pascal16 SetCommBreak(word) SetCommBreak16
211 pascal16 ClearCommBreak(word) ClearCommBreak16 211 pascal16 ClearCommBreak(word) ClearCommBreak16
212 pascal16 UngetCommChar(word byte) UngetCommChar 212 pascal16 UngetCommChar(word word) UngetCommChar
213 pascal16 BuildCommDCB(ptr ptr) BuildCommDCB16 213 pascal16 BuildCommDCB(ptr ptr) BuildCommDCB16
214 pascal EscapeCommFunction(word word) EscapeCommFunction16 214 pascal EscapeCommFunction(word word) EscapeCommFunction16
215 pascal16 FlushComm(word word) FlushComm 215 pascal16 FlushComm(word word) FlushComm
...@@ -305,7 +305,7 @@ file user.exe ...@@ -305,7 +305,7 @@ file user.exe
#306 BEAR306 #306 BEAR306
308 pascal DefDlgProc(word word word long) DefDlgProc16 308 pascal DefDlgProc(word word word long) DefDlgProc16
309 pascal16 GetClipCursor(ptr) GetClipCursor16 309 pascal16 GetClipCursor(ptr) GetClipCursor16
314 stub SignalProc 314 pascal16 SignalProc(word word word word word) USER_SignalProc
319 pascal16 ScrollWindowEx(word s_word s_word ptr ptr word ptr word) ScrollWindowEx16 319 pascal16 ScrollWindowEx(word s_word s_word ptr ptr word ptr word) ScrollWindowEx16
320 stub SysErrorBox 320 stub SysErrorBox
321 stub SetEventHook 321 stub SetEventHook
...@@ -316,19 +316,19 @@ file user.exe ...@@ -316,19 +316,19 @@ file user.exe
326 pascal16 GetControlBrush(word word word) GetControlBrush 326 pascal16 GetControlBrush(word word word) GetControlBrush
331 pascal16 EnableHardwareInput(word) EnableHardwareInput 331 pascal16 EnableHardwareInput(word) EnableHardwareInput
332 pascal16 UserYield() UserYield 332 pascal16 UserYield() UserYield
333 stub IsUserIdle 333 pascal16 IsUserIdle() IsUserIdle
334 pascal GetQueueStatus(word) GetQueueStatus16 334 pascal GetQueueStatus(word) GetQueueStatus16
335 pascal16 GetInputState() GetInputState16 335 pascal16 GetInputState() GetInputState16
336 stub LoadCursorIconHandler 336 pascal16 LoadCursorIconHandler(word word word) LoadCursorIconHandler
337 pascal GetMouseEventProc() GetMouseEventProc 337 pascal GetMouseEventProc() GetMouseEventProc
#341 _FFFE_FARFRAME #341 _FFFE_FARFRAME
343 stub GetFilePortName 343 stub GetFilePortName
356 stub LoadDIBCursorHandler 356 pascal16 LoadDIBCursorHandler(word word word) LoadDIBCursorHandler
357 stub LoadDIBIconHandler 357 pascal16 LoadDIBIconHandler(word word word) LoadDIBIconHandler
358 pascal16 IsMenu(word) IsMenu16 358 pascal16 IsMenu(word) IsMenu16
359 pascal16 GetDCEx(word word long) GetDCEx16 359 pascal16 GetDCEx(word word long) GetDCEx16
362 pascal16 DCHook(word word long long) DCHook 362 pascal16 DCHook(word word long long) DCHook
364 stub LookupIconIDFromDirectoryEx 364 pascal16 LookupIconIdFromDirectoryEx(ptr word word word word) LookupIconIdFromDirectoryEx16
368 pascal16 CopyIcon(word word) CopyIcon16 368 pascal16 CopyIcon(word word) CopyIcon16
369 pascal16 CopyCursor(word word) CopyCursor16 369 pascal16 CopyCursor(word word) CopyCursor16
370 pascal16 GetWindowPlacement(word ptr) GetWindowPlacement16 370 pascal16 GetWindowPlacement(word ptr) GetWindowPlacement16
...@@ -381,10 +381,10 @@ file user.exe ...@@ -381,10 +381,10 @@ file user.exe
430 pascal16 lstrcmp(str str) lstrcmp16 430 pascal16 lstrcmp(str str) lstrcmp16
431 pascal AnsiUpper(segstr) AnsiUpper16 431 pascal AnsiUpper(segstr) AnsiUpper16
432 pascal AnsiLower(segstr) AnsiLower16 432 pascal AnsiLower(segstr) AnsiLower16
433 pascal16 IsCharAlpha(byte) IsCharAlpha16 433 pascal16 IsCharAlpha(word) IsCharAlpha16
434 pascal16 IsCharAlphaNumeric(byte) IsCharAlphaNumeric16 434 pascal16 IsCharAlphaNumeric(word) IsCharAlphaNumeric16
435 pascal16 IsCharUpper(byte) IsCharUpper16 435 pascal16 IsCharUpper(word) IsCharUpper16
436 pascal16 IsCharLower(byte) IsCharLower16 436 pascal16 IsCharLower(word) IsCharLower16
437 pascal16 AnsiUpperBuff(ptr word) AnsiUpperBuff16 437 pascal16 AnsiUpperBuff(ptr word) AnsiUpperBuff16
438 pascal16 AnsiLowerBuff(ptr word) AnsiLowerBuff16 438 pascal16 AnsiLowerBuff(ptr word) AnsiLowerBuff16
441 pascal16 InsertMenuItem(word word word ptr) InsertMenuItem16 441 pascal16 InsertMenuItem(word word word ptr) InsertMenuItem16
...@@ -394,7 +394,7 @@ file user.exe ...@@ -394,7 +394,7 @@ file user.exe
447 pascal DefMDIChildProc(word word word long) DefMDIChildProc16 447 pascal DefMDIChildProc(word word word long) DefMDIChildProc16
448 stub DrawAnimatedRects 448 stub DrawAnimatedRects
449 stub DrawState 449 stub DrawState
450 stub CreateIconFromResourceEx 450 pascal16 CreateIconFromResourceEx(ptr long word long word word word) CreateIconFromResourceEx16
451 pascal16 TranslateMDISysAccel(word ptr) TranslateMDISysAccel16 451 pascal16 TranslateMDISysAccel(word ptr) TranslateMDISysAccel16
452 pascal16 CreateWindowEx(long str str long s_word s_word s_word s_word 452 pascal16 CreateWindowEx(long str str long s_word s_word s_word s_word
word word word segptr) CreateWindowEx16 word word word segptr) CreateWindowEx16
...@@ -442,7 +442,7 @@ file user.exe ...@@ -442,7 +442,7 @@ file user.exe
509 pascal16 WNetUnwatchQueue(word ptr ptr word) WNetUnwatchQueue 509 pascal16 WNetUnwatchQueue(word ptr ptr word) WNetUnwatchQueue
510 pascal16 WNetLockQueueData(ptr ptr ptr) WNetLockQueueData 510 pascal16 WNetLockQueueData(ptr ptr ptr) WNetLockQueueData
511 pascal16 WNetUnlockQueueData(ptr) WNetUnlockQueueData 511 pascal16 WNetUnlockQueueData(ptr) WNetUnlockQueueData
512 pascal16 WNetGetConnection(ptr ptr ptr) WNetGetConnection 512 pascal16 WNetGetConnection(ptr ptr ptr) WNetGetConnection16
513 pascal16 WNetGetCaps(word) WNetGetCaps 513 pascal16 WNetGetCaps(word) WNetGetCaps
514 pascal16 WNetDeviceMode(word) WNetDeviceMode 514 pascal16 WNetDeviceMode(word) WNetDeviceMode
515 pascal16 WNetBrowseDialog(word word ptr) WNetBrowseDialog 515 pascal16 WNetBrowseDialog(word word ptr) WNetBrowseDialog
......
...@@ -3,14 +3,14 @@ type win16 ...@@ -3,14 +3,14 @@ type win16
#1 DLLENTRYPOINT #1 DLLENTRYPOINT
2 pascal GetFileResourceSize(ptr segptr segptr ptr) GetFileResourceSize 2 pascal GetFileResourceSize(str segptr segptr ptr) GetFileResourceSize
3 pascal GetFileResource(ptr segptr segptr long long ptr) GetFileResource 3 pascal GetFileResource(str segptr segptr long long ptr) GetFileResource
6 pascal GetFileVersionInfoSize(ptr ptr) GetFileVersionInfoSize16 6 pascal GetFileVersionInfoSize(str ptr) GetFileVersionInfoSize16
7 pascal GetFileVersionInfo(ptr long long ptr) GetFileVersionInfo16 7 pascal GetFileVersionInfo(str long long ptr) GetFileVersionInfo16
8 pascal VerFindFile(word ptr ptr ptr ptr ptr ptr ptr) VerFindFile16 8 pascal VerFindFile(word str str str ptr ptr ptr ptr) VerFindFile16
9 pascal VerInstallFile(word ptr ptr ptr ptr ptr ptr ptr) VerInstallFile16 9 pascal VerInstallFile(word str str str str str ptr ptr) VerInstallFile16
10 pascal VerLanguageName(word ptr word) VerLanguageName16 10 pascal VerLanguageName(word ptr word) VerLanguageName16
11 pascal VerQueryValue(segptr ptr ptr ptr) VerQueryValue16 11 pascal VerQueryValue(segptr str ptr ptr) VerQueryValue16
20 stub GETFILEVERSIONINFORAW 20 stub GETFILEVERSIONINFORAW
#21 VERFTHK_THUNKDATA16 #21 VERFTHK_THUNKDATA16
#22 VERTHKSL_THUNKDATA16 #22 VERTHKSL_THUNKDATA16
name winmm name winmm
type win32 type win32
0001 stub PlaySoundA
0004 stub CloseDriver 0004 stub CloseDriver
0005 stub DefDriverProc 0005 stub DefDriverProc
0006 stub DriverCallback 0006 stub DriverCallback
...@@ -15,7 +16,6 @@ type win32 ...@@ -15,7 +16,6 @@ type win32
0015 stub OpenDriver 0015 stub OpenDriver
0016 stub OpenDriverA 0016 stub OpenDriverA
0017 stub PlaySound 0017 stub PlaySound
0001 stub PlaySoundA
0018 stub PlaySoundW 0018 stub PlaySoundW
0019 stub SendDriverMessage 0019 stub SendDriverMessage
0020 stub auxGetDevCapsA 0020 stub auxGetDevCapsA
......
name winspool name winspool
type win32 type win32
base 100
001 stub ADVANCEDSETUPDIALOG 101 stub ADVANCEDSETUPDIALOG
002 stub AbortPrinter 102 stub AbortPrinter
003 stub AddFormA 103 stub AddFormA
004 stub AddFormW 104 stub AddFormW
005 stub AddJobA 105 stub AddJobA
006 stub AddJobW 106 stub AddJobW
007 stub AddMonitorA 107 stub AddMonitorA
008 stub AddMonitorW 108 stub AddMonitorW
009 stub AddPortA 109 stub AddPortA
010 stub AddPortExA 110 stub AddPortExA
011 stub AddPortExW 111 stub AddPortExW
012 stub AddPortW 112 stub AddPortW
013 stub AddPrintProcessorA 113 stub AddPrintProcessorA
014 stub AddPrintProcessorW 114 stub AddPrintProcessorW
015 stub AddPrintProvidorA 115 stub AddPrintProvidorA
016 stub AddPrintProvidorW 116 stub AddPrintProvidorW
017 stub AddPrinterA 117 stub AddPrinterA
018 stub AddPrinterConnectionA 118 stub AddPrinterConnectionA
019 stub AddPrinterConnectionW 119 stub AddPrinterConnectionW
020 stub AddPrinterDriverA 120 stub AddPrinterDriverA
021 stub AddPrinterDriverW 121 stub AddPrinterDriverW
022 stub AddPrinterW 122 stub AddPrinterW
023 stub AdvancedDocumentPropertiesA 123 stub AdvancedDocumentPropertiesA
024 stub AdvancedDocumentPropertiesW 124 stub AdvancedDocumentPropertiesW
025 stub AdvancedSetupDialog 125 stub AdvancedSetupDialog
026 stub ClosePrinter 126 stub ClosePrinter
027 stub ConfigurePortA 127 stub ConfigurePortA
028 stub ConfigurePortW 128 stub ConfigurePortW
029 stub ConnectToPrinterDlg 129 stub ConnectToPrinterDlg
030 stub CreatePrinterIC 130 stub CreatePrinterIC
031 stub DEVICECAPABILITIES 131 stub DEVICECAPABILITIES
032 stub DEVICEMODE 132 stub DEVICEMODE
033 stub DeleteFormA 133 stub DeleteFormA
034 stub DeleteFormW 134 stub DeleteFormW
035 stub DeleteMonitorA 135 stub DeleteMonitorA
036 stub DeleteMonitorW 136 stub DeleteMonitorW
037 stub DeletePortA 137 stub DeletePortA
038 stub DeletePortW 138 stub DeletePortW
039 stub DeletePrintProcessorA 139 stub DeletePrintProcessorA
040 stub DeletePrintProcessorW 140 stub DeletePrintProcessorW
041 stub DeletePrintProvidorA 141 stub DeletePrintProvidorA
042 stub DeletePrintProvidorW 142 stub DeletePrintProvidorW
043 stub DeletePrinter 143 stub DeletePrinter
044 stub DeletePrinterConnectionA 144 stub DeletePrinterConnectionA
045 stub DeletePrinterConnectionW 145 stub DeletePrinterConnectionW
046 stub DeletePrinterDriverA 146 stub DeletePrinterDriverA
047 stub DeletePrinterDriverW 147 stub DeletePrinterDriverW
048 stub DeletePrinterIC 148 stub DeletePrinterIC
049 stub DevQueryPrint 149 stub DevQueryPrint
050 stub DeviceCapabilities 150 stub DeviceCapabilities
051 stdcall DeviceCapabilitiesA(ptr ptr long ptr ptr) DeviceCapabilities32A 151 stdcall DeviceCapabilitiesA(ptr ptr long ptr ptr) DeviceCapabilities32A
052 stub DeviceCapabilitiesW 152 stub DeviceCapabilitiesW
053 stub DeviceMode 153 stub DeviceMode
054 stub DocumentEvent 154 stub DocumentEvent
055 stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentProperties32A 155 stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentProperties32A
056 stub DocumentPropertiesW 156 stub DocumentPropertiesW
057 stub EXTDEVICEMODE 157 stub EXTDEVICEMODE
058 stub EndDocPrinter 158 stub EndDocPrinter
059 stub EndPagePrinter 159 stub EndPagePrinter
060 stub EnumFormsA 160 stub EnumFormsA
061 stub EnumFormsW 161 stub EnumFormsW
062 stub EnumJobsA 162 stub EnumJobsA
063 stub EnumJobsW 163 stub EnumJobsW
064 stub EnumMonitorsA 164 stub EnumMonitorsA
065 stub EnumMonitorsW 165 stub EnumMonitorsW
066 stub EnumPortsA 166 stub EnumPortsA
067 stub EnumPortsW 167 stub EnumPortsW
068 stub EnumPrintProcessorDatatypesA 168 stub EnumPrintProcessorDatatypesA
069 stub EnumPrintProcessorDatatypesW 169 stub EnumPrintProcessorDatatypesW
070 stub EnumPrintProcessorsA 170 stub EnumPrintProcessorsA
071 stub EnumPrintProcessorsW 171 stub EnumPrintProcessorsW
072 stub EnumPrinterDriversA 172 stub EnumPrinterDriversA
073 stub EnumPrinterDriversW 173 stub EnumPrinterDriversW
074 stub EnumPrintersA 174 stub EnumPrintersA
075 stub EnumPrintersW 175 stub EnumPrintersW
076 stub ExtDeviceMode 176 stub ExtDeviceMode
077 stub FindClosePrinterChangeNotification 177 stub FindClosePrinterChangeNotification
078 stub FindFirstPrinterChangeNotification 178 stub FindFirstPrinterChangeNotification
079 stub FindNextPrinterChangeNotification 179 stub FindNextPrinterChangeNotification
080 stub FreePrinterNotifyInfo 180 stub FreePrinterNotifyInfo
081 stub GetFormA 181 stub GetFormA
082 stub GetFormW 182 stub GetFormW
083 stub GetJobA 183 stub GetJobA
084 stub GetJobW 184 stub GetJobW
085 stub GetPrintProcessorDirectoryA 185 stub GetPrintProcessorDirectoryA
086 stub GetPrintProcessorDirectoryW 186 stub GetPrintProcessorDirectoryW
087 stub GetPrinterA 187 stub GetPrinterA
088 stub GetPrinterDataA 188 stub GetPrinterDataA
089 stub GetPrinterDataW 189 stub GetPrinterDataW
090 stub GetPrinterDriverA 190 stub GetPrinterDriverA
091 stub GetPrinterDriverDirectoryA 191 stub GetPrinterDriverDirectoryA
092 stub GetPrinterDriverDirectoryW 192 stub GetPrinterDriverDirectoryW
093 stub GetPrinterDriverW 193 stub GetPrinterDriverW
094 stub GetPrinterW 194 stub GetPrinterW
095 stub InitializeDll 195 stub InitializeDll
096 stub OpenPrinterA 196 stub OpenPrinterA
097 stub OpenPrinterW 197 stub OpenPrinterW
098 stub PlayGdiScriptOnPrinterIC 198 stub PlayGdiScriptOnPrinterIC
099 stub PrinterMessageBoxA 199 stub PrinterMessageBoxA
100 stub PrinterMessageBoxW 200 stub PrinterMessageBoxW
101 stub PrinterProperties 201 stub PrinterProperties
102 stub ReadPrinter 202 stub ReadPrinter
103 stub ResetPrinterA 203 stub ResetPrinterA
104 stub ResetPrinterW 204 stub ResetPrinterW
105 stub ScheduleJob 205 stub ScheduleJob
106 stub SetAllocFailCount 206 stub SetAllocFailCount
107 stub SetFormA 207 stub SetFormA
108 stub SetFormW 208 stub SetFormW
109 stub SetJobA 209 stub SetJobA
110 stub SetJobW 210 stub SetJobW
111 stub SetPrinterA 211 stub SetPrinterA
112 stub SetPrinterDataA 212 stub SetPrinterDataA
113 stub SetPrinterDataW 213 stub SetPrinterDataW
114 stub SetPrinterW 214 stub SetPrinterW
115 stub SpoolerDevQueryPrintW 215 stub SpoolerDevQueryPrintW
116 stub SpoolerInit 216 stub SpoolerInit
117 stub StartDocDlgA 217 stub StartDocDlgA
118 stub StartDocDlgW 218 stub StartDocDlgW
119 stub StartDocPrinterA 219 stub StartDocPrinterA
120 stub StartDocPrinterW 220 stub StartDocPrinterW
121 stub StartPagePrinter 221 stub StartPagePrinter
122 stub WaitForPrinterChange 222 stub WaitForPrinterChange
123 stub WritePrinter 223 stub WritePrinter
...@@ -12,6 +12,7 @@ type win16 ...@@ -12,6 +12,7 @@ type win16
24 pascal16 TASK_Reschedule() TASK_Reschedule 24 pascal16 TASK_Reschedule() TASK_Reschedule
27 pascal EntryAddrProc(word word) EntryAddrProc 27 pascal EntryAddrProc(word word) EntryAddrProc
28 pascal MyAlloc(word word word) MODULE_AllocateSegment 28 pascal MyAlloc(word word word) MODULE_AllocateSegment
29 pascal DefResourceHandler(word word word) NE_DefResourceHandler
30 pascal FormatCharDlgProc(word word word long) FormatCharDlgProc 30 pascal FormatCharDlgProc(word word word long) FormatCharDlgProc
# Interrupt vectors 0-255 are ordinals 100-355 # Interrupt vectors 0-255 are ordinals 100-355
......
name wsock32 name wsock32
type win32 type win32
base 0
001 stdcall accept(long ptr ptr) WINSOCK_accept32 001 stdcall accept(long ptr ptr) WINSOCK_accept32
002 stdcall bind(long ptr long) WINSOCK_bind32 002 stdcall bind(long ptr long) WINSOCK_bind32
......
...@@ -49,11 +49,13 @@ extern GC BITMAP_monoGC, BITMAP_colorGC; ...@@ -49,11 +49,13 @@ extern GC BITMAP_monoGC, BITMAP_colorGC;
} }
/* objects/bitmap.c */ /* objects/bitmap.c */
extern BOOL32 BITMAP_Init(void); extern BOOL32 BITMAP_Init(void);
extern INT16 BITMAP_GetObject16( BITMAPOBJ * bmp, INT16 count, LPVOID buffer ); extern INT16 BITMAP_GetObject16( BITMAPOBJ * bmp, INT16 count, LPVOID buffer );
extern INT32 BITMAP_GetObject32( BITMAPOBJ * bmp, INT32 count, LPVOID buffer ); extern INT32 BITMAP_GetObject32( BITMAPOBJ * bmp, INT32 count, LPVOID buffer );
extern BOOL32 BITMAP_DeleteObject( HBITMAP16 hbitmap, BITMAPOBJ * bitmap ); extern BOOL32 BITMAP_DeleteObject( HBITMAP16 hbitmap, BITMAPOBJ * bitmap );
extern XImage *BITMAP_GetXImage( const BITMAPOBJ *bmp ); extern XImage *BITMAP_GetXImage( const BITMAPOBJ *bmp );
extern INT32 BITMAP_GetBitsPadding( int width, int depth );
extern INT32 BITMAP_GetBitsWidth( int width, int depth );
/* objects/dib.c */ /* objects/dib.c */
extern int DIB_GetDIBWidthBytes( int width, int depth ); extern int DIB_GetDIBWidthBytes( int width, int depth );
......
...@@ -22,34 +22,36 @@ extern int (*IF1632_CallLargeStack)( int (*func)(), void *arg ); ...@@ -22,34 +22,36 @@ extern int (*IF1632_CallLargeStack)( int (*func)(), void *arg );
#ifndef WINELIB #ifndef WINELIB
extern LONG CallTo16_regs_ ( const CONTEXT *context ); extern LONG CALLBACK CallTo16_regs_ (const CONTEXT *context);
extern WORD CallTo16_word_ ( FARPROC16 ); extern WORD CALLBACK CallTo16_word_ (FARPROC16);
extern WORD CallTo16_word_w ( FARPROC16, WORD ); extern WORD CALLBACK CallTo16_word_w (FARPROC16,WORD);
extern LONG CallTo16_long_l ( FARPROC16, LONG ); extern LONG CALLBACK CallTo16_long_l (FARPROC16,LONG);
extern WORD CallTo16_word_ww ( FARPROC16, WORD, WORD ); extern WORD CALLBACK CallTo16_word_ww (FARPROC16,WORD,WORD);
extern WORD CallTo16_word_wl ( FARPROC16, WORD, LONG ); extern WORD CALLBACK CallTo16_word_wl (FARPROC16,WORD,LONG);
extern WORD CallTo16_word_ll ( FARPROC16, LONG, LONG ); extern WORD CALLBACK CallTo16_word_ll (FARPROC16,LONG,LONG);
extern WORD CallTo16_word_www ( FARPROC16, WORD, WORD, WORD ); extern WORD CALLBACK CallTo16_word_www (FARPROC16,WORD,WORD,WORD);
extern WORD CallTo16_word_wwl ( FARPROC16, WORD, WORD, LONG ); extern WORD CALLBACK CallTo16_word_wwl (FARPROC16,WORD,WORD,LONG);
extern WORD CallTo16_word_wlw ( FARPROC16, WORD, LONG, WORD ); extern WORD CALLBACK CallTo16_word_wlw (FARPROC16,WORD,LONG,WORD);
extern LONG CallTo16_long_wwl ( FARPROC16, WORD, WORD, LONG ); extern LONG CALLBACK CallTo16_long_wwl (FARPROC16,WORD,WORD,LONG);
extern WORD CallTo16_word_llwl ( FARPROC16, LONG, LONG, WORD, LONG ); extern WORD CALLBACK CallTo16_word_llwl (FARPROC16,LONG,LONG,WORD,LONG);
extern LONG CallTo16_long_wwwl ( FARPROC16, WORD, WORD, WORD, LONG ); extern WORD CALLBACK CallTo16_word_lwll (FARPROC16,LONG,WORD,LONG,LONG);
extern WORD CallTo16_word_lwww ( FARPROC16, LONG, WORD, WORD, WORD ); extern LONG CALLBACK CallTo16_long_wwwl (FARPROC16,WORD,WORD,WORD,LONG);
extern WORD CallTo16_word_wwll ( FARPROC16, WORD, WORD, LONG, LONG ); extern LONG CALLBACK CallTo16_wndp_wwwl (FARPROC16,WORD,WORD,WORD,LONG);
extern WORD CallTo16_word_wllwl( FARPROC16, WORD, LONG, LONG, WORD, LONG ); extern WORD CALLBACK CallTo16_word_lwww (FARPROC16,LONG,WORD,WORD,WORD);
extern LONG CallTo16_long_lwwll( FARPROC16, LONG, WORD, WORD, LONG, LONG ); extern WORD CALLBACK CallTo16_word_wwll (FARPROC16,WORD,WORD,LONG,LONG);
extern WORD CallTo16_word_wwlll( FARPROC16, WORD, WORD, LONG, LONG, LONG ); extern WORD CALLBACK CallTo16_word_wllwl(FARPROC16,WORD,LONG,LONG,WORD,LONG);
extern LONG CallTo16_long_lllllllwlwwwl( FARPROC16, LONG, LONG, LONG, extern LONG CALLBACK CallTo16_long_lwwll(FARPROC16,LONG,WORD,WORD,LONG,LONG);
LONG, LONG, LONG, LONG, WORD, LONG, extern WORD CALLBACK CallTo16_word_wwlll(FARPROC16,WORD,WORD,LONG,LONG,LONG);
WORD, WORD, WORD, LONG ); extern WORD CALLBACK CallTo16_word_wwwww(FARPROC16,WORD,WORD,WORD,WORD,WORD);
extern WORD CallTo16_word_lwll ( FARPROC16, LONG, WORD, LONG, LONG); extern LONG CALLBACK CallTo16_wndp_lllllllwlwwwl(FARPROC16,LONG,LONG,LONG,LONG,
extern WORD CallTo16_word_lwlll( FARPROC16, LONG, WORD, LONG, LONG, LONG ); LONG,LONG,LONG,WORD,LONG,WORD,
extern WORD CallTo16_word_llll ( FARPROC16, LONG, LONG, LONG, LONG); WORD,WORD,LONG);
extern LONG CallTo16_long_lwlll( FARPROC16, LONG, WORD, LONG, LONG, LONG ); extern WORD CALLBACK CallTo16_word_lwlll(FARPROC16,LONG,WORD,LONG,LONG,LONG);
extern LONG CallTo16_long_lwwllwlllllw( FARPROC16, LONG, WORD, WORD, LONG, extern WORD CALLBACK CallTo16_word_llll (FARPROC16,LONG,LONG,LONG,LONG);
LONG, WORD, LONG, LONG, LONG, LONG, extern LONG CALLBACK CallTo16_long_lwlll(FARPROC16,LONG,WORD,LONG,LONG,LONG);
LONG, WORD); extern LONG CALLBACK CallTo16_long_lwwllwlllllw(FARPROC16,LONG,WORD,WORD,LONG,
LONG,WORD,LONG,LONG,LONG,LONG,
LONG,WORD);
#define CallDriverProc( func, dwId, msg, hdrvr, lparam1, lparam2 ) \ #define CallDriverProc( func, dwId, msg, hdrvr, lparam1, lparam2 ) \
CallTo16_long_lwwll( func, dwId, msg, hdrvr, lparam1, lparam2 ) CallTo16_long_lwwll( func, dwId, msg, hdrvr, lparam1, lparam2 )
...@@ -66,28 +68,20 @@ extern LONG CallTo16_long_lwwllwlllllw( FARPROC16, LONG, WORD, WORD, LONG, ...@@ -66,28 +68,20 @@ extern LONG CallTo16_long_lwwllwlllllw( FARPROC16, LONG, WORD, WORD, LONG,
/* List of the 32-bit callback functions. This list is used */ /* List of the 32-bit callback functions. This list is used */
/* by the build program to generate the file if1632/callto32.S */ /* by the build program to generate the file if1632/callto32.S */
extern LONG CallTo32_0( FARPROC32 ); extern LONG CALLBACK CallTo32_0( FARPROC32 );
extern LONG CallTo32_1( FARPROC32, DWORD ); extern LONG CALLBACK CallTo32_1( FARPROC32, DWORD );
extern LONG CallTo32_2( FARPROC32, DWORD, DWORD ); extern LONG CALLBACK CallTo32_2( FARPROC32, DWORD, DWORD );
extern LONG CallTo32_3( FARPROC32, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_3( FARPROC32, DWORD, DWORD, DWORD );
extern LONG CallTo32_4( FARPROC32, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_4( FARPROC32, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_5( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_5( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_6( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_6( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_7( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_7( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_8( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_8( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_9( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_9( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_10( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_10( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_11( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_11( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_12( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_12( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_13( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ); extern LONG CALLBACK CallTo32_13( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
#define CallTaskStart32( func ) \
CallTo32_0( func )
#define CallDLLEntryProc32( func, hmodule, a, b ) \
CallTo32_3( func, hmodule, a, b )
#define CallWordBreakProc32A( func, lpch, ichCurrent, cch, code ) \
CallTo32_4( func, (DWORD)lpch, ichCurrent, cch, code )
#else /* WINELIB */ #else /* WINELIB */
...@@ -101,8 +95,6 @@ extern LONG CallTo32_13( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DW ...@@ -101,8 +95,6 @@ extern LONG CallTo32_13( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DW
(*func)( nExitType ) (*func)( nExitType )
#define CallWordBreakProc16( func, lpch, ichCurrent, cch, code ) \ #define CallWordBreakProc16( func, lpch, ichCurrent, cch, code ) \
(*func)( lpch, ichCurrent, cch, code ) (*func)( lpch, ichCurrent, cch, code )
#define CallWordBreakProc32A( func, lpch, ichCurrent, cch, code ) \
(*func)( lpch, ichCurrent, cch, code )
#endif /* WINELIB */ #endif /* WINELIB */
......
...@@ -38,6 +38,6 @@ typedef struct tagCLASS ...@@ -38,6 +38,6 @@ typedef struct tagCLASS
extern void CLASS_DumpClass( CLASS *class ); extern void CLASS_DumpClass( CLASS *class );
extern void CLASS_WalkClasses(void); extern void CLASS_WalkClasses(void);
extern void CLASS_FreeModuleClasses( HMODULE16 hModule ); extern void CLASS_FreeModuleClasses( HMODULE16 hModule );
extern CLASS *CLASS_FindClassByAtom( ATOM atom, HINSTANCE16 hinstance ); extern CLASS *CLASS_FindClassByAtom( ATOM atom, HINSTANCE32 hinstance );
#endif /* __WINE_CLASS_H */ #endif /* __WINE_CLASS_H */
...@@ -41,25 +41,18 @@ void WINAPI InitCommonControls(void); ...@@ -41,25 +41,18 @@ void WINAPI InitCommonControls(void);
#define CCS_BOTTOM 0x0003 #define CCS_BOTTOM 0x0003
#define SBARS_SIZEGRIP 0x0100 #define SBARS_SIZEGRIP 0x0100
/* UpDown control */ /* UpDown */
#define UPDOWN_CLASS32A "msctls_updown32" #define UPDOWN_CLASS32A "msctls_updown32"
#define UPDOWN_CLASS32W "msctls_updown32" #define UPDOWN_CLASS32W L"msctls_updown32"
#define UPDOWN_CLASS16 "msctls_updown" #define UPDOWN_CLASS16 "msctls_updown"
#define UPDOWN_CLASS WINELIB_NAME_AW(UPDOWN_CLASS) #define UPDOWN_CLASS WINELIB_NAME_AW(UPDOWN_CLASS)
typedef struct tagUDACCEL typedef struct tagUDACCEL
{ {
UINT32 nSec; UINT32 nSec;
UINT32 nInc; UINT32 nInc;
} UDACCEL; } UDACCEL;
typedef struct tagNM_UPDOWN
{
NMHDR hdr;
int iPos;
int iDelta;
} NM_UPDOWN;
#define UD_MAXVAL 0x7fff #define UD_MAXVAL 0x7fff
#define UD_MINVAL 0x8001 #define UD_MINVAL 0x8001
...@@ -74,7 +67,7 @@ typedef struct tagNM_UPDOWN ...@@ -74,7 +67,7 @@ typedef struct tagNM_UPDOWN
#define UDS_NOTHOUSANDS 0x0080 #define UDS_NOTHOUSANDS 0x0080
#define UDN_FIRST (0U-721) #define UDN_FIRST (0U-721)
#define UDN_DELTAPOS (UDN_FIRST - 1) #define UDN_DELTAPOS (UDN_FIRST-1)
#define UDM_SETRANGE (WM_USER+101) #define UDM_SETRANGE (WM_USER+101)
#define UDM_GETRANGE (WM_USER+102) #define UDM_GETRANGE (WM_USER+102)
...@@ -87,13 +80,28 @@ typedef struct tagNM_UPDOWN ...@@ -87,13 +80,28 @@ typedef struct tagNM_UPDOWN
#define UDM_SETBASE (WM_USER+109) #define UDM_SETBASE (WM_USER+109)
#define UDM_GETBASE (WM_USER+110) #define UDM_GETBASE (WM_USER+110)
/* Progress Bar */
#define PROGRESS_CLASS32A "msctls_progress32"
#define PROGRESS_CLASS32W L"msctls_progress32"
#define PROGRESS_CLASS16 "msctls_progress"
#define PROGRESS_CLASS WINELIB_NAME_AW(PROGRESS_CLASS)
#define PBM_SETRANGE (WM_USER+1)
#define PBM_SETPOS (WM_USER+2)
#define PBM_DELTAPOS (WM_USER+3)
#define PBM_SETSTEP (WM_USER+4)
#define PBM_STEPIT (WM_USER+5)
/* Functions prototypes */ /* Functions prototypes */
HWND32 WINAPI CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32); HWND32 WINAPI CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32);
HWND32 WINAPI CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32); HWND32 WINAPI CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32);
#define CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow) #define CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow)
HWND32 WINAPI CreateUpDownControl(DWORD,INT32,INT32,INT32,INT32,HWND32, HWND32 WINAPI CreateUpDownControl(DWORD,INT32,INT32,INT32,INT32,
INT32,HINSTANCE32,HWND32,INT32,INT32,INT32); HWND32,INT32,HINSTANCE32,HWND32,
INT32,INT32,INT32);
VOID WINAPI DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32); VOID WINAPI DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32);
VOID WINAPI DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32); VOID WINAPI DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32);
#define DrawStatusText WINELIB_NAME_AW(DrawStatusText) #define DrawStatusText WINELIB_NAME_AW(DrawStatusText)
......
#if !defined(COMPOBJ_H) #if !defined(COMPOBJ_H)
#define COMPOBJ_H #define COMPOBJ_H
struct tagCLSID { struct tagGUID
DWORD Data1; {
WORD Data2; DWORD Data1;
WORD Data3; WORD Data2;
BYTE Data4[8]; WORD Data3;
BYTE Data4[8];
}; };
typedef struct tagCLSID CLSID; typedef struct tagGUID GUID;
typedef struct tagGUID CLSID;
OLESTATUS WINAPI StringFromCLSID(const CLSID *id, LPSTR); OLESTATUS WINAPI StringFromCLSID(const CLSID *id, LPSTR);
OLESTATUS WINAPI CLSIDFromString(const LPCSTR, CLSID *); OLESTATUS WINAPI CLSIDFromString(const LPCSTR, CLSID *);
......
...@@ -265,7 +265,7 @@ extern int DEBUG_GetCurrentFrame(struct name_hash ** name, ...@@ -265,7 +265,7 @@ extern int DEBUG_GetCurrentFrame(struct name_hash ** name,
extern int DEBUG_ReadExecutableDbgInfo(void); extern int DEBUG_ReadExecutableDbgInfo(void);
/* debugger/msc.c */ /* debugger/msc.c */
extern int DEBUG_RegisterDebugInfo(int, struct pe_data *pe, extern int DEBUG_RegisterDebugInfo(struct pe_data *pe,
int, unsigned long, unsigned long); int, unsigned long, unsigned long);
extern int DEBUG_ProcessDeferredDebug(void); extern int DEBUG_ProcessDeferredDebug(void);
extern int DEBUG_RegisterELFDebugInfo(int load_addr, u_long size, char * name); extern int DEBUG_RegisterELFDebugInfo(int load_addr, u_long size, char * name);
......
...@@ -40,8 +40,27 @@ typedef struct ...@@ -40,8 +40,27 @@ typedef struct
DWORD refcount; DWORD refcount;
} K32OBJ; } K32OBJ;
/* Kernel object list entry */
typedef struct _K32OBJ_ENTRY
{
K32OBJ *obj;
struct _K32OBJ_ENTRY *next;
struct _K32OBJ_ENTRY *prev;
} K32OBJ_ENTRY;
/* Kernel object list */
typedef struct
{
K32OBJ_ENTRY *head;
K32OBJ_ENTRY *tail;
} K32OBJ_LIST;
extern void K32OBJ_IncCount( K32OBJ *ptr ); extern void K32OBJ_IncCount( K32OBJ *ptr );
extern void K32OBJ_DecCount( K32OBJ *ptr ); extern void K32OBJ_DecCount( K32OBJ *ptr );
extern void K32OBJ_AddHead( K32OBJ_LIST *list, K32OBJ *ptr );
extern void K32OBJ_AddTail( K32OBJ_LIST *list, K32OBJ *ptr );
extern void K32OBJ_Remove( K32OBJ_LIST *list, K32OBJ *ptr );
extern K32OBJ *K32OBJ_RemoveHead( K32OBJ_LIST *list );
extern BOOL32 K32OBJ_AddName( K32OBJ *obj, LPCSTR name ); extern BOOL32 K32OBJ_AddName( K32OBJ *obj, LPCSTR name );
extern K32OBJ *K32OBJ_FindName( LPCSTR name ); extern K32OBJ *K32OBJ_FindName( LPCSTR name );
extern K32OBJ *K32OBJ_FindNameType( LPCSTR name, K32OBJ_TYPE type ); extern K32OBJ *K32OBJ_FindNameType( LPCSTR name, K32OBJ_TYPE type );
......
...@@ -111,22 +111,25 @@ typedef struct resource_nameinfo_s NE_NAMEINFO; ...@@ -111,22 +111,25 @@ typedef struct resource_nameinfo_s NE_NAMEINFO;
((NE_WIN32_EXTRAINFO *)((pModule) + 1))->pe_module : 0)) ((NE_WIN32_EXTRAINFO *)((pModule) + 1))->pe_module : 0))
/* module.c */ /* module.c */
extern NE_MODULE *MODULE_GetPtr( HMODULE16 hModule ); extern NE_MODULE *MODULE_GetPtr( HMODULE32 hModule );
extern void MODULE_DumpModule( HMODULE16 hmodule ); extern HMODULE16 MODULE_HANDLEtoHMODULE16( HANDLE32 handle );
extern HMODULE32 MODULE_HANDLEtoHMODULE32( HANDLE32 handle );
extern void MODULE_DumpModule( HMODULE32 hmodule );
extern void MODULE_WalkModules(void); extern void MODULE_WalkModules(void);
extern int MODULE_OpenFile( HMODULE16 hModule ); extern int MODULE_OpenFile( HMODULE32 hModule );
extern LPSTR MODULE_GetModuleName( HMODULE16 hModule ); extern LPSTR MODULE_GetModuleName( HMODULE32 hModule );
extern void MODULE_RegisterModule( NE_MODULE *pModule ); extern void MODULE_RegisterModule( NE_MODULE *pModule );
extern HMODULE16 MODULE_FindModule( LPCSTR path ); extern HMODULE32 MODULE_FindModule( LPCSTR path );
extern HINSTANCE16 MODULE_GetInstance( HMODULE16 hModule ); extern HINSTANCE16 MODULE_CreateInstance( HMODULE16 hModule, LOADPARAMS* paramBlock );
extern HMODULE16 MODULE_CreateDummyModule( const OFSTRUCT *ofs ); extern HINSTANCE16 MODULE_GetInstance( HMODULE32 hModule );
extern HINSTANCE16 MODULE_Load( LPCSTR name, LPVOID paramBlock, BOOL32 first ); extern HMODULE32 MODULE_CreateDummyModule( const OFSTRUCT *ofs );
extern WORD MODULE_GetOrdinal( HMODULE16 hModule, const char *name ); extern HINSTANCE16 MODULE_Load( LPCSTR name, LPVOID paramBlock, UINT16 flags );
extern FARPROC16 MODULE_GetEntryPoint( HMODULE16 hModule, WORD ordinal ); extern WORD MODULE_GetOrdinal( HMODULE32 hModule, const char *name );
extern BOOL16 MODULE_SetEntryPoint( HMODULE16 hModule, WORD ordinal, extern FARPROC16 MODULE_GetEntryPoint( HMODULE32 hModule, WORD ordinal );
extern BOOL16 MODULE_SetEntryPoint( HMODULE32 hModule, WORD ordinal,
WORD offset ); WORD offset );
extern FARPROC16 MODULE_GetWndProcEntry16( const char *name ); extern FARPROC16 MODULE_GetWndProcEntry16( const char *name );
extern FARPROC16 WIN32_GetProcAddress16( HMODULE16 hmodule, LPSTR name ); extern FARPROC16 WIN32_GetProcAddress16( HMODULE32 hmodule, LPSTR name );
/* builtin.c */ /* builtin.c */
extern BOOL16 BUILTIN_Init(void); extern BOOL16 BUILTIN_Init(void);
......
...@@ -88,6 +88,10 @@ typedef struct ...@@ -88,6 +88,10 @@ typedef struct
#define NE_FFLAGS_MULTIPLEDATA 0x0002 #define NE_FFLAGS_MULTIPLEDATA 0x0002
#define NE_FFLAGS_WIN32 0x0010 #define NE_FFLAGS_WIN32 0x0010
#define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */ #define NE_FFLAGS_BUILTIN 0x0020 /* Wine built-in module */
#define NE_FFLAGS_IMPLICIT 0x0040
#define NE_FFLAGS_FRAMEBUF 0x0100 /* OS/2 fullscreen app */
#define NE_FFLAGS_CONSOLE 0x0200 /* OS/2 console app */
#define NE_FFLAGS_GUI 0x0300 /* right, (NE_FFLAGS_FRAMEBUF | NE_FFLAGS_CONSOLE) */
#define NE_FFLAGS_SELFLOAD 0x0800 #define NE_FFLAGS_SELFLOAD 0x0800
#define NE_FFLAGS_LINKERROR 0x2000 #define NE_FFLAGS_LINKERROR 0x2000
#define NE_FFLAGS_CALLWEP 0x4000 #define NE_FFLAGS_CALLWEP 0x4000
...@@ -225,7 +229,7 @@ struct resource_typeinfo_s ...@@ -225,7 +229,7 @@ struct resource_typeinfo_s
{ {
unsigned short type_id; /* Type identifier */ unsigned short type_id; /* Type identifier */
unsigned short count; /* Number of resources of this type */ unsigned short count; /* Number of resources of this type */
unsigned long reserved; DWORD resloader; /* SetResourceHandler() */
/* /*
* Name info array. * Name info array.
*/ */
...@@ -244,7 +248,4 @@ struct resource_typeinfo_s ...@@ -244,7 +248,4 @@ struct resource_typeinfo_s
#define NE_RSCTYPE_RCDATA 0x800a #define NE_RSCTYPE_RCDATA 0x800a
#define NE_RSCTYPE_STRING 0x8006 #define NE_RSCTYPE_STRING 0x8006
int load_typeinfo (int, struct resource_typeinfo_s *);
int load_nameinfo (int, struct resource_nameinfo_s *);
#endif /* __WINE_NEEXE_H */ #endif /* __WINE_NEEXE_H */
...@@ -6,20 +6,34 @@ ...@@ -6,20 +6,34 @@
#include "winnt.h" #include "winnt.h"
#include "peexe.h" #include "peexe.h"
/* This struct is used for loaded PE .dlls */
struct pe_data { struct pe_data {
LPIMAGE_NT_HEADERS pe_header; LPIMAGE_NT_HEADERS pe_header;
LPIMAGE_SECTION_HEADER pe_seg; LPIMAGE_SECTION_HEADER pe_seg;
LPIMAGE_IMPORT_DESCRIPTOR pe_import; HMODULE32 mappeddll;
LPIMAGE_EXPORT_DIRECTORY pe_export;
LPIMAGE_RESOURCE_DIRECTORY pe_resource;
LPIMAGE_BASE_RELOCATION pe_reloc;
int base_addr;
int load_addr;
int vma_size;
}; };
typedef struct pe_data PE_MODULE; typedef struct pe_data PE_MODULE;
/* modreference used for attached processes
* all section are calculated here, relocations etc.
*/
struct pe_modref {
struct pe_modref *next;
PE_MODULE *pe_module;
unsigned long int load_addr;
LPIMAGE_IMPORT_DESCRIPTOR pe_import;
LPIMAGE_EXPORT_DIRECTORY pe_export;
LPIMAGE_RESOURCE_DIRECTORY pe_resource;
LPIMAGE_BASE_RELOCATION pe_reloc;
int flags;
#define PE_MODREF_PROCESS_ATTACHED 0x00000001
#define PE_MODREF_NO_DLL_CALLS 0x00000002
#define PE_MODREF_RELOCS_DONE 0x00000004
};
typedef struct pe_modref PE_MODREF;
extern int PE_unloadImage(HMODULE32 hModule); extern int PE_unloadImage(HMODULE32 hModule);
extern FARPROC32 PE_FindExportedFunction(struct pe_data *pe, LPCSTR funcName); extern FARPROC32 PE_FindExportedFunction(struct pe_data *pe, LPCSTR funcName);
extern void my_wcstombs(char * result, u_short * source, int len); extern void my_wcstombs(char * result, u_short * source, int len);
...@@ -31,7 +45,10 @@ extern BOOL32 PE_EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR,ENUMRESLANGPRO ...@@ -31,7 +45,10 @@ extern BOOL32 PE_EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR,ENUMRESLANGPRO
extern BOOL32 PE_EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR,ENUMRESLANGPROC32W,LONG); extern BOOL32 PE_EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR,ENUMRESLANGPROC32W,LONG);
extern HRSRC32 PE_FindResourceEx32W(HINSTANCE32,LPCWSTR,LPCWSTR,WORD); extern HRSRC32 PE_FindResourceEx32W(HINSTANCE32,LPCWSTR,LPCWSTR,WORD);
extern DWORD PE_SizeofResource32(HINSTANCE32,HRSRC32); extern DWORD PE_SizeofResource32(HINSTANCE32,HRSRC32);
extern HMODULE32 PE_LoadLibraryEx32A(LPCSTR,HFILE32,DWORD);
extern HGLOBAL32 PE_LoadResource32(HINSTANCE32,HRSRC32); extern HGLOBAL32 PE_LoadResource32(HINSTANCE32,HRSRC32);
extern void PE_InitializeDLLs(HMODULE16,DWORD,LPVOID);
struct _PDB32; /* forward definition */
extern void PE_InitializeDLLs(struct _PDB32*,DWORD,LPVOID);
#endif /* __WINE_PE_IMAGE_H */ #endif /* __WINE_PE_IMAGE_H */
...@@ -323,7 +323,7 @@ typedef struct _IMAGE_RESOURCE_DATA_ENTRY { ...@@ -323,7 +323,7 @@ typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
DWORD OffsetToData; DWORD OffsetToData;
DWORD Size; DWORD Size;
DWORD CodePage; DWORD CodePage;
DWORD Reserved; DWORD ResourceHandle;
} IMAGE_RESOURCE_DATA_ENTRY,*LPIMAGE_RESOURCE_DATA_ENTRY; } IMAGE_RESOURCE_DATA_ENTRY,*LPIMAGE_RESOURCE_DATA_ENTRY;
typedef struct _IMAGE_BASE_RELOCATION typedef struct _IMAGE_BASE_RELOCATION
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "winbase.h" #include "winbase.h"
#include "winnt.h" #include "winnt.h"
#include "handle32.h" #include "handle32.h"
#include "pe_image.h"
#include "task.h" #include "task.h"
/* Process handle entry */ /* Process handle entry */
...@@ -71,7 +72,7 @@ typedef struct _PDB32 ...@@ -71,7 +72,7 @@ typedef struct _PDB32
ENVDB *env_db; /* 40 Environment database */ ENVDB *env_db; /* 40 Environment database */
HANDLE_TABLE *handle_table; /* 44 Handle table */ HANDLE_TABLE *handle_table; /* 44 Handle table */
struct _PDB32 *parent; /* 48 Parent process */ struct _PDB32 *parent; /* 48 Parent process */
void *modref_list; /* 4c MODREF list */ PE_MODREF *modref_list; /* 4c MODREF list */
void *thread_list; /* 50 List of threads */ void *thread_list; /* 50 List of threads */
void *debuggee_CB; /* 54 Debuggee context block */ void *debuggee_CB; /* 54 Debuggee context block */
void *local_heap_free; /* 58 Head of local heap free list */ void *local_heap_free; /* 58 Head of local heap free list */
...@@ -82,7 +83,7 @@ typedef struct _PDB32 ...@@ -82,7 +83,7 @@ typedef struct _PDB32
DWORD tls_bits[2]; /* 88 TLS in-use bits */ DWORD tls_bits[2]; /* 88 TLS in-use bits */
DWORD process_dword; /* 90 Unknown */ DWORD process_dword; /* 90 Unknown */
struct _PDB32 *group; /* 94 Process group */ struct _PDB32 *group; /* 94 Process group */
void *exe_modref; /* 98 MODREF for the process EXE */ PE_MODREF *exe_modref; /* 98 MODREF for the process EXE */
LPTOP_LEVEL_EXCEPTION_FILTER top_filter; /* 9c Top exception filter */ LPTOP_LEVEL_EXCEPTION_FILTER top_filter; /* 9c Top exception filter */
DWORD priority; /* a0 Priority level */ DWORD priority; /* a0 Priority level */
HANDLE32 heap_list; /* a4 Head of process heap list */ HANDLE32 heap_list; /* a4 Head of process heap list */
...@@ -101,7 +102,7 @@ extern HANDLE32 PROCESS_AllocHandle( K32OBJ *ptr, DWORD flags); ...@@ -101,7 +102,7 @@ extern HANDLE32 PROCESS_AllocHandle( K32OBJ *ptr, DWORD flags);
extern K32OBJ *PROCESS_GetObjPtr( HANDLE32 handle, K32OBJ_TYPE type ); extern K32OBJ *PROCESS_GetObjPtr( HANDLE32 handle, K32OBJ_TYPE type );
extern BOOL32 PROCESS_SetObjPtr( HANDLE32 handle, K32OBJ *ptr, DWORD flags ); extern BOOL32 PROCESS_SetObjPtr( HANDLE32 handle, K32OBJ *ptr, DWORD flags );
extern PDB32 *PROCESS_Create( TDB *pTask ); extern PDB32 *PROCESS_Create( TDB *pTask, LPCSTR cmd_line );
extern void PROCESS_Destroy( K32OBJ *ptr ); extern void PROCESS_Destroy( K32OBJ *ptr );
extern PDB32 *pCurrentProcess; extern PDB32 *pCurrentProcess;
......
/*
* Progress class extra info
*
* Copyright 1997 Dimitrie O. Paun
*/
#ifndef __WINE_PROGRESS_H
#define __WINE_PROGRESS_H
#include "windows.h"
#include "commctrl.h"
typedef struct
{
INT32 CurVal; /* Current progress value */
INT32 MinVal; /* Minimum progress value */
INT32 MaxVal; /* Maximum progress value */
INT32 Step; /* Step to use on PMB_STEPIT */
} PROGRESS_INFO;
LRESULT WINAPI ProgressWindowProc(HWND32, UINT32, WPARAM32, LPARAM);
#endif /* __WINE_PROGRESS_H */
...@@ -44,14 +44,21 @@ extern void LIBRES_RegisterResources(const struct resource* const * Res); ...@@ -44,14 +44,21 @@ extern void LIBRES_RegisterResources(const struct resource* const * Res);
#define WINE_CONSTRUCTOR #define WINE_CONSTRUCTOR
#endif #endif
typedef HGLOBAL16 (CALLBACK *RESOURCEHANDLER16)(HGLOBAL16, HMODULE16, HRSRC16 );
/* FIXME: convert all NE_ functions to accept NE_MODULE pointer instead
* of redundant hModule (which is always verified prior to calling these).
*/
extern int NE_AccessResource( HMODULE16 hModule, HRSRC16 hRsrc ); extern int NE_AccessResource( HMODULE16 hModule, HRSRC16 hRsrc );
extern BOOL32 NE_FreeResource( HMODULE16 hModule, HGLOBAL16 handle ); extern BOOL32 NE_FreeResource( HMODULE16 hModule, HGLOBAL16 handle );
extern HRSRC16 NE_FindResource(HMODULE16 hModule, SEGPTR typeId, SEGPTR resId); extern HRSRC16 NE_FindResource(HMODULE16 hModule, SEGPTR typeId, SEGPTR resId);
extern DWORD NE_SizeofResource( HMODULE16 hModule, HRSRC16 hRsrc ); extern DWORD NE_SizeofResource( HMODULE16 hModule, HRSRC16 hRsrc );
extern SEGPTR NE_LockResource( HMODULE16 hModule, HGLOBAL16 handle ); extern SEGPTR NE_LockResource( HMODULE16 hModule, HGLOBAL16 handle );
extern HGLOBAL16 NE_AllocResource( HMODULE16 hModule, HRSRC16 hRsrc, extern HGLOBAL16 NE_AllocResource( HMODULE16 hModule, HRSRC16 hRsrc, DWORD size );
DWORD size );
extern HGLOBAL16 NE_LoadResource( HMODULE16 hModule, HRSRC16 hRsrc ); extern HGLOBAL16 NE_LoadResource( HMODULE16 hModule, HRSRC16 hRsrc );
extern BOOL32 NE_InitResourceHandler( HMODULE16 hModule );
extern FARPROC32 NE_SetResourceHandler( HMODULE16 hModule, SEGPTR typeId, FARPROC32 handler);
extern HGLOBAL16 SYSRES_LoadResource( SYSTEM_RESOURCE id ); extern HGLOBAL16 SYSRES_LoadResource( SYSTEM_RESOURCE id );
extern void SYSRES_FreeResource( HGLOBAL16 handle ); extern void SYSRES_FreeResource( HGLOBAL16 handle );
......
...@@ -18,6 +18,9 @@ ...@@ -18,6 +18,9 @@
#define SPY_RESULT_OK32 0x0001 #define SPY_RESULT_OK32 0x0001
#define SPY_RESULT_INVALIDHWND16 0x0002 #define SPY_RESULT_INVALIDHWND16 0x0002
#define SPY_RESULT_INVALIDHWND32 0x0003 #define SPY_RESULT_INVALIDHWND32 0x0003
#define SPY_RESULT_DEFWND16 0x0004
#define SPY_RESULT_DEFWND32 0x0005
extern const char *SPY_GetMsgName( UINT32 msg ); extern const char *SPY_GetMsgName( UINT32 msg );
extern void SPY_EnterMessage( INT32 iFlag, HWND32 hwnd, UINT32 msg, extern void SPY_EnterMessage( INT32 iFlag, HWND32 hwnd, UINT32 msg,
......
...@@ -37,9 +37,10 @@ typedef struct ...@@ -37,9 +37,10 @@ typedef struct
DWORD edx; DWORD edx;
DWORD ecx; DWORD ecx;
DWORD ebx; DWORD ebx;
DWORD restore_addr; /* return address for restoring code selector */
DWORD codeselector; /* code selector to restore */
DWORD ebp; /* saved 32-bit frame pointer */ DWORD ebp; /* saved 32-bit frame pointer */
DWORD retaddr; /* return address */ DWORD retaddr; /* actual return address */
DWORD codeselector; /* code selector for return address */
DWORD args[1]; /* arguments to 16-bit function */ DWORD args[1]; /* arguments to 16-bit function */
} STACK32FRAME; } STACK32FRAME;
......
...@@ -133,6 +133,7 @@ ...@@ -133,6 +133,7 @@
#undef DEBUG_OLE #undef DEBUG_OLE
#undef DEBUG_PALETTE #undef DEBUG_PALETTE
#undef DEBUG_PROFILE #undef DEBUG_PROFILE
#undef DEBUG_PROGRESS
#undef DEBUG_PROP #undef DEBUG_PROP
#undef DEBUG_REG #undef DEBUG_REG
#undef DEBUG_REGION #undef DEBUG_REGION
...@@ -218,6 +219,7 @@ ...@@ -218,6 +219,7 @@
#define DEBUG_OLE #define DEBUG_OLE
#define DEBUG_PALETTE #define DEBUG_PALETTE
#define DEBUG_PROFILE #define DEBUG_PROFILE
#define DEBUG_PROGRESS
#define DEBUG_PROP #define DEBUG_PROP
#define DEBUG_REG #define DEBUG_REG
#define DEBUG_REGION #define DEBUG_REGION
......
...@@ -23,45 +23,4 @@ void STRUCT32_MDICREATESTRUCT32Ato16( const MDICREATESTRUCT32A*, ...@@ -23,45 +23,4 @@ void STRUCT32_MDICREATESTRUCT32Ato16( const MDICREATESTRUCT32A*,
MDICREATESTRUCT16*); MDICREATESTRUCT16*);
void STRUCT32_MDICREATESTRUCT16to32A( const MDICREATESTRUCT16*, void STRUCT32_MDICREATESTRUCT16to32A( const MDICREATESTRUCT16*,
MDICREATESTRUCT32A*); MDICREATESTRUCT32A*);
#pragma pack(1)
typedef struct {
BYTE bWidth;
BYTE bHeight;
BYTE bColorCount;
BYTE bReserved;
WORD wPlanes;
WORD wBitCount;
DWORD dwBytesInRes;
WORD wResId WINE_PACKED;
/*WORD padding; Spec is wrong, no padding here*/
} ICONDIRENTRY32;
typedef struct {
WORD wWidth;
WORD wHeight;
WORD wPlanes;
WORD wBitCount;
DWORD dwBytesInRes;
WORD wResId WINE_PACKED;
/*WORD padding;*/
} CURSORDIRENTRY32;
typedef union{
ICONDIRENTRY32 icon;
CURSORDIRENTRY32 cursor;
} CURSORICONDIRENTRY32;
typedef struct {
WORD idReserved;
WORD idType;
WORD idCount;
/*WORD padding;*/
CURSORICONDIRENTRY32 idEntries[1];
} CURSORICONDIR32;
#pragma pack(4)
#endif /* __WINE_STRUCT32_H */ #endif /* __WINE_STRUCT32_H */
...@@ -32,6 +32,10 @@ struct SysColorObjects ...@@ -32,6 +32,10 @@ struct SysColorObjects
/* COLOR_BTNTEXT */ /* COLOR_BTNTEXT */
/* COLOR_INACTIVECAPTIONTEXT */ /* COLOR_INACTIVECAPTIONTEXT */
HBRUSH32 hbrushBtnHighlight; /* COLOR_BTNHIGHLIGHT */ HBRUSH32 hbrushBtnHighlight; /* COLOR_BTNHIGHLIGHT */
/* COLOR_3DDKSHADOW */
/* COLOR_3DLIGHT */
/* COLOR_INFOTEXT */
/* COLOR_INFOBK */
}; };
extern void SYSCOLOR_Init(void); extern void SYSCOLOR_Init(void);
......
...@@ -51,11 +51,15 @@ typedef struct ...@@ -51,11 +51,15 @@ typedef struct
struct _THDB; struct _THDB;
struct _WSINFO; struct _WSINFO;
/* signal proc typedef */
typedef void (CALLBACK *USERSIGNALPROC)(HANDLE16, UINT16, UINT16,
HINSTANCE16, HQUEUE16);
/* Task database. See 'Windows Internals' p. 226. /* Task database. See 'Windows Internals' p. 226.
* Note that 16-bit OLE 2 libs like to read it directly * Note that 16-bit OLE 2 libs like to read it directly
* so we have to keep entry offsets as they are. * so we have to keep entry offsets as they are.
*/ */
typedef struct typedef struct _TDB
{ {
HTASK16 hNext; /* 00 Selector of next TDB */ HTASK16 hNext; /* 00 Selector of next TDB */
DWORD ss_sp WINE_PACKED; /* 02 Stack pointer of task */ DWORD ss_sp WINE_PACKED; /* 02 Stack pointer of task */
...@@ -75,7 +79,7 @@ typedef struct ...@@ -75,7 +79,7 @@ typedef struct
HTASK16 hParent; /* 22 Selector of TDB of parent */ HTASK16 hParent; /* 22 Selector of TDB of parent */
WORD signal_flags; /* 24 Flags for signal handler */ WORD signal_flags; /* 24 Flags for signal handler */
FARPROC16 sighandler WINE_PACKED; /* 26 Signal handler */ FARPROC16 sighandler WINE_PACKED; /* 26 Signal handler */
FARPROC16 userhandler WINE_PACKED; /* 2a USER signal handler */ USERSIGNALPROC userhandler WINE_PACKED; /* 2a USER signal handler */
FARPROC16 discardhandler WINE_PACKED; /* 2e Handler for GlobalNotify() */ FARPROC16 discardhandler WINE_PACKED; /* 2e Handler for GlobalNotify() */
DWORD int0 WINE_PACKED; /* 32 int 0 (divide by 0) handler */ DWORD int0 WINE_PACKED; /* 32 int 0 (divide by 0) handler */
DWORD int2 WINE_PACKED; /* 36 int 2 (NMI) handler */ DWORD int2 WINE_PACKED; /* 36 int 2 (NMI) handler */
...@@ -112,6 +116,12 @@ typedef struct ...@@ -112,6 +116,12 @@ typedef struct
#define TDBF_OS2APP 0x0008 #define TDBF_OS2APP 0x0008
#define TDBF_WIN32 0x0010 #define TDBF_WIN32 0x0010
/* USER signals */
#define USIG_TERMINATION 0x0020
#define USIG_DLL_LOAD 0x0040
#define USIG_DLL_UNLOAD 0x0080
#define USIG_GPF 0x0666
#pragma pack(4) #pragma pack(4)
extern BOOL32 TASK_Init(void); extern BOOL32 TASK_Init(void);
......
...@@ -79,6 +79,8 @@ typedef struct _THDB ...@@ -79,6 +79,8 @@ typedef struct _THDB
extern THDB *THREAD_Create( PDB32 *pdb, DWORD stack_size, extern THDB *THREAD_Create( PDB32 *pdb, DWORD stack_size,
LPTHREAD_START_ROUTINE start_addr ); LPTHREAD_START_ROUTINE start_addr );
extern void THREAD_Destroy( K32OBJ *ptr ); extern void THREAD_Destroy( K32OBJ *ptr );
extern THDB *THREAD_Current(void);
extern THDB *THREAD_SwitchThread( CONTEXT *context );
extern THDB *pCurrentThread; extern THDB *pCurrentThread;
......
...@@ -22,7 +22,14 @@ typedef struct ...@@ -22,7 +22,14 @@ typedef struct
INT32 Flags; /* Internal Flags FLAG_* */ INT32 Flags; /* Internal Flags FLAG_* */
} UPDOWN_INFO; } UPDOWN_INFO;
LRESULT WINAPI UpDownWindowProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam, typedef struct tagNM_UPDOWN
LPARAM lParam); {
NMHDR hdr;
int iPos;
int iDelta;
} NM_UPDOWN;
LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
LPARAM lParam);
#endif /* __WINE_UPDOWN_H */ #endif /* __WINE_UPDOWN_H */
...@@ -23,4 +23,6 @@ extern WORD USER_HeapSel; ...@@ -23,4 +23,6 @@ extern WORD USER_HeapSel;
#define USER_HEAP_SEG_ADDR(handle) \ #define USER_HEAP_SEG_ADDR(handle) \
((handle) ? PTR_SEG_OFF_TO_SEGPTR(USER_HeapSel, (handle)) : (SEGPTR)0) ((handle) ? PTR_SEG_OFF_TO_SEGPTR(USER_HeapSel, (handle)) : (SEGPTR)0)
void USER_SignalProc(HANDLE16, UINT16, UINT16, HINSTANCE16, HQUEUE16);
#endif /* __WINE_USER_H */ #endif /* __WINE_USER_H */
...@@ -61,7 +61,7 @@ typedef struct tagWND ...@@ -61,7 +61,7 @@ typedef struct tagWND
HWINDOWPROC winproc; /* Window procedure */ HWINDOWPROC winproc; /* Window procedure */
DWORD dwMagic; /* Magic number (must be WND_MAGIC) */ DWORD dwMagic; /* Magic number (must be WND_MAGIC) */
HWND32 hwndSelf; /* Handle of this window */ HWND32 hwndSelf; /* Handle of this window */
HINSTANCE16 hInstance; /* Window hInstance (from CreateWindow) */ HINSTANCE32 hInstance; /* Window hInstance (from CreateWindow) */
RECT32 rectClient; /* Client area rel. to parent client area */ RECT32 rectClient; /* Client area rel. to parent client area */
RECT32 rectWindow; /* Whole window rel. to parent client area */ RECT32 rectWindow; /* Whole window rel. to parent client area */
LPSTR text; /* Window text */ LPSTR text; /* Window text */
...@@ -119,14 +119,12 @@ extern Window WIN_GetXWindow( HWND32 hwnd ); ...@@ -119,14 +119,12 @@ extern Window WIN_GetXWindow( HWND32 hwnd );
extern BOOL32 WIN_UnlinkWindow( HWND32 hwnd ); extern BOOL32 WIN_UnlinkWindow( HWND32 hwnd );
extern BOOL32 WIN_LinkWindow( HWND32 hwnd, HWND32 hwndInsertAfter ); extern BOOL32 WIN_LinkWindow( HWND32 hwnd, HWND32 hwndInsertAfter );
extern HWND32 WIN_FindWinToRepaint( HWND32 hwnd, HQUEUE16 hQueue ); extern HWND32 WIN_FindWinToRepaint( HWND32 hwnd, HQUEUE16 hQueue );
extern void WIN_SendParentNotify( HWND32 hwnd, WORD event, extern BOOL32 WIN_ResetQueueWindows( WND* wnd, HQUEUE16 hQueue, HQUEUE16 hNew);
WORD idChild, LPARAM lValue );
extern void WIN_ResetQueueWindows( WND* wnd, HQUEUE16 hQueue, HQUEUE16 hNew );
extern BOOL32 WIN_CreateDesktopWindow(void); extern BOOL32 WIN_CreateDesktopWindow(void);
extern HWND32 WIN_GetTopParent( HWND32 hwnd ); extern HWND32 WIN_GetTopParent( HWND32 hwnd );
extern WND* WIN_GetTopParentPtr( WND* pWnd ); extern WND* WIN_GetTopParentPtr( WND* pWnd );
extern BOOL32 WIN_IsWindowDrawable(WND*, BOOL32 ); extern BOOL32 WIN_IsWindowDrawable(WND*, BOOL32 );
extern HINSTANCE16 WIN_GetWindowInstance( HWND32 hwnd ); extern HINSTANCE32 WIN_GetWindowInstance( HWND32 hwnd );
extern WND** WIN_BuildWinArray( WND *wndPtr, UINT32 bwa, UINT32* pnum ); extern WND** WIN_BuildWinArray( WND *wndPtr, UINT32 bwa, UINT32* pnum );
extern void DEFWND_SetText( WND *wndPtr, LPCSTR text ); /* windows/defwnd.c */ extern void DEFWND_SetText( WND *wndPtr, LPCSTR text ); /* windows/defwnd.c */
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
extern "C" { extern "C" {
#endif #endif
#include <stdarg.h>
#include "wintypes.h" #include "wintypes.h"
#pragma pack(1) #pragma pack(1)
...@@ -904,6 +905,16 @@ typedef DWORD COLORREF; ...@@ -904,6 +905,16 @@ typedef DWORD COLORREF;
#define COLOR_BTNTEXT 18 #define COLOR_BTNTEXT 18
#define COLOR_INACTIVECAPTIONTEXT 19 #define COLOR_INACTIVECAPTIONTEXT 19
#define COLOR_BTNHIGHLIGHT 20 #define COLOR_BTNHIGHLIGHT 20
#define COLOR_3DDKSHADOW 21
#define COLOR_3DLIGHT 22
#define COLOR_INFOTEXT 23
#define COLOR_INFOBK 24
#define COLOR_DESKTOP COLOR_BACKGROUND
#define COLOR_3DFACE COLOR_BTNFACE
#define COLOR_3DSHADOW COLOR_BTNSHADOW
#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
/* WM_CTLCOLOR values */ /* WM_CTLCOLOR values */
#define CTLCOLOR_MSGBOX 0 #define CTLCOLOR_MSGBOX 0
...@@ -968,6 +979,10 @@ DECL_WINELIB_TYPE(LPLOGBRUSH); ...@@ -968,6 +979,10 @@ DECL_WINELIB_TYPE(LPLOGBRUSH);
#define BS_PATTERN 3 #define BS_PATTERN 3
#define BS_INDEXED 4 #define BS_INDEXED 4
#define BS_DIBPATTERN 5 #define BS_DIBPATTERN 5
#define BS_DIBPATTERNPT 6
#define BS_PATTERN8X8 7
#define BS_DIBPATTERN8X8 8
#define BS_MONOPATTERN 9
/* Hatch styles */ /* Hatch styles */
#define HS_HORIZONTAL 0 #define HS_HORIZONTAL 0
...@@ -1875,6 +1890,15 @@ typedef struct ...@@ -1875,6 +1890,15 @@ typedef struct
#define DIB_PAL_COLORS 1 #define DIB_PAL_COLORS 1
#define CBM_INIT 4 #define CBM_INIT 4
typedef struct
{
BITMAP32 dsBm;
BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3];
HANDLE32 dshSection;
DWORD dsOffset;
} DIBSECTION,*LPDIBSECTION;
/* Cursors / Icons */ /* Cursors / Icons */
...@@ -4618,6 +4642,15 @@ typedef struct { ...@@ -4618,6 +4642,15 @@ typedef struct {
#define HELP_PARTIALKEY 0x0105 #define HELP_PARTIALKEY 0x0105
#define HELP_MULTIKEY 0x0201 #define HELP_MULTIKEY 0x0201
#define HELP_SETWINPOS 0x0203 #define HELP_SETWINPOS 0x0203
#define HELP_CONTEXTMENU 0x000a
#define HELP_FINDER 0x000b
#define HELP_WM_HELP 0x000c
#define HELP_SETPOPUP_POS 0x000d
#define HELP_TCARD 0x8000
#define HELP_TCARD_DATA 0x0010
#define HELP_TCARD_OTHER_CALLER 0x0011
/* ExitWindows() flags */ /* ExitWindows() flags */
#define EW_RESTARTWINDOWS 0x0042 #define EW_RESTARTWINDOWS 0x0042
...@@ -5168,6 +5201,15 @@ typedef struct tagNMHDR ...@@ -5168,6 +5201,15 @@ typedef struct tagNMHDR
UINT32 code; UINT32 code;
} NMHDR, *LPNMHDR; } NMHDR, *LPNMHDR;
typedef struct
{
UINT32 cbSize;
INT32 iTabLength;
INT32 iLeftMargin;
INT32 iRightMargin;
UINT32 uiLengthDrawn;
} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
#pragma pack(4) #pragma pack(4)
/* Declarations for functions that exist only in Win16 */ /* Declarations for functions that exist only in Win16 */
...@@ -5260,9 +5302,13 @@ BOOL16 WINAPI IsGDIObject(HGDIOBJ16); ...@@ -5260,9 +5302,13 @@ BOOL16 WINAPI IsGDIObject(HGDIOBJ16);
BOOL16 WINAPI IsSharedSelector(HANDLE16); BOOL16 WINAPI IsSharedSelector(HANDLE16);
BOOL16 WINAPI IsTask(HTASK16); BOOL16 WINAPI IsTask(HTASK16);
HTASK16 WINAPI IsTaskLocked(void); HTASK16 WINAPI IsTaskLocked(void);
BOOL16 WINAPI IsUserIdle(void);
BOOL16 WINAPI IsValidMetaFile(HMETAFILE16); BOOL16 WINAPI IsValidMetaFile(HMETAFILE16);
VOID WINAPI LogError(UINT16, LPVOID); VOID WINAPI LogError(UINT16, LPVOID);
VOID WINAPI LogParamError(UINT16,FARPROC16,LPVOID); VOID WINAPI LogParamError(UINT16,FARPROC16,LPVOID);
HGLOBAL16 WINAPI LoadCursorIconHandler(HGLOBAL16,HMODULE16,HRSRC16);
HGLOBAL16 WINAPI LoadDIBCursorHandler(HGLOBAL16,HMODULE16,HRSRC16);
HGLOBAL16 WINAPI LoadDIBIconHandler(HGLOBAL16,HMODULE16,HRSRC16);
WORD WINAPI LocalCountFree(void); WORD WINAPI LocalCountFree(void);
WORD WINAPI LocalHandleDelta(WORD); WORD WINAPI LocalHandleDelta(WORD);
WORD WINAPI LocalHeapSize(void); WORD WINAPI LocalHeapSize(void);
...@@ -5290,7 +5336,7 @@ WORD WINAPI SelectorAccessRights(WORD,WORD,WORD); ...@@ -5290,7 +5336,7 @@ WORD WINAPI SelectorAccessRights(WORD,WORD,WORD);
INT16 WINAPI SelectVisRgn(HDC16,HRGN16); INT16 WINAPI SelectVisRgn(HDC16,HRGN16);
DWORD WINAPI SetBitmapDimension(HBITMAP16,INT16,INT16); DWORD WINAPI SetBitmapDimension(HBITMAP16,INT16,INT16);
DWORD WINAPI SetBrushOrg(HDC16,INT16,INT16); DWORD WINAPI SetBrushOrg(HDC16,INT16,INT16);
UINT16* WINAPI SetCommEventMask(INT16,UINT16); SEGPTR WINAPI SetCommEventMask(INT16,UINT16);
BOOL16 WINAPI SetDCHook(HDC16,FARPROC16,DWORD); BOOL16 WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
DWORD WINAPI SetDCOrg(HDC16,INT16,INT16); DWORD WINAPI SetDCOrg(HDC16,INT16,INT16);
VOID WINAPI SetDCState(HDC16,HDC16); VOID WINAPI SetDCState(HDC16,HDC16);
...@@ -5582,7 +5628,11 @@ DWORD WINAPI GetMenuCheckMarkDimensions(void); ...@@ -5582,7 +5628,11 @@ DWORD WINAPI GetMenuCheckMarkDimensions(void);
LONG WINAPI GetMessageExtraInfo(void); LONG WINAPI GetMessageExtraInfo(void);
DWORD WINAPI GetMessagePos(void); DWORD WINAPI GetMessagePos(void);
LONG WINAPI GetMessageTime(void); LONG WINAPI GetMessageTime(void);
LANGID WINAPI GetSystemDefaultLangID(void);
LCID WINAPI GetSystemDefaultLCID(void);
DWORD WINAPI GetTickCount(void); DWORD WINAPI GetTickCount(void);
LANGID WINAPI GetUserDefaultLangID(void);
LCID WINAPI GetUserDefaultLCID(void);
ATOM WINAPI GlobalDeleteAtom(ATOM); ATOM WINAPI GlobalDeleteAtom(ATOM);
VOID WINAPI LZDone(void); VOID WINAPI LZDone(void);
DWORD WINAPI OemKeyScan(WORD); DWORD WINAPI OemKeyScan(WORD);
...@@ -5752,7 +5802,7 @@ BOOL32 WINAPI Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32 ...@@ -5752,7 +5802,7 @@ BOOL32 WINAPI Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32
INT16 WINAPI ClearCommBreak16(INT16); INT16 WINAPI ClearCommBreak16(INT16);
BOOL32 WINAPI ClearCommBreak32(INT32); BOOL32 WINAPI ClearCommBreak32(INT32);
#define ClearCommBreak WINELIB_NAME(ClearCommBreak) #define ClearCommBreak WINELIB_NAME(ClearCommBreak)
BOOL16 WINAPI ClientToScreen16(HWND16,LPPOINT16); VOID WINAPI ClientToScreen16(HWND16,LPPOINT16);
BOOL32 WINAPI ClientToScreen32(HWND32,LPPOINT32); BOOL32 WINAPI ClientToScreen32(HWND32,LPPOINT32);
#define ClientToScreen WINELIB_NAME(ClientToScreen) #define ClientToScreen WINELIB_NAME(ClientToScreen)
BOOL16 WINAPI ClipCursor16(const RECT16*); BOOL16 WINAPI ClipCursor16(const RECT16*);
...@@ -5889,6 +5939,9 @@ HDC32 WINAPI CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*); ...@@ -5889,6 +5939,9 @@ HDC32 WINAPI CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
HICON16 WINAPI CreateIcon16(HINSTANCE16,INT16,INT16,BYTE,BYTE,LPCVOID,LPCVOID); HICON16 WINAPI CreateIcon16(HINSTANCE16,INT16,INT16,BYTE,BYTE,LPCVOID,LPCVOID);
HICON32 WINAPI CreateIcon32(HINSTANCE32,INT32,INT32,BYTE,BYTE,LPCVOID,LPCVOID); HICON32 WINAPI CreateIcon32(HINSTANCE32,INT32,INT32,BYTE,BYTE,LPCVOID,LPCVOID);
#define CreateIcon WINELIB_NAME(CreateIcon) #define CreateIcon WINELIB_NAME(CreateIcon)
HICON16 WINAPI CreateIconFromResourceEx16(LPBYTE,UINT16,BOOL16,DWORD,INT16,INT16,UINT16);
HICON32 WINAPI CreateIconFromResourceEx32(LPBYTE,UINT32,BOOL32,DWORD,INT32,INT32,UINT32);
#define CreateIconFromResourceEx WINELIB_NAME(CreateIconFromResourceEx)
HMENU16 WINAPI CreateMenu16(void); HMENU16 WINAPI CreateMenu16(void);
HMENU32 WINAPI CreateMenu32(void); HMENU32 WINAPI CreateMenu32(void);
#define CreateMenu WINELIB_NAME(CreateMenu) #define CreateMenu WINELIB_NAME(CreateMenu)
...@@ -6477,7 +6530,7 @@ DWORD WINAPI GetModuleFileName32W(HMODULE32,LPWSTR,DWORD); ...@@ -6477,7 +6530,7 @@ DWORD WINAPI GetModuleFileName32W(HMODULE32,LPWSTR,DWORD);
#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName) #define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
HMODULE16 WINAPI GetModuleHandle16(LPCSTR); HMODULE16 WINAPI GetModuleHandle16(LPCSTR);
HMODULE32 WINAPI GetModuleHandle32A(LPCSTR); HMODULE32 WINAPI GetModuleHandle32A(LPCSTR);
HMODULE32 WINAPI GetModuleHandle32W(LPCSTR); HMODULE32 WINAPI GetModuleHandle32W(LPCWSTR);
#define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle) #define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
DWORD WINAPI GetNearestColor16(HDC16,DWORD); DWORD WINAPI GetNearestColor16(HDC16,DWORD);
DWORD WINAPI GetNearestColor32(HDC32,DWORD); DWORD WINAPI GetNearestColor32(HDC32,DWORD);
...@@ -6910,9 +6963,12 @@ HICON32 WINAPI LoadIcon32A(HINSTANCE32,LPCSTR); ...@@ -6910,9 +6963,12 @@ HICON32 WINAPI LoadIcon32A(HINSTANCE32,LPCSTR);
HICON32 WINAPI LoadIcon32W(HINSTANCE32,LPCWSTR); HICON32 WINAPI LoadIcon32W(HINSTANCE32,LPCWSTR);
#define LoadIcon WINELIB_NAME_AW(LoadIcon) #define LoadIcon WINELIB_NAME_AW(LoadIcon)
HINSTANCE16 WINAPI LoadLibrary16(LPCSTR); HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
HINSTANCE32 WINAPI LoadLibrary32A(LPCSTR); HMODULE32 WINAPI LoadLibrary32A(LPCSTR);
HINSTANCE32 WINAPI LoadLibrary32W(LPCWSTR); HMODULE32 WINAPI LoadLibrary32W(LPCWSTR);
#define LoadLibrary WINELIB_NAME_AW(LoadLibrary) #define LoadLibrary WINELIB_NAME_AW(LoadLibrary)
HMODULE32 WINAPI LoadLibraryEx32A(LPCSTR,HFILE32,DWORD);
HMODULE32 WINAPI LoadLibraryEx32W(LPCWSTR,HFILE32,DWORD);
#define LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx)
HMENU16 WINAPI LoadMenu16(HINSTANCE16,SEGPTR); HMENU16 WINAPI LoadMenu16(HINSTANCE16,SEGPTR);
HMENU32 WINAPI LoadMenu32A(HINSTANCE32,LPCSTR); HMENU32 WINAPI LoadMenu32A(HINSTANCE32,LPCSTR);
HMENU32 WINAPI LoadMenu32W(HINSTANCE32,LPCWSTR); HMENU32 WINAPI LoadMenu32W(HINSTANCE32,LPCWSTR);
...@@ -7699,12 +7755,12 @@ INT32 WINAPIV wsprintf32A(LPSTR,LPCSTR,...); ...@@ -7699,12 +7755,12 @@ INT32 WINAPIV wsprintf32A(LPSTR,LPCSTR,...);
INT32 WINAPIV wsprintf32W(LPWSTR,LPCWSTR,...); INT32 WINAPIV wsprintf32W(LPWSTR,LPCWSTR,...);
#define wsprintf WINELIB_NAME_AW(wsprintf) #define wsprintf WINELIB_NAME_AW(wsprintf)
INT16 WINAPI wvsnprintf16(LPSTR,UINT16,LPCSTR,LPCVOID); INT16 WINAPI wvsnprintf16(LPSTR,UINT16,LPCSTR,LPCVOID);
INT32 WINAPI wvsnprintf32A(LPSTR,UINT32,LPCSTR,LPCVOID); INT32 WINAPI wvsnprintf32A(LPSTR,UINT32,LPCSTR,va_list);
INT32 WINAPI wvsnprintf32W(LPWSTR,UINT32,LPCWSTR,LPCVOID); INT32 WINAPI wvsnprintf32W(LPWSTR,UINT32,LPCWSTR,va_list);
#define wvsnprintf WINELIB_NAME_AW(wvsnprintf) #define wvsnprintf WINELIB_NAME_AW(wvsnprintf)
INT16 WINAPI wvsprintf16(LPSTR,LPCSTR,LPCVOID); INT16 WINAPI wvsprintf16(LPSTR,LPCSTR,LPCVOID);
INT32 WINAPI wvsprintf32A(LPSTR,LPCSTR,LPCVOID); INT32 WINAPI wvsprintf32A(LPSTR,LPCSTR,va_list);
INT32 WINAPI wvsprintf32W(LPWSTR,LPCWSTR,LPCVOID); INT32 WINAPI wvsprintf32W(LPWSTR,LPCWSTR,va_list);
#define wvsprintf WINELIB_NAME_AW(wvsprintf) #define wvsprintf WINELIB_NAME_AW(wvsprintf)
LONG WINAPI _hread16(HFILE16,LPVOID,LONG); LONG WINAPI _hread16(HFILE16,LPVOID,LONG);
LONG WINAPI _hread32(HFILE32,LPVOID,LONG); LONG WINAPI _hread32(HFILE32,LPVOID,LONG);
......
#ifndef __WINE_WINNLS_H #ifndef __WINE_WINNLS_H
#define __WINE_WINNLS_H #define __WINE_WINNLS_H
/* flags to GetLocaleInfo */
#define LOCALE_NOUSEROVERRIDE 0x80000000
#define LOCALE_USE_CP_ACP 0x40000000
/* When adding new defines, don't forget to add an entry to the /* When adding new defines, don't forget to add an entry to the
* locale2id map in misc/ole2nls.c * locale2id map in misc/ole2nls.c
*/ */
...@@ -103,6 +107,8 @@ ...@@ -103,6 +107,8 @@
#define LOCALE_IPOSSEPBYSPACE 0x00000055 #define LOCALE_IPOSSEPBYSPACE 0x00000055
#define LOCALE_INEGSYMPRECEDES 0x00000056 #define LOCALE_INEGSYMPRECEDES 0x00000056
#define LOCALE_INEGSEPBYSPACE 0x00000057 #define LOCALE_INEGSEPBYSPACE 0x00000057
#define LOCALE_FONTSIGNATURE 0x00000058
#define NORM_IGNORECASE 1 #define NORM_IGNORECASE 1
#define NORM_IGNORENONSPACE 2 #define NORM_IGNORENONSPACE 2
...@@ -129,4 +135,15 @@ ...@@ -129,4 +135,15 @@
#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)) #define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT))
#define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)) #define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT))
/* Locale Dependent Mapping Flags */
#define LCMAP_LOWERCASE 0x00000100 /* lower case letters */
#define LCMAP_UPPERCASE 0x00000200 /* upper case letters */
#define LCMAP_SORTKEY 0x00000400 /* WC sort key (normalize) */
#define LCMAP_BYTEREV 0x00000800 /* byte reversal */
#define LCMAP_HIRAGANA 0x00100000 /* map katakana to hiragana */
#define LCMAP_KATAKANA 0x00200000 /* map hiragana to katakana */
#define LCMAP_HALFWIDTH 0x00400000 /* map double byte to single byte */
#define LCMAP_FULLWIDTH 0x00800000 /* map single byte to double byte */
#endif /* __WINE_WINNLS_H */ #endif /* __WINE_WINNLS_H */
...@@ -278,7 +278,7 @@ typedef struct _EXCEPTION_POINTERS ...@@ -278,7 +278,7 @@ typedef struct _EXCEPTION_POINTERS
* function pointer to a exception filter * function pointer to a exception filter
*/ */
typedef LONG (*PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS ExceptionInfo); typedef LONG (CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS ExceptionInfo);
typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
DWORD WINAPI UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers ); DWORD WINAPI UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers );
......
...@@ -77,8 +77,6 @@ extern void WINPROC_UnmapMsg32WTo16( UINT32 msg, WPARAM32 wParam, ...@@ -77,8 +77,6 @@ extern void WINPROC_UnmapMsg32WTo16( UINT32 msg, WPARAM32 wParam,
LPARAM lParam, MSGPARAM16* pm16 ); LPARAM lParam, MSGPARAM16* pm16 );
typedef LRESULT (*WINPROC_CALLWNDPROC16)(WNDPROC16,HWND16,UINT16,WPARAM16,LPARAM); typedef LRESULT (*WINPROC_CALLWNDPROC16)(WNDPROC16,HWND16,UINT16,WPARAM16,LPARAM);
typedef LRESULT (*WINPROC_CALLWNDPROC32)(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM);
extern void WINPROC_SetCallWndProc16( WINPROC_CALLWNDPROC16 proc ); extern void WINPROC_SetCallWndProc16( WINPROC_CALLWNDPROC16 proc );
extern void WINPROC_SetCallWndProc32( WINPROC_CALLWNDPROC32 proc );
#endif /* __WINE_WINPROC_H */ #endif /* __WINE_WINPROC_H */
...@@ -66,27 +66,20 @@ ...@@ -66,27 +66,20 @@
/* Calling conventions definitions */ /* Calling conventions definitions */
#ifdef not_used_yet
#ifdef __i386__ #ifdef __i386__
# if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7) # if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)
# define __stdcall __attribute__((__stdcall__)) # define __stdcall __attribute__((__stdcall__))
# define __cdecl __attribute__((__cdecl__)) # define __cdecl __attribute__((__cdecl__))
# define __RESTORE_ES __asm__ __volatile__("pushw %ds\n\tpopw %es")
# else # else
# error You need gcc >= 2.7 to build Wine on a 386 # error You need gcc >= 2.7 to build Wine on a 386
# endif /* __GNUC__ */ # endif /* __GNUC__ */
#else /* __i386__ */ #else /* __i386__ */
# define __stdcall /* nothing */ # define __stdcall
# define __cdecl /* nothing */ # define __cdecl
# define __RESTORE_ES
#endif /* __i386__ */ #endif /* __i386__ */
#else /* not_used_yet */
# define __stdcall /* nothing */
# define __cdecl /* nothing */
#endif /* not_used_yet */
#define CALLBACK __stdcall #define CALLBACK __stdcall
#define WINAPI __stdcall #define WINAPI __stdcall
#define APIPRIVATE __stdcall #define APIPRIVATE __stdcall
...@@ -131,6 +124,7 @@ typedef HANDLE32 HHOOK; ...@@ -131,6 +124,7 @@ typedef HANDLE32 HHOOK;
typedef HANDLE32 HKEY; typedef HANDLE32 HKEY;
typedef HANDLE32 HMIXEROBJ; typedef HANDLE32 HMIXEROBJ;
typedef DWORD LCID; typedef DWORD LCID;
typedef WORD LANGID;
typedef DWORD LCTYPE; typedef DWORD LCTYPE;
/* Pointers types. These are the same for emulator and library. */ /* Pointers types. These are the same for emulator and library. */
...@@ -195,6 +189,7 @@ DECLARE_HANDLE(HWAVE); ...@@ -195,6 +189,7 @@ DECLARE_HANDLE(HWAVE);
DECLARE_HANDLE(HWAVEIN); DECLARE_HANDLE(HWAVEIN);
DECLARE_HANDLE(HWAVEOUT); DECLARE_HANDLE(HWAVEOUT);
DECLARE_HANDLE(HWND); DECLARE_HANDLE(HWND);
DECLARE_HANDLE(HKL);
#undef DECLARE_HANDLE #undef DECLARE_HANDLE
/* Callback function pointers types */ /* Callback function pointers types */
......
...@@ -9,8 +9,7 @@ LIBMODULE = library ...@@ -9,8 +9,7 @@ LIBMODULE = library
LIB_SRCS = \ LIB_SRCS = \
arch.c \ arch.c \
libres.c \ libres.c \
miscstubs.c \ miscstubs.c
sup.c
STUB_SRCS = winestub.c STUB_SRCS = winestub.c
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
/* for windows/winproc.c */ /* for windows/winproc.c */
void CallFrom16_long_wwwll(void) {} void CallFrom16_long_wwwll(void) {}
void CallFrom32_stdcall_5(void) {}
extern LRESULT ColorDlgProc(HWND16,UINT16,WPARAM16,LPARAM); extern LRESULT ColorDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT FileOpenDlgProc(HWND16,UINT16,WPARAM16,LPARAM); extern LRESULT FileOpenDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
......
#include <stdio.h>
#include <unistd.h>
#include "windows.h"
#include "arch.h"
#include "neexe.h"
/*
* Header loading routines for WineLib.
*/
/* LOADSHORT Calls LOAD and swaps the high and the low bytes */
#define LOAD(x) read (fd, &TAB->x, sizeof (TAB->x))
#define LOADSHORT(x) LOAD(x); TAB->x = CONV_SHORT (TAB->x);
#define LOADLONG(x) LOAD(x); TAB->x = CONV_LONG (TAB->x);
void load_mz_header (int fd, LPIMAGE_DOS_HEADER mz_header)
{
#define TAB mz_header
LOAD(e_magic);
LOADSHORT(e_cblp);
LOADSHORT(e_cp);
LOADSHORT(e_crlc);
LOADSHORT(e_cparhdr);
LOADSHORT(e_minalloc);
LOADSHORT(e_maxalloc);
LOADSHORT(e_ss);
LOADSHORT(e_sp);
LOADSHORT(e_csum);
LOADSHORT(e_ip);
LOADSHORT(e_cs);
LOADSHORT(e_lfarlc);
LOADSHORT(e_ovno);
LOAD(e_res);
LOADSHORT(e_oemid);
LOADSHORT(e_oeminfo);
LOAD(e_res2);
LOADLONG(e_lfanew);
}
void load_ne_header (int fd, LPIMAGE_OS2_HEADER ne_header)
{
#undef TAB
#define TAB ne_header
LOAD (ne_magic);
LOADSHORT (linker_version);
LOADSHORT (linker_revision);
LOADSHORT (entry_tab_offset);
LOADSHORT (entry_tab_length);
LOAD (reserved1);
LOADSHORT (format_flags);
LOADSHORT (auto_data_seg);
LOADSHORT (local_heap_length);
LOADSHORT (stack_length);
LOADSHORT (ip);
LOADSHORT (cs);
LOADSHORT (sp);
LOADSHORT (ss);
LOADSHORT (n_segment_tab);
LOADSHORT (n_mod_ref_tab);
LOADSHORT (nrname_tab_length);
LOADSHORT (segment_tab_offset);
LOADSHORT (resource_tab_offset);
LOADSHORT (rname_tab_offset);
LOADSHORT (moduleref_tab_offset);
LOADSHORT (iname_tab_offset);
LOADLONG (nrname_tab_offset);
LOADSHORT (n_mov_entry_points);
LOADSHORT (align_shift_count);
LOADSHORT (n_resource_seg);
LOAD (operating_system);
LOAD (additional_flags);
LOADSHORT (fastload_offset);
LOADSHORT (fastload_length);
LOADSHORT (reserved2);
LOADSHORT (expect_version);
}
/*
* Typeinfo loading routines for non PC-architectures.
*/
int load_typeinfo (int fd, struct resource_typeinfo_s *typeinfo)
{
#undef TAB
#define TAB typeinfo
LOADSHORT (type_id);
LOADSHORT (count);
LOADLONG (reserved);
return 1;
}
int load_nameinfo (int fd, struct resource_nameinfo_s *nameinfo)
{
#undef TAB
#define TAB nameinfo
LOADSHORT (offset);
LOADSHORT (length);
LOADSHORT (flags);
LOADSHORT (id);
LOADSHORT (handle);
LOADSHORT (usage);
return 0;
}
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <errno.h> #include <errno.h>
#include "neexe.h" #include "neexe.h"
#include "windows.h" #include "windows.h"
#include "task.h"
#include "arch.h" #include "arch.h"
#include "selectors.h" #include "selectors.h"
#include "callback.h" #include "callback.h"
...@@ -455,7 +456,7 @@ void NE_FixupPrologs( NE_MODULE *pModule ) ...@@ -455,7 +456,7 @@ void NE_FixupPrologs( NE_MODULE *pModule )
* *
* Call the DLL initialization code * Call the DLL initialization code
*/ */
static BOOL32 NE_InitDLL( HMODULE16 hModule ) static BOOL32 NE_InitDLL( TDB* pTask, HMODULE16 hModule )
{ {
NE_MODULE *pModule; NE_MODULE *pModule;
SEGTABLEENTRY *pSegTable; SEGTABLEENTRY *pSegTable;
...@@ -473,6 +474,17 @@ static BOOL32 NE_InitDLL( HMODULE16 hModule ) ...@@ -473,6 +474,17 @@ static BOOL32 NE_InitDLL( HMODULE16 hModule )
if (!(pModule->flags & NE_FFLAGS_LIBMODULE) || if (!(pModule->flags & NE_FFLAGS_LIBMODULE) ||
(pModule->flags & NE_FFLAGS_WIN32)) return TRUE; /*not a library*/ (pModule->flags & NE_FFLAGS_WIN32)) return TRUE; /*not a library*/
/* Call USER signal handler. This is necessary to install a
* proper loader for HICON and HCURSOR resources that this DLL
* may contain. InitApp() does this for task modules. */
if (pTask && pTask->userhandler)
{
pTask->userhandler( hModule, USIG_DLL_LOAD, 0, pTask->hInstance,
pTask->hQueue );
}
if (!pModule->cs) return TRUE; /* no initialization code */ if (!pModule->cs) return TRUE; /* no initialization code */
memset( &context, 0, sizeof(context) ); memset( &context, 0, sizeof(context) );
...@@ -516,10 +528,12 @@ static BOOL32 NE_InitDLL( HMODULE16 hModule ) ...@@ -516,10 +528,12 @@ static BOOL32 NE_InitDLL( HMODULE16 hModule )
/*********************************************************************** /***********************************************************************
* NE_InitializeDLLs * NE_InitializeDLLs
* *
* Initialize the loaded DLLs. * Recursively initialize all DLLs (according to the order in which
* they where loaded).
*/ */
void NE_InitializeDLLs( HMODULE16 hModule ) void NE_InitializeDLLs( HMODULE16 hModule )
{ {
TDB* pTask = (TDB*)GlobalLock16(GetCurrentTask());
NE_MODULE *pModule; NE_MODULE *pModule;
HMODULE16 *pDLL; HMODULE16 *pDLL;
...@@ -529,6 +543,7 @@ void NE_InitializeDLLs( HMODULE16 hModule ) ...@@ -529,6 +543,7 @@ void NE_InitializeDLLs( HMODULE16 hModule )
/* PE_InitializeDLLs(hModule); */ /* PE_InitializeDLLs(hModule); */
return; return;
} }
if (pModule->dlls_to_init) if (pModule->dlls_to_init)
{ {
HGLOBAL16 to_init = pModule->dlls_to_init; HGLOBAL16 to_init = pModule->dlls_to_init;
...@@ -539,7 +554,7 @@ void NE_InitializeDLLs( HMODULE16 hModule ) ...@@ -539,7 +554,7 @@ void NE_InitializeDLLs( HMODULE16 hModule )
} }
GlobalFree16( to_init ); GlobalFree16( to_init );
} }
NE_InitDLL( hModule ); NE_InitDLL( pTask, hModule );
} }
......
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