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
features. Most applications still do not work correctly.
Patches should be submitted to "julliard@lrc.epfl.ch". Please don't
forget to include a ChangeLog entry.
WHAT'S NEW with Wine-970824: (see ChangeLog for details)
- Better Win32 menu support.
- Improved Winsock.
- UpDown control.
- More undocumented Win95 hacks.
WHAT'S NEW with Wine-970914: (see ChangeLog for details)
- Better resource handling.
- New Progress control.
- Improved PE module support.
- Many relay code changes.
- Lots of bug fixes.
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
the release is available at the ftp sites. The sources will be available
from the following locations:
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-970824.tar.gz
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-970824.tar.gz
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-970824.tar.gz
ftp://ftp.progsoc.uts.edu.au/pub/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-970914.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-970914.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite.
......
......@@ -4,28 +4,121 @@
@c This is a list of the Wine authors and copyright holders.
Wine is available thanks to the work of Bob Amstadt, Dag Asheim,
Martin Ayotte, Peter Bajusz, Ross Biro, Uwe Bonnes, Erik Bos, Fons
Botman, John Brezak, Andrew Bulhak, John Burton, Niels de Carpentier,
Jimen Ching, Huw D. M. Davies, Roman Dolejsi, Frans van Dorsselaer,
Paul Falstad, David Faure, Claus Fischer, Olaf Flebbe, Peter Galbavy,
Ramon Garcia, Matthew Ghio, Hans de Graaff, Charles M. Hannum, 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, 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, Michael Patra, Jim Peterson, Robert Pouliot, Keith Reynolds,
Slaven Rezic, John Richardson, Johannes Ruscheinski, Thomas Sandford,
Constantine Sapuntzakis, Pablo Saratxaga, Daniel Schepler, Ulrich
Schmid, Bernd Schmidt, 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, Jan Willamowius,
Carl Williams, Karl Guenter Wuensch, Eric Youngdale, James Youngman,
Mikolaj Zalewski, and John Zero.
Wine is available thanks to the work of:
Bob Amstadt,
Dag Asheim,
Martin Ayotte,
Peter Bajusz,
Georg Beyerle,
Ross Biro,
Uwe Bonnes,
Erik Bos,
Fons Botman,
John Brezak,
Andrew Bulhak,
John Burton,
Niels de Carpentier,
Jimen Ching,
David A. Cuthbert,
Huw D. M. Davies,
Roman Dolejsi,
Frans van Dorsselaer,
Chris Faherty,
Paul Falstad,
David Faure,
Claus Fischer,
Olaf Flebbe,
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
add new entries and, more importantly, remove those for the
bugs you fixed ;-)
------------------------------------------------------------
As of June 1997 -
As of Sept 1997 -
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
inserting function in terms of this. Without this, we cannot support
all the new extended menus. Not hard, but slightly big.
......@@ -36,6 +41,17 @@ General:
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).
* 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>
* [if1632/kernel.spec] [if1632/mmsystem.spec]
......
......@@ -13,9 +13,11 @@ C_SRCS = \
icontitle.c \
listbox.c \
menu.c \
progress.c \
scroll.c \
static.c \
status.c \
uitools.c \
updown.c \
widgets.c
......
......@@ -982,9 +982,15 @@ static INT32 EDIT_CallWordBreakProc(WND *wnd, EDITSTATE *es, INT32 start, INT32
segptr + start, index, count, action);
LocalUnlock16(hloc16);
return ret;
} else if (es->word_break_proc32A)
return (INT32)CallWordBreakProc32A((FARPROC32)es->word_break_proc32A,
es->text + start, index, count, action);
}
else if (es->word_break_proc32A)
{
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
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)
EDIT_EM_ReplaceSel(wnd, es, TRUE, "\t");
break;
default:
if (!(es->style & ES_READONLY) && (c >= ' ') && (c != 127)) {
if (!(es->style & ES_READONLY) && ((BYTE)c >= ' ') && (c != 127)) {
char str[2];
str[0] = c;
str[1] = '\0';
......
......@@ -2462,7 +2462,7 @@ LRESULT WINAPI ListBoxWndProc( HWND32 hwnd, UINT32 msg,
default:
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 );
return DefWindowProc32A( hwnd, msg, wParam, lParam );
}
......
......@@ -1141,48 +1141,44 @@ UINT32 MENU_DrawMenuBar( HDC32 hDC, LPRECT32 lprect, HWND32 hwnd,
/***********************************************************************
* 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 )
{
HTASK16 hTask = 0;
dprintf_menu(stddeb,"patching resident popup: %04x, %08x\n",
checkQueue, (unsigned) wndOwner);
if( wndOwner )
dprintf_menu(stddeb,"patching resident popup: %04x %04x [%04x %04x]\n",
checkQueue, checkWnd ? checkWnd->hwndSelf : 0, pTopPopupWnd->hmemTaskQ,
pTopPopupWnd->owner ? pTopPopupWnd->owner->hwndSelf : 0);
switch( checkQueue )
{
if( pTopPopupWnd->owner == wndOwner )
case 0: /* checkWnd is the new popup owner */
if( checkWnd )
{
if( checkQueue ) pTopPopupWnd->owner = NULL;
return TRUE;
pTopPopupWnd->owner = checkWnd;
if( pTopPopupWnd->hmemTaskQ != checkWnd->hmemTaskQ )
hTask = QUEUE_GetQueueTask( checkWnd->hmemTaskQ );
}
break;
/* switch to the new owner */
if( wndOwner->hmemTaskQ == pTopPopupWnd->hmemTaskQ )
case 0xFFFF: /* checkWnd is destroyed */
if( pTopPopupWnd->owner == checkWnd )
pTopPopupWnd->owner = NULL;
return TRUE;
hTask = QUEUE_GetQueueTask( wndOwner->hmemTaskQ );
}
else if( pTopPopupWnd->hmemTaskQ == checkQueue )
{
/* switch to the different task */
default: /* checkQueue is exiting */
if( pTopPopupWnd->hmemTaskQ == checkQueue )
{
hTask = QUEUE_GetQueueTask( pTopPopupWnd->hmemTaskQ );
hTask = TASK_GetNextTask( hTask );
}
break;
}
if( hTask )
{
TDB* task = (TDB*)GlobalLock16( hTask );
pTopPopupWnd->owner = wndOwner;
if( task )
{
pTopPopupWnd->hInstance = task->hInstance;
......@@ -3537,7 +3533,7 @@ HMENU16 WINAPI LoadMenu16( HINSTANCE16 instance, SEGPTR name )
if (!name) return 0;
/* check for Win32 module */
instance = GetExePtr( instance );
instance = MODULE_HANDLEtoHMODULE16( instance );
if (MODULE_GetPtr(instance)->flags & NE_FFLAGS_WIN32)
return LoadMenu32A(instance,PTR_SEG_TO_LIN(name));
......@@ -3837,7 +3833,7 @@ BOOL16 WINAPI InsertMenuItem16( HMENU16 hmenu, UINT16 pos, BOOL16 byposition,
miia.cbSize = sizeof(miia);
miia.fMask = mii->fMask;
miia.dwTypeData = miia.dwTypeData;
miia.dwTypeData = mii->dwTypeData;
miia.fType = mii->fType;
miia.fState = mii->fState;
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;
}
......@@ -43,32 +43,27 @@ void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text,
{
RECT32 r, rt;
int oldbkmode;
UINT32 border;
r = *lprc;
if (style == 0 ||
style == SBT_POPOUT) {
InflateRect32(&r, -1, -1);
SelectObject32(hdc, sysColorObjects.hbrushScrollbar);
Rectangle32(hdc, r.left, r.top, r.right, r.bottom);
if(style == SBT_OWNERDRAW){
/* FIXME for SBT_OWNERDRAW, SBT_RTLREADING */
}
else{
DrawEdge32(hdc, &r, BDR_RAISEDINNER, BF_RECT|BF_ADJUST|BF_FLAT);
/* draw border */
SelectObject32(hdc, sysColorObjects.hpenWindowFrame);
if (style == 0)
DrawEdge32(hdc, &r, EDGE_SUNKEN, BF_RECT);
if(style==SBT_POPOUT)
border = BDR_RAISEDOUTER;
else if(style==SBT_NOBORDERS)
border = 0;
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 */
border = BDR_SUNKENOUTER;
}
DrawEdge32(hdc, &r, border, BF_RECT | BF_ADJUST | BF_MIDDLE);
/* now draw text */
if ((style != SBT_OWNERDRAW) && text) {
if (text) {
SelectObject32(hdc, sysColorObjects.hpenWindowText);
oldbkmode = SetBkMode32(hdc, TRANSPARENT);
rt = r;
......@@ -79,6 +74,8 @@ void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text,
if (oldbkmode != TRANSPARENT)
SetBkMode32(hdc, oldbkmode);
}
}
}
static BOOL32 SW_Refresh( HWND32 hwnd, HDC32 hdc, STATUSWINDOWINFO *self )
......
......@@ -8,6 +8,7 @@
* arrow keys
* - I am not sure about the default values for the Min, Max, Pos
* (in the UPDOWN_INFO the fields: MinVal, MaxVal, CurVal)
* - I think I do not handle correctly the WS_BORDER style.
* Testing:
* Not much. The following have not been tested at all:
* - horizontal arrows
......@@ -20,10 +21,7 @@
* behave very well so I am confident it does work in most (all) of the
* untested cases.
* Problems:
* At the moment, the control will no draw itself very well because it
* 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.
* I do not like the arrows yet, I'll work more on them later on.
*/
#include <stdlib.h>
......@@ -47,10 +45,10 @@
#define INITIAL_DELAY 500 /* initial timer until auto-increment kicks in */
#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_ADDTOP 1 /* amount to extend above the buddy window */
#define DEFAULT_ADDBOT 1 /* amount to extend below the buddy window */
#define DEFAULT_ADDTOP 0 /* amount to extend above the buddy window */
#define DEFAULT_ADDBOT 0 /* amount to extend below the buddy window */
/* Work constants */
......@@ -65,9 +63,6 @@
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, \
"UpDown Ctrl: Unknown parameter(s) for message " #msg \
"(%04x): wp=%04x lp=%08lx\n", msg, wParam, lParam);
......@@ -129,7 +124,7 @@ static void UPDOWN_GetArrowRect(WND *wndPtr, RECT32 *rect, BOOL32 incr)
if (wndPtr->dwStyle & UDS_HORZ) {
len = rect->right - rect->left; /* compute the width */
if (incr)
rect->left = len/2;
rect->left = len/2+1;
else
rect->right = len/2;
}
......@@ -138,7 +133,7 @@ static void UPDOWN_GetArrowRect(WND *wndPtr, RECT32 *rect, BOOL32 incr)
if (incr)
rect->bottom = len/2;
else
rect->top = len/2;
rect->top = len/2+1;
}
}
......@@ -290,48 +285,57 @@ static BOOL32 UPDOWN_SetBuddyInt(WND *wndPtr)
static void UPDOWN_DrawArrow(HDC32 hdc, RECT32 *rect, BOOL32 incr,
BOOL32 pressed, BOOL32 horz)
{
const int w = rect->right - rect->left;
const int h = rect->bottom - rect->top;
int offset = pressed ? 1 : 0, tmp;
POINT32 pts[3];
const int rw = rect->right - rect->left;
const int rh = rect->bottom - rect->top;
int offset = pressed ? 1 : 0;
int th, x, y, len;
/* compute max extents of the triangle */
if(horz){ /* horizontal arrows */
pts[0].x = rect->right - max(2, w/3) + offset;
pts[0].y = rect->top + max(2, h/4) + offset;
pts[1].x = pts[0].x;
pts[1].y = rect->bottom - max(2, h/4) + offset;
pts[2].x = rect->left + w/3 + offset;
pts[2].y = (pts[0].y + pts[1].y)/2;
if(pts[2].x-2<rect->left)
pts[2].x = rect->left + 2;
if(pts[2].x <= pts[0].x)
pts[2].x = pts[0].x - 1;
if(incr){
tmp = pts[2].x;
pts[2].x = pts[0].x;
pts[0].x = pts[1].x = tmp;
th = (3*rh)/5-2*4;
if(th > rw/2)
th = rw/2;
if(th < 2)
th = 2;
/* compute the position of the tip */
y = (rect->top+rect->bottom+1)/2 + offset;
if(incr)
x = (rect->left+rect->right+1)/2 + (2*th)/3 + offset;
else
x = (rect->left+rect->right)/2 + th/3 + offset;
for(len=1; th>0; th--, len+=2){
MoveToEx32(hdc, x, y, 0);
LineTo32(hdc, x, y+len);
if(incr) x--;
else x++;
y++;
}
}
else{ /* vertical arrows */
pts[0].x = rect->left + max(2, w/4) + offset;
pts[0].y = rect->top + max(2, h/3) + offset;
pts[1].x = rect->right- max(2, w/4) + offset;
pts[1].y = pts[0].y;
pts[2].x = (pts[0].x + pts[1].x)/2;
pts[2].y = pts[0].y + h/3 + offset;
if(pts[2].y+2>rect->bottom)
pts[2].y = rect->bottom - 2;
if(pts[2].y <= pts[0].y)
pts[2].y = pts[0].y + 1;
th = (3*rw)/5-2*4;
if(th > rh/2)
th = rh/2;
if(th < 2)
th = 2;
/* compute the position of the tip */
x = (rect->left+rect->right+1)/2 + offset;
if(incr)
y = (rect->top+rect->bottom+1)/2 - th/3 + offset;
else
y = (rect->top+rect->bottom)/2 + (2*th)/3 + offset;
if(incr){
tmp = pts[2].y;
pts[2].y = pts[0].y;
pts[0].y = pts[1].y = tmp;
for(len=1; th>0; th--, len+=2){
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)
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 */
oldBrush = wndPtr->dwStyle & WS_DISABLED ? GRAY_BRUSH : BLACK_BRUSH;
oldBrush = SelectObject32(hdc, GetStockObject32(oldBrush));
......@@ -365,10 +361,13 @@ static void UPDOWN_Paint(WND *wndPtr)
/* Draw the incr button */
UPDOWN_GetArrowRect(wndPtr, &rect, TRUE);
prssed = (infoPtr->Flags & FLAG_INCR) && (infoPtr->Flags & FLAG_MOUSEIN);
DrawEdge32(hdc, &rect, prssed ? EDGE_SUNKEN : EDGE_RAISED,
BF_RECT | BF_SOFT | BF_MIDDLE);
DrawEdge32(hdc, &rect, prssed?EDGE_SUNKEN:EDGE_RAISED, BF_RECT|BF_MIDDLE);
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 */
UPDOWN_GetArrowRect(wndPtr, &rect, FALSE);
prssed = (infoPtr->Flags & FLAG_DECR) && (infoPtr->Flags & FLAG_MOUSEIN);
......@@ -643,6 +642,9 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
switch(message)
{
case WM_CREATE:
/* get rid of border, if any */
wndPtr->dwStyle &= ~WS_BORDER;
/* initialize the info struct */
infoPtr->AccelCount=0; infoPtr->AccelVect=0;
infoPtr->CurVal=0; infoPtr->MinVal=0; infoPtr->MaxVal=100; /*FIXME*/
......@@ -745,7 +747,7 @@ LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
UNKNOWN_PARAM(UDM_GETACCEL, wParam, lParam);
return 0;
}
temp = min(infoPtr->AccelCount, wParam);
temp = MIN(infoPtr->AccelCount, wParam);
memcpy((void *)lParam, infoPtr->AccelVect, temp*sizeof(UDACCEL));
return temp;
......
......@@ -9,8 +9,10 @@
#include "win.h"
#include "commctrl.h"
#include "button.h"
#include "progress.h"
#include "static.h"
#include "status.h"
#include "updown.h"
#include "scroll.h"
#include "updown.h"
#include "desktop.h"
......@@ -104,7 +106,9 @@ static WNDCLASS32A WIDGETS_CommonControls32[] =
{ CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW, StatusWindowProc, 0,
sizeof(STATUSWINDOWINFO), 0, 0, 0, 0, 0, STATUSCLASSNAME32A },
{ 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 \
......@@ -155,6 +159,8 @@ BOOL32 WIDGETS_Init(void)
if (!(bicAtomTable[i] = RegisterClass32A( class32 ))) return FALSE;
}
/* FIXME: hack to enable using built-in controls with Windows COMCTL32 */
InitCommonControls();
SEGPTR_FREE(name);
return TRUE;
}
......@@ -167,15 +173,18 @@ void WINAPI InitCommonControls(void)
{
int i;
char name[30];
const char *old_name;
WNDCLASS32A *class32 = WIDGETS_CommonControls32;
for (i = 0; i < NB_COMMON_CONTROLS32; i++, class32++)
{
/* Just to make sure the string is > 0x10000 */
old_name = class32->lpszClassName;
strcpy( name, (char *)class32->lpszClassName );
class32->lpszClassName = name;
class32->hCursor = LoadCursor16( 0, IDC_ARROW );
RegisterClass32A( class32 );
class32->lpszClassName = old_name;
}
}
......
......@@ -553,7 +553,7 @@ static void DEBUG_Main( int signal )
*/
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 : "???" );
DEBUG_context = *regs;
DEBUG_Main( SIGTRAP );
......@@ -564,7 +564,7 @@ void DebugBreak32( 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 : "???" );
DEBUG_context = *regs;
DEBUG_Main( SIGTRAP );
......
......@@ -886,8 +886,7 @@ DEBUG_InitCVDataTypes()
* We don't fully process it here for performance reasons.
*/
int
DEBUG_RegisterDebugInfo(int fd, struct pe_data * pe,
int load_addr, u_long v_addr, u_long size)
DEBUG_RegisterDebugInfo(struct pe_data * pe,int load_addr, u_long v_addr, u_long size)
{
int has_codeview = FALSE;
int rtn = FALSE;
......@@ -957,10 +956,7 @@ DEBUG_RegisterDebugInfo(int fd, struct pe_data * pe,
* to proceed if we know what we need to do next.
*/
deefer->dbg_size = dbgptr->SizeOfData;
deefer->dbg_info = (char *) xmalloc(dbgptr->SizeOfData);
lseek(fd, dbgptr->PointerToRawData, SEEK_SET);
read(fd, deefer->dbg_info, deefer->dbg_size);
deefer->dbg_info = pe->mappeddll+dbgptr->PointerToRawData;
deefer->load_addr = (char *) load_addr;
deefer->dbgdir = dbgptr;
deefer->next = dbglist;
......
......@@ -128,7 +128,7 @@ int DEBUG_GetRegister( enum debug_regs reg )
*
* 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);
EBX_reg(&DEBUG_context) = EBX_sig(sigcontext);
......@@ -164,7 +164,7 @@ extern void DEBUG_SetSigContext( const SIGCONTEXT *sigcontext )
*
* 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);
EBX_sig(sigcontext) = EBX_reg(&DEBUG_context);
......
......@@ -1085,6 +1085,25 @@ DEBUG_ProcessElfObject(char * filename, unsigned int load_offset)
status = stat(filename, &statbuf);
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;
}
......
......@@ -501,7 +501,7 @@ static INT32 PROFILE_GetString( LPCSTR section, LPCSTR key_name,
PROFILEKEY *key = NULL;
if (!def_val) def_val = "";
if (key_name)
if (key_name && key_name[0])
{
key = PROFILE_Find( &CurProfile.section, section, key_name, FALSE );
PROFILE_CopyEntry( buffer, (key && key->value) ? key->value : def_val,
......@@ -839,6 +839,14 @@ INT32 WINAPI GetProfileString32W( LPCWSTR section, LPCWSTR entry,
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)
......@@ -963,6 +971,16 @@ INT32 WINAPI GetPrivateProfileString32W( LPCWSTR section, LPCWSTR entry,
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 @@
/* GDI 300 */
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;
}
#ifdef NOTDEF
......@@ -23,7 +23,7 @@ WORD WINAPI EngineDeleteFont(LPFONTINFO16 lpFontInfo)
/* GDI 302 */
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;
}
......
......@@ -25,6 +25,12 @@
#include "debug.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)
......@@ -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)
*/
BOOL32 WINAPI DrawAnimatedRects32( HWND32 hwnd, int idAni,
......@@ -795,7 +680,7 @@ BOOL32 WINAPI DrawState32A(
HDC32 hdc,HBRUSH32 hbrush,DRAWSTATEPROC drawstateproc,
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
);
return TRUE;
......
......@@ -82,7 +82,7 @@ static LOADED_PRINTER_DRIVER *FindPrinterDriverFromName(const char *pszDriver)
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;
}
......@@ -132,7 +132,7 @@ LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver)
}
if (!bSlotFound)
{
printf("Too many printers drivers loaded\n");
fprintf(stderr,"Too many printers drivers loaded\n");
return NULL;
}
......@@ -381,7 +381,7 @@ WORD PRTDRV_EnumDFonts(LPPDEVICE lpDestDev, LPSTR lpFaceName,
lP1, lP2, lP3, lP4);
}
else
printf("Failed to find device\n");
fprintf(stderr,"Failed to find device\n");
dprintf_win16drv(stddeb, "PRTDRV_EnumDFonts: return %x\n", wRet);
return wRet;
......@@ -423,7 +423,7 @@ BOOL16 PRTDRV_EnumObj(LPPDEVICE lpDestDev, WORD iStyle,
lP1, wP2, lP3, lP4);
}
else
printf("Failed to find device\n");
fprintf(stderr,"Failed to find device\n");
dprintf_win16drv(stddeb, "PRTDRV_EnumDFonts: return %x\n", wRet);
return wRet;
......@@ -465,7 +465,7 @@ DWORD PRTDRV_RealizeObject(LPPDEVICE lpDestDev, WORD wStyle,
nSize = sizeof(LOGFONT16);
break;
default:
printf("PRTDRV_RealizeObject: Object type %d not supported\n", wStyle);
fprintf(stderr,"PRTDRV_RealizeObject: Object type %d not supported\n", wStyle);
nSize = 0;
}
......
name advapi32
type win32
base 0
0000 stub AbortSystemShutdownA
0001 stub AbortSystemShutdownW
......
......@@ -33,6 +33,7 @@ typedef struct
int size; /* Number of functions */
const void *code_start; /* Start of DLL code */
const void **functions; /* Pointer to functions table */
const void **nodbg_functions; /* Pointer to funcs without debug */
const char * const *names; /* Pointer to names table */
} WIN32_DESCRIPTOR;
......@@ -395,8 +396,8 @@ LPCSTR BUILTIN_GetEntryPoint32( void *relay )
relay = (BYTE *)relay - 11; /* The relay entry point is 11 bytes long */
funcs = dll->descr->u.win32.functions;
for (i = 0; i < dll->descr->u.win32.size;i++) if (*funcs++ == relay) break;
sprintf( buffer, "%s.%d: %s",
dll->descr->name, i, dll->descr->u.win32.names[i] );
sprintf( buffer, "%s.%d: %s", dll->descr->name,
dll->descr->u.win32.base + i, dll->descr->u.win32.names[i] );
return buffer;
}
......@@ -411,6 +412,7 @@ FARPROC32 BUILTIN_GetProcAddress32( NE_MODULE *pModule, LPCSTR function )
{
BUILTIN_DLL *dll = (BUILTIN_DLL *)pModule->pe_module;
const WIN32_DESCRIPTOR *info = &dll->descr->u.win32;
WORD ordinal = 0;
if (!dll) return NULL;
......@@ -422,17 +424,25 @@ FARPROC32 BUILTIN_GetProcAddress32( NE_MODULE *pModule, LPCSTR function )
function, dll->descr->name );
for (i = 0; i < info->size; 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 */
{
WORD ordinal = LOWORD(function);
ordinal = LOWORD(function);
dprintf_module( stddeb, "Looking for ordinal %d in %s\n",
ordinal, dll->descr->name );
if (ordinal && ordinal < info->size)
return (FARPROC32)info->functions[ordinal - info->base];
if ((ordinal < info->base) || (ordinal >= info->base + info->size))
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
type win32
base 2
# Functions exported by the Win95 comctl32.dll
# (these need to have these exact ordinals, because some win95 dlls
# import comctl32.dll by ordinal)
00 stub MenuHelp
01 stub ShowHideMenuCtl
02 stub GetEffectiveClientRect
03 stdcall DrawStatusTextA(long ptr ptr long) DrawStatusText32A
04 stdcall CreateStatusWindowA(long ptr long long) CreateStatusWindow32A
05 stub CreateToolbar
06 stub CreateMappedBitmap
07 stub Cctl1632_ThunkData32
08 stub CreatePropertySheetPage
09 stub CreatePropertySheetPageA
10 stub CreatePropertySheetPageW
11 stub MakeDragList
12 stub LBItemFromPt
13 stub DrawInsert
14 stdcall CreateUpDownControl(long long long long long long long long long long long long) CreateUpDownControl
15 stdcall InitCommonControls() InitCommonControls
16 stub CreateStatusWindow
17 stub CreateStatusWindowW
18 stub CreateToolbarEx
19 stub DestroyPropertySheetPage
20 stub DllGetVersion
21 stub DrawStatusText
22 stub DrawStatusTextW
23 stub ImageList_Add
24 stub ImageList_AddIcon
25 stub ImageList_AddMasked
26 stub ImageList_BeginDrag
27 stub ImageList_Copy
28 stub ImageList_Create
29 stub ImageList_Destroy
30 stub ImageList_DragEnter
31 stub ImageList_DragLeave
32 stub ImageList_DragMove
33 stub ImageList_DragShowNolock
34 stub ImageList_Draw
35 stub ImageList_DrawEx
36 stub ImageList_EndDrag
37 stub ImageList_GetBkColor
38 stub ImageList_GetDragImage
39 stub ImageList_GetIcon
40 stub ImageList_GetIconSize
41 stub ImageList_GetImageCount
42 stub ImageList_GetImageInfo
43 stub ImageList_GetImageRect
44 stub ImageList_LoadImage
45 stub ImageList_LoadImageA
46 stub ImageList_LoadImageW
47 stub ImageList_Merge
48 stub ImageList_Read
49 stub ImageList_Remove
50 stub ImageList_Replace
51 stub ImageList_ReplaceIcon
52 stub ImageList_SetBkColor
53 stub ImageList_SetDragCursorImage
54 stub ImageList_SetFilter
55 stub ImageList_SetIconSize
56 stub ImageList_SetImageCount
57 stub ImageList_SetOverlayImage
58 stub ImageList_Write
59 stub InitCommonControlsEx
60 stub PropertySheet
61 stub PropertySheetA
62 stub PropertySheetW
63 stub _TrackMouseEvent
2 stub MenuHelp
3 stub ShowHideMenuCtl
4 stub GetEffectiveClientRect
5 stdcall DrawStatusTextA(long ptr ptr long) DrawStatusText32A
6 stdcall CreateStatusWindowA(long ptr long long) CreateStatusWindow32A
7 stub CreateToolbar
8 stub CreateMappedBitmap
9 stub Cctl1632_ThunkData32
10 stub CreatePropertySheetPage
11 stub CreatePropertySheetPageA
12 stub CreatePropertySheetPageW
13 stub MakeDragList
14 stub LBItemFromPt
15 stub DrawInsert
16 stdcall CreateUpDownControl(long long long long long long long long long long long long) CreateUpDownControl
17 stdcall InitCommonControls() InitCommonControls
18 stub CreateStatusWindow
19 stub CreateStatusWindowW
20 stub CreateToolbarEx
21 stub DestroyPropertySheetPage
22 stub DllGetVersion
23 stub DrawStatusText
24 stub DrawStatusTextW
25 stub ImageList_Add
26 stub ImageList_AddIcon
27 stub ImageList_AddMasked
28 stub ImageList_BeginDrag
29 stub ImageList_Copy
30 stub ImageList_Create
31 stub ImageList_Destroy
32 stub ImageList_DragEnter
33 stub ImageList_DragLeave
34 stub ImageList_DragMove
35 stub ImageList_DragShowNolock
36 stub ImageList_Draw
37 stub ImageList_DrawEx
38 stub ImageList_EndDrag
39 stub ImageList_GetBkColor
40 stub ImageList_GetDragImage
41 stub ImageList_GetIcon
42 stub ImageList_GetIconSize
43 stub ImageList_GetImageCount
44 stub ImageList_GetImageInfo
45 stub ImageList_GetImageRect
46 stub ImageList_LoadImage
47 stub ImageList_LoadImageA
48 stub ImageList_LoadImageW
49 stub ImageList_Merge
50 stub ImageList_Read
51 stub ImageList_Remove
52 stub ImageList_Replace
53 stub ImageList_ReplaceIcon
54 stub ImageList_SetBkColor
55 stub ImageList_SetDragCursorImage
56 stub ImageList_SetFilter
57 stub ImageList_SetIconSize
58 stub ImageList_SetImageCount
59 stub ImageList_SetOverlayImage
60 stub ImageList_Write
61 stub InitCommonControlsEx
62 stub PropertySheet
63 stub PropertySheetA
64 stub PropertySheetW
65 stub _TrackMouseEvent
name comdlg32
type win32
base 1
0000 stub ArrowBtnWndProc
0001 stub ChooseColorA
0002 stub ChooseColorW
0003 stub ChooseFontA
0004 stub ChooseFontW
0005 stdcall CommDlgExtendedError() CommDlgExtendedError
0006 stub FindTextA
0007 stub FindTextW
0008 stdcall GetFileTitleA(ptr ptr long) GetFileTitle32A
0009 stdcall GetFileTitleW(ptr ptr long) GetFileTitle32W
0010 stdcall GetOpenFileNameA(ptr) GetOpenFileName32A
0011 stdcall GetOpenFileNameW(ptr) GetOpenFileName32W
0012 stdcall GetSaveFileNameA(ptr) GetSaveFileName32A
0013 stdcall GetSaveFileNameW(ptr) GetSaveFileName32A
0014 stub LoadAlterBitmap
0015 stub PageSetupDlgA
0016 stub PageSetupDlgW
0017 return PrintDlgA 4 0
0018 return PrintDlgW 4 0
0019 stub ReplaceTextA
0020 stub ReplaceTextW
0021 stub WantArrows
0022 stub dwLBSubclass
0023 stub dwOKSubclass
0 stub ArrowBtnWndProc
1 stub ChooseColorA
2 stub ChooseColorW
3 stub ChooseFontA
4 stub ChooseFontW
5 stdcall CommDlgExtendedError() CommDlgExtendedError
6 stub FindTextA
7 stub FindTextW
8 stdcall GetFileTitleA(ptr ptr long) GetFileTitle32A
9 stdcall GetFileTitleW(ptr ptr long) GetFileTitle32W
10 stdcall GetOpenFileNameA(ptr) GetOpenFileName32A
11 stdcall GetOpenFileNameW(ptr) GetOpenFileName32W
12 stdcall GetSaveFileNameA(ptr) GetSaveFileName32A
13 stdcall GetSaveFileNameW(ptr) GetSaveFileName32A
14 stub LoadAlterBitmap
15 stub PageSetupDlgA
16 stub PageSetupDlgW
17 return PrintDlgA 4 0
18 return PrintDlgW 4 0
19 stub ReplaceTextA
20 stub ReplaceTextW
21 stub WantArrows
22 stub dwLBSubclass
23 stub dwOKSubclass
......@@ -18,9 +18,9 @@ type win16
15 pascal CoDisconnectObject(ptr long) CoDisconnectObject
16 stub CORELEASEMARSHALDATA
17 stub COFREEUNUSEDLIBRARIES
18 stub ISEQUALGUID
19 pascal STRINGFROMCLSID(ptr ptr) StringFromCLSID
20 pascal CLSIDFROMSTRING(str ptr) CLSIDFromString
18 pascal16 IsEqualGUID(ptr ptr) IsEqualGUID
19 pascal StringFromCLSID(ptr ptr) StringFromCLSID
20 pascal CLSIDFromString(str ptr) CLSIDFromString
21 stub ISVALIDPTRIN
22 stub ISVALIDPTROUT
23 stub ISVALIDINTERFACE
......
......@@ -38,7 +38,7 @@ file gdi.exe
30 pascal16 SaveDC(word) SaveDC16
31 pascal SetPixel(word s_word s_word long) SetPixel16
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)
BitBlt16
35 pascal16 StretchBlt(word s_word s_word s_word s_word word s_word s_word
......@@ -236,7 +236,7 @@ file gdi.exe
s_word s_word) Chord16
349 pascal SetMapperFlags(word long) SetMapperFlags16
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
353 stub GetAspectRatioFilter
354 stub ShrinkGDIHeap
......
......@@ -39,7 +39,7 @@ file krnl386.exe
35 pascal16 GetTaskQueue(word) GetTaskQueue
36 pascal GetCurrentTask() WIN16_GetCurrentTask
37 pascal GetCurrentPDB() GetCurrentPDB
38 pascal SetTaskSignalProc(word segptr) SetTaskSignalProc
38 pascal SetTaskSignalProc(word segptr) THUNK_SetTaskSignalProc
41 return EnableDos 0 0
42 return DisableDos 0 0
45 pascal16 LoadModule(str ptr) LoadModule16
......@@ -64,7 +64,7 @@ file krnl386.exe
64 pascal16 AccessResource(word word) AccessResource16
65 pascal SizeofResource(word word) SizeofResource16
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
69 pascal16 FindAtom(segstr) FindAtom16
70 pascal16 AddAtom(segstr) AddAtom16
......@@ -89,12 +89,12 @@ file krnl386.exe
89 pascal lstrcat(segstr str) lstrcat16
90 pascal16 lstrlen(str) lstrlen16
91 register InitTask() InitTask
92 pascal GetTempDrive(byte) WIN16_GetTempDrive
92 pascal GetTempDrive(word) WIN16_GetTempDrive
93 pascal16 GetCodeHandle(segptr) GetCodeHandle
94 stub DefineHandleTable
95 pascal16 LoadLibrary(str) LoadLibrary16
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
99 stub GetLPErrMode
100 return ValidateCodeSegments 0 0
......@@ -135,7 +135,7 @@ file krnl386.exe
133 pascal16 GetExePtr(word) GetExePtr
134 pascal16 GetWindowsDirectory(ptr word) GetWindowsDirectory16
135 pascal16 GetSystemDirectory(ptr word) GetSystemDirectory16
136 pascal16 GetDriveType(byte) GetDriveType16
136 pascal16 GetDriveType(word) GetDriveType16
137 pascal16 FatalAppExit(word str) FatalAppExit16
138 pascal GetHeapSpaces(word) GetHeapSpaces
139 stub DoSignal
......
......@@ -12,8 +12,8 @@ type win16
#126 pascal GetTableSeg
#127 pascal NewTable
128 pascal OemKeyScan(word) OemKeyScan
129 pascal16 VkKeyScan(byte) VkKeyScan16
130 pascal16 GetKeyboardType(byte) GetKeyboardType16
129 pascal16 VkKeyScan(word) VkKeyScan16
130 pascal16 GetKeyboardType(word) GetKeyboardType16
131 pascal16 MapVirtualKey(word word) MapVirtualKey16
132 pascal16 GetKBCodePage() GetKBCodePage16
133 pascal16 GetKeyNameText(long ptr word) GetKeyNameText16
......
......@@ -48,7 +48,7 @@ type win32
0067 stub WNetFormatNetworkNameA
0068 stub WNetFormatNetworkNameW
0069 stdcall WNetGetCachedPassword(ptr long ptr ptr long) WNetGetCachedPassword
0070 stub WNetGetConnectionA
0070 stdcall WNetGetConnectionA(ptr ptr ptr) WNetGetConnection32A
0071 stub WNetGetConnectionW
0072 stub WNetGetHomeDirectoryA
0073 stub WNetGetHomeDirectoryW
......
name ntdll
type win32
base 0
001 stub CsrAllocateCaptureBuffer
002 stub CsrAllocateCapturePointer
......@@ -873,82 +872,82 @@ base 0
869 stub _snprintf
870 stub _snwprintf
871 stub _splitpath
872 stub _strcmpi
873 stdcall _stricmp(ptr ptr) lstrcmpi32A
872 cdecl _strcmpi(ptr ptr) CRTDLL__strcmpi
873 cdecl _stricmp(ptr ptr) CRTDLL__strcmpi
874 stub _strlwr
875 stub _strnicmp
876 stdcall _strupr(ptr) CRTDLL__strupr
875 cdecl _strnicmp(ptr ptr long) CRTDLL__strnicmp
876 cdecl _strupr(ptr) CRTDLL__strupr
877 stub _ultoa
878 stub _vsnprintf
879 stdcall _wcsicmp(ptr ptr) lstrcmpi32W
880 stdcall _wcslwr(ptr) CRTDLL__wcslwr
881 stdcall _wcsnicmp(ptr ptr long) lstrncmpi32W
882 stdcall _wcsupr(ptr) CRTDLL__wcsupr
879 cdecl _wcsicmp(ptr ptr) CRTDLL__wcsicmp
880 cdecl _wcslwr(ptr) CRTDLL__wcslwr
881 cdecl _wcsnicmp(ptr ptr long) CRTDLL__wcsnicmp
882 cdecl _wcsupr(ptr) CRTDLL__wcsupr
883 stub abs
884 stub atan
885 stdcall atoi(ptr) CRTDLL_atoi
886 stdcall atol(ptr) CRTDLL_atol
885 cdecl atoi(ptr) atoi
886 cdecl atol(ptr) atol
887 stub ceil
888 stub cos
889 stub fabs
890 stub floor
891 stdcall isalpha(long) CRTDLL_isalpha
892 stdcall isdigit(long) CRTDLL_isdigit
893 stdcall islower(long) CRTDLL_islower
894 stdcall isprint(long) CRTDLL_isprint
895 stdcall isspace(long) CRTDLL_isspace
896 stdcall isupper(long) CRTDLL_isupper
891 cdecl isalpha(long) isalpha
892 cdecl isdigit(long) isdigit
893 cdecl islower(long) islower
894 cdecl isprint(long) isprint
895 cdecl isspace(long) isspace
896 cdecl isupper(long) isupper
897 stub iswalpha
898 stub iswctype
899 stdcall isxdigit(long) CRTDLL_isxdigit
899 cdecl isxdigit(long) isxdigit
900 stub labs
901 stub log
902 stub mbstowcs
903 stub memchr
904 stub memcmp
905 stub memcpy
906 stdcall memmove(ptr ptr long) memmove
907 stub memset
903 cdecl memchr(ptr long long) memchr
904 cdecl memcmp(ptr ptr long) memcmp
905 cdecl memcpy(ptr ptr long) memcpy
906 cdecl memmove(ptr ptr long) memmove
907 cdecl memset(ptr long long) memset
908 stub pow
909 stub qsort
910 stub sin
911 stdcall sprintf() CRTDLL_sprintf
911 varargs sprintf() wsprintf32A
912 stub sqrt
913 stdcall sscanf() CRTDLL_sscanf
914 stub strcat
915 stdcall strchr(ptr long) strchr
916 stdcall strcmp(ptr ptr) lstrcmp32A
917 stdcall strcpy(ptr ptr) lstrcpy32A
918 stub strcspn
919 stdcall strlen(ptr) lstrlen32A
920 stub strncat
921 stub strncmp
922 stub strncpy
923 stub strpbrk
924 stdcall strrchr(ptr long) strrchr
925 stub strspn
926 stub strstr
927 stdcall swprintf() CRTDLL_swprintf
913 varargs sscanf() sscanf
914 cdecl strcat(ptr ptr) strcat
915 cdecl strchr(ptr long) strchr
916 cdecl strcmp(ptr ptr) strcmp
917 cdecl strcpy(ptr ptr) strcpy
918 cdecl strcspn(ptr ptr) strcspn
919 cdecl strlen(ptr) strlen
920 cdecl strncat(ptr ptr long) strncat
921 cdecl strncmp(ptr ptr long) strncmp
922 cdecl strncpy(ptr ptr long) strncpy
923 cdecl strpbrk(ptr ptr long) strpbrk
924 cdecl strrchr(ptr long) strrchr
925 cdecl strspn(ptr ptr) strspn
926 cdecl strstr(ptr ptr) strstr
927 varargs swprintf() wsprintf32W
928 stub tan
929 stdcall tolower(long) CRTDLL_tolower
930 stdcall toupper(long) CRTDLL_toupper
929 cdecl tolower(long) tolower
930 cdecl toupper(long) toupper
931 stub towlower
932 stub towupper
933 stub vsprintf
934 stdcall wcscat(ptr ptr) lstrcat32W
935 stdcall wcschr(ptr long) CRTDLL_wcschr
933 cdecl vsprintf(ptr ptr ptr) CRTDLL_vsprintf
934 cdecl wcscat(ptr ptr) CRTDLL_wcscat
935 cdecl wcschr(ptr long) CRTDLL_wcschr
936 stub wcscmp
937 stdcall wcscpy(ptr ptr) lstrcpy32W
937 cdecl wcscpy(ptr ptr) CRTDLL_wcscpy
938 stub wcscspn
939 stdcall wcslen(ptr) lstrlen32W
939 cdecl wcslen(ptr) CRTDLL_wcslen
940 stub wcsncat
941 stub wcsncmp
942 stdcall wcsncpy(ptr ptr long) lstrcpyn32W
942 cdecl wcsncpy(ptr ptr long) CRTDLL_wcsncpy
943 stub wcspbrk
944 stdcall wcsrchr(ptr long) CRTDLL_wcsrchr
944 cdecl wcsrchr(ptr long) CRTDLL_wcsrchr
945 stub wcsspn
946 stdcall wcsstr(ptr ptr) CRTDLL_wcsstr
946 cdecl wcsstr(ptr ptr) CRTDLL_wcsstr
947 stub wcstok
948 stub wcstol
949 stdcall wcstombs(ptr ptr) lstrcpyWtoA
949 cdecl wcstombs(ptr ptr long) CRTDLL_wcstombs
950 stub wcstoul
......@@ -74,7 +74,7 @@ type win16
71 stub OLECONVERTOLESTREAMTOISTORAGE
74 stub READFMTUSERTYPESTG
75 stub WRITEFMTUSERTYPESTG
76 stub OLEFLUSHCLIPBOARD
76 pascal16 OleFlushClipboard() OleFlushClipboard
77 stub OLEISCURRENTCLIPBOARD
78 stub OLETRANSLATEACCELERATOR
79 stub OLEDOAUTOCONVERT
......
name ole32
type win32
base 1
0 stub BindMoniker
1 stub CLSIDFromProgID
2 stub CLSIDFromString
3 stub CoBuildVersion
4 stub CoCreateFreeThreadedMarshaler
5 stub CoCreateGuid
6 stub CoCreateInstance
7 stub CoDisconnectObject
8 stub CoDosDateTimeToFileTime
9 stub CoFileTimeNow
10 stub CoFileTimeToDosDateTime
11 stub CoFreeAllLibraries
12 stub CoFreeLibrary
13 stub CoFreeUnusedLibraries
14 stub CoGetCallerTID
15 stub CoGetClassObject
16 stub CoGetCurrentLogicalThreadId
17 stub CoGetCurrentProcess
18 stub CoGetInterfaceAndReleaseStream
19 stub CoGetMalloc
20 stub CoGetMarshalSizeMax
21 stub CoGetPSClsid
22 stub CoGetStandardMarshal
23 stub CoGetState
24 stub CoGetTreatAsClass
25 stub CoInitialize
26 stub CoInitializeWOW
27 stub CoIsHandlerConnected
28 stub CoIsOle1Class
29 stub CoLoadLibrary
30 stub CoLockObjectExternal
31 stub CoMarshalHresult
32 stub CoMarshalInterThreadInterfaceInStream
33 stub CoMarshalInterface
34 stub CoQueryReleaseObject
35 stub CoRegisterClassObject
36 stub CoRegisterMallocSpy
37 stub CoRegisterMessageFilter
38 stub CoReleaseMarshalData
39 stub CoRevokeClassObject
40 stub CoRevokeMallocSpy
41 stub CoSetState
42 stub CoTaskMemAlloc
43 stub CoTaskMemFree
44 stub CoTaskMemRealloc
45 stub CoTreatAsClass
46 stub CoUninitialize
47 stub CoUnloadingWOW
48 stub CoUnmarshalHresult
49 stub CoUnmarshalInterface
50 stub CreateAntiMoniker
51 stub CreateBindCtx
52 stub CreateDataAdviseHolder
53 stub CreateDataCache
54 stub CreateFileMoniker
55 stub CreateGenericComposite
56 stub CreateILockBytesOnHGlobal
57 stub CreateItemMoniker
58 stub CreateOleAdviseHolder
59 stub CreatePointerMoniker
60 stub CreateStreamOnHGlobal
61 stub DllDebugObjectRPCHook
62 stub DllGetClassObject
63 stub DllGetClassObjectWOW
64 stub DoDragDrop
65 stub EnableHookObject
66 stub GetClassFile
67 stub GetConvertStg
68 stub GetDocumentBitStg
69 stub GetHGlobalFromILockBytes
70 stub GetHGlobalFromStream
71 stub GetHookInterface
72 stub GetRunningObjectTable
73 stub IIDFromString
74 stub IsAccelerator
75 stub IsEqualGUID
76 stub IsValidIid
77 stub IsValidInterface
78 stub IsValidPtrIn
79 stub IsValidPtrOut
80 stub MkParseDisplayName
81 stub MonikerCommonPrefixWith
82 stub MonikerRelativePathTo
83 stub OleBuildVersion
84 stub OleConvertIStorageToOLESTREAM
85 stub OleConvertIStorageToOLESTREAMEx
86 stub OleConvertOLESTREAMToIStorage
87 stub OleConvertOLESTREAMToIStorageEx
88 stub OleCreate
89 stub OleCreateDefaultHandler
90 stub OleCreateEmbeddingHelper
91 stub OleCreateFromData
92 stub OleCreateFromFile
93 stub OleCreateLink
94 stub OleCreateLinkFromData
95 stub OleCreateLinkToFile
96 stub OleCreateMenuDescriptor
97 stub OleCreateStaticFromData
98 stub OleDestroyMenuDescriptor
99 stub OleDoAutoConvert
100 stub OleDraw
101 stub OleDuplicateData
102 stub OleFlushClipboard
103 stub OleGetAutoConvert
104 stub OleGetClipboard
105 stub OleGetIconOfClass
106 stub OleGetIconOfFile
107 return OleInitialize 4 0
108 stub OleInitializeWOW
109 stub OleIsCurrentClipboard
110 stub OleIsRunning
111 stub OleLoad
112 stub OleLoadFromStream
113 stub OleLockRunning
114 stub OleMetafilePictFromIconAndLabel
115 stub OleNoteObjectVisible
116 stub OleQueryCreateFromData
117 stub OleQueryLinkFromData
118 stub OleRegEnumFormatEtc
119 stub OleRegEnumVerbs
120 stub OleRegGetMiscStatus
121 stub OleRegGetUserType
122 stub OleRun
123 stub OleSave
124 stub OleSaveToStream
125 stub OleSetAutoConvert
126 stub OleSetClipboard
127 stub OleSetContainedObject
128 stub OleSetMenuDescriptor
129 stub OleTranslateAccelerator
130 return OleUninitialize 0 0
131 stub OpenOrCreateStream
132 stub ProgIDFromCLSID
133 stub ReadClassStg
134 stub ReadClassStm
135 stub ReadFmtUserTypeStg
136 stub ReadOleStg
137 stub ReadStringStream
138 stub RegisterDragDrop
139 stub ReleaseStgMedium
140 stub RevokeDragDrop
141 stub SetConvertStg
142 stub SetDocumentBitStg
143 stub StgCreateDocfile
144 stub StgCreateDocfileOnILockBytes
145 stub StgIsStorageFile
146 stub StgIsStorageILockBytes
147 stub StgOpenStorage
148 stub StgOpenStorageOnILockBytes
149 stub StgSetTimes
150 stub StringFromCLSID
151 stub StringFromGUID2
152 stub StringFromIID
153 stub UtConvertDvtd16toDvtd32
154 stub UtConvertDvtd32toDvtd16
155 stub UtGetDvtd16Info
156 stub UtGetDvtd32Info
157 stub WriteClassStg
158 stub WriteClassStm
159 stub WriteFmtUserTypeStg
160 stub WriteOleStg
161 stub WriteStringStream
1 stub BindMoniker
2 stub CLSIDFromProgID
3 stub CLSIDFromString
4 stub CoBuildVersion
5 stub CoCreateFreeThreadedMarshaler
6 stub CoCreateGuid
7 stub CoCreateInstance
8 stub CoDisconnectObject
9 stub CoDosDateTimeToFileTime
10 stub CoFileTimeNow
11 stub CoFileTimeToDosDateTime
12 stub CoFreeAllLibraries
13 stub CoFreeLibrary
14 stub CoFreeUnusedLibraries
15 stub CoGetCallerTID
16 stub CoGetClassObject
17 stub CoGetCurrentLogicalThreadId
18 stub CoGetCurrentProcess
19 stub CoGetInterfaceAndReleaseStream
20 stub CoGetMalloc
21 stub CoGetMarshalSizeMax
22 stub CoGetPSClsid
23 stub CoGetStandardMarshal
24 stub CoGetState
25 stub CoGetTreatAsClass
26 stub CoInitialize
27 stub CoInitializeWOW
28 stub CoIsHandlerConnected
29 stub CoIsOle1Class
30 stub CoLoadLibrary
31 stub CoLockObjectExternal
32 stub CoMarshalHresult
33 stub CoMarshalInterThreadInterfaceInStream
34 stub CoMarshalInterface
35 stub CoQueryReleaseObject
36 stub CoRegisterClassObject
37 stub CoRegisterMallocSpy
38 stub CoRegisterMessageFilter
39 stub CoReleaseMarshalData
40 stub CoRevokeClassObject
41 stub CoRevokeMallocSpy
42 stub CoSetState
43 stub CoTaskMemAlloc
44 stub CoTaskMemFree
45 stub CoTaskMemRealloc
46 stub CoTreatAsClass
47 stub CoUninitialize
48 stub CoUnloadingWOW
49 stub CoUnmarshalHresult
50 stub CoUnmarshalInterface
51 stub CreateAntiMoniker
52 stub CreateBindCtx
53 stub CreateDataAdviseHolder
54 stub CreateDataCache
55 stub CreateFileMoniker
56 stub CreateGenericComposite
57 stub CreateILockBytesOnHGlobal
58 stub CreateItemMoniker
59 stub CreateOleAdviseHolder
60 stub CreatePointerMoniker
61 stub CreateStreamOnHGlobal
62 stub DllDebugObjectRPCHook
63 stub DllGetClassObject
64 stub DllGetClassObjectWOW
65 stub DoDragDrop
66 stub EnableHookObject
67 stub GetClassFile
68 stub GetConvertStg
69 stub GetDocumentBitStg
70 stub GetHGlobalFromILockBytes
71 stub GetHGlobalFromStream
72 stub GetHookInterface
73 stub GetRunningObjectTable
74 stub IIDFromString
75 stub IsAccelerator
76 stub IsEqualGUID
77 stub IsValidIid
78 stub IsValidInterface
79 stub IsValidPtrIn
80 stub IsValidPtrOut
81 stub MkParseDisplayName
82 stub MonikerCommonPrefixWith
83 stub MonikerRelativePathTo
84 stub OleBuildVersion
85 stub OleConvertIStorageToOLESTREAM
86 stub OleConvertIStorageToOLESTREAMEx
87 stub OleConvertOLESTREAMToIStorage
88 stub OleConvertOLESTREAMToIStorageEx
89 stub OleCreate
90 stub OleCreateDefaultHandler
91 stub OleCreateEmbeddingHelper
92 stub OleCreateFromData
93 stub OleCreateFromFile
94 stub OleCreateLink
95 stub OleCreateLinkFromData
96 stub OleCreateLinkToFile
97 stub OleCreateMenuDescriptor
98 stub OleCreateStaticFromData
99 stub OleDestroyMenuDescriptor
100 stub OleDoAutoConvert
101 stub OleDraw
102 stub OleDuplicateData
103 stub OleFlushClipboard
104 stub OleGetAutoConvert
105 stub OleGetClipboard
106 stub OleGetIconOfClass
107 stub OleGetIconOfFile
108 return OleInitialize 4 0
109 stub OleInitializeWOW
110 stub OleIsCurrentClipboard
111 stub OleIsRunning
112 stub OleLoad
113 stub OleLoadFromStream
114 stub OleLockRunning
115 stub OleMetafilePictFromIconAndLabel
116 stub OleNoteObjectVisible
117 stub OleQueryCreateFromData
118 stub OleQueryLinkFromData
119 stub OleRegEnumFormatEtc
120 stub OleRegEnumVerbs
121 stub OleRegGetMiscStatus
122 stub OleRegGetUserType
123 stub OleRun
124 stub OleSave
125 stub OleSaveToStream
126 stub OleSetAutoConvert
127 stub OleSetClipboard
128 stub OleSetContainedObject
129 stub OleSetMenuDescriptor
130 stub OleTranslateAccelerator
131 return OleUninitialize 0 0
132 stub OpenOrCreateStream
133 stub ProgIDFromCLSID
134 stub ReadClassStg
135 stub ReadClassStm
136 stub ReadFmtUserTypeStg
137 stub ReadOleStg
138 stub ReadStringStream
139 stub RegisterDragDrop
140 stub ReleaseStgMedium
141 stub RevokeDragDrop
142 stub SetConvertStg
143 stub SetDocumentBitStg
144 stub StgCreateDocfile
145 stub StgCreateDocfileOnILockBytes
146 stub StgIsStorageFile
147 stub StgIsStorageILockBytes
148 stub StgOpenStorage
149 stub StgOpenStorageOnILockBytes
150 stub StgSetTimes
151 stub StringFromCLSID
152 stub StringFromGUID2
153 stub StringFromIID
154 stub UtConvertDvtd16toDvtd32
155 stub UtConvertDvtd32toDvtd16
156 stub UtGetDvtd16Info
157 stub UtGetDvtd32Info
158 stub WriteClassStg
159 stub WriteClassStm
160 stub WriteFmtUserTypeStg
161 stub WriteOleStg
162 stub WriteStringStream
......@@ -352,15 +352,15 @@ INT16 WINAPI Catch( LPCATCHBUF lpbuf )
*/
/* FIXME: we need to save %si and %di */
lpbuf[0] = OFFSETOF(IF1632_Saved16_ss_sp);
lpbuf[1] = LOWORD(IF1632_Saved32_esp);
lpbuf[2] = HIWORD(IF1632_Saved32_esp);
lpbuf[3] = LOWORD(pFrame->saved_ss_sp);
lpbuf[4] = HIWORD(pFrame->saved_ss_sp);
lpbuf[5] = pFrame->ds;
lpbuf[6] = pFrame->bp;
lpbuf[7] = pFrame->ip;
lpbuf[8] = pFrame->cs;
lpbuf[0] = pFrame->ip;
lpbuf[1] = pFrame->cs;
lpbuf[2] = LOWORD(pFrame->saved_ss_sp);
lpbuf[3] = pFrame->bp;
lpbuf[4] = LOWORD(IF1632_Saved32_esp);
lpbuf[5] = HIWORD(IF1632_Saved32_esp);
lpbuf[6] = pFrame->ds;
lpbuf[7] = OFFSETOF(IF1632_Saved16_ss_sp);
lpbuf[8] = HIWORD(pFrame->saved_ss_sp);
return 0;
}
......@@ -373,15 +373,15 @@ INT16 WINAPI Throw( LPCATCHBUF lpbuf, INT16 retval )
STACK16FRAME *pFrame;
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) );
IF1632_Saved32_esp = MAKELONG( lpbuf[1], lpbuf[2] );
IF1632_Saved32_esp = MAKELONG( lpbuf[4], lpbuf[5] );
pFrame = CURRENT_STACK16;
pFrame->saved_ss_sp = MAKELONG( lpbuf[3], lpbuf[4] );
pFrame->ds = lpbuf[5];
pFrame->bp = lpbuf[6];
pFrame->ip = lpbuf[7];
pFrame->cs = lpbuf[8];
pFrame->saved_ss_sp = MAKELONG( lpbuf[2], lpbuf[8] );
pFrame->ds = lpbuf[6];
pFrame->bp = lpbuf[3];
pFrame->ip = lpbuf[0];
pFrame->cs = lpbuf[1];
pFrame->es = es;
if (debugging_relay) /* Make sure we have a valid entry point address */
{
......
name shell32
type win32
base 1
# Functions exported by the Win95 shell32.dll
# (these need to have these exact ordinals, for some win95 dlls
# import shell32.dll by ordinal)
1 stub CheckEscapesA
4 stub CheckEscapesW
5 stdcall CommandLineToArgvW(ptr ptr) CommandLineToArgvW
6 stub Control_FillCache_RunDLL
10 stub Control_RunDLL
12 stub DllGetClassObject
20 stub DoEnvironmentSubstA
36 stub DoEnvironmentSubstW
39 stdcall DragAcceptFiles(long long) DragAcceptFiles
40 stub DragFinish
42 stub DragQueryFile
3 stub CheckEscapesA
6 stub CheckEscapesW
7 stdcall CommandLineToArgvW(ptr ptr) CommandLineToArgvW
8 stub Control_FillCache_RunDLL
12 stdcall Control_RunDLL(long long long long) Control_RunDLL
14 stub DllGetClassObject
22 stub DoEnvironmentSubstA
33 stub SHELL32_33
34 stub SHELL32_34
35 stub SHELL32_35
38 stub DoEnvironmentSubstW
41 stdcall DragAcceptFiles(long long) DragAcceptFiles
42 stub DragFinish
44 stub DragQueryFile
46 stub SHELL32_46
47 stub SHELL32_47
48 stub DragQueryFileA
51 stub DragQueryFileAorW
52 stub DragQueryFileW
74 stub DragQueryPoint
78 stub DuplicateIcon
80 stub ExtractAssociatedIconA
99 stub ExtractAssociatedIconExA
122 stub ExtractAssociatedIconExW
123 stub ExtractAssociatedIconW
131 stub ExtractIconA
133 stub ExtractIconEx
136 stub ExtractIconExA
146 stub ExtractIconResInfoA
148 stub ExtractIconResInfoW
154 stub SHELL32_154
155 stub SHELL32_155
48 stub SHELL32_48
49 stub SHELL32_49
50 stub DragQueryFileA
53 stub DragQueryFileAorW
54 stub DragQueryFileW
56 stub SHELL32_56
57 stub SHELL32_57
58 stub SHELL32_58
62 stub SHELL32_62
63 stub SHELL32_63
64 stub SHELL32_64
65 stub SHELL32_65
76 stub DragQueryPoint
80 stub DuplicateIcon
82 stub ExtractAssociatedIconA
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
157 stub SHELL32_157
158 stub SHELL32_158
178 stub ExtractIconW
180 stub ExtractVersionResource16W
182 stub SHELL32_182
183 stub SHELL32_183
184 stdcall FindExecutableA(ptr ptr ptr) FindExecutable32A
185 stub FindExecutableW
186 return FreeIconList 4 0
187 stub InternalExtractIconListA
188 stub InternalExtractIconListW
189 stub OpenAs_RunDLL
190 stub PrintersGetCommand_RunDLL
191 stub RealShellExecuteA
192 stub RealShellExecuteExA
201 stub RealShellExecuteExW
202 stub RealShellExecuteW
203 stub RegenerateUserEnvironment
204 stub SHAddToRecentDocs
205 stub SHAppBarMessage
206 stub SHBrowseForFolder
207 stub SHBrowseForFolderA
208 stub SHChangeNotify
209 stub SHFileOperation
210 stub SHFileOperationA
211 stub SHFormatDrive
212 stub SHFreeNameMappings
213 stub SHGetDataFromIDListA
214 stub SHGetDesktopFolder
215 stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfo32A
216 stdcall SHGetFileInfoA(ptr long ptr long long) SHGetFileInfo32A
217 stub SHGetInstanceExplorer
218 stub SHGetMalloc
219 stub SHGetPathFromIDList
220 stub SHGetPathFromIDListA
221 stub SHGetSpecialFolderLocation
222 stub SHHelpShortcuts_RunDLL
223 stub SHLoadInProc
224 stub SheChangeDirA
225 stub SheChangeDirExA
226 stub SheChangeDirExW
227 stub SheChangeDirW
228 stub SheConvertPathW
229 stub SheFullPathA
230 stub SheFullPathW
231 stub SheGetCurDrive
232 stub SheGetDirA
233 stub SheGetDirExW
234 stub SheGetDirW
235 stub SheGetPathOffsetW
236 stub SheRemoveQuotesA
237 stub SheRemoveQuotesW
238 stub SheSetCurDrive
239 stub SheShortenPathA
240 stub SheShortenPathW
241 stdcall ShellAboutA(long ptr ptr long) ShellAbout32A
242 stdcall ShellAboutW(long ptr ptr long) ShellAbout32W
243 stdcall ShellExecuteA(long ptr ptr ptr ptr long) ShellExecute32A
244 stub ShellExecuteEx
245 stub ShellExecuteExA
246 stub ShellExecuteW
247 stub Shell_NotifyIcon
248 stub Shell_NotifyIconA
249 stub Shl1632_ThunkData32
250 stub Shl3216_ThunkData32
1023 stub ExtractIconExW # proper ordinal unknown
1028 stub FindExeDlgProc # proper ordinal unknown
1041 stub RegisterShellHook # proper ordinal unknown
1046 stub SHBrowseForFolderW # proper ordinal unknown
1050 stub SHFileOperationW # proper ordinal unknown
1056 stub SHGetFileInfoW # proper ordinal unknown
1061 stub SHGetPathFromIDListW # proper ordinal unknown
1087 stub ShellExecuteExW # proper ordinal unknown
1089 stub ShellHookProc # proper ordinal unknown
1092 stub Shell_NotifyIconW # proper ordinal unknown
1093 stub StrChrA # proper ordinal unknown
1094 stub StrChrIA # proper ordinal unknown
1095 stub StrChrIW # proper ordinal unknown
1096 stub StrChrW # proper ordinal unknown
1097 stub StrCmpNA # proper ordinal unknown
1098 stub StrCmpNIA # proper ordinal unknown
1099 stub StrCmpNIW # proper ordinal unknown
1100 stub StrCmpNW # proper ordinal unknown
1101 stub StrCpyNA # proper ordinal unknown
1102 stub StrCpyNW # proper ordinal unknown
1103 stub StrNCmpA # proper ordinal unknown
1104 stub StrNCmpIA # proper ordinal unknown
1105 stub StrNCmpIW # proper ordinal unknown
1106 stub StrNCmpW # proper ordinal unknown
1107 stub StrNCpyA # proper ordinal unknown
1108 stub StrNCpyW # proper ordinal unknown
1109 stub StrRChrA # proper ordinal unknown
1110 stub StrRChrIA # proper ordinal unknown
1111 stub StrRChrIW # proper ordinal unknown
1112 stub StrRChrW # proper ordinal unknown
1113 stub StrRStrA # proper ordinal unknown
1114 stub StrRStrIA # proper ordinal unknown
1115 stub StrRStrIW # proper ordinal unknown
1116 stub StrRStrW # proper ordinal unknown
1117 stub StrStrA # proper ordinal unknown
1118 stub StrStrIA # proper ordinal unknown
1119 stub StrStrIW # proper ordinal unknown
1120 stub StrStrW # proper ordinal unknown
1121 stub WOWShellExecute # proper ordinal unknown
159 stub SHELL32_159
160 stub SHELL32_160
180 stub ExtractIconW
182 stub ExtractVersionResource16W
184 stub SHELL32_184
185 stub SHELL32_185
186 stdcall FindExecutableA(ptr ptr ptr) FindExecutable32A
187 stub FindExecutableW
188 return FreeIconList 4 0
189 stub InternalExtractIconListA
190 stub InternalExtractIconListW
191 stub OpenAs_RunDLL
192 stub PrintersGetCommand_RunDLL
193 stub RealShellExecuteA
194 stub RealShellExecuteExA
203 stub RealShellExecuteExW
204 stub RealShellExecuteW
205 stub RegenerateUserEnvironment
206 stub SHAddToRecentDocs
207 stub SHAppBarMessage
208 stub SHBrowseForFolder
209 stub SHBrowseForFolderA
210 stub SHChangeNotify
211 stub SHFileOperation
212 stub SHFileOperationA
213 stub SHFormatDrive
214 stub SHFreeNameMappings
215 stub SHGetDataFromIDListA
216 stub SHGetDesktopFolder
217 stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfo32A
218 stdcall SHGetFileInfoA(ptr long ptr long long) SHGetFileInfo32A
219 stub SHGetInstanceExplorer
220 stub SHGetMalloc
221 stub SHGetPathFromIDList
222 stub SHGetPathFromIDListA
223 stub SHGetSpecialFolderLocation
224 stub SHHelpShortcuts_RunDLL
225 stub SHLoadInProc
226 stub SheChangeDirA
227 stub SheChangeDirExA
228 stub SheChangeDirExW
229 stub SheChangeDirW
230 stub SheConvertPathW
231 stub SheFullPathA
232 stub SheFullPathW
233 stub SheGetCurDrive
234 stub SheGetDirA
235 stub SheGetDirExW
236 stub SheGetDirW
237 stub SheGetPathOffsetW
238 stub SheRemoveQuotesA
239 stub SheRemoveQuotesW
240 stub SheSetCurDrive
241 stub SheShortenPathA
242 stub SheShortenPathW
243 stdcall ShellAboutA(long ptr ptr long) ShellAbout32A
244 stdcall ShellAboutW(long ptr ptr long) ShellAbout32W
245 stdcall ShellExecuteA(long ptr ptr ptr ptr long) ShellExecute32A
246 stub ShellExecuteEx
247 stub ShellExecuteExA
248 stub ShellExecuteW
249 stub Shell_NotifyIcon
250 stub Shell_NotifyIconA
251 stub Shl1632_ThunkData32
252 stub Shl3216_ThunkData32
1025 stub ExtractIconExW # proper ordinal unknown
1030 stub FindExeDlgProc # proper ordinal unknown
1043 stub RegisterShellHook # proper ordinal unknown
1048 stub SHBrowseForFolderW # proper ordinal unknown
1052 stub SHFileOperationW # proper ordinal unknown
1058 stub SHGetFileInfoW # proper ordinal unknown
1063 stub SHGetPathFromIDListW # proper ordinal unknown
1089 stub ShellExecuteExW # proper ordinal unknown
1091 stub ShellHookProc # proper ordinal unknown
1094 stub Shell_NotifyIconW # proper ordinal unknown
1095 stub StrChrA # proper ordinal unknown
1096 stub StrChrIA # proper ordinal unknown
1097 stub StrChrIW # proper ordinal unknown
1098 stub StrChrW # proper ordinal unknown
1099 stub StrCmpNA # proper ordinal unknown
1100 stub StrCmpNIA # proper ordinal unknown
1101 stub StrCmpNIW # proper ordinal unknown
1102 stub StrCmpNW # proper ordinal unknown
1103 stub StrCpyNA # proper ordinal unknown
1104 stub StrCpyNW # proper ordinal unknown
1105 stub StrNCmpA # proper ordinal unknown
1106 stub StrNCmpIA # proper ordinal unknown
1107 stub StrNCmpIW # proper ordinal unknown
1108 stub StrNCmpW # proper ordinal unknown
1109 stub StrNCpyA # proper ordinal unknown
1110 stub StrNCpyW # proper ordinal unknown
1111 stub StrRChrA # proper ordinal unknown
1112 stub StrRChrIA # proper ordinal unknown
1113 stub StrRChrIW # proper ordinal unknown
1114 stub StrRChrW # proper ordinal unknown
1115 stub StrRStrA # proper ordinal unknown
1116 stub StrRStrIA # proper ordinal unknown
1117 stub StrRStrIW # proper ordinal unknown
1118 stub StrRStrW # proper ordinal unknown
1119 stub StrStrA # proper ordinal unknown
1120 stub StrStrIA # 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 @@
#include "options.h"
#include "sig_context.h"
#include "miscemu.h"
#include "thread.h"
/* Signal handler declaration */
......@@ -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
*
......@@ -111,14 +220,25 @@ static HANDLER_DEF(SIGNAL_fault)
*/
BOOL32 SIGNAL_InitEmulator(void)
{
struct itimerval vt_timer;
SIGNAL_SetHandler( SIGINT, (void (*)())SIGNAL_break, 1);
SIGNAL_SetHandler( SIGSEGV, (void (*)())SIGNAL_fault, 1);
SIGNAL_SetHandler( SIGILL, (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( SIGHUP, (void (*)())SIGNAL_trap, 1); /* forced break*/
#ifdef SIGBUS
SIGNAL_SetHandler( SIGBUS, (void (*)())SIGNAL_fault, 1);
#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;
}
......@@ -86,7 +86,7 @@ file user.exe
82 pascal16 InvertRect(word ptr) InvertRect16
83 pascal16 FrameRect(word ptr word) FrameRect16
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
88 pascal16 EndDialog(word s_word) EndDialog16
89 pascal16 CreateDialog(word segstr word segptr) CreateDialog16
......@@ -207,13 +207,13 @@ file user.exe
203 pascal16 GetCommError(word ptr) GetCommError
204 pascal16 ReadComm(word ptr word) ReadComm
205 pascal16 WriteComm(word ptr word) WriteComm
206 pascal16 TransmitCommChar(word byte) TransmitCommChar16
206 pascal16 TransmitCommChar(word word) TransmitCommChar16
207 pascal16 CloseComm(word) CloseComm
208 pascal SetCommEventMask(word word) SetCommEventMask
209 pascal16 GetCommEventMask(word word) GetCommEventMask
210 pascal16 SetCommBreak(word) SetCommBreak16
211 pascal16 ClearCommBreak(word) ClearCommBreak16
212 pascal16 UngetCommChar(word byte) UngetCommChar
212 pascal16 UngetCommChar(word word) UngetCommChar
213 pascal16 BuildCommDCB(ptr ptr) BuildCommDCB16
214 pascal EscapeCommFunction(word word) EscapeCommFunction16
215 pascal16 FlushComm(word word) FlushComm
......@@ -305,7 +305,7 @@ file user.exe
#306 BEAR306
308 pascal DefDlgProc(word word word long) DefDlgProc16
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
320 stub SysErrorBox
321 stub SetEventHook
......@@ -316,19 +316,19 @@ file user.exe
326 pascal16 GetControlBrush(word word word) GetControlBrush
331 pascal16 EnableHardwareInput(word) EnableHardwareInput
332 pascal16 UserYield() UserYield
333 stub IsUserIdle
333 pascal16 IsUserIdle() IsUserIdle
334 pascal GetQueueStatus(word) GetQueueStatus16
335 pascal16 GetInputState() GetInputState16
336 stub LoadCursorIconHandler
336 pascal16 LoadCursorIconHandler(word word word) LoadCursorIconHandler
337 pascal GetMouseEventProc() GetMouseEventProc
#341 _FFFE_FARFRAME
343 stub GetFilePortName
356 stub LoadDIBCursorHandler
357 stub LoadDIBIconHandler
356 pascal16 LoadDIBCursorHandler(word word word) LoadDIBCursorHandler
357 pascal16 LoadDIBIconHandler(word word word) LoadDIBIconHandler
358 pascal16 IsMenu(word) IsMenu16
359 pascal16 GetDCEx(word word long) GetDCEx16
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
369 pascal16 CopyCursor(word word) CopyCursor16
370 pascal16 GetWindowPlacement(word ptr) GetWindowPlacement16
......@@ -381,10 +381,10 @@ file user.exe
430 pascal16 lstrcmp(str str) lstrcmp16
431 pascal AnsiUpper(segstr) AnsiUpper16
432 pascal AnsiLower(segstr) AnsiLower16
433 pascal16 IsCharAlpha(byte) IsCharAlpha16
434 pascal16 IsCharAlphaNumeric(byte) IsCharAlphaNumeric16
435 pascal16 IsCharUpper(byte) IsCharUpper16
436 pascal16 IsCharLower(byte) IsCharLower16
433 pascal16 IsCharAlpha(word) IsCharAlpha16
434 pascal16 IsCharAlphaNumeric(word) IsCharAlphaNumeric16
435 pascal16 IsCharUpper(word) IsCharUpper16
436 pascal16 IsCharLower(word) IsCharLower16
437 pascal16 AnsiUpperBuff(ptr word) AnsiUpperBuff16
438 pascal16 AnsiLowerBuff(ptr word) AnsiLowerBuff16
441 pascal16 InsertMenuItem(word word word ptr) InsertMenuItem16
......@@ -394,7 +394,7 @@ file user.exe
447 pascal DefMDIChildProc(word word word long) DefMDIChildProc16
448 stub DrawAnimatedRects
449 stub DrawState
450 stub CreateIconFromResourceEx
450 pascal16 CreateIconFromResourceEx(ptr long word long word word word) CreateIconFromResourceEx16
451 pascal16 TranslateMDISysAccel(word ptr) TranslateMDISysAccel16
452 pascal16 CreateWindowEx(long str str long s_word s_word s_word s_word
word word word segptr) CreateWindowEx16
......@@ -442,7 +442,7 @@ file user.exe
509 pascal16 WNetUnwatchQueue(word ptr ptr word) WNetUnwatchQueue
510 pascal16 WNetLockQueueData(ptr ptr ptr) WNetLockQueueData
511 pascal16 WNetUnlockQueueData(ptr) WNetUnlockQueueData
512 pascal16 WNetGetConnection(ptr ptr ptr) WNetGetConnection
512 pascal16 WNetGetConnection(ptr ptr ptr) WNetGetConnection16
513 pascal16 WNetGetCaps(word) WNetGetCaps
514 pascal16 WNetDeviceMode(word) WNetDeviceMode
515 pascal16 WNetBrowseDialog(word word ptr) WNetBrowseDialog
......
......@@ -3,14 +3,14 @@ type win16
#1 DLLENTRYPOINT
2 pascal GetFileResourceSize(ptr segptr segptr ptr) GetFileResourceSize
3 pascal GetFileResource(ptr segptr segptr long long ptr) GetFileResource
6 pascal GetFileVersionInfoSize(ptr ptr) GetFileVersionInfoSize16
7 pascal GetFileVersionInfo(ptr long long ptr) GetFileVersionInfo16
8 pascal VerFindFile(word ptr ptr ptr ptr ptr ptr ptr) VerFindFile16
9 pascal VerInstallFile(word ptr ptr ptr ptr ptr ptr ptr) VerInstallFile16
2 pascal GetFileResourceSize(str segptr segptr ptr) GetFileResourceSize
3 pascal GetFileResource(str segptr segptr long long ptr) GetFileResource
6 pascal GetFileVersionInfoSize(str ptr) GetFileVersionInfoSize16
7 pascal GetFileVersionInfo(str long long ptr) GetFileVersionInfo16
8 pascal VerFindFile(word str str str ptr ptr ptr ptr) VerFindFile16
9 pascal VerInstallFile(word str str str str str ptr ptr) VerInstallFile16
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
#21 VERFTHK_THUNKDATA16
#22 VERTHKSL_THUNKDATA16
name winmm
type win32
0001 stub PlaySoundA
0004 stub CloseDriver
0005 stub DefDriverProc
0006 stub DriverCallback
......@@ -15,7 +16,6 @@ type win32
0015 stub OpenDriver
0016 stub OpenDriverA
0017 stub PlaySound
0001 stub PlaySoundA
0018 stub PlaySoundW
0019 stub SendDriverMessage
0020 stub auxGetDevCapsA
......
name winspool
type win32
base 100
001 stub ADVANCEDSETUPDIALOG
002 stub AbortPrinter
003 stub AddFormA
004 stub AddFormW
005 stub AddJobA
006 stub AddJobW
007 stub AddMonitorA
008 stub AddMonitorW
009 stub AddPortA
010 stub AddPortExA
011 stub AddPortExW
012 stub AddPortW
013 stub AddPrintProcessorA
014 stub AddPrintProcessorW
015 stub AddPrintProvidorA
016 stub AddPrintProvidorW
017 stub AddPrinterA
018 stub AddPrinterConnectionA
019 stub AddPrinterConnectionW
020 stub AddPrinterDriverA
021 stub AddPrinterDriverW
022 stub AddPrinterW
023 stub AdvancedDocumentPropertiesA
024 stub AdvancedDocumentPropertiesW
025 stub AdvancedSetupDialog
026 stub ClosePrinter
027 stub ConfigurePortA
028 stub ConfigurePortW
029 stub ConnectToPrinterDlg
030 stub CreatePrinterIC
031 stub DEVICECAPABILITIES
032 stub DEVICEMODE
033 stub DeleteFormA
034 stub DeleteFormW
035 stub DeleteMonitorA
036 stub DeleteMonitorW
037 stub DeletePortA
038 stub DeletePortW
039 stub DeletePrintProcessorA
040 stub DeletePrintProcessorW
041 stub DeletePrintProvidorA
042 stub DeletePrintProvidorW
043 stub DeletePrinter
044 stub DeletePrinterConnectionA
045 stub DeletePrinterConnectionW
046 stub DeletePrinterDriverA
047 stub DeletePrinterDriverW
048 stub DeletePrinterIC
049 stub DevQueryPrint
050 stub DeviceCapabilities
051 stdcall DeviceCapabilitiesA(ptr ptr long ptr ptr) DeviceCapabilities32A
052 stub DeviceCapabilitiesW
053 stub DeviceMode
054 stub DocumentEvent
055 stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentProperties32A
056 stub DocumentPropertiesW
057 stub EXTDEVICEMODE
058 stub EndDocPrinter
059 stub EndPagePrinter
060 stub EnumFormsA
061 stub EnumFormsW
062 stub EnumJobsA
063 stub EnumJobsW
064 stub EnumMonitorsA
065 stub EnumMonitorsW
066 stub EnumPortsA
067 stub EnumPortsW
068 stub EnumPrintProcessorDatatypesA
069 stub EnumPrintProcessorDatatypesW
070 stub EnumPrintProcessorsA
071 stub EnumPrintProcessorsW
072 stub EnumPrinterDriversA
073 stub EnumPrinterDriversW
074 stub EnumPrintersA
075 stub EnumPrintersW
076 stub ExtDeviceMode
077 stub FindClosePrinterChangeNotification
078 stub FindFirstPrinterChangeNotification
079 stub FindNextPrinterChangeNotification
080 stub FreePrinterNotifyInfo
081 stub GetFormA
082 stub GetFormW
083 stub GetJobA
084 stub GetJobW
085 stub GetPrintProcessorDirectoryA
086 stub GetPrintProcessorDirectoryW
087 stub GetPrinterA
088 stub GetPrinterDataA
089 stub GetPrinterDataW
090 stub GetPrinterDriverA
091 stub GetPrinterDriverDirectoryA
092 stub GetPrinterDriverDirectoryW
093 stub GetPrinterDriverW
094 stub GetPrinterW
095 stub InitializeDll
096 stub OpenPrinterA
097 stub OpenPrinterW
098 stub PlayGdiScriptOnPrinterIC
099 stub PrinterMessageBoxA
100 stub PrinterMessageBoxW
101 stub PrinterProperties
102 stub ReadPrinter
103 stub ResetPrinterA
104 stub ResetPrinterW
105 stub ScheduleJob
106 stub SetAllocFailCount
107 stub SetFormA
108 stub SetFormW
109 stub SetJobA
110 stub SetJobW
111 stub SetPrinterA
112 stub SetPrinterDataA
113 stub SetPrinterDataW
114 stub SetPrinterW
115 stub SpoolerDevQueryPrintW
116 stub SpoolerInit
117 stub StartDocDlgA
118 stub StartDocDlgW
119 stub StartDocPrinterA
120 stub StartDocPrinterW
121 stub StartPagePrinter
122 stub WaitForPrinterChange
123 stub WritePrinter
101 stub ADVANCEDSETUPDIALOG
102 stub AbortPrinter
103 stub AddFormA
104 stub AddFormW
105 stub AddJobA
106 stub AddJobW
107 stub AddMonitorA
108 stub AddMonitorW
109 stub AddPortA
110 stub AddPortExA
111 stub AddPortExW
112 stub AddPortW
113 stub AddPrintProcessorA
114 stub AddPrintProcessorW
115 stub AddPrintProvidorA
116 stub AddPrintProvidorW
117 stub AddPrinterA
118 stub AddPrinterConnectionA
119 stub AddPrinterConnectionW
120 stub AddPrinterDriverA
121 stub AddPrinterDriverW
122 stub AddPrinterW
123 stub AdvancedDocumentPropertiesA
124 stub AdvancedDocumentPropertiesW
125 stub AdvancedSetupDialog
126 stub ClosePrinter
127 stub ConfigurePortA
128 stub ConfigurePortW
129 stub ConnectToPrinterDlg
130 stub CreatePrinterIC
131 stub DEVICECAPABILITIES
132 stub DEVICEMODE
133 stub DeleteFormA
134 stub DeleteFormW
135 stub DeleteMonitorA
136 stub DeleteMonitorW
137 stub DeletePortA
138 stub DeletePortW
139 stub DeletePrintProcessorA
140 stub DeletePrintProcessorW
141 stub DeletePrintProvidorA
142 stub DeletePrintProvidorW
143 stub DeletePrinter
144 stub DeletePrinterConnectionA
145 stub DeletePrinterConnectionW
146 stub DeletePrinterDriverA
147 stub DeletePrinterDriverW
148 stub DeletePrinterIC
149 stub DevQueryPrint
150 stub DeviceCapabilities
151 stdcall DeviceCapabilitiesA(ptr ptr long ptr ptr) DeviceCapabilities32A
152 stub DeviceCapabilitiesW
153 stub DeviceMode
154 stub DocumentEvent
155 stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentProperties32A
156 stub DocumentPropertiesW
157 stub EXTDEVICEMODE
158 stub EndDocPrinter
159 stub EndPagePrinter
160 stub EnumFormsA
161 stub EnumFormsW
162 stub EnumJobsA
163 stub EnumJobsW
164 stub EnumMonitorsA
165 stub EnumMonitorsW
166 stub EnumPortsA
167 stub EnumPortsW
168 stub EnumPrintProcessorDatatypesA
169 stub EnumPrintProcessorDatatypesW
170 stub EnumPrintProcessorsA
171 stub EnumPrintProcessorsW
172 stub EnumPrinterDriversA
173 stub EnumPrinterDriversW
174 stub EnumPrintersA
175 stub EnumPrintersW
176 stub ExtDeviceMode
177 stub FindClosePrinterChangeNotification
178 stub FindFirstPrinterChangeNotification
179 stub FindNextPrinterChangeNotification
180 stub FreePrinterNotifyInfo
181 stub GetFormA
182 stub GetFormW
183 stub GetJobA
184 stub GetJobW
185 stub GetPrintProcessorDirectoryA
186 stub GetPrintProcessorDirectoryW
187 stub GetPrinterA
188 stub GetPrinterDataA
189 stub GetPrinterDataW
190 stub GetPrinterDriverA
191 stub GetPrinterDriverDirectoryA
192 stub GetPrinterDriverDirectoryW
193 stub GetPrinterDriverW
194 stub GetPrinterW
195 stub InitializeDll
196 stub OpenPrinterA
197 stub OpenPrinterW
198 stub PlayGdiScriptOnPrinterIC
199 stub PrinterMessageBoxA
200 stub PrinterMessageBoxW
201 stub PrinterProperties
202 stub ReadPrinter
203 stub ResetPrinterA
204 stub ResetPrinterW
205 stub ScheduleJob
206 stub SetAllocFailCount
207 stub SetFormA
208 stub SetFormW
209 stub SetJobA
210 stub SetJobW
211 stub SetPrinterA
212 stub SetPrinterDataA
213 stub SetPrinterDataW
214 stub SetPrinterW
215 stub SpoolerDevQueryPrintW
216 stub SpoolerInit
217 stub StartDocDlgA
218 stub StartDocDlgW
219 stub StartDocPrinterA
220 stub StartDocPrinterW
221 stub StartPagePrinter
222 stub WaitForPrinterChange
223 stub WritePrinter
......@@ -12,6 +12,7 @@ type win16
24 pascal16 TASK_Reschedule() TASK_Reschedule
27 pascal EntryAddrProc(word word) EntryAddrProc
28 pascal MyAlloc(word word word) MODULE_AllocateSegment
29 pascal DefResourceHandler(word word word) NE_DefResourceHandler
30 pascal FormatCharDlgProc(word word word long) FormatCharDlgProc
# Interrupt vectors 0-255 are ordinals 100-355
......
name wsock32
type win32
base 0
001 stdcall accept(long ptr ptr) WINSOCK_accept32
002 stdcall bind(long ptr long) WINSOCK_bind32
......
......@@ -54,6 +54,8 @@ extern INT16 BITMAP_GetObject16( BITMAPOBJ * bmp, INT16 count, LPVOID buffer );
extern INT32 BITMAP_GetObject32( BITMAPOBJ * bmp, INT32 count, LPVOID buffer );
extern BOOL32 BITMAP_DeleteObject( HBITMAP16 hbitmap, BITMAPOBJ * bitmap );
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 */
extern int DIB_GetDIBWidthBytes( int width, int depth );
......
......@@ -22,34 +22,36 @@ extern int (*IF1632_CallLargeStack)( int (*func)(), void *arg );
#ifndef WINELIB
extern LONG CallTo16_regs_ ( const CONTEXT *context );
extern WORD CallTo16_word_ ( FARPROC16 );
extern WORD CallTo16_word_w ( FARPROC16, WORD );
extern LONG CallTo16_long_l ( FARPROC16, LONG );
extern WORD CallTo16_word_ww ( FARPROC16, WORD, WORD );
extern WORD CallTo16_word_wl ( FARPROC16, WORD, LONG );
extern WORD CallTo16_word_ll ( FARPROC16, LONG, LONG );
extern WORD CallTo16_word_www ( FARPROC16, WORD, WORD, WORD );
extern WORD CallTo16_word_wwl ( FARPROC16, WORD, WORD, LONG );
extern WORD CallTo16_word_wlw ( FARPROC16, WORD, LONG, WORD );
extern LONG CallTo16_long_wwl ( FARPROC16, WORD, WORD, LONG );
extern WORD CallTo16_word_llwl ( FARPROC16, LONG, LONG, WORD, LONG );
extern LONG CallTo16_long_wwwl ( FARPROC16, WORD, WORD, WORD, LONG );
extern WORD CallTo16_word_lwww ( FARPROC16, LONG, WORD, WORD, WORD );
extern WORD CallTo16_word_wwll ( FARPROC16, WORD, WORD, LONG, LONG );
extern WORD CallTo16_word_wllwl( FARPROC16, WORD, LONG, LONG, WORD, LONG );
extern LONG CallTo16_long_lwwll( FARPROC16, LONG, WORD, WORD, LONG, LONG );
extern WORD CallTo16_word_wwlll( FARPROC16, WORD, WORD, LONG, LONG, LONG );
extern LONG CallTo16_long_lllllllwlwwwl( FARPROC16, LONG, LONG, LONG,
LONG, LONG, LONG, LONG, WORD, LONG,
WORD, WORD, WORD, LONG );
extern WORD CallTo16_word_lwll ( FARPROC16, LONG, WORD, LONG, LONG);
extern WORD CallTo16_word_lwlll( FARPROC16, LONG, WORD, LONG, LONG, LONG );
extern WORD CallTo16_word_llll ( FARPROC16, LONG, LONG, LONG, LONG);
extern LONG CallTo16_long_lwlll( FARPROC16, LONG, WORD, LONG, LONG, LONG );
extern LONG CallTo16_long_lwwllwlllllw( FARPROC16, LONG, WORD, WORD, LONG,
LONG, WORD, LONG, LONG, LONG, LONG,
LONG, WORD);
extern LONG CALLBACK CallTo16_regs_ (const CONTEXT *context);
extern WORD CALLBACK CallTo16_word_ (FARPROC16);
extern WORD CALLBACK CallTo16_word_w (FARPROC16,WORD);
extern LONG CALLBACK CallTo16_long_l (FARPROC16,LONG);
extern WORD CALLBACK CallTo16_word_ww (FARPROC16,WORD,WORD);
extern WORD CALLBACK CallTo16_word_wl (FARPROC16,WORD,LONG);
extern WORD CALLBACK CallTo16_word_ll (FARPROC16,LONG,LONG);
extern WORD CALLBACK CallTo16_word_www (FARPROC16,WORD,WORD,WORD);
extern WORD CALLBACK CallTo16_word_wwl (FARPROC16,WORD,WORD,LONG);
extern WORD CALLBACK CallTo16_word_wlw (FARPROC16,WORD,LONG,WORD);
extern LONG CALLBACK CallTo16_long_wwl (FARPROC16,WORD,WORD,LONG);
extern WORD CALLBACK CallTo16_word_llwl (FARPROC16,LONG,LONG,WORD,LONG);
extern WORD CALLBACK CallTo16_word_lwll (FARPROC16,LONG,WORD,LONG,LONG);
extern LONG CALLBACK CallTo16_long_wwwl (FARPROC16,WORD,WORD,WORD,LONG);
extern LONG CALLBACK CallTo16_wndp_wwwl (FARPROC16,WORD,WORD,WORD,LONG);
extern WORD CALLBACK CallTo16_word_lwww (FARPROC16,LONG,WORD,WORD,WORD);
extern WORD CALLBACK CallTo16_word_wwll (FARPROC16,WORD,WORD,LONG,LONG);
extern WORD CALLBACK CallTo16_word_wllwl(FARPROC16,WORD,LONG,LONG,WORD,LONG);
extern LONG CALLBACK CallTo16_long_lwwll(FARPROC16,LONG,WORD,WORD,LONG,LONG);
extern WORD CALLBACK CallTo16_word_wwlll(FARPROC16,WORD,WORD,LONG,LONG,LONG);
extern WORD CALLBACK CallTo16_word_wwwww(FARPROC16,WORD,WORD,WORD,WORD,WORD);
extern LONG CALLBACK CallTo16_wndp_lllllllwlwwwl(FARPROC16,LONG,LONG,LONG,LONG,
LONG,LONG,LONG,WORD,LONG,WORD,
WORD,WORD,LONG);
extern WORD CALLBACK CallTo16_word_lwlll(FARPROC16,LONG,WORD,LONG,LONG,LONG);
extern WORD CALLBACK CallTo16_word_llll (FARPROC16,LONG,LONG,LONG,LONG);
extern LONG CALLBACK CallTo16_long_lwlll(FARPROC16,LONG,WORD,LONG,LONG,LONG);
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 ) \
CallTo16_long_lwwll( func, dwId, msg, hdrvr, lparam1, lparam2 )
......@@ -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 */
/* by the build program to generate the file if1632/callto32.S */
extern LONG CallTo32_0( FARPROC32 );
extern LONG CallTo32_1( FARPROC32, DWORD );
extern LONG CallTo32_2( FARPROC32, DWORD, DWORD );
extern LONG CallTo32_3( FARPROC32, DWORD, DWORD, DWORD );
extern LONG CallTo32_4( FARPROC32, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_5( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CallTo32_6( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG 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 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 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 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 )
extern LONG CALLBACK CallTo32_0( FARPROC32 );
extern LONG CALLBACK CallTo32_1( FARPROC32, DWORD );
extern LONG CALLBACK CallTo32_2( FARPROC32, DWORD, DWORD );
extern LONG CALLBACK CallTo32_3( FARPROC32, DWORD, DWORD, DWORD );
extern LONG CALLBACK CallTo32_4( FARPROC32, DWORD, DWORD, DWORD, DWORD );
extern LONG CALLBACK CallTo32_5( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CALLBACK CallTo32_6( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CALLBACK CallTo32_7( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
extern LONG CALLBACK CallTo32_8( FARPROC32, 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 CALLBACK CallTo32_10( FARPROC32, 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 CALLBACK CallTo32_12( FARPROC32, 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 );
#else /* WINELIB */
......@@ -101,8 +95,6 @@ extern LONG CallTo32_13( FARPROC32, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DW
(*func)( nExitType )
#define CallWordBreakProc16( func, lpch, ichCurrent, cch, code ) \
(*func)( lpch, ichCurrent, cch, code )
#define CallWordBreakProc32A( func, lpch, ichCurrent, cch, code ) \
(*func)( lpch, ichCurrent, cch, code )
#endif /* WINELIB */
......
......@@ -38,6 +38,6 @@ typedef struct tagCLASS
extern void CLASS_DumpClass( CLASS *class );
extern void CLASS_WalkClasses(void);
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 */
......@@ -41,10 +41,10 @@ void WINAPI InitCommonControls(void);
#define CCS_BOTTOM 0x0003
#define SBARS_SIZEGRIP 0x0100
/* UpDown control */
/* UpDown */
#define UPDOWN_CLASS32A "msctls_updown32"
#define UPDOWN_CLASS32W "msctls_updown32"
#define UPDOWN_CLASS32W L"msctls_updown32"
#define UPDOWN_CLASS16 "msctls_updown"
#define UPDOWN_CLASS WINELIB_NAME_AW(UPDOWN_CLASS)
......@@ -54,13 +54,6 @@ typedef struct tagUDACCEL
UINT32 nInc;
} UDACCEL;
typedef struct tagNM_UPDOWN
{
NMHDR hdr;
int iPos;
int iDelta;
} NM_UPDOWN;
#define UD_MAXVAL 0x7fff
#define UD_MINVAL 0x8001
......@@ -74,7 +67,7 @@ typedef struct tagNM_UPDOWN
#define UDS_NOTHOUSANDS 0x0080
#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_GETRANGE (WM_USER+102)
......@@ -87,13 +80,28 @@ typedef struct tagNM_UPDOWN
#define UDM_SETBASE (WM_USER+109)
#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 */
HWND32 WINAPI CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32);
HWND32 WINAPI CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32);
#define CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow)
HWND32 WINAPI CreateUpDownControl(DWORD,INT32,INT32,INT32,INT32,HWND32,
INT32,HINSTANCE32,HWND32,INT32,INT32,INT32);
HWND32 WINAPI CreateUpDownControl(DWORD,INT32,INT32,INT32,INT32,
HWND32,INT32,HINSTANCE32,HWND32,
INT32,INT32,INT32);
VOID WINAPI DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32);
VOID WINAPI DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32);
#define DrawStatusText WINELIB_NAME_AW(DrawStatusText)
......
#if !defined(COMPOBJ_H)
#define COMPOBJ_H
struct tagCLSID {
struct tagGUID
{
DWORD Data1;
WORD Data2;
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 CLSIDFromString(const LPCSTR, CLSID *);
......
......@@ -265,7 +265,7 @@ extern int DEBUG_GetCurrentFrame(struct name_hash ** name,
extern int DEBUG_ReadExecutableDbgInfo(void);
/* 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);
extern int DEBUG_ProcessDeferredDebug(void);
extern int DEBUG_RegisterELFDebugInfo(int load_addr, u_long size, char * name);
......
......@@ -40,8 +40,27 @@ typedef struct
DWORD refcount;
} 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_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 K32OBJ *K32OBJ_FindName( LPCSTR name );
extern K32OBJ *K32OBJ_FindNameType( LPCSTR name, K32OBJ_TYPE type );
......
......@@ -111,22 +111,25 @@ typedef struct resource_nameinfo_s NE_NAMEINFO;
((NE_WIN32_EXTRAINFO *)((pModule) + 1))->pe_module : 0))
/* module.c */
extern NE_MODULE *MODULE_GetPtr( HMODULE16 hModule );
extern void MODULE_DumpModule( HMODULE16 hmodule );
extern NE_MODULE *MODULE_GetPtr( HMODULE32 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 int MODULE_OpenFile( HMODULE16 hModule );
extern LPSTR MODULE_GetModuleName( HMODULE16 hModule );
extern int MODULE_OpenFile( HMODULE32 hModule );
extern LPSTR MODULE_GetModuleName( HMODULE32 hModule );
extern void MODULE_RegisterModule( NE_MODULE *pModule );
extern HMODULE16 MODULE_FindModule( LPCSTR path );
extern HINSTANCE16 MODULE_GetInstance( HMODULE16 hModule );
extern HMODULE16 MODULE_CreateDummyModule( const OFSTRUCT *ofs );
extern HINSTANCE16 MODULE_Load( LPCSTR name, LPVOID paramBlock, BOOL32 first );
extern WORD MODULE_GetOrdinal( HMODULE16 hModule, const char *name );
extern FARPROC16 MODULE_GetEntryPoint( HMODULE16 hModule, WORD ordinal );
extern BOOL16 MODULE_SetEntryPoint( HMODULE16 hModule, WORD ordinal,
extern HMODULE32 MODULE_FindModule( LPCSTR path );
extern HINSTANCE16 MODULE_CreateInstance( HMODULE16 hModule, LOADPARAMS* paramBlock );
extern HINSTANCE16 MODULE_GetInstance( HMODULE32 hModule );
extern HMODULE32 MODULE_CreateDummyModule( const OFSTRUCT *ofs );
extern HINSTANCE16 MODULE_Load( LPCSTR name, LPVOID paramBlock, UINT16 flags );
extern WORD MODULE_GetOrdinal( HMODULE32 hModule, const char *name );
extern FARPROC16 MODULE_GetEntryPoint( HMODULE32 hModule, WORD ordinal );
extern BOOL16 MODULE_SetEntryPoint( HMODULE32 hModule, WORD ordinal,
WORD offset );
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 */
extern BOOL16 BUILTIN_Init(void);
......
......@@ -88,6 +88,10 @@ typedef struct
#define NE_FFLAGS_MULTIPLEDATA 0x0002
#define NE_FFLAGS_WIN32 0x0010
#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_LINKERROR 0x2000
#define NE_FFLAGS_CALLWEP 0x4000
......@@ -225,7 +229,7 @@ struct resource_typeinfo_s
{
unsigned short type_id; /* Type identifier */
unsigned short count; /* Number of resources of this type */
unsigned long reserved;
DWORD resloader; /* SetResourceHandler() */
/*
* Name info array.
*/
......@@ -244,7 +248,4 @@ struct resource_typeinfo_s
#define NE_RSCTYPE_RCDATA 0x800a
#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 */
......@@ -6,19 +6,33 @@
#include "winnt.h"
#include "peexe.h"
/* This struct is used for loaded PE .dlls */
struct pe_data {
LPIMAGE_NT_HEADERS pe_header;
LPIMAGE_SECTION_HEADER pe_seg;
HMODULE32 mappeddll;
};
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 base_addr;
int load_addr;
int vma_size;
int flags;
#define PE_MODREF_PROCESS_ATTACHED 0x00000001
#define PE_MODREF_NO_DLL_CALLS 0x00000002
#define PE_MODREF_RELOCS_DONE 0x00000004
};
typedef struct pe_data PE_MODULE;
typedef struct pe_modref PE_MODREF;
extern int PE_unloadImage(HMODULE32 hModule);
extern FARPROC32 PE_FindExportedFunction(struct pe_data *pe, LPCSTR funcName);
......@@ -31,7 +45,10 @@ extern BOOL32 PE_EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR,ENUMRESLANGPRO
extern BOOL32 PE_EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR,ENUMRESLANGPROC32W,LONG);
extern HRSRC32 PE_FindResourceEx32W(HINSTANCE32,LPCWSTR,LPCWSTR,WORD);
extern DWORD PE_SizeofResource32(HINSTANCE32,HRSRC32);
extern HMODULE32 PE_LoadLibraryEx32A(LPCSTR,HFILE32,DWORD);
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 */
......@@ -323,7 +323,7 @@ typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
DWORD OffsetToData;
DWORD Size;
DWORD CodePage;
DWORD Reserved;
DWORD ResourceHandle;
} IMAGE_RESOURCE_DATA_ENTRY,*LPIMAGE_RESOURCE_DATA_ENTRY;
typedef struct _IMAGE_BASE_RELOCATION
......
......@@ -11,6 +11,7 @@
#include "winbase.h"
#include "winnt.h"
#include "handle32.h"
#include "pe_image.h"
#include "task.h"
/* Process handle entry */
......@@ -71,7 +72,7 @@ typedef struct _PDB32
ENVDB *env_db; /* 40 Environment database */
HANDLE_TABLE *handle_table; /* 44 Handle table */
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 *debuggee_CB; /* 54 Debuggee context block */
void *local_heap_free; /* 58 Head of local heap free list */
......@@ -82,7 +83,7 @@ typedef struct _PDB32
DWORD tls_bits[2]; /* 88 TLS in-use bits */
DWORD process_dword; /* 90 Unknown */
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 */
DWORD priority; /* a0 Priority level */
HANDLE32 heap_list; /* a4 Head of process heap list */
......@@ -101,7 +102,7 @@ extern HANDLE32 PROCESS_AllocHandle( K32OBJ *ptr, DWORD flags);
extern K32OBJ *PROCESS_GetObjPtr( HANDLE32 handle, K32OBJ_TYPE type );
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 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);
#define WINE_CONSTRUCTOR
#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 BOOL32 NE_FreeResource( HMODULE16 hModule, HGLOBAL16 handle );
extern HRSRC16 NE_FindResource(HMODULE16 hModule, SEGPTR typeId, SEGPTR resId);
extern DWORD NE_SizeofResource( HMODULE16 hModule, HRSRC16 hRsrc );
extern SEGPTR NE_LockResource( HMODULE16 hModule, HGLOBAL16 handle );
extern HGLOBAL16 NE_AllocResource( HMODULE16 hModule, HRSRC16 hRsrc,
DWORD size );
extern HGLOBAL16 NE_AllocResource( HMODULE16 hModule, HRSRC16 hRsrc, DWORD size );
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 void SYSRES_FreeResource( HGLOBAL16 handle );
......
......@@ -18,6 +18,9 @@
#define SPY_RESULT_OK32 0x0001
#define SPY_RESULT_INVALIDHWND16 0x0002
#define SPY_RESULT_INVALIDHWND32 0x0003
#define SPY_RESULT_DEFWND16 0x0004
#define SPY_RESULT_DEFWND32 0x0005
extern const char *SPY_GetMsgName( UINT32 msg );
extern void SPY_EnterMessage( INT32 iFlag, HWND32 hwnd, UINT32 msg,
......
......@@ -37,9 +37,10 @@ typedef struct
DWORD edx;
DWORD ecx;
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 retaddr; /* return address */
DWORD codeselector; /* code selector for return address */
DWORD retaddr; /* actual return address */
DWORD args[1]; /* arguments to 16-bit function */
} STACK32FRAME;
......
......@@ -133,6 +133,7 @@
#undef DEBUG_OLE
#undef DEBUG_PALETTE
#undef DEBUG_PROFILE
#undef DEBUG_PROGRESS
#undef DEBUG_PROP
#undef DEBUG_REG
#undef DEBUG_REGION
......@@ -218,6 +219,7 @@
#define DEBUG_OLE
#define DEBUG_PALETTE
#define DEBUG_PROFILE
#define DEBUG_PROGRESS
#define DEBUG_PROP
#define DEBUG_REG
#define DEBUG_REGION
......
......@@ -23,45 +23,4 @@ void STRUCT32_MDICREATESTRUCT32Ato16( const MDICREATESTRUCT32A*,
MDICREATESTRUCT16*);
void STRUCT32_MDICREATESTRUCT16to32A( const MDICREATESTRUCT16*,
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 */
......@@ -32,6 +32,10 @@ struct SysColorObjects
/* COLOR_BTNTEXT */
/* COLOR_INACTIVECAPTIONTEXT */
HBRUSH32 hbrushBtnHighlight; /* COLOR_BTNHIGHLIGHT */
/* COLOR_3DDKSHADOW */
/* COLOR_3DLIGHT */
/* COLOR_INFOTEXT */
/* COLOR_INFOBK */
};
extern void SYSCOLOR_Init(void);
......
......@@ -51,11 +51,15 @@ typedef struct
struct _THDB;
struct _WSINFO;
/* signal proc typedef */
typedef void (CALLBACK *USERSIGNALPROC)(HANDLE16, UINT16, UINT16,
HINSTANCE16, HQUEUE16);
/* Task database. See 'Windows Internals' p. 226.
* Note that 16-bit OLE 2 libs like to read it directly
* so we have to keep entry offsets as they are.
*/
typedef struct
typedef struct _TDB
{
HTASK16 hNext; /* 00 Selector of next TDB */
DWORD ss_sp WINE_PACKED; /* 02 Stack pointer of task */
......@@ -75,7 +79,7 @@ typedef struct
HTASK16 hParent; /* 22 Selector of TDB of parent */
WORD signal_flags; /* 24 Flags for 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() */
DWORD int0 WINE_PACKED; /* 32 int 0 (divide by 0) handler */
DWORD int2 WINE_PACKED; /* 36 int 2 (NMI) handler */
......@@ -112,6 +116,12 @@ typedef struct
#define TDBF_OS2APP 0x0008
#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)
extern BOOL32 TASK_Init(void);
......
......@@ -79,6 +79,8 @@ typedef struct _THDB
extern THDB *THREAD_Create( PDB32 *pdb, DWORD stack_size,
LPTHREAD_START_ROUTINE start_addr );
extern void THREAD_Destroy( K32OBJ *ptr );
extern THDB *THREAD_Current(void);
extern THDB *THREAD_SwitchThread( CONTEXT *context );
extern THDB *pCurrentThread;
......
......@@ -22,7 +22,14 @@ typedef struct
INT32 Flags; /* Internal Flags FLAG_* */
} UPDOWN_INFO;
LRESULT WINAPI UpDownWindowProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam,
typedef struct tagNM_UPDOWN
{
NMHDR hdr;
int iPos;
int iDelta;
} NM_UPDOWN;
LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam,
LPARAM lParam);
#endif /* __WINE_UPDOWN_H */
......@@ -23,4 +23,6 @@ extern WORD USER_HeapSel;
#define USER_HEAP_SEG_ADDR(handle) \
((handle) ? PTR_SEG_OFF_TO_SEGPTR(USER_HeapSel, (handle)) : (SEGPTR)0)
void USER_SignalProc(HANDLE16, UINT16, UINT16, HINSTANCE16, HQUEUE16);
#endif /* __WINE_USER_H */
......@@ -61,7 +61,7 @@ typedef struct tagWND
HWINDOWPROC winproc; /* Window procedure */
DWORD dwMagic; /* Magic number (must be WND_MAGIC) */
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 rectWindow; /* Whole window rel. to parent client area */
LPSTR text; /* Window text */
......@@ -119,14 +119,12 @@ extern Window WIN_GetXWindow( HWND32 hwnd );
extern BOOL32 WIN_UnlinkWindow( HWND32 hwnd );
extern BOOL32 WIN_LinkWindow( HWND32 hwnd, HWND32 hwndInsertAfter );
extern HWND32 WIN_FindWinToRepaint( HWND32 hwnd, HQUEUE16 hQueue );
extern void WIN_SendParentNotify( HWND32 hwnd, WORD event,
WORD idChild, LPARAM lValue );
extern void WIN_ResetQueueWindows( WND* wnd, HQUEUE16 hQueue, HQUEUE16 hNew );
extern BOOL32 WIN_ResetQueueWindows( WND* wnd, HQUEUE16 hQueue, HQUEUE16 hNew);
extern BOOL32 WIN_CreateDesktopWindow(void);
extern HWND32 WIN_GetTopParent( HWND32 hwnd );
extern WND* WIN_GetTopParentPtr( WND* pWnd );
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 void DEFWND_SetText( WND *wndPtr, LPCSTR text ); /* windows/defwnd.c */
......
......@@ -5,6 +5,7 @@
extern "C" {
#endif
#include <stdarg.h>
#include "wintypes.h"
#pragma pack(1)
......@@ -904,6 +905,16 @@ typedef DWORD COLORREF;
#define COLOR_BTNTEXT 18
#define COLOR_INACTIVECAPTIONTEXT 19
#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 */
#define CTLCOLOR_MSGBOX 0
......@@ -968,6 +979,10 @@ DECL_WINELIB_TYPE(LPLOGBRUSH);
#define BS_PATTERN 3
#define BS_INDEXED 4
#define BS_DIBPATTERN 5
#define BS_DIBPATTERNPT 6
#define BS_PATTERN8X8 7
#define BS_DIBPATTERN8X8 8
#define BS_MONOPATTERN 9
/* Hatch styles */
#define HS_HORIZONTAL 0
......@@ -1875,6 +1890,15 @@ typedef struct
#define DIB_PAL_COLORS 1
#define CBM_INIT 4
typedef struct
{
BITMAP32 dsBm;
BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3];
HANDLE32 dshSection;
DWORD dsOffset;
} DIBSECTION,*LPDIBSECTION;
/* Cursors / Icons */
......@@ -4618,6 +4642,15 @@ typedef struct {
#define HELP_PARTIALKEY 0x0105
#define HELP_MULTIKEY 0x0201
#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 */
#define EW_RESTARTWINDOWS 0x0042
......@@ -5168,6 +5201,15 @@ typedef struct tagNMHDR
UINT32 code;
} NMHDR, *LPNMHDR;
typedef struct
{
UINT32 cbSize;
INT32 iTabLength;
INT32 iLeftMargin;
INT32 iRightMargin;
UINT32 uiLengthDrawn;
} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
#pragma pack(4)
/* Declarations for functions that exist only in Win16 */
......@@ -5260,9 +5302,13 @@ BOOL16 WINAPI IsGDIObject(HGDIOBJ16);
BOOL16 WINAPI IsSharedSelector(HANDLE16);
BOOL16 WINAPI IsTask(HTASK16);
HTASK16 WINAPI IsTaskLocked(void);
BOOL16 WINAPI IsUserIdle(void);
BOOL16 WINAPI IsValidMetaFile(HMETAFILE16);
VOID WINAPI LogError(UINT16, 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 LocalHandleDelta(WORD);
WORD WINAPI LocalHeapSize(void);
......@@ -5290,7 +5336,7 @@ WORD WINAPI SelectorAccessRights(WORD,WORD,WORD);
INT16 WINAPI SelectVisRgn(HDC16,HRGN16);
DWORD WINAPI SetBitmapDimension(HBITMAP16,INT16,INT16);
DWORD WINAPI SetBrushOrg(HDC16,INT16,INT16);
UINT16* WINAPI SetCommEventMask(INT16,UINT16);
SEGPTR WINAPI SetCommEventMask(INT16,UINT16);
BOOL16 WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
DWORD WINAPI SetDCOrg(HDC16,INT16,INT16);
VOID WINAPI SetDCState(HDC16,HDC16);
......@@ -5582,7 +5628,11 @@ DWORD WINAPI GetMenuCheckMarkDimensions(void);
LONG WINAPI GetMessageExtraInfo(void);
DWORD WINAPI GetMessagePos(void);
LONG WINAPI GetMessageTime(void);
LANGID WINAPI GetSystemDefaultLangID(void);
LCID WINAPI GetSystemDefaultLCID(void);
DWORD WINAPI GetTickCount(void);
LANGID WINAPI GetUserDefaultLangID(void);
LCID WINAPI GetUserDefaultLCID(void);
ATOM WINAPI GlobalDeleteAtom(ATOM);
VOID WINAPI LZDone(void);
DWORD WINAPI OemKeyScan(WORD);
......@@ -5752,7 +5802,7 @@ BOOL32 WINAPI Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32
INT16 WINAPI ClearCommBreak16(INT16);
BOOL32 WINAPI ClearCommBreak32(INT32);
#define ClearCommBreak WINELIB_NAME(ClearCommBreak)
BOOL16 WINAPI ClientToScreen16(HWND16,LPPOINT16);
VOID WINAPI ClientToScreen16(HWND16,LPPOINT16);
BOOL32 WINAPI ClientToScreen32(HWND32,LPPOINT32);
#define ClientToScreen WINELIB_NAME(ClientToScreen)
BOOL16 WINAPI ClipCursor16(const RECT16*);
......@@ -5889,6 +5939,9 @@ HDC32 WINAPI CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*);
HICON16 WINAPI CreateIcon16(HINSTANCE16,INT16,INT16,BYTE,BYTE,LPCVOID,LPCVOID);
HICON32 WINAPI CreateIcon32(HINSTANCE32,INT32,INT32,BYTE,BYTE,LPCVOID,LPCVOID);
#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);
HMENU32 WINAPI CreateMenu32(void);
#define CreateMenu WINELIB_NAME(CreateMenu)
......@@ -6477,7 +6530,7 @@ DWORD WINAPI GetModuleFileName32W(HMODULE32,LPWSTR,DWORD);
#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
HMODULE16 WINAPI GetModuleHandle16(LPCSTR);
HMODULE32 WINAPI GetModuleHandle32A(LPCSTR);
HMODULE32 WINAPI GetModuleHandle32W(LPCSTR);
HMODULE32 WINAPI GetModuleHandle32W(LPCWSTR);
#define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
DWORD WINAPI GetNearestColor16(HDC16,DWORD);
DWORD WINAPI GetNearestColor32(HDC32,DWORD);
......@@ -6910,9 +6963,12 @@ HICON32 WINAPI LoadIcon32A(HINSTANCE32,LPCSTR);
HICON32 WINAPI LoadIcon32W(HINSTANCE32,LPCWSTR);
#define LoadIcon WINELIB_NAME_AW(LoadIcon)
HINSTANCE16 WINAPI LoadLibrary16(LPCSTR);
HINSTANCE32 WINAPI LoadLibrary32A(LPCSTR);
HINSTANCE32 WINAPI LoadLibrary32W(LPCWSTR);
HMODULE32 WINAPI LoadLibrary32A(LPCSTR);
HMODULE32 WINAPI LoadLibrary32W(LPCWSTR);
#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);
HMENU32 WINAPI LoadMenu32A(HINSTANCE32,LPCSTR);
HMENU32 WINAPI LoadMenu32W(HINSTANCE32,LPCWSTR);
......@@ -7699,12 +7755,12 @@ INT32 WINAPIV wsprintf32A(LPSTR,LPCSTR,...);
INT32 WINAPIV wsprintf32W(LPWSTR,LPCWSTR,...);
#define wsprintf WINELIB_NAME_AW(wsprintf)
INT16 WINAPI wvsnprintf16(LPSTR,UINT16,LPCSTR,LPCVOID);
INT32 WINAPI wvsnprintf32A(LPSTR,UINT32,LPCSTR,LPCVOID);
INT32 WINAPI wvsnprintf32W(LPWSTR,UINT32,LPCWSTR,LPCVOID);
INT32 WINAPI wvsnprintf32A(LPSTR,UINT32,LPCSTR,va_list);
INT32 WINAPI wvsnprintf32W(LPWSTR,UINT32,LPCWSTR,va_list);
#define wvsnprintf WINELIB_NAME_AW(wvsnprintf)
INT16 WINAPI wvsprintf16(LPSTR,LPCSTR,LPCVOID);
INT32 WINAPI wvsprintf32A(LPSTR,LPCSTR,LPCVOID);
INT32 WINAPI wvsprintf32W(LPWSTR,LPCWSTR,LPCVOID);
INT32 WINAPI wvsprintf32A(LPSTR,LPCSTR,va_list);
INT32 WINAPI wvsprintf32W(LPWSTR,LPCWSTR,va_list);
#define wvsprintf WINELIB_NAME_AW(wvsprintf)
LONG WINAPI _hread16(HFILE16,LPVOID,LONG);
LONG WINAPI _hread32(HFILE32,LPVOID,LONG);
......
#ifndef __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
* locale2id map in misc/ole2nls.c
*/
......@@ -103,6 +107,8 @@
#define LOCALE_IPOSSEPBYSPACE 0x00000055
#define LOCALE_INEGSYMPRECEDES 0x00000056
#define LOCALE_INEGSEPBYSPACE 0x00000057
#define LOCALE_FONTSIGNATURE 0x00000058
#define NORM_IGNORECASE 1
#define NORM_IGNORENONSPACE 2
......@@ -129,4 +135,15 @@
#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_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 */
......@@ -278,7 +278,7 @@ typedef struct _EXCEPTION_POINTERS
* 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;
DWORD WINAPI UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers );
......
......@@ -77,8 +77,6 @@ extern void WINPROC_UnmapMsg32WTo16( UINT32 msg, WPARAM32 wParam,
LPARAM lParam, MSGPARAM16* pm16 );
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_SetCallWndProc32( WINPROC_CALLWNDPROC32 proc );
#endif /* __WINE_WINPROC_H */
......@@ -66,27 +66,20 @@
/* Calling conventions definitions */
#ifdef not_used_yet
#ifdef __i386__
# if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)
# define __stdcall __attribute__((__stdcall__))
# define __cdecl __attribute__((__cdecl__))
# define __RESTORE_ES __asm__ __volatile__("pushw %ds\n\tpopw %es")
# else
# error You need gcc >= 2.7 to build Wine on a 386
# endif /* __GNUC__ */
#else /* __i386__ */
# define __stdcall /* nothing */
# define __cdecl /* nothing */
# define __stdcall
# define __cdecl
# define __RESTORE_ES
#endif /* __i386__ */
#else /* not_used_yet */
# define __stdcall /* nothing */
# define __cdecl /* nothing */
#endif /* not_used_yet */
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define APIPRIVATE __stdcall
......@@ -131,6 +124,7 @@ typedef HANDLE32 HHOOK;
typedef HANDLE32 HKEY;
typedef HANDLE32 HMIXEROBJ;
typedef DWORD LCID;
typedef WORD LANGID;
typedef DWORD LCTYPE;
/* Pointers types. These are the same for emulator and library. */
......@@ -195,6 +189,7 @@ DECLARE_HANDLE(HWAVE);
DECLARE_HANDLE(HWAVEIN);
DECLARE_HANDLE(HWAVEOUT);
DECLARE_HANDLE(HWND);
DECLARE_HANDLE(HKL);
#undef DECLARE_HANDLE
/* Callback function pointers types */
......
......@@ -9,8 +9,7 @@ LIBMODULE = library
LIB_SRCS = \
arch.c \
libres.c \
miscstubs.c \
sup.c
miscstubs.c
STUB_SRCS = winestub.c
......
......@@ -15,7 +15,6 @@
/* for windows/winproc.c */
void CallFrom16_long_wwwll(void) {}
void CallFrom32_stdcall_5(void) {}
extern LRESULT ColorDlgProc(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 @@
#include <errno.h>
#include "neexe.h"
#include "windows.h"
#include "task.h"
#include "arch.h"
#include "selectors.h"
#include "callback.h"
......@@ -455,7 +456,7 @@ void NE_FixupPrologs( NE_MODULE *pModule )
*
* Call the DLL initialization code
*/
static BOOL32 NE_InitDLL( HMODULE16 hModule )
static BOOL32 NE_InitDLL( TDB* pTask, HMODULE16 hModule )
{
NE_MODULE *pModule;
SEGTABLEENTRY *pSegTable;
......@@ -473,6 +474,17 @@ static BOOL32 NE_InitDLL( HMODULE16 hModule )
if (!(pModule->flags & NE_FFLAGS_LIBMODULE) ||
(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 */
memset( &context, 0, sizeof(context) );
......@@ -516,10 +528,12 @@ static BOOL32 NE_InitDLL( HMODULE16 hModule )
/***********************************************************************
* NE_InitializeDLLs
*
* Initialize the loaded DLLs.
* Recursively initialize all DLLs (according to the order in which
* they where loaded).
*/
void NE_InitializeDLLs( HMODULE16 hModule )
{
TDB* pTask = (TDB*)GlobalLock16(GetCurrentTask());
NE_MODULE *pModule;
HMODULE16 *pDLL;
......@@ -529,6 +543,7 @@ void NE_InitializeDLLs( HMODULE16 hModule )
/* PE_InitializeDLLs(hModule); */
return;
}
if (pModule->dlls_to_init)
{
HGLOBAL16 to_init = pModule->dlls_to_init;
......@@ -539,7 +554,7 @@ void NE_InitializeDLLs( HMODULE16 hModule )
}
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