From 670cdc45be658be48558059e2bd8bfdbb8a18ca4 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sun, 24 Aug 1997 16:00:30 +0000 Subject: [PATCH] Release 970824 Sat Aug 23 00:05:23 1997 Andreas Mohr <100.30936@germany.net> * [if1632/kernel.spec] [if1632/mmsystem.spec] Added some stubs. * [include/neexe.h] [loader/module.c] Added warning for OS/2 executables. * [multimedia/midi.c] Shortened MIDIOUT driver version string to be less than 31 chars. * [objects/gdiobj.c] Fixed DeleteObject32() to react properly when called with stock object. Fri Aug 22 18:03:26 1997 Dimitrie O. Paun * [controls/updown.c] [include/updown.h] First attempt at implementiong the UpDown class. * [controls/widgets.c] Added the UpDown class to be initialized by InitCommonControls(). Wed Aug 20 18:01:33 1997 Doug Ridgway * [graphics/*] [objects/*] [include/gdi.h] Made all GDI objects (except DCs) moveable. Mon Aug 18 03:25:30 1997 Alex Korobka * [windows/event.c] [misc/winsock.c] [misc/winsock_dns.c] Removed IPC communication to speed up winsock services (tested only with 16-bit netscape 3.03). * [graphics/x11drv/xfont.c] [documentation/fonts] Miscellaneous improvements. Updated docs. Sun Aug 17 20:39:55 1997 Ingo Schneider * [misc/comm.c] A couple of bug fixes. Sun Aug 17 19:29:22 1997 Alexandre Julliard * [debugger/dbg.y] Display next instruction after stepi/nexti. * [if1632/relay.c] [include/callback.h] [tools/build.c] Replaced CallTo32_LargeStack with the CALL_LARGE_STACK macro for better Winelib support. * [include/sigcontext.h] Renamed to sig_context.h to avoid conflicts with libc. * [*/*] All API functions are now prefixed with WINAPI in prevision of future Winelib integration. * [loader/signal.c] [memory/ldt.c] Fixed assembly code to be -fPIC compatible. Thu Aug 14 14:38:15 1997 Marcus Meissner * [if1632/crtdll.spec][win32/except.c] _global_unwind, _local_unwind stub added. * [objects/dib.c] Don't read memory you don't even need for the target bitmap (fixes one 'lazy' program). * [if1632/relay.c][if1632/thunk.c][if1632/kernel32.spec] [win32/ordinals.c][memory/selector.c][memory/global.c] [include/callback.h] Added/moved some more win95 ordinal stuff. Implemented QT_Thunk (not 100% correct yet) and some friends. * [loader/pe_image.c] Add possibility to break at the DLL entrypoint. * [controls/static.c][misc/commdlg.c][scheduler/thread.c] Misc bugfixes and additions. * [misc/registry.c] The registry seems to be case-preserving but case-insensitive. * [memory/global.c] Adapted to new /proc/meminfo format. * [objects/font.c][graphics/x11drv/xfont.c] FONT_SelectObject and GetTextMetrics* get passed ranges in logical and not device points (thanks to Marion Reyzl for pointing this out). * [windows/caret.c] Use the windows own DC if present (The caret coordinates are logical coordinates based on it). Fixes another AMIPRO problem. Wed Aug 6 18:22:22 1997 Morten Welinder * [controls/menu.c] General clean-up and Win32 work: split item_flags into fType and fState; split item_id into wID and hSubMenu. Improved debug-printing. Implemented InsertMenuItem32[AW], SetMenuDefaultItem32, and SetMenuItemInfo32[AW]. Fixed GetMenuItemInfo32[AW]. * [if1632/user32.spec] Define above new functions. * [include/windows.h] Define MF_DEFAULT and MF_RIGHTJUSTIFY. Prototype above functions. * [include/menu.h] Don't prototype now-static MENU_InitSysMenuPopup. * [include/comm.h] Reduce MAX_PORTS to 9 (which the profile code can handle). Tue Aug 5 20:16:22 1997 Victor Schneider * [library/winestub.c] [libtest/expand.c] These patches let people porting Windows apps compile them using the same conventions regarding global _argc and _argv as those on Windows C/C++ compilers. --- ANNOUNCE | 18 +- BUGS | 3 - ChangeLog | 125 + README | 3 +- controls/Makefile.in | 1 + controls/button.c | 3 +- controls/combo.c | 33 +- controls/desktop.c | 10 +- controls/edit.c | 6 +- controls/icontitle.c | 3 +- controls/listbox.c | 17 +- controls/menu.c | 865 ++-- controls/scroll.c | 48 +- controls/static.c | 10 +- controls/status.c | 11 +- controls/updown.c | 865 ++++ controls/widgets.c | 29 +- debugger/dbg.y | 8 +- documentation/fonts | 120 +- documentation/wine.texinfo | 353 +- files/directory.c | 50 +- files/dos_fs.c | 51 +- files/drive.c | 56 +- files/file.c | 129 +- files/profile.c | 74 +- graphics/bitblt.c | 38 +- graphics/escape.c | 13 +- graphics/fontengine.c | 24 +- graphics/mapping.c | 72 +- graphics/metafiledrv/init.c | 6 +- graphics/metafiledrv/objects.c | 19 +- graphics/painting.c | 156 +- graphics/win16drv/init.c | 45 +- graphics/win16drv/objects.c | 15 +- graphics/wing.c | 37 +- graphics/x11drv/bitblt.c | 47 +- graphics/x11drv/brush.c | 1 + graphics/x11drv/clipping.c | 1 + graphics/x11drv/graphics.c | 46 +- graphics/x11drv/init.c | 3 + graphics/x11drv/objects.c | 19 +- graphics/x11drv/xfont.c | 428 +- if1632/builtin.c | 2 +- if1632/comctl32.spec | 2 +- if1632/crtdll.spec | 6 +- if1632/dummy.c | 94 +- if1632/gdi.spec | 2 +- if1632/gdi32.spec | 2 +- if1632/kernel.spec | 7 +- if1632/kernel32.spec | 67 +- if1632/mmsystem.spec | 1 + if1632/ntdll.spec | 16 +- if1632/relay.c | 17 +- if1632/shell32.spec | 9 +- if1632/signal.c | 2 +- if1632/thunk.c | 642 ++- if1632/user.spec | 10 +- if1632/user32.spec | 14 +- if1632/winsock.spec | 54 +- if1632/winspool.spec | 4 +- if1632/wprocs.spec | 4 +- if1632/wsock32.spec | 60 +- include/bitmap.h | 1 + include/button.h | 4 +- include/callback.h | 19 +- include/color.h | 2 +- include/combo.h | 1 + include/comm.h | 2 +- include/commctrl.h | 60 +- include/commdlg.h | 47 +- include/compobj.h | 4 +- include/debug.h | 49 +- include/debugger.h | 2 +- include/desktop.h | 4 +- include/driver.h | 19 +- include/except.h | 18 +- include/gdi.h | 15 +- include/listbox.h | 71 - include/mdi.h | 4 +- include/menu.h | 1 - include/message.h | 6 +- include/mmsystem.h | 300 +- include/msdos.h | 2 - include/neexe.h | 1 + include/ole.h | 128 +- include/peexe.h | 4 + include/scroll.h | 4 +- include/shell.h | 9 +- include/{sigcontext.h => sig_context.h} | 6 +- include/static.h | 4 +- include/status.h | 4 +- include/stddebug.h | 2 + include/stress.h | 22 +- include/task.h | 11 +- include/toolhelp.h | 54 +- include/updown.h | 28 + include/ver.h | 9 - include/win.h | 3 +- include/winbase.h | 19 +- include/windows.h | 5097 ++++++++++++----------- include/winnls.h | 11 + include/winnt.h | 30 +- include/winsock.h | 180 +- include/wintypes.h | 95 +- include/x11font.h | 7 +- library/miscstubs.c | 28 - library/winestub.c | 57 +- libtest/expand.c | 29 +- loader/main.c | 4 + loader/module.c | 68 +- loader/ne_image.c | 2 +- loader/pe_image.c | 36 +- loader/resource.c | 106 +- loader/signal.c | 30 +- loader/task.c | 108 +- memory/atom.c | 46 +- memory/global.c | 123 +- memory/heap.c | 22 +- memory/ldt.c | 12 + memory/local.c | 58 +- memory/selector.c | 159 +- memory/string.c | 92 +- memory/virtual.c | 63 +- misc/Makefile.in | 2 +- misc/comm.c | 92 +- misc/commdlg.c | 103 +- misc/compobj.c | 16 +- misc/cpu.c | 3 +- misc/crtdll.c | 4 +- misc/error.c | 6 +- misc/lstr.c | 90 +- misc/lzexpand.c | 42 +- misc/main.c | 124 +- misc/mpr.c | 6 +- misc/network.c | 83 +- misc/ntdll.c | 138 +- misc/ole2.c | 6 +- misc/ole2disp.c | 12 +- misc/ole2nls.c | 82 +- misc/olecli.c | 10 +- misc/olesvr.c | 19 +- misc/printdrv.c | 33 +- misc/registry.c | 105 +- misc/shell.c | 147 +- misc/sound.c | 66 +- misc/stress.c | 24 +- misc/system.c | 10 +- misc/toolhelp.c | 5 +- misc/tweak.c | 76 - misc/ver.c | 65 +- misc/w32sys.c | 2 +- misc/winsock.c | 2373 +++++++---- misc/winsock_async.c | 515 --- misc/winsock_dns.c | 530 +++ misc/wsprintf.c | 27 +- miscemu/emulate.c | 13 +- miscemu/instr.c | 2 +- msdos/dpmi.c | 2 +- msdos/int10.c | 2 +- msdos/int11.c | 2 +- msdos/int12.c | 2 +- msdos/int13.c | 2 +- msdos/int1a.c | 2 +- msdos/int21.c | 12 +- msdos/int25.c | 2 +- msdos/int26.c | 2 +- msdos/int2a.c | 2 +- msdos/int2f.c | 11 +- msdos/int4b.c | 2 +- msdos/int5c.c | 2 +- msdos/vxd.c | 71 +- multimedia/joystick.c | 18 +- multimedia/mcistring.c | 8 +- multimedia/midi.c | 2 +- multimedia/mmsystem.c | 287 +- multimedia/time.c | 16 +- objects/bitmap.c | 153 +- objects/brush.c | 42 +- objects/clipping.c | 117 +- objects/color.c | 63 +- objects/cursoricon.c | 106 +- objects/dc.c | 174 +- objects/dcvalues.c | 14 +- objects/dib.c | 301 +- objects/font.c | 246 +- objects/gdiobj.c | 135 +- objects/linedda.c | 8 +- objects/metafile.c | 42 +- objects/oembitmap.c | 91 +- objects/palette.c | 166 +- objects/pen.c | 14 +- objects/region.c | 201 +- objects/text.c | 87 +- scheduler/process.c | 108 +- scheduler/thread.c | 43 +- tools/build.c | 64 +- tools/fnt2bdf.c | 12 +- win32/advapi.c | 37 +- win32/code_page.c | 38 +- win32/console.c | 78 +- win32/cursoricon32.c | 8 +- win32/environment.c | 9 +- win32/except.c | 46 +- win32/file.c | 45 +- win32/init.c | 20 +- win32/newfns.c | 8 +- win32/ordinals.c | 337 +- win32/process.c | 85 +- win32/security.c | 58 +- win32/thread.c | 20 +- win32/time.c | 12 +- win32/user32.c | 12 +- windows/caret.c | 38 +- windows/class.c | 75 +- windows/clipboard.c | 72 +- windows/dce.c | 26 +- windows/defdlg.c | 9 +- windows/defwnd.c | 12 +- windows/dialog.c | 211 +- windows/driver.c | 18 +- windows/event.c | 93 +- windows/focus.c | 8 +- windows/graphics.c | 8 +- windows/hook.c | 45 +- windows/keyboard.c | 74 +- windows/mdi.c | 68 +- windows/message.c | 69 +- windows/msgbox.c | 26 +- windows/nonclient.c | 12 +- windows/painting.c | 56 +- windows/property.c | 28 +- windows/queue.c | 24 +- windows/rect.c | 52 +- windows/scroll.c | 50 +- windows/syscolor.c | 12 +- windows/sysmetrics.c | 4 +- windows/timer.c | 22 +- windows/user.c | 14 +- windows/win.c | 225 +- windows/winhelp.c | 12 +- windows/winpos.c | 217 +- windows/winproc.c | 14 +- wine.ini | 6 +- 243 files changed, 13067 insertions(+), 9089 deletions(-) create mode 100644 controls/updown.c delete mode 100644 include/listbox.h rename include/{sigcontext.h => sig_context.h} (98%) create mode 100644 include/updown.h delete mode 100644 misc/winsock_async.c create mode 100644 misc/winsock_dns.c diff --git a/ANNOUNCE b/ANNOUNCE index 73a0d1a0325..b22dffabc66 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,13 +1,15 @@ -This is release 970804 of Wine, the MS Windows emulator. This is still a +This is release 970824 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-970804: (see ChangeLog for details) - - Joystick support. - - More Win32 stuff. +WHAT'S NEW with Wine-970824: (see ChangeLog for details) + - Better Win32 menu support. + - Improved Winsock. + - UpDown control. + - More undocumented Win95 hacks. - Lots of bug fixes. See the README file in the distribution for installation instructions. @@ -16,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-970804.tar.gz - ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-970804.tar.gz - ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-970804.tar.gz - ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-970804.tar.gz + 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 It should also be available from any site that mirrors tsx-11 or sunsite. diff --git a/BUGS b/BUGS index 74110a39a79..05f5253629b 100644 --- a/BUGS +++ b/BUGS @@ -42,9 +42,6 @@ Miscellaneous: * "Cursor XXXX has more than 1 bpp!" - * 32-bit Freecell segfaults when started from the Progman (looks like - a problem with cards.dll). - * Margins in edit controls are too wide. * SGI window manager treats Wine windows as topmost. diff --git a/ChangeLog b/ChangeLog index f1264adbd53..94d3fd9acfc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,128 @@ +---------------------------------------------------------------------- +Sat Aug 23 00:05:23 1997 Andreas Mohr <100.30936@germany.net> + + * [if1632/kernel.spec] [if1632/mmsystem.spec] + Added some stubs. + + * [include/neexe.h] [loader/module.c] + Added warning for OS/2 executables. + + * [multimedia/midi.c] + Shortened MIDIOUT driver version string to be less than 31 chars. + + * [objects/gdiobj.c] + Fixed DeleteObject32() to react properly when called with stock object. + +Fri Aug 22 18:03:26 1997 Dimitrie O. Paun + + * [controls/updown.c] [include/updown.h] + First attempt at implementiong the UpDown class. + + * [controls/widgets.c] + Added the UpDown class to be initialized by InitCommonControls(). + +Wed Aug 20 18:01:33 1997 Doug Ridgway + + * [graphics/*] [objects/*] [include/gdi.h] + Made all GDI objects (except DCs) moveable. + +Mon Aug 18 03:25:30 1997 Alex Korobka + + * [windows/event.c] [misc/winsock.c] [misc/winsock_dns.c] + Removed IPC communication to speed up winsock services + (tested only with 16-bit netscape 3.03). + + * [graphics/x11drv/xfont.c] [documentation/fonts] + Miscellaneous improvements. Updated docs. + +Sun Aug 17 20:39:55 1997 Ingo Schneider + + * [misc/comm.c] + A couple of bug fixes. + +Sun Aug 17 19:29:22 1997 Alexandre Julliard + + * [debugger/dbg.y] + Display next instruction after stepi/nexti. + + * [if1632/relay.c] [include/callback.h] [tools/build.c] + Replaced CallTo32_LargeStack with the CALL_LARGE_STACK macro for + better Winelib support. + + * [include/sigcontext.h] + Renamed to sig_context.h to avoid conflicts with libc. + + * [*/*] + All API functions are now prefixed with WINAPI in prevision of + future Winelib integration. + + * [loader/signal.c] [memory/ldt.c] + Fixed assembly code to be -fPIC compatible. + +Thu Aug 14 14:38:15 1997 Marcus Meissner + + * [if1632/crtdll.spec][win32/except.c] + _global_unwind, _local_unwind stub added. + + * [objects/dib.c] + Don't read memory you don't even need for the target bitmap (fixes + one 'lazy' program). + + * [if1632/relay.c][if1632/thunk.c][if1632/kernel32.spec] + [win32/ordinals.c][memory/selector.c][memory/global.c] + [include/callback.h] + Added/moved some more win95 ordinal stuff. Implemented QT_Thunk + (not 100% correct yet) and some friends. + + * [loader/pe_image.c] + Add possibility to break at the DLL entrypoint. + + * [controls/static.c][misc/commdlg.c][scheduler/thread.c] + Misc bugfixes and additions. + + * [misc/registry.c] + The registry seems to be case-preserving but case-insensitive. + + * [memory/global.c] + Adapted to new /proc/meminfo format. + + * [objects/font.c][graphics/x11drv/xfont.c] + FONT_SelectObject and GetTextMetrics* get passed ranges in logical + and not device points (thanks to Marion Reyzl for pointing this + out). + + * [windows/caret.c] + Use the windows own DC if present (The caret coordinates are + logical coordinates based on it). Fixes another AMIPRO problem. + +Wed Aug 6 18:22:22 1997 Morten Welinder + + * [controls/menu.c] + General clean-up and Win32 work: split item_flags into fType and + fState; split item_id into wID and hSubMenu. Improved + debug-printing. Implemented InsertMenuItem32[AW], + SetMenuDefaultItem32, and SetMenuItemInfo32[AW]. Fixed + GetMenuItemInfo32[AW]. + + * [if1632/user32.spec] + Define above new functions. + + * [include/windows.h] + Define MF_DEFAULT and MF_RIGHTJUSTIFY. Prototype above functions. + + * [include/menu.h] + Don't prototype now-static MENU_InitSysMenuPopup. + + * [include/comm.h] + Reduce MAX_PORTS to 9 (which the profile code can handle). + +Tue Aug 5 20:16:22 1997 Victor Schneider + + * [library/winestub.c] [libtest/expand.c] + These patches let people porting Windows apps compile them using + the same conventions regarding global _argc and _argv as those on + Windows C/C++ compilers. + ---------------------------------------------------------------------- Sun Aug 3 14:03:43 1997 Alexandre Julliard diff --git a/README b/README index 25a81f63cad..01bc7919fe3 100644 --- a/README +++ b/README @@ -83,7 +83,8 @@ UPDATE: Windows 95 components are known to cause more crashes compared The best place to get help or to report bugs is the Usenet newsgroup comp.emulators.ms-windows.wine. The Wine FAQ is posted there every -month. +month. Also, you may want to browse old messages on www.dejanews.com +to check whether your problem is already fixed. If you add something, or fix a bug, please send a patch ('diff -u' format preferred) to julliard@lrc.epfl.ch for inclusion in the next diff --git a/controls/Makefile.in b/controls/Makefile.in index 3379b18ea90..9d243459a59 100644 --- a/controls/Makefile.in +++ b/controls/Makefile.in @@ -16,6 +16,7 @@ C_SRCS = \ scroll.c \ static.c \ status.c \ + updown.c \ widgets.c all: $(MODULE).o diff --git a/controls/button.c b/controls/button.c index 07cc5e1a175..312282d5f03 100644 --- a/controls/button.c +++ b/controls/button.c @@ -71,7 +71,8 @@ static WORD checkBoxWidth = 0, checkBoxHeight = 0; /*********************************************************************** * ButtonWndProc */ -LRESULT ButtonWndProc(HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI ButtonWndProc( HWND32 hWnd, UINT32 uMsg, + WPARAM32 wParam, LPARAM lParam ) { RECT16 rect; WND *wndPtr = WIN_FindWndPtr(hWnd); diff --git a/controls/combo.c b/controls/combo.c index 3771933c39a..3c3590ff647 100644 --- a/controls/combo.c +++ b/controls/combo.c @@ -83,30 +83,32 @@ static BOOL32 COMBO_Init() */ static LRESULT COMBO_NCCreate(WND* wnd, LPARAM lParam) { - LPHEADCOMBO lphc; + LPHEADCOMBO lphc; - if ( wnd && COMBO_Init() && + if ( wnd && COMBO_Init() && (lphc = HeapAlloc(GetProcessHeap(), 0, sizeof(HEADCOMBO))) ) - { - LPCREATESTRUCT32A lpcs = (CREATESTRUCT32A*)lParam; + { + LPCREATESTRUCT32A lpcs = (CREATESTRUCT32A*)lParam; - memset( lphc, 0, sizeof(HEADCOMBO) ); + memset( lphc, 0, sizeof(HEADCOMBO) ); *(LPHEADCOMBO*)wnd->wExtra = lphc; /* some braindead apps do try to use scrollbar/border flags */ - lphc->dwStyle = (lpcs->style & ~(WS_BORDER | WS_HSCROLL | WS_VSCROLL)); - wnd->dwStyle &= ~(WS_BORDER | WS_HSCROLL | WS_VSCROLL); + lphc->dwStyle = (lpcs->style & ~(WS_BORDER | WS_HSCROLL | WS_VSCROLL)); + wnd->dwStyle &= ~(WS_BORDER | WS_HSCROLL | WS_VSCROLL); - if( !(lpcs->style & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) ) - lphc->dwStyle |= CBS_HASSTRINGS; + if( !(lpcs->style & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) ) + lphc->dwStyle |= CBS_HASSTRINGS; + if( !(wnd->dwExStyle & WS_EX_NOPARENTNOTIFY) ) + lphc->wState |= CBF_NOTIFY; - dprintf_combo(stddeb, "COMBO_NCCreate: [0x%08x], style = %08x\n", - (UINT32)lphc, lphc->dwStyle ); + dprintf_combo(stddeb, "COMBO_NCCreate: [0x%08x], style = %08x\n", + (UINT32)lphc, lphc->dwStyle ); - return (LRESULT)(UINT32)wnd->hwndSelf; - } - return (LRESULT)FALSE; + return (LRESULT)(UINT32)wnd->hwndSelf; + } + return (LRESULT)FALSE; } /*********************************************************************** @@ -1239,7 +1241,8 @@ static void COMBO_MouseMove( LPHEADCOMBO lphc, WPARAM32 wParam, LPARAM lParam ) * * http://www.microsoft.com/msdn/sdk/platforms/doc/sdk/win32/ctrl/src/combobox_15.htm */ -LRESULT ComboWndProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI ComboWndProc( HWND32 hwnd, UINT32 message, + WPARAM32 wParam, LPARAM lParam ) { WND* pWnd = WIN_FindWndPtr(hwnd); diff --git a/controls/desktop.c b/controls/desktop.c index 6708fb7a2dd..b1651f294f2 100644 --- a/controls/desktop.c +++ b/controls/desktop.c @@ -131,8 +131,8 @@ static LRESULT DESKTOP_DoEraseBkgnd( HWND32 hwnd, HDC32 hdc, * * Window procedure for the desktop window. */ -LRESULT DesktopWndProc( HWND32 hwnd, UINT32 message, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI DesktopWndProc( HWND32 hwnd, UINT32 message, + WPARAM32 wParam, LPARAM lParam ) { WND *wndPtr = WIN_FindWndPtr( hwnd ); DESKTOPINFO *infoPtr = (DESKTOPINFO *)wndPtr->wExtra; @@ -169,7 +169,7 @@ LRESULT DesktopWndProc( HWND32 hwnd, UINT32 message, /*********************************************************************** * SetDeskPattern (USER.279) */ -BOOL16 SetDeskPattern(void) +BOOL16 WINAPI SetDeskPattern(void) { char buffer[100]; GetProfileString32A( "desktop", "Pattern", "(None)", buffer, 100 ); @@ -180,7 +180,7 @@ BOOL16 SetDeskPattern(void) /*********************************************************************** * SetDeskWallPaper16 (USER.285) */ -BOOL16 SetDeskWallPaper16( LPCSTR filename ) +BOOL16 WINAPI SetDeskWallPaper16( LPCSTR filename ) { return SetDeskWallPaper32( filename ); } @@ -191,7 +191,7 @@ BOOL16 SetDeskWallPaper16( LPCSTR filename ) * * FIXME: is there a unicode version? */ -BOOL32 SetDeskWallPaper32( LPCSTR filename ) +BOOL32 WINAPI SetDeskWallPaper32( LPCSTR filename ) { HBITMAP32 hbitmap; HDC32 hdc; diff --git a/controls/edit.c b/controls/edit.c index 0a8a3d487f0..28373cd659f 100644 --- a/controls/edit.c +++ b/controls/edit.c @@ -148,7 +148,8 @@ static __inline__ void EDIT_WM_Cut(WND *wnd, EDITSTATE *es); /* * This is the only exported function */ -LRESULT EditWndProc(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam); +LRESULT WINAPI EditWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); /* * Helper functions only valid for one type of control */ @@ -297,7 +298,8 @@ static __inline__ void EDIT_WM_Cut(WND *wnd, EDITSTATE *es) * names). * */ -LRESULT EditWndProc(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI EditWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { WND *wnd = WIN_FindWndPtr(hwnd); EDITSTATE *es = *(EDITSTATE **)((wnd)->wExtra); diff --git a/controls/icontitle.c b/controls/icontitle.c index 18640861e9b..b54801e2414 100644 --- a/controls/icontitle.c +++ b/controls/icontitle.c @@ -185,7 +185,8 @@ static BOOL32 ICONTITLE_Paint( WND* wnd, HDC32 hDC, BOOL32 bActive ) /*********************************************************************** * IconTitleWndProc */ -LRESULT IconTitleWndProc( HWND32 hWnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI IconTitleWndProc( HWND32 hWnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { WND *wnd = WIN_FindWndPtr( hWnd ); diff --git a/controls/listbox.c b/controls/listbox.c index 71f56beea7d..5466abeff80 100644 --- a/controls/listbox.c +++ b/controls/listbox.c @@ -233,7 +233,8 @@ static LRESULT LISTBOX_SetTopItem( WND *wnd, LB_DESCR *descr, INT32 index, { INT32 diff = (descr->top_item - index) / descr->page_size * descr->column_width; if (scroll && (abs(diff) < descr->width)) - ScrollWindow32( wnd->hwndSelf, diff, 0, NULL, NULL ); + ScrollWindowEx32( wnd->hwndSelf, diff, 0, NULL, NULL, 0, NULL, + SW_INVALIDATE | SW_ERASE ); else scroll = FALSE; } @@ -259,7 +260,8 @@ static LRESULT LISTBOX_SetTopItem( WND *wnd, LB_DESCR *descr, INT32 index, diff = (descr->top_item - index) * descr->item_height; if (abs(diff) < descr->height) - ScrollWindow32( wnd->hwndSelf, 0, diff, NULL, NULL ); + ScrollWindowEx32( wnd->hwndSelf, 0, diff, NULL, NULL, 0, NULL, + SW_INVALIDATE | SW_ERASE ); else scroll = FALSE; } @@ -1006,7 +1008,8 @@ static void LISTBOX_SetHorizontalPos( WND *wnd, LB_DESCR *descr, INT32 pos ) descr->horz_pos = pos; LISTBOX_UpdateScroll( wnd, descr ); if (abs(diff) < descr->width) - ScrollWindow32( wnd->hwndSelf, diff, 0, NULL, NULL ); + ScrollWindowEx32( wnd->hwndSelf, diff, 0, NULL, NULL, 0, NULL, + SW_INVALIDATE | SW_ERASE ); else InvalidateRect32( wnd->hwndSelf, NULL, TRUE ); } @@ -2019,6 +2022,8 @@ static BOOL32 LISTBOX_Create( WND *wnd, LPHEADCOMBO lphc ) *(LB_DESCR **)wnd->wExtra = descr; +/* if (wnd->dwExStyle & WS_EX_NOPARENTNOTIFY) descr->style &= ~LBS_NOTIFY; + */ if (descr->style & LBS_EXTENDEDSEL) descr->style |= LBS_MULTIPLESEL; if (descr->style & LBS_MULTICOLUMN) descr->style &= ~LBS_OWNERDRAWVARIABLE; if (descr->style & LBS_OWNERDRAWVARIABLE) descr->style |= LBS_NOINTEGRALHEIGHT; @@ -2066,7 +2071,8 @@ static BOOL32 LISTBOX_Destroy( WND *wnd, LB_DESCR *descr ) /*********************************************************************** * ListBoxWndProc */ -LRESULT ListBoxWndProc(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI ListBoxWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { LRESULT ret; LB_DESCR *descr; @@ -2491,7 +2497,8 @@ LRESULT COMBO_Directory( LPHEADCOMBO lphc, UINT32 attrib, LPSTR dir, BOOL32 bLon * NOTE: in Windows, winproc address of the ComboLBox is the same * as that of the Listbox. */ -LRESULT ComboLBWndProc(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI ComboLBWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { LRESULT lRet = 0; WND *wnd = WIN_FindWndPtr( hwnd ); diff --git a/controls/menu.c b/controls/menu.c index 769084b31dc..5a1e28cea6b 100644 --- a/controls/menu.c +++ b/controls/menu.c @@ -51,26 +51,24 @@ UINT32 MENU_HighlightRightNudge; #define MM_SETMENUHANDLE (WM_USER + 0) #define MM_GETMENUHANDLE (WM_USER + 1) -typedef struct -{ - HBITMAP32 hCheckBit; - HBITMAP32 hUnCheckBit; -} CBITMAPS, *PCBITMAPS; - /* Menu item structure */ -typedef struct -{ - UINT32 item_flags; /* Item flags */ - UINT32 item_id; /* Item or popup id */ +typedef struct { + /* ----------- MENUITEMINFO Stuff ----------- */ + UINT32 fType; /* Item type. */ + UINT32 fState; /* Item state. */ + UINT32 wID; /* Item id. */ + HMENU32 hSubMenu; /* Pop-up menu. */ + HBITMAP32 hCheckBit; /* Bitmap when checked. */ + HBITMAP32 hUnCheckBit; /* Bitmap when unchecked. */ + LPSTR text; /* Item text or bitmap handle. */ + DWORD dwItemData; /* Application defined. */ + /* ----------- Wine stuff ----------- */ RECT32 rect; /* Item area (relative to menu window) */ UINT32 xTab; /* X position of text after Tab */ - PCBITMAPS pCB; /* checkmark bitmaps */ - LPSTR text; /* Item text or bitmap handle */ } MENUITEM; /* Popup menu structure */ -typedef struct -{ +typedef struct { WORD wFlags; /* Menu flags (MF_POPUP, MF_SYSMENU) */ WORD wMagic; /* Magic number */ HQUEUE16 hTaskQ; /* Task queue for this menu */ @@ -98,6 +96,7 @@ typedef struct } MTRACKER; #define MENU_MAGIC 0x554d /* 'MU' */ +#define IS_A_MENU(pmenu) ((pmenu) && (pmenu)->wMagic == MENU_MAGIC) #define ITEM_PREV -1 #define ITEM_NEXT 1 @@ -112,24 +111,33 @@ typedef struct #define POPUP_YSHADE 4 /* Space between 2 menu bar items */ -int MENU_BAR_ITEMS_SPACE = 12; +#define MENU_BAR_ITEMS_SPACE 12 /* Minimum width of a tab character */ -int MENU_TAB_SPACE = 8; +#define MENU_TAB_SPACE 8 /* Height of a separator item */ -int SEPARATOR_HEIGHT = 5; +#define SEPARATOR_HEIGHT 5 /* (other menu->FocusedItem values give the position of the focused item) */ #define NO_SELECTED_ITEM 0xffff -#define IS_STRING_ITEM(flags) \ - (!((flags) & (MF_BITMAP | MF_OWNERDRAW | MF_SEPARATOR))) +#define MENU_ITEM_TYPE(flags) \ + ((flags) & (MF_STRING | MF_BITMAP | MF_OWNERDRAW | MF_SEPARATOR)) + +#define IS_STRING_ITEM(flags) (MENU_ITEM_TYPE ((flags)) == MF_STRING) + #define IS_SYSTEM_MENU(menu) \ (!((menu)->wFlags & MF_POPUP) && (menu)->wFlags & MF_SYSMENU) #define IS_SYSTEM_POPUP(menu) \ ((menu)->wFlags & MF_POPUP && (menu)->wFlags & MF_SYSMENU) +#define TYPE_MASK (MFT_STRING | MFT_BITMAP | MFT_OWNERDRAW | MFT_SEPARATOR | \ + MFT_MENUBARBREAK | MFT_MENUBREAK | MFT_RADIOCHECK | \ + MFT_RIGHTORDER | MFT_RIGHTJUSTIFY | \ + MF_POPUP | MF_SYSMENU | MF_HELP) +#define STATE_MASK (~TYPE_MASK) + /* Dimension of the menu bitmaps */ static WORD check_bitmap_width = 0, check_bitmap_height = 0; static WORD arrow_bitmap_width = 0, arrow_bitmap_height = 0; @@ -149,6 +157,92 @@ static UINT32 uSubPWndLevel = 0; static BOOL32 fEndMenu = FALSE; +/*********************************************************************** + * debug_print_menuitem + * + * Print a menuitem in readable form. + */ + +#define MENUOUT(text) \ + dprintf_menu (stddeb, "%s%s", (count++ ? "," : ""), (text)) + +#define MENUFLAG(bit,text) \ + do { \ + if (flags & (bit)) { flags &= ~(bit); MENUOUT ((text)); } \ + } while (0) + +static void debug_print_menuitem(const char *prefix, MENUITEM * mp, const char *postfix) +{ + dprintf_menu(stddeb, "%s", prefix); + if (mp) { + UINT32 flags = mp->fType; + int typ = MENU_ITEM_TYPE(flags); + dprintf_menu(stddeb, "{ ID=0x%x", mp->wID); + if (flags & MF_POPUP) + dprintf_menu(stddeb, ", Sub=0x%x", mp->hSubMenu); + if (flags) { + int count = 0; + dprintf_menu(stddeb, ", Typ="); + if (typ == MFT_STRING) + /* Nothing */ ; + else if (typ == MFT_SEPARATOR) + MENUOUT("sep"); + else if (typ == MFT_OWNERDRAW) + MENUOUT("own"); + else if (typ == MFT_BITMAP) + MENUOUT("bit"); + else + MENUOUT("???"); + flags -= typ; + + MENUFLAG(MF_POPUP, "pop"); + MENUFLAG(MFT_MENUBARBREAK, "barbrk"); + MENUFLAG(MFT_MENUBREAK, "brk"); + MENUFLAG(MFT_RADIOCHECK, "radio"); + MENUFLAG(MFT_RIGHTORDER, "rorder"); + MENUFLAG(MF_SYSMENU, "sys"); + MENUFLAG(MFT_RIGHTJUSTIFY, "right"); + + if (flags) + dprintf_menu(stddeb, "+0x%x", flags); + } + flags = mp->fState; + if (flags) { + int count = 0; + dprintf_menu(stddeb, ", State="); + MENUFLAG(MFS_GRAYED, "grey"); + MENUFLAG(MFS_DISABLED, "dis"); + MENUFLAG(MFS_CHECKED, "check"); + MENUFLAG(MFS_HILITE, "hi"); + MENUFLAG(MF_USECHECKBITMAPS, "usebit"); + MENUFLAG(MF_MOUSESELECT, "mouse"); + if (flags) + dprintf_menu(stddeb, "+0x%x", flags); + } + if (mp->hCheckBit) + dprintf_menu(stddeb, ", Chk=0x%x", mp->hCheckBit); + if (mp->hUnCheckBit) + dprintf_menu(stddeb, ", Unc=0x%x", mp->hUnCheckBit); + + if (typ == MFT_STRING) { + if (mp->text) + dprintf_menu(stddeb, ", Text=\"%s\"", mp->text); + else + dprintf_menu(stddeb, ", Text=Null"); + } else if (mp->text == NULL) + /* Nothing */ ; + else + dprintf_menu(stddeb, ", Text=%p", mp->text); + dprintf_menu(stddeb, " }"); + } else { + dprintf_menu(stddeb, "NULL"); + } + dprintf_menu(stddeb, "%s", postfix); +} + +#undef MENUOUT +#undef MENUFLAG + /*********************************************************************** * MENU_CopySysPopup * @@ -167,7 +261,7 @@ static HMENU32 MENU_CopySysPopup(void) fprintf( stderr, "Unable to load default system menu\n" ); } - dprintf_menu( stddeb, "MENU_CopySysPopup: returning %d.\n", hMenu ); + dprintf_menu( stddeb, "MENU_CopySysPopup: returning %x.\n", hMenu ); return hMenu; } @@ -200,7 +294,8 @@ HMENU32 MENU_GetSysMenu( HWND32 hWnd, HMENU32 hPopupMenu ) { InsertMenu32A( hMenu, -1, MF_SYSMENU | MF_POPUP | MF_BYPOSITION, hPopupMenu, NULL ); - menu->items[0].item_flags = MF_SYSMENU | MF_POPUP; + menu->items[0].fType = MF_SYSMENU | MF_POPUP; + menu->items[0].fState = 0; menu = (POPUPMENU*) USER_HEAP_LIN_ADDR(hPopupMenu); menu->wFlags |= MF_SYSMENU; @@ -260,7 +355,7 @@ BOOL32 MENU_Init() * * Grey the appropriate items in System menu. */ -void MENU_InitSysMenuPopup( HMENU32 hmenu, DWORD style, DWORD clsStyle ) +static void MENU_InitSysMenuPopup( HMENU32 hmenu, DWORD style, DWORD clsStyle ) { BOOL32 gray; @@ -299,7 +394,7 @@ static UINT32 MENU_GetStartOfNextColumn( return i; for( ; i < menu->nItems; ++i ) { - if( menu->items[i].item_flags & MF_MENUBARBREAK ) + if (menu->items[i].fType & MF_MENUBARBREAK) return i; } @@ -329,14 +424,14 @@ static UINT32 MENU_GetStartOfPrevColumn( /* Find the start of the column */ for(i = menu->FocusedItem; i != 0 && - !(menu->items[i].item_flags & MF_MENUBARBREAK); + !(menu->items[i].fType & MF_MENUBARBREAK); --i); /* empty */ if(i == 0) return NO_SELECTED_ITEM; for(--i; i != 0; --i) { - if(menu->items[i].item_flags & MF_MENUBARBREAK) + if (menu->items[i].fType & MF_MENUBARBREAK) break; } @@ -369,14 +464,14 @@ static MENUITEM *MENU_FindItem( HMENU32 *hmenu, UINT32 *nPos, UINT32 wFlags ) MENUITEM *item = menu->items; for (i = 0; i < menu->nItems; i++, item++) { - if (item->item_id == *nPos) + if (item->wID == *nPos) { *nPos = i; return item; } - else if (item->item_flags & MF_POPUP) + else if (item->fType & MF_POPUP) { - HMENU32 hsubmenu = (HMENU32)item->item_id; + HMENU32 hsubmenu = item->hSubMenu; MENUITEM *subitem = MENU_FindItem( &hsubmenu, nPos, wFlags ); if (subitem) { @@ -395,13 +490,8 @@ static MENUITEM *MENU_FindItem( HMENU32 *hmenu, UINT32 *nPos, UINT32 wFlags ) static void MENU_FreeItemData( MENUITEM* item ) { /* delete text */ - - if (IS_STRING_ITEM(item->item_flags) && item->text) + if (IS_STRING_ITEM(item->fType) && item->text) HeapFree( SystemHeap, 0, item->text ); - - /* delete checkmark stuff */ - - if (item->pCB) HeapFree( SystemHeap, 0, item->pCB ); } /*********************************************************************** @@ -465,7 +555,7 @@ static UINT32 MENU_FindItemByKey( HWND32 hwndOwner, HMENU32 hmenu, key = toupper(key); for (i = 0; i < menu->nItems; i++, item++) { - if (IS_STRING_ITEM(item->item_flags)) + if (IS_STRING_ITEM(item->fType)) { char *p = strchr( item->text, '&' ); if (p && (p[1] != '&') && (toupper(p[1]) == key)) return i; @@ -492,29 +582,29 @@ static void MENU_CalcItemSize( HDC32 hdc, MENUITEM *lpitem, HWND32 hwndOwner, DWORD dwSize; char *p; - dprintf_menu( stddeb, "MENU_CalcItemSize: HDC %p, item '%s', at " - "(%d, %d) %s\n", (void *)hdc, lpitem->text, orgX, orgY, - menuBar ? "(MenuBar)" : "" ); + dprintf_menu(stddeb, "MENU_CalcItemSize: HDC 0x%x at (%d,%d): ", + hdc, orgX, orgY); + debug_print_menuitem("", lpitem, (menuBar ? " (MenuBar)\n" : "\n")); SetRect32( &lpitem->rect, orgX, orgY, orgX, orgY ); - if (lpitem->item_flags & MF_OWNERDRAW) + if (lpitem->fType & MF_OWNERDRAW) { MEASUREITEMSTRUCT32 mis; mis.CtlType = ODT_MENU; - mis.itemID = lpitem->item_id; + mis.itemID = lpitem->wID; mis.itemData = (DWORD)lpitem->text; mis.itemHeight = 16; mis.itemWidth = 30; SendMessage32A( hwndOwner, WM_MEASUREITEM, 0, (LPARAM)&mis ); lpitem->rect.bottom += mis.itemHeight; lpitem->rect.right += mis.itemWidth; - dprintf_menu( stddeb, "DrawMenuItem: MeasureItem %04x %dx%d!\n", - lpitem->item_id, mis.itemWidth, mis.itemHeight ); + dprintf_menu(stddeb, "MENU_CalcItemSize: %08x %dx%d\n", + lpitem->wID, mis.itemWidth, mis.itemHeight); return; } - if (lpitem->item_flags & MF_SEPARATOR) + if (lpitem->fType & MF_SEPARATOR) { lpitem->rect.bottom += SEPARATOR_HEIGHT; return; @@ -523,11 +613,11 @@ static void MENU_CalcItemSize( HDC32 hdc, MENUITEM *lpitem, HWND32 hwndOwner, if (!menuBar) { lpitem->rect.right += 2 * check_bitmap_width; - if (lpitem->item_flags & MF_POPUP) + if (lpitem->fType & MF_POPUP) lpitem->rect.right += arrow_bitmap_width; } - if (lpitem->item_flags & MF_BITMAP) + if (lpitem->fType & MF_BITMAP) { BITMAP32 bm; if (GetObject32A( (HBITMAP32)lpitem->text, sizeof(bm), &bm )) @@ -540,7 +630,7 @@ static void MENU_CalcItemSize( HDC32 hdc, MENUITEM *lpitem, HWND32 hwndOwner, /* If we get here, then it must be a text item */ - if (IS_STRING_ITEM( lpitem->item_flags )) + if (IS_STRING_ITEM( lpitem->fType )) { dwSize = GetTextExtent( hdc, lpitem->text, strlen(lpitem->text) ); lpitem->rect.right += LOWORD(dwSize); @@ -595,19 +685,16 @@ static void MENU_PopupMenuCalcSize( LPPOPUPMENU lppop, HWND32 hwndOwner ) for (i = start; i < lppop->nItems; i++, lpitem++) { if ((i != start) && - (lpitem->item_flags & (MF_MENUBREAK | MF_MENUBARBREAK))) break; + (lpitem->fType & (MF_MENUBREAK | MF_MENUBARBREAK))) break; - dprintf_menu( stddeb, "MENU_PopupMenuCalcSize: calling " - "MENU_CalcItemSize on '%s', org=(%d, %d)\n", - lpitem->text, orgX, orgY ); if(TWEAK_Win95Look) ++orgY; MENU_CalcItemSize( hdc, lpitem, hwndOwner, orgX, orgY, FALSE ); - if (lpitem->item_flags & MF_MENUBARBREAK) orgX++; + if (lpitem->fType & MF_MENUBARBREAK) orgX++; maxX = MAX( maxX, lpitem->rect.right ); orgY = lpitem->rect.bottom; - if (IS_STRING_ITEM(lpitem->item_flags) && lpitem->xTab) + if (IS_STRING_ITEM(lpitem->fType) && lpitem->xTab) { maxTab = MAX( maxTab, lpitem->xTab ); maxTabWidth = MAX(maxTabWidth,lpitem->rect.right-lpitem->xTab); @@ -619,7 +706,7 @@ static void MENU_PopupMenuCalcSize( LPPOPUPMENU lppop, HWND32 hwndOwner ) for (lpitem = &lppop->items[start]; start < i; start++, lpitem++) { lpitem->rect.right = maxX; - if (IS_STRING_ITEM(lpitem->item_flags) && lpitem->xTab) + if (IS_STRING_ITEM(lpitem->fType) && lpitem->xTab) lpitem->xTab = maxTab; } lppop->Height = MAX( lppop->Height, orgY ); @@ -663,9 +750,9 @@ static void MENU_MenuBarCalcSize( HDC32 hdc, LPRECT32 lprect, /* Parse items until line break or end of menu */ for (i = start; i < lppop->nItems; i++, lpitem++) { - if ((helpPos == -1) && (lpitem->item_flags & MF_HELP)) helpPos = i; + if ((helpPos == -1) && (lpitem->fType & MF_HELP)) helpPos = i; if ((i != start) && - (lpitem->item_flags & (MF_MENUBREAK | MF_MENUBARBREAK))) break; + (lpitem->fType & (MF_MENUBREAK | MF_MENUBARBREAK))) break; dprintf_menu( stddeb, "MENU_MenuBarCalcSize: calling " @@ -716,34 +803,36 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, { RECT32 rect; - if (lpitem->item_flags & MF_SYSMENU) + debug_print_menuitem("MENU_DrawMenuItem: ", lpitem, "\n"); + + if (lpitem->fType & MF_SYSMENU) { if( !IsIconic32(hwnd) ) { if(TWEAK_Win95Look) NC_DrawSysButton95( hwnd, hdc, - lpitem->item_flags & + lpitem->fState & (MF_HILITE | MF_MOUSESELECT) ); else NC_DrawSysButton( hwnd, hdc, - lpitem->item_flags & + lpitem->fState & (MF_HILITE | MF_MOUSESELECT) ); } return; } - if (lpitem->item_flags & MF_OWNERDRAW) + if (lpitem->fType & MF_OWNERDRAW) { DRAWITEMSTRUCT32 dis; dprintf_menu( stddeb, "DrawMenuItem: Ownerdraw!\n" ); dis.CtlType = ODT_MENU; - dis.itemID = lpitem->item_id; + dis.itemID = lpitem->wID; dis.itemData = (DWORD)lpitem->text; dis.itemState = 0; - if (lpitem->item_flags & MF_CHECKED) dis.itemState |= ODS_CHECKED; - if (lpitem->item_flags & MF_GRAYED) dis.itemState |= ODS_GRAYED; - if (lpitem->item_flags & MF_HILITE) dis.itemState |= ODS_SELECTED; + if (lpitem->fState & MF_CHECKED) dis.itemState |= ODS_CHECKED; + if (lpitem->fState & MF_GRAYED) dis.itemState |= ODS_GRAYED; + if (lpitem->fState & MF_HILITE) dis.itemState |= ODS_SELECTED; dis.itemAction = ODA_DRAWENTIRE | ODA_SELECT | ODA_FOCUS; dis.hwndItem = hwnd; dis.hDC = hdc; @@ -752,7 +841,7 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, return; } - if (menuBar && (lpitem->item_flags & MF_SEPARATOR)) return; + if (menuBar && (lpitem->fType & MF_SEPARATOR)) return; rect = lpitem->rect; /* Draw the background */ @@ -770,7 +859,7 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, */ } - if (lpitem->item_flags & MF_HILITE) { + if (lpitem->fState & MF_HILITE) { RECT32 r = rect; r.top += MENU_HighlightTopNudge; r.bottom += MENU_HighlightBottomNudge; @@ -791,7 +880,7 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, /* Draw the separator bar (if any) */ - if (!menuBar && (lpitem->item_flags & MF_MENUBARBREAK)) + if (!menuBar && (lpitem->fType & MF_MENUBARBREAK)) { if(TWEAK_Win95Look) TWEAK_DrawMenuSeparatorVert95(hdc, rect.left - 1, 3, height - 3); @@ -801,7 +890,7 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, LineTo32( hdc, rect.left, height ); } } - if (lpitem->item_flags & MF_SEPARATOR) + if (lpitem->fType & MF_SEPARATOR) { if(TWEAK_Win95Look) TWEAK_DrawMenuSeparatorHoriz95(hdc, rect.left + 1, @@ -818,9 +907,9 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, /* Setup colors */ - if (lpitem->item_flags & MF_HILITE) + if (lpitem->fState & MF_HILITE) { - if (lpitem->item_flags & MF_GRAYED) + if (lpitem->fState & MF_GRAYED) SetTextColor32( hdc, GetSysColor32( COLOR_GRAYTEXT ) ); else SetTextColor32( hdc, GetSysColor32( COLOR_HIGHLIGHTTEXT ) ); @@ -828,7 +917,7 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, } else { - if (lpitem->item_flags & MF_GRAYED) + if (lpitem->fState & MF_GRAYED) SetTextColor32( hdc, GetSysColor32( COLOR_GRAYTEXT ) ); else SetTextColor32( hdc, GetSysColor32( COLOR_MENUTEXT ) ); @@ -846,18 +935,18 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, * is 1 for a white pixel and 0 for a black one. */ - if (lpitem->item_flags & MF_CHECKED) - GRAPH_DrawBitmap( hdc, lpitem->pCB ? lpitem->pCB->hCheckBit + if (lpitem->fState & MF_CHECKED) + GRAPH_DrawBitmap( hdc, lpitem->hCheckBit ? lpitem->hCheckBit : hStdCheck, rect.left, (y - check_bitmap_height) / 2, 0, 0, check_bitmap_width, check_bitmap_height, TRUE ); - else if (lpitem->pCB) - GRAPH_DrawBitmap( hdc, lpitem->pCB->hUnCheckBit, rect.left, + else if (lpitem->hUnCheckBit) + GRAPH_DrawBitmap( hdc, lpitem->hUnCheckBit, rect.left, (y - check_bitmap_height) / 2, 0, 0, check_bitmap_width, check_bitmap_height, TRUE ); /* Draw the popup-menu arrow */ - if (lpitem->item_flags & MF_POPUP) + if (lpitem->fType & MF_POPUP) { GRAPH_DrawBitmap( hdc, hStdMnArrow, rect.right-arrow_bitmap_width-1, @@ -871,7 +960,7 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, /* Draw the item text or bitmap */ - if (lpitem->item_flags & MF_BITMAP) + if (lpitem->fType & MF_BITMAP) { GRAPH_DrawBitmap( hdc, (HBITMAP32)lpitem->text, rect.left, rect.top, 0, 0, @@ -879,7 +968,7 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, return; } /* No bitmap - process text if present */ - else if (IS_STRING_ITEM(lpitem->item_flags)) + else if (IS_STRING_ITEM(lpitem->fType)) { register int i; @@ -902,12 +991,13 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem, rect.left += MENU_ItemLeftNudge; } - if(!TWEAK_Win95Look || !(lpitem->item_flags & MF_GRAYED)) { + if(!TWEAK_Win95Look || !(lpitem->fState & MF_GRAYED)) { DrawText32A( hdc, lpitem->text, i, &rect, DT_LEFT | DT_VCENTER | DT_SINGLELINE ); } else { - if (!(lpitem->item_flags & MF_HILITE)) { + if (!(lpitem->fState & MF_HILITE)) + { ++rect.left; ++rect.top; ++rect.right; @@ -1119,7 +1209,7 @@ static BOOL32 MENU_ShowPopup( HWND32 hwndOwner, HMENU32 hmenu, UINT32 id, if (!(menu = (POPUPMENU *) USER_HEAP_LIN_ADDR( hmenu ))) return FALSE; if (menu->FocusedItem != NO_SELECTED_ITEM) { - menu->items[menu->FocusedItem].item_flags &= ~(MF_HILITE|MF_MOUSESELECT); + menu->items[menu->FocusedItem].fState &= ~(MF_HILITE|MF_MOUSESELECT); menu->FocusedItem = NO_SELECTED_ITEM; } @@ -1220,7 +1310,7 @@ static void MENU_SelectItem( HWND32 hwndOwner, HMENU32 hmenu, UINT32 wIndex, if (!lppop->nItems) return; if ((wIndex != NO_SELECTED_ITEM) && - (lppop->items[wIndex].item_flags & MF_SEPARATOR)) + (lppop->items[wIndex].fType & MF_SEPARATOR)) wIndex = NO_SELECTED_ITEM; if (lppop->FocusedItem == wIndex) return; @@ -1230,7 +1320,7 @@ static void MENU_SelectItem( HWND32 hwndOwner, HMENU32 hmenu, UINT32 wIndex, /* Clear previous highlighted item */ if (lppop->FocusedItem != NO_SELECTED_ITEM) { - lppop->items[lppop->FocusedItem].item_flags &=~(MF_HILITE|MF_MOUSESELECT); + lppop->items[lppop->FocusedItem].fState &= ~(MF_HILITE|MF_MOUSESELECT); MENU_DrawMenuItem(lppop->hWnd,hdc,&lppop->items[lppop->FocusedItem], lppop->Height, !(lppop->wFlags & MF_POPUP) ); } @@ -1239,13 +1329,16 @@ static void MENU_SelectItem( HWND32 hwndOwner, HMENU32 hmenu, UINT32 wIndex, lppop->FocusedItem = wIndex; if (lppop->FocusedItem != NO_SELECTED_ITEM) { - lppop->items[lppop->FocusedItem].item_flags |= MF_HILITE; + lppop->items[lppop->FocusedItem].fState |= MF_HILITE; MENU_DrawMenuItem( lppop->hWnd, hdc, &lppop->items[lppop->FocusedItem], lppop->Height, !(lppop->wFlags & MF_POPUP) ); if (sendMenuSelect) - SendMessage16( hwndOwner, WM_MENUSELECT, - lppop->items[lppop->FocusedItem].item_id, - MAKELONG( lppop->items[lppop->FocusedItem].item_flags | MF_MOUSESELECT, hmenu)); + { + MENUITEM *ip = &lppop->items[lppop->FocusedItem]; + SendMessage16( hwndOwner, WM_MENUSELECT, ip->wID, + MAKELONG(ip->fType | (ip->fState | MF_MOUSESELECT), + hmenu) ); + } } else if (sendMenuSelect) SendMessage16( hwndOwner, WM_MENUSELECT, hmenu, @@ -1275,7 +1368,7 @@ static void MENU_MoveSelection( HWND32 hwndOwner, HMENU32 hmenu, INT32 offset ) if( menu->nItems == 1 ) return; else for (i = menu->FocusedItem + offset ; i >= 0 && i < menu->nItems ; i += offset) - if (!(menu->items[i].item_flags & MF_SEPARATOR)) + if (!(menu->items[i].fType & MF_SEPARATOR)) { MENU_SelectItem( hwndOwner, hmenu, i, TRUE ); return; @@ -1284,7 +1377,7 @@ static void MENU_MoveSelection( HWND32 hwndOwner, HMENU32 hmenu, INT32 offset ) for ( i = (offset > 0) ? 0 : menu->nItems - 1; i >= 0 && i < menu->nItems ; i += offset) - if (!(menu->items[i].item_flags & MF_SEPARATOR)) + if (!(menu->items[i].fType & MF_SEPARATOR)) { MENU_SelectItem( hwndOwner, hmenu, i, TRUE ); return; @@ -1301,11 +1394,9 @@ static void MENU_MoveSelection( HWND32 hwndOwner, HMENU32 hmenu, INT32 offset ) static BOOL32 MENU_SetItemData( MENUITEM *item, UINT32 flags, UINT32 id, LPCSTR str ) { - LPSTR prevText = IS_STRING_ITEM(item->item_flags) ? item->text : NULL; + LPSTR prevText = IS_STRING_ITEM(item->fType) ? item->text : NULL; - dprintf_menu(stddeb,"SetItemData: %04x [%08x] '%s' -> %04x [%08x] '%s'\n", - item->item_flags, item->item_id, prevText ? prevText : "", - flags, id, (IS_STRING_ITEM(flags) && str) ? str : "" ); + debug_print_menuitem("MENU_SetItemData from: ", item, "\n"); if (IS_STRING_ITEM(flags)) { @@ -1331,22 +1422,32 @@ static BOOL32 MENU_SetItemData( MENUITEM *item, UINT32 flags, UINT32 id, else if (flags & MF_OWNERDRAW) item->text = (LPSTR)str; else item->text = NULL; - if (item->item_flags & MF_POPUP && item->item_id != id ) - DestroyMenu32( (HMENU32)item->item_id ); /* ModifyMenu() spec */ + if (item->fType & MF_POPUP && item->hSubMenu != id ) + DestroyMenu32( item->hSubMenu ); /* ModifyMenu() spec */ if (flags & MF_POPUP) { - POPUPMENU* menu = (POPUPMENU *)USER_HEAP_LIN_ADDR((UINT16)id); - if( menu && menu->wMagic == MENU_MAGIC) menu->wFlags |= MF_POPUP; + POPUPMENU *menu = (POPUPMENU *)USER_HEAP_LIN_ADDR((UINT16)id); + if (IS_A_MENU(menu)) menu->wFlags |= MF_POPUP; else - return (item->item_id = item->item_flags = FALSE); + { + item->wID = 0; + item->hSubMenu = 0; + item->fType = 0; + item->fState = 0; + return FALSE; + } } - item->item_flags = flags & ~(MF_HILITE | MF_MOUSESELECT); - item->item_id = id; + item->fType = flags & TYPE_MASK; + item->fState = (flags & STATE_MASK) & + ~(MF_HILITE | MF_MOUSESELECT | MF_BYPOSITION); + item->wID = item->hSubMenu = id; SetRectEmpty32( &item->rect ); if (prevText) HeapFree( SystemHeap, 0, prevText ); + + debug_print_menuitem("MENU_SetItemData to : ", item, "\n"); return TRUE; } @@ -1470,55 +1571,50 @@ static LPCSTR MENU_ParseResource( LPCSTR res, HMENU32 hMenu, BOOL32 unicode ) */ static LPCSTR MENUEX_ParseResource( LPCSTR res, HMENU32 hMenu) { - DWORD flags; - DWORD state; - DWORD id; - LPCWSTR str; WORD resinfo; + do { + MENUITEMINFO32W mii; - do - { - /* printf ("%p:", res); */ - - flags = GET_DWORD(res); + mii.cbSize = sizeof(mii); + mii.fMask = MIIM_STATE | MIIM_ID | MIIM_TYPE; + mii.fType = GET_DWORD(res); res += sizeof(DWORD); - state = GET_DWORD(res); + mii.fState = GET_DWORD(res); res += sizeof(DWORD); - id = GET_DWORD(res); + mii.wID = GET_DWORD(res); res += sizeof(DWORD); resinfo = GET_WORD(res); /* FIXME: for 16-bit apps this is a byte. */ res += sizeof(WORD); /* Align the text on a word boundary. */ res += (~((int)res - 1)) & 1; - str = (LPCWSTR)res; - res += (1 + lstrlen32W (str)) * sizeof(WCHAR); + mii.dwTypeData = (LPWSTR) res; + res += (1 + lstrlen32W(mii.dwTypeData)) * sizeof(WCHAR); /* Align the following fields on a dword boundary. */ res += (~((int)res - 1)) & 3; /* FIXME: This is inefficient and cannot be optimised away by gcc. */ { - LPSTR newstr = HEAP_strdupWtoA( GetProcessHeap(), 0, str ); - dprintf_menu (stddeb, "Menu item: [%08lx,%08lx,%04lx,%04x,%s]\n", - flags, state, id, resinfo, newstr); + LPSTR newstr = HEAP_strdupWtoA(GetProcessHeap(), + 0, mii.dwTypeData); + dprintf_menu(stddeb, "Menu item: [%08x,%08x,%04x,%04x,%s]\n", + mii.fType, mii.fState, mii.wID, resinfo, newstr); HeapFree( GetProcessHeap(), 0, newstr ); } - if (resinfo & 1) /* Pop-up? */ - { + if (resinfo & 1) { /* Pop-up? */ DWORD helpid = GET_DWORD(res); /* FIXME: use this. */ - HMENU32 hSubMenu = CreatePopupMenu32(); res += sizeof(DWORD); - if (!hSubMenu) return NULL; - if (!(res = MENUEX_ParseResource( res, hSubMenu))) + mii.hSubMenu = CreatePopupMenu32(); + if (!mii.hSubMenu) + return NULL; + if (!(res = MENUEX_ParseResource(res, mii.hSubMenu))) { + DestroyMenu32(mii.hSubMenu); return NULL; - AppendMenu32W( hMenu, flags | MF_POPUP /* HACK! FIXME */, - (UINT32)hSubMenu, (LPCWSTR)str ); } - else /* Not a popup */ - { - AppendMenu32W( hMenu, flags, id, - *(LPCWSTR)str ? (LPCWSTR)str : NULL ); + mii.fMask |= MIIM_SUBMENU; + mii.fType |= MF_POPUP; } + InsertMenuItem32W(hMenu, -1, MF_BYPOSITION, &mii); } while (!(resinfo & MF_END)); return res; } @@ -1539,9 +1635,8 @@ static HMENU32 MENU_GetSubPopup( HMENU32 hmenu ) if (menu->FocusedItem == NO_SELECTED_ITEM) return 0; item = &menu->items[menu->FocusedItem]; - if ((item->item_flags & (MF_POPUP | MF_MOUSESELECT)) - == (MF_POPUP | MF_MOUSESELECT)) - return (HMENU32)item->item_id; + if ((item->fType & MF_POPUP) && (item->fState & MF_MOUSESELECT)) + return item->hSubMenu; return 0; } @@ -1565,10 +1660,10 @@ static void MENU_HideSubPopups( HWND32 hwndOwner, HMENU32 hmenu, if (menu->FocusedItem != NO_SELECTED_ITEM) { item = &menu->items[menu->FocusedItem]; - if (!(item->item_flags & MF_POPUP) || - !(item->item_flags & MF_MOUSESELECT)) return; - item->item_flags &= ~MF_MOUSESELECT; - hsubmenu = (HMENU32)item->item_id; + if (!(item->fType & MF_POPUP) || + !(item->fState & MF_MOUSESELECT)) return; + item->fState &= ~MF_MOUSESELECT; + hsubmenu = item->hSubMenu; } else return; submenu = (POPUPMENU *) USER_HEAP_LIN_ADDR( hsubmenu ); @@ -1609,17 +1704,18 @@ static HMENU32 MENU_ShowSubPopup( HWND32 hwndOwner, HMENU32 hmenu, (menu->FocusedItem == NO_SELECTED_ITEM)) return hmenu; item = &menu->items[menu->FocusedItem]; - if (!(item->item_flags & MF_POPUP) || - (item->item_flags & (MF_GRAYED | MF_DISABLED))) return hmenu; - item->item_flags |= MF_MOUSESELECT; + if (!(item->fType & MF_POPUP) || + (item->fState & (MF_GRAYED | MF_DISABLED))) return hmenu; + item->fState |= MF_MOUSESELECT; if (IS_SYSTEM_MENU(menu)) { - MENU_InitSysMenuPopup((HMENU16)item->item_id, wndPtr->dwStyle, wndPtr->class->style); + MENU_InitSysMenuPopup(item->hSubMenu, wndPtr->dwStyle, wndPtr->class->style); NC_GetSysPopupPos( wndPtr, &rect ); rect.top = rect.bottom; - rect.right = SYSMETRICS_CXSIZE; rect.bottom = SYSMETRICS_CYSIZE; + rect.right = SYSMETRICS_CXSIZE; + rect.bottom = SYSMETRICS_CYSIZE; } else { @@ -1639,11 +1735,11 @@ static HMENU32 MENU_ShowSubPopup( HWND32 hwndOwner, HMENU32 hmenu, } } - MENU_ShowPopup( hwndOwner, (HMENU16)item->item_id, menu->FocusedItem, + MENU_ShowPopup( hwndOwner, item->hSubMenu, menu->FocusedItem, rect.left, rect.top, rect.right, rect.bottom ); if (selectFirst) - MENU_MoveSelection( hwndOwner, (HMENU32)item->item_id, ITEM_NEXT ); - return (HMENU32)item->item_id; + MENU_MoveSelection( hwndOwner, item->hSubMenu, ITEM_NEXT ); + return item->hSubMenu; } /*********************************************************************** @@ -1656,12 +1752,11 @@ static HMENU32 MENU_PtMenu( HMENU32 hMenu, POINT16 pt ) POPUPMENU *menu = (POPUPMENU *) USER_HEAP_LIN_ADDR( hMenu ); register UINT32 ht = menu->FocusedItem; -#define HAS_POPUP(item) (((item).item_flags & (MF_POPUP | MF_MOUSESELECT)) \ - == (MF_POPUP | MF_MOUSESELECT)) /* try subpopup first (if any) */ - ht = (ht != NO_SELECTED_ITEM && HAS_POPUP(menu->items[ht])) - ? (UINT32)MENU_PtMenu( menu->items[ht].item_id, pt ) : 0; -#undef HAS_POPUP + ht = (ht != NO_SELECTED_ITEM && + (menu->items[ht].fType & MF_POPUP) && + (menu->items[ht].fState & MF_MOUSESELECT)) + ? (UINT32) MENU_PtMenu(menu->items[ht].hSubMenu, pt) : 0; if( !ht ) /* check the current window (avoiding WM_HITTEST) */ { @@ -1694,18 +1789,21 @@ static BOOL32 MENU_ExecFocusedItem( MTRACKER* pmt, HMENU32 hMenu ) (menu->FocusedItem == NO_SELECTED_ITEM)) return TRUE; item = &menu->items[menu->FocusedItem]; - if (!(item->item_flags & MF_POPUP)) + + dprintf_menu(stddeb, "MENU_ExecFocusedItem: %08x %08x %08x\n", + hMenu, item->wID, item->hSubMenu); + + if (!(item->fType & MF_POPUP)) { - if (!(item->item_flags & (MF_GRAYED | MF_DISABLED))) + if (!(item->fState & (MF_GRAYED | MF_DISABLED))) { if( menu->wFlags & MF_SYSMENU ) { - PostMessage16( pmt->hOwnerWnd, WM_SYSCOMMAND, item->item_id, + PostMessage16( pmt->hOwnerWnd, WM_SYSCOMMAND, item->hSubMenu, MAKELPARAM((INT16)pmt->pt.x, (INT16)pmt->pt.y) ); } else - PostMessage16( pmt->hOwnerWnd, WM_COMMAND, - item->item_id, 0 ); + PostMessage16( pmt->hOwnerWnd, WM_COMMAND, item->wID, 0 ); return FALSE; } else return TRUE; @@ -1765,9 +1863,9 @@ static BOOL32 MENU_ButtonDown( MTRACKER* pmt, HMENU32 hPtMenu ) if( ptmenu->FocusedItem == id ) { /* nothing to do with already selected non-popup */ - if( !(item->item_flags & MF_POPUP) ) return TRUE; + if( !(item->fType & MF_POPUP) ) return TRUE; - if( item->item_flags & MF_MOUSESELECT ) + if( item->fState & MF_MOUSESELECT ) { if( ptmenu->wFlags & MF_POPUP ) { @@ -1812,9 +1910,9 @@ static BOOL32 MENU_ButtonUp( MTRACKER* pmt, HMENU32 hPtMenu ) if( ptmenu->FocusedItem == id ) { - if( !(item->item_flags & MF_POPUP) ) + if( !(item->fType & MF_POPUP) ) return MENU_ExecFocusedItem( pmt, hPtMenu ); - hPtMenu = (HMENU32)item->item_id; + hPtMenu = item->hSubMenu; if( hPtMenu == pmt->hCurrentMenu ) { /* Select first item of sub-popup */ @@ -2390,8 +2488,8 @@ void MENU_TrackKbdMenuBar( WND* wndPtr, UINT32 wParam, INT32 vkey) /********************************************************************** * TrackPopupMenu16 (USER.416) */ -BOOL16 TrackPopupMenu16( HMENU16 hMenu, UINT16 wFlags, INT16 x, INT16 y, - INT16 nReserved, HWND16 hWnd, const RECT16 *lpRect ) +BOOL16 WINAPI TrackPopupMenu16( HMENU16 hMenu, UINT16 wFlags, INT16 x, INT16 y, + INT16 nReserved, HWND16 hWnd, const RECT16 *lpRect ) { RECT32 r; if (lpRect) @@ -2404,8 +2502,8 @@ BOOL16 TrackPopupMenu16( HMENU16 hMenu, UINT16 wFlags, INT16 x, INT16 y, /********************************************************************** * TrackPopupMenu32 (USER32.548) */ -BOOL32 TrackPopupMenu32( HMENU32 hMenu, UINT32 wFlags, INT32 x, INT32 y, - INT32 nReserved, HWND32 hWnd, const RECT32 *lpRect ) +BOOL32 WINAPI TrackPopupMenu32( HMENU32 hMenu, UINT32 wFlags, INT32 x, INT32 y, + INT32 nReserved, HWND32 hWnd, const RECT32 *lpRect ) { BOOL32 ret = FALSE; @@ -2419,8 +2517,8 @@ BOOL32 TrackPopupMenu32( HMENU32 hMenu, UINT32 wFlags, INT32 x, INT32 y, /********************************************************************** * TrackPopupMenuEx (USER32.549) */ -BOOL32 TrackPopupMenuEx( HMENU32 hMenu, UINT32 wFlags, INT32 x, INT32 y, - HWND32 hWnd, LPTPMPARAMS lpTpm ) +BOOL32 WINAPI TrackPopupMenuEx( HMENU32 hMenu, UINT32 wFlags, INT32 x, INT32 y, + HWND32 hWnd, LPTPMPARAMS lpTpm ) { fprintf( stderr, "TrackPopupMenuEx: not fully implemented\n" ); return TrackPopupMenu32( hMenu, wFlags, x, y, 0, hWnd, @@ -2432,8 +2530,8 @@ BOOL32 TrackPopupMenuEx( HMENU32 hMenu, UINT32 wFlags, INT32 x, INT32 y, * * NOTE: Windows has totally different (and undocumented) popup wndproc. */ -LRESULT PopupMenuWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam, - LPARAM lParam ) +LRESULT WINAPI PopupMenuWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam, + LPARAM lParam ) { WND* wndPtr = WIN_FindWndPtr(hwnd); @@ -2517,7 +2615,7 @@ UINT32 MENU_GetMenuBarHeight( HWND32 hwnd, UINT32 menubarWidth, WND *wndPtr; LPPOPUPMENU lppop; - dprintf_menu( stddeb, "MENU_GetMenuBarHeight: HWND 0x%lx, width %d, " + dprintf_menu( stddeb, "MENU_GetMenuBarHeight: HWND 0x%x, width %d, " "at (%d, %d).\n", hwnd, menubarWidth, orgX, orgY ); if (!(wndPtr = WIN_FindWndPtr( hwnd ))) return 0; @@ -2534,8 +2632,8 @@ UINT32 MENU_GetMenuBarHeight( HWND32 hwnd, UINT32 menubarWidth, /******************************************************************* * ChangeMenu16 (USER.153) */ -BOOL16 ChangeMenu16( HMENU16 hMenu, UINT16 pos, SEGPTR data, - UINT16 id, UINT16 flags ) +BOOL16 WINAPI ChangeMenu16( HMENU16 hMenu, UINT16 pos, SEGPTR data, + UINT16 id, UINT16 flags ) { dprintf_menu( stddeb,"ChangeMenu16: menu=%04x pos=%d data=%08lx id=%04x flags=%04x\n", hMenu, pos, (DWORD)data, id, flags ); @@ -2560,8 +2658,8 @@ BOOL16 ChangeMenu16( HMENU16 hMenu, UINT16 pos, SEGPTR data, /******************************************************************* * ChangeMenu32A (USER32.22) */ -BOOL32 ChangeMenu32A( HMENU32 hMenu, UINT32 pos, LPCSTR data, - UINT32 id, UINT32 flags ) +BOOL32 WINAPI ChangeMenu32A( HMENU32 hMenu, UINT32 pos, LPCSTR data, + UINT32 id, UINT32 flags ) { dprintf_menu( stddeb,"ChangeMenu32A: menu=%08x pos=%d data=%08lx id=%08x flags=%08x\n", hMenu, pos, (DWORD)data, id, flags ); @@ -2581,8 +2679,8 @@ BOOL32 ChangeMenu32A( HMENU32 hMenu, UINT32 pos, LPCSTR data, /******************************************************************* * ChangeMenu32W (USER32.23) */ -BOOL32 ChangeMenu32W( HMENU32 hMenu, UINT32 pos, LPCWSTR data, - UINT32 id, UINT32 flags ) +BOOL32 WINAPI ChangeMenu32W( HMENU32 hMenu, UINT32 pos, LPCWSTR data, + UINT32 id, UINT32 flags ) { dprintf_menu( stddeb,"ChangeMenu32W: menu=%08x pos=%d data=%08lx id=%08x flags=%08x\n", hMenu, pos, (DWORD)data, id, flags ); @@ -2602,7 +2700,7 @@ BOOL32 ChangeMenu32W( HMENU32 hMenu, UINT32 pos, LPCWSTR data, /******************************************************************* * CheckMenuItem16 (USER.154) */ -BOOL16 CheckMenuItem16( HMENU16 hMenu, UINT16 id, UINT16 flags ) +BOOL16 WINAPI CheckMenuItem16( HMENU16 hMenu, UINT16 id, UINT16 flags ) { return (BOOL16)CheckMenuItem32( hMenu, id, flags ); } @@ -2611,16 +2709,16 @@ BOOL16 CheckMenuItem16( HMENU16 hMenu, UINT16 id, UINT16 flags ) /******************************************************************* * CheckMenuItem32 (USER32.45) */ -DWORD CheckMenuItem32( HMENU32 hMenu, UINT32 id, UINT32 flags ) +DWORD WINAPI CheckMenuItem32( HMENU32 hMenu, UINT32 id, UINT32 flags ) { MENUITEM *item; DWORD ret; dprintf_menu( stddeb,"CheckMenuItem: %04x %04x %04x\n", hMenu, id, flags ); if (!(item = MENU_FindItem( &hMenu, &id, flags ))) return -1; - ret = item->item_flags & MF_CHECKED; - if (flags & MF_CHECKED) item->item_flags |= MF_CHECKED; - else item->item_flags &= ~MF_CHECKED; + ret = item->fState & MF_CHECKED; + if (flags & MF_CHECKED) item->fState |= MF_CHECKED; + else item->fState &= ~MF_CHECKED; return ret; } @@ -2628,7 +2726,7 @@ DWORD CheckMenuItem32( HMENU32 hMenu, UINT32 id, UINT32 flags ) /********************************************************************** * EnableMenuItem16 (USER.155) */ -BOOL16 EnableMenuItem16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags ) +BOOL16 WINAPI EnableMenuItem16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags ) { return EnableMenuItem32( hMenu, wItemID, wFlags ); } @@ -2637,7 +2735,7 @@ BOOL16 EnableMenuItem16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags ) /********************************************************************** * EnableMenuItem32 (USER32.169) */ -BOOL32 EnableMenuItem32( HMENU32 hMenu, UINT32 wItemID, UINT32 wFlags ) +BOOL32 WINAPI EnableMenuItem32( HMENU32 hMenu, UINT32 wItemID, UINT32 wFlags ) { BOOL32 bRet = FALSE; MENUITEM *item, *first = NULL; @@ -2647,20 +2745,20 @@ BOOL32 EnableMenuItem32( HMENU32 hMenu, UINT32 wItemID, UINT32 wFlags ) while( (item = MENU_FindItem( &hMenu, &wItemID, wFlags )) ) { - if( !(item->item_flags & MF_POPUP) ) + if( !(item->fType & MF_POPUP) ) { /* We can't have MF_GRAYED and MF_DISABLED together */ if (wFlags & MF_GRAYED) { - item->item_flags = (item->item_flags & ~MF_DISABLED) | MF_GRAYED; + item->fState = (item->fState & ~MF_DISABLED) | MF_GRAYED; } else if (wFlags & MF_DISABLED) { - item->item_flags = (item->item_flags & ~MF_GRAYED) | MF_DISABLED; + item->fState = (item->fState & ~MF_GRAYED) | MF_DISABLED; } else /* MF_ENABLED */ { - item->item_flags &= ~(MF_GRAYED | MF_DISABLED); + item->fState &= ~(MF_GRAYED | MF_DISABLED); } bRet = TRUE; break; @@ -2675,8 +2773,8 @@ BOOL32 EnableMenuItem32( HMENU32 hMenu, UINT32 wItemID, UINT32 wFlags ) /******************************************************************* * GetMenuString16 (USER.161) */ -INT16 GetMenuString16( HMENU16 hMenu, UINT16 wItemID, - LPSTR str, INT16 nMaxSiz, UINT16 wFlags ) +INT16 WINAPI GetMenuString16( HMENU16 hMenu, UINT16 wItemID, + LPSTR str, INT16 nMaxSiz, UINT16 wFlags ) { return GetMenuString32A( hMenu, wItemID, str, nMaxSiz, wFlags ); } @@ -2685,8 +2783,8 @@ INT16 GetMenuString16( HMENU16 hMenu, UINT16 wItemID, /******************************************************************* * GetMenuString32A (USER32.267) */ -INT32 GetMenuString32A( HMENU32 hMenu, UINT32 wItemID, - LPSTR str, INT32 nMaxSiz, UINT32 wFlags ) +INT32 WINAPI GetMenuString32A( HMENU32 hMenu, UINT32 wItemID, + LPSTR str, INT32 nMaxSiz, UINT32 wFlags ) { MENUITEM *item; @@ -2695,7 +2793,7 @@ INT32 GetMenuString32A( HMENU32 hMenu, UINT32 wItemID, if (!str || !nMaxSiz) return 0; str[0] = '\0'; if (!(item = MENU_FindItem( &hMenu, &wItemID, wFlags ))) return 0; - if (!IS_STRING_ITEM(item->item_flags)) return 0; + if (!IS_STRING_ITEM(item->fType)) return 0; lstrcpyn32A( str, item->text, nMaxSiz ); dprintf_menu( stddeb, "GetMenuString32A: returning '%s'\n", str ); return strlen(str); @@ -2705,8 +2803,8 @@ INT32 GetMenuString32A( HMENU32 hMenu, UINT32 wItemID, /******************************************************************* * GetMenuString32W (USER32.268) */ -INT32 GetMenuString32W( HMENU32 hMenu, UINT32 wItemID, - LPWSTR str, INT32 nMaxSiz, UINT32 wFlags ) +INT32 WINAPI GetMenuString32W( HMENU32 hMenu, UINT32 wItemID, + LPWSTR str, INT32 nMaxSiz, UINT32 wFlags ) { MENUITEM *item; @@ -2715,7 +2813,7 @@ INT32 GetMenuString32W( HMENU32 hMenu, UINT32 wItemID, if (!str || !nMaxSiz) return 0; str[0] = '\0'; if (!(item = MENU_FindItem( &hMenu, &wItemID, wFlags ))) return 0; - if (!IS_STRING_ITEM(item->item_flags)) return 0; + if (!IS_STRING_ITEM(item->fType)) return 0; lstrcpynAtoW( str, item->text, nMaxSiz ); return lstrlen32W(str); } @@ -2724,8 +2822,8 @@ INT32 GetMenuString32W( HMENU32 hMenu, UINT32 wItemID, /********************************************************************** * HiliteMenuItem16 (USER.162) */ -BOOL16 HiliteMenuItem16( HWND16 hWnd, HMENU16 hMenu, UINT16 wItemID, - UINT16 wHilite ) +BOOL16 WINAPI HiliteMenuItem16( HWND16 hWnd, HMENU16 hMenu, UINT16 wItemID, + UINT16 wHilite ) { return HiliteMenuItem32( hWnd, hMenu, wItemID, wHilite ); } @@ -2734,8 +2832,8 @@ BOOL16 HiliteMenuItem16( HWND16 hWnd, HMENU16 hMenu, UINT16 wItemID, /********************************************************************** * HiliteMenuItem32 (USER32.317) */ -BOOL32 HiliteMenuItem32( HWND32 hWnd, HMENU32 hMenu, UINT32 wItemID, - UINT32 wHilite ) +BOOL32 WINAPI HiliteMenuItem32( HWND32 hWnd, HMENU32 hMenu, UINT32 wItemID, + UINT32 wHilite ) { LPPOPUPMENU menu; dprintf_menu(stddeb,"HiliteMenuItem(%04x, %04x, %04x, %04x);\n", @@ -2752,7 +2850,7 @@ BOOL32 HiliteMenuItem32( HWND32 hWnd, HMENU32 hMenu, UINT32 wItemID, /********************************************************************** * GetMenuState16 (USER.250) */ -UINT16 GetMenuState16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags ) +UINT16 WINAPI GetMenuState16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags ) { return GetMenuState32( hMenu, wItemID, wFlags ); } @@ -2761,31 +2859,32 @@ UINT16 GetMenuState16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags ) /********************************************************************** * GetMenuState32 (USER32.266) */ -UINT32 GetMenuState32( HMENU32 hMenu, UINT32 wItemID, UINT32 wFlags ) +UINT32 WINAPI GetMenuState32( HMENU32 hMenu, UINT32 wItemID, UINT32 wFlags ) { MENUITEM *item; dprintf_menu(stddeb,"GetMenuState(%04x, %04x, %04x);\n", hMenu, wItemID, wFlags); if (!(item = MENU_FindItem( &hMenu, &wItemID, wFlags ))) return -1; - if (item->item_flags & MF_POPUP) + if (item->fType & MF_POPUP) { - POPUPMENU *menu = (POPUPMENU *) USER_HEAP_LIN_ADDR( (HMENU16)item->item_id ); + POPUPMENU *menu = (POPUPMENU *) USER_HEAP_LIN_ADDR( item->hSubMenu ); if (!menu) return -1; else return (menu->nItems << 8) | (menu->wFlags & 0xff); } else - /* Non POPUP Menus only return flags in the lower byte */ - return (item->item_flags & 0x00ff); + /* Non POPUP Menus only return flags in the lower byte */ + /* XXX ??? */ + return ((item->fType | item->fState) & 0x00ff); } /********************************************************************** * GetMenuItemCount16 (USER.263) */ -INT16 GetMenuItemCount16( HMENU16 hMenu ) +INT16 WINAPI GetMenuItemCount16( HMENU16 hMenu ) { LPPOPUPMENU menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu); - if (!menu || (menu->wMagic != MENU_MAGIC)) return -1; + if (!IS_A_MENU(menu)) return -1; dprintf_menu( stddeb,"GetMenuItemCount16(%04x) returning %d\n", hMenu, menu->nItems ); return menu->nItems; @@ -2795,10 +2894,10 @@ INT16 GetMenuItemCount16( HMENU16 hMenu ) /********************************************************************** * GetMenuItemCount32 (USER32.261) */ -INT32 GetMenuItemCount32( HMENU32 hMenu ) +INT32 WINAPI GetMenuItemCount32( HMENU32 hMenu ) { LPPOPUPMENU menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu); - if (!menu || (menu->wMagic != MENU_MAGIC)) return -1; + if (!IS_A_MENU(menu)) return -1; dprintf_menu( stddeb,"GetMenuItemCount32(%04x) returning %d\n", hMenu, menu->nItems ); return menu->nItems; @@ -2808,36 +2907,37 @@ INT32 GetMenuItemCount32( HMENU32 hMenu ) /********************************************************************** * GetMenuItemID16 (USER.264) */ -UINT16 GetMenuItemID16( HMENU16 hMenu, INT16 nPos ) +UINT16 WINAPI GetMenuItemID16( HMENU16 hMenu, INT16 nPos ) { LPPOPUPMENU menu; if (!(menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu))) return -1; if ((nPos < 0) || ((UINT16) nPos >= menu->nItems)) return -1; - if (menu->items[nPos].item_flags & MF_POPUP) return -1; - return menu->items[nPos].item_id; + if (menu->items[nPos].fType & MF_POPUP) return -1; + return menu->items[nPos].wID; } /********************************************************************** * GetMenuItemID32 (USER32.262) */ -UINT32 GetMenuItemID32( HMENU32 hMenu, INT32 nPos ) +UINT32 WINAPI GetMenuItemID32( HMENU32 hMenu, INT32 nPos ) { LPPOPUPMENU menu; if (!(menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu))) return -1; if ((nPos < 0) || (nPos >= menu->nItems)) return -1; - if (menu->items[nPos].item_flags & MF_POPUP) return -1; - return menu->items[nPos].item_id; + /* FIXME: Now that submenus can have ids, is this still right? */ + if (menu->items[nPos].fType & MF_POPUP) return -1; + return menu->items[nPos].wID; } /******************************************************************* * InsertMenu16 (USER.410) */ -BOOL16 InsertMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags, - UINT16 id, SEGPTR data ) +BOOL16 WINAPI InsertMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags, + UINT16 id, SEGPTR data ) { UINT32 pos32 = (UINT32)pos; if ((pos == (UINT16)-1) && (flags & MF_BYPOSITION)) pos32 = (UINT32)-1; @@ -2851,8 +2951,8 @@ BOOL16 InsertMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags, /******************************************************************* * InsertMenu32A (USER32.321) */ -BOOL32 InsertMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags, - UINT32 id, LPCSTR str ) +BOOL32 WINAPI InsertMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags, + UINT32 id, LPCSTR str ) { MENUITEM *item; @@ -2875,7 +2975,8 @@ BOOL32 InsertMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags, if (flags & MF_POPUP) /* Set the MF_POPUP flag on the popup-menu */ ((POPUPMENU *)USER_HEAP_LIN_ADDR((HMENU16)id))->wFlags |= MF_POPUP; - item->pCB = NULL; + item->hCheckBit = item->hUnCheckBit = 0; + item->dwItemData = 0; return TRUE; } @@ -2883,8 +2984,8 @@ BOOL32 InsertMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags, /******************************************************************* * InsertMenu32W (USER32.324) */ -BOOL32 InsertMenu32W( HMENU32 hMenu, UINT32 pos, UINT32 flags, - UINT32 id, LPCWSTR str ) +BOOL32 WINAPI InsertMenu32W( HMENU32 hMenu, UINT32 pos, UINT32 flags, + UINT32 id, LPCWSTR str ) { BOOL32 ret; @@ -2902,7 +3003,7 @@ BOOL32 InsertMenu32W( HMENU32 hMenu, UINT32 pos, UINT32 flags, /******************************************************************* * AppendMenu16 (USER.411) */ -BOOL16 AppendMenu16( HMENU16 hMenu, UINT16 flags, UINT16 id, SEGPTR data ) +BOOL16 WINAPI AppendMenu16(HMENU16 hMenu, UINT16 flags, UINT16 id, SEGPTR data) { return InsertMenu16( hMenu, -1, flags | MF_BYPOSITION, id, data ); } @@ -2911,7 +3012,8 @@ BOOL16 AppendMenu16( HMENU16 hMenu, UINT16 flags, UINT16 id, SEGPTR data ) /******************************************************************* * AppendMenu32A (USER32.4) */ -BOOL32 AppendMenu32A( HMENU32 hMenu, UINT32 flags, UINT32 id, LPCSTR data ) +BOOL32 WINAPI AppendMenu32A( HMENU32 hMenu, UINT32 flags, + UINT32 id, LPCSTR data ) { return InsertMenu32A( hMenu, -1, flags | MF_BYPOSITION, id, data ); } @@ -2920,7 +3022,8 @@ BOOL32 AppendMenu32A( HMENU32 hMenu, UINT32 flags, UINT32 id, LPCSTR data ) /******************************************************************* * AppendMenu32W (USER32.5) */ -BOOL32 AppendMenu32W( HMENU32 hMenu, UINT32 flags, UINT32 id, LPCWSTR data ) +BOOL32 WINAPI AppendMenu32W( HMENU32 hMenu, UINT32 flags, + UINT32 id, LPCWSTR data ) { return InsertMenu32W( hMenu, -1, flags | MF_BYPOSITION, id, data ); } @@ -2929,7 +3032,7 @@ BOOL32 AppendMenu32W( HMENU32 hMenu, UINT32 flags, UINT32 id, LPCWSTR data ) /********************************************************************** * RemoveMenu16 (USER.412) */ -BOOL16 RemoveMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags ) +BOOL16 WINAPI RemoveMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags ) { return RemoveMenu32( hMenu, nPos, wFlags ); } @@ -2938,7 +3041,7 @@ BOOL16 RemoveMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags ) /********************************************************************** * RemoveMenu32 (USER32.440) */ -BOOL32 RemoveMenu32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags ) +BOOL32 WINAPI RemoveMenu32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags ) { LPPOPUPMENU menu; MENUITEM *item; @@ -2974,7 +3077,7 @@ BOOL32 RemoveMenu32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags ) /********************************************************************** * DeleteMenu16 (USER.413) */ -BOOL16 DeleteMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags ) +BOOL16 WINAPI DeleteMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags ) { return DeleteMenu32( hMenu, nPos, wFlags ); } @@ -2983,11 +3086,11 @@ BOOL16 DeleteMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags ) /********************************************************************** * DeleteMenu32 (USER32.128) */ -BOOL32 DeleteMenu32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags ) +BOOL32 WINAPI DeleteMenu32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags ) { MENUITEM *item = MENU_FindItem( &hMenu, &nPos, wFlags ); if (!item) return FALSE; - if (item->item_flags & MF_POPUP) DestroyMenu32( (HMENU32)item->item_id ); + if (item->fType & MF_POPUP) DestroyMenu32( item->hSubMenu ); /* nPos is now the position of the item */ RemoveMenu32( hMenu, nPos, wFlags | MF_BYPOSITION ); return TRUE; @@ -2997,8 +3100,8 @@ BOOL32 DeleteMenu32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags ) /******************************************************************* * ModifyMenu16 (USER.414) */ -BOOL16 ModifyMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags, - UINT16 id, SEGPTR data ) +BOOL16 WINAPI ModifyMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags, + UINT16 id, SEGPTR data ) { if (IS_STRING_ITEM(flags)) return ModifyMenu32A( hMenu, pos, flags, id, @@ -3010,8 +3113,8 @@ BOOL16 ModifyMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags, /******************************************************************* * ModifyMenu32A (USER32.396) */ -BOOL32 ModifyMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags, - UINT32 id, LPCSTR str ) +BOOL32 WINAPI ModifyMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags, + UINT32 id, LPCSTR str ) { MENUITEM *item; @@ -3035,8 +3138,8 @@ BOOL32 ModifyMenu32A( HMENU32 hMenu, UINT32 pos, UINT32 flags, /******************************************************************* * ModifyMenu32W (USER32.397) */ -BOOL32 ModifyMenu32W( HMENU32 hMenu, UINT32 pos, UINT32 flags, - UINT32 id, LPCWSTR str ) +BOOL32 WINAPI ModifyMenu32W( HMENU32 hMenu, UINT32 pos, UINT32 flags, + UINT32 id, LPCWSTR str ) { BOOL32 ret; @@ -3054,7 +3157,7 @@ BOOL32 ModifyMenu32W( HMENU32 hMenu, UINT32 pos, UINT32 flags, /********************************************************************** * CreatePopupMenu16 (USER.415) */ -HMENU16 CreatePopupMenu16(void) +HMENU16 WINAPI CreatePopupMenu16(void) { return CreatePopupMenu32(); } @@ -3063,7 +3166,7 @@ HMENU16 CreatePopupMenu16(void) /********************************************************************** * CreatePopupMenu32 (USER32.81) */ -HMENU32 CreatePopupMenu32(void) +HMENU32 WINAPI CreatePopupMenu32(void) { HMENU32 hmenu; POPUPMENU *menu; @@ -3078,7 +3181,7 @@ HMENU32 CreatePopupMenu32(void) /********************************************************************** * GetMenuCheckMarkDimensions (USER.417) (USER32.257) */ -DWORD GetMenuCheckMarkDimensions(void) +DWORD WINAPI GetMenuCheckMarkDimensions(void) { return MAKELONG( check_bitmap_width, check_bitmap_height ); } @@ -3087,8 +3190,8 @@ DWORD GetMenuCheckMarkDimensions(void) /********************************************************************** * SetMenuItemBitmaps16 (USER.418) */ -BOOL16 SetMenuItemBitmaps16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags, - HBITMAP16 hNewUnCheck, HBITMAP16 hNewCheck ) +BOOL16 WINAPI SetMenuItemBitmaps16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags, + HBITMAP16 hNewUnCheck, HBITMAP16 hNewCheck) { return SetMenuItemBitmaps32( hMenu, nPos, wFlags, hNewUnCheck, hNewCheck ); } @@ -3097,8 +3200,8 @@ BOOL16 SetMenuItemBitmaps16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags, /********************************************************************** * SetMenuItemBitmaps32 (USER32.489) */ -BOOL32 SetMenuItemBitmaps32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags, - HBITMAP32 hNewUnCheck, HBITMAP32 hNewCheck ) +BOOL32 WINAPI SetMenuItemBitmaps32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags, + HBITMAP32 hNewUnCheck, HBITMAP32 hNewCheck) { MENUITEM *item; dprintf_menu(stddeb,"SetMenuItemBitmaps(%04x, %04x, %04x, %04x, %04x)\n", @@ -3107,17 +3210,13 @@ BOOL32 SetMenuItemBitmaps32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags, if (!hNewCheck && !hNewUnCheck) { - if( item->pCB ) HeapFree( SystemHeap, 0, item->pCB ); - item->pCB = NULL; - item->item_flags &= ~MF_USECHECKBITMAPS; + item->fState &= ~MF_USECHECKBITMAPS; } else /* Install new bitmaps */ { - if( item->pCB == NULL ) - item->pCB = HeapAlloc( SystemHeap, 0, sizeof(CBITMAPS)); - item->pCB->hCheckBit = hNewCheck; - item->pCB->hUnCheckBit = hNewUnCheck; - item->item_flags |= MF_USECHECKBITMAPS; + item->hCheckBit = hNewCheck; + item->hUnCheckBit = hNewUnCheck; + item->fState |= MF_USECHECKBITMAPS; } return TRUE; } @@ -3126,7 +3225,7 @@ BOOL32 SetMenuItemBitmaps32( HMENU32 hMenu, UINT32 nPos, UINT32 wFlags, /********************************************************************** * CreateMenu16 (USER.151) */ -HMENU16 CreateMenu16(void) +HMENU16 WINAPI CreateMenu16(void) { return CreateMenu32(); } @@ -3135,7 +3234,7 @@ HMENU16 CreateMenu16(void) /********************************************************************** * CreateMenu32 (USER32.80) */ -HMENU32 CreateMenu32(void) +HMENU32 WINAPI CreateMenu32(void) { HMENU32 hMenu; LPPOPUPMENU menu; @@ -3158,7 +3257,7 @@ HMENU32 CreateMenu32(void) /********************************************************************** * DestroyMenu16 (USER.152) */ -BOOL16 DestroyMenu16( HMENU16 hMenu ) +BOOL16 WINAPI DestroyMenu16( HMENU16 hMenu ) { return DestroyMenu32( hMenu ); } @@ -3167,7 +3266,7 @@ BOOL16 DestroyMenu16( HMENU16 hMenu ) /********************************************************************** * DestroyMenu32 (USER32.133) */ -BOOL32 DestroyMenu32( HMENU32 hMenu ) +BOOL32 WINAPI DestroyMenu32( HMENU32 hMenu ) { dprintf_menu(stddeb,"DestroyMenu(%04x)\n", hMenu); @@ -3180,7 +3279,7 @@ BOOL32 DestroyMenu32( HMENU32 hMenu ) if( pTopPopupWnd && (hMenu == *(HMENU32*)pTopPopupWnd->wExtra) ) *(UINT32*)pTopPopupWnd->wExtra = 0; - if (lppop && (lppop->wMagic == MENU_MAGIC)) + if (IS_A_MENU( lppop )) { lppop->wMagic = 0; /* Mark it as destroyed */ @@ -3194,8 +3293,7 @@ BOOL32 DestroyMenu32( HMENU32 hMenu ) MENUITEM *item = lppop->items; for (i = lppop->nItems; i > 0; i--, item++) { - if (item->item_flags & MF_POPUP) - DestroyMenu32( (HMENU32)item->item_id ); + if (item->fType & MF_POPUP) DestroyMenu32(item->hSubMenu); MENU_FreeItemData( item ); } HeapFree( SystemHeap, 0, lppop->items ); @@ -3211,7 +3309,7 @@ BOOL32 DestroyMenu32( HMENU32 hMenu ) /********************************************************************** * GetSystemMenu16 (USER.156) */ -HMENU16 GetSystemMenu16( HWND16 hWnd, BOOL16 bRevert ) +HMENU16 WINAPI GetSystemMenu16( HWND16 hWnd, BOOL16 bRevert ) { return GetSystemMenu32( hWnd, bRevert ); } @@ -3220,7 +3318,7 @@ HMENU16 GetSystemMenu16( HWND16 hWnd, BOOL16 bRevert ) /********************************************************************** * GetSystemMenu32 (USER32.290) */ -HMENU32 GetSystemMenu32( HWND32 hWnd, BOOL32 bRevert ) +HMENU32 WINAPI GetSystemMenu32( HWND32 hWnd, BOOL32 bRevert ) { WND *wndPtr = WIN_FindWndPtr( hWnd ); @@ -3237,8 +3335,8 @@ HMENU32 GetSystemMenu32( HWND32 hWnd, BOOL32 bRevert ) { POPUPMENU *menu = (POPUPMENU*) USER_HEAP_LIN_ADDR(wndPtr->hSysMenu); - if( menu->items[0].item_id == MENU_DefSysPopup ) - menu->items[0].item_id = MENU_CopySysPopup(); + if( menu->items[0].hSubMenu == MENU_DefSysPopup ) + menu->items[0].hSubMenu = MENU_CopySysPopup(); } } @@ -3255,7 +3353,7 @@ HMENU32 GetSystemMenu32( HWND32 hWnd, BOOL32 bRevert ) /******************************************************************* * SetSystemMenu16 (USER.280) */ -BOOL16 SetSystemMenu16( HWND16 hwnd, HMENU16 hMenu ) +BOOL16 WINAPI SetSystemMenu16( HWND16 hwnd, HMENU16 hMenu ) { return SetSystemMenu32( hwnd, hMenu ); } @@ -3264,7 +3362,7 @@ BOOL16 SetSystemMenu16( HWND16 hwnd, HMENU16 hMenu ) /******************************************************************* * SetSystemMenu32 (USER32.507) */ -BOOL32 SetSystemMenu32( HWND32 hwnd, HMENU32 hMenu ) +BOOL32 WINAPI SetSystemMenu32( HWND32 hwnd, HMENU32 hMenu ) { WND *wndPtr = WIN_FindWndPtr(hwnd); @@ -3281,7 +3379,7 @@ BOOL32 SetSystemMenu32( HWND32 hwnd, HMENU32 hMenu ) /********************************************************************** * GetMenu16 (USER.157) */ -HMENU16 GetMenu16( HWND16 hWnd ) +HMENU16 WINAPI GetMenu16( HWND16 hWnd ) { WND * wndPtr = WIN_FindWndPtr(hWnd); if (wndPtr && !(wndPtr->dwStyle & WS_CHILD)) @@ -3293,7 +3391,7 @@ HMENU16 GetMenu16( HWND16 hWnd ) /********************************************************************** * GetMenu32 (USER32.256) */ -HMENU32 GetMenu32( HWND32 hWnd ) +HMENU32 WINAPI GetMenu32( HWND32 hWnd ) { WND * wndPtr = WIN_FindWndPtr(hWnd); if (wndPtr && !(wndPtr->dwStyle & WS_CHILD)) @@ -3305,7 +3403,7 @@ HMENU32 GetMenu32( HWND32 hWnd ) /********************************************************************** * SetMenu16 (USER.158) */ -BOOL16 SetMenu16( HWND16 hWnd, HMENU16 hMenu ) +BOOL16 WINAPI SetMenu16( HWND16 hWnd, HMENU16 hMenu ) { return SetMenu32( hWnd, hMenu ); } @@ -3314,7 +3412,7 @@ BOOL16 SetMenu16( HWND16 hWnd, HMENU16 hMenu ) /********************************************************************** * SetMenu32 (USER32.486) */ -BOOL32 SetMenu32( HWND32 hWnd, HMENU32 hMenu ) +BOOL32 WINAPI SetMenu32( HWND32 hWnd, HMENU32 hMenu ) { WND * wndPtr = WIN_FindWndPtr(hWnd); @@ -3347,7 +3445,7 @@ BOOL32 SetMenu32( HWND32 hWnd, HMENU32 hMenu ) /********************************************************************** * GetSubMenu16 (USER.159) */ -HMENU16 GetSubMenu16( HMENU16 hMenu, INT16 nPos ) +HMENU16 WINAPI GetSubMenu16( HMENU16 hMenu, INT16 nPos ) { return GetSubMenu32( hMenu, nPos ); } @@ -3356,21 +3454,21 @@ HMENU16 GetSubMenu16( HMENU16 hMenu, INT16 nPos ) /********************************************************************** * GetSubMenu32 (USER32.287) */ -HMENU32 GetSubMenu32( HMENU32 hMenu, INT32 nPos ) +HMENU32 WINAPI GetSubMenu32( HMENU32 hMenu, INT32 nPos ) { LPPOPUPMENU lppop; if (!(lppop = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu))) return 0; if ((UINT32)nPos >= lppop->nItems) return 0; - if (!(lppop->items[nPos].item_flags & MF_POPUP)) return 0; - return (HMENU32)lppop->items[nPos].item_id; + if (!(lppop->items[nPos].fType & MF_POPUP)) return 0; + return lppop->items[nPos].hSubMenu; } /********************************************************************** * DrawMenuBar16 (USER.160) */ -void DrawMenuBar16( HWND16 hWnd ) +void WINAPI DrawMenuBar16( HWND16 hWnd ) { DrawMenuBar32( hWnd ); } @@ -3379,7 +3477,7 @@ void DrawMenuBar16( HWND16 hWnd ) /********************************************************************** * DrawMenuBar32 (USER32.160) */ -BOOL32 DrawMenuBar32( HWND32 hWnd ) +BOOL32 WINAPI DrawMenuBar32( HWND32 hWnd ) { LPPOPUPMENU lppop; WND *wndPtr = WIN_FindWndPtr(hWnd); @@ -3400,7 +3498,7 @@ BOOL32 DrawMenuBar32( HWND32 hWnd ) /*********************************************************************** * EndMenu (USER.187) (USER32.174) */ -void EndMenu(void) +void WINAPI EndMenu(void) { fEndMenu = TRUE; } @@ -3409,7 +3507,7 @@ void EndMenu(void) /*********************************************************************** * LookupMenuHandle (USER.217) */ -HMENU16 LookupMenuHandle( HMENU16 hmenu, INT16 id ) +HMENU16 WINAPI LookupMenuHandle( HMENU16 hmenu, INT16 id ) { HMENU32 hmenu32 = hmenu; INT32 id32 = id; @@ -3421,7 +3519,7 @@ HMENU16 LookupMenuHandle( HMENU16 hmenu, INT16 id ) /********************************************************************** * LoadMenu16 (USER.150) */ -HMENU16 LoadMenu16( HINSTANCE16 instance, SEGPTR name ) +HMENU16 WINAPI LoadMenu16( HINSTANCE16 instance, SEGPTR name ) { HRSRC16 hRsrc; HGLOBAL16 handle; @@ -3454,7 +3552,7 @@ HMENU16 LoadMenu16( HINSTANCE16 instance, SEGPTR name ) /***************************************************************** * LoadMenu32A (USER32.370) */ -HMENU32 LoadMenu32A( HINSTANCE32 instance, LPCSTR name ) +HMENU32 WINAPI LoadMenu32A( HINSTANCE32 instance, LPCSTR name ) { HRSRC32 hrsrc = FindResource32A( instance, name, (LPSTR)RT_MENU ); if (!hrsrc) return 0; @@ -3465,7 +3563,7 @@ HMENU32 LoadMenu32A( HINSTANCE32 instance, LPCSTR name ) /***************************************************************** * LoadMenu32W (USER32.372) */ -HMENU32 LoadMenu32W( HINSTANCE32 instance, LPCWSTR name ) +HMENU32 WINAPI LoadMenu32W( HINSTANCE32 instance, LPCWSTR name ) { HRSRC32 hrsrc = FindResource32W( instance, name, (LPWSTR)RT_MENU ); if (!hrsrc) return 0; @@ -3476,7 +3574,7 @@ HMENU32 LoadMenu32W( HINSTANCE32 instance, LPCWSTR name ) /********************************************************************** * LoadMenuIndirect16 (USER.220) */ -HMENU16 LoadMenuIndirect16( LPCVOID template ) +HMENU16 WINAPI LoadMenuIndirect16( LPCVOID template ) { HMENU16 hMenu; WORD version, offset; @@ -3505,7 +3603,7 @@ HMENU16 LoadMenuIndirect16( LPCVOID template ) /********************************************************************** * LoadMenuIndirect32A (USER32.370) */ -HMENU32 LoadMenuIndirect32A( LPCVOID template ) +HMENU32 WINAPI LoadMenuIndirect32A( LPCVOID template ) { HMENU16 hMenu; WORD version, offset; @@ -3547,7 +3645,7 @@ HMENU32 LoadMenuIndirect32A( LPCVOID template ) /********************************************************************** * LoadMenuIndirect32W (USER32.371) */ -HMENU32 LoadMenuIndirect32W( LPCVOID template ) +HMENU32 WINAPI LoadMenuIndirect32W( LPCVOID template ) { /* FIXME: is there anything different between A and W? */ return LoadMenuIndirect32A( template ); @@ -3557,11 +3655,20 @@ HMENU32 LoadMenuIndirect32W( LPCVOID template ) /********************************************************************** * IsMenu16 (USER.358) */ -BOOL16 IsMenu16( HMENU16 hmenu ) +BOOL16 WINAPI IsMenu16( HMENU16 hmenu ) { - LPPOPUPMENU menu; - if (!(menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR( hmenu ))) return FALSE; - return (menu->wMagic == MENU_MAGIC); + LPPOPUPMENU menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hmenu); + return IS_A_MENU(menu); +} + + +/********************************************************************** + * IsMenu32 (USER32.345) + */ +BOOL32 WINAPI IsMenu32(HMENU32 hmenu) +{ + LPPOPUPMENU menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hmenu); + return IS_A_MENU(menu); } /********************************************************************** @@ -3574,40 +3681,48 @@ static BOOL32 GetMenuItemInfo32_common ( HMENU32 hmenu, UINT32 item, BOOL32 unicode) { MENUITEM *menu = MENU_FindItem (&hmenu, &item, bypos); - if (!menu) return FALSE; + debug_print_menuitem("GetMenuItemInfo32_common: ", menu, "\n"); + if (!menu) + return FALSE; - if (lpmii->fMask && MIIM_TYPE) - { - lpmii->fType = menu->item_flags; - lpmii->dwTypeData = menu->text; - if (IS_STRING_ITEM (menu->item_flags)) - { - lpmii->cch = strlen (menu->text); + if (lpmii->fMask & MIIM_TYPE) { + lpmii->fType = menu->fType; + switch (MENU_ITEM_TYPE(menu->fType)) { + case MF_STRING: + if (menu->text && lpmii->dwTypeData && lpmii->cch) { if (unicode) - ; /* UGH! FIXME */ + lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, + menu->text, + lpmii->cch); + else + lstrcpyn32A(lpmii->dwTypeData, + menu->text, + lpmii->cch); } - else - lpmii->cch = 0; + break; + case MF_OWNERDRAW: + case MF_BITMAP: + lpmii->dwTypeData = menu->text; + break; + default: + break; } - - if (lpmii->fMask && MIIM_STATE) - lpmii->fState = 0; /* FIXME -- not saved. */ - - if (lpmii->wID && MIIM_ID) - lpmii->fType = menu->item_id; - - if (lpmii->fMask && MIIM_SUBMENU) - lpmii->hSubMenu = menu->item_id; /* FIXME: ??? */ - - if (lpmii->fMask && MIIM_CHECKMARKS) - { - PCBITMAPS pCB = menu->pCB; - lpmii->hbmpChecked = pCB ? pCB->hCheckBit : 0; - lpmii->hbmpUnchecked = pCB ? pCB->hUnCheckBit : 0; } + if (lpmii->fMask & MIIM_STATE) + lpmii->fState = menu->fState; - if (lpmii->fMask && MIIM_DATA) - lpmii->dwItemData = 0; /* FIXME -- not saved. */ + if (lpmii->fMask & MIIM_ID) + lpmii->wID = menu->wID; + + if (lpmii->fMask & MIIM_SUBMENU) + lpmii->hSubMenu = menu->hSubMenu; + + if (lpmii->fMask & MIIM_CHECKMARKS) { + lpmii->hbmpChecked = menu->hCheckBit; + lpmii->hbmpUnchecked = menu->hUnCheckBit; + } + if (lpmii->fMask & MIIM_DATA) + lpmii->dwItemData = menu->dwItemData; return TRUE; } @@ -3615,8 +3730,8 @@ static BOOL32 GetMenuItemInfo32_common ( HMENU32 hmenu, UINT32 item, /********************************************************************** * GetMenuItemInfo32A (USER32.263) */ -BOOL32 GetMenuItemInfo32A( HMENU32 hmenu, UINT32 item, BOOL32 bypos, - LPMENUITEMINFO32A lpmii) +BOOL32 WINAPI GetMenuItemInfo32A( HMENU32 hmenu, UINT32 item, BOOL32 bypos, + LPMENUITEMINFO32A lpmii) { return GetMenuItemInfo32_common (hmenu, item, bypos, lpmii, FALSE); } @@ -3624,20 +3739,136 @@ BOOL32 GetMenuItemInfo32A( HMENU32 hmenu, UINT32 item, BOOL32 bypos, /********************************************************************** * GetMenuItemInfo32W (USER32.264) */ -BOOL32 GetMenuItemInfo32W( HMENU32 hmenu, UINT32 item, BOOL32 bypos, - LPMENUITEMINFO32W lpmii) +BOOL32 WINAPI GetMenuItemInfo32W( HMENU32 hmenu, UINT32 item, BOOL32 bypos, + LPMENUITEMINFO32W lpmii) { return GetMenuItemInfo32_common (hmenu, item, bypos, (LPMENUITEMINFO32A)lpmii, TRUE); } +/********************************************************************** + * SetMenuItemInfo32_common + */ + +static BOOL32 SetMenuItemInfo32_common(MENUITEM * menu, + const MENUITEMINFO32A *lpmii, + BOOL32 unicode) +{ + if (!menu) return FALSE; + + if (lpmii->fMask & MIIM_TYPE) { + /* Get rid of old string. */ + if (IS_STRING_ITEM(menu->fType) && menu->text) + HeapFree(SystemHeap, 0, menu->text); + + menu->fType = lpmii->fType; + menu->text = lpmii->dwTypeData; + if (IS_STRING_ITEM(menu->fType) && menu->text) { + menu->text = + unicode + ? HEAP_strdupWtoA(SystemHeap, 0, + (LPWSTR) lpmii->dwTypeData) + : HEAP_strdupA(SystemHeap, 0, lpmii->dwTypeData); + } + } + if (lpmii->fMask & MIIM_STATE) + menu->fState = lpmii->fState; + + if (lpmii->fMask & MIIM_ID) + menu->wID = lpmii->wID; + + if (lpmii->fMask & MIIM_SUBMENU) + menu->hSubMenu = lpmii->hSubMenu; + + if (lpmii->fMask & MIIM_CHECKMARKS) + { + menu->hCheckBit = lpmii->hbmpChecked; + menu->hUnCheckBit = lpmii->hbmpUnchecked; + } + if (lpmii->fMask & MIIM_DATA) + menu->dwItemData = lpmii->dwItemData; + + debug_print_menuitem("SetMenuItemInfo32_common: ", menu, "\n"); + return TRUE; +} /********************************************************************** - * IsMenu32 (USER32.345) + * SetMenuItemInfo32A (USER32.490) */ -BOOL32 IsMenu32( HMENU32 hmenu ) +BOOL32 WINAPI SetMenuItemInfo32A(HMENU32 hmenu, UINT32 item, BOOL32 bypos, + const MENUITEMINFO32A *lpmii) { - LPPOPUPMENU menu; - if (!(menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR( hmenu ))) return FALSE; - return (menu->wMagic == MENU_MAGIC); + return SetMenuItemInfo32_common(MENU_FindItem(&hmenu, &item, bypos), + lpmii, FALSE); +} + +/********************************************************************** + * SetMenuItemInfo32W (USER32.491) + */ +BOOL32 WINAPI SetMenuItemInfo32W(HMENU32 hmenu, UINT32 item, BOOL32 bypos, + const MENUITEMINFO32W *lpmii) +{ + return SetMenuItemInfo32_common(MENU_FindItem(&hmenu, &item, bypos), + (const MENUITEMINFO32A*)lpmii, TRUE); +} + +/********************************************************************** + * SetMenuDefaultItem32 (USER32.488) + */ +BOOL32 WINAPI SetMenuDefaultItem32(HMENU32 hmenu, UINT32 item, BOOL32 bypos) +{ + MENUITEM *menu = MENU_FindItem(&hmenu, &item, bypos); + if (!menu) return FALSE; + debug_print_menuitem("SetMenuDefaultItem32: ", menu, "\n"); + fprintf(stdnimp, "SetMenuDefaultItem32 (0x%x,%d,%d), empty stub!\n", + hmenu, item, bypos); + return TRUE; +} + +/******************************************************************* + * InsertMenuItem16 (USER.441) + * + * FIXME: untested + */ +BOOL16 WINAPI InsertMenuItem16( HMENU16 hmenu, UINT16 pos, BOOL16 byposition, + const MENUITEMINFO16 *mii ) +{ + MENUITEMINFO32A miia; + + miia.cbSize = sizeof(miia); + miia.fMask = mii->fMask; + miia.dwTypeData = miia.dwTypeData; + miia.fType = mii->fType; + miia.fState = mii->fState; + miia.wID = mii->wID; + miia.hSubMenu = mii->hSubMenu; + miia.hbmpChecked = mii->hbmpChecked; + miia.hbmpUnchecked = mii->hbmpUnchecked; + miia.dwItemData = mii->dwItemData; + miia.cch = mii->cch; + if (IS_STRING_ITEM(miia.fType)) + miia.dwTypeData = PTR_SEG_TO_LIN(miia.dwTypeData); + return InsertMenuItem32A( hmenu, pos, byposition, &miia ); +} + + +/********************************************************************** + * InsertMenuItem32A (USER32.322) + */ +BOOL32 WINAPI InsertMenuItem32A(HMENU32 hMenu, UINT32 uItem, BOOL32 bypos, + const MENUITEMINFO32A *lpmii) +{ + MENUITEM *item = MENU_InsertItem(hMenu, uItem, bypos); + return SetMenuItemInfo32_common(item, lpmii, FALSE); +} + + +/********************************************************************** + * InsertMenuItem32W (USER32.323) + */ +BOOL32 WINAPI InsertMenuItem32W(HMENU32 hMenu, UINT32 uItem, BOOL32 bypos, + const MENUITEMINFO32W *lpmii) +{ + MENUITEM *item = MENU_InsertItem(hMenu, uItem, bypos); + return SetMenuItemInfo32_common(item, (const MENUITEMINFO32A*)lpmii, TRUE); } diff --git a/controls/scroll.c b/controls/scroll.c index d2371f1fce1..b8a3d4e3a44 100644 --- a/controls/scroll.c +++ b/controls/scroll.c @@ -756,8 +756,8 @@ void SCROLL_HandleScrollEvent( HWND32 hwnd, INT32 nBar, UINT32 msg, POINT32 pt) /*********************************************************************** * ScrollBarWndProc */ -LRESULT ScrollBarWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam, - LPARAM lParam ) +LRESULT WINAPI ScrollBarWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam, + LPARAM lParam ) { switch(message) { @@ -893,8 +893,8 @@ LRESULT ScrollBarWndProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam, /************************************************************************* * SetScrollInfo16 (USER.475) */ -INT16 SetScrollInfo16( HWND16 hwnd, INT16 nBar, const SCROLLINFO *info, - BOOL16 bRedraw ) +INT16 WINAPI SetScrollInfo16( HWND16 hwnd, INT16 nBar, const SCROLLINFO *info, + BOOL16 bRedraw ) { return (INT16)SetScrollInfo32( hwnd, nBar, info, bRedraw ); } @@ -903,8 +903,8 @@ INT16 SetScrollInfo16( HWND16 hwnd, INT16 nBar, const SCROLLINFO *info, /************************************************************************* * SetScrollInfo32 (USER32.500) */ -INT32 SetScrollInfo32( HWND32 hwnd, INT32 nBar, const SCROLLINFO *info, - BOOL32 bRedraw ) +INT32 WINAPI SetScrollInfo32( HWND32 hwnd, INT32 nBar, const SCROLLINFO *info, + BOOL32 bRedraw ) { SCROLLBAR_INFO *infoPtr; UINT32 new_flags; @@ -1007,7 +1007,7 @@ INT32 SetScrollInfo32( HWND32 hwnd, INT32 nBar, const SCROLLINFO *info, /************************************************************************* * GetScrollInfo16 (USER.476) */ -BOOL16 GetScrollInfo16( HWND16 hwnd, INT16 nBar, LPSCROLLINFO info ) +BOOL16 WINAPI GetScrollInfo16( HWND16 hwnd, INT16 nBar, LPSCROLLINFO info ) { return GetScrollInfo32( hwnd, nBar, info ); } @@ -1016,7 +1016,7 @@ BOOL16 GetScrollInfo16( HWND16 hwnd, INT16 nBar, LPSCROLLINFO info ) /************************************************************************* * GetScrollInfo32 (USER32.283) */ -BOOL32 GetScrollInfo32( HWND32 hwnd, INT32 nBar, LPSCROLLINFO info ) +BOOL32 WINAPI GetScrollInfo32( HWND32 hwnd, INT32 nBar, LPSCROLLINFO info ) { SCROLLBAR_INFO *infoPtr; @@ -1041,7 +1041,8 @@ BOOL32 GetScrollInfo32( HWND32 hwnd, INT32 nBar, LPSCROLLINFO info ) /************************************************************************* * SetScrollPos16 (USER.62) */ -INT16 SetScrollPos16( HWND16 hwnd, INT16 nBar, INT16 nPos, BOOL16 bRedraw ) +INT16 WINAPI SetScrollPos16( HWND16 hwnd, INT16 nBar, INT16 nPos, + BOOL16 bRedraw ) { return (INT16)SetScrollPos32( hwnd, nBar, nPos, bRedraw ); } @@ -1050,7 +1051,8 @@ INT16 SetScrollPos16( HWND16 hwnd, INT16 nBar, INT16 nPos, BOOL16 bRedraw ) /************************************************************************* * SetScrollPos32 (USER32.501) */ -INT32 SetScrollPos32( HWND32 hwnd, INT32 nBar, INT32 nPos, BOOL32 bRedraw ) +INT32 WINAPI SetScrollPos32( HWND32 hwnd, INT32 nBar, INT32 nPos, + BOOL32 bRedraw ) { SCROLLINFO info; SCROLLBAR_INFO *infoPtr; @@ -1069,7 +1071,7 @@ INT32 SetScrollPos32( HWND32 hwnd, INT32 nBar, INT32 nPos, BOOL32 bRedraw ) /************************************************************************* * GetScrollPos16 (USER.63) */ -INT16 GetScrollPos16( HWND16 hwnd, INT16 nBar ) +INT16 WINAPI GetScrollPos16( HWND16 hwnd, INT16 nBar ) { return (INT16)GetScrollPos32( hwnd, nBar ); } @@ -1078,7 +1080,7 @@ INT16 GetScrollPos16( HWND16 hwnd, INT16 nBar ) /************************************************************************* * GetScrollPos32 (USER32.284) */ -INT32 GetScrollPos32( HWND32 hwnd, INT32 nBar ) +INT32 WINAPI GetScrollPos32( HWND32 hwnd, INT32 nBar ) { SCROLLBAR_INFO *infoPtr; @@ -1090,8 +1092,8 @@ INT32 GetScrollPos32( HWND32 hwnd, INT32 nBar ) /************************************************************************* * SetScrollRange16 (USER.64) */ -void SetScrollRange16( HWND16 hwnd, INT16 nBar, INT16 MinVal, INT16 MaxVal, - BOOL16 bRedraw ) +void WINAPI SetScrollRange16( HWND16 hwnd, INT16 nBar, + INT16 MinVal, INT16 MaxVal, BOOL16 bRedraw ) { /* Invalid range -> range is set to (0,0) */ if ((INT32)MaxVal - (INT32)MinVal > 0x7fff) MinVal = MaxVal = 0; @@ -1102,8 +1104,8 @@ void SetScrollRange16( HWND16 hwnd, INT16 nBar, INT16 MinVal, INT16 MaxVal, /************************************************************************* * SetScrollRange32 (USER32.502) */ -BOOL32 SetScrollRange32( HWND32 hwnd, INT32 nBar, INT32 MinVal, INT32 MaxVal, - BOOL32 bRedraw ) +BOOL32 WINAPI SetScrollRange32( HWND32 hwnd, INT32 nBar, + INT32 MinVal, INT32 MaxVal, BOOL32 bRedraw ) { SCROLLINFO info; @@ -1153,7 +1155,8 @@ DWORD SCROLL_SetNCSbState(WND* wndPtr, int vMin, int vMax, int vPos, /************************************************************************* * GetScrollRange16 (USER.65) */ -BOOL16 GetScrollRange16( HWND16 hwnd, INT16 nBar, LPINT16 lpMin, LPINT16 lpMax) +BOOL16 WINAPI GetScrollRange16( HWND16 hwnd, INT16 nBar, + LPINT16 lpMin, LPINT16 lpMax) { INT32 min, max; BOOL16 ret = GetScrollRange32( hwnd, nBar, &min, &max ); @@ -1166,7 +1169,8 @@ BOOL16 GetScrollRange16( HWND16 hwnd, INT16 nBar, LPINT16 lpMin, LPINT16 lpMax) /************************************************************************* * GetScrollRange32 (USER32.285) */ -BOOL32 GetScrollRange32( HWND32 hwnd, INT32 nBar, LPINT32 lpMin, LPINT32 lpMax) +BOOL32 WINAPI GetScrollRange32( HWND32 hwnd, INT32 nBar, + LPINT32 lpMin, LPINT32 lpMax) { SCROLLBAR_INFO *infoPtr; @@ -1185,7 +1189,7 @@ BOOL32 GetScrollRange32( HWND32 hwnd, INT32 nBar, LPINT32 lpMin, LPINT32 lpMax) /************************************************************************* * ShowScrollBar16 (USER.267) */ -void ShowScrollBar16( HWND16 hwnd, INT16 nBar, BOOL16 fShow ) +void WINAPI ShowScrollBar16( HWND16 hwnd, INT16 nBar, BOOL16 fShow ) { ShowScrollBar32( hwnd, nBar, fShow ); } @@ -1194,7 +1198,7 @@ void ShowScrollBar16( HWND16 hwnd, INT16 nBar, BOOL16 fShow ) /************************************************************************* * ShowScrollBar32 (USER32.531) */ -BOOL32 ShowScrollBar32( HWND32 hwnd, INT32 nBar, BOOL32 fShow ) +BOOL32 WINAPI ShowScrollBar32( HWND32 hwnd, INT32 nBar, BOOL32 fShow ) { WND *wndPtr = WIN_FindWndPtr( hwnd ); @@ -1261,7 +1265,7 @@ BOOL32 ShowScrollBar32( HWND32 hwnd, INT32 nBar, BOOL32 fShow ) /************************************************************************* * EnableScrollBar16 (USER.482) */ -BOOL16 EnableScrollBar16( HWND16 hwnd, INT16 nBar, UINT16 flags ) +BOOL16 WINAPI EnableScrollBar16( HWND16 hwnd, INT16 nBar, UINT16 flags ) { return EnableScrollBar32( hwnd, nBar, flags ); } @@ -1270,7 +1274,7 @@ BOOL16 EnableScrollBar16( HWND16 hwnd, INT16 nBar, UINT16 flags ) /************************************************************************* * EnableScrollBar32 (USER32.170) */ -BOOL32 EnableScrollBar32( HWND32 hwnd, INT32 nBar, UINT32 flags ) +BOOL32 WINAPI EnableScrollBar32( HWND32 hwnd, INT32 nBar, UINT32 flags ) { SCROLLBAR_INFO *infoPtr; diff --git a/controls/static.c b/controls/static.c index 6a547e2da35..ecd4a02f89c 100644 --- a/controls/static.c +++ b/controls/static.c @@ -50,13 +50,17 @@ static HICON16 STATIC_SetIcon( WND *wndPtr, HICON16 hicon ) { HICON16 prevIcon; STATICINFO *infoPtr = (STATICINFO *)wndPtr->wExtra; + CURSORICONINFO *info = hicon?(CURSORICONINFO *) GlobalLock16( hicon ):NULL; if ((wndPtr->dwStyle & 0x0f) != SS_ICON) return 0; + if (hicon && !info) { + fprintf(stderr,"STATIC_SetIcon: huh? hicon!=0, but info=0???\n"); + return 0; + } prevIcon = infoPtr->hIcon; infoPtr->hIcon = hicon; if (hicon) { - CURSORICONINFO *info = (CURSORICONINFO *) GlobalLock16( hicon ); SetWindowPos32( wndPtr->hwndSelf, 0, 0, 0, info->nWidth, info->nHeight, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER ); GlobalUnlock16( hicon ); @@ -95,8 +99,8 @@ static HICON16 STATIC_LoadIcon( WND *wndPtr, LPCSTR name ) /*********************************************************************** * StaticWndProc */ -LRESULT StaticWndProc( HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, - LPARAM lParam ) +LRESULT WINAPI StaticWndProc( HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, + LPARAM lParam ) { LRESULT lResult = 0; WND *wndPtr = WIN_FindWndPtr(hWnd); diff --git a/controls/status.c b/controls/status.c index feef96c8406..0732664b95c 100644 --- a/controls/status.c +++ b/controls/status.c @@ -38,7 +38,8 @@ static STATUSWINDOWINFO *GetStatusInfo(HWND32 hwnd) /*********************************************************************** * DrawStatusText32A (COMCTL32.3) */ -void DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text, UINT32 style ) +void WINAPI DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text, + UINT32 style ) { RECT32 r, rt; int oldbkmode; @@ -435,8 +436,8 @@ SW_Paint(STATUSWINDOWINFO *self, HWND32 hwnd) return 0; } -LRESULT StatusWindowProc( HWND32 hwnd, UINT32 msg, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI StatusWindowProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { STATUSWINDOWINFO *self; @@ -480,8 +481,8 @@ LRESULT StatusWindowProc( HWND32 hwnd, UINT32 msg, /*********************************************************************** * CreateStatusWindow32A (COMCTL32.4) */ -HWND32 CreateStatusWindow32A( INT32 style, LPCSTR text, HWND32 parent, - UINT32 wid ) +HWND32 WINAPI CreateStatusWindow32A( INT32 style, LPCSTR text, HWND32 parent, + UINT32 wid ) { HWND32 ret; ATOM atom; diff --git a/controls/updown.c b/controls/updown.c new file mode 100644 index 00000000000..a3a75ef2c0f --- /dev/null +++ b/controls/updown.c @@ -0,0 +1,865 @@ +/* + * Updown control + * + * Copyright 1997 Dimitrie O. Paun + * + * TODO: + * - subclass the buddy window (in UPDOWN_SetBuddy) to process the + * arrow keys + * - I am not sure about the default values for the Min, Max, Pos + * (in the UPDOWN_INFO the fields: MinVal, MaxVal, CurVal) + * Testing: + * Not much. The following have not been tested at all: + * - horizontal arrows + * - listbox as buddy window + * - acceleration + * - base 16 + * - UDS_ALIGNLEFT, ~UDS_WRAP + * - integers with thousand separators. + * Even though the above list seems rather large, the control seems to + * 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. + */ + +#include +#include +#include +#include +#include "windows.h" +#include "winnls.h" +#include "syscolor.h" +#include "sysmetrics.h" +#include "updown.h" +#include "graphics.h" +#include "heap.h" +#include "win.h" +#include "stddebug.h" +/*#define DEBUG_UPDOWN*/ +#include "debug.h" + +/* Control configuration constants */ + +#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_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 */ + + +/* Work constants */ + +#define FLAG_INCR 0x01 +#define FLAG_DECR 0x02 +#define FLAG_MOUSEIN 0x04 +#define FLAG_CLICKED (FLAG_INCR | FLAG_DECR) + +#define TIMERID1 1 +#define TIMERID2 2 + +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); + +#define UPDOWN_GetInfoPtr(wndPtr) ((UPDOWN_INFO *)wndPtr->wExtra) + +/*********************************************************************** + * UPDOWN_InBounds + * Tests if a given value 'val' is between the Min&Max limits + */ +static BOOL32 UPDOWN_InBounds(WND *wndPtr, int val) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + + if(infoPtr->MaxVal > infoPtr->MinVal) + return (infoPtr->MinVal <= val) && (val <= infoPtr->MaxVal); + else + return (infoPtr->MaxVal <= val) && (val <= infoPtr->MinVal); +} + +/*********************************************************************** + * UPDOWN_OffsetVal + * Tests if we can change the current value by delta. If so, it changes + * it and returns TRUE. Else, it leaves it unchanged and returns FALSE. + */ +static BOOL32 UPDOWN_OffsetVal(WND *wndPtr, int delta) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + + /* check if we can do the modification first */ + if(!UPDOWN_InBounds(wndPtr, infoPtr->CurVal+delta)){ + if(wndPtr->dwStyle & UDS_WRAP) + delta += (delta < 0 ? -1 : 1) * + (infoPtr->MaxVal < infoPtr->MinVal ? -1 : 1) * + (infoPtr->MinVal - infoPtr->MaxVal) + + (delta < 0 ? 1 : -1); + else + return FALSE; + } + + infoPtr->CurVal += delta; + return TRUE; +} + +/*********************************************************************** + * UPDOWN_GetArrawRect + * wndPtr - pointer to the up-down wnd + * rect - will hold the rectangle + * incr - TRUE get the "increment" rect (up or right) + * FALSE get the "decrement" rect (down or left) + * + */ +static void UPDOWN_GetArrowRect(WND *wndPtr, RECT32 *rect, BOOL32 incr) +{ + int len; /* will hold the width or height */ + + GetClientRect32(wndPtr->hwndSelf, rect); + + if (wndPtr->dwStyle & UDS_HORZ) { + len = rect->right - rect->left; /* compute the width */ + if (incr) + rect->left = len/2; + else + rect->right = len/2; + } + else { + len = rect->bottom - rect->top; /* compute the height */ + if (incr) + rect->bottom = len/2; + else + rect->top = len/2; + } +} + +/*********************************************************************** + * UPDOWN_GetArrowFromPoint + * Returns the rectagle (for the up or down arrow) that contains pt. + * If it returns the up rect, it returns TRUE. + * If it returns the down rect, it returns FALSE. + */ +static int UPDOWN_GetArrowFromPoint(WND *wndPtr, RECT32 *rect, POINT32 pt) +{ + UPDOWN_GetArrowRect(wndPtr, rect, TRUE); + if(PtInRect32(rect, pt)) + return TRUE; + + UPDOWN_GetArrowRect(wndPtr, rect, FALSE); + return FALSE; +} + + +/*********************************************************************** + * UPDOWN_GetThousandSep + * Returns the thousand sep. If an error occurs, it returns ','. + */ +static char UPDOWN_GetThousandSep() +{ + char sep[2]; + + if(GetLocaleInfo32A(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, + sep, sizeof(sep)) != 1) + return ','; + + return sep[0]; +} + +/*********************************************************************** + * UPDOWN_GetBuddyInt + * Tries to read the pos from the buddy window and if it succeeds, + * it stores it in the control's CurVal + * returns: + * TRUE - if it read the integer from the buddy successfully + * FALSE - if an error occured + */ +static BOOL32 UPDOWN_GetBuddyInt(WND *wndPtr) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + char txt[20], sep, *src, *dst; + int newVal; + + if (!IsWindow32(infoPtr->Buddy)) + return FALSE; + + /*if the buddy is a list window, we must set curr index */ + if(WIDGETS_IsControl32(WIN_FindWndPtr(infoPtr->Buddy), BIC32_LISTBOX)){ + newVal = SendMessage32A(infoPtr->Buddy, LB_GETCARETINDEX32, 0, 0); + if(newVal < 0) + return FALSE; + } + else{ + /* we have a regural window, so will get the text */ + if (!GetWindowText32A(infoPtr->Buddy, txt, sizeof(txt))) + return FALSE; + + sep = UPDOWN_GetThousandSep(); + + /* now get rid of the separators */ + for(src = dst = txt; *src; src++) + if(*src != sep) + *dst++ = *src; + *dst = 0; + + /* try to convert the number and validate it */ + newVal = strtol(txt, &src, infoPtr->Base); + if(*src || !UPDOWN_InBounds(wndPtr, newVal)) + return FALSE; + + dprintf_updown(stddeb, "UpDown Ctrl: new value(%d) read from buddy " + "(old=%d)\n", newVal, infoPtr->CurVal); + } + + infoPtr->CurVal = newVal; + return TRUE; +} + + +/*********************************************************************** + * UPDOWN_SetBuddyInt + * Tries to set the pos to the buddy window based on current pos + * returns: + * TRUE - if it set the caption of the buddy successfully + * FALSE - if an error occured + */ +static BOOL32 UPDOWN_SetBuddyInt(WND *wndPtr) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + char txt1[20], sep; + int len; + + if (!IsWindow32(infoPtr->Buddy)) + return FALSE; + + dprintf_updown(stddeb, "UpDown Ctrl: set new value(%d) to buddy.\n", + infoPtr->CurVal); + + /*if the buddy is a list window, we must set curr index */ + if(WIDGETS_IsControl32(WIN_FindWndPtr(infoPtr->Buddy), BIC32_LISTBOX)){ + SendMessage32A(infoPtr->Buddy, LB_SETCURSEL32, infoPtr->CurVal, 0); + } + else{ /* Regural window, so set caption to the number */ + len = sprintf(txt1, (infoPtr->Base==16) ? "%X" : "%d", infoPtr->CurVal); + + sep = UPDOWN_GetThousandSep(); + + if (!(wndPtr->dwStyle & UDS_NOTHOUSANDS)) { + char txt2[20], *src = txt1, *dst = txt2; + if(len%3 > 0){ + strncpy(dst, src, len%3); + dst += len%3; + src += len%3; + } + for(len=0; *src; len++,src++){ + if(len%3==0) + *dst++ = sep; + *dst++ = *src++; + } + *dst = 0; /* null terminate it */ + strcpy(txt1, txt2); /* move it to the proper place */ + } + SetWindowText32A(infoPtr->Buddy, txt1); + } + + return TRUE; +} + +/*********************************************************************** + * UPDOWN_DrawArraw + * Draw the arrows for the up-down control. The arrows are drawn with the + * current pen and filled with the current brush. + * Input: + * hdc - the DC to draw on + * rect - rectangle holding the arrow + * incr - TRUE if we draw the "increment" arrow + * FALSE if we draw the "decrement" arrow + * pressed - TRUE if the arrow is pressed (clicked) + * FALSE if the arrow is not pressed (clicked) + * horz - TRUE if the arrow is horizontal + * FLASE if the arrow is vertical + */ +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]; + + 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-2left) + 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; + } + } + 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; + + if(incr){ + tmp = pts[2].y; + pts[2].y = pts[0].y; + pts[0].y = pts[1].y = tmp; + } + } + Polygon32(hdc, pts, 3); + +} + +/*********************************************************************** + * UPDOWN_Paint + * Draw the arrows. The background need not be erased. + */ +static void UPDOWN_Paint(WND *wndPtr) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + PAINTSTRUCT32 ps; + BOOL32 prssed; + RECT32 rect; + HDC32 hdc; + HBRUSH32 oldBrush; + + 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)); + + /* 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); + UPDOWN_DrawArrow(hdc, &rect, TRUE, prssed, wndPtr->dwStyle & UDS_HORZ); + + /* Draw the decr button */ + UPDOWN_GetArrowRect(wndPtr, &rect, FALSE); + prssed = (infoPtr->Flags & FLAG_DECR) && (infoPtr->Flags & FLAG_MOUSEIN); + DrawEdge32(hdc, &rect, prssed ? EDGE_SUNKEN : EDGE_RAISED, + BF_RECT | BF_SOFT | BF_MIDDLE); + UPDOWN_DrawArrow(hdc, &rect, FALSE, prssed, wndPtr->dwStyle & UDS_HORZ); + + /* clean-up */ + SelectObject32(hdc, oldBrush); + EndPaint32( wndPtr->hwndSelf, &ps ); +} + +/*********************************************************************** + * UPDOWN_SetBuddy + * Tests if 'hwndBud' is a valid window handle. If not, returns FALSE. + * Else, sets it as a new Buddy. + * Then, it should subclass the buddy + * If window has the UDS_ARROWKEYS, it subcalsses the buddy window to + * process the UP/DOWN arrow keys. + * If window has the UDS_ALIGNLEFT or UDS_ALIGNRIGHT style + * the size/pos of the buddy and the control are adjusted accordingly. + */ +static BOOL32 UPDOWN_SetBuddy(WND *wndPtr, HWND32 hwndBud) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + RECT32 budRect; /* new coord for the buddy */ + int x; /* new x position and width for the up-down */ + + /* Is is a valid bud? */ + if(!IsWindow32(hwndBud)) + return FALSE; + + if(wndPtr->dwStyle & UDS_ARROWKEYS){ + /* FIXME: we need to subclass the buddy to process the arrow keys. */ + fprintf(stderr, "UpDown Ctrl: we should subclass the buddy window!\n"); + } + + /* do we need to do any adjustments? */ + if(!(wndPtr->dwStyle & (UDS_ALIGNLEFT | UDS_ALIGNRIGHT))) + return TRUE; + + /* Get the rect of the buddy relative to its parent */ + GetWindowRect32(infoPtr->Buddy, &budRect); + MapWindowPoints32(HWND_DESKTOP, GetParent32(infoPtr->Buddy), + (POINT32 *)(&budRect.left), 2); + + /* now do the positioning */ + if(wndPtr->dwStyle & UDS_ALIGNRIGHT){ + budRect.right -= DEFAULT_WIDTH+DEFAULT_XSEP; + x = budRect.right+DEFAULT_XSEP; + } + else{ /* UDS_ALIGNLEFT */ + x = budRect.left; + budRect.left += DEFAULT_WIDTH+DEFAULT_XSEP; + } + + /* first adjust the buddy to accomodate the up/down */ + SetWindowPos32(infoPtr->Buddy, 0, budRect.left, budRect.top, + budRect.right - budRect.left, budRect.bottom - budRect.top, + SWP_NOACTIVATE|SWP_NOZORDER); + + /* now position the up/down */ + /* Since the UDS_ALIGN* flags were used, */ + /* we will pick the position and size of the window. */ + SetWindowPos32(wndPtr->hwndSelf,0,x,budRect.top-DEFAULT_ADDTOP,DEFAULT_WIDTH, + (budRect.bottom-budRect.top)+DEFAULT_ADDTOP+DEFAULT_ADDBOT, + SWP_NOACTIVATE|SWP_NOZORDER); + + return TRUE; +} + +/*********************************************************************** + * UPDOWN_DoAction + * + * This function increments/decrements the CurVal by the + * 'delta' amount according to the 'incr' flag + * It notifies the parent as required. + * It handles wraping and non-wraping correctly. + * It is assumed that delta>0 + */ +static void UPDOWN_DoAction(WND *wndPtr, int delta, BOOL32 incr) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + int old_val = infoPtr->CurVal; + NM_UPDOWN ni; + + dprintf_updown(stddeb, "UpDown Ctrl action: %s by %d\n", + incr ? "inc" : "dec", delta); + + /* check if we can do the modification first */ + delta *= (incr ? 1 : -1) * (infoPtr->MaxVal < infoPtr->MinVal ? -1 : 1); + if(!UPDOWN_OffsetVal(wndPtr, delta)) + return; + + /* so, if we can do the change, recompute delta and restore old value */ + delta = infoPtr->CurVal - old_val; + infoPtr->CurVal = old_val; + + /* We must notify parent now to obtain permission */ + ni.iPos = infoPtr->CurVal; + ni.iDelta = delta; + ni.hdr.hwndFrom = wndPtr->hwndSelf; + ni.hdr.idFrom = wndPtr->wIDmenu; + ni.hdr.code = UDN_DELTAPOS; + if(SendMessage32A(wndPtr->parent->hwndSelf, + WM_NOTIFY, wndPtr->wIDmenu, (LPARAM)&ni)) + return; /* we are not allowed to change */ + + /* Now adjust value with (maybe new) delta */ + if(!UPDOWN_OffsetVal(wndPtr, ni.iDelta)) + return; + + /* Now take care about our buddy */ + if(!IsWindow32(infoPtr->Buddy)) + return; /* Nothing else to do */ + + + if(wndPtr->dwStyle & UDS_SETBUDDYINT) + UPDOWN_SetBuddyInt(wndPtr); + + /* Also, notify it */ + /* FIXME: do we need to send the notification only if + we do not have the UDS_SETBUDDYINT style set? */ + SendMessage32A(infoPtr->Buddy, + wndPtr->dwStyle & UDS_HORZ ? WM_HSCROLL : WM_VSCROLL, + MAKELONG(incr ? SB_LINEUP : SB_LINEDOWN, infoPtr->CurVal), + wndPtr->hwndSelf); +} + +/*********************************************************************** + * UPDOWN_IsEnabled + * + * Returns TRUE if it is enabled as well as its buddy (if any) + * FALSE otherwise + */ +static BOOL32 UPDOWN_IsEnabled(WND *wndPtr) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + + if(wndPtr->dwStyle & WS_DISABLED) + return FALSE; + return IsWindowEnabled32(infoPtr->Buddy); +} + +/*********************************************************************** + * UPDOWN_CancelMode + * + * Deletes any timers, releases the mouse and does redraw if necessary. + * If the control is not in "capture" mode, it does nothing. + * If the control was not in cancel mode, it returns FALSE. + * If the control was in cancel mode, it returns TRUE. + */ +static BOOL32 UPDOWN_CancelMode(WND *wndPtr) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + + /* if not in 'capture' mode, do nothing */ + if(!(infoPtr->Flags & FLAG_CLICKED)) + return FALSE; + + KillTimer32(wndPtr->hwndSelf, TIMERID1); /* kill all possible timers */ + KillTimer32(wndPtr->hwndSelf, TIMERID2); + + if(GetCapture32() == wndPtr->hwndSelf) /* let the mouse go */ + ReleaseCapture(); /* if we still have it */ + + infoPtr->Flags = 0; /* get rid of any flags */ + UPDOWN_Paint(wndPtr); /* redraw the control just in case */ + + return TRUE; +} + +/*********************************************************************** + * UPDOWN_HandleMouseEvent + * + * Handle a mouse event for the updown. + * 'pt' is the location of the mouse event in client or + * windows coordinates. + */ +static void UPDOWN_HandleMouseEvent(WND *wndPtr, UINT32 msg, POINT32 pt) +{ + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + RECT32 rect; + int temp; + + switch(msg) + { + case WM_LBUTTONDOWN: /* Initialise mouse tracking */ + /* If we are already in the 'clicked' mode, then nothing to do */ + if(infoPtr->Flags & FLAG_CLICKED) + return; + + /* If the buddy is an edit, will set focus to it */ + if(WIDGETS_IsControl32(WIN_FindWndPtr(infoPtr->Buddy), BIC32_EDIT)) + SetFocus32(infoPtr->Buddy); + + /* Now see which one is the 'active' arrow */ + temp = UPDOWN_GetArrowFromPoint(wndPtr, &rect, pt); + + /* Update the CurVal if necessary */ + if(wndPtr->dwStyle & UDS_SETBUDDYINT) + UPDOWN_GetBuddyInt(wndPtr); + + /* Before we proceed, see if we can spin... */ + if(!(wndPtr->dwStyle & UDS_WRAP)) + if(( temp && infoPtr->CurVal==infoPtr->MaxVal) || + (!temp && infoPtr->CurVal==infoPtr->MinVal)) + return; + + /* Set up the correct flags */ + infoPtr->Flags = 0; + infoPtr->Flags |= temp ? FLAG_INCR : FLAG_DECR; + infoPtr->Flags |= FLAG_MOUSEIN; + + /* repaint the control */ + UPDOWN_Paint(wndPtr); + + /* process the click */ + UPDOWN_DoAction(wndPtr, 1, infoPtr->Flags & FLAG_INCR); + + /* now capture all mouse messages */ + SetCapture32(wndPtr->hwndSelf); + + /* and startup the first timer */ + SetTimer32(wndPtr->hwndSelf, TIMERID1, INITIAL_DELAY, 0); + break; + + case WM_MOUSEMOVE: + /* If we are not in the 'clicked' mode, then nothing to do */ + if(!(infoPtr->Flags & FLAG_CLICKED)) + return; + + /* save the flags to see if any got modified */ + temp = infoPtr->Flags; + + /* Now get the 'active' arrow rectangle */ + if (infoPtr->Flags & FLAG_INCR) + UPDOWN_GetArrowRect(wndPtr, &rect, TRUE); + else + UPDOWN_GetArrowRect(wndPtr, &rect, FALSE); + + /* Update the flags if we are in/out */ + if(PtInRect32(&rect, pt)) + infoPtr->Flags |= FLAG_MOUSEIN; + else{ + infoPtr->Flags &= ~FLAG_MOUSEIN; + if(accelIndex != -1) /* if we have accel info */ + accelIndex = 0; /* reset it */ + } + /* If state changed, redraw the control */ + if(temp != infoPtr->Flags) + UPDOWN_Paint(wndPtr); + break; + + default: + fprintf(stderr, "UpDown: Impossible case in proc " + "UPDOWN_HandleMouseEvent"); + } + +} + +/*********************************************************************** + * UpDownWndProc + */ +LRESULT WINAPI UpDownWindowProc(HWND32 hwnd, UINT32 message, WPARAM32 wParam, + LPARAM lParam) +{ + WND *wndPtr = WIN_FindWndPtr(hwnd); + UPDOWN_INFO *infoPtr = UPDOWN_GetInfoPtr(wndPtr); + int temp; + + switch(message) + { + case WM_CREATE: + /* initialize the info struct */ + infoPtr->AccelCount=0; infoPtr->AccelVect=0; + infoPtr->CurVal=0; infoPtr->MinVal=0; infoPtr->MaxVal=100; /*FIXME*/ + infoPtr->Base = 10; /* Default to base 10 */ + infoPtr->Buddy = 0; /* No buddy window yet */ + infoPtr->Flags = 0; /* And no flags */ + + /* Do we pick the buddy win ourselves? */ + if(wndPtr->dwStyle & UDS_AUTOBUDDY) + UPDOWN_SetBuddy(wndPtr, GetWindow32(wndPtr->hwndSelf, GW_HWNDPREV)); + + dprintf_updown(stddeb, "UpDown Ctrl creation, hwnd=%04x\n", hwnd); + break; + + case WM_DESTROY: + if(infoPtr->AccelVect) + free(infoPtr->AccelVect); + dprintf_updown(stddeb, "UpDown Ctrl destruction, hwnd=%04x\n", hwnd); + break; + + case WM_ENABLE: + if(wndPtr->dwStyle & WS_DISABLED) + UPDOWN_CancelMode(wndPtr); + UPDOWN_Paint(wndPtr); + break; + + case WM_TIMER: + /* if initial timer, kill it and start the repeat timer */ + if(wParam == TIMERID1){ + KillTimer32(hwnd, TIMERID1); + /* if no accel info given, used default timer */ + if(infoPtr->AccelCount==0 || infoPtr->AccelVect==0){ + accelIndex = -1; + temp = REPEAT_DELAY; + } + else{ + accelIndex = 0; /* otherwise, use it */ + temp = infoPtr->AccelVect[accelIndex].nSec * 1000 + 1; + } + SetTimer32(hwnd, TIMERID2, temp, 0); + } + + /* now, if the mouse is above us, do the thing...*/ + if(infoPtr->Flags & FLAG_MOUSEIN){ + temp = accelIndex==-1 ? 1 : infoPtr->AccelVect[accelIndex].nInc; + UPDOWN_DoAction(wndPtr, temp, infoPtr->Flags & FLAG_INCR); + + if(accelIndex!=-1 && accelIndex < infoPtr->AccelCount-1){ + KillTimer32(hwnd, TIMERID2); + accelIndex++; /* move to the next accel info */ + temp = infoPtr->AccelVect[accelIndex].nSec * 1000 + 1; + /* make sure we have at least 1ms intervals */ + SetTimer32(hwnd, TIMERID2, temp, 0); + } + } + break; + + case WM_CANCELMODE: + UPDOWN_CancelMode(wndPtr); + break; + + case WM_LBUTTONUP: + if(!UPDOWN_CancelMode(wndPtr)) + break; + /*If we released the mouse and our buddy is an edit */ + /* we must select all text in it. */ + if(WIDGETS_IsControl32(WIN_FindWndPtr(infoPtr->Buddy), BIC32_EDIT)) + SendMessage32A(infoPtr->Buddy, EM_SETSEL32, 0, MAKELONG(0, -1)); + break; + + case WM_LBUTTONDOWN: + case WM_MOUSEMOVE: + if(UPDOWN_IsEnabled(wndPtr)){ + POINT32 pt; + CONV_POINT16TO32( (POINT16 *)&lParam, &pt ); + UPDOWN_HandleMouseEvent( wndPtr, message, pt ); + } + break; + + case WM_KEYDOWN: + if((wndPtr->dwStyle & UDS_ARROWKEYS) && UPDOWN_IsEnabled(wndPtr)){ + switch(wParam){ + case VK_UP: + case VK_DOWN: + UPDOWN_GetBuddyInt(wndPtr); + UPDOWN_DoAction(wndPtr, 1, wParam==VK_UP); + break; + } + } + break; + + case WM_PAINT: + UPDOWN_Paint(wndPtr); + break; + + case UDM_GETACCEL: + if (wParam==0 && lParam==0) /*if both zero, */ + return infoPtr->AccelCount; /*just return the accel count*/ + if (wParam || lParam){ + UNKNOWN_PARAM(UDM_GETACCEL, wParam, lParam); + return 0; + } + temp = min(infoPtr->AccelCount, wParam); + memcpy((void *)lParam, infoPtr->AccelVect, temp*sizeof(UDACCEL)); + return temp; + + case UDM_SETACCEL: + dprintf_updown(stddeb, "UpDown Ctrl new accel info, hwnd=%04x\n", hwnd); + if(infoPtr->AccelVect){ + free(infoPtr->AccelVect); + infoPtr->AccelCount = 0; + infoPtr->AccelVect = 0; + } + if(wParam==0) + return TRUE; + infoPtr->AccelVect = malloc(wParam*sizeof(UDACCEL)); + if(infoPtr->AccelVect==0) + return FALSE; + memcpy(infoPtr->AccelVect, (void*)lParam, wParam*sizeof(UDACCEL)); + return TRUE; + + case UDM_GETBASE: + if (wParam || lParam) + UNKNOWN_PARAM(UDM_GETBASE, wParam, lParam); + return infoPtr->Base; + + case UDM_SETBASE: + dprintf_updown(stddeb, "UpDown Ctrl new base(%d), hwnd=%04x\n", + wParam, hwnd); + if ( !(wParam==10 || wParam==16) || lParam) + UNKNOWN_PARAM(UDM_SETBASE, wParam, lParam); + if (wParam==10 || wParam==16){ + temp = infoPtr->Base; + infoPtr->Base = wParam; + return temp; /* return the prev base */ + } + break; + + case UDM_GETBUDDY: + if (wParam || lParam) + UNKNOWN_PARAM(UDM_GETBUDDY, wParam, lParam); + return infoPtr->Buddy; + + case UDM_SETBUDDY: + if (lParam) + UNKNOWN_PARAM(UDM_SETBUDDY, wParam, lParam); + temp = infoPtr->Buddy; + infoPtr->Buddy = wParam; + UPDOWN_SetBuddy(wndPtr, wParam); + dprintf_updown(stddeb, "UpDown Ctrl new buddy(%04x), hwnd=%04x\n", + infoPtr->Buddy, hwnd); + return temp; + + case UDM_GETPOS: + if (wParam || lParam) + UNKNOWN_PARAM(UDM_GETPOS, wParam, lParam); + temp = UPDOWN_GetBuddyInt(wndPtr); + return MAKELONG(infoPtr->CurVal, temp ? 0 : 1); + + case UDM_SETPOS: + if (wParam || HIWORD(lParam)) + UNKNOWN_PARAM(UDM_GETPOS, wParam, lParam); + temp = SLOWORD(lParam); + dprintf_updown(stddeb, "UpDown Ctrl new value(%d), hwnd=%04x\n", + temp, hwnd); + if(!UPDOWN_InBounds(wndPtr, temp)){ + if(temp < infoPtr->MinVal) + temp = infoPtr->MinVal; + if(temp > infoPtr->MaxVal) + temp = infoPtr->MaxVal; + } + wParam = infoPtr->CurVal; /* save prev value */ + infoPtr->CurVal = temp; /* set the new value */ + if(wndPtr->dwStyle & UDS_SETBUDDYINT) + UPDOWN_SetBuddyInt(wndPtr); + return wParam; /* return prev value */ + + case UDM_GETRANGE: + if (wParam || lParam) + UNKNOWN_PARAM(UDM_GETRANGE, wParam, lParam); + return MAKELONG(infoPtr->MaxVal, infoPtr->MinVal); + + case UDM_SETRANGE: + if (wParam) + UNKNOWN_PARAM(UDM_SETRANGE, wParam, lParam); /* we must have: */ + infoPtr->MaxVal = SLOWORD(lParam); /* UD_MINVAL <= Max <= UD_MAXVAL */ + infoPtr->MinVal = SHIWORD(lParam); /* UD_MINVAL <= Min <= UD_MAXVAL */ + /* |Max-Min| <= UD_MAXVAL */ + dprintf_updown(stddeb, "UpDown Ctrl new range(%d to %d), hwnd=%04x\n", + infoPtr->MinVal, infoPtr->MaxVal, hwnd); + break; + + default: + if (message >= WM_USER) + fprintf( stderr, "UpDown Ctrl: unknown msg %04x wp=%04x lp=%08lx\n", + message, wParam, lParam ); + return DefWindowProc32A( hwnd, message, wParam, lParam ); + } + + return 0; +} + +/*********************************************************************** + * CreateUpDownControl (COMCTL32.14) + */ +HWND32 WINAPI CreateUpDownControl( DWORD style, INT32 x, INT32 y, + INT32 cx, INT32 cy, HWND32 parent, + INT32 id, HINSTANCE32 inst, HWND32 buddy, + INT32 maxVal, INT32 minVal, INT32 curVal ) +{ + HWND32 hUD = CreateWindow32A(UPDOWN_CLASS32A, 0, style, x, y, cx, cy, + parent, id, inst, 0); + if(hUD){ + SendMessage32A(hUD, UDM_SETBUDDY, buddy, 0); + SendMessage32A(hUD, UDM_SETRANGE, 0, MAKELONG(maxVal, minVal)); + SendMessage32A(hUD, UDM_SETPOS, 0, MAKELONG(curVal, 0)); + } + + return hUD; +} diff --git a/controls/widgets.c b/controls/widgets.c index 20fe5a5ecd8..c8b9990e603 100644 --- a/controls/widgets.c +++ b/controls/widgets.c @@ -12,6 +12,7 @@ #include "static.h" #include "status.h" #include "scroll.h" +#include "updown.h" #include "desktop.h" #include "mdi.h" #include "gdi.h" @@ -20,18 +21,18 @@ /* Window procedures */ -extern LRESULT EditWndProc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ); -extern LRESULT ComboWndProc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ); -extern LRESULT ComboLBWndProc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ); -extern LRESULT ListBoxWndProc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ); -extern LRESULT PopupMenuWndProc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ); -extern LRESULT IconTitleWndProc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ); +extern LRESULT WINAPI EditWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); +extern LRESULT WINAPI ComboWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); +extern LRESULT WINAPI ComboLBWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); +extern LRESULT WINAPI ListBoxWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); +extern LRESULT WINAPI PopupMenuWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); +extern LRESULT WINAPI IconTitleWndProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); /* Win16 class info */ @@ -102,6 +103,8 @@ 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 } }; #define NB_COMMON_CONTROLS32 \ @@ -160,7 +163,7 @@ BOOL32 WIDGETS_Init(void) /*********************************************************************** * InitCommonControls (COMCTL32.15) */ -void InitCommonControls(void) +void WINAPI InitCommonControls(void) { int i; char name[30]; diff --git a/debugger/dbg.y b/debugger/dbg.y index cc6d35dcaa4..39541c15196 100644 --- a/debugger/dbg.y +++ b/debugger/dbg.y @@ -504,8 +504,10 @@ static void DEBUG_Main( int signal ) DEBUG_SilentBackTrace(); } - if( signal != SIGTRAP ) - { + if ((signal != SIGTRAP) || + (dbg_exec_mode == EXEC_STEPI_OVER) || + (dbg_exec_mode == EXEC_STEPI_INSTR)) + { /* Show where we crashed */ curr_frame = 0; DEBUG_PrintAddress( &addr, dbg_mode, TRUE ); @@ -515,7 +517,7 @@ static void DEBUG_Main( int signal ) DEBUG_Disasm( &addr, TRUE ); fprintf(stderr,"\n"); } - } + } ret_ok = 0; do diff --git a/documentation/fonts b/documentation/fonts index 00ef738b06a..32ac06c329c 100644 --- a/documentation/fonts +++ b/documentation/fonts @@ -2,7 +2,7 @@ How To Convert Windows Fonts ============================ -If you have access to Windows installation you should use +If you have access to a Windows installation you should use fnt2bdf utility (found in the 'tools)' directory to convert bitmap fonts (VGASYS.FON, SSERIFE.FON, and SERIFE.FON) into the format that X Window System can recognize. @@ -21,18 +21,21 @@ Step 4. Run 'mkfontdir' for the directory you copied fonts to. If you are already in X you should run 'xset fp rehash' to make X server aware of the new fonts. -Step 5. Edit wine.conf file to remove aliases for the fonts +Step 5. Edit WINE.CONF file to remove aliases for the fonts you've just installed. -Wine can get by without these fonts but 'the look and feel' -will be quite different. Also, some applications try to load -their custom fonts on the fly (WinWord 6.0) and since Wine does +WINE can get by without these fonts but 'the look and feel' +may be quite different. Also, some applications try to load +their custom fonts on the fly (WinWord 6.0) and since WINE does not implement this yet it instead prints out something like; -STUB: AddFontResource( somefile.FON ) +STUB: AddFontResource( SOMEFILE.FON ) You can convert this file too. Note that .FON file may not hold -any bitmap fonts and fnt2bdf will fail if this is the case. +any bitmap fonts and fnt2bdf will fail if this is the case. Also +note that although the above message will not disappear WINE will +work around the problem by using the font you extracted from the +SOMEFILE.FON. What to do with TrueType fonts? There are several commercial font tools that can convert them to the Type1 format but the @@ -44,53 +47,75 @@ However, there is a possibility of the native TrueType support via FreeType renderer in the future (hint, hint :-) -WINE.CONF And Font Mapper -========================= +How To Add Font Aliases To WINE.CONF +==================================== Many Windows applications assume that fonts included in original Windows 3.1 -distribution (Arial, Times New Roman, MS Sans Serif, etc.) are always present. -In order to make font mapper choose a closely related font you can add aliases -to the [fonts] section. +distribution are always present. By default Wine creates a number of aliases +that map them on the existing X fonts: + +Windows font ...is mapped to... X font + +"MS Sans Serif" -> "-adobe-helvetica-" +"MS Serif" -> "-bitstream-charter-" +"Times New Roman" -> "-adobe-times-" +"Arial" -> "-adobe-helvetica-" + +There is no default alias for the "System" font. Also, no aliases are +created for the fonts that applications install at runtime. The recommended +way to deal with this problem is to convert the missing font (see above). +If it proves impossible, like in the case with TrueType fonts, you can force +the font mapper to choose a closely related X font by adding an alias to the +[fonts] section. Make sure that the X font actually exists (with xfontsel +tool). AliasN = [Windows font], [X font] <, optional "mask X font" flag> Example: -Alias0 = System, --international-, mask -Alias1 = Arial, -adobe-helvetica- -Alias2 = Times New Roman, -adobe-times- +Alias0 = System, --international-, subst +Alias1 = ... ... Comments: - There must be no gaps in the sequence {0, ..., N} otherwise all aliases +* There must be no gaps in the sequence {0, ..., N} otherwise all aliases after the first gap won't be read. - Usually font mapper translates X font names into font names visible to +* Usually font mapper translates X font names into font names visible to Windows programs in the following fashion: - X font Converted name + X font ...will show up as... Extracted name - -adobe-helvetica-... "Helvetica" - -adobe-utopia-... "Utopia" - -misc-fixed-... "Fixed" + --international-... -> "International" + -adobe-helvetica-... -> "Helvetica" + -adobe-utopia-... -> "Utopia" + -misc-fixed-... -> "Fixed" -... - -sony-fixed-... "Sony Fixed" (already have "Fixed") + -sony-fixed-... -> "Sony Fixed" -... - Only converted names appear in the font selection dialogs. However, - if there is an alias with the "mask" flag set converted name will be - replaced by this alias. + Note that since -misc-fixed- and -sony-fixed- are different fonts + Wine modified the second extracted name to make sure Windows programs + can distinguish them because only extracted names appear in the font + selection dialogs. + +* "Masking" alias replaces the original extracted name so that in the + example case we will have the following mapping: - --international- "System" + --international- -> "System" - Nonmasking aliases are translated only when program asks for a font - with the name that matches an alias. + "Nonmasking" aliases are transparent to the user and they do not + replace extracted names. - If you do not have an access to Windows fonts mentioned in the first - paragraph you should try to substitute them with similar X fonts. + Wine discards an alias when it sees that the native X font is + available. + +* If you do not have access to Windows fonts mentioned in the first + paragraph you should try to substitute the "System" font with + nonmasking alias. 'xfontsel' will show you the fonts available to + X. Alias.. = System, ...bold font without serifs - Alias.. = MS Sans Serif, ...helvetica-like font Also, some Windows applications request fonts without specifying the typeface name of the font. Font table starts with Arial in most Windows @@ -106,15 +131,16 @@ Comments: It is better to have a scalable font family (bolds and italics included) as the default choice because mapper checks all available fonts until requested height and other attributes match perfectly or the end of the - font table is reached. + font table is reached. Typical X installations have scalable fonts in + the ../fonts/Type1 and ../fonts/Speedo directories. -Cached Font Metrics -=================== +How To Manage Cached Font Metrics +================================= WINE stores detailed information about available fonts in the ~/.wine/.cachedmetrics file. You can copy it elsewhere and add this entry to the [fonts] section -in the WINE.CONF: +in your WINE.CONF: FontMetrics = @@ -122,3 +148,27 @@ If WINE detects changes in the X font configuration it will rebuild font metrics from scratch and then it will overwrite ~/.wine/.cachedmetrics with the new information. This process can take a while. + +Too Small Or Too Large Fonts +============================ + +Windows programs may ask WINE to render a font with the height specified +in points. However, point-to-pixel ratio depends on the real physical size +of your display (15", 17", etc...). X tries to provide an estimate of that +but it can be quite different from the actual size. You can change this +ratio by adding the following entry to the [fonts] section: + +Resolution = + +In general, higher numbers give you larger fonts. Try to experiment with +values in the 60 - 120 range. 96 is a good starting point. + + +"FONT_Init: failed to load ..." Messages On Startup +=================================================== + +The most likely cause is a broken fonts.dir file in one of your font +directories. You need to rerun 'mkfontdir' to rebuild this file. Read +its manpage for more information. + + diff --git a/documentation/wine.texinfo b/documentation/wine.texinfo index a530871e105..1395c61db6c 100644 --- a/documentation/wine.texinfo +++ b/documentation/wine.texinfo @@ -45,12 +45,14 @@ the section entitled ``License, Warranty, and Authors of Wine''. @sp 4 FIXME: UNIX and POSIX trademarks. @* -DOS @* X11 @* -MS-Windows, Windows-NT, Windows 95 are registered trademarks of -Microsoft Corp. Postscript is a registered trademark of Adobe Systems -Inc. All other product names mentioned herein are the trademarks of -their respective owners. +Microsoft, Windows, MS-Windows, Windows-NT, Windows 95, and MS-DOS are +registered trademarks of Microsoft Corporation. +NT is a trademark of Northern Telecom Limited. +C++Builder is a trademark of Borland International, Inc. +Postscript is a registered trademark of Adobe Systems Inc. +Other trademarks are the property of their respective owners, which may +be registered in certain jurisdictions. @end ifinfo @c begin chapters on right pages @@ -60,7 +62,7 @@ their respective owners. @sp 10 @center @titlefont{The Wine Reference Manual} -@center Edition 0.0.2, 21 July 1997 +@center Edition 0.0.3, 14 August 1997 @c The following two commands start the copyright page. @@ -81,10 +83,14 @@ the section entitled ``License, Warranty, and Authors of Wine''. @sp 4 FIXME: UNIX and POSIX trademarks. @* -MS-Windows, Windows-NT, Windows 95 are registered trademarks of -Microsoft Corp. Postscript is a registered trademark of Adobe Systems -Inc. All other product names mentioned herein are the trademarks of -their respective owners. +X11 @* +Microsoft, Windows, MS-Windows, Windows-NT, Windows 95, and MS-DOS are +registered trademarks of Microsoft Corporation. +NT is a trademark of Northern Telecom Limited. +C++Builder is a trademark of Borland International, Inc. +Postscript is a registered trademark of Adobe Systems Inc. +Other trademarks are the property of their respective owners, which may +be registered in certain jurisdictions. @end titlepage @@ -95,12 +101,12 @@ their respective owners. @c Edit this macro manually in the above parts of the document @macro winemanualversion -0.0.2 +0.0.3 @end macro @c Edit this macro manually in the above parts of the document @macro winemanualdate -21 July 1997 +14 August 1997 @end macro @c Edit this macro manually into the TeX titlepage @@ -135,6 +141,11 @@ WIN16 Windows NT @end macro +@c FIXME: automatical trademark reference +@macro WINNT40 +Windows NT 4.0 +@end macro + @c FIXME: automatical trademark reference @macro WIN95 Windows 95 @@ -409,12 +420,12 @@ You should consult the files @file{README}, @file{ANNOUNCE}, @file{RELEASE-NOTES}, @file{BUGS}, @file{LICENSE}, and @file{WARRANTY}, in the root directory of the Wine distribution. -The Wine FAQ, available from -@url{ftp://ftp.asgardpro.com/wine/dave/Wine.FAQ}, -@url{ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/Wine.FAQ}, -@url{ftp://rtfm.mit.edu/pub/usenet-by-group/comp.emulators.ms-windows.wine/WINE_(WINdows_Emulator)_Frequently_Asked_Questions}, -@url{ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/Wine.FAQ}, -@url{http://www.asgardpro.com/wine/index.html}, +The Wine FAQ, available from @* +@url{ftp://ftp.asgardpro.com/wine/dave/Wine.FAQ}, @* +@url{ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/Wine.FAQ}, @* +@url{ftp://rtfm.mit.edu/pub/usenet-by-group/comp.emulators.ms-windows.wine/WINE_(WINdows_Emulator)_Frequently_Asked_Questions}, @* +@url{ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/Wine.FAQ}, @* +@url{http://www.asgardpro.com/wine/index.html}, @* gives answer to a lot of questions. The Wine USENET newsgroup is interesting for developers. It discusses technical @@ -702,8 +713,10 @@ This is not present in the @mswindows{} API. (Wine value: 0x0008). The file is a directory. (Wine value: 0x0010). @end defvr @defvr_cw32 FILE_ATTRIBUTE_ARCHIVE -The file is an archive file. All non-directory files are reported by Wine -to have this attribute. (Wine value: 0x0020). +The file is an archive file. Currently, all non-directory files are +reported by Wine to have this attribute. This attribute is normally set +by @mswindows{} to indicate that a file is to be archived; when the file +is archived, the flag is cleared. (Wine value: 0x0020). @end defvr @defvr_cw32 FILE_ATTRIBUTE_NORMAL The file does not have any other attributes set. This value must be used @@ -948,7 +961,21 @@ variable by specifying its name or its ordinal. Although reference by name is the common usage, some program parts (notably DLL's themselves) sometimes refer to DLL entries by ordinal. Therefore, the ordinals cannot be chosen arbitrarily. -@* FIXME: is that correct? + +Regular programs that are compiled and linked against @mswindows{} DLL's +will import DLL functions by name. This is therefore the default +behaviour. Most DLL functions will be imported by name in all cases. +Apparently, the @WIN32{} DLL's even show some difference in the mapping +of functions and ordinals on @WINNT{} and @WIN95{}. For most DLL +functions, the ordinal number will not matter. + +There are some exceptions to that. Notable the KERNEL32 ordinals below +100 are (presently) unnamed and undocumented functions which can only be +imported by ordinal. These functions are called by some @mswindows{} +programs. Also the @file{shell32.dll} functions are reported to be +imported by ordinal in some other DLL's. + +@xref{Getting information on the API}, for sources of further information. @node Spec file header, Variable entry points, Ordinals, The spec files @subsubsection The header of a @file{.spec}-file @@ -1034,7 +1061,8 @@ A @WIN16{} function that returns a 32 bit value. @item register A function using CPU registers to pass arguments. @item stdcall -A normal @WIN32{} function. +A normal @WIN32{} function. @xref{Investigating the undocumented API}, +for an explanation of the stdcall calling convention. @item cdecl A @WIN32{} function using the C calling conventions. (This is presently only used for the built-in functions of the C runtime system). @@ -1097,6 +1125,9 @@ the called function will be passed a pointer to the first arg; in See the @code{wsprintf}* functions in @file{user.spec} and @file{user32.spec} for an example. +Sometimes it is not known how many arguments an undocumented DLL +function takes. @xref{Getting information on the API}, for some hints on +how to proceed in such a case. @node Special entries, , Function entry points, The spec files @subsubsection Special entries of @file{.spec}-files @@ -1132,8 +1163,10 @@ should do nothing but return a value. @var{ORDINAL} is replaced by the ordinal number corresponding to the function. @var{ARGLENGTH} is the number of bytes that need to be removed -from the stack before returning to the caller. @var{RETVALUE} is the -return value which will be passed back to the caller. +from the stack before returning to the caller. @xref{Investigating the +undocumented API}, for an explanation of the stdcall calling convention. +@var{RETVALUE} is the return value which will be passed back to the +caller. @strong{Extern ordinals} @@ -1182,6 +1215,10 @@ If you are new to Wine and want to support this project, here are some suggestions. @menu +* Getting information on the API:: Official and unofficial sources + of information on the @WIN32{} API. +* Investigating the undocumented API:: You can find out some API + information on your own. * Implementing an API type:: How to implement a data type of the API (a checklist). * Implementing an API function:: How to implement one function @@ -1198,9 +1235,268 @@ some suggestions. @xref{Debugging}, for advice on how to debug Wine. @xref{Applying patches}, for instructions on applying patches. -FIXME: what is most urgently needed -@node Implementing an API type, Implementing an API function, , The Wine Project +@node Getting information on the API, Investigating the undocumented API, , The Wine Project +@section Official and unofficial documentation on the @mswindows{} API +@cindex documentation of API functions +@cindex undocumented API functions + + +@strong{Official documentation} + +For documentation on @WIN32{} API functions, you might try one of these +sources: + +@itemize @bullet + +@item +There is a free online version of the MSDN library (including +documentation for the @WIN32{} API) on +@url{http://www.microsoft.com/msdn/}. + +@item +The @WINNT{} DDK gives information about some kernel (``executive'') +routines. Some of the function documentation might also apply to user +accessible DLL's. +@end itemize + +@strong{Unofficial documentation} + +Not all of the @WIN32{} API is well documented. Some functions are +obscured, and undocumented. @xref{Ordinals}, for information about +undocumented functions imported by ordinal. Getting to know what these +functions do can be tiresome and tedious. Here is a quote from a +news posting concerning two books that might help: +@c From: vischne@ibm.net-nospam (root) +@c Subject: Re: Functions +@c Newsgroups: comp.emulators.ms-windows.wine +@c Date: 24 Jul 97 16:45:11 GMT +@c Organization: The Light +@c NNTP-Posting-Host: 129.37.246.203 +@c Message-ID: <33d78697.0@news3.ibm.net> + +@quotation +Well actually, there are at least _two_ books that address these problems. +One is by Matt Pietrek, ``Windows 95 System Programming Secrets'', which +gives some auxiliary programs for helping ferret out the information, and +the other is by Shulman, ``Undocumented Windows 95''. +@end quotation + +@xref{Ordinals}, for some notes on undocumented kernel functions. + +@itemize @bullet + +@item +@cindex book on undocumented API features by Pietrik +``Windows 95 System Programming Secrets'' @* +by Matt Pietrek @* +Book & Disk Edition @* +Paperback, 778 pages @* +Published by IDG Books Worldwide @* +Publication date: November 1, 1995 @* +Dimensions (in inches): 9.25 x 7.42 x 2.06 @* +ISBN: 1568843186 @* + +@item +@cindex book on undocumented API features by Schulman +``Undocumented Windows; A Programmers Guide +to Reserved Microsoft Windows API Functions'' @* +by Andrew Schulman @* +Paperback, 715 pages @* +Published by Addison-Wesley Pub Co @* +Publication date: February 1, 1994 @* +Dimensions (in inches): 9.11 x 7.37 x 1.53 @* +ISBN: 0201608340 @* + +@item +More books on these topics (including Schulman and Pietrik): @* +@url{http://www.sonic.net/~undoc/bookstore.html} + +@item +More details about calling undocumented functions can be found at +@url{http://ftp.uni-mannheim.de/info/OReilly/windows/win95.update/dirty.html}. + +@item +In 1993 Dr. Dobbs Journal published a column called ``Undocumented +Corner''. +@item +You might want to check out BYTE from December 1983 as well. +@* FIXME: is that to be taken seriously? +@item +And you might try to find out something on your own. @xref{Investigating +the undocumented API}, for details. +@end itemize + +But, all in all, @url{news:comp.emulators.ms-windows.wine} says +@c From: dacut@henry.ece.cmu.edu (David A. Cuthbert) +@c Subject: Re: Getting Internet Explorer to work +@c Newsgroups: comp.emulators.ms-windows.wine +@c Date: 24 Jul 1997 03:10:30 GMT +@c Organization: Electrical & Computer Engineering, Carnegie Mellon University +@c Reply-To: henry.ece.cmu.edu!dacut +@c Message-ID: <5r6h36$86c@fs7.ece.cmu.edu> +@c NNTP-Posting-Host: henry.ece.cmu.edu + +@quotation +Unfortunately, short of getting something like NuMega's SoftIce, I +don't think there's a ``good'' reference on the mystery <100 ordinals in +KERNEL32.DLL. +@end quotation + + +@node Investigating the undocumented API, Implementing an API type, Getting information on the API, The Wine Project +@section Investigating the undocumented API +@cindex undocumented API investigation +@cindex parameters of undocumented API functions +@cindex stdcall calling convention +@cindex C calling convention +@cindex API function parameters investigation +@cindex stack handling under stdcall calling + +Besides reading the documentation in @ref{Getting information on the API}, +you can find out some properties of API functions on your own. + +Sometimes it is not known how many arguments an undocumented DLL +function takes. Here is a text from a news posting that gives some +hints on how you might proceed in this case. + +@c The following text is closely quoted from: +@c From: dacut@henry.ece.cmu.edu (David A. Cuthbert) +@c Subject: Win32 stub functions (Claus Fischer, please read) +@c Newsgroups: comp.emulators.ms-windows.wine +@c Date: 7 Aug 1997 22:33:09 GMT +@c Organization: Electrical & Computer Engineering, Carnegie Mellon University +@c Reply-To: henry.ece.cmu.edu!dacut +@c Message-ID: <5sdif5$qt3@fs7.ece.cmu.edu> + +The problem with implementing stubs for @WIN32{} functions is that it is +not sufficient to return a default value (usually 0) and leave the +stack the way we found it. For most @WIN32{} functions -- those that use +the @dfn{stdcall} calling convention -- the arguments sent to the function +are removed from the stack. + +Some background: On the i386 class of machines, stack entries are +usually dword (4 bytes) in size, little-endian. The stack grows +downward in memory. The stack pointer, maintained in the @samp{esp} +register, points to the last valid entry; thus, the operation of +pushing a value onto the stack involves decrementing @samp{esp} and then +moving the value into the memory pointed to by esp (i.e., @code{push p} +in assembly resembles @code{*(--esp) = p;} in C). Removing (popping) +values off the stack is the reverse (i.e., @code{pop p} corresponds to +@code{p = *(esp++);}). + +In the @dfn{stdcall} calling convention, arguments are pushed onto the +stack right-to-left. For example, the C call + +@example + myfunction(40, 20, 70, 30); +@end example + +is expressed in Intel assembly as: + +@example + push 30 + push 70 + push 20 + push 40 + call myfunction +@end example + +In addition, the called function is responsible for removing the +arguments off the stack. Thus, before the call to myfunction, the +stack would look like: + +@example + [local variable or temporary] + [local variable or temporary] + 30 + 70 + 20 + esp -> 40 +@end example + +After the call returns, it should look like: + +@example + [local variable or temporary] + esp -> [local variable or temporary] +@end example + +To restore the stack to this state, the called function must know how +many arguments to remove (which is the number of arguments it takes). +This is a problem if the function is undocumented. + +One way to attempt to document the number of arguments each function +takes is to create a wrapper around that function that detects the +stack offset. @file{WinRelay} (see below) was written to create such +wrappers. Essentially, each wrapper assumes that the function will take +a large number of arguments (by default, 64 in @file{WinRelay}). The +wrapper copies each of these arguments into its stack, calls the actual +function, and then calculates the number of arguments by checking esp +before and after the call. + +@cindex bsod (blue screen of death) +@cindex blue screen of death +The main problem with this scheme is that the function must actually +be called from another program. Many of these functions are seldom +used. An attempt was made to aggressively query each function in a +given library (@file{ntdll.dll}) by passing 64 arguments, all 0, to each +function. Unfortunately, @WINNT40{} quickly goes to a blue screen +of death (@dfn{bsod}), even if the program is run from a +non-administrator account. + +Another method that has been much more successful is to attempt to +figure out how many arguments each function is removing from the +stack. This instruction, @code{ret hhll} (where @samp{hhll} is the +number of bytes to remove, i.e. the number of arguments times 4), contains +the bytes @samp{0xc2 ll hh} in memory. It is a reasonable assumption +that few, if any, functions take more than 16 arguments; therefore, +@samp{hh} is 0x0 and @samp{ll} is less than 0x40. This utility, +@file{MakeSpec} (see below), simply queries the address of a function +and looks for the first occurrence of the bytes @samp{0xc2 ll 0x0}, +where @math{@samp{ll} <= 0x40}. + +Of course, this is not without errors. @code{ret 00ll} is not the only +instruction that can have the byte sequence @samp{0xc2 ll 0x0}; for +example, @code{push 0x000040c2} has the byte sequence +@samp{0x68 0xc2 0x40 0x0 0x0}, which matches the above. Properly, the +utility should look for this sequence only on an instruction boundary; +unfortunately, finding instruction boundaries on an i386 requires +implementing a full disassemble -- quite a daunting task. Besides, +the probability of having such a byte sequence that is not the actual +return instruction is fairly low. + +Much more troublesome is the non-linear flow of a function. For +example, consider the following two functions: + +@example + somefunction1: + jmp somefunction1_impl + + somefunction2: + ret 0004 + + somefunction1_impl: + ret 0008 +@end example + +@file{MakeSpec} would incorrectly list both @code{somefunction1} and +@code{somefunction2} as taking only a single argument, whereas +@code{somefunction1} really takes two arguments. + +With these limitations in mind, it is possible to implement more stubs +in Wine and, eventually, the functions themselves. + +@c end of quote + +The program @file{WinRelay} can be downloaded from +@url{http://www.ece.cmu.edu/afs/ece/usr/dacut/www/src}, +and @file{MakeSpec} will be available from the same location. You can +compile them with Borland's C++Builder; you should not optimize when +compiling (@file{WinRelay} needs the stack frames). + + +@node Implementing an API type, Implementing an API function, Investigating the undocumented API, The Wine Project @section Implementing an API type Here is a checklist that should help you writing your first API type. It @@ -1278,6 +1574,11 @@ declared in Wine. Otherwise, start with the data types. Find out how the function should be named in Wine and in the DLL's. @xref{API function and type naming}, for details. +@item +Find out what the function should do. This may be tricky for +undocumented functions. @xref{Getting information on the API}, for some +hints. + @item Find out where the function should go: @enumerate diff --git a/files/directory.c b/files/directory.c index 6bc5c4515b5..ba6a2aaf212 100644 --- a/files/directory.c +++ b/files/directory.c @@ -179,7 +179,7 @@ int DIR_Init(void) /*********************************************************************** * GetTempPath32A (KERNEL32.292) */ -UINT32 GetTempPath32A( UINT32 count, LPSTR path ) +UINT32 WINAPI GetTempPath32A( UINT32 count, LPSTR path ) { if (path) lstrcpyn32A( path, DIR_TempDosDir, count ); return strlen( DIR_TempDosDir ); @@ -189,7 +189,7 @@ UINT32 GetTempPath32A( UINT32 count, LPSTR path ) /*********************************************************************** * GetTempPath32W (KERNEL32.293) */ -UINT32 GetTempPath32W( UINT32 count, LPWSTR path ) +UINT32 WINAPI GetTempPath32W( UINT32 count, LPWSTR path ) { if (path) lstrcpynAtoW( path, DIR_TempDosDir, count ); return strlen( DIR_TempDosDir ); @@ -240,14 +240,14 @@ UINT32 DIR_GetDosPath( INT32 element, LPSTR path, UINT32 count ) /*********************************************************************** * GetTempDrive (KERNEL.92) */ -BYTE GetTempDrive( BYTE ignored ) +BYTE WINAPI GetTempDrive( BYTE ignored ) { /* FIXME: apparently Windows does something with the ignored byte */ return DIR_TempDosDir[0]; } -UINT32 WIN16_GetTempDrive( BYTE ignored ) +UINT32 WINAPI WIN16_GetTempDrive( BYTE ignored ) { /* A closer look at krnl386.exe shows what the SDK doesn't mention: * @@ -264,7 +264,7 @@ UINT32 WIN16_GetTempDrive( BYTE ignored ) /*********************************************************************** * GetWindowsDirectory16 (KERNEL.134) */ -UINT16 GetWindowsDirectory16( LPSTR path, UINT16 count ) +UINT16 WINAPI GetWindowsDirectory16( LPSTR path, UINT16 count ) { return (UINT16)GetWindowsDirectory32A( path, count ); } @@ -273,7 +273,7 @@ UINT16 GetWindowsDirectory16( LPSTR path, UINT16 count ) /*********************************************************************** * GetWindowsDirectory32A (KERNEL32.311) */ -UINT32 GetWindowsDirectory32A( LPSTR path, UINT32 count ) +UINT32 WINAPI GetWindowsDirectory32A( LPSTR path, UINT32 count ) { if (path) lstrcpyn32A( path, DIR_WindowsDosDir, count ); return strlen( DIR_WindowsDosDir ); @@ -283,7 +283,7 @@ UINT32 GetWindowsDirectory32A( LPSTR path, UINT32 count ) /*********************************************************************** * GetWindowsDirectory32W (KERNEL32.312) */ -UINT32 GetWindowsDirectory32W( LPWSTR path, UINT32 count ) +UINT32 WINAPI GetWindowsDirectory32W( LPWSTR path, UINT32 count ) { if (path) lstrcpynAtoW( path, DIR_WindowsDosDir, count ); return strlen( DIR_WindowsDosDir ); @@ -293,7 +293,7 @@ UINT32 GetWindowsDirectory32W( LPWSTR path, UINT32 count ) /*********************************************************************** * GetSystemDirectory16 (KERNEL.135) */ -UINT16 GetSystemDirectory16( LPSTR path, UINT16 count ) +UINT16 WINAPI GetSystemDirectory16( LPSTR path, UINT16 count ) { return (UINT16)GetSystemDirectory32A( path, count ); } @@ -302,7 +302,7 @@ UINT16 GetSystemDirectory16( LPSTR path, UINT16 count ) /*********************************************************************** * GetSystemDirectory32A (KERNEL32.282) */ -UINT32 GetSystemDirectory32A( LPSTR path, UINT32 count ) +UINT32 WINAPI GetSystemDirectory32A( LPSTR path, UINT32 count ) { if (path) lstrcpyn32A( path, DIR_SystemDosDir, count ); return strlen( DIR_SystemDosDir ); @@ -312,7 +312,7 @@ UINT32 GetSystemDirectory32A( LPSTR path, UINT32 count ) /*********************************************************************** * GetSystemDirectory32W (KERNEL32.283) */ -UINT32 GetSystemDirectory32W( LPWSTR path, UINT32 count ) +UINT32 WINAPI GetSystemDirectory32W( LPWSTR path, UINT32 count ) { if (path) lstrcpynAtoW( path, DIR_SystemDosDir, count ); return strlen( DIR_SystemDosDir ); @@ -322,7 +322,7 @@ UINT32 GetSystemDirectory32W( LPWSTR path, UINT32 count ) /*********************************************************************** * CreateDirectory16 (KERNEL.144) */ -BOOL16 CreateDirectory16( LPCSTR path, LPVOID dummy ) +BOOL16 WINAPI CreateDirectory16( LPCSTR path, LPVOID dummy ) { dprintf_file( stddeb,"CreateDirectory16(%s,%p)\n", path, dummy ); return (BOOL16)CreateDirectory32A( path, NULL ); @@ -332,7 +332,8 @@ BOOL16 CreateDirectory16( LPCSTR path, LPVOID dummy ) /*********************************************************************** * CreateDirectory32A (KERNEL32.39) */ -BOOL32 CreateDirectory32A( LPCSTR path, LPSECURITY_ATTRIBUTES lpsecattribs ) +BOOL32 WINAPI CreateDirectory32A( LPCSTR path, + LPSECURITY_ATTRIBUTES lpsecattribs ) { DOS_FULL_NAME full_name; LPCSTR unixName; @@ -357,7 +358,8 @@ BOOL32 CreateDirectory32A( LPCSTR path, LPSECURITY_ATTRIBUTES lpsecattribs ) /*********************************************************************** * CreateDirectory32W (KERNEL32.42) */ -BOOL32 CreateDirectory32W( LPCWSTR path, LPSECURITY_ATTRIBUTES lpsecattribs ) +BOOL32 WINAPI CreateDirectory32W( LPCWSTR path, + LPSECURITY_ATTRIBUTES lpsecattribs ) { LPSTR xpath = HEAP_strdupWtoA( GetProcessHeap(), 0, path ); BOOL32 ret = CreateDirectory32A( xpath, lpsecattribs ); @@ -369,8 +371,8 @@ BOOL32 CreateDirectory32W( LPCWSTR path, LPSECURITY_ATTRIBUTES lpsecattribs ) /*********************************************************************** * CreateDirectoryEx32A (KERNEL32.40) */ -BOOL32 CreateDirectoryEx32A( LPCSTR template, LPCSTR path, - LPSECURITY_ATTRIBUTES lpsecattribs) +BOOL32 WINAPI CreateDirectoryEx32A( LPCSTR template, LPCSTR path, + LPSECURITY_ATTRIBUTES lpsecattribs) { return CreateDirectory32A(path,lpsecattribs); } @@ -379,8 +381,8 @@ BOOL32 CreateDirectoryEx32A( LPCSTR template, LPCSTR path, /*********************************************************************** * CreateDirectoryEx32W (KERNEL32.41) */ -BOOL32 CreateDirectoryEx32W( LPCWSTR template, LPCWSTR path, - LPSECURITY_ATTRIBUTES lpsecattribs) +BOOL32 WINAPI CreateDirectoryEx32W( LPCWSTR template, LPCWSTR path, + LPSECURITY_ATTRIBUTES lpsecattribs) { return CreateDirectory32W(path,lpsecattribs); } @@ -389,7 +391,7 @@ BOOL32 CreateDirectoryEx32W( LPCWSTR template, LPCWSTR path, /*********************************************************************** * RemoveDirectory16 (KERNEL) */ -BOOL16 RemoveDirectory16( LPCSTR path ) +BOOL16 WINAPI RemoveDirectory16( LPCSTR path ) { return (BOOL16)RemoveDirectory32A( path ); } @@ -398,7 +400,7 @@ BOOL16 RemoveDirectory16( LPCSTR path ) /*********************************************************************** * RemoveDirectory32A (KERNEL32.437) */ -BOOL32 RemoveDirectory32A( LPCSTR path ) +BOOL32 WINAPI RemoveDirectory32A( LPCSTR path ) { DOS_FULL_NAME full_name; LPCSTR unixName; @@ -424,7 +426,7 @@ BOOL32 RemoveDirectory32A( LPCSTR path ) /*********************************************************************** * RemoveDirectory32W (KERNEL32.438) */ -BOOL32 RemoveDirectory32W( LPCWSTR path ) +BOOL32 WINAPI RemoveDirectory32W( LPCWSTR path ) { LPSTR xpath = HEAP_strdupWtoA( GetProcessHeap(), 0, path ); BOOL32 ret = RemoveDirectory32A( xpath ); @@ -583,8 +585,8 @@ done: /*********************************************************************** * SearchPath32A (KERNEL32.447) */ -DWORD SearchPath32A( LPCSTR path, LPCSTR name, LPCSTR ext, DWORD buflen, - LPSTR buffer, LPSTR *lastpart ) +DWORD WINAPI SearchPath32A( LPCSTR path, LPCSTR name, LPCSTR ext, DWORD buflen, + LPSTR buffer, LPSTR *lastpart ) { LPSTR p, res; DOS_FULL_NAME full_name; @@ -604,8 +606,8 @@ DWORD SearchPath32A( LPCSTR path, LPCSTR name, LPCSTR ext, DWORD buflen, /*********************************************************************** * SearchPath32W (KERNEL32.448) */ -DWORD SearchPath32W( LPCWSTR path, LPCWSTR name, LPCWSTR ext, DWORD buflen, - LPWSTR buffer, LPWSTR *lastpart ) +DWORD WINAPI SearchPath32W( LPCWSTR path, LPCWSTR name, LPCWSTR ext, + DWORD buflen, LPWSTR buffer, LPWSTR *lastpart ) { LPWSTR p; LPSTR res; diff --git a/files/dos_fs.c b/files/dos_fs.c index 014b41e7c77..74f6cf24e3e 100644 --- a/files/dos_fs.c +++ b/files/dos_fs.c @@ -764,7 +764,8 @@ BOOL32 DOSFS_GetFullName( LPCSTR name, BOOL32 check_last, DOS_FULL_NAME *full ) /*********************************************************************** * GetShortPathName32A (KERNEL32.271) */ -DWORD GetShortPathName32A( LPCSTR longpath, LPSTR shortpath, DWORD shortlen ) +DWORD WINAPI GetShortPathName32A( LPCSTR longpath, LPSTR shortpath, + DWORD shortlen ) { DOS_FULL_NAME full_name; @@ -778,7 +779,8 @@ DWORD GetShortPathName32A( LPCSTR longpath, LPSTR shortpath, DWORD shortlen ) /*********************************************************************** * GetShortPathName32W (KERNEL32.272) */ -DWORD GetShortPathName32W( LPCWSTR longpath, LPWSTR shortpath, DWORD shortlen ) +DWORD WINAPI GetShortPathName32W( LPCWSTR longpath, LPWSTR shortpath, + DWORD shortlen ) { DOS_FULL_NAME full_name; DWORD ret = 0; @@ -877,7 +879,8 @@ static DWORD DOSFS_DoGetFullPathName( LPCSTR name, DWORD len, LPSTR result, /*********************************************************************** * GetFullPathName32A (KERNEL32.272) */ -DWORD GetFullPathName32A(LPCSTR name, DWORD len, LPSTR buffer, LPSTR *lastpart) +DWORD WINAPI GetFullPathName32A( LPCSTR name, DWORD len, LPSTR buffer, + LPSTR *lastpart ) { DWORD ret = DOSFS_DoGetFullPathName( name, len, buffer, FALSE ); if (ret && lastpart) @@ -893,8 +896,8 @@ DWORD GetFullPathName32A(LPCSTR name, DWORD len, LPSTR buffer, LPSTR *lastpart) /*********************************************************************** * GetFullPathName32W (KERNEL32.273) */ -DWORD GetFullPathName32W( LPCWSTR name, DWORD len, LPWSTR buffer, - LPWSTR *lastpart ) +DWORD WINAPI GetFullPathName32W( LPCWSTR name, DWORD len, LPWSTR buffer, + LPWSTR *lastpart ) { LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name ); DWORD ret = DOSFS_DoGetFullPathName( nameA, len, (LPSTR)buffer, TRUE ); @@ -1044,7 +1047,7 @@ int DOSFS_FindNext( const char *path, const char *short_mask, /************************************************************************* * FindFirstFile16 (KERNEL.413) */ -HANDLE16 FindFirstFile16( LPCSTR path, WIN32_FIND_DATA32A *data ) +HANDLE16 WINAPI FindFirstFile16( LPCSTR path, WIN32_FIND_DATA32A *data ) { DOS_FULL_NAME full_name; HGLOBAL16 handle; @@ -1076,7 +1079,7 @@ HANDLE16 FindFirstFile16( LPCSTR path, WIN32_FIND_DATA32A *data ) /************************************************************************* * FindFirstFile32A (KERNEL32.123) */ -HANDLE32 FindFirstFile32A( LPCSTR path, WIN32_FIND_DATA32A *data ) +HANDLE32 WINAPI FindFirstFile32A( LPCSTR path, WIN32_FIND_DATA32A *data ) { HANDLE32 handle = FindFirstFile16( path, data ); if (handle == INVALID_HANDLE_VALUE16) return INVALID_HANDLE_VALUE32; @@ -1087,7 +1090,7 @@ HANDLE32 FindFirstFile32A( LPCSTR path, WIN32_FIND_DATA32A *data ) /************************************************************************* * FindFirstFile32W (KERNEL32.124) */ -HANDLE32 FindFirstFile32W( LPCWSTR path, WIN32_FIND_DATA32W *data ) +HANDLE32 WINAPI FindFirstFile32W( LPCWSTR path, WIN32_FIND_DATA32W *data ) { WIN32_FIND_DATA32A dataA; LPSTR pathA = HEAP_strdupWtoA( GetProcessHeap(), 0, path ); @@ -1111,7 +1114,7 @@ HANDLE32 FindFirstFile32W( LPCWSTR path, WIN32_FIND_DATA32W *data ) /************************************************************************* * FindNextFile16 (KERNEL.414) */ -BOOL16 FindNextFile16( HANDLE16 handle, WIN32_FIND_DATA32A *data ) +BOOL16 WINAPI FindNextFile16( HANDLE16 handle, WIN32_FIND_DATA32A *data ) { FIND_FIRST_INFO *info; int count; @@ -1143,7 +1146,7 @@ BOOL16 FindNextFile16( HANDLE16 handle, WIN32_FIND_DATA32A *data ) /************************************************************************* * FindNextFile32A (KERNEL32.126) */ -BOOL32 FindNextFile32A( HANDLE32 handle, WIN32_FIND_DATA32A *data ) +BOOL32 WINAPI FindNextFile32A( HANDLE32 handle, WIN32_FIND_DATA32A *data ) { return FindNextFile16( handle, data ); } @@ -1152,7 +1155,7 @@ BOOL32 FindNextFile32A( HANDLE32 handle, WIN32_FIND_DATA32A *data ) /************************************************************************* * FindNextFile32W (KERNEL32.127) */ -BOOL32 FindNextFile32W( HANDLE32 handle, WIN32_FIND_DATA32W *data ) +BOOL32 WINAPI FindNextFile32W( HANDLE32 handle, WIN32_FIND_DATA32W *data ) { WIN32_FIND_DATA32A dataA; if (!FindNextFile32A( handle, &dataA )) return FALSE; @@ -1171,7 +1174,7 @@ BOOL32 FindNextFile32W( HANDLE32 handle, WIN32_FIND_DATA32W *data ) /************************************************************************* * FindClose16 (KERNEL.415) */ -BOOL16 FindClose16( HANDLE16 handle ) +BOOL16 WINAPI FindClose16( HANDLE16 handle ) { FIND_FIRST_INFO *info; @@ -1191,7 +1194,7 @@ BOOL16 FindClose16( HANDLE16 handle ) /************************************************************************* * FindClose32 (KERNEL32.119) */ -BOOL32 FindClose32( HANDLE32 handle ) +BOOL32 WINAPI FindClose32( HANDLE32 handle ) { return FindClose16( (HANDLE16)handle ); } @@ -1419,7 +1422,7 @@ time_t DOSFS_FileTimeToUnixTime( const FILETIME *filetime, DWORD *remainder ) /*********************************************************************** * DosDateTimeToFileTime (KERNEL32.76) */ -BOOL32 DosDateTimeToFileTime( WORD fatdate, WORD fattime, LPFILETIME ft ) +BOOL32 WINAPI DosDateTimeToFileTime( WORD fatdate, WORD fattime, LPFILETIME ft) { struct tm newtm; @@ -1437,8 +1440,8 @@ BOOL32 DosDateTimeToFileTime( WORD fatdate, WORD fattime, LPFILETIME ft ) /*********************************************************************** * FileTimeToDosDateTime (KERNEL32.111) */ -BOOL32 FileTimeToDosDateTime( const FILETIME *ft, LPWORD fatdate, - LPWORD fattime ) +BOOL32 WINAPI FileTimeToDosDateTime( const FILETIME *ft, LPWORD fatdate, + LPWORD fattime ) { time_t unixtime = DOSFS_FileTimeToUnixTime( ft, NULL ); struct tm *tm = localtime( &unixtime ); @@ -1454,7 +1457,8 @@ BOOL32 FileTimeToDosDateTime( const FILETIME *ft, LPWORD fatdate, /*********************************************************************** * LocalFileTimeToFileTime (KERNEL32.373) */ -BOOL32 LocalFileTimeToFileTime( const FILETIME *localft, LPFILETIME utcft ) +BOOL32 WINAPI LocalFileTimeToFileTime( const FILETIME *localft, + LPFILETIME utcft ) { struct tm *xtm; DWORD remainder; @@ -1470,7 +1474,8 @@ BOOL32 LocalFileTimeToFileTime( const FILETIME *localft, LPFILETIME utcft ) /*********************************************************************** * FileTimeToLocalFileTime (KERNEL32.112) */ -BOOL32 FileTimeToLocalFileTime( const FILETIME *utcft, LPFILETIME localft ) +BOOL32 WINAPI FileTimeToLocalFileTime( const FILETIME *utcft, + LPFILETIME localft ) { struct tm *xtm; DWORD remainder; @@ -1486,7 +1491,7 @@ BOOL32 FileTimeToLocalFileTime( const FILETIME *utcft, LPFILETIME localft ) /*********************************************************************** * FileTimeToSystemTime (KERNEL32.113) */ -BOOL32 FileTimeToSystemTime( const FILETIME *ft, LPSYSTEMTIME syst ) +BOOL32 WINAPI FileTimeToSystemTime( const FILETIME *ft, LPSYSTEMTIME syst ) { struct tm *xtm; DWORD remainder; @@ -1508,8 +1513,7 @@ BOOL32 FileTimeToSystemTime( const FILETIME *ft, LPSYSTEMTIME syst ) * * returns array of strings terminated by \0, terminated by \0 */ -DWORD -QueryDosDevice32A(LPCSTR devname,LPSTR target,DWORD bufsize) +DWORD WINAPI QueryDosDevice32A(LPCSTR devname,LPSTR target,DWORD bufsize) { LPSTR s; char buffer[200]; @@ -1537,8 +1541,7 @@ QueryDosDevice32A(LPCSTR devname,LPSTR target,DWORD bufsize) * * returns array of strings terminated by \0, terminated by \0 */ -DWORD -QueryDosDevice32W(LPCWSTR devname,LPWSTR target,DWORD bufsize) +DWORD WINAPI QueryDosDevice32W(LPCWSTR devname,LPWSTR target,DWORD bufsize) { LPSTR devnameA = devname?HEAP_strdupWtoA(GetProcessHeap(),0,devname):NULL; LPSTR targetA = (LPSTR)HEAP_xalloc(GetProcessHeap(),0,bufsize); @@ -1554,7 +1557,7 @@ QueryDosDevice32W(LPCWSTR devname,LPWSTR target,DWORD bufsize) /*********************************************************************** * SystemTimeToFileTime (KERNEL32.526) */ -BOOL32 SystemTimeToFileTime( const SYSTEMTIME *syst, LPFILETIME ft ) +BOOL32 WINAPI SystemTimeToFileTime( const SYSTEMTIME *syst, LPFILETIME ft ) { struct tm xtm; diff --git a/files/drive.c b/files/drive.c index c4a88ded90e..cee484a38e7 100644 --- a/files/drive.c +++ b/files/drive.c @@ -538,9 +538,9 @@ static int DRIVE_GetFreeSpace( int drive, DWORD *size, DWORD *available ) /*********************************************************************** * GetDiskFreeSpace16 (KERNEL.422) */ -BOOL16 GetDiskFreeSpace16( LPCSTR root, LPDWORD cluster_sectors, - LPDWORD sector_bytes, LPDWORD free_clusters, - LPDWORD total_clusters ) +BOOL16 WINAPI GetDiskFreeSpace16( LPCSTR root, LPDWORD cluster_sectors, + LPDWORD sector_bytes, LPDWORD free_clusters, + LPDWORD total_clusters ) { return GetDiskFreeSpace32A( root, cluster_sectors, sector_bytes, free_clusters, total_clusters ); @@ -550,9 +550,9 @@ BOOL16 GetDiskFreeSpace16( LPCSTR root, LPDWORD cluster_sectors, /*********************************************************************** * GetDiskFreeSpace32A (KERNEL32.206) */ -BOOL32 GetDiskFreeSpace32A( LPCSTR root, LPDWORD cluster_sectors, - LPDWORD sector_bytes, LPDWORD free_clusters, - LPDWORD total_clusters ) +BOOL32 WINAPI GetDiskFreeSpace32A( LPCSTR root, LPDWORD cluster_sectors, + LPDWORD sector_bytes, LPDWORD free_clusters, + LPDWORD total_clusters ) { int drive; DWORD size,available; @@ -583,9 +583,9 @@ BOOL32 GetDiskFreeSpace32A( LPCSTR root, LPDWORD cluster_sectors, /*********************************************************************** * GetDiskFreeSpace32W (KERNEL32.207) */ -BOOL32 GetDiskFreeSpace32W( LPCWSTR root, LPDWORD cluster_sectors, - LPDWORD sector_bytes, LPDWORD free_clusters, - LPDWORD total_clusters ) +BOOL32 WINAPI GetDiskFreeSpace32W( LPCWSTR root, LPDWORD cluster_sectors, + LPDWORD sector_bytes, LPDWORD free_clusters, + LPDWORD total_clusters ) { LPSTR xroot; BOOL32 ret; @@ -601,7 +601,7 @@ BOOL32 GetDiskFreeSpace32W( LPCWSTR root, LPDWORD cluster_sectors, /*********************************************************************** * GetDriveType16 (KERNEL.136) */ -UINT16 GetDriveType16( UINT16 drive ) +UINT16 WINAPI GetDriveType16( UINT16 drive ) { dprintf_dosfs( stddeb, "GetDriveType16(%c:)\n", 'A' + drive ); switch(DRIVE_GetType(drive)) @@ -619,7 +619,7 @@ UINT16 GetDriveType16( UINT16 drive ) /*********************************************************************** * GetDriveType32A (KERNEL32.208) */ -UINT32 GetDriveType32A( LPCSTR root ) +UINT32 WINAPI GetDriveType32A( LPCSTR root ) { dprintf_dosfs( stddeb, "GetDriveType32A(%s)\n", root ); if (root[1] != ':') @@ -642,7 +642,7 @@ UINT32 GetDriveType32A( LPCSTR root ) /*********************************************************************** * GetDriveType32W (KERNEL32.209) */ -UINT32 GetDriveType32W( LPCWSTR root ) +UINT32 WINAPI GetDriveType32W( LPCWSTR root ) { LPSTR xpath = HEAP_strdupWtoA( GetProcessHeap(), 0, root ); UINT32 ret = GetDriveType32A( xpath ); @@ -654,7 +654,7 @@ UINT32 GetDriveType32W( LPCWSTR root ) /*********************************************************************** * GetCurrentDirectory16 (KERNEL.411) */ -UINT16 GetCurrentDirectory16( UINT16 buflen, LPSTR buf ) +UINT16 WINAPI GetCurrentDirectory16( UINT16 buflen, LPSTR buf ) { return (UINT16)GetCurrentDirectory32A( buflen, buf ); } @@ -665,7 +665,7 @@ UINT16 GetCurrentDirectory16( UINT16 buflen, LPSTR buf ) * * Returns "X:\\path\\etc\\". */ -UINT32 GetCurrentDirectory32A( UINT32 buflen, LPSTR buf ) +UINT32 WINAPI GetCurrentDirectory32A( UINT32 buflen, LPSTR buf ) { char *pref = "A:\\"; const char *s = DRIVE_GetDosCwd( DRIVE_GetCurrentDrive() ); @@ -684,7 +684,7 @@ UINT32 GetCurrentDirectory32A( UINT32 buflen, LPSTR buf ) /*********************************************************************** * GetCurrentDirectory32W (KERNEL32.197) */ -UINT32 GetCurrentDirectory32W( UINT32 buflen, LPWSTR buf ) +UINT32 WINAPI GetCurrentDirectory32W( UINT32 buflen, LPWSTR buf ) { LPSTR xpath = HeapAlloc( GetProcessHeap(), 0, buflen+1 ); UINT32 ret = GetCurrentDirectory32A( buflen, xpath ); @@ -697,7 +697,7 @@ UINT32 GetCurrentDirectory32W( UINT32 buflen, LPWSTR buf ) /*********************************************************************** * SetCurrentDirectory (KERNEL.412) */ -BOOL16 SetCurrentDirectory16( LPCSTR dir ) +BOOL16 WINAPI SetCurrentDirectory16( LPCSTR dir ) { return SetCurrentDirectory32A( dir ); } @@ -706,7 +706,7 @@ BOOL16 SetCurrentDirectory16( LPCSTR dir ) /*********************************************************************** * SetCurrentDirectory32A (KERNEL32.479) */ -BOOL32 SetCurrentDirectory32A( LPCSTR dir ) +BOOL32 WINAPI SetCurrentDirectory32A( LPCSTR dir ) { int drive = DRIVE_GetCurrentDrive(); @@ -730,7 +730,7 @@ BOOL32 SetCurrentDirectory32A( LPCSTR dir ) /*********************************************************************** * SetCurrentDirectory32W (KERNEL32.480) */ -BOOL32 SetCurrentDirectory32W( LPCWSTR dirW ) +BOOL32 WINAPI SetCurrentDirectory32W( LPCWSTR dirW ) { LPSTR dir = HEAP_strdupWtoA( GetProcessHeap(), 0, dirW ); BOOL32 res = SetCurrentDirectory32A( dir ); @@ -742,7 +742,7 @@ BOOL32 SetCurrentDirectory32W( LPCWSTR dirW ) /*********************************************************************** * GetLogicalDriveStrings32A (KERNEL32.231) */ -UINT32 GetLogicalDriveStrings32A( UINT32 len, LPSTR buffer ) +UINT32 WINAPI GetLogicalDriveStrings32A( UINT32 len, LPSTR buffer ) { int drive, count; @@ -768,7 +768,7 @@ UINT32 GetLogicalDriveStrings32A( UINT32 len, LPSTR buffer ) /*********************************************************************** * GetLogicalDriveStrings32W (KERNEL32.232) */ -UINT32 GetLogicalDriveStrings32W( UINT32 len, LPWSTR buffer ) +UINT32 WINAPI GetLogicalDriveStrings32W( UINT32 len, LPWSTR buffer ) { int drive, count; @@ -794,7 +794,7 @@ UINT32 GetLogicalDriveStrings32W( UINT32 len, LPWSTR buffer ) /*********************************************************************** * GetLogicalDrives (KERNEL32.233) */ -DWORD GetLogicalDrives(void) +DWORD WINAPI GetLogicalDrives(void) { DWORD ret = 0; int drive; @@ -808,9 +808,10 @@ DWORD GetLogicalDrives(void) /*********************************************************************** * GetVolumeInformation32A (KERNEL32.309) */ -BOOL32 GetVolumeInformation32A( LPCSTR root, LPSTR label, DWORD label_len, - DWORD *serial, DWORD *filename_len, - DWORD *flags, LPSTR fsname, DWORD fsname_len ) +BOOL32 WINAPI GetVolumeInformation32A( LPCSTR root, LPSTR label, + DWORD label_len, DWORD *serial, + DWORD *filename_len, DWORD *flags, + LPSTR fsname, DWORD fsname_len ) { int drive; @@ -843,9 +844,10 @@ BOOL32 GetVolumeInformation32A( LPCSTR root, LPSTR label, DWORD label_len, /*********************************************************************** * GetVolumeInformation32W (KERNEL32.310) */ -BOOL32 GetVolumeInformation32W( LPCWSTR root, LPWSTR label, DWORD label_len, - DWORD *serial, DWORD *filename_len, - DWORD *flags, LPWSTR fsname, DWORD fsname_len) +BOOL32 WINAPI GetVolumeInformation32W( LPCWSTR root, LPWSTR label, + DWORD label_len, DWORD *serial, + DWORD *filename_len, DWORD *flags, + LPWSTR fsname, DWORD fsname_len ) { LPSTR xroot = HEAP_strdupWtoA( GetProcessHeap(), 0, root ); LPSTR xvolname = label ? HeapAlloc(GetProcessHeap(),0,label_len) : NULL; diff --git a/files/file.c b/files/file.c index 742d518e1f9..540446a10fe 100644 --- a/files/file.c +++ b/files/file.c @@ -376,8 +376,8 @@ BOOL32 FILE_Stat( LPCSTR unixName, BY_HANDLE_FILE_INFORMATION *info ) /*********************************************************************** * GetFileInformationByHandle (KERNEL32.219) */ -DWORD GetFileInformationByHandle( HFILE32 hFile, - BY_HANDLE_FILE_INFORMATION *info ) +DWORD WINAPI GetFileInformationByHandle( HFILE32 hFile, + BY_HANDLE_FILE_INFORMATION *info ) { FILE_OBJECT *file; DWORD ret = 0; @@ -400,7 +400,7 @@ DWORD GetFileInformationByHandle( HFILE32 hFile, /************************************************************************** * GetFileAttributes16 (KERNEL.420) */ -DWORD GetFileAttributes16( LPCSTR name ) +DWORD WINAPI GetFileAttributes16( LPCSTR name ) { return GetFileAttributes32A( name ); } @@ -409,7 +409,7 @@ DWORD GetFileAttributes16( LPCSTR name ) /************************************************************************** * GetFileAttributes32A (KERNEL32.217) */ -DWORD GetFileAttributes32A( LPCSTR name ) +DWORD WINAPI GetFileAttributes32A( LPCSTR name ) { DOS_FULL_NAME full_name; BY_HANDLE_FILE_INFORMATION info; @@ -425,7 +425,7 @@ DWORD GetFileAttributes32A( LPCSTR name ) /************************************************************************** * GetFileAttributes32W (KERNEL32.218) */ -DWORD GetFileAttributes32W( LPCWSTR name ) +DWORD WINAPI GetFileAttributes32W( LPCWSTR name ) { LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name ); DWORD res = GetFileAttributes32A( nameA ); @@ -437,7 +437,7 @@ DWORD GetFileAttributes32W( LPCWSTR name ) /*********************************************************************** * GetFileSize (KERNEL32.220) */ -DWORD GetFileSize( HFILE32 hFile, LPDWORD filesizehigh ) +DWORD WINAPI GetFileSize( HFILE32 hFile, LPDWORD filesizehigh ) { BY_HANDLE_FILE_INFORMATION info; if (!GetFileInformationByHandle( hFile, &info )) return 0; @@ -449,8 +449,9 @@ DWORD GetFileSize( HFILE32 hFile, LPDWORD filesizehigh ) /*********************************************************************** * GetFileTime (KERNEL32.221) */ -BOOL32 GetFileTime( HFILE32 hFile, FILETIME *lpCreationTime, - FILETIME *lpLastAccessTime, FILETIME *lpLastWriteTime ) +BOOL32 WINAPI GetFileTime( HFILE32 hFile, FILETIME *lpCreationTime, + FILETIME *lpLastAccessTime, + FILETIME *lpLastWriteTime ) { BY_HANDLE_FILE_INFORMATION info; if (!GetFileInformationByHandle( hFile, &info )) return FALSE; @@ -463,7 +464,7 @@ BOOL32 GetFileTime( HFILE32 hFile, FILETIME *lpCreationTime, /*********************************************************************** * CompareFileTime (KERNEL32.28) */ -INT32 CompareFileTime( LPFILETIME x, LPFILETIME y ) +INT32 WINAPI CompareFileTime( LPFILETIME x, LPFILETIME y ) { if (!x || !y) return -1; @@ -517,8 +518,8 @@ HFILE32 FILE_Dup2( HFILE32 hFile1, HFILE32 hFile2 ) /*********************************************************************** * GetTempFileName16 (KERNEL.97) */ -UINT16 GetTempFileName16( BYTE drive, LPCSTR prefix, UINT16 unique, - LPSTR buffer ) +UINT16 WINAPI GetTempFileName16( BYTE drive, LPCSTR prefix, UINT16 unique, + LPSTR buffer ) { char temppath[144]; @@ -544,8 +545,8 @@ UINT16 GetTempFileName16( BYTE drive, LPCSTR prefix, UINT16 unique, /*********************************************************************** * GetTempFileName32A (KERNEL32.290) */ -UINT32 GetTempFileName32A( LPCSTR path, LPCSTR prefix, UINT32 unique, - LPSTR buffer) +UINT32 WINAPI GetTempFileName32A( LPCSTR path, LPCSTR prefix, UINT32 unique, + LPSTR buffer) { DOS_FULL_NAME full_name; int i; @@ -603,8 +604,8 @@ UINT32 GetTempFileName32A( LPCSTR path, LPCSTR prefix, UINT32 unique, /*********************************************************************** * GetTempFileName32W (KERNEL32.291) */ -UINT32 GetTempFileName32W( LPCWSTR path, LPCWSTR prefix, UINT32 unique, - LPWSTR buffer ) +UINT32 WINAPI GetTempFileName32W( LPCWSTR path, LPCWSTR prefix, UINT32 unique, + LPWSTR buffer ) { LPSTR patha,prefixa; char buffera[144]; @@ -758,7 +759,7 @@ error: /* We get here if there was an error opening the file */ /*********************************************************************** * OpenFile16 (KERNEL.74) */ -HFILE16 OpenFile16( LPCSTR name, OFSTRUCT *ofs, UINT16 mode ) +HFILE16 WINAPI OpenFile16( LPCSTR name, OFSTRUCT *ofs, UINT16 mode ) { return FILE_DoOpenFile( name, ofs, mode, FALSE ); } @@ -767,7 +768,7 @@ HFILE16 OpenFile16( LPCSTR name, OFSTRUCT *ofs, UINT16 mode ) /*********************************************************************** * OpenFile32 (KERNEL32.396) */ -HFILE32 OpenFile32( LPCSTR name, OFSTRUCT *ofs, UINT32 mode ) +HFILE32 WINAPI OpenFile32( LPCSTR name, OFSTRUCT *ofs, UINT32 mode ) { return FILE_DoOpenFile( name, ofs, mode, TRUE ); } @@ -776,7 +777,7 @@ HFILE32 OpenFile32( LPCSTR name, OFSTRUCT *ofs, UINT32 mode ) /*********************************************************************** * _lclose16 (KERNEL.81) */ -HFILE16 _lclose16( HFILE16 hFile ) +HFILE16 WINAPI _lclose16( HFILE16 hFile ) { dprintf_file( stddeb, "_lclose16: handle %d\n", hFile ); return CloseHandle( hFile ) ? 0 : HFILE_ERROR16; @@ -786,7 +787,7 @@ HFILE16 _lclose16( HFILE16 hFile ) /*********************************************************************** * _lclose32 (KERNEL32.592) */ -HFILE32 _lclose32( HFILE32 hFile ) +HFILE32 WINAPI _lclose32( HFILE32 hFile ) { dprintf_file( stddeb, "_lclose32: handle %d\n", hFile ); return CloseHandle( hFile ) ? 0 : HFILE_ERROR32; @@ -796,7 +797,7 @@ HFILE32 _lclose32( HFILE32 hFile ) /*********************************************************************** * WIN16_hread */ -LONG WIN16_hread( HFILE16 hFile, SEGPTR buffer, LONG count ) +LONG WINAPI WIN16_hread( HFILE16 hFile, SEGPTR buffer, LONG count ) { LONG maxlen; @@ -813,7 +814,7 @@ LONG WIN16_hread( HFILE16 hFile, SEGPTR buffer, LONG count ) /*********************************************************************** * WIN16_lread */ -UINT16 WIN16_lread( HFILE16 hFile, SEGPTR buffer, UINT16 count ) +UINT16 WINAPI WIN16_lread( HFILE16 hFile, SEGPTR buffer, UINT16 count ) { return (UINT16)WIN16_hread( hFile, buffer, (LONG)count ); } @@ -822,7 +823,7 @@ UINT16 WIN16_lread( HFILE16 hFile, SEGPTR buffer, UINT16 count ) /*********************************************************************** * _lread32 (KERNEL32.596) */ -UINT32 _lread32( HFILE32 hFile, LPVOID buffer, UINT32 count ) +UINT32 WINAPI _lread32( HFILE32 hFile, LPVOID buffer, UINT32 count ) { FILE_OBJECT *file; UINT32 result; @@ -840,7 +841,7 @@ UINT32 _lread32( HFILE32 hFile, LPVOID buffer, UINT32 count ) /*********************************************************************** * _lread16 (KERNEL.82) */ -UINT16 _lread16( HFILE16 hFile, LPVOID buffer, UINT16 count ) +UINT16 WINAPI _lread16( HFILE16 hFile, LPVOID buffer, UINT16 count ) { return (UINT16)_lread32( hFile, buffer, (LONG)count ); } @@ -849,7 +850,7 @@ UINT16 _lread16( HFILE16 hFile, LPVOID buffer, UINT16 count ) /*********************************************************************** * _lcreat16 (KERNEL.83) */ -HFILE16 _lcreat16( LPCSTR path, INT16 attr ) +HFILE16 WINAPI _lcreat16( LPCSTR path, INT16 attr ) { int mode = (attr & 1) ? 0444 : 0666; dprintf_file( stddeb, "_lcreat16: %s %02x\n", path, attr ); @@ -860,7 +861,7 @@ HFILE16 _lcreat16( LPCSTR path, INT16 attr ) /*********************************************************************** * _lcreat32 (KERNEL32.593) */ -HFILE32 _lcreat32( LPCSTR path, INT32 attr ) +HFILE32 WINAPI _lcreat32( LPCSTR path, INT32 attr ) { int mode = (attr & 1) ? 0444 : 0666; dprintf_file( stddeb, "_lcreat32: %s %02x\n", path, attr ); @@ -882,8 +883,8 @@ HFILE32 _lcreat_uniq( LPCSTR path, INT32 attr ) /*********************************************************************** * SetFilePointer (KERNEL32.492) */ -DWORD SetFilePointer( HFILE32 hFile, LONG distance, LONG *highword, - DWORD method ) +DWORD WINAPI SetFilePointer( HFILE32 hFile, LONG distance, LONG *highword, + DWORD method ) { FILE_OBJECT *file; int origin, result; @@ -915,7 +916,7 @@ DWORD SetFilePointer( HFILE32 hFile, LONG distance, LONG *highword, /*********************************************************************** * _llseek16 (KERNEL.84) */ -LONG _llseek16( HFILE16 hFile, LONG lOffset, INT16 nOrigin ) +LONG WINAPI _llseek16( HFILE16 hFile, LONG lOffset, INT16 nOrigin ) { return SetFilePointer( hFile, lOffset, NULL, nOrigin ); } @@ -924,7 +925,7 @@ LONG _llseek16( HFILE16 hFile, LONG lOffset, INT16 nOrigin ) /*********************************************************************** * _llseek32 (KERNEL32.594) */ -LONG _llseek32( HFILE32 hFile, LONG lOffset, INT32 nOrigin ) +LONG WINAPI _llseek32( HFILE32 hFile, LONG lOffset, INT32 nOrigin ) { return SetFilePointer( hFile, lOffset, NULL, nOrigin ); } @@ -933,7 +934,7 @@ LONG _llseek32( HFILE32 hFile, LONG lOffset, INT32 nOrigin ) /*********************************************************************** * _lopen16 (KERNEL.85) */ -HFILE16 _lopen16( LPCSTR path, INT16 mode ) +HFILE16 WINAPI _lopen16( LPCSTR path, INT16 mode ) { return _lopen32( path, mode ); } @@ -942,7 +943,7 @@ HFILE16 _lopen16( LPCSTR path, INT16 mode ) /*********************************************************************** * _lopen32 (KERNEL32.595) */ -HFILE32 _lopen32( LPCSTR path, INT32 mode ) +HFILE32 WINAPI _lopen32( LPCSTR path, INT32 mode ) { INT32 unixMode; @@ -968,7 +969,7 @@ HFILE32 _lopen32( LPCSTR path, INT32 mode ) /*********************************************************************** * _lwrite16 (KERNEL.86) */ -UINT16 _lwrite16( HFILE16 hFile, LPCSTR buffer, UINT16 count ) +UINT16 WINAPI _lwrite16( HFILE16 hFile, LPCSTR buffer, UINT16 count ) { return (UINT16)_hwrite32( hFile, buffer, (LONG)count ); } @@ -976,7 +977,7 @@ UINT16 _lwrite16( HFILE16 hFile, LPCSTR buffer, UINT16 count ) /*********************************************************************** * _lwrite32 (KERNEL.86) */ -UINT32 _lwrite32( HFILE32 hFile, LPCSTR buffer, UINT32 count ) +UINT32 WINAPI _lwrite32( HFILE32 hFile, LPCSTR buffer, UINT32 count ) { return (UINT32)_hwrite32( hFile, buffer, (LONG)count ); } @@ -985,7 +986,7 @@ UINT32 _lwrite32( HFILE32 hFile, LPCSTR buffer, UINT32 count ) /*********************************************************************** * _hread16 (KERNEL.349) */ -LONG _hread16( HFILE16 hFile, LPVOID buffer, LONG count) +LONG WINAPI _hread16( HFILE16 hFile, LPVOID buffer, LONG count) { return _lread32( hFile, buffer, count ); } @@ -994,7 +995,7 @@ LONG _hread16( HFILE16 hFile, LPVOID buffer, LONG count) /*********************************************************************** * _hread32 (KERNEL32.590) */ -LONG _hread32( HFILE32 hFile, LPVOID buffer, LONG count) +LONG WINAPI _hread32( HFILE32 hFile, LPVOID buffer, LONG count) { return _lread32( hFile, buffer, count ); } @@ -1003,7 +1004,7 @@ LONG _hread32( HFILE32 hFile, LPVOID buffer, LONG count) /*********************************************************************** * _hwrite16 (KERNEL.350) */ -LONG _hwrite16( HFILE16 hFile, LPCSTR buffer, LONG count ) +LONG WINAPI _hwrite16( HFILE16 hFile, LPCSTR buffer, LONG count ) { return _hwrite32( hFile, buffer, count ); } @@ -1012,7 +1013,7 @@ LONG _hwrite16( HFILE16 hFile, LPCSTR buffer, LONG count ) /*********************************************************************** * _hwrite32 (KERNEL32.591) */ -LONG _hwrite32( HFILE32 hFile, LPCSTR buffer, LONG count ) +LONG WINAPI _hwrite32( HFILE32 hFile, LPCSTR buffer, LONG count ) { FILE_OBJECT *file; LONG result; @@ -1042,7 +1043,7 @@ LONG _hwrite32( HFILE32 hFile, LPCSTR buffer, LONG count ) /*********************************************************************** * SetHandleCount16 (KERNEL.199) */ -UINT16 SetHandleCount16( UINT16 count ) +UINT16 WINAPI SetHandleCount16( UINT16 count ) { HGLOBAL16 hPDB = GetCurrentPDB(); PDB *pdb = (PDB *)GlobalLock16( hPDB ); @@ -1094,7 +1095,7 @@ UINT16 SetHandleCount16( UINT16 count ) /************************************************************************* * SetHandleCount32 (KERNEL32.494) */ -UINT32 SetHandleCount32( UINT32 count ) +UINT32 WINAPI SetHandleCount32( UINT32 count ) { return MIN( 256, count ); } @@ -1103,7 +1104,7 @@ UINT32 SetHandleCount32( UINT32 count ) /*********************************************************************** * FlushFileBuffers (KERNEL32.133) */ -BOOL32 FlushFileBuffers( HFILE32 hFile ) +BOOL32 WINAPI FlushFileBuffers( HFILE32 hFile ) { FILE_OBJECT *file; BOOL32 ret; @@ -1124,7 +1125,7 @@ BOOL32 FlushFileBuffers( HFILE32 hFile ) /************************************************************************** * SetEndOfFile (KERNEL32.483) */ -BOOL32 SetEndOfFile( HFILE32 hFile ) +BOOL32 WINAPI SetEndOfFile( HFILE32 hFile ) { FILE_OBJECT *file; BOOL32 ret = TRUE; @@ -1145,7 +1146,7 @@ BOOL32 SetEndOfFile( HFILE32 hFile ) /*********************************************************************** * DeleteFile16 (KERNEL.146) */ -BOOL16 DeleteFile16( LPCSTR path ) +BOOL16 WINAPI DeleteFile16( LPCSTR path ) { return DeleteFile32A( path ); } @@ -1154,7 +1155,7 @@ BOOL16 DeleteFile16( LPCSTR path ) /*********************************************************************** * DeleteFile32A (KERNEL32.71) */ -BOOL32 DeleteFile32A( LPCSTR path ) +BOOL32 WINAPI DeleteFile32A( LPCSTR path ) { DOS_FULL_NAME full_name; const char *unixName; @@ -1181,7 +1182,7 @@ BOOL32 DeleteFile32A( LPCSTR path ) /*********************************************************************** * DeleteFile32W (KERNEL32.72) */ -BOOL32 DeleteFile32W( LPCWSTR path ) +BOOL32 WINAPI DeleteFile32W( LPCWSTR path ) { LPSTR xpath = HEAP_strdupWtoA( GetProcessHeap(), 0, path ); BOOL32 ret = RemoveDirectory32A( xpath ); @@ -1218,13 +1219,6 @@ LPVOID FILE_mmap( FILE_OBJECT *file, LPVOID start, if (!file) { - /* Linux EINVAL's on us if we don't pass MAP_PRIVATE to an anon mmap */ -#ifdef MAP_SHARED - flags &= ~MAP_SHARED; -#endif -#ifdef MAP_PRIVATE - flags |= MAP_PRIVATE; -#endif #ifdef MAP_ANON flags |= MAP_ANON; #else @@ -1240,6 +1234,13 @@ LPVOID FILE_mmap( FILE_OBJECT *file, LPVOID start, } fd = fdzero; #endif /* MAP_ANON */ + /* Linux EINVAL's on us if we don't pass MAP_PRIVATE to an anon mmap */ +#ifdef MAP_SHARED + flags &= ~MAP_SHARED; +#endif +#ifdef MAP_PRIVATE + flags |= MAP_PRIVATE; +#endif } else fd = file->unix_handle; @@ -1250,7 +1251,7 @@ LPVOID FILE_mmap( FILE_OBJECT *file, LPVOID start, /*********************************************************************** * GetFileType (KERNEL32.222) */ -DWORD GetFileType( HFILE32 hFile ) +DWORD WINAPI GetFileType( HFILE32 hFile ) { FILE_OBJECT *file = FILE_GetFile(hFile); if (!file) return FILE_TYPE_UNKNOWN; /* FIXME: correct? */ @@ -1264,7 +1265,7 @@ DWORD GetFileType( HFILE32 hFile ) * * */ -BOOL32 MoveFileEx32A( LPCSTR fn1, LPCSTR fn2, DWORD flag ) +BOOL32 WINAPI MoveFileEx32A( LPCSTR fn1, LPCSTR fn2, DWORD flag ) { DOS_FULL_NAME full_name1, full_name2; int mode=0; /* mode == 1: use copy */ @@ -1348,7 +1349,7 @@ BOOL32 MoveFileEx32A( LPCSTR fn1, LPCSTR fn2, DWORD flag ) /************************************************************************** * MoveFileEx32W (KERNEL32.???) */ -BOOL32 MoveFileEx32W( LPCWSTR fn1, LPCWSTR fn2, DWORD flag ) +BOOL32 WINAPI MoveFileEx32W( LPCWSTR fn1, LPCWSTR fn2, DWORD flag ) { LPSTR afn1 = HEAP_strdupWtoA( GetProcessHeap(), 0, fn1 ); LPSTR afn2 = HEAP_strdupWtoA( GetProcessHeap(), 0, fn2 ); @@ -1364,7 +1365,7 @@ BOOL32 MoveFileEx32W( LPCWSTR fn1, LPCWSTR fn2, DWORD flag ) * * Move file or directory */ -BOOL32 MoveFile32A( LPCSTR fn1, LPCSTR fn2 ) +BOOL32 WINAPI MoveFile32A( LPCSTR fn1, LPCSTR fn2 ) { DOS_FULL_NAME full_name1, full_name2; struct stat fstat; @@ -1408,7 +1409,7 @@ BOOL32 MoveFile32A( LPCSTR fn1, LPCSTR fn2 ) /************************************************************************** * MoveFile32W (KERNEL32.390) */ -BOOL32 MoveFile32W( LPCWSTR fn1, LPCWSTR fn2 ) +BOOL32 WINAPI MoveFile32W( LPCWSTR fn1, LPCWSTR fn2 ) { LPSTR afn1 = HEAP_strdupWtoA( GetProcessHeap(), 0, fn1 ); LPSTR afn2 = HEAP_strdupWtoA( GetProcessHeap(), 0, fn2 ); @@ -1422,7 +1423,7 @@ BOOL32 MoveFile32W( LPCWSTR fn1, LPCWSTR fn2 ) /************************************************************************** * CopyFile32A (KERNEL32.36) */ -BOOL32 CopyFile32A( LPCSTR source, LPCSTR dest, BOOL32 fail_if_exists ) +BOOL32 WINAPI CopyFile32A( LPCSTR source, LPCSTR dest, BOOL32 fail_if_exists ) { HFILE32 h1, h2; BY_HANDLE_FILE_INFORMATION info; @@ -1465,7 +1466,7 @@ done: /************************************************************************** * CopyFile32W (KERNEL32.37) */ -BOOL32 CopyFile32W( LPCWSTR source, LPCWSTR dest, BOOL32 fail_if_exists ) +BOOL32 WINAPI CopyFile32W( LPCWSTR source, LPCWSTR dest, BOOL32 fail_if_exists) { LPSTR sourceA = HEAP_strdupWtoA( GetProcessHeap(), 0, source ); LPSTR destA = HEAP_strdupWtoA( GetProcessHeap(), 0, dest ); @@ -1479,10 +1480,10 @@ BOOL32 CopyFile32W( LPCWSTR source, LPCWSTR dest, BOOL32 fail_if_exists ) /*********************************************************************** * SetFileTime (KERNEL32.493) */ -BOOL32 SetFileTime( HFILE32 hFile, - const FILETIME *lpCreationTime, - const FILETIME *lpLastAccessTime, - const FILETIME *lpLastWriteTime ) +BOOL32 WINAPI SetFileTime( HFILE32 hFile, + const FILETIME *lpCreationTime, + const FILETIME *lpLastAccessTime, + const FILETIME *lpLastWriteTime ) { FILE_OBJECT *file = FILE_GetFile(hFile); struct utimbuf utimbuf; @@ -1596,7 +1597,7 @@ static BOOL32 DOS_RemoveLock(FILE_OBJECT *file, struct flock *f) /************************************************************************** * LockFile (KERNEL32.511) */ -BOOL32 LockFile( +BOOL32 WINAPI LockFile( HFILE32 hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToLockLow,DWORD nNumberOfBytesToLockHigh ) { @@ -1647,7 +1648,7 @@ BOOL32 LockFile( /************************************************************************** * UnlockFile (KERNEL32.703) */ -BOOL32 UnlockFile( +BOOL32 WINAPI UnlockFile( HFILE32 hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh ) { diff --git a/files/profile.c b/files/profile.c index 6fac8ebd360..eb15ace9fef 100644 --- a/files/profile.c +++ b/files/profile.c @@ -766,15 +766,14 @@ char* PROFILE_GetStringItem( char* start ) for (lpchX = start, lpch = NULL; *lpchX != '\0'; lpchX++ ) { - if( isspace( *lpchX ) ) lpch = lpch ? lpch : lpchX; - else lpch = NULL; - if( *lpchX == ',' ) { if( lpch ) *lpch = '\0'; else *lpchX = '\0'; while( *(++lpchX) ) if( !isspace(*lpchX) ) return lpchX; } + else if( isspace( *lpchX ) && !lpch ) lpch = lpchX; + else lpch = NULL; } if( lpch ) *lpch = '\0'; return NULL; @@ -786,7 +785,7 @@ char* PROFILE_GetStringItem( char* start ) /*********************************************************************** * GetProfileInt16 (KERNEL.57) */ -UINT16 GetProfileInt16( LPCSTR section, LPCSTR entry, INT16 def_val ) +UINT16 WINAPI GetProfileInt16( LPCSTR section, LPCSTR entry, INT16 def_val ) { return GetPrivateProfileInt16( section, entry, def_val, "win.ini" ); } @@ -795,7 +794,7 @@ UINT16 GetProfileInt16( LPCSTR section, LPCSTR entry, INT16 def_val ) /*********************************************************************** * GetProfileInt32A (KERNEL32.264) */ -UINT32 GetProfileInt32A( LPCSTR section, LPCSTR entry, INT32 def_val ) +UINT32 WINAPI GetProfileInt32A( LPCSTR section, LPCSTR entry, INT32 def_val ) { return GetPrivateProfileInt32A( section, entry, def_val, "win.ini" ); } @@ -803,7 +802,7 @@ UINT32 GetProfileInt32A( LPCSTR section, LPCSTR entry, INT32 def_val ) /*********************************************************************** * GetProfileInt32W (KERNEL32.264) */ -UINT32 GetProfileInt32W( LPCWSTR section, LPCWSTR entry, INT32 def_val ) +UINT32 WINAPI GetProfileInt32W( LPCWSTR section, LPCWSTR entry, INT32 def_val ) { if (!wininiW) wininiW = HEAP_strdupAtoW( SystemHeap, 0, "win.ini" ); return GetPrivateProfileInt32W( section, entry, def_val, wininiW ); @@ -812,8 +811,8 @@ UINT32 GetProfileInt32W( LPCWSTR section, LPCWSTR entry, INT32 def_val ) /*********************************************************************** * GetProfileString16 (KERNEL.58) */ -INT16 GetProfileString16( LPCSTR section, LPCSTR entry, LPCSTR def_val, - LPSTR buffer, INT16 len ) +INT16 WINAPI GetProfileString16( LPCSTR section, LPCSTR entry, LPCSTR def_val, + LPSTR buffer, INT16 len ) { return GetPrivateProfileString16( section, entry, def_val, buffer, len, "win.ini" ); @@ -822,8 +821,8 @@ INT16 GetProfileString16( LPCSTR section, LPCSTR entry, LPCSTR def_val, /*********************************************************************** * GetProfileString32A (KERNEL32.268) */ -INT32 GetProfileString32A( LPCSTR section, LPCSTR entry, LPCSTR def_val, - LPSTR buffer, INT32 len ) +INT32 WINAPI GetProfileString32A( LPCSTR section, LPCSTR entry, LPCSTR def_val, + LPSTR buffer, INT32 len ) { return GetPrivateProfileString32A( section, entry, def_val, buffer, len, "win.ini" ); @@ -832,8 +831,8 @@ INT32 GetProfileString32A( LPCSTR section, LPCSTR entry, LPCSTR def_val, /*********************************************************************** * GetProfileString32W (KERNEL32.269) */ -INT32 GetProfileString32W( LPCWSTR section,LPCWSTR entry,LPCWSTR def_val, - LPWSTR buffer, INT32 len ) +INT32 WINAPI GetProfileString32W( LPCWSTR section, LPCWSTR entry, + LPCWSTR def_val, LPWSTR buffer, INT32 len ) { if (!wininiW) wininiW = HEAP_strdupAtoW( SystemHeap, 0, "win.ini" ); return GetPrivateProfileString32W( section, entry, def_val, @@ -844,7 +843,8 @@ INT32 GetProfileString32W( LPCWSTR section,LPCWSTR entry,LPCWSTR def_val, /*********************************************************************** * WriteProfileString16 (KERNEL.59) */ -BOOL16 WriteProfileString16( LPCSTR section, LPCSTR entry, LPCSTR string ) +BOOL16 WINAPI WriteProfileString16( LPCSTR section, LPCSTR entry, + LPCSTR string ) { return WritePrivateProfileString16( section, entry, string, "win.ini" ); } @@ -852,7 +852,8 @@ BOOL16 WriteProfileString16( LPCSTR section, LPCSTR entry, LPCSTR string ) /*********************************************************************** * WriteProfileString32A (KERNEL32.587) */ -BOOL32 WriteProfileString32A( LPCSTR section, LPCSTR entry, LPCSTR string ) +BOOL32 WINAPI WriteProfileString32A( LPCSTR section, LPCSTR entry, + LPCSTR string ) { return WritePrivateProfileString32A( section, entry, string, "win.ini" ); } @@ -860,7 +861,8 @@ BOOL32 WriteProfileString32A( LPCSTR section, LPCSTR entry, LPCSTR string ) /*********************************************************************** * WriteProfileString32W (KERNEL32.588) */ -BOOL32 WriteProfileString32W( LPCWSTR section, LPCWSTR entry, LPCWSTR string ) +BOOL32 WINAPI WriteProfileString32W( LPCWSTR section, LPCWSTR entry, + LPCWSTR string ) { if (!wininiW) wininiW = HEAP_strdupAtoW( SystemHeap, 0, "win.ini" ); return WritePrivateProfileString32W( section, entry, string, wininiW ); @@ -870,8 +872,8 @@ BOOL32 WriteProfileString32W( LPCWSTR section, LPCWSTR entry, LPCWSTR string ) /*********************************************************************** * GetPrivateProfileInt16 (KERNEL.127) */ -UINT16 GetPrivateProfileInt16( LPCSTR section, LPCSTR entry, INT16 def_val, - LPCSTR filename ) +UINT16 WINAPI GetPrivateProfileInt16( LPCSTR section, LPCSTR entry, + INT16 def_val, LPCSTR filename ) { long result=(long)GetPrivateProfileInt32A(section,entry,def_val,filename); @@ -884,8 +886,8 @@ UINT16 GetPrivateProfileInt16( LPCSTR section, LPCSTR entry, INT16 def_val, /*********************************************************************** * GetPrivateProfileInt32A (KERNEL32.251) */ -UINT32 GetPrivateProfileInt32A( LPCSTR section, LPCSTR entry, INT32 def_val, - LPCSTR filename ) +UINT32 WINAPI GetPrivateProfileInt32A( LPCSTR section, LPCSTR entry, + INT32 def_val, LPCSTR filename ) { char buffer[20]; char *p; @@ -902,8 +904,8 @@ UINT32 GetPrivateProfileInt32A( LPCSTR section, LPCSTR entry, INT32 def_val, /*********************************************************************** * GetPrivateProfileInt32W (KERNEL32.252) */ -UINT32 GetPrivateProfileInt32W( LPCWSTR section, LPCWSTR entry, INT32 def_val, - LPCWSTR filename ) +UINT32 WINAPI GetPrivateProfileInt32W( LPCWSTR section, LPCWSTR entry, + INT32 def_val, LPCWSTR filename ) { LPSTR sectionA = HEAP_strdupWtoA( GetProcessHeap(), 0, section ); LPSTR entryA = HEAP_strdupWtoA( GetProcessHeap(), 0, entry ); @@ -918,8 +920,9 @@ UINT32 GetPrivateProfileInt32W( LPCWSTR section, LPCWSTR entry, INT32 def_val, /*********************************************************************** * GetPrivateProfileString16 (KERNEL.128) */ -INT16 GetPrivateProfileString16( LPCSTR section, LPCSTR entry, LPCSTR def_val, - LPSTR buffer, INT16 len, LPCSTR filename ) +INT16 WINAPI GetPrivateProfileString16( LPCSTR section, LPCSTR entry, + LPCSTR def_val, LPSTR buffer, + INT16 len, LPCSTR filename ) { return GetPrivateProfileString32A(section,entry,def_val,buffer,len,filename); } @@ -927,8 +930,9 @@ INT16 GetPrivateProfileString16( LPCSTR section, LPCSTR entry, LPCSTR def_val, /*********************************************************************** * GetPrivateProfileString32A (KERNEL32.255) */ -INT32 GetPrivateProfileString32A( LPCSTR section, LPCSTR entry, LPCSTR def_val, - LPSTR buffer, INT32 len, LPCSTR filename ) +INT32 WINAPI GetPrivateProfileString32A( LPCSTR section, LPCSTR entry, + LPCSTR def_val, LPSTR buffer, + INT32 len, LPCSTR filename ) { if (PROFILE_Open( filename )) return PROFILE_GetString( section, entry, def_val, buffer, len ); @@ -939,9 +943,9 @@ INT32 GetPrivateProfileString32A( LPCSTR section, LPCSTR entry, LPCSTR def_val, /*********************************************************************** * GetPrivateProfileString32W (KERNEL32.256) */ -INT32 GetPrivateProfileString32W( LPCWSTR section, LPCWSTR entry, - LPCWSTR def_val, LPWSTR buffer, - INT32 len, LPCWSTR filename ) +INT32 WINAPI GetPrivateProfileString32W( LPCWSTR section, LPCWSTR entry, + LPCWSTR def_val, LPWSTR buffer, + INT32 len, LPCWSTR filename ) { LPSTR sectionA = HEAP_strdupWtoA( GetProcessHeap(), 0, section ); LPSTR entryA = HEAP_strdupWtoA( GetProcessHeap(), 0, entry ); @@ -964,8 +968,8 @@ INT32 GetPrivateProfileString32W( LPCWSTR section, LPCWSTR entry, /*********************************************************************** * WritePrivateProfileString16 (KERNEL.129) */ -BOOL16 WritePrivateProfileString16(LPCSTR section,LPCSTR entry,LPCSTR string, - LPCSTR filename) +BOOL16 WINAPI WritePrivateProfileString16( LPCSTR section, LPCSTR entry, + LPCSTR string, LPCSTR filename ) { return WritePrivateProfileString32A(section,entry,string,filename); } @@ -973,8 +977,8 @@ BOOL16 WritePrivateProfileString16(LPCSTR section,LPCSTR entry,LPCSTR string, /*********************************************************************** * WritePrivateProfileString32A (KERNEL32.582) */ -BOOL32 WritePrivateProfileString32A(LPCSTR section,LPCSTR entry,LPCSTR string, - LPCSTR filename ) +BOOL32 WINAPI WritePrivateProfileString32A( LPCSTR section, LPCSTR entry, + LPCSTR string, LPCSTR filename ) { if (!PROFILE_Open( filename )) return FALSE; if (!section) return PROFILE_FlushFile(); @@ -984,8 +988,8 @@ BOOL32 WritePrivateProfileString32A(LPCSTR section,LPCSTR entry,LPCSTR string, /*********************************************************************** * WritePrivateProfileString32W (KERNEL32.583) */ -BOOL32 WritePrivateProfileString32W( LPCWSTR section, LPCWSTR entry, - LPCWSTR string, LPCWSTR filename ) +BOOL32 WINAPI WritePrivateProfileString32W( LPCWSTR section, LPCWSTR entry, + LPCWSTR string, LPCWSTR filename ) { LPSTR sectionA = HEAP_strdupWtoA( GetProcessHeap(), 0, section ); LPSTR entryA = HEAP_strdupWtoA( GetProcessHeap(), 0, entry ); @@ -1004,7 +1008,7 @@ BOOL32 WritePrivateProfileString32W( LPCWSTR section, LPCWSTR entry, /*********************************************************************** * WriteOutProfiles (KERNEL.315) */ -void WriteOutProfiles(void) +void WINAPI WriteOutProfiles(void) { PROFILE_FlushFile(); } diff --git a/graphics/bitblt.c b/graphics/bitblt.c index eda13f47a27..2356de8f150 100644 --- a/graphics/bitblt.c +++ b/graphics/bitblt.c @@ -12,8 +12,8 @@ /*********************************************************************** * PatBlt16 (GDI.29) */ -BOOL16 PatBlt16( HDC16 hdc, INT16 left, INT16 top, - INT16 width, INT16 height, DWORD rop) +BOOL16 WINAPI PatBlt16( HDC16 hdc, INT16 left, INT16 top, + INT16 width, INT16 height, DWORD rop) { DC * dc = DC_GetDCPtr( hdc ); if (!dc || !dc->funcs->pPatBlt) return FALSE; @@ -27,8 +27,8 @@ BOOL16 PatBlt16( HDC16 hdc, INT16 left, INT16 top, /*********************************************************************** * PatBlt32 (GDI32.260) */ -BOOL32 PatBlt32( HDC32 hdc, INT32 left, INT32 top, - INT32 width, INT32 height, DWORD rop) +BOOL32 WINAPI PatBlt32( HDC32 hdc, INT32 left, INT32 top, + INT32 width, INT32 height, DWORD rop) { DC * dc = DC_GetDCPtr( hdc ); if (!dc || !dc->funcs->pPatBlt) return FALSE; @@ -42,8 +42,9 @@ BOOL32 PatBlt32( HDC32 hdc, INT32 left, INT32 top, /*********************************************************************** * BitBlt16 (GDI.34) */ -BOOL16 BitBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst, INT16 width, - INT16 height, HDC16 hdcSrc, INT16 xSrc, INT16 ySrc, DWORD rop) +BOOL16 WINAPI BitBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst, INT16 width, + INT16 height, HDC16 hdcSrc, INT16 xSrc, INT16 ySrc, + DWORD rop ) { DC *dcDst, *dcSrc; @@ -63,8 +64,9 @@ BOOL16 BitBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst, INT16 width, /*********************************************************************** * BitBlt32 (GDI32.10) */ -BOOL32 BitBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst, INT32 width, - INT32 height, HDC32 hdcSrc, INT32 xSrc, INT32 ySrc, DWORD rop) +BOOL32 WINAPI BitBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst, INT32 width, + INT32 height, HDC32 hdcSrc, INT32 xSrc, INT32 ySrc, + DWORD rop ) { DC *dcDst, *dcSrc; @@ -84,10 +86,10 @@ BOOL32 BitBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst, INT32 width, /*********************************************************************** * StretchBlt16 (GDI.35) */ -BOOL16 StretchBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst, - INT16 widthDst, INT16 heightDst, - HDC16 hdcSrc, INT16 xSrc, INT16 ySrc, - INT16 widthSrc, INT16 heightSrc, DWORD rop ) +BOOL16 WINAPI StretchBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst, + INT16 widthDst, INT16 heightDst, + HDC16 hdcSrc, INT16 xSrc, INT16 ySrc, + INT16 widthSrc, INT16 heightSrc, DWORD rop ) { DC *dcDst, *dcSrc; @@ -109,10 +111,10 @@ BOOL16 StretchBlt16( HDC16 hdcDst, INT16 xDst, INT16 yDst, /*********************************************************************** * StretchBlt32 (GDI32.350) */ -BOOL32 StretchBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst, - INT32 widthDst, INT32 heightDst, - HDC32 hdcSrc, INT32 xSrc, INT32 ySrc, - INT32 widthSrc, INT32 heightSrc, DWORD rop ) +BOOL32 WINAPI StretchBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst, + INT32 widthDst, INT32 heightDst, + HDC32 hdcSrc, INT32 xSrc, INT32 ySrc, + INT32 widthSrc, INT32 heightSrc, DWORD rop ) { DC *dcDst, *dcSrc; @@ -134,8 +136,8 @@ BOOL32 StretchBlt32( HDC32 hdcDst, INT32 xDst, INT32 yDst, /*********************************************************************** * FastWindowFrame (GDI.400) */ -BOOL16 FastWindowFrame( HDC16 hdc, const RECT16 *rect, - INT16 width, INT16 height, DWORD rop ) +BOOL16 WINAPI FastWindowFrame( HDC16 hdc, const RECT16 *rect, + INT16 width, INT16 height, DWORD rop ) { HBRUSH32 hbrush = SelectObject32( hdc, GetStockObject32( GRAY_BRUSH ) ); PatBlt32( hdc, rect->left, rect->top, diff --git a/graphics/escape.c b/graphics/escape.c index d742fc12b4b..b60b9a8e6af 100644 --- a/graphics/escape.c +++ b/graphics/escape.c @@ -9,19 +9,24 @@ #include "gdi.h" #include "dc.h" -INT16 Escape16( HDC16 hdc, INT16 nEscape, INT16 cbInput, - SEGPTR lpszInData, SEGPTR lpvOutData ) +INT16 WINAPI Escape16( HDC16 hdc, INT16 nEscape, INT16 cbInput, + SEGPTR lpszInData, SEGPTR lpvOutData ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc || !dc->funcs->pEscape) return 0; return dc->funcs->pEscape( dc, nEscape, cbInput, lpszInData, lpvOutData ); } -INT32 Escape32( HDC32 hdc, INT32 nEscape, INT32 cbInput, - LPVOID lpszInData, LPVOID lpvOutData ) +INT32 WINAPI Escape32( HDC32 hdc, INT32 nEscape, INT32 cbInput, + LPVOID lpszInData, LPVOID lpvOutData ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc || !dc->funcs->pEscape) return 0; + switch (nEscape) { + case GETSCALINGFACTOR: + return 1; + + } return dc->funcs->pEscape( dc, nEscape, cbInput, (SEGPTR)lpszInData, (SEGPTR)lpvOutData ); } diff --git a/graphics/fontengine.c b/graphics/fontengine.c index 376b7f76b45..4dd6e1fc7e2 100644 --- a/graphics/fontengine.c +++ b/graphics/fontengine.c @@ -8,23 +8,20 @@ #include "windows.h" /* GDI 300 */ -WORD -EngineEnumerateFont(LPSTR fontname, FARPROC16 proc, DWORD data ) +WORD WINAPI EngineEnumerateFont(LPSTR fontname, FARPROC16 proc, DWORD data ) { printf("In engineEnumerateFont for %s\n",(fontname)?fontname:"NULL"); return 0; } #ifdef NOTDEF /* GDI 301 */ -WORD -EngineDeleteFont(LPFONTINFO16 lpFontInfo) +WORD WINAPI EngineDeleteFont(LPFONTINFO16 lpFontInfo) { return 0 } #endif /* GDI 302 */ -WORD -EngineRealizeFont(LPLOGFONT16 lplogFont, LPTEXTXFORM16 lptextxform, LPFONTINFO16 lpfontInfo) +WORD WINAPI EngineRealizeFont(LPLOGFONT16 lplogFont, LPTEXTXFORM16 lptextxform, LPFONTINFO16 lpfontInfo) { printf("In EngineRealizeFont\n"); @@ -32,27 +29,23 @@ EngineRealizeFont(LPLOGFONT16 lplogFont, LPTEXTXFORM16 lptextxform, LPFONTINFO16 } #ifdef NOTDEF /* GDI 303 */ -WORD -EngineGetCharWidth(LPFONTINFO16 lpFontInfo, BYTE, BYTE, LPINT16) +WORD WINAPI EngineGetCharWidth(LPFONTINFO16 lpFontInfo, BYTE, BYTE, LPINT16) { return 0; } /* GDI 304 */ -WORD -EngineSetFontContext(LPFONTINFO lpFontInfo, WORD data) +WORD WINAPI EngineSetFontContext(LPFONTINFO lpFontInfo, WORD data) { } /* GDI 305 */ -WORD -EngineGetGlyphBMP(WORD word, LPFONTINFO lpFontInfo, WORD, WORD, LPSTR string, DWORD dword, LPBITMAPMETRICS16 metrics) +WORD WINAPI EngineGetGlyphBMP(WORD word, LPFONTINFO lpFontInfo, WORD, WORD, LPSTR string, DWORD dword, LPBITMAPMETRICS16 metrics) { return 0; } /* GDI 306 */ -DWORD -EngineMakeFontDir(HDC16 hdc, LPFONTDIR fontdir, LPCSTR string) +DWORD WINAPI EngineMakeFontDir(HDC16 hdc, LPFONTDIR fontdir, LPCSTR string) { return 0; @@ -60,8 +53,7 @@ EngineMakeFontDir(HDC16 hdc, LPFONTDIR fontdir, LPCSTR string) /* GDI 314 */ -WORD -EngineExtTextOut() +WORD WINAPI EngineExtTextOut() { } diff --git a/graphics/mapping.c b/graphics/mapping.c index e70c1e52bd1..576eb345686 100644 --- a/graphics/mapping.c +++ b/graphics/mapping.c @@ -37,7 +37,7 @@ void MAPPING_FixIsotropic( DC * dc ) /*********************************************************************** * DPtoLP16 (GDI.67) */ -BOOL16 DPtoLP16( HDC16 hdc, LPPOINT16 points, INT16 count ) +BOOL16 WINAPI DPtoLP16( HDC16 hdc, LPPOINT16 points, INT16 count ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return FALSE; @@ -55,7 +55,7 @@ BOOL16 DPtoLP16( HDC16 hdc, LPPOINT16 points, INT16 count ) /*********************************************************************** * DPtoLP32 (GDI32.65) */ -BOOL32 DPtoLP32( HDC32 hdc, LPPOINT32 points, INT32 count ) +BOOL32 WINAPI DPtoLP32( HDC32 hdc, LPPOINT32 points, INT32 count ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return FALSE; @@ -73,7 +73,7 @@ BOOL32 DPtoLP32( HDC32 hdc, LPPOINT32 points, INT32 count ) /*********************************************************************** * LPtoDP16 (GDI.99) */ -BOOL16 LPtoDP16( HDC16 hdc, LPPOINT16 points, INT16 count ) +BOOL16 WINAPI LPtoDP16( HDC16 hdc, LPPOINT16 points, INT16 count ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return FALSE; @@ -91,7 +91,7 @@ BOOL16 LPtoDP16( HDC16 hdc, LPPOINT16 points, INT16 count ) /*********************************************************************** * LPtoDP32 (GDI32.247) */ -BOOL32 LPtoDP32( HDC32 hdc, LPPOINT32 points, INT32 count ) +BOOL32 WINAPI LPtoDP32( HDC32 hdc, LPPOINT32 points, INT32 count ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return FALSE; @@ -109,7 +109,7 @@ BOOL32 LPtoDP32( HDC32 hdc, LPPOINT32 points, INT32 count ) /*********************************************************************** * SetMapMode16 (GDI.3) */ -INT16 SetMapMode16( HDC16 hdc, INT16 mode ) +INT16 WINAPI SetMapMode16( HDC16 hdc, INT16 mode ) { return SetMapMode32( hdc, mode ); } @@ -118,7 +118,7 @@ INT16 SetMapMode16( HDC16 hdc, INT16 mode ) /*********************************************************************** * SetMapMode32 (GDI32.321) */ -INT32 SetMapMode32( HDC32 hdc, INT32 mode ) +INT32 WINAPI SetMapMode32( HDC32 hdc, INT32 mode ) { INT32 prevMode; DC * dc = DC_GetDCPtr( hdc ); @@ -199,7 +199,7 @@ INT32 SetMapMode32( HDC32 hdc, INT32 mode ) /*********************************************************************** * SetViewportExt (GDI.14) */ -DWORD SetViewportExt( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI SetViewportExt( HDC16 hdc, INT16 x, INT16 y ) { SIZE32 size; if (!SetViewportExtEx32( hdc, x, y, &size )) return 0; @@ -210,7 +210,7 @@ DWORD SetViewportExt( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * SetViewportExtEx16 (GDI.479) */ -BOOL16 SetViewportExtEx16( HDC16 hdc, INT16 x, INT16 y, LPSIZE16 size ) +BOOL16 WINAPI SetViewportExtEx16( HDC16 hdc, INT16 x, INT16 y, LPSIZE16 size ) { SIZE32 size32; BOOL16 ret = SetViewportExtEx32( hdc, x, y, &size32 ); @@ -222,7 +222,7 @@ BOOL16 SetViewportExtEx16( HDC16 hdc, INT16 x, INT16 y, LPSIZE16 size ) /*********************************************************************** * SetViewportExtEx32 (GDI32.340) */ -BOOL32 SetViewportExtEx32( HDC32 hdc, INT32 x, INT32 y, LPSIZE32 size ) +BOOL32 WINAPI SetViewportExtEx32( HDC32 hdc, INT32 x, INT32 y, LPSIZE32 size ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; @@ -246,7 +246,7 @@ BOOL32 SetViewportExtEx32( HDC32 hdc, INT32 x, INT32 y, LPSIZE32 size ) /*********************************************************************** * SetViewportOrg (GDI.13) */ -DWORD SetViewportOrg( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI SetViewportOrg( HDC16 hdc, INT16 x, INT16 y ) { POINT32 pt; if (!SetViewportOrgEx32( hdc, x, y, &pt )) return 0; @@ -257,7 +257,7 @@ DWORD SetViewportOrg( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * SetViewportOrgEx16 (GDI.480) */ -BOOL16 SetViewportOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) +BOOL16 WINAPI SetViewportOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) { POINT32 pt32; BOOL16 ret = SetViewportOrgEx32( hdc, x, y, &pt32 ); @@ -269,7 +269,7 @@ BOOL16 SetViewportOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) /*********************************************************************** * SetViewportOrgEx32 (GDI32.341) */ -BOOL32 SetViewportOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) +BOOL32 WINAPI SetViewportOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; @@ -289,7 +289,7 @@ BOOL32 SetViewportOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) /*********************************************************************** * SetWindowExt (GDI.12) */ -DWORD SetWindowExt( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI SetWindowExt( HDC16 hdc, INT16 x, INT16 y ) { SIZE32 size; if (!SetWindowExtEx32( hdc, x, y, &size )) return 0; @@ -300,7 +300,7 @@ DWORD SetWindowExt( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * SetWindowExtEx16 (GDI.481) */ -BOOL16 SetWindowExtEx16( HDC16 hdc, INT16 x, INT16 y, LPSIZE16 size ) +BOOL16 WINAPI SetWindowExtEx16( HDC16 hdc, INT16 x, INT16 y, LPSIZE16 size ) { SIZE32 size32; BOOL16 ret = SetWindowExtEx32( hdc, x, y, &size32 ); @@ -312,7 +312,7 @@ BOOL16 SetWindowExtEx16( HDC16 hdc, INT16 x, INT16 y, LPSIZE16 size ) /*********************************************************************** * SetWindowExtEx32 (GDI32.344) */ -BOOL32 SetWindowExtEx32( HDC32 hdc, INT32 x, INT32 y, LPSIZE32 size ) +BOOL32 WINAPI SetWindowExtEx32( HDC32 hdc, INT32 x, INT32 y, LPSIZE32 size ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; @@ -335,7 +335,7 @@ BOOL32 SetWindowExtEx32( HDC32 hdc, INT32 x, INT32 y, LPSIZE32 size ) /*********************************************************************** * SetWindowOrg (GDI.11) */ -DWORD SetWindowOrg( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI SetWindowOrg( HDC16 hdc, INT16 x, INT16 y ) { POINT32 pt; if (!SetWindowOrgEx32( hdc, x, y, &pt )) return 0; @@ -346,7 +346,7 @@ DWORD SetWindowOrg( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * SetWindowOrgEx16 (GDI.482) */ -BOOL16 SetWindowOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) +BOOL16 WINAPI SetWindowOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) { POINT32 pt32; BOOL16 ret = SetWindowOrgEx32( hdc, x, y, &pt32 ); @@ -358,7 +358,7 @@ BOOL16 SetWindowOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) /*********************************************************************** * SetWindowOrgEx32 (GDI32.345) */ -BOOL32 SetWindowOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) +BOOL32 WINAPI SetWindowOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; @@ -377,7 +377,7 @@ BOOL32 SetWindowOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) /*********************************************************************** * OffsetViewportOrg (GDI.17) */ -DWORD OffsetViewportOrg( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI OffsetViewportOrg( HDC16 hdc, INT16 x, INT16 y ) { POINT32 pt; if (!OffsetViewportOrgEx32( hdc, x, y, &pt )) return 0; @@ -388,7 +388,7 @@ DWORD OffsetViewportOrg( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * OffsetViewportOrgEx16 (GDI.476) */ -BOOL16 OffsetViewportOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) +BOOL16 WINAPI OffsetViewportOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt) { POINT32 pt32; BOOL16 ret = OffsetViewportOrgEx32( hdc, x, y, &pt32 ); @@ -400,7 +400,7 @@ BOOL16 OffsetViewportOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) /*********************************************************************** * OffsetViewportOrgEx32 (GDI32.257) */ -BOOL32 OffsetViewportOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) +BOOL32 WINAPI OffsetViewportOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; @@ -420,7 +420,7 @@ BOOL32 OffsetViewportOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) /*********************************************************************** * OffsetWindowOrg (GDI.15) */ -DWORD OffsetWindowOrg( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI OffsetWindowOrg( HDC16 hdc, INT16 x, INT16 y ) { POINT32 pt; if (!OffsetWindowOrgEx32( hdc, x, y, &pt )) return 0; @@ -431,7 +431,7 @@ DWORD OffsetWindowOrg( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * OffsetWindowOrgEx16 (GDI.477) */ -BOOL16 OffsetWindowOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) +BOOL16 WINAPI OffsetWindowOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) { POINT32 pt32; BOOL16 ret = OffsetWindowOrgEx32( hdc, x, y, &pt32 ); @@ -443,7 +443,7 @@ BOOL16 OffsetWindowOrgEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) /*********************************************************************** * OffsetWindowOrgEx32 (GDI32.258) */ -BOOL32 OffsetWindowOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) +BOOL32 WINAPI OffsetWindowOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; @@ -463,8 +463,8 @@ BOOL32 OffsetWindowOrgEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) /*********************************************************************** * ScaleViewportExt (GDI.18) */ -DWORD ScaleViewportExt( HDC16 hdc, INT16 xNum, INT16 xDenom, - INT16 yNum, INT16 yDenom ) +DWORD WINAPI ScaleViewportExt( HDC16 hdc, INT16 xNum, INT16 xDenom, + INT16 yNum, INT16 yDenom ) { SIZE32 size; if (!ScaleViewportExtEx32( hdc, xNum, xDenom, yNum, yDenom, &size )) @@ -476,8 +476,8 @@ DWORD ScaleViewportExt( HDC16 hdc, INT16 xNum, INT16 xDenom, /*********************************************************************** * ScaleViewportExtEx16 (GDI.484) */ -BOOL16 ScaleViewportExtEx16( HDC16 hdc, INT16 xNum, INT16 xDenom, - INT16 yNum, INT16 yDenom, LPSIZE16 size ) +BOOL16 WINAPI ScaleViewportExtEx16( HDC16 hdc, INT16 xNum, INT16 xDenom, + INT16 yNum, INT16 yDenom, LPSIZE16 size ) { SIZE32 size32; BOOL16 ret = ScaleViewportExtEx32( hdc, xNum, xDenom, yNum, yDenom, @@ -490,8 +490,8 @@ BOOL16 ScaleViewportExtEx16( HDC16 hdc, INT16 xNum, INT16 xDenom, /*********************************************************************** * ScaleViewportExtEx32 (GDI32.293) */ -BOOL32 ScaleViewportExtEx32( HDC32 hdc, INT32 xNum, INT32 xDenom, - INT32 yNum, INT32 yDenom, LPSIZE32 size ) +BOOL32 WINAPI ScaleViewportExtEx32( HDC32 hdc, INT32 xNum, INT32 xDenom, + INT32 yNum, INT32 yDenom, LPSIZE32 size ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; @@ -517,8 +517,8 @@ BOOL32 ScaleViewportExtEx32( HDC32 hdc, INT32 xNum, INT32 xDenom, /*********************************************************************** * ScaleWindowExt (GDI.16) */ -DWORD ScaleWindowExt( HDC16 hdc, INT16 xNum, INT16 xDenom, - INT16 yNum, INT16 yDenom ) +DWORD WINAPI ScaleWindowExt( HDC16 hdc, INT16 xNum, INT16 xDenom, + INT16 yNum, INT16 yDenom ) { SIZE32 size; if (!ScaleWindowExtEx32( hdc, xNum, xDenom, yNum, yDenom, &size )) @@ -530,8 +530,8 @@ DWORD ScaleWindowExt( HDC16 hdc, INT16 xNum, INT16 xDenom, /*********************************************************************** * ScaleWindowExtEx16 (GDI.485) */ -BOOL16 ScaleWindowExtEx16( HDC16 hdc, INT16 xNum, INT16 xDenom, - INT16 yNum, INT16 yDenom, LPSIZE16 size ) +BOOL16 WINAPI ScaleWindowExtEx16( HDC16 hdc, INT16 xNum, INT16 xDenom, + INT16 yNum, INT16 yDenom, LPSIZE16 size ) { SIZE32 size32; BOOL16 ret = ScaleWindowExtEx32( hdc, xNum, xDenom, yNum, yDenom, @@ -544,8 +544,8 @@ BOOL16 ScaleWindowExtEx16( HDC16 hdc, INT16 xNum, INT16 xDenom, /*********************************************************************** * ScaleWindowExtEx32 (GDI32.294) */ -BOOL32 ScaleWindowExtEx32( HDC32 hdc, INT32 xNum, INT32 xDenom, - INT32 yNum, INT32 yDenom, LPSIZE32 size ) +BOOL32 WINAPI ScaleWindowExtEx32( HDC32 hdc, INT32 xNum, INT32 xDenom, + INT32 yNum, INT32 yDenom, LPSIZE32 size ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc) return FALSE; diff --git a/graphics/metafiledrv/init.c b/graphics/metafiledrv/init.c index a5ffa69976f..b187bce5e8d 100644 --- a/graphics/metafiledrv/init.c +++ b/graphics/metafiledrv/init.c @@ -138,7 +138,7 @@ static BOOL32 MFDRV_DeleteDC( DC *dc ) /********************************************************************** * CreateMetafile16 (GDI.125) */ -HDC16 CreateMetaFile16( LPCSTR filename ) +HDC16 WINAPI CreateMetaFile16( LPCSTR filename ) { DC *dc; METAFILEDRV_PDEVICE *physDev; @@ -177,7 +177,7 @@ HDC16 CreateMetaFile16( LPCSTR filename ) /****************************************************************** * CloseMetafile16 (GDI.126) */ -HMETAFILE16 CloseMetaFile16( HDC16 hdc ) +HMETAFILE16 WINAPI CloseMetaFile16( HDC16 hdc ) { DC *dc; HMETAFILE16 hmf; @@ -231,7 +231,7 @@ HMETAFILE16 CloseMetaFile16( HDC16 hdc ) /****************************************************************** * DeleteMetafile16 (GDI.127) */ -BOOL16 DeleteMetaFile16( HMETAFILE16 hmf ) +BOOL16 WINAPI DeleteMetaFile16( HMETAFILE16 hmf ) { return !GlobalFree16( hmf ); } diff --git a/graphics/metafiledrv/objects.c b/graphics/metafiledrv/objects.c index 2c1aa22f353..dcb096d41c2 100644 --- a/graphics/metafiledrv/objects.c +++ b/graphics/metafiledrv/objects.c @@ -83,6 +83,7 @@ static HPEN32 MFDRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen ) HGDIOBJ32 MFDRV_SelectObject( DC *dc, HGDIOBJ32 handle ) { GDIOBJHDR * ptr = GDI_GetObjPtr( handle, MAGIC_DONTCARE ); + HGDIOBJ32 ret = 0; if (!ptr) return 0; dprintf_gdi(stddeb, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle ); @@ -90,15 +91,21 @@ HGDIOBJ32 MFDRV_SelectObject( DC *dc, HGDIOBJ32 handle ) switch(ptr->wMagic) { case PEN_MAGIC: - return MFDRV_PEN_SelectObject( dc, handle, (PENOBJ *)ptr ); + ret = MFDRV_PEN_SelectObject( dc, handle, (PENOBJ *)ptr ); + break; case BRUSH_MAGIC: - return MFDRV_BRUSH_SelectObject( dc, handle, (BRUSHOBJ *)ptr ); + ret = MFDRV_BRUSH_SelectObject( dc, handle, (BRUSHOBJ *)ptr ); + break; case BITMAP_MAGIC: - return MFDRV_BITMAP_SelectObject( dc, handle, (BITMAPOBJ *)ptr ); + ret = MFDRV_BITMAP_SelectObject( dc, handle, (BITMAPOBJ *)ptr ); + break; case FONT_MAGIC: - return MFDRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr ); + ret = MFDRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr ); + break; case REGION_MAGIC: - return (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle ); + ret = (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle ); + break; } - return 0; + GDI_HEAP_UNLOCK( handle ); + return ret; } diff --git a/graphics/painting.c b/graphics/painting.c index ed9646406e0..efd785ab18b 100644 --- a/graphics/painting.c +++ b/graphics/painting.c @@ -29,7 +29,7 @@ /*********************************************************************** * LineTo16 (GDI.19) */ -BOOL16 LineTo16( HDC16 hdc, INT16 x, INT16 y ) +BOOL16 WINAPI LineTo16( HDC16 hdc, INT16 x, INT16 y ) { return LineTo32( hdc, x, y ); } @@ -38,7 +38,7 @@ BOOL16 LineTo16( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * LineTo32 (GDI32.249) */ -BOOL32 LineTo32( HDC32 hdc, INT32 x, INT32 y ) +BOOL32 WINAPI LineTo32( HDC32 hdc, INT32 x, INT32 y ) { DC * dc = DC_GetDCPtr( hdc ); @@ -50,7 +50,7 @@ BOOL32 LineTo32( HDC32 hdc, INT32 x, INT32 y ) /*********************************************************************** * MoveTo (GDI.20) */ -DWORD MoveTo( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI MoveTo( HDC16 hdc, INT16 x, INT16 y ) { POINT16 pt; @@ -63,7 +63,7 @@ DWORD MoveTo( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * MoveToEx16 (GDI.483) */ -BOOL16 MoveToEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) +BOOL16 WINAPI MoveToEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) { POINT32 pt32; @@ -77,7 +77,7 @@ BOOL16 MoveToEx16( HDC16 hdc, INT16 x, INT16 y, LPPOINT16 pt ) /*********************************************************************** * MoveToEx32 (GDI32.254) */ -BOOL32 MoveToEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) +BOOL32 WINAPI MoveToEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) { DC * dc = DC_GetDCPtr( hdc ); @@ -89,8 +89,9 @@ BOOL32 MoveToEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt ) /*********************************************************************** * Arc16 (GDI.23) */ -BOOL16 Arc16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom, - INT16 xstart, INT16 ystart, INT16 xend, INT16 yend ) +BOOL16 WINAPI Arc16( HDC16 hdc, INT16 left, INT16 top, INT16 right, + INT16 bottom, INT16 xstart, INT16 ystart, + INT16 xend, INT16 yend ) { return Arc32( (HDC32)hdc, (INT32)left, (INT32)top, (INT32)right, (INT32)bottom, (INT32)xstart, (INT32)ystart, (INT32)xend, @@ -101,8 +102,9 @@ BOOL16 Arc16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom, /*********************************************************************** * Arc32 (GDI32.7) */ -BOOL32 Arc32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom, - INT32 xstart, INT32 ystart, INT32 xend, INT32 yend ) +BOOL32 WINAPI Arc32( HDC32 hdc, INT32 left, INT32 top, INT32 right, + INT32 bottom, INT32 xstart, INT32 ystart, + INT32 xend, INT32 yend ) { DC * dc = DC_GetDCPtr( hdc ); @@ -114,8 +116,9 @@ BOOL32 Arc32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom, /*********************************************************************** * Pie16 (GDI.26) */ -BOOL16 Pie16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom, - INT16 xstart, INT16 ystart, INT16 xend, INT16 yend ) +BOOL16 WINAPI Pie16( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom, INT16 xstart, INT16 ystart, + INT16 xend, INT16 yend ) { return Pie32( (HDC32)hdc, (INT32)left, (INT32)top, (INT32)right, (INT32)bottom, (INT32)xstart, (INT32)ystart, (INT32)xend, @@ -126,8 +129,9 @@ BOOL16 Pie16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom, /*********************************************************************** * Pie32 (GDI32.262) */ -BOOL32 Pie32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom, - INT32 xstart, INT32 ystart, INT32 xend, INT32 yend ) +BOOL32 WINAPI Pie32( HDC32 hdc, INT32 left, INT32 top, + INT32 right, INT32 bottom, INT32 xstart, INT32 ystart, + INT32 xend, INT32 yend ) { DC * dc = DC_GetDCPtr( hdc ); @@ -139,8 +143,9 @@ BOOL32 Pie32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom, /*********************************************************************** * Chord16 (GDI.348) */ -BOOL16 Chord16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom, - INT16 xstart, INT16 ystart, INT16 xend, INT16 yend ) +BOOL16 WINAPI Chord16( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom, INT16 xstart, INT16 ystart, + INT16 xend, INT16 yend ) { return Chord32( hdc, left, top, right, bottom, xstart, ystart, xend, yend ); } @@ -149,8 +154,9 @@ BOOL16 Chord16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom, /*********************************************************************** * Chord32 (GDI32.14) */ -BOOL32 Chord32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom, - INT32 xstart, INT32 ystart, INT32 xend, INT32 yend ) +BOOL32 WINAPI Chord32( HDC32 hdc, INT32 left, INT32 top, + INT32 right, INT32 bottom, INT32 xstart, INT32 ystart, + INT32 xend, INT32 yend ) { DC * dc = DC_GetDCPtr( hdc ); @@ -162,7 +168,8 @@ BOOL32 Chord32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom, /*********************************************************************** * Ellipse16 (GDI.24) */ -BOOL16 Ellipse16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom ) +BOOL16 WINAPI Ellipse16( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { return Ellipse32( hdc, left, top, right, bottom ); } @@ -171,7 +178,8 @@ BOOL16 Ellipse16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom ) /*********************************************************************** * Ellipse32 (GDI32.75) */ -BOOL32 Ellipse32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom ) +BOOL32 WINAPI Ellipse32( HDC32 hdc, INT32 left, INT32 top, + INT32 right, INT32 bottom ) { DC * dc = DC_GetDCPtr( hdc ); @@ -183,7 +191,8 @@ BOOL32 Ellipse32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom ) /*********************************************************************** * Rectangle16 (GDI.27) */ -BOOL16 Rectangle16(HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom) +BOOL16 WINAPI Rectangle16( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { return Rectangle32( hdc, left, top, right, bottom ); } @@ -192,7 +201,8 @@ BOOL16 Rectangle16(HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom) /*********************************************************************** * Rectangle32 (GDI32.283) */ -BOOL32 Rectangle32(HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom) +BOOL32 WINAPI Rectangle32( HDC32 hdc, INT32 left, INT32 top, + INT32 right, INT32 bottom ) { DC * dc = DC_GetDCPtr( hdc ); @@ -204,8 +214,8 @@ BOOL32 Rectangle32(HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom) /*********************************************************************** * RoundRect16 (GDI.28) */ -BOOL16 RoundRect16( HDC16 hdc, INT16 left, INT16 top, INT16 right, - INT16 bottom, INT16 ell_width, INT16 ell_height ) +BOOL16 WINAPI RoundRect16( HDC16 hdc, INT16 left, INT16 top, INT16 right, + INT16 bottom, INT16 ell_width, INT16 ell_height ) { return RoundRect32( hdc, left, top, right, bottom, ell_width, ell_height ); } @@ -214,8 +224,8 @@ BOOL16 RoundRect16( HDC16 hdc, INT16 left, INT16 top, INT16 right, /*********************************************************************** * RoundRect32 (GDI32.291) */ -BOOL32 RoundRect32( HDC32 hdc, INT32 left, INT32 top, INT32 right, - INT32 bottom, INT32 ell_width, INT32 ell_height ) +BOOL32 WINAPI RoundRect32( HDC32 hdc, INT32 left, INT32 top, INT32 right, + INT32 bottom, INT32 ell_width, INT32 ell_height ) { DC * dc = DC_GetDCPtr( hdc ); @@ -227,7 +237,7 @@ BOOL32 RoundRect32( HDC32 hdc, INT32 left, INT32 top, INT32 right, /*********************************************************************** * FillRect16 (USER.81) */ -INT16 FillRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush ) +INT16 WINAPI FillRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush ) { HBRUSH16 prevBrush; @@ -246,7 +256,7 @@ INT16 FillRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush ) /*********************************************************************** * FillRect32 (USER32.196) */ -INT32 FillRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush ) +INT32 WINAPI FillRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush ) { HBRUSH32 prevBrush; @@ -261,7 +271,7 @@ INT32 FillRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush ) /*********************************************************************** * InvertRect16 (USER.82) */ -void InvertRect16( HDC16 hdc, const RECT16 *rect ) +void WINAPI InvertRect16( HDC16 hdc, const RECT16 *rect ) { PatBlt32( hdc, rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, DSTINVERT ); @@ -271,7 +281,7 @@ void InvertRect16( HDC16 hdc, const RECT16 *rect ) /*********************************************************************** * InvertRect32 (USER32.329) */ -void InvertRect32( HDC32 hdc, const RECT32 *rect ) +void WINAPI InvertRect32( HDC32 hdc, const RECT32 *rect ) { PatBlt32( hdc, rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, DSTINVERT ); @@ -281,7 +291,7 @@ void InvertRect32( HDC32 hdc, const RECT32 *rect ) /*********************************************************************** * FrameRect16 (USER.83) */ -INT16 FrameRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush ) +INT16 WINAPI FrameRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush ) { HBRUSH16 prevBrush; int left, top, right, bottom; @@ -316,7 +326,7 @@ INT16 FrameRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush ) /*********************************************************************** * FrameRect32 (USER32.202) */ -INT32 FrameRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush ) +INT32 WINAPI FrameRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush ) { RECT16 rect16; CONV_RECT32TO16( rect, &rect16 ); @@ -327,7 +337,7 @@ INT32 FrameRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush ) /*********************************************************************** * SetPixel16 (GDI.31) */ -COLORREF SetPixel16( HDC16 hdc, INT16 x, INT16 y, COLORREF color ) +COLORREF WINAPI SetPixel16( HDC16 hdc, INT16 x, INT16 y, COLORREF color ) { return SetPixel32( hdc, x, y, color ); } @@ -336,7 +346,7 @@ COLORREF SetPixel16( HDC16 hdc, INT16 x, INT16 y, COLORREF color ) /*********************************************************************** * SetPixel32 (GDI32.327) */ -COLORREF SetPixel32( HDC32 hdc, INT32 x, INT32 y, COLORREF color ) +COLORREF WINAPI SetPixel32( HDC32 hdc, INT32 x, INT32 y, COLORREF color ) { DC * dc = DC_GetDCPtr( hdc ); @@ -348,7 +358,7 @@ COLORREF SetPixel32( HDC32 hdc, INT32 x, INT32 y, COLORREF color ) /*********************************************************************** * GetPixel16 (GDI.83) */ -COLORREF GetPixel16( HDC16 hdc, INT16 x, INT16 y ) +COLORREF WINAPI GetPixel16( HDC16 hdc, INT16 x, INT16 y ) { return GetPixel32( hdc, x, y ); } @@ -357,7 +367,7 @@ COLORREF GetPixel16( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * GetPixel32 (GDI32.211) */ -COLORREF GetPixel32( HDC32 hdc, INT32 x, INT32 y ) +COLORREF WINAPI GetPixel32( HDC32 hdc, INT32 x, INT32 y ) { DC * dc = DC_GetDCPtr( hdc ); @@ -376,7 +386,7 @@ COLORREF GetPixel32( HDC32 hdc, INT32 x, INT32 y ) /*********************************************************************** * PaintRgn16 (GDI.43) */ -BOOL16 PaintRgn16( HDC16 hdc, HRGN16 hrgn ) +BOOL16 WINAPI PaintRgn16( HDC16 hdc, HRGN16 hrgn ) { return PaintRgn32( hdc, hrgn ); } @@ -385,7 +395,7 @@ BOOL16 PaintRgn16( HDC16 hdc, HRGN16 hrgn ) /*********************************************************************** * PaintRgn32 (GDI32.259) */ -BOOL32 PaintRgn32( HDC32 hdc, HRGN32 hrgn ) +BOOL32 WINAPI PaintRgn32( HDC32 hdc, HRGN32 hrgn ) { DC * dc = DC_GetDCPtr( hdc ); @@ -397,7 +407,7 @@ BOOL32 PaintRgn32( HDC32 hdc, HRGN32 hrgn ) /*********************************************************************** * FillRgn16 (GDI.40) */ -BOOL16 FillRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush ) +BOOL16 WINAPI FillRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush ) { return FillRgn32( hdc, hrgn, hbrush ); } @@ -406,7 +416,7 @@ BOOL16 FillRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush ) /*********************************************************************** * FillRgn32 (GDI32.101) */ -BOOL32 FillRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush ) +BOOL32 WINAPI FillRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush ) { BOOL32 retval; HBRUSH32 prevBrush = SelectObject32( hdc, hbrush ); @@ -420,8 +430,8 @@ BOOL32 FillRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush ) /*********************************************************************** * FrameRgn16 (GDI.41) */ -BOOL16 FrameRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush, - INT16 nWidth, INT16 nHeight ) +BOOL16 WINAPI FrameRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush, + INT16 nWidth, INT16 nHeight ) { return FrameRgn32( hdc, hrgn, hbrush, nWidth, nHeight ); } @@ -430,8 +440,8 @@ BOOL16 FrameRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush, /*********************************************************************** * FrameRgn32 (GDI32.105) */ -BOOL32 FrameRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush, - INT32 nWidth, INT32 nHeight ) +BOOL32 WINAPI FrameRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush, + INT32 nWidth, INT32 nHeight ) { HRGN32 tmp = CreateRectRgn32( 0, 0, 0, 0 ); if(!REGION_FrameRgn( tmp, hrgn, nWidth, nHeight )) return FALSE; @@ -444,7 +454,7 @@ BOOL32 FrameRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush, /*********************************************************************** * InvertRgn16 (GDI.42) */ -BOOL16 InvertRgn16( HDC16 hdc, HRGN16 hrgn ) +BOOL16 WINAPI InvertRgn16( HDC16 hdc, HRGN16 hrgn ) { return InvertRgn32( hdc, hrgn ); } @@ -453,7 +463,7 @@ BOOL16 InvertRgn16( HDC16 hdc, HRGN16 hrgn ) /*********************************************************************** * InvertRgn32 (GDI32.246) */ -BOOL32 InvertRgn32( HDC32 hdc, HRGN32 hrgn ) +BOOL32 WINAPI InvertRgn32( HDC32 hdc, HRGN32 hrgn ) { HBRUSH32 prevBrush = SelectObject32( hdc, GetStockObject32(BLACK_BRUSH) ); INT32 prevROP = SetROP232( hdc, R2_NOT ); @@ -467,7 +477,7 @@ BOOL32 InvertRgn32( HDC32 hdc, HRGN32 hrgn ) /*********************************************************************** * DrawFocusRect16 (USER.466) */ -void DrawFocusRect16( HDC16 hdc, const RECT16* rc ) +void WINAPI DrawFocusRect16( HDC16 hdc, const RECT16* rc ) { RECT32 rect32; CONV_RECT16TO32( rc, &rect32 ); @@ -480,7 +490,7 @@ void DrawFocusRect16( HDC16 hdc, const RECT16* rc ) * * FIXME: PatBlt(PATINVERT) with background brush. */ -void DrawFocusRect32( HDC32 hdc, const RECT32* rc ) +void WINAPI DrawFocusRect32( HDC32 hdc, const RECT32* rc ) { HPEN32 hOldPen; INT32 oldDrawMode, oldBkMode; @@ -515,7 +525,7 @@ void DrawFocusRect32( HDC32 hdc, const RECT32* rc ) /********************************************************************** * Polyline16 (GDI.37) */ -BOOL16 Polyline16( HDC16 hdc, LPPOINT16 pt, INT16 count ) +BOOL16 WINAPI Polyline16( HDC16 hdc, LPPOINT16 pt, INT16 count ) { register int i; LPPOINT32 pt32 = (LPPOINT32)xmalloc(count*sizeof(POINT32)); @@ -531,7 +541,7 @@ BOOL16 Polyline16( HDC16 hdc, LPPOINT16 pt, INT16 count ) /********************************************************************** * Polyline32 (GDI32.276) */ -BOOL32 Polyline32( HDC32 hdc, const LPPOINT32 pt, INT32 count ) +BOOL32 WINAPI Polyline32( HDC32 hdc, const LPPOINT32 pt, INT32 count ) { DC * dc = DC_GetDCPtr( hdc ); @@ -543,7 +553,7 @@ BOOL32 Polyline32( HDC32 hdc, const LPPOINT32 pt, INT32 count ) /********************************************************************** * Polygon16 (GDI.36) */ -BOOL16 Polygon16( HDC16 hdc, LPPOINT16 pt, INT16 count ) +BOOL16 WINAPI Polygon16( HDC16 hdc, LPPOINT16 pt, INT16 count ) { register int i; LPPOINT32 pt32 = (LPPOINT32)xmalloc(count*sizeof(POINT32)); @@ -560,7 +570,7 @@ BOOL16 Polygon16( HDC16 hdc, LPPOINT16 pt, INT16 count ) /********************************************************************** * Polygon32 (GDI32.275) */ -BOOL32 Polygon32( HDC32 hdc, LPPOINT32 pt, INT32 count ) +BOOL32 WINAPI Polygon32( HDC32 hdc, LPPOINT32 pt, INT32 count ) { DC * dc = DC_GetDCPtr( hdc ); @@ -572,7 +582,8 @@ BOOL32 Polygon32( HDC32 hdc, LPPOINT32 pt, INT32 count ) /********************************************************************** * PolyPolygon16 (GDI.450) */ -BOOL16 PolyPolygon16( HDC16 hdc, LPPOINT16 pt, LPINT16 counts, UINT16 polygons) +BOOL16 WINAPI PolyPolygon16( HDC16 hdc, LPPOINT16 pt, LPINT16 counts, + UINT16 polygons ) { int i,nrpts; LPPOINT32 pt32; @@ -597,7 +608,8 @@ BOOL16 PolyPolygon16( HDC16 hdc, LPPOINT16 pt, LPINT16 counts, UINT16 polygons) /********************************************************************** * PolyPolygon32 (GDI.450) */ -BOOL32 PolyPolygon32( HDC32 hdc, LPPOINT32 pt, LPINT32 counts, UINT32 polygons) +BOOL32 WINAPI PolyPolygon32( HDC32 hdc, LPPOINT32 pt, LPINT32 counts, + UINT32 polygons ) { DC * dc = DC_GetDCPtr( hdc ); @@ -608,8 +620,8 @@ BOOL32 PolyPolygon32( HDC32 hdc, LPPOINT32 pt, LPINT32 counts, UINT32 polygons) /********************************************************************** * ExtFloodFill16 (GDI.372) */ -BOOL16 ExtFloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color, - UINT16 fillType ) +BOOL16 WINAPI ExtFloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color, + UINT16 fillType ) { return ExtFloodFill32( hdc, x, y, color, fillType ); } @@ -618,8 +630,8 @@ BOOL16 ExtFloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color, /********************************************************************** * ExtFloodFill32 (GDI32.96) */ -BOOL32 ExtFloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color, - UINT32 fillType ) +BOOL32 WINAPI ExtFloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color, + UINT32 fillType ) { DC *dc = DC_GetDCPtr( hdc ); @@ -631,7 +643,7 @@ BOOL32 ExtFloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color, /********************************************************************** * FloodFill16 (GDI.25) */ -BOOL16 FloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color ) +BOOL16 WINAPI FloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color ) { return ExtFloodFill32( hdc, x, y, color, FLOODFILLBORDER ); } @@ -640,7 +652,7 @@ BOOL16 FloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color ) /********************************************************************** * FloodFill32 (GDI32.104) */ -BOOL32 FloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color ) +BOOL32 WINAPI FloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color ) { return ExtFloodFill32( hdc, x, y, color, FLOODFILLBORDER ); } @@ -649,7 +661,7 @@ BOOL32 FloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color ) /********************************************************************** * DrawEdge16 (USER.659) */ -BOOL16 DrawEdge16( HDC16 hdc, LPRECT16 rc, UINT16 edge, UINT16 flags ) +BOOL16 WINAPI DrawEdge16( HDC16 hdc, LPRECT16 rc, UINT16 edge, UINT16 flags ) { RECT32 rect32; BOOL32 ret; @@ -664,7 +676,7 @@ BOOL16 DrawEdge16( HDC16 hdc, LPRECT16 rc, UINT16 edge, UINT16 flags ) /********************************************************************** * DrawEdge32 (USER32.154) */ -BOOL32 DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags ) +BOOL32 WINAPI DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags ) { HBRUSH32 hbrushOld; @@ -747,7 +759,8 @@ BOOL32 DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags ) /********************************************************************** * DrawFrameControl16 (USER.656) */ -BOOL16 DrawFrameControl16( HDC16 hdc, LPRECT16 rc, UINT16 uType, UINT16 uState ) +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 ); @@ -758,7 +771,8 @@ BOOL16 DrawFrameControl16( HDC16 hdc, LPRECT16 rc, UINT16 uType, UINT16 uState ) /********************************************************************** * DrawFrameControl32 (USER32.157) */ -BOOL32 DrawFrameControl32( HDC32 hdc, LPRECT32 rc, UINT32 uType, UINT32 uState ) +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 ); @@ -768,10 +782,22 @@ BOOL32 DrawFrameControl32( HDC32 hdc, LPRECT32 rc, UINT32 uType, UINT32 uState ) /********************************************************************** * DrawFrameControl32 (USER32.152) */ -BOOL32 DrawAnimatedRects32( HWND32 hwnd, int idAni, - const LPRECT32 lprcFrom, const LPRECT32 lprcTo ) +BOOL32 WINAPI DrawAnimatedRects32( HWND32 hwnd, int idAni, + const LPRECT32 lprcFrom, + const LPRECT32 lprcTo ) { fprintf( stdnimp,"DrawAnimatedRects32(%x,%d,%p,%p), empty stub!\n", hwnd, idAni, lprcFrom, lprcTo ); return TRUE; } + +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", + hdc,hbrush,drawstateproc,lparam,wparam,x,y,z,a,b + ); + return TRUE; +} + diff --git a/graphics/win16drv/init.c b/graphics/win16drv/init.c index 9fc20860f89..4611105c31b 100644 --- a/graphics/win16drv/init.c +++ b/graphics/win16drv/init.c @@ -173,8 +173,9 @@ void InitDrawMode(LPDRAWMODE lpDrawMode) * 1) Just count the number of fonts available. * 2) Store all font data passed. */ -WORD WineEnumDFontCallback(LPLOGFONT16 lpLogFont, LPTEXTMETRIC16 lpTextMetrics, - WORD wFontType, LONG lpvClientData) +WORD WINAPI WineEnumDFontCallback(LPLOGFONT16 lpLogFont, + LPTEXTMETRIC16 lpTextMetrics, + WORD wFontType, LONG lpvClientData) { int wRet = 0; WEPFC *pWEPFC = (WEPFC *)lpvClientData; @@ -325,6 +326,12 @@ BOOL32 WIN16DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device, LPCSTR output, (void *)&wepfc); numFonts = wepfc.nCount; } + else + { + /* If the number of fonts returned are zero we can not continue */ + fprintf( stderr, "No fonts? Aborting CreateDC...\n"); + return FALSE; + } } } @@ -476,20 +483,17 @@ struct hpq static struct hpq *hpqueue; -HPQ -CreatePQ(int size) +HPQ WINAPI CreatePQ(int size) { printf("CreatePQ: %d\n",size); return 1; } -int -DeletePQ(HPQ hPQ) +int WINAPI DeletePQ(HPQ hPQ) { printf("DeletePQ: %x\n", hPQ); return 0; } -int -ExtractPQ(HPQ hPQ) +int WINAPI ExtractPQ(HPQ hPQ) { struct hpq *queue, *prev, *current, *currentPrev; int key = 0, tag = -1; @@ -527,8 +531,7 @@ ExtractPQ(HPQ hPQ) return tag; } -int -InsertPQ(HPQ hPQ, int tag, int key) +int WINAPI InsertPQ(HPQ hPQ, int tag, int key) { struct hpq *queueItem = malloc(sizeof(struct hpq)); queueItem->next = hpqueue; @@ -539,14 +542,12 @@ InsertPQ(HPQ hPQ, int tag, int key) printf("InsertPQ: %x %d %d\n", hPQ, tag, key); return TRUE; } -int -MinPQ(HPQ hPQ) +int WINAPI MinPQ(HPQ hPQ) { printf("MinPQ: %x\n", hPQ); return 0; } -int -SizePQ(HPQ hPQ, int sizechange) +int WINAPI SizePQ(HPQ hPQ, int sizechange) { printf("SizePQ: %x %d\n", hPQ, sizechange); return -1; @@ -656,7 +657,7 @@ static int FreePrintJob(HANDLE16 hJob) return nRet; } -HANDLE16 OpenJob(LPSTR lpOutput, LPSTR lpTitle, HDC16 hDC) +HANDLE16 WINAPI OpenJob(LPSTR lpOutput, LPSTR lpTitle, HDC16 hDC) { HANDLE16 hHandle = SP_ERROR; PPRINTJOB pPrintJob; @@ -690,7 +691,7 @@ HANDLE16 OpenJob(LPSTR lpOutput, LPSTR lpTitle, HDC16 hDC) return hHandle; } -int CloseJob(HANDLE16 hJob) +int WINAPI CloseJob(HANDLE16 hJob) { int nRet = SP_ERROR; PPRINTJOB pPrintJob = NULL; @@ -708,7 +709,7 @@ int CloseJob(HANDLE16 hJob) return nRet; } -int WriteSpool(HANDLE16 hJob, LPSTR lpData, WORD cch) +int WINAPI WriteSpool(HANDLE16 hJob, LPSTR lpData, WORD cch) { int nRet = SP_ERROR; PPRINTJOB pPrintJob = NULL; @@ -726,7 +727,7 @@ int WriteSpool(HANDLE16 hJob, LPSTR lpData, WORD cch) return nRet; } -int WriteDialog(HANDLE16 hJob, LPSTR lpMsg, WORD cchMsg) +int WINAPI WriteDialog(HANDLE16 hJob, LPSTR lpMsg, WORD cchMsg) { int nRet = 0; @@ -736,7 +737,7 @@ int WriteDialog(HANDLE16 hJob, LPSTR lpMsg, WORD cchMsg) return nRet; } -int DeleteJob(HANDLE16 hJob, WORD wNotUsed) +int WINAPI DeleteJob(HANDLE16 hJob, WORD wNotUsed) { int nRet; @@ -751,20 +752,20 @@ int DeleteJob(HANDLE16 hJob, WORD wNotUsed) * when it has been processed. For simplicity they havn't been implemented. * This means a whole job has to be processed before it is sent to the printer. */ -int StartSpoolPage(HANDLE16 hJob) +int WINAPI StartSpoolPage(HANDLE16 hJob) { dprintf_win16drv(stddeb, "StartSpoolPage GDI.246 unimplemented\n"); return 1; } -int EndSpoolPage(HANDLE16 hJob) +int WINAPI EndSpoolPage(HANDLE16 hJob) { dprintf_win16drv(stddeb, "EndSpoolPage GDI.247 unimplemented\n"); return 1; } -DWORD GetSpoolJob(int nOption, LONG param) +DWORD WINAPI GetSpoolJob(int nOption, LONG param) { DWORD retval = 0; dprintf_win16drv(stddeb, "In GetSpoolJob param 0x%lx noption %d\n",param, nOption); diff --git a/graphics/win16drv/objects.c b/graphics/win16drv/objects.c index c865790152d..ee547245b77 100644 --- a/graphics/win16drv/objects.c +++ b/graphics/win16drv/objects.c @@ -24,11 +24,12 @@ extern HPEN32 WIN16DRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen ); /*********************************************************************** - * X11DRV_SelectObject + * WIN16DRV_SelectObject */ HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle ) { GDIOBJHDR *ptr = GDI_GetObjPtr( handle, MAGIC_DONTCARE ); + HGDIOBJ32 ret = 0; if (!ptr) return 0; dprintf_gdi(stddeb, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle ); @@ -37,17 +38,17 @@ HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle ) { case PEN_MAGIC: fprintf(stderr, "WIN16DRV_SelectObject for PEN not implemented\n"); - return 0; case BRUSH_MAGIC: fprintf(stderr, "WIN16DRV_SelectObject for BRUSH not implemented\n"); - return 0; case BITMAP_MAGIC: fprintf(stderr, "WIN16DRV_SelectObject for BITMAP not implemented\n"); - return 0; case FONT_MAGIC: - return WIN16DRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr ); + ret = WIN16DRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr ); + break; case REGION_MAGIC: - return (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle ); + ret = (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle ); + break; } - return 0; + GDI_HEAP_UNLOCK( handle ); + return ret; } diff --git a/graphics/wing.c b/graphics/wing.c index 90321e523e0..58be55439bc 100644 --- a/graphics/wing.c +++ b/graphics/wing.c @@ -66,7 +66,7 @@ static void __initWinG() /*********************************************************************** * WinGCreateDC16 (WING.1001) */ -HDC16 WinGCreateDC16(void) +HDC16 WINAPI WinGCreateDC16(void) { __initWinG(); @@ -78,7 +78,7 @@ HDC16 WinGCreateDC16(void) /*********************************************************************** * WinGRecommendDIBFormat16 (WING.1002) */ -BOOL16 WinGRecommendDIBFormat16(BITMAPINFO *fmt) +BOOL16 WINAPI WinGRecommendDIBFormat16(BITMAPINFO *fmt) { fprintf(stdnimp,"WinGRecommendDIBFormat()\n"); @@ -93,7 +93,8 @@ BOOL16 WinGRecommendDIBFormat16(BITMAPINFO *fmt) /*********************************************************************** * WinGCreateBitmap16 (WING.1003) */ -HBITMAP16 WinGCreateBitmap16(HDC16 winDC, BITMAPINFO *header, void **bits) +HBITMAP16 WINAPI WinGCreateBitmap16(HDC16 winDC, BITMAPINFO *header, + void **bits) { fprintf(stdnimp,"WinGCreateBitmap: empty stub! (expect failure)\n"); if( __WinGOK > 0 && header ) @@ -126,7 +127,7 @@ HBITMAP16 WinGCreateBitmap16(HDC16 winDC, BITMAPINFO *header, void **bits) if (hbitmap) { __ShmBitmapCtl* p = (__ShmBitmapCtl*)xmalloc(sizeof(__ShmBitmapCtl)); - BITMAPOBJ* bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_LIN_ADDR( hbitmap ); + BITMAPOBJ* bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_LOCK( hbitmap ); bmpObjPtr->size.cx = 0; bmpObjPtr->size.cy = 0; @@ -170,6 +171,7 @@ HBITMAP16 WinGCreateBitmap16(HDC16 winDC, BITMAPINFO *header, void **bits) hbitmap = 0; } } + GDI_HEAP_UNLOCK( hbitmap ); return hbitmap; } } @@ -181,7 +183,7 @@ HBITMAP16 WinGCreateBitmap16(HDC16 winDC, BITMAPINFO *header, void **bits) /*********************************************************************** * WinGGetDIBPointer (WING.1004) */ -SEGPTR WinGGetDIBPointer16(HBITMAP16 hWinGBitmap, BITMAPINFO* bmpi) +SEGPTR WINAPI WinGGetDIBPointer16(HBITMAP16 hWinGBitmap, BITMAPINFO* bmpi) { #ifdef PRELIMINARY_WING16_SUPPORT BITMAPOBJ* bmp = (BITMAPOBJ *) GDI_GetObjPtr( hWinGBitmap, BITMAP_MAGIC ); @@ -192,6 +194,7 @@ SEGPTR WinGGetDIBPointer16(HBITMAP16 hWinGBitmap, BITMAPINFO* bmpi) if( p ) { if( bmpi ) memcpy( bmpi, &__bmpiWinG, sizeof(BITMAPINFOHEADER)); + GDI_HEAP_UNLOCK( hWinGBitmap ); return p->bits; } } @@ -202,7 +205,8 @@ SEGPTR WinGGetDIBPointer16(HBITMAP16 hWinGBitmap, BITMAPINFO* bmpi) /*********************************************************************** * WinGSetDIBColorTable (WING.1004) */ -UINT16 WinGSetDIBColorTable16(HDC16 hWinGDC, UINT16 start, UINT16 num, RGBQUAD* pColor) +UINT16 WINAPI WinGSetDIBColorTable16(HDC16 hWinGDC, UINT16 start, UINT16 num, + RGBQUAD* pColor) { fprintf(stdnimp,"WinGSetDIBColorTable: empty stub!\n"); return num; @@ -211,8 +215,8 @@ UINT16 WinGSetDIBColorTable16(HDC16 hWinGDC, UINT16 start, UINT16 num, RGBQUAD* /*********************************************************************** * WinGGetDIBColorTable16 (WING.1005) */ -UINT16 WinGGetDIBColorTable16(HDC16 winDC, UINT16 start, UINT16 numentry, - RGBQUAD* colors) +UINT16 WINAPI WinGGetDIBColorTable16(HDC16 winDC, UINT16 start, + UINT16 numentry, RGBQUAD* colors) { fprintf(stdnimp,"WinGGetDIBColorTable: empty stub!\n"); return 0; @@ -221,7 +225,7 @@ UINT16 WinGGetDIBColorTable16(HDC16 winDC, UINT16 start, UINT16 numentry, /*********************************************************************** * WinGCreateHalfTonePalette16 (WING.1007) */ -HPALETTE16 WinGCreateHalfTonePalette16(void) +HPALETTE16 WINAPI WinGCreateHalfTonePalette16(void) { fprintf(stdnimp,"WinGCreateHalfTonePalette: empty stub!\n"); return 0; @@ -230,7 +234,8 @@ HPALETTE16 WinGCreateHalfTonePalette16(void) /*********************************************************************** * WinGCreateHalfToneBrush16 (WING.1008) */ -HPALETTE16 WinGCreateHalfToneBrush16(HDC16 winDC, COLORREF col, WING_DITHER_TYPE type) +HPALETTE16 WINAPI WinGCreateHalfToneBrush16(HDC16 winDC, COLORREF col, + WING_DITHER_TYPE type) { fprintf(stdnimp,"WinGCreateHalfToneBrush: empty stub!\n"); return 0; @@ -239,9 +244,10 @@ HPALETTE16 WinGCreateHalfToneBrush16(HDC16 winDC, COLORREF col, WING_DITHER_TYPE /*********************************************************************** * WinGStretchBlt16 (WING.1009) */ -BOOL16 WinGStretchBlt16(HDC16 destDC, INT16 xDest, INT16 yDest, INT16 widDest, - INT16 heiDest, HDC16 srcDC, INT16 xSrc, INT16 ySrc, - INT16 widSrc, INT16 heiSrc) +BOOL16 WINAPI WinGStretchBlt16(HDC16 destDC, INT16 xDest, INT16 yDest, + INT16 widDest, INT16 heiDest, + HDC16 srcDC, INT16 xSrc, INT16 ySrc, + INT16 widSrc, INT16 heiSrc) { return StretchBlt16(destDC, xDest, yDest, widDest, heiDest, srcDC, xSrc, ySrc, widSrc, heiSrc, SRCCOPY); @@ -252,8 +258,9 @@ BOOL16 WinGStretchBlt16(HDC16 destDC, INT16 xDest, INT16 yDest, INT16 widDest, /*********************************************************************** * WinGBitBlt16 (WING.1010) */ -BOOL16 WinGBitBlt16(HDC16 destDC, INT16 xDest, INT16 yDest, INT16 widDest, - INT16 heiDest, HDC16 srcDC, INT16 xSrc, INT16 ySrc) +BOOL16 WINAPI WinGBitBlt16(HDC16 destDC, INT16 xDest, INT16 yDest, + INT16 widDest, INT16 heiDest, HDC16 srcDC, + INT16 xSrc, INT16 ySrc) { /* destDC is a display DC, srcDC is a memory DC */ diff --git a/graphics/x11drv/bitblt.c b/graphics/x11drv/bitblt.c index 1fbd3c517da..a497ce24519 100644 --- a/graphics/x11drv/bitblt.c +++ b/graphics/x11drv/bitblt.c @@ -1341,6 +1341,34 @@ BOOL32 BITBLT_InternalStretchBlt( DC *dcDst, INT32 xDst, INT32 yDst, return TRUE; } +struct StretchBlt_params +{ + DC *dcDst; + INT32 xDst; + INT32 yDst; + INT32 widthDst; + INT32 heightDst; + DC *dcSrc; + INT32 xSrc; + INT32 ySrc; + INT32 widthSrc; + INT32 heightSrc; + DWORD rop; +}; + +/*********************************************************************** + * BITBLT_DoStretchBlt + * + * Wrapper function for BITBLT_InternalStretchBlt + * to use with CALL_LARGE_STACK. + */ +static int BITBLT_DoStretchBlt( const struct StretchBlt_params *p ) +{ + return (int)BITBLT_InternalStretchBlt( p->dcDst, p->xDst, p->yDst, + p->widthDst, p->heightDst, + p->dcSrc, p->xSrc, p->ySrc, + p->widthSrc, p->heightSrc, p->rop ); +} /*********************************************************************** * X11DRV_PatBlt @@ -1348,9 +1376,9 @@ BOOL32 BITBLT_InternalStretchBlt( DC *dcDst, INT32 xDst, INT32 yDst, BOOL32 X11DRV_PatBlt( DC *dc, INT32 left, INT32 top, INT32 width, INT32 height, DWORD rop ) { - return CallTo32_LargeStack( (int(*)())BITBLT_InternalStretchBlt, 11, - dc, left, top, width, height, - NULL, 0, 0, 0, 0, rop ); + struct StretchBlt_params params = { dc, left, top, width, height, + NULL, 0, 0, 0, 0, rop }; + return (BOOL32)CALL_LARGE_STACK( BITBLT_DoStretchBlt, ¶ms ); } @@ -1361,9 +1389,9 @@ BOOL32 X11DRV_BitBlt( DC *dcDst, INT32 xDst, INT32 yDst, INT32 width, INT32 height, DC *dcSrc, INT32 xSrc, INT32 ySrc, DWORD rop ) { - return CallTo32_LargeStack( (int(*)())BITBLT_InternalStretchBlt, 11, - dcDst, xDst, yDst, width, height, - dcSrc, xSrc, ySrc, width, height, rop ); + struct StretchBlt_params params = { dcDst, xDst, yDst, width, height, + dcSrc, xSrc, ySrc, width, height, rop}; + return (BOOL32)CALL_LARGE_STACK( BITBLT_DoStretchBlt, ¶ms ); } @@ -1375,7 +1403,8 @@ BOOL32 X11DRV_StretchBlt( DC *dcDst, INT32 xDst, INT32 yDst, DC *dcSrc, INT32 xSrc, INT32 ySrc, INT32 widthSrc, INT32 heightSrc, DWORD rop ) { - return CallTo32_LargeStack( (int(*)())BITBLT_InternalStretchBlt, 11, - dcDst, xDst, yDst, widthDst, heightDst, - dcSrc, xSrc, ySrc, widthSrc, heightSrc, rop ); + struct StretchBlt_params params = { dcDst, xDst, yDst, widthDst, heightDst, + dcSrc, xSrc, ySrc, widthSrc, heightSrc, + rop }; + return (BOOL32)CALL_LARGE_STACK( BITBLT_DoStretchBlt, ¶ms ); } diff --git a/graphics/x11drv/brush.c b/graphics/x11drv/brush.c index 1fe88daf5d3..a162ad78b22 100644 --- a/graphics/x11drv/brush.c +++ b/graphics/x11drv/brush.c @@ -179,6 +179,7 @@ static BOOL32 BRUSH_SelectPatternBrush( DC * dc, HBITMAP32 hbitmap ) dc->u.x.brush.fillStyle = FillOpaqueStippled; dc->u.x.brush.pixel = -1; /* Special case (see DC_SetupGCForBrush) */ } + GDI_HEAP_UNLOCK( hbitmap ); return TRUE; } diff --git a/graphics/x11drv/clipping.c b/graphics/x11drv/clipping.c index ddc91833759..7645e6867ab 100644 --- a/graphics/x11drv/clipping.c +++ b/graphics/x11drv/clipping.c @@ -31,4 +31,5 @@ void X11DRV_SetDeviceClipping( DC * dc ) { XSetClipRectangles( display, dc->u.x.gc, 0, 0, NULL, 0, 0 ); } + GDI_HEAP_UNLOCK( dc->w.hGCClipRgn ); } diff --git a/graphics/x11drv/graphics.c b/graphics/x11drv/graphics.c index 2619425d6c6..ec80312f7ac 100644 --- a/graphics/x11drv/graphics.c +++ b/graphics/x11drv/graphics.c @@ -631,16 +631,29 @@ static void X11DRV_InternalFloodFill(XImage *image, DC *dc, * * Main flood-fill routine. */ -static BOOL32 X11DRV_DoFloodFill( DC *dc, RECT32 *rect, INT32 x, INT32 y, - COLORREF color, UINT32 fillType ) + +struct FloodFill_params +{ + DC *dc; + INT32 x; + INT32 y; + COLORREF color; + UINT32 fillType; +}; + +static BOOL32 X11DRV_DoFloodFill( const struct FloodFill_params *params ) { XImage *image; + RECT32 rect; + DC *dc = params->dc; + + if (GetRgnBox32( dc->w.hGCClipRgn, &rect ) == ERROR) return FALSE; if (!(image = XGetImage( display, dc->u.x.drawable, - dc->w.DCOrgX + rect->left, - dc->w.DCOrgY + rect->top, - rect->right - rect->left, - rect->bottom - rect->top, + dc->w.DCOrgX + rect.left, + dc->w.DCOrgY + rect.top, + rect.right - rect.left, + rect.bottom - rect.top, AllPlanes, ZPixmap ))) return FALSE; if (DC_SetupGCForBrush( dc )) @@ -648,11 +661,12 @@ static BOOL32 X11DRV_DoFloodFill( DC *dc, RECT32 *rect, INT32 x, INT32 y, /* ROP mode is always GXcopy for flood-fill */ XSetFunction( display, dc->u.x.gc, GXcopy ); X11DRV_InternalFloodFill(image, dc, - XLPTODP(dc,x) - rect->left, - YLPTODP(dc,y) - rect->top, - dc->w.DCOrgX + rect->left, - dc->w.DCOrgY + rect->top, - COLOR_ToPhysical( dc, color ), fillType ); + XLPTODP(dc,params->x) - rect.left, + YLPTODP(dc,params->y) - rect.top, + dc->w.DCOrgX + rect.left, + dc->w.DCOrgY + rect.top, + COLOR_ToPhysical( dc, params->color ), + params->fillType ); } XDestroyImage( image ); @@ -667,15 +681,11 @@ BOOL32 X11DRV_ExtFloodFill( DC *dc, INT32 x, INT32 y, COLORREF color, UINT32 fillType ) { - RECT32 rect; - HDC32 hdc = dc->hSelf; /* FIXME */ + struct FloodFill_params params = { dc, x, y, color, fillType }; dprintf_graphics( stddeb, "X11DRV_ExtFloodFill %d,%d %06lx %d\n", x, y, color, fillType ); - if (!PtVisible32( hdc, x, y )) return FALSE; - if (GetRgnBox32( dc->w.hGCClipRgn, &rect ) == ERROR) return FALSE; - - return CallTo32_LargeStack( (int(*)())X11DRV_DoFloodFill, 6, - dc, &rect, x, y, color, fillType ); + if (!PtVisible32( dc->hSelf, x, y )) return FALSE; + return CALL_LARGE_STACK( X11DRV_DoFloodFill, ¶ms ); } diff --git a/graphics/x11drv/init.c b/graphics/x11drv/init.c index 0d7496f6fae..6cfd5a1bb4d 100644 --- a/graphics/x11drv/init.c +++ b/graphics/x11drv/init.c @@ -136,6 +136,8 @@ BOOL32 X11DRV_Init(void) X11DRV_DevCaps.rasterCaps |= RC_PALETTE; X11DRV_DevCaps.sizePalette = DefaultVisual(display,DefaultScreen(display))->map_entries; } + + /* Resolution will be adjusted during the font init */ X11DRV_DevCaps.logPixelsX = (int)(X11DRV_DevCaps.horzRes * 25.4 / X11DRV_DevCaps.horzSize); X11DRV_DevCaps.logPixelsY = (int)(X11DRV_DevCaps.vertRes * 25.4 / X11DRV_DevCaps.vertSize); @@ -177,6 +179,7 @@ static BOOL32 X11DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device, dc->w.bitsPerPixel = bmp->bitmap.bmBitsPixel; dc->w.hVisRgn = CreateRectRgn32( 0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight ); + GDI_HEAP_UNLOCK( dc->w.hBitmap ); } else { diff --git a/graphics/x11drv/objects.c b/graphics/x11drv/objects.c index fb2f0b8b338..c665b07842a 100644 --- a/graphics/x11drv/objects.c +++ b/graphics/x11drv/objects.c @@ -29,6 +29,7 @@ extern HPEN32 X11DRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen ); HGDIOBJ32 X11DRV_SelectObject( DC *dc, HGDIOBJ32 handle ) { GDIOBJHDR *ptr = GDI_GetObjPtr( handle, MAGIC_DONTCARE ); + HGDIOBJ32 ret = 0; if (!ptr) return 0; dprintf_gdi(stddeb, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle ); @@ -36,15 +37,21 @@ HGDIOBJ32 X11DRV_SelectObject( DC *dc, HGDIOBJ32 handle ) switch(ptr->wMagic) { case PEN_MAGIC: - return X11DRV_PEN_SelectObject( dc, handle, (PENOBJ *)ptr ); + ret = X11DRV_PEN_SelectObject( dc, handle, (PENOBJ *)ptr ); + break; case BRUSH_MAGIC: - return X11DRV_BRUSH_SelectObject( dc, handle, (BRUSHOBJ *)ptr ); + ret = X11DRV_BRUSH_SelectObject( dc, handle, (BRUSHOBJ *)ptr ); + break; case BITMAP_MAGIC: - return X11DRV_BITMAP_SelectObject( dc, handle, (BITMAPOBJ *)ptr ); + ret = X11DRV_BITMAP_SelectObject( dc, handle, (BITMAPOBJ *)ptr ); + break; case FONT_MAGIC: - return X11DRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr ); + ret = X11DRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr ); + break; case REGION_MAGIC: - return (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle ); + ret = (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle ); + break; } - return 0; + GDI_HEAP_UNLOCK( handle ); + return ret; } diff --git a/graphics/x11drv/xfont.c b/graphics/x11drv/xfont.c index f12d89f3fd6..4b112e27c24 100644 --- a/graphics/x11drv/xfont.c +++ b/graphics/x11drv/xfont.c @@ -48,11 +48,44 @@ typedef struct __fontAlias struct __fontAlias* next; } fontAlias; +typedef struct +{ + LPSTR fatResource; + LPSTR fatAlias; +} aliasTemplate; + +/* Font alias table - these 2 aliases are always present */ + static fontAlias aliasTable[2] = { { "Helvetica", "Helv", &aliasTable[1] }, { "Times", "Tms Rmn", NULL } }; +/* Optional built-in aliases, they are installed only when X + * cannot supply us with original MS fonts */ + +static int faTemplateNum = 4; +static aliasTemplate faTemplate[4] = { + { "-adobe-helvetica-", "MS Sans Serif" }, + { "-bitstream-charter-", "MS Serif" }, + { "-adobe-times-", "Times New Roman" }, + { "-adobe-helvetica-", "Arial" } + }; + +/* Charset translation table, cp125-.. encoded fonts are produced by + * the fnt2bdf */ + +static int numCPTranslation = 8; +static BYTE CPTranslation[] = { EE_CHARSET, /* cp125-0 */ + RUSSIAN_CHARSET, /* cp125-1 */ + ANSI_CHARSET, /* cp125-2 */ + GREEK_CHARSET, /* cp125-3 */ + TURKISH_CHARSET, /* cp125-4 */ + HEBREW_CHARSET, /* cp125-5 */ + ARABIC_CHARSET, /* cp125-6 */ + BALTIC_CHARSET /* cp125-7 */ + }; + UINT16 XTextCaps = TC_OP_CHARACTER | TC_OP_STROKE | TC_CP_STROKE | TC_SA_DOUBLE | TC_SA_INTEGER | TC_SA_CONTIN | TC_UA_ABLE | TC_SO_ABLE | TC_RA_ABLE; @@ -64,14 +97,17 @@ static const char* INIFontMetrics = "/.cachedmetrics"; static const char* INIFontSection = "fonts"; static const char* INISubSection = "Alias"; static const char* INIDefault = "Default"; +static const char* INIResolution = "Resolution"; +static const char* INIGlobalMetrics = "FontMetrics"; static const char* LFDSeparator = "*-"; +static const char* localMSEncoding = "cp125-"; static const char* iso8859Encoding = "iso8859-"; static const char* iso646Encoding = "iso646.1991-"; static const char* ansiEncoding = "ansi-"; -static fontResource* fontList = NULL; static unsigned DefResolution = 0; +static fontResource* fontList = NULL; static fontObject* fontCache = NULL; /* array */ static int fontCacheSize = FONTCACHE; static int fontLF = -1, fontMRU = -1; /* last free, most recently used */ @@ -317,28 +353,32 @@ static int LFD_InitFontInfo( fontInfo* fi, LPSTR lpstr ) *(lpch - 1) = LFDSeparator[1]; /* charset registry, charset encoding - */ - if( strstr(lpch, "jisx") || strstr(lpch, "ksc") ) return FALSE; /* 2-byte stuff */ + if( strstr(lpch, "jisx") || + strstr(lpch, "ksc") || + strstr(lpch, "gb2312") ) return FALSE; /* 2-byte stuff */ + fi->df.dfCharSet = ANSI_CHARSET; if( strstr(lpch, iso8859Encoding) ) - { fi->fi_flags |= FI_ENC_ISO8859; - fi->df.dfCharSet = ANSI_CHARSET; - } else if( strstr(lpch, iso646Encoding) ) - { fi->fi_flags |= FI_ENC_ISO646; - fi->df.dfCharSet = ANSI_CHARSET; - } - else if( strstr(lpch, ansiEncoding) ) /* font2bdf produces -ansi-0 LFD */ - { + else if( strstr(lpch, ansiEncoding) ) /* fnt2bdf produces -ansi-0 LFD */ fi->fi_flags |= FI_ENC_ANSI; - fi->df.dfCharSet = ANSI_CHARSET; + else /* ... and -cp125-x */ + { + fi->df.dfCharSet = OEM_CHARSET; + if( !strncasecmp(lpch, localMSEncoding, 6) ) + { + lpch = LFD_Advance( lpch, 1 ); + if( lpch && (i = atoi( lpch )) < numCPTranslation ) + { + fi->fi_flags |= FI_ENC_MSCODEPAGE; + fi->df.dfCharSet = CPTranslation[i]; + } + } + else if( strstr(lpch, "fontspecific") ) + fi->df.dfCharSet = SYMBOL_CHARSET; } - else if( strstr(lpch, "fontspecific") ) - fi->df.dfCharSet = SYMBOL_CHARSET; - else - fi->df.dfCharSet = OEM_CHARSET; /* FIXME: -cp126-.. from fnt2bdf */ - return TRUE; } @@ -348,7 +388,7 @@ static int LFD_InitFontInfo( fontInfo* fi, LPSTR lpstr ) static BOOL32 LFD_ComposeLFD( fontObject* fo, INT32 height, LPSTR lpLFD, UINT32 uRelax ) { - int h, w, ch, point = 0; + int h, w, ch, enc_ch, point = 0; char* lpch; const char* lpEncoding = NULL; @@ -400,9 +440,12 @@ static BOOL32 LFD_ComposeLFD( fontObject* fo, if( fo->fo_flags & FO_SYNTH_HEIGHT ) h = fo->fi->lfd_height; else h = (fo->fi->lfd_height * height) / fo->fi->df.dfPixHeight; - if( fo->lf.lfWidth && (XTextCaps & TC_SF_X_YINDEP) - && !(fo->fo_flags & FO_SYNTH_WIDTH) ) - point = (fo->fi->lfd_decipoints * fo->lf.lfWidth) / fo->fi->df.dfAvgWidth; + if( XTextCaps & TC_SF_X_YINDEP ) + if( fo->lf.lfWidth && !(fo->fo_flags & FO_SYNTH_WIDTH) ) + point = (fo->fi->lfd_decipoints * fo->lf.lfWidth) / fo->fi->df.dfAvgWidth; + else + if( fo->fi->fi_flags & FI_SCALABLE ) /* adjust h/w ratio */ + point = h * 72 * 10 / fo->fi->lfd_resolution; /* spacing and width */ @@ -411,16 +454,35 @@ static BOOL32 LFD_ComposeLFD( fontObject* fo, else w = ( fo->fi->fi_flags & FI_VARIABLEPITCH ) ? 'p' : LFDSeparator[0]; -/* encoding, not quite there yet */ +/* encoding */ + enc_ch = '*'; if( fo->fi->df.dfCharSet == ANSI_CHARSET ) { if( fo->fi->fi_flags & FI_ENC_ISO8859 ) lpEncoding = iso8859Encoding; else if( fo->fi->fi_flags & FI_ENC_ISO646 ) lpEncoding = iso646Encoding; + else if( fo->fi->fi_flags & FI_ENC_MSCODEPAGE ) + { + enc_ch = '2'; + lpEncoding = localMSEncoding; + } else lpEncoding = ansiEncoding; - } else lpEncoding = LFDSeparator; + } + else if( fo->fi->fi_flags & FI_ENC_MSCODEPAGE ) + { + int i; + + lpEncoding = localMSEncoding; + for( i = 0; i < numCPTranslation; i++ ) + if( CPTranslation[i] == fo->fi->df.dfCharSet ) + { + enc_ch = '0' + i; + break; + } + } + else lpEncoding = LFDSeparator; /* whatever */ lpch = lpLFD + lstrlen32A(lpLFD); ch = (fo->fi->fi_flags & FI_SCALABLE) ? '0' : LFDSeparator[0]; @@ -433,20 +495,20 @@ static BOOL32 LFD_ComposeLFD( fontObject* fo, case 0: if( point ) { - sprintf( lpch, "%i-%i-%i-%c-%c-*-%s*", h, point, - fo->fi->lfd_resolution, ch, w, lpEncoding ); + sprintf( lpch, "%i-%i-%i-%c-%c-*-%s%c", h, point, + fo->fi->lfd_resolution, ch, w, lpEncoding, enc_ch ); break; } /* fall through */ case 1: - sprintf( lpch, "%i-*-%i-%c-%c-*-%s*", h, - fo->fi->lfd_resolution, ch, w, lpEncoding ); + sprintf( lpch, "%i-*-%i-%c-%c-*-%s%c", h, + fo->fi->lfd_resolution, ch, w, lpEncoding, enc_ch ); break; case 2: - sprintf( lpch, "%i-*-%i-%c-*-*-%s*", - h, fo->fi->lfd_resolution, ch, lpEncoding ); + sprintf( lpch, "%i-*-%i-%c-*-*-%s%c", + h, fo->fi->lfd_resolution, ch, lpEncoding, enc_ch ); break; case 3: @@ -668,7 +730,8 @@ static BYTE XFONT_FixupFlags( LPCSTR lfFaceName ) return FF_SWISS; break; case 'c': - case 'C': if(!lstrcmpi32A(lfFaceName, "Courier") ) + case 'C': if(!lstrcmpi32A(lfFaceName, "Courier") || + !lstrcmpi32A(lfFaceName, "Charter") ) return FF_ROMAN; break; case 'p': @@ -691,6 +754,18 @@ static BYTE XFONT_FixupFlags( LPCSTR lfFaceName ) } +/*********************************************************************** + * XFONT_CheckResourceName + */ +static BOOL32 XFONT_CheckResourceName( LPSTR resource, LPCSTR name, INT32 n ) +{ + resource = LFD_Advance( resource, 2 ); + if( resource ) + return (!lstrncmpi32A( resource, name, n )); + return FALSE; +} + + /*********************************************************************** * XFONT_WindowsNames * @@ -711,17 +786,13 @@ static void XFONT_WindowsNames( char* buffer ) if( fr->fr_flags & FR_NAMESET ) continue; /* skip already assigned */ lpstr = LFD_Advance(fr->resource, 2); - i = lpstr - LFD_Advance( lpstr, 1 ); + i = LFD_Advance( lpstr, 1 ) - lpstr; for( pfr = fontList; pfr != fr ; pfr = pfr->next ) if( pfr->fr_flags & FR_NAMESET ) - { - lpch = LFD_Advance(pfr->resource, 2); + if( XFONT_CheckResourceName( pfr->resource, lpstr, i ) ) + break; - /* check if already have the same face name */ - - if( !lstrncmp32A(lpch, lpstr, i) ) break; - } if( pfr != fr ) /* prepend vendor name */ lpstr = fr->resource + 1; @@ -781,10 +852,24 @@ static void XFONT_WindowsNames( char* buffer ) */ static fontAlias* XFONT_CreateAlias( LPCSTR lpTypeFace, LPCSTR lpAlias ) { + int j; fontAlias* pfa = aliasTable; - int j = lstrlen32A(lpTypeFace) + 1; - while( pfa->next ) pfa = pfa->next; + while( 1 ) + { + /* check if we already got one */ + if( !lstrcmpi32A( pfa->faTypeFace, lpAlias ) ) + { +#ifdef DEBUG_FONT_INIT + dprintf_font(stddeb,"\tredundant alias '%s' -> '%s'\n", lpAlias, lpTypeFace ); +#endif + return NULL; + } + if( pfa->next ) pfa = pfa->next; + else break; + } + + j = lstrlen32A(lpTypeFace) + 1; pfa->next = HeapAlloc( SystemHeap, 0, sizeof(fontAlias) + j + lstrlen32A(lpAlias) + 1 ); if((pfa = pfa->next)) @@ -814,54 +899,79 @@ static fontAlias* XFONT_CreateAlias( LPCSTR lpTypeFace, LPCSTR lpAlias ) * Alias0 = Arial, -adobe-helvetica- * Alias1 = Times New Roman, -bitstream-courier-, 1 * ... + * + * Note that from 081797 and on we have built-in alias templates that take + * care of the necessary Windows typefaces. */ static void XFONT_LoadAliases( char** buffer, int buf_size ) { + char* lpResource, *lpAlias; char subsection[32]; - int i = 0; + int i = 0, j = 0; + BOOL32 bHaveAlias = TRUE, bSubst = FALSE; if( buf_size < 128 ) *buffer = HeapReAlloc(SystemHeap, 0, *buffer, 256 ); do { - wsprintf32A( subsection, "%s%i", INISubSection, i++ ); - - if( PROFILE_GetWineIniString( INIFontSection, subsection, "", *buffer, 128 ) ) + if( j < faTemplateNum ) { - char* lpchX, *lpchW = *buffer; + /* built-in templates first */ - while( isspace(*lpchW) ) lpchW++; - lpchX = PROFILE_GetStringItem( lpchW ); + lpResource = faTemplate[j].fatResource; + lpAlias = faTemplate[j].fatAlias; + j++; + } + else + { + /* then WINE.CONF */ - if( lpchX ) + wsprintf32A( subsection, "%s%i", INISubSection, i++ ); + + if( (bHaveAlias = PROFILE_GetWineIniString( INIFontSection, + subsection, "", *buffer, 128 )) ) { - fontResource* fr; + lpAlias = *buffer; + while( isspace(*lpAlias) ) lpAlias++; + lpResource = PROFILE_GetStringItem( lpAlias ); + bSubst = (PROFILE_GetStringItem( lpResource )) ? TRUE : FALSE; + } + } + + if( bHaveAlias ) + { + int length; + + length = lstrlen32A( lpAlias ); + if( lpResource && length ) + { + fontResource* fr, *frMatch = NULL; for (fr = fontList; fr ; fr = fr->next) { - int j; - - j = lstrlen32A( fr->resource ); - - if( !lstrncmpi32A( fr->resource, lpchX, j) ) + if( !lstrcmpi32A( fr->resource, lpResource ) ) frMatch = fr; + if( XFONT_CheckResourceName( fr->resource, lpAlias, length ) ) { - char* lpch = PROFILE_GetStringItem( lpchX ); + /* alias is not needed since the real font is present */ + frMatch = NULL; break; + } + } - if( lpch ) - { + if( frMatch ) + { + if( bSubst ) + { #ifdef DEBUG_FONT_INIT - dprintf_font(stddeb, "\tsubstituted '%s' with %s\n", - fr->lfFaceName, lpchW ); + dprintf_font(stddeb, "\tsubstituted '%s' with %s\n", + frMatch->lfFaceName, lpAlias ); #endif - lstrcpyn32A( fr->lfFaceName, lpchW, LF_FACESIZE ); - fr->fr_flags |= FR_NAMESET; - } - else - { - /* create new entry in the alias table */ - XFONT_CreateAlias(fr->lfFaceName, lpchW); - } - break; + lstrcpyn32A( frMatch->lfFaceName, lpAlias, LF_FACESIZE ); + frMatch->fr_flags |= FR_NAMESET; + } + else + { + /* create new entry in the alias table */ + XFONT_CreateAlias( frMatch->lfFaceName, lpAlias ); } } } @@ -883,8 +993,10 @@ static char* XFONT_UserMetricsCache( char* buffer, int* buf_size ) pwd = getpwuid(getuid()); if( pwd && pwd->pw_dir ) { - int i = lstrlen32A( pwd->pw_dir ) + lstrlen32A( INIWinePrefix ) + lstrlen32A( INIFontMetrics ) + 2; - if( i > *buf_size ) buffer = (char*) HeapReAlloc( SystemHeap, 0, buffer, *buf_size = i ); + int i = lstrlen32A( pwd->pw_dir ) + lstrlen32A( INIWinePrefix ) + + lstrlen32A( INIFontMetrics ) + 2; + if( i > *buf_size ) + buffer = (char*) HeapReAlloc( SystemHeap, 0, buffer, *buf_size = i ); lstrcpy32A( buffer, pwd->pw_dir ); strcat( buffer, INIWinePrefix ); strcat( buffer, INIFontMetrics ); @@ -896,7 +1008,7 @@ static char* XFONT_UserMetricsCache( char* buffer, int* buf_size ) /*********************************************************************** * XFONT_ReadCachedMetrics */ -static BOOL32 XFONT_ReadCachedMetrics( int fd, unsigned x_checksum, int x_count ) +static BOOL32 XFONT_ReadCachedMetrics( int fd, int res, unsigned x_checksum, int x_count ) { if( fd >= 0 ) { @@ -938,6 +1050,9 @@ static BOOL32 XFONT_ReadCachedMetrics( int fd, unsigned x_checksum, int x_count (int)(pfi->next) != j++ ) goto fail; pfi->df.dfFace = pfr->lfFaceName; + pfi->df.dfHorizRes = pfi->df.dfVertRes = res; + pfi->df.dfPoints = (INT16)(((INT32)(pfi->df.dfPixHeight - + pfi->df.dfInternalLeading) * 72) / res ); pfi->next = pfi + 1; if( j > pfr->count ) break; @@ -1058,6 +1173,108 @@ static BOOL32 XFONT_WriteCachedMetrics( int fd, unsigned x_checksum, int x_count return TRUE; } +/*********************************************************************** + * XFONT_CheckIniSection + * + * Examines wine.conf for old/invalid font entries and recommend changes to + * the user. + * + * Revision history + * 05-Jul-1997 Dave Cuthbert (dacut@ece.cmu.edu) + * Original implementation. + */ +static void XFONT_CheckIniCallback(char const *, char const *, void *); + +static char const *fontmsgprologue = +"Wine warning:\n" +" The following entries in the [fonts] section of the wine.conf file are\n" +" obsolete or invalid:\n"; + +static char const *fontmsgepilogue = +" These entries should be eliminated or updated.\n" +" See the documentation/fonts file for more information.\n"; + +static int XFONT_CheckIniSection() +{ + int found = 0; + + PROFILE_EnumerateWineIniSection("Fonts", &XFONT_CheckIniCallback, + (void *)&found); + if(found) + fprintf(stderr, fontmsgepilogue); + + return 1; +} + +static void XFONT_CheckIniCallback( + char const *key, + char const *value, + void *found) +{ + /* Ignore any keys that start with potential comment characters "'", '#', + or ';'. */ + if(key[0] == '\'' || key[0] == '#' || key[0] == ';' || key[0] == '\0') + return; + + /* Make sure this is a valid key */ + if((strncasecmp(key, INISubSection, 5) == 0) || + (strcasecmp(key, INIDefault) == 0) || + (strcasecmp(key, INIGlobalMetrics) == 0) || + (strcasecmp(key, INIResolution) == 0) ) + { + /* Valid key; make sure the value doesn't contain a wildcard */ + if(strchr(value, '*')) { + if(*(int *)found == 0) { + fprintf(stderr, fontmsgprologue); + ++*(int *)found; + } + + fprintf(stderr, " %s=%s [no wildcards allowed]\n", key, value); + } + } + else { + /* Not a valid key */ + if(*(int *)found == 0) { + fprintf(stderr, fontmsgprologue); + ++*(int *)found; + } + + fprintf(stderr, " %s=%s [obsolete]\n", key, value); + } + + return; +} + +/*********************************************************************** + * XFONT_GetPointResolution() + * + * Here we initialize DefResolution which is used in the + * XFONT_Match() penalty function. We also load the point + * resolution value (higher values result in larger fonts). + */ +static int XFONT_GetPointResolution( DeviceCaps* pDevCaps ) +{ + int i, j, point_resolution, num = 3; + int allowed_xfont_resolutions[3] = { 72, 75, 100 }; + int best = 0, best_diff = 65536; + + DefResolution = point_resolution = PROFILE_GetWineIniInt( INIFontSection, INIResolution, 0 ); + if( !DefResolution ) DefResolution = point_resolution = pDevCaps->logPixelsY; + else pDevCaps->logPixelsX = pDevCaps->logPixelsY = DefResolution; + + for( i = best = 0; i < num; i++ ) + { + j = abs( DefResolution - allowed_xfont_resolutions[i] ); + if( j < best_diff ) + { + best = i; + best_diff = j; + } + } + DefResolution = allowed_xfont_resolutions[best]; + return point_resolution; +} + /*********************************************************************** * X11DRV_FONT_Init * @@ -1069,24 +1286,18 @@ BOOL32 X11DRV_FONT_Init( DeviceCaps* pDevCaps ) fontResource* fr, *pfr; fontInfo* fi, *pfi; unsigned x_checksum; - int i, j, k, x_count, fd = -1, buf_size = 0; + int i, j, res, x_count, fd = -1, buf_size = 0; char* lpstr, *lpch, *lpmetrics, *buffer; char** x_pattern; - DefResolution = PROFILE_GetWineIniInt( INIFontSection, "Resolution", 0 ); - if( !DefResolution ) DefResolution = pDevCaps->logPixelsY; + XFONT_CheckIniSection(); - i = abs(DefResolution - 72); - j = abs(DefResolution - 75); - k = abs(DefResolution - 100); - - if( i < j ) DefResolution = ( i < k ) ? 72 : 100; - else DefResolution = ( j < k ) ? 75 : 100; + res = XFONT_GetPointResolution( pDevCaps ); x_pattern = XListFonts(display, "*", MAX_FONT_FAMILIES * 16, &x_count ); - dprintf_font(stddeb,"Font Mapper: initializing %i fonts [LPY=%i, DR=%i]\n", - x_count, pDevCaps->logPixelsY, DefResolution); + dprintf_font(stddeb,"Font Mapper: initializing %i fonts [LPY=%i, XDR=%i, DR=%i]\n", + x_count, pDevCaps->logPixelsY, DefResolution, res); for( i = x_checksum = 0; i < x_count; i++ ) { #if 0 @@ -1104,17 +1315,17 @@ BOOL32 X11DRV_FONT_Init( DeviceCaps* pDevCaps ) /* deal with systemwide font metrics cache */ - if( PROFILE_GetWineIniString( INIFontSection, "FontMetrics", "", buffer, 128 ) ) + if( PROFILE_GetWineIniString( INIFontSection, INIGlobalMetrics, "", buffer, 128 ) ) fd = open( buffer, O_RDONLY ); - if( XFONT_ReadCachedMetrics(fd, x_checksum, x_count) == FALSE ) + if( XFONT_ReadCachedMetrics(fd, res, x_checksum, x_count) == FALSE ) { /* try per-user */ buffer = XFONT_UserMetricsCache( buffer, &buf_size ); if( buffer[0] ) { fd = open( buffer, O_RDONLY ); - if( XFONT_ReadCachedMetrics(fd, x_checksum, x_count) == FALSE ) + if( XFONT_ReadCachedMetrics(fd, res, x_checksum, x_count) == FALSE ) lpmetrics = HEAP_strdupA( SystemHeap, 0, buffer ); /* update later on */ } } @@ -1196,8 +1407,7 @@ BOOL32 X11DRV_FONT_Init( DeviceCaps* pDevCaps ) if( (x_fs = XLoadQueryFont(display, lpstr)) ) { - fi->df.dfHorizRes = pDevCaps->logPixelsX; - fi->df.dfVertRes = pDevCaps->logPixelsY; + fi->df.dfHorizRes = fi->df.dfVertRes = res; XFONT_SetFontMetric( fi, fr, x_fs ); XFreeFont( display, x_fs ); @@ -1301,7 +1511,7 @@ static INT32 XFONT_IsSubset(fontInfo* match, fontInfo* fi) * weight, italics, underlines, strikeouts * * NOTE: you can experiment with different penalty weights to see what happens. - * http://premium.microsoft.com/msdn/library/techart/f30/f34/f40/d4d/sa8bf.htm + * http://premium.microsoft.com/msdn/library/techart/f365/f36b/f37b/d38b/sa8bf.htm */ static UINT32 XFONT_Match( fontMatch* pfm ) { @@ -1354,7 +1564,7 @@ static UINT32 XFONT_Match( fontMatch* pfm ) else /* expand only in integer multiples */ { pfm->height = height - height%pfi->df.dfPixHeight; - penalty += (height - pfm->height) * pfm->height / height; + penalty += (height - pfm->height + 1) * height / pfi->df.dfPixHeight; } } else /* can't be scaled at all */ @@ -1431,18 +1641,6 @@ static UINT32 XFONT_MatchFIList( fontMatch* pfm ) return score; } -/*********************************************************************** - * XFONT_CheckAliasTable - */ -static LPSTR XFONT_CheckAliasTable( LPSTR lpAlias ) -{ - fontAlias* fa; - - for( fa = aliasTable; fa; fa = fa->next ) - if( !lstrcmpi32A( fa->faAlias, lpAlias ) ) return fa->faTypeFace; - return NULL; -} - /*********************************************************************** * XFONT_CheckFIList * @@ -1515,9 +1713,17 @@ static BOOL32 XFONT_MatchDeviceFont( fontResource* start, fontMatch* pfm ) fontMatch fm = *pfm; pfm->pfi = NULL; - if( fm.plf->lfFaceName[0] ) + if( fm.plf->lfFaceName[0] ) { - LPSTR str = XFONT_CheckAliasTable( fm.plf->lfFaceName ); + fontAlias* fa; + LPSTR str = NULL; + + for( fa = aliasTable; fa; fa = fa->next ) + if( !lstrcmpi32A( fa->faAlias, fm.plf->lfFaceName ) ) + { + str = fa->faTypeFace; + break; + } fm.pfr = XFONT_FindFIList( start, str ? str : fm.plf->lfFaceName ); } @@ -1827,11 +2033,17 @@ LPIFONTINFO16 XFONT_GetFontInfo( X_PHYSFONT pFont ) HFONT32 X11DRV_FONT_SelectObject( DC* dc, HFONT32 hfont, FONTOBJ* font ) { HFONT32 hPrevFont = 0; + LOGFONT16 lf; if( CHECK_PFONT(dc->u.x.font) ) XFONT_ReleaseCacheEntry( __PFONT(dc->u.x.font) ); - dc->u.x.font = XFONT_RealizeFont( &font->logfont ); + /* FIXME: do we need to pass anything back from here? */ + memcpy(&lf,&font->logfont,sizeof(lf)); + lf.lfWidth = font->logfont.lfWidth * dc->vportExtX/dc->wndExtX; + lf.lfHeight = font->logfont.lfHeight* dc->vportExtY/dc->wndExtY; + + dc->u.x.font = XFONT_RealizeFont( &lf ); hPrevFont = dc->w.hFont; dc->w.hFont = hfont; @@ -1966,7 +2178,7 @@ BOOL32 X11DRV_GetCharWidth( DC *dc, UINT32 firstChar, UINT32 lastChar, * the pfr->resource field) with FR_SOFTFONT/FR_SOFTRESOURCE * flag set. */ -INT16 AddFontResource16( LPCSTR filename ) +INT16 WINAPI AddFontResource16( LPCSTR filename ) { return AddFontResource32A( filename ); } @@ -1975,7 +2187,7 @@ INT16 AddFontResource16( LPCSTR filename ) /*********************************************************************** * AddFontResource32A (GDI32.2) */ -INT32 AddFontResource32A( LPCSTR str ) +INT32 WINAPI AddFontResource32A( LPCSTR str ) { if (HIWORD(str)) /* font file */ fprintf( stdnimp, "STUB: AddFontResource('%s')\n", str ); @@ -1988,7 +2200,7 @@ INT32 AddFontResource32A( LPCSTR str ) /*********************************************************************** * AddFontResource32W (GDI32.4) */ -INT32 AddFontResource32W( LPCWSTR str ) +INT32 WINAPI AddFontResource32W( LPCWSTR str ) { fprintf( stdnimp, "STUB: AddFontResource32W(%p)\n", str ); return 1; @@ -1997,7 +2209,7 @@ INT32 AddFontResource32W( LPCWSTR str ) /*********************************************************************** * RemoveFontResource16 (GDI.136) */ -BOOL16 RemoveFontResource16( SEGPTR str ) +BOOL16 WINAPI RemoveFontResource16( SEGPTR str ) { if (HIWORD(str)) fprintf( stdnimp, "STUB: RemoveFontResource('%s')\n", @@ -2011,7 +2223,7 @@ BOOL16 RemoveFontResource16( SEGPTR str ) /*********************************************************************** * RemoveFontResource32A (GDI32.284) */ -BOOL32 RemoveFontResource32A( LPCSTR str ) +BOOL32 WINAPI RemoveFontResource32A( LPCSTR str ) { if (HIWORD(str)) fprintf( stdnimp, "STUB: RemoveFontResource('%s')\n", str ); @@ -2024,7 +2236,7 @@ BOOL32 RemoveFontResource32A( LPCSTR str ) /*********************************************************************** * RemoveFontResource32W (GDI32.286) */ -BOOL32 RemoveFontResource32W( LPCWSTR str ) +BOOL32 WINAPI RemoveFontResource32W( LPCWSTR str ) { fprintf( stdnimp, "STUB: RemoveFontResource32W(%p)\n", str ); return TRUE; diff --git a/if1632/builtin.c b/if1632/builtin.c index ebe48adb275..6cc452718cf 100644 --- a/if1632/builtin.c +++ b/if1632/builtin.c @@ -154,7 +154,7 @@ static BUILTIN_DLL BuiltinDLLs[] = { &GDI32_Descriptor, 0 }, { &KERNEL32_Descriptor, DLL_FLAG_ALWAYS_USED }, { &LZ32_Descriptor, 0 }, - { &MPR_Descriptor, 0 }, + { &MPR_Descriptor, DLL_FLAG_NOT_USED }, { &NTDLL_Descriptor, 0 }, { &SHELL32_Descriptor, 0 }, { &USER32_Descriptor, 0 }, diff --git a/if1632/comctl32.spec b/if1632/comctl32.spec index be6c101ccdb..d2f1efa1110 100644 --- a/if1632/comctl32.spec +++ b/if1632/comctl32.spec @@ -20,7 +20,7 @@ base 2 11 stub MakeDragList 12 stub LBItemFromPt 13 stub DrawInsert -14 stub CreateUpDownControl +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 diff --git a/if1632/crtdll.spec b/if1632/crtdll.spec index 42a88053f96..5a61f9765a9 100644 --- a/if1632/crtdll.spec +++ b/if1632/crtdll.spec @@ -131,7 +131,7 @@ base 1 126 stub _getpid 127 stub _getsystime 128 stub _getw -129 stub _global_unwind2 +129 register _global_unwind2(ptr) CRTDLL__global_unwind2 130 stub _heapchk 131 stub _heapmin 132 stub _heapset @@ -175,7 +175,7 @@ base 1 170 stub _kbhit 171 stub _lfind 172 stub _loaddll -173 stub _local_unwind2 +173 register _local_unwind2(ptr long) CRTDLL__local_unwind2 174 stub _locking 175 stub _logb 176 stub _lrotl @@ -461,7 +461,7 @@ base 1 456 cdecl sin(long) CRTDLL_sin 457 cdecl sinh(long) CRTDLL_sinh 458 cdecl sprintf() CRTDLL_sprintf -459 cdecl sqrt(long) CRTDLL_sqrt +459 cdecl sqrt(long long) CRTDLL_sqrt 460 cdecl srand(long) CRTDLL_srand 461 cdecl sscanf() CRTDLL_sscanf 462 cdecl strcat(ptr ptr) strcat diff --git a/if1632/dummy.c b/if1632/dummy.c index abc792eda84..dbf23c87f85 100644 --- a/if1632/dummy.c +++ b/if1632/dummy.c @@ -1,47 +1,49 @@ #include -long stub_GDI_379(void) { fprintf(stderr, "Warning: GDI_379:STARTPAGE unimplemented stub\n"); return 1; } -long stub_GDI_380(void) { fprintf(stderr, "Warning: GDI_380:ENDPAGE unimplemented stub\n"); return 1; } -long stub_GDI_381(void) { fprintf(stderr, "Warning: GDI_381:SETABORTPROC unimplemented stub\n"); return 1; } -long stub_GDI_382(void) { fprintf(stderr, "Warning: GDI_382:ABORTPROC unimplemented stub\n"); return 1; } -long stub_GDI_530(void) { fprintf(stderr, "Warning: GDI_530: unimplemented stub\n"); return 0; } -long stub_GDI_531(void) { fprintf(stderr, "Warning: GDI_531: unimplemented stub\n"); return 0; } -long stub_GDI_532(void) { fprintf(stderr, "Warning: GDI_532: unimplemented stub\n"); return 0; } -long stub_GDI_536(void) { fprintf(stderr, "Warning: GDI_536: unimplemented stub\n"); return 0; } -long stub_GDI_538(void) { fprintf(stderr, "Warning: GDI_538: unimplemented stub\n"); return 0; } -long stub_GDI_540(void) { fprintf(stderr, "Warning: GDI_540: unimplemented stub\n"); return 0; } -long stub_GDI_543(void) { fprintf(stderr, "Warning: GDI_543: unimplemented stub\n"); return 0; } -long stub_GDI_555(void) { fprintf(stderr, "Warning: GDI_555: unimplemented stub\n"); return 0; } -long stub_GDI_560(void) { fprintf(stderr, "Warning: GDI_560: unimplemented stub\n"); return 0; } -long stub_GDI_561(void) { fprintf(stderr, "Warning: GDI_561: unimplemented stub\n"); return 0; } -long stub_GDI_564(void) { fprintf(stderr, "Warning: GDI_564: unimplemented stub\n"); return 0; } -long stub_GDI_565(void) { fprintf(stderr, "Warning: GDI_565: unimplemented stub\n"); return 0; } -long stub_GDI_566(void) { fprintf(stderr, "Warning: GDI_566: unimplemented stub\n"); return 0; } -long stub_GDI_571(void) { fprintf(stderr, "Warning: GDI_571: unimplemented stub\n"); return 0; } -long stub_GDI_572(void) { fprintf(stderr, "Warning: GDI_572: unimplemented stub\n"); return 0; } -long stub_GDI_573(void) { fprintf(stderr, "Warning: GDI_573: unimplemented stub\n"); return 0; } -long stub_GDI_556(void) { fprintf(stderr, "Warning: GDI_556: unimplemented stub\n"); return 0; } -long stub_GDI_558(void) { fprintf(stderr, "Warning: GDI_558: unimplemented stub\n"); return 0; } -long stub_GDI_569(void) { fprintf(stderr, "Warning: GDI_569: unimplemented stub\n"); return 0; } -long stub_KERNEL_450(void) { fprintf(stderr, "Warning: KERNEL_450: unimplemented stub\n"); return 0; } -long stub_USER_489(void) { fprintf(stderr, "Warning: USER_489: unimplemented stub\n"); return 0; } -long stub_USER_490(void) { fprintf(stderr, "Warning: USER_490: unimplemented stub\n"); return 0; } -long stub_USER_492(void) { fprintf(stderr, "Warning: USER_492: unimplemented stub\n"); return 0; } -long stub_USER_496(void) { fprintf(stderr, "Warning: USER_496: unimplemented stub\n"); return 0; } -long stub_USER_902(void) { fprintf(stderr, "Warning: USER_902: unimplemented stub\n"); return 0; } -long stub_USER_905(void) { fprintf(stderr, "Warning: USER_905: unimplemented stub\n"); return 0; } -long stub_USER_906(void) { fprintf(stderr, "Warning: USER_906: unimplemented stub\n"); return 0; } -long stub_USER_907(void) { fprintf(stderr, "Warning: USER_907: unimplemented stub\n"); return 0; } -long stub_USER_909(void) { fprintf(stderr, "Warning: USER_909: unimplemented stub\n"); return 0; } -long stub_USER_910(void) { fprintf(stderr, "Warning: USER_910: unimplemented stub\n"); return 0; } -long stub_USER_911(void) { fprintf(stderr, "Warning: USER_911: unimplemented stub\n"); return 0; } -long stub_USER_912(void) { fprintf(stderr, "Warning: USER_912: unimplemented stub\n"); return 0; } -long stub_USER_913(void) { fprintf(stderr, "Warning: USER_913: unimplemented stub\n"); return 0; } -long stub_USER_914(void) { fprintf(stderr, "Warning: USER_914: unimplemented stub\n"); return 0; } -long stub_USER_915(void) { fprintf(stderr, "Warning: USER_915: unimplemented stub\n"); return 0; } -long stub_USER_916(void) { fprintf(stderr, "Warning: USER_916: unimplemented stub\n"); return 0; } -long stub_USER_918(void) { fprintf(stderr, "Warning: USER_918: unimplemented stub\n"); return 0; } -long stub_USER_919(void) { fprintf(stderr, "Warning: USER_919: unimplemented stub\n"); return 0; } -long stub_USER_920(void) { fprintf(stderr, "Warning: USER_920: unimplemented stub\n"); return 0; } -long stub_USER_922(void) { fprintf(stderr, "Warning: USER_922: unimplemented stub\n"); return 0; } -long stub_USER_923(void) { fprintf(stderr, "Warning: USER_923: unimplemented stub\n"); return 0; } -long stub_KERNEL_700(void) { fprintf(stderr, "Warning: KERNEL_700: unimplemented stub\n"); return 1; } +#include "wintypes.h" +long WINAPI stub_GDI_379(void) { fprintf(stderr, "Warning: GDI_379:STARTPAGE unimplemented stub\n"); return 1; } +long WINAPI stub_GDI_380(void) { fprintf(stderr, "Warning: GDI_380:ENDPAGE unimplemented stub\n"); return 1; } +long WINAPI stub_GDI_381(void) { fprintf(stderr, "Warning: GDI_381:SETABORTPROC unimplemented stub\n"); return 1; } +long WINAPI stub_GDI_382(void) { fprintf(stderr, "Warning: GDI_382:ABORTPROC unimplemented stub\n"); return 1; } +long WINAPI stub_GDI_530(void) { fprintf(stderr, "Warning: GDI_530: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_531(void) { fprintf(stderr, "Warning: GDI_531: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_532(void) { fprintf(stderr, "Warning: GDI_532: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_536(void) { fprintf(stderr, "Warning: GDI_536: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_538(void) { fprintf(stderr, "Warning: GDI_538: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_540(void) { fprintf(stderr, "Warning: GDI_540: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_543(void) { fprintf(stderr, "Warning: GDI_543: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_555(void) { fprintf(stderr, "Warning: GDI_555: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_560(void) { fprintf(stderr, "Warning: GDI_560: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_561(void) { fprintf(stderr, "Warning: GDI_561: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_564(void) { fprintf(stderr, "Warning: GDI_564: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_565(void) { fprintf(stderr, "Warning: GDI_565: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_566(void) { fprintf(stderr, "Warning: GDI_566: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_571(void) { fprintf(stderr, "Warning: GDI_571: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_572(void) { fprintf(stderr, "Warning: GDI_572: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_573(void) { fprintf(stderr, "Warning: GDI_573: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_556(void) { fprintf(stderr, "Warning: GDI_556: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_558(void) { fprintf(stderr, "Warning: GDI_558: unimplemented stub\n"); return 0; } +long WINAPI stub_GDI_569(void) { fprintf(stderr, "Warning: GDI_569: unimplemented stub\n"); return 0; } +long WINAPI stub_KERNEL_450(void) { fprintf(stderr, "Warning: KERNEL_450: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_489(void) { fprintf(stderr, "Warning: USER_489: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_490(void) { fprintf(stderr, "Warning: USER_490: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_492(void) { fprintf(stderr, "Warning: USER_492: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_496(void) { fprintf(stderr, "Warning: USER_496: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_902(void) { fprintf(stderr, "Warning: USER_902: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_905(void) { fprintf(stderr, "Warning: USER_905: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_906(void) { fprintf(stderr, "Warning: USER_906: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_907(void) { fprintf(stderr, "Warning: USER_907: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_909(void) { fprintf(stderr, "Warning: USER_909: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_910(void) { fprintf(stderr, "Warning: USER_910: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_911(void) { fprintf(stderr, "Warning: USER_911: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_912(void) { fprintf(stderr, "Warning: USER_912: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_913(void) { fprintf(stderr, "Warning: USER_913: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_914(void) { fprintf(stderr, "Warning: USER_914: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_915(void) { fprintf(stderr, "Warning: USER_915: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_916(void) { fprintf(stderr, "Warning: USER_916: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_918(void) { fprintf(stderr, "Warning: USER_918: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_919(void) { fprintf(stderr, "Warning: USER_919: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_920(void) { fprintf(stderr, "Warning: USER_920: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_922(void) { fprintf(stderr, "Warning: USER_922: unimplemented stub\n"); return 0; } +long WINAPI stub_USER_923(void) { fprintf(stderr, "Warning: USER_923: unimplemented stub\n"); return 0; } +long WINAPI stub_KERNEL_700(void) { fprintf(stderr, "Warning: KERNEL_700: unimplemented stub\n"); return 1; } +long WINAPI stub_KERNEL_449(void) { fprintf(stderr, "Warning: KERNEL_449: unimplemented stub\n"); return 0; } diff --git a/if1632/gdi.spec b/if1632/gdi.spec index e407b446d4a..1b0f157d7f7 100644 --- a/if1632/gdi.spec +++ b/if1632/gdi.spec @@ -314,7 +314,7 @@ file gdi.exe ScaleViewportExtEx16 485 pascal16 ScaleWindowExtEx(word s_word s_word s_word s_word ptr) ScaleWindowExtEx16 -486 stub GETASPECTRATIOFILTEREX +486 pascal16 GetAspectRatioFilterEx(word ptr) GetAspectRatioFilterEx16 489 stub CreateDIBSection 490 stub CloseEnhMetafile 491 stub CopyEnhMetafile diff --git a/if1632/gdi32.spec b/if1632/gdi32.spec index 5cf890af671..fd5c5432f13 100644 --- a/if1632/gdi32.spec +++ b/if1632/gdi32.spec @@ -391,7 +391,7 @@ base 1 0379 stub GdiWinWatchOpen 0380 stub GetGlyphOutlineWow 0381 stub GetTextCharsetInfo -0382 stub TranslateCharsetInfo +0382 stdcall TranslateCharsetInfo(ptr ptr long) TranslateCharSetInfo 0383 stub UpdateICMRegKeyA 0384 stub UpdateICMRegKeyW 0385 stub gdiPlaySpoolStream diff --git a/if1632/kernel.spec b/if1632/kernel.spec index 39a6b41c6dd..e17ff9c15d7 100644 --- a/if1632/kernel.spec +++ b/if1632/kernel.spec @@ -243,6 +243,7 @@ file krnl386.exe 318 stub FatalExitHook 319 stub FlushCachedFileHandle 320 pascal16 IsTask(word) IsTask +321 stub KERNEL_321 323 return IsRomModule 2 0 324 pascal16 LogError(word ptr) LogError 325 pascal16 LogParamError(word ptr ptr) LogParamError @@ -304,7 +305,7 @@ file krnl386.exe 445 stub KERNEL_445 446 stub KERNEL_446 447 stub KERNEL_447 -449 stub KERNEL_449 +449 pascal KERNEL_449() stub_KERNEL_449 450 pascal16 KERNEL_450() stub_KERNEL_450 454 stub KERNEL_454 455 stub KERNEL_455 @@ -321,7 +322,7 @@ file krnl386.exe 513 pascal LoadLibraryEx32W(ptr long long) LoadLibraryEx32W16 514 pascal16 FreeLibrary32W(long) FreeLibrary32 515 pascal GetProcAddress32W(long ptr) GetProcAddress32 -516 stub GetVDMPointer32W +516 pascal GetVDMPointer32W(segptr long) GetVDMPointer32W 517 pascal CallProc32W() WIN16_CallProc32W 518 stub CallProcEx32W 519 stub KERNEL_519 @@ -334,7 +335,7 @@ file krnl386.exe 612 stub KERNEL_612 613 stub KERNEL_613 614 stub KERNEL_614 -619 stub KERNEL_619 +619 pascal KERNEL_619(word long long) _KERNEL_619 621 stub KERNEL_621 627 stub IsBadFlatReadWritePtr 630 stub KERNEL_630 diff --git a/if1632/kernel32.spec b/if1632/kernel32.spec index b858d621841..695a564b42c 100644 --- a/if1632/kernel32.spec +++ b/if1632/kernel32.spec @@ -35,7 +35,7 @@ base 1 40 stdcall _KERNEL32_41(long long long long long) _KERNEL32_41 41 stub _KERNEL32_42 42 stdcall _KERNEL32_43(long ptr long ptr ptr) _KERNEL32_43 -44 register _KERNEL32_45(long) _KERNEL32_45 +44 register _KERNEL32_45() _KERNEL32_45 45 stdcall _KERNEL32_46(long long long long long) _KERNEL32_46 46 stub _KERNEL32_47 @@ -44,7 +44,7 @@ base 1 51 register _KERNEL32_52(long) _KERNEL32_52 # WOW calls -53 stub WOWCallback16 +53 stdcall WOWCallback16(long long) WOWCallback16 54 stub WOWCallback16Ex 55 stdcall WOWGetVDMPointer(long long long) WOWGetVDMPointer 56 stub WOWHandle32 @@ -53,7 +53,7 @@ base 1 59 stub WOWGlobalLock16 60 stub WOWGlobalUnlock16 61 stub WOWGlobalFree16 -62 stub WOWGlobalAllocLock16 +62 stdcall WOWGlobalAllocLock16(long long ptr) WOWGlobalAllocLock16 63 stub WOWGlobalUnlockFree16 64 stub WOWGlobalLockSize16 65 stub WOWYield16 @@ -78,10 +78,10 @@ base 1 84 stub RtlConvertUlongToLargeInteger 86 stdcall _KERNEL32_87() _KERNEL32_87 -87 cdecl _KERNEL32_88(long long ptr) _KERNEL32_88 +87 cdecl _KERNEL32_88() _KERNEL32_88 88 stub _KERNEL32_89 -89 stub _KERNEL32_90 -90 register _KERNEL32_91() _KERNEL32_91 +89 register _KERNEL32_90() _KERNEL32_90 +90 stub _KERNEL32_91 91 stub _KERNEL32_92 92 stdcall GETPWIN16LOCK(ptr) GetPWinLock 96 stub ENTERSYSLEVEL @@ -137,7 +137,7 @@ base 1 144 stub ConnectNamedPipe 145 stdcall ContinueDebugEvent(long long long) ContinueDebugEvent 146 stub ConvertDefaultLocale -147 stub ConvertToGlobalHandle +147 stdcall ConvertToGlobalHandle(long) ConvertToGlobalHandle 148 stdcall CopyFileA(ptr ptr long) CopyFile32A 149 stdcall CopyFileW(ptr ptr long) CopyFile32W 150 stub CreateConsoleScreenBuffer @@ -285,6 +285,7 @@ base 1 292 stdcall GetComputerNameA(ptr ptr) GetComputerName32A 293 stdcall GetComputerNameW(ptr ptr) GetComputerName32W 294 stdcall GetConsoleCP() GetConsoleCP +295 stub GetConsoleCursorInfo 296 stdcall GetConsoleMode(long ptr) GetConsoleMode 297 stdcall GetConsoleOutputCP() GetConsoleOutputCP 298 stdcall GetConsoleScreenBufferInfo(long ptr) GetConsoleScreenBufferInfo @@ -368,7 +369,7 @@ base 1 376 stub GetProcessShutdownParameters 377 stdcall GetProcessTimes(long ptr ptr ptr ptr) GetProcessTimes 378 stdcall GetProcessVersion(long) GetProcessVersion -379 stub GetProcessWorkingSetSize +379 stdcall GetProcessWorkingSetSize(long ptr ptr) GetProcessWorkingSetSize 380 stub GetProductName 381 stdcall GetProfileIntA(ptr ptr long) GetProfileInt32A 382 stdcall GetProfileIntW(ptr ptr long) GetProfileInt32W @@ -407,7 +408,7 @@ base 1 415 stdcall GetThreadContext(long ptr) GetThreadContext 416 stdcall GetThreadLocale() GetThreadLocale 417 stdcall GetThreadPriority(long) GetThreadPriority -418 stub GetThreadSelectorEntry +418 stdcall GetThreadSelectorEntry(long long ptr) GetThreadSelectorEntry 419 stub GetThreadTimes 420 stdcall GetTickCount() GetTickCount 421 stub GetTimeFormatA @@ -454,6 +455,7 @@ base 1 462 stdcall HeapFree(long long ptr) HeapFree 463 stdcall HeapLock(long) HeapLock 464 stdcall HeapReAlloc(long long ptr long) HeapReAlloc +465 stub HeapSetFlags 466 stdcall HeapSize(long long ptr) HeapSize 467 stdcall HeapUnlock(long) HeapUnlock 468 stdcall HeapValidate(long long ptr) HeapValidate @@ -461,10 +463,10 @@ base 1 470 stub InitAtomTable 471 stdcall InitializeCriticalSection(ptr) InitializeCriticalSection 472 stdcall InterlockedDecrement(ptr) InterlockedDecrement -473 stdcall InterlockedExchange(ptr) InterlockedExchange +473 stdcall InterlockedExchange(ptr long) InterlockedExchange 474 stdcall InterlockedIncrement(ptr) InterlockedIncrement 475 stub InvalidateNLSCache -476 stdcall IsBadCodePtr(ptr long) IsBadCodePtr32 +476 stdcall IsBadCodePtr(ptr) IsBadCodePtr32 477 stdcall IsBadHugeReadPtr(ptr long) IsBadHugeReadPtr32 478 stdcall IsBadHugeWritePtr(ptr long) IsBadHugeWritePtr32 479 stdcall IsBadReadPtr(ptr long) IsBadReadPtr32 @@ -483,7 +485,7 @@ base 1 492 stub LCMapStringW 493 stdcall LeaveCriticalSection(ptr) LeaveCriticalSection 494 stdcall LoadLibraryA(ptr) LoadLibrary32A -495 stub LoadLibraryExA +495 stdcall LoadLibraryExA(ptr long long) LoadLibraryEx32A 496 stub LoadLibraryExW 497 stdcall LoadLibraryW(ptr) LoadLibrary32W 498 stub LoadModule @@ -510,9 +512,8 @@ base 1 519 stub MapHModuleLS 520 stub MapHModuleSL 521 stdcall MapLS(ptr) MapLS -643 stdcall MapSL(long) MapSL +522 stdcall MapSL(long) MapSL 523 stub MapSLFix -522 stub MapSL 524 stdcall MapViewOfFile(long long long long long) MapViewOfFile 525 stdcall MapViewOfFileEx(long long long long long ptr) MapViewOfFileEx 526 stub Module32First @@ -523,6 +524,7 @@ base 1 531 stdcall MoveFileW(ptr ptr) MoveFile32W 532 stdcall MulDiv(long long long) MulDiv32 533 stdcall MultiByteToWideChar(long long ptr long ptr long) MultiByteToWideChar +534 stub NotifyNLSUserCache 535 stdcall OpenEventA(long long ptr) OpenEvent32A 536 stdcall OpenEventW(long long ptr) OpenEvent32W 537 stdcall OpenFile(ptr ptr long) OpenFile32 @@ -546,7 +548,7 @@ base 1 555 stub Process32Next 556 stub PulseEvent 557 stub PurgeComm -558 stub QT_Thunk +558 register QT_Thunk() QT_Thunk 559 stdcall QueryDosDeviceA(ptr ptr long) QueryDosDevice32A 560 stdcall QueryDosDeviceW(ptr ptr long) QueryDosDevice32W 561 stub QueryNumberOfEventLogRecords @@ -566,7 +568,7 @@ base 1 575 stdcall ReadConsoleW(long ptr long ptr ptr) ReadConsole32W 576 stdcall ReadFile(long ptr long ptr ptr) ReadFile 577 stub ReadFileEx -578 stub ReadProcessMemory +578 stdcall ReadProcessMemory(long ptr ptr long ptr) ReadProcessMemory 579 stub RegisterServiceProcess 580 stdcall ReinitializeCriticalSection(ptr) ReinitializeCriticalSection 581 stdcall ReleaseMutex(long) ReleaseMutex @@ -579,16 +581,16 @@ base 1 588 stdcall RtlMoveMemory(ptr ptr long) RtlMoveMemory 589 register RtlUnwind(ptr long ptr long) RtlUnwind 590 stdcall RtlZeroMemory(ptr long) RtlZeroMemory -591 stub SMapLS -592 stub SMapLS_IP_EBP_12 -593 stub SMapLS_IP_EBP_16 -594 stub SMapLS_IP_EBP_20 -595 stub SMapLS_IP_EBP_24 -596 stub SMapLS_IP_EBP_28 -597 stub SMapLS_IP_EBP_32 -598 stub SMapLS_IP_EBP_36 -599 stub SMapLS_IP_EBP_40 -600 stub SMapLS_IP_EBP_8 +591 register SMapLS() SMapLS +592 register SMapLS_IP_EBP_12() SMapLS_IP_EBP_12 +593 register SMapLS_IP_EBP_16() SMapLS_IP_EBP_16 +594 register SMapLS_IP_EBP_20() SMapLS_IP_EBP_20 +595 register SMapLS_IP_EBP_24() SMapLS_IP_EBP_24 +596 register SMapLS_IP_EBP_28() SMapLS_IP_EBP_28 +597 register SMapLS_IP_EBP_32() SMapLS_IP_EBP_32 +598 register SMapLS_IP_EBP_36() SMapLS_IP_EBP_36 +599 register SMapLS_IP_EBP_40() SMapLS_IP_EBP_40 +600 register SMapLS_IP_EBP_8() SMapLS_IP_EBP_8 601 stub SUnMapLS 602 stub SUnMapLS_IP_EBP_12 603 stub SUnMapLS_IP_EBP_16 @@ -648,8 +650,8 @@ base 1 657 stub SetMailslotInfo 658 stub SetNamedPipeHandleState 659 stdcall SetPriorityClass(long long) SetPriorityClass -660 stub SetProcessShutdownParameters -661 stub SetProcessWorkingSetSize +660 stdcall SetProcessShutdownParameters(long long) SetProcessShutdownParameters +661 stdcall SetProcessWorkingSetSize(long long long) SetProcessWorkingSetSize 662 stdcall SetStdHandle(long long) SetStdHandle 663 stdcall SetSystemPowerState(long long) SetSystemPowerState 664 stdcall SetSystemTime(ptr) SetSystemTime @@ -672,11 +674,12 @@ base 1 681 stdcall SystemTimeToFileTime(ptr ptr) SystemTimeToFileTime 682 stub SystemTimeToTzSpecificLocalTime 683 stub TerminateProcess -684 stub TerminateThread +684 stdcall TerminateThread(long long) TerminateThread 685 stub Thread32First 686 stub Thread32Next 687 stdcall ThunkConnect32(ptr ptr ptr ptr ptr ptr) ThunkConnect32 688 stdcall TlsAlloc() TlsAlloc +689 stub TlsAllocInternal 690 stdcall TlsFree(long) TlsFree 691 stub TlsFreeInternal 692 stdcall TlsGetValue(long) TlsGetValue @@ -710,7 +713,7 @@ base 1 720 stub WaitForMultipleObjects 721 stub WaitForMultipleObjectsEx 722 stdcall WaitForSingleObject(long long) WaitForSingleObject -723 stub WaitForSingleObjectEx +723 stdcall WaitForSingleObjectEx(long long long) WaitForSingleObjectEx 724 stub WaitNamedPipeA 725 stub WaitNamedPipeW 726 stdcall WideCharToMultiByte(long long ptr long ptr long ptr ptr) WideCharToMultiByte @@ -798,8 +801,6 @@ base 1 805 stub GetConsoleCommandHistoryLengthA 806 stub GetConsoleCommandHistoryLengthW 807 stub GetConsoleCommandHistoryW -808 stub GetConsoleCursorInfo -809 stub GetConsoleCursorInfo 810 stub GetConsoleDisplayMode 811 stub GetConsoleFontInfo 812 stub GetConsoleFontSize @@ -812,12 +813,10 @@ base 1 819 stub HeapCreateTagsW 820 stub HeapExtend 821 stub HeapQueryTagW -822 stub HeapSetFlags 823 stub HeapSummary 824 stub HeapUsage 825 stub InvalidateConsoleDIBits 826 stub IsDebuggerPresent -827 stub NotifyNLSUserCache 828 stub OpenConsoleW 829 stub QueryWin31IniFilesMappedToRegistry 830 stub RegisterConsoleVDM diff --git a/if1632/mmsystem.spec b/if1632/mmsystem.spec index 910f246a4e3..68b3a60e7ae 100644 --- a/if1632/mmsystem.spec +++ b/if1632/mmsystem.spec @@ -42,6 +42,7 @@ type win16 305 pascal MIDIINCLOSE(word) midiInClose 306 pascal MIDIINPREPAREHEADER(word segptr word) midiInPrepareHeader 307 pascal MIDIINUNPREPAREHEADER(word segptr word) midiInUnprepareHeader +308 pascal MIDIINADDBUFFER(word segptr word) midiInAddBuffer 309 pascal MIDIINSTART(word) midiInStart 310 pascal MIDIINSTOP(word) midiInStop 311 pascal MIDIINRESET(word) midiInReset diff --git a/if1632/ntdll.spec b/if1632/ntdll.spec index eeee134888b..08d394197a8 100644 --- a/if1632/ntdll.spec +++ b/if1632/ntdll.spec @@ -874,20 +874,20 @@ base 0 870 stub _snwprintf 871 stub _splitpath 872 stub _strcmpi -873 stub _stricmp +873 stdcall _stricmp(ptr ptr) lstrcmpi32A 874 stub _strlwr 875 stub _strnicmp 876 stdcall _strupr(ptr) CRTDLL__strupr 877 stub _ultoa 878 stub _vsnprintf 879 stdcall _wcsicmp(ptr ptr) lstrcmpi32W -880 stub _wcslwr -881 stub _wcsnicmp -882 stub _wcsupr +880 stdcall _wcslwr(ptr) CRTDLL__wcslwr +881 stdcall _wcsnicmp(ptr ptr long) lstrncmpi32W +882 stdcall _wcsupr(ptr) CRTDLL__wcsupr 883 stub abs 884 stub atan 885 stdcall atoi(ptr) CRTDLL_atoi -886 stub atol +886 stdcall atol(ptr) CRTDLL_atol 887 stub ceil 888 stub cos 889 stub fabs @@ -917,10 +917,10 @@ base 0 913 stdcall sscanf() CRTDLL_sscanf 914 stub strcat 915 stdcall strchr(ptr long) strchr -916 stub strcmp -917 stub strcpy +916 stdcall strcmp(ptr ptr) lstrcmp32A +917 stdcall strcpy(ptr ptr) lstrcpy32A 918 stub strcspn -919 stub strlen +919 stdcall strlen(ptr) lstrlen32A 920 stub strncat 921 stub strncmp 922 stub strncpy diff --git a/if1632/relay.c b/if1632/relay.c index 06bf0369e5d..f8e98c4efd0 100644 --- a/if1632/relay.c +++ b/if1632/relay.c @@ -35,6 +35,7 @@ BOOL32 RELAY_Init(void) extern void CALLTO16_Start(), CALLTO16_End(); extern void CALLTO16_Ret_word(), CALLTO16_Ret_long(); + extern int CALLTO32_LargeStack(); extern DWORD CALLTO16_RetAddr_word, CALLTO16_RetAddr_long; codesel = GLOBAL_CreateBlock( GMEM_FIXED, (void *)CALLTO16_Start, @@ -49,6 +50,10 @@ BOOL32 RELAY_Init(void) CALLTO16_RetAddr_long=MAKELONG( (int)CALLTO16_Ret_long-(int)CALLTO16_Start, codesel ); + /* Set the CallLargeStack function pointer */ + + IF1632_CallLargeStack = CALLTO32_LargeStack; + /* Initialize thunking */ return THUNK_Init(); @@ -326,7 +331,7 @@ void RELAY_DebugCallTo32( unsigned int func, int nbargs, unsigned int arg1 ) /********************************************************************** * Catch (KERNEL.55) */ -INT16 Catch( LPCATCHBUF lpbuf ) +INT16 WINAPI Catch( LPCATCHBUF lpbuf ) { STACK16FRAME *pFrame = CURRENT_STACK16; @@ -363,7 +368,7 @@ INT16 Catch( LPCATCHBUF lpbuf ) /********************************************************************** * Throw (KERNEL.56) */ -INT16 Throw( LPCATCHBUF lpbuf, INT16 retval ) +INT16 WINAPI Throw( LPCATCHBUF lpbuf, INT16 retval ) { STACK16FRAME *pFrame; WORD es = CURRENT_STACK16->es; @@ -394,8 +399,8 @@ INT16 Throw( LPCATCHBUF lpbuf, INT16 retval ) /********************************************************************** * CallProc32W (KERNEL.56) */ -DWORD -WIN16_CallProc32W() { +DWORD /*WINAPI*/ WIN16_CallProc32W() +{ DWORD *win_stack = (DWORD *)CURRENT_STACK16->args; DWORD nrofargs = win_stack[0]; DWORD argconvmask = win_stack[1]; @@ -429,6 +434,10 @@ WIN16_CallProc32W() { break; case 5: ret = CallTo32_5(proc32,args[0],args[1],args[2],args[3],args[4]); break; + case 6: ret = CallTo32_6(proc32,args[0],args[1],args[2],args[3],args[4],args[5]); + break; + case 7: ret = CallTo32_7(proc32,args[0],args[1],args[2],args[3],args[4],args[5],args[6]); + break; default: /* FIXME: should go up to 32 arguments */ fprintf(stderr,"CallProc32W: unsupported number of arguments %ld, please report.\n",nrofargs); diff --git a/if1632/shell32.spec b/if1632/shell32.spec index 4498271c5af..14f5deb7c17 100644 --- a/if1632/shell32.spec +++ b/if1632/shell32.spec @@ -17,6 +17,7 @@ base 1 39 stdcall DragAcceptFiles(long long) DragAcceptFiles 40 stub DragFinish 42 stub DragQueryFile + 47 stub SHELL32_47 48 stub DragQueryFileA 51 stub DragQueryFileAorW 52 stub DragQueryFileW @@ -31,9 +32,15 @@ base 1 136 stub ExtractIconExA 146 stub ExtractIconResInfoA 148 stub ExtractIconResInfoW + 154 stub SHELL32_154 + 155 stub SHELL32_155 + 156 stub SHELL32_156 + 158 stub SHELL32_158 178 stub ExtractIconW 180 stub ExtractVersionResource16W - 184 stub FindExecutableA + 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 diff --git a/if1632/signal.c b/if1632/signal.c index 58f0c0b74f2..62a639561ea 100644 --- a/if1632/signal.c +++ b/if1632/signal.c @@ -28,7 +28,7 @@ #include "debugger.h" #include "options.h" -#include "sigcontext.h" +#include "sig_context.h" #include "miscemu.h" diff --git a/if1632/thunk.c b/if1632/thunk.c index 39cf091691c..a28c665741b 100644 --- a/if1632/thunk.c +++ b/if1632/thunk.c @@ -1,7 +1,8 @@ /* - * Emulator thunks + * Emulator and Win95 thunks * * Copyright 1996 Alexandre Julliard + * Copyright 1997 Marcus Meissner */ #include "windows.h" @@ -134,8 +135,8 @@ static LRESULT THUNK_CallWndProc16( WNDPROC16 proc, HWND16 hwnd, UINT16 msg, /*********************************************************************** * THUNK_EnumObjects16 (GDI.71) */ -INT16 THUNK_EnumObjects16( HDC16 hdc, INT16 nObjType, - GOBJENUMPROC16 func, LPARAM lParam ) +INT16 WINAPI THUNK_EnumObjects16( HDC16 hdc, INT16 nObjType, + GOBJENUMPROC16 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_ll ); return EnumObjects16( hdc, nObjType, (GOBJENUMPROC16)&thunk, lParam ); @@ -145,8 +146,8 @@ INT16 THUNK_EnumObjects16( HDC16 hdc, INT16 nObjType, /*********************************************************************** * THUNK_EnumObjects32 (GDI32.89) */ -INT32 THUNK_EnumObjects32( HDC32 hdc, INT32 nObjType, - GOBJENUMPROC32 func, LPARAM lParam ) +INT32 WINAPI THUNK_EnumObjects32( HDC32 hdc, INT32 nObjType, + GOBJENUMPROC32 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_2 ); return EnumObjects32( hdc, nObjType, (GOBJENUMPROC32)&thunk, lParam ); @@ -156,8 +157,8 @@ INT32 THUNK_EnumObjects32( HDC32 hdc, INT32 nObjType, /************************************************************************* * THUNK_EnumFonts16 (GDI.70) */ -INT16 THUNK_EnumFonts16( HDC16 hdc, LPCSTR lpFaceName, - FONTENUMPROC16 func, LPARAM lParam ) +INT16 WINAPI THUNK_EnumFonts16( HDC16 hdc, LPCSTR lpFaceName, + FONTENUMPROC16 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_llwl ); return EnumFonts16( hdc, lpFaceName, (FONTENUMPROC16)&thunk, lParam ); @@ -166,8 +167,8 @@ INT16 THUNK_EnumFonts16( HDC16 hdc, LPCSTR lpFaceName, /************************************************************************* * THUNK_EnumFonts32A (GDI32.84) */ -INT32 THUNK_EnumFonts32A( HDC32 hdc, LPCSTR lpFaceName, - FONTENUMPROC32A func, LPARAM lParam ) +INT32 WINAPI THUNK_EnumFonts32A( HDC32 hdc, LPCSTR lpFaceName, + FONTENUMPROC32A func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumFonts32A( hdc, lpFaceName, (FONTENUMPROC32A)&thunk, lParam ); @@ -176,8 +177,8 @@ INT32 THUNK_EnumFonts32A( HDC32 hdc, LPCSTR lpFaceName, /************************************************************************* * THUNK_EnumFonts32W (GDI32.85) */ -INT32 THUNK_EnumFonts32W( HDC32 hdc, LPCWSTR lpFaceName, - FONTENUMPROC32W func, LPARAM lParam ) +INT32 WINAPI THUNK_EnumFonts32W( HDC32 hdc, LPCWSTR lpFaceName, + FONTENUMPROC32W func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumFonts32W( hdc, lpFaceName, (FONTENUMPROC32W)&thunk, lParam ); @@ -186,8 +187,8 @@ INT32 THUNK_EnumFonts32W( HDC32 hdc, LPCWSTR lpFaceName, /****************************************************************** * THUNK_EnumMetaFile16 (GDI.175) */ -BOOL16 THUNK_EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf, - MFENUMPROC16 func, LPARAM lParam ) +BOOL16 WINAPI THUNK_EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf, + MFENUMPROC16 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_wllwl ); return EnumMetaFile16( hdc, hmf, (MFENUMPROC16)&thunk, lParam ); @@ -197,8 +198,8 @@ BOOL16 THUNK_EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf, /************************************************************************* * THUNK_EnumFontFamilies16 (GDI.330) */ -INT16 THUNK_EnumFontFamilies16( HDC16 hdc, LPCSTR lpszFamily, - FONTENUMPROC16 func, LPARAM lParam ) +INT16 WINAPI THUNK_EnumFontFamilies16( HDC16 hdc, LPCSTR lpszFamily, + FONTENUMPROC16 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_llwl ); return EnumFontFamilies16(hdc, lpszFamily, (FONTENUMPROC16)&thunk, lParam); @@ -208,8 +209,8 @@ INT16 THUNK_EnumFontFamilies16( HDC16 hdc, LPCSTR lpszFamily, /************************************************************************* * THUNK_EnumFontFamilies32A (GDI32.80) */ -INT32 THUNK_EnumFontFamilies32A( HDC32 hdc, LPCSTR lpszFamily, - FONTENUMPROC32A func, LPARAM lParam ) +INT32 WINAPI THUNK_EnumFontFamilies32A( HDC32 hdc, LPCSTR lpszFamily, + FONTENUMPROC32A func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumFontFamilies32A(hdc,lpszFamily,(FONTENUMPROC32A)&thunk,lParam); @@ -219,8 +220,8 @@ INT32 THUNK_EnumFontFamilies32A( HDC32 hdc, LPCSTR lpszFamily, /************************************************************************* * THUNK_EnumFontFamilies32W (GDI32.83) */ -INT32 THUNK_EnumFontFamilies32W( HDC32 hdc, LPCWSTR lpszFamily, - FONTENUMPROC32W func, LPARAM lParam ) +INT32 WINAPI THUNK_EnumFontFamilies32W( HDC32 hdc, LPCWSTR lpszFamily, + FONTENUMPROC32W func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumFontFamilies32W(hdc,lpszFamily,(FONTENUMPROC32W)&thunk,lParam); @@ -229,9 +230,9 @@ INT32 THUNK_EnumFontFamilies32W( HDC32 hdc, LPCWSTR lpszFamily, /************************************************************************* * THUNK_EnumFontFamiliesEx16 (GDI.613) */ -INT16 THUNK_EnumFontFamiliesEx16( HDC16 hdc, LPLOGFONT16 lpLF, - FONTENUMPROCEX16 func, LPARAM lParam, - DWORD reserved ) +INT16 WINAPI THUNK_EnumFontFamiliesEx16( HDC16 hdc, LPLOGFONT16 lpLF, + FONTENUMPROCEX16 func, LPARAM lParam, + DWORD reserved ) { DECL_THUNK( thunk, func, CallTo16_word_llwl ); return EnumFontFamiliesEx16( hdc, lpLF, (FONTENUMPROCEX16)&thunk, @@ -242,9 +243,9 @@ INT16 THUNK_EnumFontFamiliesEx16( HDC16 hdc, LPLOGFONT16 lpLF, /************************************************************************* * THUNK_EnumFontFamiliesEx32A (GDI32.81) */ -INT32 THUNK_EnumFontFamiliesEx32A( HDC32 hdc, LPLOGFONT32A lpLF, - FONTENUMPROCEX32A func, LPARAM lParam, - DWORD reserved) +INT32 WINAPI THUNK_EnumFontFamiliesEx32A( HDC32 hdc, LPLOGFONT32A lpLF, + FONTENUMPROCEX32A func, LPARAM lParam, + DWORD reserved) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumFontFamiliesEx32A( hdc, lpLF, (FONTENUMPROCEX32A)&thunk, @@ -255,9 +256,9 @@ INT32 THUNK_EnumFontFamiliesEx32A( HDC32 hdc, LPLOGFONT32A lpLF, /************************************************************************* * THUNK_EnumFontFamiliesEx32W (GDI32.82) */ -INT32 THUNK_EnumFontFamiliesEx32W( HDC32 hdc, LPLOGFONT32W lpLF, - FONTENUMPROCEX32W func, LPARAM lParam, - DWORD reserved ) +INT32 WINAPI THUNK_EnumFontFamiliesEx32W( HDC32 hdc, LPLOGFONT32W lpLF, + FONTENUMPROCEX32W func, LPARAM lParam, + DWORD reserved ) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumFontFamiliesEx32W( hdc, lpLF, (FONTENUMPROCEX32W)&thunk, @@ -268,8 +269,8 @@ INT32 THUNK_EnumFontFamiliesEx32W( HDC32 hdc, LPLOGFONT32W lpLF, /********************************************************************** * THUNK_LineDDA16 (GDI.100) */ -void THUNK_LineDDA16( INT16 nXStart, INT16 nYStart, INT16 nXEnd, INT16 nYEnd, - LINEDDAPROC16 func, LPARAM lParam ) +void WINAPI THUNK_LineDDA16( INT16 nXStart, INT16 nYStart, INT16 nXEnd, + INT16 nYEnd, LINEDDAPROC16 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_wwl ); LineDDA16( nXStart, nYStart, nXEnd, nYEnd, (LINEDDAPROC16)&thunk, lParam ); @@ -279,8 +280,8 @@ void THUNK_LineDDA16( INT16 nXStart, INT16 nYStart, INT16 nXEnd, INT16 nYEnd, /********************************************************************** * THUNK_LineDDA32 (GDI32.248) */ -BOOL32 THUNK_LineDDA32( INT32 nXStart, INT32 nYStart, INT32 nXEnd, INT32 nYEnd, - LINEDDAPROC32 func, LPARAM lParam ) +BOOL32 WINAPI THUNK_LineDDA32( INT32 nXStart, INT32 nYStart, INT32 nXEnd, + INT32 nYEnd, LINEDDAPROC32 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_3 ); return LineDDA32( nXStart, nYStart, nXEnd, nYEnd, @@ -291,7 +292,7 @@ BOOL32 THUNK_LineDDA32( INT32 nXStart, INT32 nYStart, INT32 nXEnd, INT32 nYEnd, /******************************************************************* * THUNK_EnumWindows16 (USER.54) */ -BOOL16 THUNK_EnumWindows16( WNDENUMPROC16 func, LPARAM lParam ) +BOOL16 WINAPI THUNK_EnumWindows16( WNDENUMPROC16 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_wl ); return EnumWindows16( (WNDENUMPROC16)&thunk, lParam ); @@ -301,7 +302,7 @@ BOOL16 THUNK_EnumWindows16( WNDENUMPROC16 func, LPARAM lParam ) /******************************************************************* * THUNK_EnumWindows32 (USER32.192) */ -BOOL32 THUNK_EnumWindows32( WNDENUMPROC32 func, LPARAM lParam ) +BOOL32 WINAPI THUNK_EnumWindows32( WNDENUMPROC32 func, LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_2 ); return EnumWindows32( (WNDENUMPROC32)&thunk, lParam ); @@ -311,8 +312,8 @@ BOOL32 THUNK_EnumWindows32( WNDENUMPROC32 func, LPARAM lParam ) /********************************************************************** * THUNK_EnumChildWindows16 (USER.55) */ -BOOL16 THUNK_EnumChildWindows16( HWND16 parent, WNDENUMPROC16 func, - LPARAM lParam ) +BOOL16 WINAPI THUNK_EnumChildWindows16( HWND16 parent, WNDENUMPROC16 func, + LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_wl ); return EnumChildWindows16( parent, (WNDENUMPROC16)&thunk, lParam ); @@ -322,8 +323,8 @@ BOOL16 THUNK_EnumChildWindows16( HWND16 parent, WNDENUMPROC16 func, /********************************************************************** * THUNK_EnumChildWindows32 (USER32.177) */ -BOOL32 THUNK_EnumChildWindows32( HWND32 parent, WNDENUMPROC32 func, - LPARAM lParam ) +BOOL32 WINAPI THUNK_EnumChildWindows32( HWND32 parent, WNDENUMPROC32 func, + LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_2 ); return EnumChildWindows32( parent, (WNDENUMPROC32)&thunk, lParam ); @@ -333,8 +334,8 @@ BOOL32 THUNK_EnumChildWindows32( HWND32 parent, WNDENUMPROC32 func, /********************************************************************** * THUNK_EnumTaskWindows16 (USER.225) */ -BOOL16 THUNK_EnumTaskWindows16( HTASK16 hTask, WNDENUMPROC16 func, - LPARAM lParam ) +BOOL16 WINAPI THUNK_EnumTaskWindows16( HTASK16 hTask, WNDENUMPROC16 func, + LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo16_word_wl ); return EnumTaskWindows16( hTask, (WNDENUMPROC16)&thunk, lParam ); @@ -344,7 +345,8 @@ BOOL16 THUNK_EnumTaskWindows16( HTASK16 hTask, WNDENUMPROC16 func, /********************************************************************** * THUNK_EnumThreadWindows (USER32.189) */ -BOOL32 THUNK_EnumThreadWindows( DWORD id, WNDENUMPROC32 func, LPARAM lParam ) +BOOL32 WINAPI THUNK_EnumThreadWindows( DWORD id, WNDENUMPROC32 func, + LPARAM lParam ) { DECL_THUNK( thunk, func, CallTo32_2 ); return EnumThreadWindows( id, (WNDENUMPROC32)&thunk, lParam ); @@ -354,7 +356,7 @@ BOOL32 THUNK_EnumThreadWindows( DWORD id, WNDENUMPROC32 func, LPARAM lParam ) /*********************************************************************** * THUNK_EnumProps16 (USER.27) */ -INT16 THUNK_EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) +INT16 WINAPI THUNK_EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) { DECL_THUNK( thunk, func, CallTo16_word_wlw ); return EnumProps16( hwnd, (PROPENUMPROC16)&thunk ); @@ -364,7 +366,7 @@ INT16 THUNK_EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) /*********************************************************************** * THUNK_EnumProps32A (USER32.185) */ -INT32 THUNK_EnumProps32A( HWND32 hwnd, PROPENUMPROC32A func ) +INT32 WINAPI THUNK_EnumProps32A( HWND32 hwnd, PROPENUMPROC32A func ) { DECL_THUNK( thunk, func, CallTo32_3 ); return EnumProps32A( hwnd, (PROPENUMPROC32A)&thunk ); @@ -374,7 +376,7 @@ INT32 THUNK_EnumProps32A( HWND32 hwnd, PROPENUMPROC32A func ) /*********************************************************************** * THUNK_EnumProps32W (USER32.188) */ -INT32 THUNK_EnumProps32W( HWND32 hwnd, PROPENUMPROC32W func ) +INT32 WINAPI THUNK_EnumProps32W( HWND32 hwnd, PROPENUMPROC32W func ) { DECL_THUNK( thunk, func, CallTo32_3 ); return EnumProps32W( hwnd, (PROPENUMPROC32W)&thunk ); @@ -384,7 +386,8 @@ INT32 THUNK_EnumProps32W( HWND32 hwnd, PROPENUMPROC32W func ) /*********************************************************************** * THUNK_EnumPropsEx32A (USER32.186) */ -INT32 THUNK_EnumPropsEx32A( HWND32 hwnd, PROPENUMPROCEX32A func, LPARAM lParam) +INT32 WINAPI THUNK_EnumPropsEx32A( HWND32 hwnd, PROPENUMPROCEX32A func, + LPARAM lParam) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumPropsEx32A( hwnd, (PROPENUMPROCEX32A)&thunk, lParam ); @@ -394,7 +397,8 @@ INT32 THUNK_EnumPropsEx32A( HWND32 hwnd, PROPENUMPROCEX32A func, LPARAM lParam) /*********************************************************************** * THUNK_EnumPropsEx32W (USER32.187) */ -INT32 THUNK_EnumPropsEx32W( HWND32 hwnd, PROPENUMPROCEX32W func, LPARAM lParam) +INT32 WINAPI THUNK_EnumPropsEx32W( HWND32 hwnd, PROPENUMPROCEX32W func, + LPARAM lParam) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumPropsEx32W( hwnd, (PROPENUMPROCEX32W)&thunk, lParam ); @@ -404,7 +408,8 @@ INT32 THUNK_EnumPropsEx32W( HWND32 hwnd, PROPENUMPROCEX32W func, LPARAM lParam) /*********************************************************************** * THUNK_EnumSystemCodePages32A (KERNEL32.92) */ -BOOL32 THUNK_EnumSystemCodePages32A( CODEPAGE_ENUMPROC32A func, DWORD flags ) +BOOL32 WINAPI THUNK_EnumSystemCodePages32A( CODEPAGE_ENUMPROC32A func, + DWORD flags ) { DECL_THUNK( thunk, func, CallTo32_1 ); return EnumSystemCodePages32A( (CODEPAGE_ENUMPROC32A)&thunk, flags ); @@ -414,7 +419,8 @@ BOOL32 THUNK_EnumSystemCodePages32A( CODEPAGE_ENUMPROC32A func, DWORD flags ) /*********************************************************************** * THUNK_EnumSystemCodePages32W (KERNEL32.93) */ -BOOL32 THUNK_EnumSystemCodePages32W( CODEPAGE_ENUMPROC32W func, DWORD flags ) +BOOL32 WINAPI THUNK_EnumSystemCodePages32W( CODEPAGE_ENUMPROC32W func, + DWORD flags ) { DECL_THUNK( thunk, func, CallTo32_1 ); return EnumSystemCodePages32W( (CODEPAGE_ENUMPROC32W)&thunk, flags ); @@ -423,7 +429,7 @@ BOOL32 THUNK_EnumSystemCodePages32W( CODEPAGE_ENUMPROC32W func, DWORD flags ) /*********************************************************************** * THUNK_EnumSystemLocales32A (KERNEL32.92) */ -BOOL32 THUNK_EnumSystemLocales32A( LOCALE_ENUMPROC32A func, DWORD flags ) +BOOL32 WINAPI THUNK_EnumSystemLocales32A( LOCALE_ENUMPROC32A func, DWORD flags) { DECL_THUNK( thunk, func, CallTo32_1 ); return EnumSystemLocales32A( (LOCALE_ENUMPROC32A)&thunk, flags ); @@ -433,7 +439,7 @@ BOOL32 THUNK_EnumSystemLocales32A( LOCALE_ENUMPROC32A func, DWORD flags ) /*********************************************************************** * THUNK_EnumSystemLocales32W (KERNEL32.93) */ -BOOL32 THUNK_EnumSystemLocales32W( LOCALE_ENUMPROC32W func, DWORD flags ) +BOOL32 WINAPI THUNK_EnumSystemLocales32W( LOCALE_ENUMPROC32W func, DWORD flags) { DECL_THUNK( thunk, func, CallTo32_1 ); return EnumSystemLocales32W( (LOCALE_ENUMPROC32W)&thunk, flags ); @@ -442,7 +448,10 @@ BOOL32 THUNK_EnumSystemLocales32W( LOCALE_ENUMPROC32W func, DWORD flags ) /*********************************************************************** * THUNK_EnumResourceLanguages32W (KERNEL32.87) */ -BOOL32 THUNK_EnumResourceLanguages32W( HMODULE32 hmod,LPCWSTR type,LPCWSTR name,ENUMRESLANGPROC32W func, LONG lParam ) +BOOL32 WINAPI THUNK_EnumResourceLanguages32W( HMODULE32 hmod, LPCWSTR type, + LPCWSTR name, + ENUMRESLANGPROC32W func, + LONG lParam ) { DECL_THUNK( thunk, func, CallTo32_5 ); return EnumResourceLanguages32W( hmod,type,name,(ENUMRESLANGPROC32W)&thunk, lParam ); @@ -451,7 +460,10 @@ BOOL32 THUNK_EnumResourceLanguages32W( HMODULE32 hmod,LPCWSTR type,LPCWSTR name, /*********************************************************************** * THUNK_EnumResourceLanguages32A (KERNEL32.86) */ -BOOL32 THUNK_EnumResourceLanguages32A( HMODULE32 hmod,LPCSTR type,LPCSTR name,ENUMRESLANGPROC32A func, LONG lParam ) +BOOL32 WINAPI THUNK_EnumResourceLanguages32A( HMODULE32 hmod, LPCSTR type, + LPCSTR name, + ENUMRESLANGPROC32A func, + LONG lParam ) { DECL_THUNK( thunk, func, CallTo32_5 ); return EnumResourceLanguages32A( hmod,type,name,(ENUMRESLANGPROC32A)&thunk, lParam ); @@ -460,8 +472,8 @@ BOOL32 THUNK_EnumResourceLanguages32A( HMODULE32 hmod,LPCSTR type,LPCSTR name,EN /*********************************************************************** * THUNK_EnumResourceNames32A (KERNEL32.88) */ -BOOL32 THUNK_EnumResourceNames32A( HMODULE32 hmod, LPCSTR type, - ENUMRESNAMEPROC32A func, LONG lParam ) +BOOL32 WINAPI THUNK_EnumResourceNames32A( HMODULE32 hmod, LPCSTR type, + ENUMRESNAMEPROC32A func, LONG lParam) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumResourceNames32A( hmod,type,(ENUMRESNAMEPROC32A)&thunk,lParam ); @@ -470,8 +482,8 @@ BOOL32 THUNK_EnumResourceNames32A( HMODULE32 hmod, LPCSTR type, /*********************************************************************** * THUNK_EnumResourceNames32W (KERNEL32.89) */ -BOOL32 THUNK_EnumResourceNames32W( HMODULE32 hmod, LPCWSTR type, - ENUMRESNAMEPROC32W func, LONG lParam ) +BOOL32 WINAPI THUNK_EnumResourceNames32W( HMODULE32 hmod, LPCWSTR type, + ENUMRESNAMEPROC32W func, LONG lParam) { DECL_THUNK( thunk, func, CallTo32_4 ); return EnumResourceNames32W( hmod,type,(ENUMRESNAMEPROC32W)&thunk, lParam); @@ -480,7 +492,8 @@ BOOL32 THUNK_EnumResourceNames32W( HMODULE32 hmod, LPCWSTR type, /*********************************************************************** * THUNK_EnumResourceTypes32A (KERNEL32.90) */ -BOOL32 THUNK_EnumResourceTypes32A( HMODULE32 hmod,ENUMRESTYPEPROC32A func, LONG lParam ) +BOOL32 WINAPI THUNK_EnumResourceTypes32A( HMODULE32 hmod, + ENUMRESTYPEPROC32A func, LONG lParam) { DECL_THUNK( thunk, func, CallTo32_3 ); return EnumResourceTypes32A( hmod,(ENUMRESTYPEPROC32A)&thunk, lParam ); @@ -489,7 +502,9 @@ BOOL32 THUNK_EnumResourceTypes32A( HMODULE32 hmod,ENUMRESTYPEPROC32A func, LONG /*********************************************************************** * THUNK_EnumResourceTypes32W (KERNEL32.91) */ -BOOL32 THUNK_EnumResourceTypes32W( HMODULE32 hmod,ENUMRESTYPEPROC32W func, LONG lParam ) +BOOL32 WINAPI THUNK_EnumResourceTypes32W( HMODULE32 hmod, + ENUMRESTYPEPROC32W func, + LONG lParam ) { DECL_THUNK( thunk, func, CallTo32_3 ); return EnumResourceTypes32W( hmod,(ENUMRESTYPEPROC32W)&thunk, lParam ); @@ -499,9 +514,10 @@ BOOL32 THUNK_EnumResourceTypes32W( HMODULE32 hmod,ENUMRESTYPEPROC32W func, LONG /*********************************************************************** * THUNK_GrayString16 (USER.185) */ -BOOL16 THUNK_GrayString16( HDC16 hdc, HBRUSH16 hbr, GRAYSTRINGPROC16 func, - LPARAM lParam, INT16 cch, INT16 x, INT16 y, - INT16 cx, INT16 cy ) +BOOL16 WINAPI THUNK_GrayString16( HDC16 hdc, HBRUSH16 hbr, + GRAYSTRINGPROC16 func, LPARAM lParam, + INT16 cch, INT16 x, INT16 y, + INT16 cx, INT16 cy ) { DECL_THUNK( thunk, func, CallTo16_word_wlw ); if (!func) @@ -515,9 +531,10 @@ BOOL16 THUNK_GrayString16( HDC16 hdc, HBRUSH16 hbr, GRAYSTRINGPROC16 func, /*********************************************************************** * THUNK_GrayString32A (USER32.314) */ -BOOL32 THUNK_GrayString32A( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 func, - LPARAM lParam, INT32 cch, INT32 x, INT32 y, - INT32 cx, INT32 cy ) +BOOL32 WINAPI THUNK_GrayString32A( HDC32 hdc, HBRUSH32 hbr, + GRAYSTRINGPROC32 func, LPARAM lParam, + INT32 cch, INT32 x, INT32 y, + INT32 cx, INT32 cy ) { DECL_THUNK( thunk, func, CallTo32_3 ); if (!func) @@ -531,9 +548,10 @@ BOOL32 THUNK_GrayString32A( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 func, /*********************************************************************** * THUNK_GrayString32W (USER32.315) */ -BOOL32 THUNK_GrayString32W( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 func, - LPARAM lParam, INT32 cch, INT32 x, INT32 y, - INT32 cx, INT32 cy ) +BOOL32 WINAPI THUNK_GrayString32W( HDC32 hdc, HBRUSH32 hbr, + GRAYSTRINGPROC32 func, + LPARAM lParam, INT32 cch, INT32 x, INT32 y, + INT32 cx, INT32 cy ) { DECL_THUNK( thunk, func, CallTo32_3 ); if (!func) @@ -547,7 +565,7 @@ BOOL32 THUNK_GrayString32W( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 func, /*********************************************************************** * THUNK_SetWindowsHook16 (USER.121) */ -FARPROC16 THUNK_SetWindowsHook16( INT16 id, HOOKPROC16 proc ) +FARPROC16 WINAPI THUNK_SetWindowsHook16( INT16 id, HOOKPROC16 proc ) { HINSTANCE16 hInst = FarGetOwner( HIWORD(proc) ); HTASK16 hTask = (id == WH_MSGFILTER) ? GetCurrentTask() : 0; @@ -560,7 +578,7 @@ FARPROC16 THUNK_SetWindowsHook16( INT16 id, HOOKPROC16 proc ) /*********************************************************************** * THUNK_UnhookWindowsHook16 (USER.234) */ -BOOL16 THUNK_UnhookWindowsHook16( INT16 id, HOOKPROC16 proc ) +BOOL16 WINAPI THUNK_UnhookWindowsHook16( INT16 id, HOOKPROC16 proc ) { BOOL16 ret; THUNK *thunk = THUNK_Find( (FARPROC16)proc ); @@ -574,8 +592,8 @@ BOOL16 THUNK_UnhookWindowsHook16( INT16 id, HOOKPROC16 proc ) /*********************************************************************** * THUNK_SetWindowsHookEx16 (USER.291) */ -HHOOK THUNK_SetWindowsHookEx16( INT16 id, HOOKPROC16 proc, HINSTANCE16 hInst, - HTASK16 hTask ) +HHOOK WINAPI THUNK_SetWindowsHookEx16( INT16 id, HOOKPROC16 proc, + HINSTANCE16 hInst, HTASK16 hTask ) { THUNK *thunk = THUNK_Alloc( (FARPROC16)proc, (RELAY)CallTo16_long_wwl ); if (!thunk) return 0; @@ -586,7 +604,7 @@ HHOOK THUNK_SetWindowsHookEx16( INT16 id, HOOKPROC16 proc, HINSTANCE16 hInst, /*********************************************************************** * THUNK_UnhookWindowHookEx16 (USER.292) */ -BOOL16 THUNK_UnhookWindowsHookEx16( HHOOK hhook ) +BOOL16 WINAPI THUNK_UnhookWindowsHookEx16( HHOOK hhook ) { THUNK *thunk = (THUNK *)HOOK_GetProc16( hhook ); BOOL16 ret = UnhookWindowsHookEx16( hhook ); @@ -598,7 +616,7 @@ BOOL16 THUNK_UnhookWindowsHookEx16( HHOOK hhook ) /*********************************************************************** * THUNK_CreateSystemTimer (SYSTEM.2) */ -WORD THUNK_CreateSystemTimer( WORD rate, FARPROC16 callback ) +WORD WINAPI THUNK_CreateSystemTimer( WORD rate, FARPROC16 callback ) { THUNK *thunk = THUNK_Alloc( callback, (RELAY)CallTo16_word_ ); if (!thunk) return 0; @@ -609,7 +627,7 @@ WORD THUNK_CreateSystemTimer( WORD rate, FARPROC16 callback ) /*********************************************************************** * THUNK_KillSystemTimer (SYSTEM.3) */ -WORD THUNK_KillSystemTimer( WORD timer ) +WORD WINAPI THUNK_KillSystemTimer( WORD timer ) { extern WORD SYSTEM_KillSystemTimer( WORD timer ); /* misc/system.c */ extern FARPROC16 SYSTEM_GetTimerProc( WORD timer ); /* misc/system.c */ @@ -624,7 +642,7 @@ WORD THUNK_KillSystemTimer( WORD timer ) /*********************************************************************** * THUNK_SetUnhandledExceptionFilter (KERNEL32.516) */ -LPTOP_LEVEL_EXCEPTION_FILTER THUNK_SetUnhandledExceptionFilter( +LPTOP_LEVEL_EXCEPTION_FILTER WINAPI THUNK_SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter ) { LPTOP_LEVEL_EXCEPTION_FILTER old; @@ -644,7 +662,7 @@ static FARPROC16 defDCHookProc = NULL; /*********************************************************************** * THUNK_SetDCHook (GDI.190) */ -BOOL16 THUNK_SetDCHook( HDC16 hdc, FARPROC16 proc, DWORD dwHookData ) +BOOL16 WINAPI THUNK_SetDCHook( HDC16 hdc, FARPROC16 proc, DWORD dwHookData ) { THUNK *thunk, *oldThunk; @@ -669,7 +687,7 @@ BOOL16 THUNK_SetDCHook( HDC16 hdc, FARPROC16 proc, DWORD dwHookData ) /*********************************************************************** * THUNK_GetDCHook (GDI.191) */ -DWORD THUNK_GetDCHook( HDC16 hdc, FARPROC16 *phookProc ) +DWORD WINAPI THUNK_GetDCHook( HDC16 hdc, FARPROC16 *phookProc ) { THUNK *thunk = NULL; DWORD ret = GetDCHook( hdc, (FARPROC16 *)&thunk ); @@ -687,19 +705,81 @@ DWORD THUNK_GetDCHook( HDC16 hdc, FARPROC16 *phookProc ) return ret; } +/*********************************************************************** + * * + * Win95 internal thunks * + * * + ***********************************************************************/ +/*********************************************************************** + * Generates a FT_Prolog call. + * + * 0FB6D1 movzbl edx,cl + * 8B1495xxxxxxxx mov edx,[4*edx + xxxxxxxx] + * 68xxxxxxxx push FT_Prolog + * C3 lret + */ +static void _write_ftprolog(LPBYTE start,DWORD thunkstart) { + LPBYTE x; + + x = start; + *x++ = 0x0f;*x++=0xb6;*x++=0xd1; /* movzbl edx,cl */ + *x++ = 0x8B;*x++=0x14;*x++=0x95;*(DWORD*)x= thunkstart; + x+=4; /* mov edx, [4*edx + thunkstart] */ + *x++ = 0x68; *(DWORD*)x = (DWORD)GetProcAddress32(WIN32_GetModuleHandleA("KERNEL32"),"FT_Prolog"); + x+=4; /* push FT_Prolog */ + *x++ = 0xC3; /* lret */ + /* fill rest with 0xCC / int 3 */ +} + +/*********************************************************************** + * Generates a QT_Thunk style call. + * + * 33C9 xor ecx, ecx + * 8A4DFC mov cl , [ebp-04] + * 8B148Dxxxxxxxx mov edx, [4*ecx + (EAX+EDX)] + * B8yyyyyyyy mov eax, QT_Thunk + * FFE0 jmp eax + */ +static void _write_qtthunk(LPBYTE start,DWORD thunkstart) { + LPBYTE x; + + x = start; + *x++ = 0x33;*x++=0xC9; /* xor ecx,ecx */ + *x++ = 0x8A;*x++=0x4D;*x++=0xFC; /* movb cl,[ebp-04] */ + *x++ = 0x8B;*x++=0x14;*x++=0x8D;*(DWORD*)x= thunkstart; + x+=4; /* mov edx, [4*ecx + (EAX+EDX) */ + *x++ = 0xB8; *(DWORD*)x = (DWORD)GetProcAddress32(WIN32_GetModuleHandleA("KERNEL32"),"QT_Thunk"); + x+=4; /* mov eax , QT_Thunk */ + *x++ = 0xFF; *x++ = 0xE0; /* jmp eax */ + /* should fill the rest of the 32 bytes with 0xCC */ +} + +/*********************************************************************** + * ThunkConnect32 (KERNEL32) + * Connects a 32bit and a 16bit thunkbuffer. + */ struct thunkstruct { char magic[4]; - DWORD x1; - DWORD x2; + DWORD length; + DWORD ptr; + DWORD x0C; + + DWORD x10; + DWORD x14; + DWORD x18; + DWORD x1C; + DWORD x20; }; -UINT32 ThunkConnect32( struct thunkstruct *ths, LPSTR thunkfun16, - LPSTR module16, LPSTR module32, HMODULE32 hmod32, - DWORD dllinitarg1 ) +UINT32 WINAPI ThunkConnect32( struct thunkstruct *ths, LPSTR thunkfun16, + LPSTR module16, LPSTR module32, HMODULE32 hmod32, + DWORD dllinitarg1 ) { HINSTANCE16 hmm; + SEGPTR thkbuf; + struct thunkstruct *ths16; fprintf(stdnimp,"ThunkConnect32(,%s,%s,%s,%x,%lx)\n", thunkfun16,module32,module16,hmod32,dllinitarg1 @@ -710,8 +790,402 @@ UINT32 ThunkConnect32( struct thunkstruct *ths, LPSTR thunkfun16, ths->magic[2], ths->magic[3] ); - fprintf(stdnimp," x1 = %lx\n",ths->x1); - fprintf(stdnimp," x2 = %lx\n",ths->x2); + fprintf(stdnimp," length = %lx\n",ths->length); + if (lstrncmp32A(ths->magic,"SL01",4)&&lstrncmp32A(ths->magic,"LS01",4)) + return 0; hmm=LoadModule16(module16,NULL); + if (hmm<=32) + return 0; + thkbuf=(SEGPTR)WIN32_GetProcAddress16(hmm,thunkfun16); + if (!thkbuf) + return 0; + ths16=(struct thunkstruct*)PTR_SEG_TO_LIN(thkbuf); + if (lstrncmp32A(ths16->magic,ths->magic,4)) + return 0; + + if (!lstrncmp32A(ths->magic,"SL01",4)) { + if (ths16->length != ths->length) + return 0; + ths->x0C = (DWORD)ths16; + + fprintf(stderr," ths16 magic is 0x%08lx\n",*(DWORD*)ths16->magic); + if (*((DWORD*)ths16->magic) != 0x0000304C) + return 0; + if (!*(WORD*)(((LPBYTE)ths16)+0x12)) + return 0; + + } + if (!lstrncmp32A(ths->magic,"LS01",4)) { + if (ths16->length != ths->length) + return 0; + ths->ptr = (DWORD)PTR_SEG_TO_LIN(ths16->ptr); + /* code offset for QT_Thunk is at 0x1C... */ + _write_qtthunk (((LPBYTE)ths) + ths->x1C,ths->ptr); + /* code offset for FT_Prolog is at 0x20... */ + _write_ftprolog(((LPBYTE)ths) + ths->x20,ths->ptr); + return 1; + } return TRUE; } + + +/********************************************************************** + * The infamous and undocumented QT_Thunk procedure. + * + * We get arguments in [EBP+8] up to [EBP+38]. + * We have to set up a frame in the 16 bit stackframe. + * saved_ss_sp: bp+0x40 + * bp+0x3c + * ... + * bp: bp+0x00 + * sp: + * + */ +extern DWORD IF1632_Saved16_ss_sp; +VOID WINAPI QT_Thunk(CONTEXT *context) +{ + CONTEXT context16; + LPBYTE curstack; + DWORD ret; + + fprintf(stderr,"QT_Thunk(%08lx) ..",EDX_reg(context)); + fprintf(stderr," argsize probably ebp-esp=%ld\n", + EBP_reg(context)-ESP_reg(context) + ); + memcpy(&context16,context,sizeof(context16)); + + curstack = PTR_SEG_TO_LIN(IF1632_Saved16_ss_sp); + memcpy(curstack-0x40,(LPBYTE)EBP_reg(context),0x40); + EBP_reg(&context16) = LOWORD(IF1632_Saved16_ss_sp)-0x40; + IF1632_Saved16_ss_sp -= 0x3c; + + CS_reg(&context16) = HIWORD(EDX_reg(context)); + IP_reg(&context16) = LOWORD(EDX_reg(context)); +#ifndef WINELIB + ret = CallTo16_regs_(&context16); +#endif + fprintf(stderr,". returned %08lx\n",ret); + EAX_reg(context) = ret; + IF1632_Saved16_ss_sp += 0x3c; +} + + +/********************************************************************** + * WOWCallback16 (KERNEL32.62) + */ +DWORD WINAPI WOWCallback16(FARPROC16 fproc,DWORD arg) +{ + DWORD ret; + fprintf(stderr,"WOWCallback16(%p,0x%08lx) ",fproc,arg); + ret = CallTo16_long_l(fproc,arg); + fprintf(stderr,"... returns %ld\n",ret); + return ret; +} + +/*********************************************************************** + * _KERNEL32_52 (KERNEL32.52) + * FIXME: what does it really do? + */ +VOID WINAPI _KERNEL32_52(DWORD arg1,CONTEXT *regs) +{ + fprintf(stderr,"_KERNE32_52(arg1=%08lx,%08lx)\n",arg1,EDI_reg(regs)); + + EAX_reg(regs) = (DWORD)WIN32_GetProcAddress16(EDI_reg(regs),"ThkBuf"); + + fprintf(stderr," GetProcAddress16(\"ThkBuf\") returns %08lx\n", + EAX_reg(regs) + ); +} + +/*********************************************************************** + * _KERNEL32_43 (KERNEL32.42) + * A thunkbuffer link routine + * The thunkbuf looks like: + * + * 00: DWORD length ? don't know exactly + * 04: SEGPTR ptr ? where does it point to? + * The pointer ptr is written into the first DWORD of 'thunk'. + * (probably correct implemented) + */ +BOOL32 WINAPI _KERNEL32_43(LPDWORD thunk,LPCSTR thkbuf,DWORD len, + LPCSTR dll16,LPCSTR dll32) +{ + HINSTANCE16 hmod; + LPDWORD addr; + SEGPTR segaddr; + + fprintf(stderr,"_KERNEL32_43(%p,%s,0x%08lx,%s,%s)\n",thunk,thkbuf,len,dll16,dll32); + + hmod = LoadLibrary16(dll16); + if (hmod<32) { + fprintf(stderr,"->failed to load 16bit DLL %s, error %d\n",dll16,hmod); + return NULL; + } + segaddr = (DWORD)WIN32_GetProcAddress16(hmod,(LPSTR)thkbuf); + if (!segaddr) { + fprintf(stderr,"->no %s exported from %s!\n",thkbuf,dll16); + return NULL; + } + addr = (LPDWORD)PTR_SEG_TO_LIN(segaddr); + if (addr[0] != len) { + fprintf(stderr,"->thkbuf length mismatch? %ld vs %ld\n",len,addr[0]); + return NULL; + } + if (!addr[1]) + return 0; + fprintf(stderr," addr[1] is %08lx\n",addr[1]); + *(DWORD*)thunk = addr[1]; + return addr[1]; +} + +/*********************************************************************** + * _KERNEL32_45 (KERNEL32.44) + * Looks like another 32->16 thunk. Dunno why they need two of them. + * calls the win16 address in EAX with the current stack. + * + * FIXME: doesn't seem to work correctly yet... + */ +VOID WINAPI _KERNEL32_45(CONTEXT *context) +{ + CONTEXT context16; + LPBYTE curstack; + DWORD ret,stacksize; + + fprintf(stderr,"KERNEL32_45(%%eax=0x%08lx(%%cx=0x%04lx,%%edx=0x%08lx))\n", + (DWORD)EAX_reg(context),(DWORD)CX_reg(context),(DWORD)EDX_reg(context) + ); + stacksize = EBP_reg(context)-ESP_reg(context); + fprintf(stderr," stacksize = %ld\n",stacksize); + + memcpy(&context16,context,sizeof(context16)); + + curstack = PTR_SEG_TO_LIN(IF1632_Saved16_ss_sp); + memcpy(curstack-stacksize,(LPBYTE)EBP_reg(context),stacksize); + fprintf(stderr,"IF1632_Saved16_ss_sp is 0x%08lx\n",IF1632_Saved16_ss_sp); + EBP_reg(&context16) = LOWORD(IF1632_Saved16_ss_sp)-stacksize; + IF1632_Saved16_ss_sp -= stacksize; + + DI_reg(&context16) = CX_reg(context); + CS_reg(&context16) = HIWORD(EAX_reg(context)); + IP_reg(&context16) = LOWORD(EAX_reg(context)); + /* some more registers spronged locally, but I don't think they are + * needed + */ +#ifndef WINELIB + ret = CallTo16_regs_(&context16); +#endif + fprintf(stderr,". returned %08lx\n",ret); + EAX_reg(context) = ret; + IF1632_Saved16_ss_sp += stacksize; + +} + +/*********************************************************************** + * (KERNEL32.40) + * A thunk setup routine. + * Expects a pointer to a preinitialized thunkbuffer in the first argument + * looking like: + * 00..03: unknown (pointer, check _41, _43, _46) + * 04: EB1E jmp +0x20 + * + * 06..23: unknown (space for replacement code, check .90) + * + * 24:>E800000000 call offset 29 + * 29:>58 pop eax ( target of call ) + * 2A: 2D25000000 sub eax,0x00000025 ( now points to offset 4 ) + * 2F: BAxxxxxxxx mov edx,xxxxxxxx + * 34: 68yyyyyyyy push KERNEL32.90 + * 39: C3 ret + * + * 3A: EB1E jmp +0x20 + * 3E ... 59: unknown (space for replacement code?) + * 5A: E8xxxxxxxx call <32bitoffset xxxxxxxx> + * 5F: 5A pop edx + * 60: 81EA25xxxxxx sub edx, 0x25xxxxxx + * 66: 52 push edx + * 67: 68xxxxxxxx push xxxxxxxx + * 6C: 68yyyyyyyy push KERNEL32.89 + * 71: C3 ret + * 72: end? + * This function checks if the code is there, and replaces the yyyyyyyy entries + * by the functionpointers. + * The thunkbuf looks like: + * + * 00: DWORD length ? don't know exactly + * 04: SEGPTR ptr ? where does it point to? + * The segpointer ptr is written into the first DWORD of 'thunk'. + * (probably correct implemented) + */ + +LPVOID WINAPI _KERNEL32_41(LPBYTE thunk,LPCSTR thkbuf,DWORD len,LPCSTR dll16, + LPCSTR dll32) +{ + HMODULE32 hkrnl32 = WIN32_GetModuleHandleA("KERNEL32"); + HMODULE16 hmod; + LPDWORD addr,addr2; + DWORD segaddr; + + fprintf(stderr,"KERNEL32_41(%p,%s,%ld,%s,%s)\n", + thunk,thkbuf,len,dll16,dll32 + ); + + /* FIXME: add checks for valid code ... */ + /* write pointers to kernel32.89 and kernel32.90 (+ordinal base of 1) */ + *(DWORD*)(thunk+0x35) = (DWORD)GetProcAddress32(hkrnl32,(LPSTR)90); + *(DWORD*)(thunk+0x6D) = (DWORD)GetProcAddress32(hkrnl32,(LPSTR)89); + + + hmod = LoadLibrary16(dll16); + if (hmod<32) { + fprintf(stderr,"->failed to load 16bit DLL %s, error %d\n",dll16,hmod); + return NULL; + } + segaddr = (DWORD)WIN32_GetProcAddress16(hmod,(LPSTR)thkbuf); + if (!segaddr) { + fprintf(stderr,"->no %s exported from %s!\n",thkbuf,dll16); + return NULL; + } + addr = (LPDWORD)PTR_SEG_TO_LIN(segaddr); + if (addr[0] != len) { + fprintf(stderr,"->thkbuf length mismatch? %ld vs %ld\n",len,addr[0]); + return NULL; + } + addr2 = PTR_SEG_TO_LIN(addr[1]); + fprintf(stderr," addr2 is %08lx:%p\n",addr[1],addr2); + if (HIWORD(addr2)) + *(DWORD*)thunk = (DWORD)addr2; + return addr2; +} + +/*********************************************************************** + * (KERNEL32.91) + * Thunk priming? function + * Rewrites the first part of the thunk to use the QT_Thunk interface + * and jumps to the start of that code. + */ +VOID WINAPI _KERNEL32_90(CONTEXT *context) +{ + fprintf(stderr,"_KERNEL32_90(eax=0x%08lx,edx=0x%08lx,ebp[-4]=0x%02x,target = %08lx, *target =%08lx)\n", + EAX_reg(context),EDX_reg(context),((BYTE*)EBP_reg(context))[-4], + (*(DWORD*)(EAX_reg(context)+EDX_reg(context)))+4*(((BYTE*)EBP_reg(context))[-4]), + *(DWORD*)((*(DWORD*)(EAX_reg(context)+EDX_reg(context)))+4*(((BYTE*)EBP_reg(context))[-4])) + ); + _write_qtthunk((LPBYTE)EAX_reg(context),*(DWORD*)(EAX_reg(context)+EDX_reg(context))); + /* we just call the real QT_Thunk right now + * we can bypass the relaycode, for we already have the registercontext + */ + EDX_reg(context) = *(DWORD*)((*(DWORD*)(EAX_reg(context)+EDX_reg(context)))+4*(((BYTE*)EBP_reg(context))[-4])); + return QT_Thunk(context); +} + +/*********************************************************************** + * (KERNEL32.45) + * Another thunkbuf link routine. + * The start of the thunkbuf looks like this: + * 00: DWORD length + * 04: SEGPTR address for thunkbuffer pointer + */ +VOID WINAPI _KERNEL32_46(LPBYTE thunk,LPSTR thkbuf,DWORD len,LPSTR dll16, + LPSTR dll32) +{ + LPDWORD addr; + HMODULE16 hmod; + SEGPTR segaddr; + + fprintf(stderr,"KERNEL32_46(%p,%s,%lx,%s,%s)\n", + thunk,thkbuf,len,dll16,dll32 + ); + hmod = LoadLibrary16(dll16); + if (hmod < 32) { + fprintf(stderr,"->couldn't load %s, error %d\n",dll16,hmod); + return; + } + segaddr = (SEGPTR)WIN32_GetProcAddress16(hmod,thkbuf); + if (!segaddr) { + fprintf(stderr,"-> haven't found %s in %s!\n",thkbuf,dll16); + return; + } + addr = (LPDWORD)PTR_SEG_TO_LIN(segaddr); + if (addr[0] != len) { + fprintf(stderr,"-> length of thkbuf differs from expected length! (%ld vs %ld)\n",addr[0],len); + return; + } + *(DWORD*)PTR_SEG_TO_LIN(addr[1]) = (DWORD)thunk; +} + +/********************************************************************** + * _KERNEL32_87 + * Check if thunking is initialized (ss selector set up etc.) + */ +BOOL32 WINAPI _KERNEL32_87() +{ + fprintf(stderr,"KERNEL32_87 stub, returning TRUE\n"); + return TRUE; +} + +/********************************************************************** + * _KERNEL32_88 + * One of the real thunking functions. This one seems to be for 32<->32 + * thunks. It should probably be capable of crossing processboundaries. + * + * And YES, I've seen nr=48 (somewhere in the Win95 32<->16 OLE coupling) + */ +DWORD WINAPI _KERNEL32_88(DWORD *args) +{ + DWORD nr = args[0]; + DWORD flags = args[1]; + FARPROC32 fun = (FARPROC32)args[2]; + DWORD i,ret; + + fprintf(stderr,"KERNEL32_88(%ld,0x%08lx,%p,[ ",nr,flags,fun); + for (i=0;i() # +405 register VXD_Timer() VXD_Timer 414 register VXD_Comm() VXD_Comm #415 register VXD_Printer() VXD_Printer 423 register VXD_Shell() VXD_Shell diff --git a/if1632/wsock32.spec b/if1632/wsock32.spec index 36893c26961..1b369744ff1 100644 --- a/if1632/wsock32.spec +++ b/if1632/wsock32.spec @@ -2,36 +2,36 @@ name wsock32 type win32 base 0 -001 stdcall accept(long ptr ptr) WINSOCK_accept -002 stdcall bind(long ptr long) WINSOCK_bind -003 stdcall closesocket(long) WINSOCK_closesocket -004 stdcall connect(long ptr long) WINSOCK_connect -005 stub getpeername -006 stdcall getsockname(long ptr ptr) WINSOCK_getsockname -007 stub getsockopt +001 stdcall accept(long ptr ptr) WINSOCK_accept32 +002 stdcall bind(long ptr long) WINSOCK_bind32 +003 stdcall closesocket(long) WINSOCK_closesocket32 +004 stdcall connect(long ptr long) WINSOCK_connect32 +005 stdcall getpeername(long ptr ptr) WINSOCK_getpeername32 +006 stdcall getsockname(long ptr ptr) WINSOCK_getsockname32 +007 stdcall getsockopt(long long long ptr ptr) WINSOCK_getsockopt32 008 stdcall htonl(long) WINSOCK_htonl 009 stdcall htons(long) WINSOCK_htons 010 stdcall inet_addr(ptr) inet_addr 011 stdcall inet_ntoa(ptr) inet_ntoa -012 stub ioctlsocket -013 stub listen +012 stdcall ioctlsocket(long long ptr) WINSOCK_ioctlsocket32 +013 stdcall listen(long long) WINSOCK_listen32 014 stdcall ntohl(long) WINSOCK_ntohl 015 stdcall ntohs(long) WINSOCK_ntohs -016 stub recv -017 stub recvfrom -018 stub select -019 stub send -020 stub sendto -021 stub setsockopt -022 stub shutdown -023 stdcall socket(long long long) WINSOCK_socket -051 stdcall gethostbyaddr(ptr long long) WINSOCK_gethostbyaddr -052 stdcall gethostbyname(ptr) gethostbyname -053 stub getprotobyname -054 stub getprotobynumber -055 stdcall getservbyname(ptr ptr) getservbyname -056 stub getservbyport -057 stdcall gethostname(ptr long) gethostname +016 stdcall recv(long ptr long long) WINSOCK_recv32 +017 stdcall recvfrom(long ptr long long ptr ptr) WINSOCK_recvfrom32 +018 stdcall select(long ptr ptr ptr ptr) WINSOCK_select32 +019 stdcall send(long ptr long long) WINSOCK_send32 +020 stdcall sendto(long ptr long long ptr long) WINSOCK_sendto32 +021 stdcall setsockopt(long long long ptr long) WINSOCK_setsockopt32 +022 stdcall shutdown(long long) WINSOCK_shutdown32 +023 stdcall socket(long long long) WINSOCK_socket32 +051 stdcall gethostbyaddr(ptr long long) WINSOCK_gethostbyaddr32 +052 stdcall gethostbyname(ptr) WINSOCK_gethostbyname32 +053 stdcall getprotobyname(ptr) WINSOCK_getprotobyname32 +054 stdcall getprotobynumber(long) WINSOCK_getprotobynumber32 +055 stdcall getservbyname(ptr ptr) WINSOCK_getservbyname32 +056 stdcall getservbyport(long ptr) WINSOCK_getservbyport32 +057 stdcall gethostname(ptr long) WINSOCK_gethostname32 101 stub WSAAsyncSelect 102 stub WSAAsyncGetHostByAddr 103 stub WSAAsyncGetHostByName @@ -42,13 +42,13 @@ base 0 108 stub WSACancelAsyncRequest 109 stdcall WSASetBlockingHook(ptr) WSASetBlockingHook32 110 stdcall WSAUnhookBlockingHook() WSAUnhookBlockingHook32 -111 stub WSAGetLastError -112 stub WSASetLastError -113 stub WSACancelBlockingCall -114 stub WSAIsBlocking -115 stdcall WSAStartup(long ptr) WSAStartup +111 stdcall WSAGetLastError() WSAGetLastError +112 stdcall WSASetLastError(long) WSASetLastError32 +113 stdcall WSACancelBlockingCall() WSACancelBlockingCall +114 stdcall WSAIsBlocking() WSAIsBlocking +115 stdcall WSAStartup(long ptr) WSAStartup32 116 stdcall WSACleanup() WSACleanup -151 stub __WSAFDIsSet +151 stdcall __WSAFDIsSet(long ptr) __WSAFDIsSet32 #500 stub WEP # applications *should* 'degrade gracefully if these are not present # ... as it is, they don't diff --git a/include/bitmap.h b/include/bitmap.h index b6c6545ab23..6ec1ad075a1 100644 --- a/include/bitmap.h +++ b/include/bitmap.h @@ -53,6 +53,7 @@ extern BOOL32 BITMAP_Init(void); 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 ); /* objects/dib.c */ extern int DIB_GetDIBWidthBytes( int width, int depth ); diff --git a/include/button.h b/include/button.h index b0c7a1f6ef1..64c1c087396 100644 --- a/include/button.h +++ b/include/button.h @@ -28,7 +28,7 @@ typedef struct #define BUTTON_STATE(hwnd) ((WIN_FindWndPtr(hwnd))->wExtra[0]) -extern LRESULT ButtonWndProc( HWND32 hWnd, UINT32 uMsg, - WPARAM32 wParam, LPARAM lParam ); +extern LRESULT WINAPI ButtonWndProc( HWND32 hWnd, UINT32 uMsg, + WPARAM32 wParam, LPARAM lParam ); #endif /* __WINE_BUTTON_H */ diff --git a/include/callback.h b/include/callback.h index c2d1020d9c9..4efb4e411da 100644 --- a/include/callback.h +++ b/include/callback.h @@ -10,17 +10,22 @@ #include "wintypes.h" #include "winnt.h" -extern -int CallTo32_LargeStack( int (*func)(), int nbargs, ... ); +extern int (*IF1632_CallLargeStack)( int (*func)(), void *arg ); + +#define CALL_LARGE_STACK(func,arg) \ + (IF1632_CallLargeStack ? \ + IF1632_CallLargeStack( (int(*)())(func), (void *)(arg) ) : \ + ((int(*)())(func))((void *)arg)) /* List of the 16-bit callback functions. This list is used */ /* by the build program to generate the file if1632/callto16.S */ #ifndef WINELIB -extern void CallTo16_regs_ ( const CONTEXT *context ); +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 ); @@ -67,6 +72,14 @@ 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 ) diff --git a/include/color.h b/include/color.h index 985c877a35f..735e62935a1 100644 --- a/include/color.h +++ b/include/color.h @@ -17,7 +17,7 @@ extern void COLOR_Cleanup(void); extern COLORREF COLOR_ToLogical(int pixel); extern int COLOR_ToPhysical( DC *dc, COLORREF color ); -extern int COLOR_SetMapping( PALETTEOBJ* pal, BOOL32 mapOnly ); +extern int COLOR_SetMapping( PALETTEOBJ* pal, UINT32 uStart, UINT32 uNum, BOOL32 mapOnly ); extern BOOL32 COLOR_IsSolid( COLORREF color ); extern Colormap COLOR_GetColormap(); extern UINT16 COLOR_GetSystemPaletteSize(); diff --git a/include/combo.h b/include/combo.h index 7060bdb14fb..a4a861e2801 100644 --- a/include/combo.h +++ b/include/combo.h @@ -18,6 +18,7 @@ #define CBF_CAPTURE 0x0020 #define CBF_EDIT 0x0040 #define CBF_NORESIZE 0x0080 +#define CBF_NOTIFY 0x0100 #define CBF_EUI 0x8000 /* Combo state struct */ diff --git a/include/comm.h b/include/comm.h index 5f2b0af1777..e65df31afa1 100644 --- a/include/comm.h +++ b/include/comm.h @@ -1,7 +1,7 @@ #ifndef __WINE_COMM_H #define __WINE_COMM_H -#define MAX_PORTS 16 +#define MAX_PORTS 9 struct DosDeviceStruct { char *devicename; /* /dev/cua1 */ diff --git a/include/commctrl.h b/include/commctrl.h index a16e7bfbf59..7e6d09d699f 100644 --- a/include/commctrl.h +++ b/include/commctrl.h @@ -7,7 +7,7 @@ #include "windows.h" -void InitCommonControls(void); +void WINAPI InitCommonControls(void); /* StatusWindow */ @@ -41,11 +41,61 @@ void InitCommonControls(void); #define CCS_BOTTOM 0x0003 #define SBARS_SIZEGRIP 0x0100 -HWND32 CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32); -HWND32 CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32); +/* UpDown control */ + +#define UPDOWN_CLASS32A "msctls_updown32" +#define UPDOWN_CLASS32W "msctls_updown32" +#define UPDOWN_CLASS16 "msctls_updown" +#define UPDOWN_CLASS WINELIB_NAME_AW(UPDOWN_CLASS) + +typedef struct tagUDACCEL +{ + UINT32 nSec; + UINT32 nInc; +} UDACCEL; + +typedef struct tagNM_UPDOWN +{ + NMHDR hdr; + int iPos; + int iDelta; +} NM_UPDOWN; + +#define UD_MAXVAL 0x7fff +#define UD_MINVAL 0x8001 + +#define UDS_WRAP 0x0001 +#define UDS_SETBUDDYINT 0x0002 +#define UDS_ALIGNRIGHT 0x0004 +#define UDS_ALIGNLEFT 0x0008 +#define UDS_AUTOBUDDY 0x0010 +#define UDS_ARROWKEYS 0x0020 +#define UDS_HORZ 0x0040 +#define UDS_NOTHOUSANDS 0x0080 + +#define UDN_FIRST (0U-721) +#define UDN_DELTAPOS (UDN_FIRST - 1) + +#define UDM_SETRANGE (WM_USER+101) +#define UDM_GETRANGE (WM_USER+102) +#define UDM_SETPOS (WM_USER+103) +#define UDM_GETPOS (WM_USER+104) +#define UDM_SETBUDDY (WM_USER+105) +#define UDM_GETBUDDY (WM_USER+106) +#define UDM_SETACCEL (WM_USER+107) +#define UDM_GETACCEL (WM_USER+108) +#define UDM_SETBASE (WM_USER+109) +#define UDM_GETBASE (WM_USER+110) + +/* Functions prototypes */ + +HWND32 WINAPI CreateStatusWindow32A(INT32,LPCSTR,HWND32,UINT32); +HWND32 WINAPI CreateStatusWindow32W(INT32,LPCWSTR,HWND32,UINT32); #define CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow) -VOID DrawStatusText32A(HDC32,LPRECT32,LPCSTR,UINT32); -VOID DrawStatusText32W(HDC32,LPRECT32,LPCWSTR,UINT32); +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) #endif /* __WINE_COMMCTRL_H */ diff --git a/include/commdlg.h b/include/commdlg.h index 61ac06fc7fe..01d7bb79d70 100644 --- a/include/commdlg.h +++ b/include/commdlg.h @@ -325,33 +325,32 @@ typedef DEVNAMES * LPDEVNAMES; #define CDERR_NOHOOK 0x000B #define CDERR_REGISTERMSGFAIL 0x000C -BOOL16 ChooseColor(LPCHOOSECOLOR lpChCol); -DWORD CommDlgExtendedError(void); -HWND16 FindText( SEGPTR find); -INT16 GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf); -INT16 GetFileTitle32A(LPCSTR lpFile, LPSTR lpTitle, UINT32 cbBuf); -INT16 GetFileTitle32W(LPCWSTR lpFile, LPWSTR lpTitle, UINT32 cbBuf); +BOOL16 WINAPI ChooseColor(LPCHOOSECOLOR lpChCol); +DWORD WINAPI CommDlgExtendedError(void); +HWND16 WINAPI FindText( SEGPTR find); +INT16 WINAPI GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf); +INT16 WINAPI GetFileTitle32A(LPCSTR lpFile, LPSTR lpTitle, UINT32 cbBuf); +INT16 WINAPI GetFileTitle32W(LPCWSTR lpFile, LPWSTR lpTitle, UINT32 cbBuf); #define GetFileTitle WINELIB_NAME_AW(GetFileTitle) -BOOL16 GetOpenFileName16(SEGPTR ofn); -BOOL32 GetOpenFileName32A(LPOPENFILENAME32A ofn); -BOOL32 GetOpenFileName32W(LPOPENFILENAME32W ofn); +BOOL16 WINAPI GetOpenFileName16(SEGPTR ofn); +BOOL32 WINAPI GetOpenFileName32A(LPOPENFILENAME32A ofn); +BOOL32 WINAPI GetOpenFileName32W(LPOPENFILENAME32W ofn); #define GetOpenFileName WINELIB_NAME_AW(GetOpenFileName) -BOOL16 GetSaveFileName16(SEGPTR ofn); -BOOL32 GetSaveFileName32A(LPOPENFILENAME32A ofn); -BOOL32 GetSaveFileName32W(LPOPENFILENAME32W ofn); +BOOL16 WINAPI GetSaveFileName16(SEGPTR ofn); +BOOL32 WINAPI GetSaveFileName32A(LPOPENFILENAME32A ofn); +BOOL32 WINAPI GetSaveFileName32W(LPOPENFILENAME32W ofn); #define GetSaveFileName WINELIB_NAME_AW(GetSaveFileName) -BOOL16 PrintDlg( SEGPTR print); -HWND16 ReplaceText( SEGPTR find); -BOOL16 ChooseFont(LPCHOOSEFONT lpChFont); - -LRESULT FileOpenDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); -LRESULT FileSaveDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); -LRESULT ColorDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); -LRESULT FindTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); -LRESULT ReplaceTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); -LRESULT PrintDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); -LRESULT PrintSetupDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); -LRESULT FormatCharDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +BOOL16 WINAPI PrintDlg( SEGPTR print); +HWND16 WINAPI ReplaceText( SEGPTR find); +BOOL16 WINAPI ChooseFont(LPCHOOSEFONT lpChFont); +LRESULT WINAPI FileOpenDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +LRESULT WINAPI FileSaveDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +LRESULT WINAPI ColorDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +LRESULT WINAPI FindTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +LRESULT WINAPI ReplaceTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +LRESULT WINAPI PrintDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +LRESULT WINAPI PrintSetupDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); +LRESULT WINAPI FormatCharDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam); #ifdef __cplusplus } diff --git a/include/compobj.h b/include/compobj.h index baa348f9ee4..fb0d7ad5d3a 100644 --- a/include/compobj.h +++ b/include/compobj.h @@ -10,7 +10,7 @@ struct tagCLSID { typedef struct tagCLSID CLSID; -OLESTATUS StringFromCLSID(const CLSID *id, LPSTR); -OLESTATUS CLSIDFromString(const LPCSTR, CLSID *); +OLESTATUS WINAPI StringFromCLSID(const CLSID *id, LPSTR); +OLESTATUS WINAPI CLSIDFromString(const LPCSTR, CLSID *); #endif diff --git a/include/debug.h b/include/debug.h index 3308a57d455..9cc2e9a2f92 100644 --- a/include/debug.h +++ b/include/debug.h @@ -80,6 +80,7 @@ #undef DEBUG_TIMER #undef DEBUG_TOOLHELP #undef DEBUG_TWEAK +#undef DEBUG_UPDOWN #undef DEBUG_VER #undef DEBUG_VIRTUAL #undef DEBUG_VXD @@ -164,6 +165,7 @@ #define DEBUG_TIMER #define DEBUG_TOOLHELP #define DEBUG_TWEAK +#define DEBUG_UPDOWN #define DEBUG_VER #define DEBUG_VIRTUAL #define DEBUG_VXD @@ -546,6 +548,11 @@ short debug_msg_enabled[]={ #else 0, #endif +#ifdef DEBUG_UPDOWN + 1, +#else + 0, +#endif #ifdef DEBUG_VER 1, #else @@ -1551,8 +1558,21 @@ extern short debug_msg_enabled[]; #endif #ifdef DEBUG_RUNTIME -#define dprintf_ver if(!debug_msg_enabled[74]) ; else fprintf -#define debugging_ver debug_msg_enabled[74] +#define dprintf_updown if(!debug_msg_enabled[74]) ; else fprintf +#define debugging_updown debug_msg_enabled[74] +#else +#ifdef DEBUG_UPDOWN +#define dprintf_updown fprintf +#define debugging_updown 1 +#else +#define dprintf_updown while(0) fprintf +#define debugging_updown 0 +#endif +#endif + +#ifdef DEBUG_RUNTIME +#define dprintf_ver if(!debug_msg_enabled[75]) ; else fprintf +#define debugging_ver debug_msg_enabled[75] #else #ifdef DEBUG_VER #define dprintf_ver fprintf @@ -1564,8 +1584,8 @@ extern short debug_msg_enabled[]; #endif #ifdef DEBUG_RUNTIME -#define dprintf_virtual if(!debug_msg_enabled[75]) ; else fprintf -#define debugging_virtual debug_msg_enabled[75] +#define dprintf_virtual if(!debug_msg_enabled[76]) ; else fprintf +#define debugging_virtual debug_msg_enabled[76] #else #ifdef DEBUG_VIRTUAL #define dprintf_virtual fprintf @@ -1577,8 +1597,8 @@ extern short debug_msg_enabled[]; #endif #ifdef DEBUG_RUNTIME -#define dprintf_vxd if(!debug_msg_enabled[76]) ; else fprintf -#define debugging_vxd debug_msg_enabled[76] +#define dprintf_vxd if(!debug_msg_enabled[77]) ; else fprintf +#define debugging_vxd debug_msg_enabled[77] #else #ifdef DEBUG_VXD #define dprintf_vxd fprintf @@ -1590,8 +1610,8 @@ extern short debug_msg_enabled[]; #endif #ifdef DEBUG_RUNTIME -#define dprintf_win if(!debug_msg_enabled[77]) ; else fprintf -#define debugging_win debug_msg_enabled[77] +#define dprintf_win if(!debug_msg_enabled[78]) ; else fprintf +#define debugging_win debug_msg_enabled[78] #else #ifdef DEBUG_WIN #define dprintf_win fprintf @@ -1603,8 +1623,8 @@ extern short debug_msg_enabled[]; #endif #ifdef DEBUG_RUNTIME -#define dprintf_win16drv if(!debug_msg_enabled[78]) ; else fprintf -#define debugging_win16drv debug_msg_enabled[78] +#define dprintf_win16drv if(!debug_msg_enabled[79]) ; else fprintf +#define debugging_win16drv debug_msg_enabled[79] #else #ifdef DEBUG_WIN16DRV #define dprintf_win16drv fprintf @@ -1616,8 +1636,8 @@ extern short debug_msg_enabled[]; #endif #ifdef DEBUG_RUNTIME -#define dprintf_win32 if(!debug_msg_enabled[79]) ; else fprintf -#define debugging_win32 debug_msg_enabled[79] +#define dprintf_win32 if(!debug_msg_enabled[80]) ; else fprintf +#define debugging_win32 debug_msg_enabled[80] #else #ifdef DEBUG_WIN32 #define dprintf_win32 fprintf @@ -1629,8 +1649,8 @@ extern short debug_msg_enabled[]; #endif #ifdef DEBUG_RUNTIME -#define dprintf_winsock if(!debug_msg_enabled[80]) ; else fprintf -#define debugging_winsock debug_msg_enabled[80] +#define dprintf_winsock if(!debug_msg_enabled[81]) ; else fprintf +#define debugging_winsock debug_msg_enabled[81] #else #ifdef DEBUG_WINSOCK #define dprintf_winsock fprintf @@ -1719,6 +1739,7 @@ static char *debug_msg_name[] = { "timer", "toolhelp", "tweak", + "updown", "ver", "virtual", "vxd", diff --git a/include/debugger.h b/include/debugger.h index a6670ce03ba..bf9ee7a8558 100644 --- a/include/debugger.h +++ b/include/debugger.h @@ -9,7 +9,7 @@ #include "winnt.h" #include "selectors.h" -#include "sigcontext.h" +#include "sig_context.h" #include "pe_image.h" #define STEP_FLAG 0x100 /* single step flag */ diff --git a/include/desktop.h b/include/desktop.h index 129f96e6842..7e8085ff1e9 100644 --- a/include/desktop.h +++ b/include/desktop.h @@ -18,7 +18,7 @@ typedef struct } DESKTOPINFO; extern BOOL32 DESKTOP_SetPattern( LPCSTR pattern ); -extern LRESULT DesktopWndProc( HWND32 hwnd, UINT32 message, - WPARAM32 wParam, LPARAM lParam ); +extern LRESULT WINAPI DesktopWndProc( HWND32 hwnd, UINT32 message, + WPARAM32 wParam, LPARAM lParam ); #endif /* __WINE_DESKTOP_H */ diff --git a/include/driver.h b/include/driver.h index 3eb7b7dbf40..54fed12535c 100644 --- a/include/driver.h +++ b/include/driver.h @@ -57,14 +57,15 @@ typedef struct tagDRIVERITEM DRIVERPROC16 lpDrvProc; } DRIVERITEM, *LPDRIVERITEM; -LRESULT DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, - LPARAM dwParam1, LPARAM dwParam2); -HDRVR16 OpenDriver(LPSTR szDriverName, LPSTR szSectionName, LPARAM lParam2); -LRESULT CloseDriver(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2); -LRESULT SendDriverMessage( HDRVR16 hDriver, UINT16 message, LPARAM lParam1, - LPARAM lParam2 ); -HMODULE16 GetDriverModuleHandle(HDRVR16 hDriver); -HDRVR16 GetNextDriver(HDRVR16, DWORD); -BOOL16 GetDriverInfo(HDRVR16, DRIVERINFOSTRUCT16 *); +LRESULT WINAPI DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, + LPARAM dwParam1, LPARAM dwParam2); +HDRVR16 WINAPI OpenDriver(LPSTR szDriverName, LPSTR szSectionName, + LPARAM lParam2); +LRESULT WINAPI CloseDriver(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2); +LRESULT WINAPI SendDriverMessage( HDRVR16 hDriver, UINT16 message, + LPARAM lParam1, LPARAM lParam2 ); +HMODULE16 WINAPI GetDriverModuleHandle(HDRVR16 hDriver); +HDRVR16 WINAPI GetNextDriver(HDRVR16, DWORD); +BOOL16 WINAPI GetDriverInfo(HDRVR16, DRIVERINFOSTRUCT16 *); #endif /* __WINE_DRIVER_H */ diff --git a/include/except.h b/include/except.h index d55146b7fb0..8028060a3e0 100644 --- a/include/except.h +++ b/include/except.h @@ -15,7 +15,7 @@ /* forward definition */ struct __EXCEPTION_FRAME; -typedef DWORD ( *PEXCEPTION_HANDLER)( PEXCEPTION_RECORD pexcrec, +typedef DWORD (CALLBACK *PEXCEPTION_HANDLER)( PEXCEPTION_RECORD pexcrec, struct __EXCEPTION_FRAME *pestframe, PCONTEXT pcontext, LPVOID pdispatcher); @@ -36,9 +36,9 @@ typedef struct __EXCEPTION_FRAME * Function definitions */ -void RaiseException(DWORD exccode, DWORD excflags, - DWORD nargs, const LPDWORD pargs, - PCONTEXT pcontext /* Wine additional parameter */ ); +void WINAPI RaiseException(DWORD exccode, DWORD excflags, + DWORD nargs, const LPDWORD pargs, + PCONTEXT pcontext /* Wine additional parameter */); /* * this undocumented function is called when an exception @@ -54,10 +54,10 @@ void RaiseException(DWORD exccode, DWORD excflags, * context. */ -void RtlUnwind( PEXCEPTION_FRAME pestframe, - LPVOID unusedEIP, - PEXCEPTION_RECORD pexcrec, - DWORD contextEAX, - PCONTEXT pcontext /* Wine additional parameter */ ); +void WINAPI RtlUnwind( PEXCEPTION_FRAME pestframe, + LPVOID unusedEIP, + PEXCEPTION_RECORD pexcrec, + DWORD contextEAX, + PCONTEXT pcontext /* Wine additional parameter */ ); #endif /* __WINE_EXCEPT_H */ diff --git a/include/gdi.h b/include/gdi.h index 42d66cb0cff..817fdf728cb 100644 --- a/include/gdi.h +++ b/include/gdi.h @@ -273,14 +273,21 @@ extern WORD GDI_HeapSel; #define GDI_HEAP_ALLOC(size) \ LOCAL_Alloc( GDI_HeapSel, LMEM_FIXED, (size) ) +#define GDI_HEAP_ALLOC_MOVEABLE(size) \ + LOCAL_Alloc( GDI_HeapSel, LMEM_MOVEABLE, (size) ) #define GDI_HEAP_REALLOC(handle,size) \ LOCAL_ReAlloc( GDI_HeapSel, (handle), (size), LMEM_FIXED ) #define GDI_HEAP_FREE(handle) \ LOCAL_Free( GDI_HeapSel, (handle) ) -#define GDI_HEAP_LIN_ADDR(handle) \ - ((handle) ? PTR_SEG_OFF_TO_LIN(GDI_HeapSel, (handle)) : NULL) -#define GDI_HEAP_SEG_ADDR(handle) \ - ((handle) ? PTR_SEG_OFF_TO_SEGPTR(GDI_HeapSel, (handle)) : (SEGPTR)0) + +#define GDI_HEAP_LOCK(handle) \ + LOCAL_Lock( GDI_HeapSel, (handle) ) +#define GDI_HEAP_LOCK_SEGPTR(handle) \ + LOCAL_LockSegptr( GDI_HeapSel, (handle) ) +#define GDI_HEAP_UNLOCK(handle) \ + ((((HGDIOBJ16)(handle) >= FIRST_STOCK_HANDLE) && \ + ((HGDIOBJ16)(handle)<=LAST_STOCK_HANDLE)) ? \ + 0 : LOCAL_Unlock( GDI_HeapSel, (handle) )) extern BOOL32 GDI_Init(void); extern HGDIOBJ16 GDI_AllocObject( WORD, WORD ); diff --git a/include/listbox.h b/include/listbox.h deleted file mode 100644 index 27cee05e0c9..00000000000 --- a/include/listbox.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Listbox definitions - */ - -typedef struct tagLISTSTRUCT { - MEASUREITEMSTRUCT16 mis; - UINT16 itemState; - RECT16 itemRect; - HLOCAL16 hData; - char *itemText; - struct tagLISTSTRUCT *lpNext; -} LISTSTRUCT, *LPLISTSTRUCT; - -typedef struct { - WORD FirstVisible; - WORD ItemsCount; - WORD ItemsVisible; - WORD ColumnsVisible; - WORD ItemsPerColumn; - short ItemFocused; - short PrevFocused; - WORD StdItemHeight; - WORD ColumnsWidth; - WORD DrawCtlType; - WORD CtlID; - LPLISTSTRUCT lpFirst; - HWND16 hSelf; - DWORD dwStyle; /* added for COMBOLBOX style faking */ - HWND16 hParent; - HFONT16 hFont; - BOOL32 bRedrawFlag; - BOOL32 HasStrings; - BOOL32 OwnerDrawn; - WORD iNumStops; - LPINT16 TabStops; - BOOL32 needMeasure; - HGLOBAL16 HeapSel; -/* MDESC *Heap; */ -} HEADLIST,*LPHEADLIST; - -/* shared code between listbox and combo controls */ -extern void CreateListBoxStruct(HWND16 hwnd, WORD CtlType, LONG styles, HWND16 parent); -extern void DestroyListBoxStruct(LPHEADLIST lphl); - -extern void ListBoxSendNotification(LPHEADLIST lphl, WORD code); - -extern LPLISTSTRUCT ListBoxGetItem(LPHEADLIST lphl, UINT16 uIndex); -extern int ListMaxFirstVisible(LPHEADLIST lphl); -extern int ListBoxScrollToFocus(LPHEADLIST lphl); -extern int ListBoxAddString(LPHEADLIST lphl, SEGPTR itemData); -extern int ListBoxInsertString(LPHEADLIST lphl, UINT16 uIndex, LPCSTR newstr); -extern int ListBoxGetText(LPHEADLIST lphl, UINT16 uIndex, LPSTR OutStr); -extern DWORD ListBoxGetItemData(LPHEADLIST lphl, UINT16 uIndex); -extern int ListBoxSetItemData(LPHEADLIST lphl, UINT16 uIndex, DWORD ItemData); -extern int ListBoxDeleteString(LPHEADLIST lphl, UINT16 uIndex); -extern int ListBoxFindString(LPHEADLIST lphl, UINT16 nFirst, SEGPTR MatchStr); -extern int ListBoxFindStringExact(LPHEADLIST lphl, UINT16 nFirst, SEGPTR MatchStr); -extern int ListBoxResetContent(LPHEADLIST lphl); -extern int ListBoxSetCurSel(LPHEADLIST lphl, WORD wIndex); -extern int ListBoxSetSel(LPHEADLIST lphl, WORD wIndex, WORD state); -extern int ListBoxGetSel(LPHEADLIST lphl, WORD wIndex); -extern LONG ListBoxDirectory(LPHEADLIST lphl, UINT16 attrib, LPCSTR filespec); -extern int ListBoxGetItemRect(LPHEADLIST lphl, WORD wIndex, LPRECT16 rect); -extern int ListBoxSetItemHeight(LPHEADLIST lphl, WORD wIndex, long height); -extern int ListBoxFindNextMatch(LPHEADLIST lphl, WORD wChar); - -extern void ListBoxDrawItem (HWND16 hwnd, LPHEADLIST lphl, HDC16 hdc, - LPLISTSTRUCT lpls, RECT16 *rect, WORD itemAction, - WORD itemState); -extern int ListBoxFindMouse(LPHEADLIST lphl, int X, int Y); -extern void ListBoxAskMeasure(LPHEADLIST lphl, LPLISTSTRUCT lpls); diff --git a/include/mdi.h b/include/mdi.h index 812580c090a..38e58721282 100644 --- a/include/mdi.h +++ b/include/mdi.h @@ -20,8 +20,8 @@ #define WM_MDICALCCHILDSCROLL 0x10AC /* this is exactly what Windows uses */ -extern LRESULT MDIClientWndProc(HWND16 hwnd, UINT16 message, - WPARAM16 wParam, LPARAM lParam); /* mdi.c */ +extern LRESULT WINAPI MDIClientWndProc(HWND16 hwnd, UINT16 message, + WPARAM16 wParam, LPARAM lParam); typedef struct { diff --git a/include/menu.h b/include/menu.h index 121c0910a5d..c270b847b3d 100644 --- a/include/menu.h +++ b/include/menu.h @@ -7,7 +7,6 @@ extern BOOL32 MENU_Init(void); extern HMENU32 MENU_GetSysMenu(HWND32 hWndOwner, HMENU32 hSysPopup); -extern void MENU_InitSysMenuPopup(HMENU32 hmenu, DWORD style, DWORD clsStyle); extern UINT32 MENU_GetMenuBarHeight( HWND32 hwnd, UINT32 menubarWidth, INT32 orgX, INT32 orgY ); extern void MENU_TrackMouseMenuBar( WND *wnd, INT32 ht, POINT32 pt ); diff --git a/include/message.h b/include/message.h index 8a59d79c0fe..ecf33c46d4c 100644 --- a/include/message.h +++ b/include/message.h @@ -26,8 +26,12 @@ extern void TIMER_ExpireTimers(void); extern BOOL32 TIMER_GetTimerMsg( MSG16 *msg, HWND32 hwnd, HQUEUE16 hQueue, BOOL32 remove ); +#define EVENT_IO_READ 0 +#define EVENT_IO_WRITE 1 +#define EVENT_IO_EXCEPT 2 + /* event.c */ -extern BOOL32 EVENT_WaitXEvent( BOOL32 sleep, BOOL32 peek ); +extern BOOL32 EVENT_WaitNetEvent( BOOL32 sleep, BOOL32 peek ); extern void EVENT_Synchronize(void); extern void EVENT_ProcessEvent( XEvent *event ); extern void EVENT_RegisterWindow( WND *pWnd ); diff --git a/include/mmsystem.h b/include/mmsystem.h index 2941b4a266b..4735202ced4 100644 --- a/include/mmsystem.h +++ b/include/mmsystem.h @@ -108,7 +108,7 @@ typedef struct { #define CALLBACK_TASK 0x00020000l /* dwCallback is a HTASK */ #define CALLBACK_FUNCTION 0x00030000l /* dwCallback is a FARPROC */ -typedef void (*LPDRVCALLBACK) (HDRVR16 h, UINT16 uMessage, DWORD dwUser, DWORD dw1, DWORD dw2); +typedef void (CALLBACK *LPDRVCALLBACK) (HDRVR16 h, UINT16 uMessage, DWORD dwUser, DWORD dw1, DWORD dw2); #define MM_MICROSOFT 1 /* Microsoft Corp. */ @@ -129,10 +129,8 @@ typedef void (*LPDRVCALLBACK) (HDRVR16 h, UINT16 uMessage, DWORD dwUser, DWORD d #define MM_PC_JOYSTICK 12 /* Joystick adapter */ -WORD mmsystemGetVersion(void); -void OutputDebugStr(LPCSTR); - -BOOL16 sndPlaySound(LPCSTR lpszSoundName, UINT16 uFlags); +WORD WINAPI mmsystemGetVersion(void); +BOOL16 WINAPI sndPlaySound(LPCSTR lpszSoundName, UINT16 uFlags); #define SND_SYNC 0x0000 /* play synchronously (default) */ #define SND_ASYNC 0x0001 /* play asynchronously */ @@ -237,57 +235,60 @@ typedef struct { WORD wBitsPerSample; } PCMWAVEFORMAT, *LPPCMWAVEFORMAT; -UINT16 waveOutGetNumDevs(void); -UINT16 waveOutGetDevCaps(UINT16 uDeviceID, WAVEOUTCAPS * lpCaps, - UINT16 uSize); -UINT16 waveOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume); -UINT16 waveOutSetVolume(UINT16 uDeviceID, DWORD dwVolume); -UINT16 waveOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); -UINT16 waveGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); -UINT16 waveOutOpen(HWAVEOUT16 * lphWaveOut, UINT16 uDeviceID, +UINT16 WINAPI waveOutGetNumDevs(void); +UINT16 WINAPI waveOutGetDevCaps(UINT16 uDeviceID, WAVEOUTCAPS * lpCaps, + UINT16 uSize); +UINT16 WINAPI waveOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume); +UINT16 WINAPI waveOutSetVolume(UINT16 uDeviceID, DWORD dwVolume); +UINT16 WINAPI waveOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); +UINT16 WINAPI waveGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); +UINT16 WINAPI waveOutOpen(HWAVEOUT16 * lphWaveOut, UINT16 uDeviceID, const LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); -UINT16 waveOutClose(HWAVEOUT16 hWaveOut); -UINT16 waveOutPrepareHeader(HWAVEOUT16 hWaveOut, - WAVEHDR * lpWaveOutHdr, UINT16 uSize); -UINT16 waveOutUnprepareHeader(HWAVEOUT16 hWaveOut, - WAVEHDR * lpWaveOutHdr, UINT16 uSize); -UINT16 waveOutWrite(HWAVEOUT16 hWaveOut, WAVEHDR * lpWaveOutHdr, - UINT16 uSize); -UINT16 waveOutPause(HWAVEOUT16 hWaveOut); -UINT16 waveOutRestart(HWAVEOUT16 hWaveOut); -UINT16 waveOutReset(HWAVEOUT16 hWaveOut); -UINT16 waveOutBreakLoop(HWAVEOUT16 hWaveOut); -UINT16 waveOutGetPosition(HWAVEOUT16 hWaveOut, MMTIME * lpInfo, - UINT16 uSize); -UINT16 waveOutGetPitch(HWAVEOUT16 hWaveOut, DWORD * lpdwPitch); -UINT16 waveOutSetPitch(HWAVEOUT16 hWaveOut, DWORD dwPitch); -UINT16 waveOutGetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD * lpdwRate); -UINT16 waveOutSetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD dwRate); -UINT16 waveOutGetID(HWAVEOUT16 hWaveOut, UINT16 * lpuDeviceID); +UINT16 WINAPI waveOutClose(HWAVEOUT16 hWaveOut); +UINT16 WINAPI waveOutPrepareHeader(HWAVEOUT16 hWaveOut, + WAVEHDR *lpWaveOutHdr, UINT16 uSize); +UINT16 WINAPI waveOutUnprepareHeader(HWAVEOUT16 hWaveOut, + WAVEHDR *lpWaveOutHdr, UINT16 uSize); +UINT16 WINAPI waveOutWrite(HWAVEOUT16 hWaveOut, WAVEHDR * lpWaveOutHdr, + UINT16 uSize); +UINT16 WINAPI waveOutPause(HWAVEOUT16 hWaveOut); +UINT16 WINAPI waveOutRestart(HWAVEOUT16 hWaveOut); +UINT16 WINAPI waveOutReset(HWAVEOUT16 hWaveOut); +UINT16 WINAPI waveOutBreakLoop(HWAVEOUT16 hWaveOut); +UINT16 WINAPI waveOutGetPosition(HWAVEOUT16 hWaveOut, MMTIME * lpInfo, + UINT16 uSize); +UINT16 WINAPI waveOutGetPitch(HWAVEOUT16 hWaveOut, DWORD * lpdwPitch); +UINT16 WINAPI waveOutSetPitch(HWAVEOUT16 hWaveOut, DWORD dwPitch); +UINT16 WINAPI waveOutGetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD * lpdwRate); +UINT16 WINAPI waveOutSetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD dwRate); +UINT16 WINAPI waveOutGetID(HWAVEOUT16 hWaveOut, UINT16 * lpuDeviceID); -DWORD waveOutMessage(HWAVEOUT16 hWaveOut, UINT16 uMessage, DWORD dw1, DWORD dw2); +DWORD WINAPI waveOutMessage(HWAVEOUT16 hWaveOut, UINT16 uMessage, DWORD dw1, + DWORD dw2); -UINT16 waveInGetNumDevs(void); -UINT16 waveInGetDevCaps(UINT16 uDeviceID, WAVEINCAPS * lpCaps, - UINT16 uSize); -UINT16 waveInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); -UINT16 waveInOpen(HWAVEIN16 * lphWaveIn, UINT16 uDeviceID, - const LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); -UINT16 waveInClose(HWAVEIN16 hWaveIn); -UINT16 waveInPrepareHeader(HWAVEIN16 hWaveIn, - WAVEHDR * lpWaveInHdr, UINT16 uSize); -UINT16 waveInUnprepareHeader(HWAVEIN16 hWaveIn, - WAVEHDR * lpWaveInHdr, UINT16 uSize); -UINT16 waveInAddBuffer(HWAVEIN16 hWaveIn, - WAVEHDR * lpWaveInHdr, UINT16 uSize); -UINT16 waveInStart(HWAVEIN16 hWaveIn); -UINT16 waveInStop(HWAVEIN16 hWaveIn); -UINT16 waveInReset(HWAVEIN16 hWaveIn); -UINT16 waveInGetPosition(HWAVEIN16 hWaveIn, MMTIME * lpInfo, - UINT16 uSize); -UINT16 waveInGetID(HWAVEIN16 hWaveIn, UINT16 * lpuDeviceID); +UINT16 WINAPI waveInGetNumDevs(void); +UINT16 WINAPI waveInGetDevCaps(UINT16 uDeviceID, WAVEINCAPS * lpCaps, + UINT16 uSize); +UINT16 WINAPI waveInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); +UINT16 WINAPI waveInOpen(HWAVEIN16 * lphWaveIn, UINT16 uDeviceID, + const LPWAVEFORMAT lpFormat, DWORD dwCallback, + DWORD dwInstance, DWORD dwFlags); +UINT16 WINAPI waveInClose(HWAVEIN16 hWaveIn); +UINT16 WINAPI waveInPrepareHeader(HWAVEIN16 hWaveIn, WAVEHDR * lpWaveInHdr, + UINT16 uSize); +UINT16 WINAPI waveInUnprepareHeader(HWAVEIN16 hWaveIn, WAVEHDR * lpWaveInHdr, + UINT16 uSize); +UINT16 WINAPI waveInAddBuffer(HWAVEIN16 hWaveIn, WAVEHDR * lpWaveInHdr, + UINT16 uSize); +UINT16 WINAPI waveInStart(HWAVEIN16 hWaveIn); +UINT16 WINAPI waveInStop(HWAVEIN16 hWaveIn); +UINT16 WINAPI waveInReset(HWAVEIN16 hWaveIn); +UINT16 WINAPI waveInGetPosition(HWAVEIN16 hWaveIn, MMTIME * lpInfo, + UINT16 uSize); +UINT16 WINAPI waveInGetID(HWAVEIN16 hWaveIn, UINT16 * lpuDeviceID); -DWORD waveInMessage(HWAVEIN16 hWaveIn, UINT16 uMessage, DWORD dw1, DWORD dw2); +DWORD WINAPI waveInMessage(HWAVEIN16 hWaveIn, UINT16 uMessage, DWORD dw1, + DWORD dw2); #define MIDIERR_UNPREPARED (MIDIERR_BASE + 0) /* header not prepared */ #define MIDIERR_STILLPLAYING (MIDIERR_BASE + 1) /* still something playing */ @@ -370,51 +371,51 @@ typedef struct { #define MHDR_PREPARED 0x00000002 /* set if header prepared */ #define MHDR_INQUEUE 0x00000004 /* reserved for driver */ -UINT16 midiOutGetNumDevs(void); -UINT16 midiOutGetDevCaps(UINT16 uDeviceID, +UINT16 WINAPI midiOutGetNumDevs(void); +UINT16 WINAPI midiOutGetDevCaps(UINT16 uDeviceID, MIDIOUTCAPS * lpCaps, UINT16 uSize); -UINT16 midiOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume); -UINT16 midiOutSetVolume(UINT16 uDeviceID, DWORD dwVolume); -UINT16 midiOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); -UINT16 midiGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); -UINT16 midiOutOpen(HMIDIOUT16 * lphMidiOut, UINT16 uDeviceID, +UINT16 WINAPI midiOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume); +UINT16 WINAPI midiOutSetVolume(UINT16 uDeviceID, DWORD dwVolume); +UINT16 WINAPI midiOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); +UINT16 WINAPI midiGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); +UINT16 WINAPI midiOutOpen(HMIDIOUT16 * lphMidiOut, UINT16 uDeviceID, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); -UINT16 midiOutClose(HMIDIOUT16 hMidiOut); -UINT16 midiOutPrepareHeader(HMIDIOUT16 hMidiOut, +UINT16 WINAPI midiOutClose(HMIDIOUT16 hMidiOut); +UINT16 WINAPI midiOutPrepareHeader(HMIDIOUT16 hMidiOut, MIDIHDR * lpMidiOutHdr, UINT16 uSize); -UINT16 midiOutUnprepareHeader(HMIDIOUT16 hMidiOut, +UINT16 WINAPI midiOutUnprepareHeader(HMIDIOUT16 hMidiOut, MIDIHDR * lpMidiOutHdr, UINT16 uSize); -UINT16 midiOutShortMsg(HMIDIOUT16 hMidiOut, DWORD dwMsg); -UINT16 midiOutLongMsg(HMIDIOUT16 hMidiOut, +UINT16 WINAPI midiOutShortMsg(HMIDIOUT16 hMidiOut, DWORD dwMsg); +UINT16 WINAPI midiOutLongMsg(HMIDIOUT16 hMidiOut, MIDIHDR * lpMidiOutHdr, UINT16 uSize); -UINT16 midiOutReset(HMIDIOUT16 hMidiOut); -UINT16 midiOutCachePatches(HMIDIOUT16 hMidiOut, +UINT16 WINAPI midiOutReset(HMIDIOUT16 hMidiOut); +UINT16 WINAPI midiOutCachePatches(HMIDIOUT16 hMidiOut, UINT16 uBank, WORD * lpwPatchArray, UINT16 uFlags); -UINT16 midiOutCacheDrumPatches(HMIDIOUT16 hMidiOut, +UINT16 WINAPI midiOutCacheDrumPatches(HMIDIOUT16 hMidiOut, UINT16 uPatch, WORD * lpwKeyArray, UINT16 uFlags); -UINT16 midiOutGetID(HMIDIOUT16 hMidiOut, UINT16 * lpuDeviceID); +UINT16 WINAPI midiOutGetID(HMIDIOUT16 hMidiOut, UINT16 * lpuDeviceID); -DWORD midiOutMessage(HMIDIOUT16 hMidiOut, UINT16 uMessage, DWORD dw1, DWORD dw2); +DWORD WINAPI midiOutMessage(HMIDIOUT16 hMidiOut, UINT16 uMessage, DWORD dw1, DWORD dw2); -UINT16 midiInGetNumDevs(void); -UINT16 midiInGetDevCaps(UINT16 uDeviceID, +UINT16 WINAPI midiInGetNumDevs(void); +UINT16 WINAPI midiInGetDevCaps(UINT16 uDeviceID, LPMIDIINCAPS lpCaps, UINT16 uSize); -UINT16 midiInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); -UINT16 midiInOpen(HMIDIIN16 * lphMidiIn, UINT16 uDeviceID, +UINT16 WINAPI midiInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); +UINT16 WINAPI midiInOpen(HMIDIIN16 * lphMidiIn, UINT16 uDeviceID, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); -UINT16 midiInClose(HMIDIIN16 hMidiIn); -UINT16 midiInPrepareHeader(HMIDIIN16 hMidiIn, +UINT16 WINAPI midiInClose(HMIDIIN16 hMidiIn); +UINT16 WINAPI midiInPrepareHeader(HMIDIIN16 hMidiIn, MIDIHDR * lpMidiInHdr, UINT16 uSize); -UINT16 midiInUnprepareHeader(HMIDIIN16 hMidiIn, +UINT16 WINAPI midiInUnprepareHeader(HMIDIIN16 hMidiIn, MIDIHDR * lpMidiInHdr, UINT16 uSize); -UINT16 midiInAddBuffer(HMIDIIN16 hMidiIn, +UINT16 WINAPI midiInAddBuffer(HMIDIIN16 hMidiIn, MIDIHDR * lpMidiInHdr, UINT16 uSize); -UINT16 midiInStart(HMIDIIN16 hMidiIn); -UINT16 midiInStop(HMIDIIN16 hMidiIn); -UINT16 midiInReset(HMIDIIN16 hMidiIn); -UINT16 midiInGetID(HMIDIIN16 hMidiIn, UINT16 * lpuDeviceID); +UINT16 WINAPI midiInStart(HMIDIIN16 hMidiIn); +UINT16 WINAPI midiInStop(HMIDIIN16 hMidiIn); +UINT16 WINAPI midiInReset(HMIDIIN16 hMidiIn); +UINT16 WINAPI midiInGetID(HMIDIIN16 hMidiIn, UINT16 * lpuDeviceID); -DWORD midiInMessage(HMIDIIN16 hMidiIn, UINT16 uMessage, DWORD dw1, DWORD dw2); +DWORD WINAPI midiInMessage(HMIDIIN16 hMidiIn, UINT16 uMessage, DWORD dw1, DWORD dw2); #define AUX_MAPPER (-1) @@ -433,12 +434,12 @@ typedef struct { #define AUXCAPS_VOLUME 0x0001 /* supports volume control */ #define AUXCAPS_LRVOLUME 0x0002 /* separate left-right volume control */ -UINT16 auxGetNumDevs(void); -UINT16 auxGetDevCaps(UINT16 uDeviceID, AUXCAPS * lpCaps, UINT16 uSize); -UINT16 auxSetVolume(UINT16 uDeviceID, DWORD dwVolume); -UINT16 auxGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume); +UINT16 WINAPI auxGetNumDevs(void); +UINT16 WINAPI auxGetDevCaps(UINT16 uDeviceID, AUXCAPS * lpCaps, UINT16 uSize); +UINT16 WINAPI auxSetVolume(UINT16 uDeviceID, DWORD dwVolume); +UINT16 WINAPI auxGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume); -DWORD auxOutMessage(UINT16 uDeviceID, UINT16 uMessage, DWORD dw1, DWORD dw2); +DWORD WINAPI auxOutMessage(UINT16 uDeviceID, UINT16 uMessage, DWORD dw1, DWORD dw2); #define TIMERR_NOERROR (0) /* no error */ #define TIMERR_NOCANDO (TIMERR_BASE+1) /* request not completed */ @@ -454,14 +455,14 @@ typedef struct { UINT16 wPeriodMax; /* maximum period supported */ } TIMECAPS, *LPTIMECAPS; -UINT16 timeGetSystemTime(MMTIME * lpTime, UINT16 uSize); -DWORD timeGetTime(void); -UINT16 timeSetEvent(UINT16 uDelay, UINT16 uResolution, +UINT16 WINAPI timeGetSystemTime(MMTIME * lpTime, UINT16 uSize); +DWORD WINAPI timeGetTime(void); +UINT16 WINAPI timeSetEvent(UINT16 uDelay, UINT16 uResolution, LPTIMECALLBACK lpFunction, DWORD dwUser, UINT16 uFlags); -UINT16 timeKillEvent(UINT16 uTimerID); -UINT16 timeGetDevCaps(TIMECAPS * lpTimeCaps, UINT16 uSize); -UINT16 timeBeginPeriod(UINT16 uPeriod); -UINT16 timeEndPeriod(UINT16 uPeriod); +UINT16 WINAPI timeKillEvent(UINT16 uTimerID); +UINT16 WINAPI timeGetDevCaps(TIMECAPS * lpTimeCaps, UINT16 uSize); +UINT16 WINAPI timeBeginPeriod(UINT16 uPeriod); +UINT16 WINAPI timeEndPeriod(UINT16 uPeriod); #define JOYERR_NOERROR (0) /* no error */ #define JOYERR_PARMS (JOYERR_BASE+5) /* bad parameters */ @@ -502,14 +503,14 @@ typedef struct { UINT16 wButtons; /* button states */ } JOYINFO, *LPJOYINFO; -UINT16 joyGetDevCaps(UINT16 uJoyID, JOYCAPS * lpCaps, UINT16 uSize); -UINT16 joyGetNumDevs(void); -UINT16 joyGetPos(UINT16 uJoyID, JOYINFO * lpInfo); -UINT16 joyGetThreshold(UINT16 uJoyID, UINT16 * lpuThreshold); -UINT16 joyReleaseCapture(UINT16 uJoyID); -UINT16 joySetCapture(HWND16 hwnd, UINT16 uJoyID, UINT16 uPeriod, +UINT16 WINAPI joyGetDevCaps(UINT16 uJoyID, JOYCAPS * lpCaps, UINT16 uSize); +UINT16 WINAPI joyGetNumDevs(void); +UINT16 WINAPI joyGetPos(UINT16 uJoyID, JOYINFO * lpInfo); +UINT16 WINAPI joyGetThreshold(UINT16 uJoyID, UINT16 * lpuThreshold); +UINT16 WINAPI joyReleaseCapture(UINT16 uJoyID); +UINT16 WINAPI joySetCapture(HWND16 hwnd, UINT16 uJoyID, UINT16 uPeriod, BOOL16 bChanged); -UINT16 joySetThreshold(UINT16 uJoyID, UINT16 uThreshold); +UINT16 WINAPI joySetThreshold(UINT16 uJoyID, UINT16 uThreshold); #define MMIOERR_BASE 256 #define MMIOERR_FILENOTFOUND (MMIOERR_BASE + 1) /* file not found */ @@ -526,8 +527,8 @@ UINT16 joySetThreshold(UINT16 uJoyID, UINT16 uThreshold); #define CFSEPCHAR '+' /* compound file name separator char. */ typedef DWORD FOURCC; /* a four character code */ -typedef LONG (*LPMMIOPROC)(LPSTR lpmmioinfo, UINT16 uMessage, - LPARAM lParam1, LPARAM lParam2); +typedef LONG (CALLBACK *LPMMIOPROC)(LPSTR lpmmioinfo, UINT16 uMessage, + LPARAM lParam1, LPARAM lParam2); typedef struct { DWORD dwFlags; /* general status flags */ @@ -622,48 +623,49 @@ typedef struct _MMCKINFO ( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \ ( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) ) -FOURCC mmioStringToFOURCC(LPCSTR sz, UINT16 uFlags); -LPMMIOPROC mmioInstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc, +FOURCC WINAPI mmioStringToFOURCC(LPCSTR sz, UINT16 uFlags); +LPMMIOPROC WINAPI mmioInstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); -HMMIO16 mmioOpen(LPSTR szFileName, MMIOINFO * lpmmioinfo, +HMMIO16 WINAPI mmioOpen(LPSTR szFileName, MMIOINFO * lpmmioinfo, DWORD dwOpenFlags); -UINT16 mmioRename(LPCSTR szFileName, LPCSTR szNewFileName, +UINT16 WINAPI mmioRename(LPCSTR szFileName, LPCSTR szNewFileName, MMIOINFO * lpmmioinfo, DWORD dwRenameFlags); -UINT16 mmioClose(HMMIO16 hmmio, UINT16 uFlags); -LONG mmioRead(HMMIO16 hmmio, HPSTR pch, LONG cch); -LONG mmioWrite(HMMIO16 hmmio, HPCSTR pch, LONG cch); -LONG mmioSeek(HMMIO16 hmmio, LONG lOffset, int iOrigin); -UINT16 mmioGetInfo(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags); -UINT16 mmioSetInfo(HMMIO16 hmmio, const MMIOINFO * lpmmioinfo, UINT16 uFlags); -UINT16 mmioSetBuffer(HMMIO16 hmmio, LPSTR pchBuffer, LONG cchBuffer, +UINT16 WINAPI mmioClose(HMMIO16 hmmio, UINT16 uFlags); +LONG WINAPI mmioRead(HMMIO16 hmmio, HPSTR pch, LONG cch); +LONG WINAPI mmioWrite(HMMIO16 hmmio, HPCSTR pch, LONG cch); +LONG WINAPI mmioSeek(HMMIO16 hmmio, LONG lOffset, int iOrigin); +UINT16 WINAPI mmioGetInfo(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags); +UINT16 WINAPI mmioSetInfo(HMMIO16 hmmio, const MMIOINFO * lpmmioinfo, UINT16 uFlags); +UINT16 WINAPI mmioSetBuffer(HMMIO16 hmmio, LPSTR pchBuffer, LONG cchBuffer, UINT16 uFlags); -UINT16 mmioFlush(HMMIO16 hmmio, UINT16 uFlags); -UINT16 mmioAdvance(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags); -LONG mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage, +UINT16 WINAPI mmioFlush(HMMIO16 hmmio, UINT16 uFlags); +UINT16 WINAPI mmioAdvance(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags); +LONG WINAPI mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage, LPARAM lParam1, LPARAM lParam2); -UINT16 mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck, +UINT16 WINAPI mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck, const MMCKINFO * lpckParent, UINT16 uFlags); -UINT16 mmioAscend(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags); -UINT16 mmioCreateChunk(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags); +UINT16 WINAPI mmioAscend(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags); +UINT16 WINAPI mmioCreateChunk(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags); -typedef UINT16 (*YIELDPROC) (UINT16 uDeviceID, DWORD dwYieldData); +typedef UINT16 (CALLBACK *YIELDPROC) (UINT16 uDeviceID, DWORD dwYieldData); -DWORD mciSendCommand (UINT16 uDeviceID, UINT16 uMessage, - DWORD dwParam1, DWORD dwParam2); -DWORD mciSendString (LPCSTR lpstrCommand, - LPSTR lpstrReturnString, UINT16 uReturnLength, HWND16 hwndCallback); -UINT16 mciGetDeviceID (LPCSTR lpstrName); -UINT16 mciGetDeviceIDFromElementID (DWORD dwElementID, - LPCSTR lpstrType); -BOOL16 mciGetErrorString (DWORD wError, LPSTR lpstrBuffer, - UINT16 uLength); -BOOL16 mciSetYieldProc (UINT16 uDeviceID, YIELDPROC fpYieldProc, - DWORD dwYieldData); +DWORD WINAPI mciSendCommand (UINT16 uDeviceID, UINT16 uMessage, + DWORD dwParam1, DWORD dwParam2); +DWORD WINAPI mciSendString (LPCSTR lpstrCommand, + LPSTR lpstrReturnString, UINT16 uReturnLength, + HWND16 hwndCallback); +UINT16 WINAPI mciGetDeviceID (LPCSTR lpstrName); +UINT16 WINAPI mciGetDeviceIDFromElementID (DWORD dwElementID, + LPCSTR lpstrType); +BOOL16 WINAPI mciGetErrorString (DWORD wError, LPSTR lpstrBuffer, + UINT16 uLength); +BOOL16 WINAPI mciSetYieldProc (UINT16 uDeviceID, YIELDPROC fpYieldProc, + DWORD dwYieldData); -HTASK16 mciGetCreatorTask(UINT16 uDeviceID); -YIELDPROC mciGetYieldProc (UINT16 uDeviceID, DWORD * lpdwYieldData); +HTASK16 WINAPI mciGetCreatorTask(UINT16 uDeviceID); +YIELDPROC WINAPI mciGetYieldProc (UINT16 uDeviceID, DWORD * lpdwYieldData); #define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1) #define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3) @@ -1514,14 +1516,14 @@ typedef struct { /* filled in by the driver */ } MCI_OPEN_DRIVER_PARMS, * LPMCI_OPEN_DRIVER_PARMS; -DWORD mciGetDriverData(UINT16 uDeviceID); -BOOL16 mciSetDriverData(UINT16 uDeviceID, DWORD dwData); -UINT16 mciDriverYield(UINT16 uDeviceID); -BOOL16 mciDriverNotify(HWND16 hwndCallback, UINT16 uDeviceID, - UINT16 uStatus); -UINT16 mciLoadCommandResource(HINSTANCE16 hInstance, - LPCSTR lpResName, UINT16 uType); -BOOL16 mciFreeCommandResource(UINT16 uTable); +DWORD WINAPI mciGetDriverData(UINT16 uDeviceID); +BOOL16 WINAPI mciSetDriverData(UINT16 uDeviceID, DWORD dwData); +UINT16 WINAPI mciDriverYield(UINT16 uDeviceID); +BOOL16 WINAPI mciDriverNotify(HWND16 hwndCallback, UINT16 uDeviceID, + UINT16 uStatus); +UINT16 WINAPI mciLoadCommandResource(HINSTANCE16 hInstance, + LPCSTR lpResName, UINT16 uType); +BOOL16 WINAPI mciFreeCommandResource(UINT16 uTable); #define DCB_NULL 0x0000 #define DCB_WINDOW 0x0001 /* dwCallback is a HWND */ @@ -1530,17 +1532,17 @@ BOOL16 mciFreeCommandResource(UINT16 uTable); #define DCB_TYPEMASK 0x0007 #define DCB_NOSWITCH 0x0008 /* don't switch stacks for callback */ -BOOL16 DriverCallback(DWORD dwCallBack, UINT16 uFlags, HANDLE16 hDev, - WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); -DWORD auxMessage(WORD wDevID, WORD wMsg, DWORD dwUser, +BOOL16 WINAPI DriverCallback(DWORD dwCallBack, UINT16 uFlags, HANDLE16 hDev, + WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); +DWORD WINAPI auxMessage(WORD wDevID, WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); -DWORD midMessage(WORD wDevID, WORD wMsg, DWORD dwUser, +DWORD WINAPI midMessage(WORD wDevID, WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); -DWORD modMessage(WORD wDevID, WORD wMsg, DWORD dwUser, +DWORD WINAPI modMessage(WORD wDevID, WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); -DWORD widMessage(WORD wDevID, WORD wMsg, DWORD dwUser, +DWORD WINAPI widMessage(WORD wDevID, WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); -DWORD wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, +DWORD WINAPI wodMessage(WORD wDevID, WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); #endif /* __WINE_MMSYSTEM_H */ diff --git a/include/msdos.h b/include/msdos.h index 3eb18a626be..1cc09b1ad57 100644 --- a/include/msdos.h +++ b/include/msdos.h @@ -55,8 +55,6 @@ typedef struct DWORD filesize; /* 1c file size */ } DOS_DIRENTRY_LAYOUT; -#define DOSVERSION 0x1606 /* Major version in low byte: DOS 6.22 */ -#define WINDOSVER 0x0616 /* Windows reports the DOS version reversed */ #define WINVERSION 0x0a03 /* Windows version 3.10 */ #define MAX_DOS_DRIVES 26 diff --git a/include/neexe.h b/include/neexe.h index 757b46f3fda..ead7623a3aa 100644 --- a/include/neexe.h +++ b/include/neexe.h @@ -37,6 +37,7 @@ typedef struct #define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */ #define IMAGE_OS2_SIGNATURE 0x454E /* NE */ #define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */ +#define IMAGE_OS2_SIGNATURE_LX 0x584C /* LX */ #define IMAGE_VXD_SIGNATURE 0x454C /* LE */ #define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */ diff --git a/include/ole.h b/include/ole.h index 0692ee05736..7e08b9d5ccf 100644 --- a/include/ole.h +++ b/include/ole.h @@ -151,8 +151,8 @@ typedef struct _OLETARGETDEVICE { } OLETARGETDEVICE; typedef struct _OLESTREAM* LPOLESTREAM; typedef struct _OLESTREAMVTBL { - DWORD (*Get)(LPOLESTREAM,LPSTR,DWORD); - DWORD (*Put)(LPOLESTREAM,LPSTR,DWORD); + DWORD (CALLBACK *Get)(LPOLESTREAM,LPSTR,DWORD); + DWORD (CALLBACK *Put)(LPOLESTREAM,LPSTR,DWORD); } OLESTREAMVTBL; typedef OLESTREAMVTBL* LPOLESTREAMVTBL; typedef struct _OLESTREAM { @@ -162,15 +162,15 @@ typedef struct _OLESERVERDOC* LPOLESERVERDOC; typedef struct _OLEOBJECT* LPOLEOBJECT; typedef struct _OLECLIENT* LPOLECLIENT; typedef struct _OLESERVERDOCVTBL { - OLESTATUS (*Save)(LPOLESERVERDOC); - OLESTATUS (*Close)(LPOLESERVERDOC); - OLESTATUS (*SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR); - OLESTATUS (*SetDocDimensions)(LPOLESERVERDOC,LPRECT16); + OLESTATUS (CALLBACK *Save)(LPOLESERVERDOC); + OLESTATUS (CALLBACK *Close)(LPOLESERVERDOC); + OLESTATUS (CALLBACK *SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR); + OLESTATUS (CALLBACK *SetDocDimensions)(LPOLESERVERDOC,LPRECT16); #undef GetObject /* FIXME */ - OLESTATUS (*GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT); - OLESTATUS (*Release)(LPOLESERVERDOC); - OLESTATUS (*SetColorScheme)(LPOLESERVERDOC,LPLOGPALETTE); - OLESTATUS (*Execute)(LPOLESERVERDOC,HGLOBAL16); + OLESTATUS (CALLBACK *GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT); + OLESTATUS (CALLBACK *Release)(LPOLESERVERDOC); + OLESTATUS (CALLBACK *SetColorScheme)(LPOLESERVERDOC,LPLOGPALETTE); + OLESTATUS (CALLBACK *Execute)(LPOLESERVERDOC,HGLOBAL16); } OLESERVERDOCVTBL; typedef OLESERVERDOCVTBL* LPOLESERVERDOCVTBL; typedef struct _OLESERVERDOC { @@ -180,13 +180,13 @@ typedef struct _OLESERVERDOC { typedef struct _OLESERVER* LPOLESERVER; typedef struct _OLESERVERVTBL { - OLESTATUS (*Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC *); - OLESTATUS (*Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); - OLESTATUS (*CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *); - OLESTATUS (*Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *); - OLESTATUS (*Exit)(LPOLESERVER); - OLESTATUS (*Release)(LPOLESERVER); - OLESTATUS (*Execute)(LPOLESERVER); + OLESTATUS (CALLBACK *Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC *); + OLESTATUS (CALLBACK *Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); + OLESTATUS (CALLBACK *CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *); + OLESTATUS (CALLBACK *Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC *); + OLESTATUS (CALLBACK *Exit)(LPOLESERVER); + OLESTATUS (CALLBACK *Release)(LPOLESERVER); + OLESTATUS (CALLBACK *Execute)(LPOLESERVER); } OLESERVERVTBL; typedef OLESERVERVTBL *LPOLESERVERVTBL; typedef struct _OLESERVER { @@ -194,7 +194,7 @@ typedef struct _OLESERVER { /* server specific data */ } OLESERVER; typedef struct _OLECLIENTVTBL { - int (*CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT); + int (CALLBACK *CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT); } OLECLIENTVTBL; typedef OLECLIENTVTBL *LPOLECLIENTVTBL; @@ -204,44 +204,44 @@ typedef struct _OLECLIENT { } OLECLIENT; typedef struct _OLEOBJECTVTBL { - void * (*QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR); - OLESTATUS (*Release)(LPOLEOBJECT); - OLESTATUS (*Show)(LPOLEOBJECT,BOOL16); - OLESTATUS (*DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16); - OLESTATUS (*GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *); - OLESTATUS (*SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16); - OLESTATUS (*SetTargetDevice)(LPOLEOBJECT,HGLOBAL16); - OLESTATUS (*SetBounds)(LPOLEOBJECT,LPRECT16); - OLESTATUS (*EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT); - OLESTATUS (*SetColorScheme)(LPOLEOBJECT,LPLOGPALETTE); - OLESTATUS (*Delete)(LPOLEOBJECT); - OLESTATUS (*SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR); - OLESTATUS (*SaveToStream)(LPOLEOBJECT,LPOLESTREAM); - OLESTATUS (*Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *); - OLESTATUS (*CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *); - OLESTATUS (*Equal)(LPOLEOBJECT,LPOLEOBJECT); - OLESTATUS (*CopyToClipBoard)(LPOLEOBJECT); - OLESTATUS (*Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16); - OLESTATUS (*Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16); - OLESTATUS (*Execute)(LPOLEOBJECT,HGLOBAL16,UINT16); - OLESTATUS (*Close)(LPOLEOBJECT); - OLESTATUS (*Update)(LPOLEOBJECT); - OLESTATUS (*Reconnect)(LPOLEOBJECT); - OLESTATUS (*ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); - OLESTATUS (*GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE); - OLESTATUS (*SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE); - OLESTATUS (*Rename)(LPOLEOBJECT,OLE_LPCSTR); - OLESTATUS (*QueryName)(LPOLEOBJECT,LPSTR,LPUINT16); - OLESTATUS (*QueryType)(LPOLEOBJECT,LPLONG); - OLESTATUS (*QueryBounds)(LPOLEOBJECT,LPRECT16); - OLESTATUS (*QuerySize)(LPOLEOBJECT,LPDWORD); - OLESTATUS (*QueryOpen)(LPOLEOBJECT); - OLESTATUS (*QueryOutOfDate)(LPOLEOBJECT); - OLESTATUS (*QueryReleaseStatus)(LPOLEOBJECT); - OLESTATUS (*QueryReleaseError)(LPOLEOBJECT); - OLE_RELEASE_METHOD (*QueryReleaseMethod)(LPOLEOBJECT); - OLESTATUS (*RequestData)(LPOLEOBJECT,OLECLIPFORMAT); - OLESTATUS (*ObjectLong)(LPOLEOBJECT,UINT16,LPLONG); + void * (CALLBACK *QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR); + OLESTATUS (CALLBACK *Release)(LPOLEOBJECT); + OLESTATUS (CALLBACK *Show)(LPOLEOBJECT,BOOL16); + OLESTATUS (CALLBACK *DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16); + OLESTATUS (CALLBACK *GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *); + OLESTATUS (CALLBACK *SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16); + OLESTATUS (CALLBACK *SetTargetDevice)(LPOLEOBJECT,HGLOBAL16); + OLESTATUS (CALLBACK *SetBounds)(LPOLEOBJECT,LPRECT16); + OLESTATUS (CALLBACK *EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT); + OLESTATUS (CALLBACK *SetColorScheme)(LPOLEOBJECT,LPLOGPALETTE); + OLESTATUS (CALLBACK *Delete)(LPOLEOBJECT); + OLESTATUS (CALLBACK *SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR); + OLESTATUS (CALLBACK *SaveToStream)(LPOLEOBJECT,LPOLESTREAM); + OLESTATUS (CALLBACK *Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *); + OLESTATUS (CALLBACK *CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT *); + OLESTATUS (CALLBACK *Equal)(LPOLEOBJECT,LPOLEOBJECT); + OLESTATUS (CALLBACK *CopyToClipBoard)(LPOLEOBJECT); + OLESTATUS (CALLBACK *Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16); + OLESTATUS (CALLBACK *Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16); + OLESTATUS (CALLBACK *Execute)(LPOLEOBJECT,HGLOBAL16,UINT16); + OLESTATUS (CALLBACK *Close)(LPOLEOBJECT); + OLESTATUS (CALLBACK *Update)(LPOLEOBJECT); + OLESTATUS (CALLBACK *Reconnect)(LPOLEOBJECT); + OLESTATUS (CALLBACK *ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); + OLESTATUS (CALLBACK *GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE); + OLESTATUS (CALLBACK *SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE); + OLESTATUS (CALLBACK *Rename)(LPOLEOBJECT,OLE_LPCSTR); + OLESTATUS (CALLBACK *QueryName)(LPOLEOBJECT,LPSTR,LPUINT16); + OLESTATUS (CALLBACK *QueryType)(LPOLEOBJECT,LPLONG); + OLESTATUS (CALLBACK *QueryBounds)(LPOLEOBJECT,LPRECT16); + OLESTATUS (CALLBACK *QuerySize)(LPOLEOBJECT,LPDWORD); + OLESTATUS (CALLBACK *QueryOpen)(LPOLEOBJECT); + OLESTATUS (CALLBACK *QueryOutOfDate)(LPOLEOBJECT); + OLESTATUS (CALLBACK *QueryReleaseStatus)(LPOLEOBJECT); + OLESTATUS (CALLBACK *QueryReleaseError)(LPOLEOBJECT); + OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(LPOLEOBJECT); + OLESTATUS (CALLBACK *RequestData)(LPOLEOBJECT,OLECLIPFORMAT); + OLESTATUS (CALLBACK *ObjectLong)(LPOLEOBJECT,UINT16,LPLONG); } OLEOBJECTVTBL; typedef OLEOBJECTVTBL* LPOLEOBJECTVTBL; @@ -250,13 +250,13 @@ typedef struct _OLEOBJECT { } OLEOBJECT; -OLESTATUS OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE); -OLESTATUS OleUnblockServer(LHSERVER,BOOL16 *); -OLESTATUS OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *); -OLESTATUS OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *); -OLESTATUS OleRenameClientDoc(LHCLIENTDOC,LPCSTR); -OLESTATUS OleRevokeServerDoc(LHSERVERDOC); -OLESTATUS OleRevokeClientDoc(LHCLIENTDOC); -OLESTATUS OleRevokeServer(LHSERVER); +OLESTATUS WINAPI OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE); +OLESTATUS WINAPI OleUnblockServer(LHSERVER,BOOL16 *); +OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *); +OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *); +OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC,LPCSTR); +OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC); +OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC); +OLESTATUS WINAPI OleRevokeServer(LHSERVER); #endif /* __WINE_OLE_H */ diff --git a/include/peexe.h b/include/peexe.h index c716f612122..bc13148a9be 100644 --- a/include/peexe.h +++ b/include/peexe.h @@ -97,6 +97,10 @@ typedef struct _IMAGE_OPTIONAL_HEADER IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER,*LPIMAGE_OPTIONAL_HEADER; +/* Possible Magic values */ +#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b +#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 + /* These are indexes into the DataDirectory array */ #define IMAGE_FILE_EXPORT_DIRECTORY 0 #define IMAGE_FILE_IMPORT_DIRECTORY 1 diff --git a/include/scroll.h b/include/scroll.h index 70902454975..0a70a6c5621 100644 --- a/include/scroll.h +++ b/include/scroll.h @@ -19,8 +19,8 @@ typedef struct UINT32 flags; /* EnableScrollBar flags */ } SCROLLBAR_INFO; -extern LRESULT ScrollBarWndProc( HWND32 hwnd, UINT32 uMsg, WPARAM32 wParam, - LPARAM lParam ); +extern LRESULT WINAPI ScrollBarWndProc( HWND32 hwnd, UINT32 uMsg, + WPARAM32 wParam, LPARAM lParam ); extern void SCROLL_DrawScrollBar( HWND32 hwnd, HDC32 hdc, INT32 nBar, BOOL32 arrows ); extern void SCROLL_HandleScrollEvent( HWND32 hwnd, INT32 nBar, diff --git a/include/shell.h b/include/shell.h index daebe801e57..947ec4d2ec7 100644 --- a/include/shell.h +++ b/include/shell.h @@ -65,10 +65,9 @@ DECL_WINELIB_TYPE_AW(SHFILEINFO); #define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */ #define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */ #define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */ - -DWORD SHGetFileInfo32A(LPCSTR,DWORD,SHFILEINFO32A*,UINT32,UINT32); -DWORD SHGetFileInfo32W(LPCWSTR,DWORD,SHFILEINFO32W*,UINT32,UINT32); -#define SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo) +DWORD WINAPI SHGetFileInfo32A(LPCSTR,DWORD,SHFILEINFO32A*,UINT32,UINT32); +DWORD WINAPI SHGetFileInfo32W(LPCWSTR,DWORD,SHFILEINFO32W*,UINT32,UINT32); +#define SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo) #define SE_ERR_SHARE 26 #define SE_ERR_ASSOCINCOMPLETE 27 @@ -77,6 +76,4 @@ DWORD SHGetFileInfo32W(LPCWSTR,DWORD,SHFILEINFO32W*,UINT32,UINT32); #define SE_ERR_DDEBUSY 30 #define SE_ERR_NOASSOC 31 -LRESULT AboutDlgProc(HWND32 hWnd,UINT32 msg,WPARAM16 wParam,LPARAM lParam); - #endif /* __WINE_SHELL_H */ diff --git a/include/sigcontext.h b/include/sig_context.h similarity index 98% rename from include/sigcontext.h rename to include/sig_context.h index d47b836ec33..b971b9797ba 100644 --- a/include/sigcontext.h +++ b/include/sig_context.h @@ -4,8 +4,8 @@ * Copyright 1995 Alexandre Julliard */ -#ifndef __WINE_SIGCONTEXT_H -#define __WINE_SIGCONTEXT_H +#ifndef __WINE_SIG_CONTEXT_H +#define __WINE_SIG_CONTEXT_H #ifdef WINELIB #error This file must not be used in Winelib @@ -202,4 +202,4 @@ typedef struct _CONTEXT /* Note 1 */ #define FL_sig(context) (*(WORD*)&EFL_sig(context)) -#endif /* __WINE_SIGCONTEXT_H */ +#endif /* __WINE_SIG_CONTEXT_H */ diff --git a/include/static.h b/include/static.h index 355359a90ed..f29dd7b6bdb 100644 --- a/include/static.h +++ b/include/static.h @@ -17,7 +17,7 @@ typedef struct HICON16 hIcon; /* Icon handle for SS_ICON controls */ } STATICINFO; -extern LRESULT StaticWndProc( HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, - LPARAM lParam ); +extern LRESULT WINAPI StaticWndProc( HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, + LPARAM lParam ); #endif /* __WINE_STATIC_H */ diff --git a/include/status.h b/include/status.h index 424394fc9b4..24a22901620 100644 --- a/include/status.h +++ b/include/status.h @@ -7,8 +7,8 @@ #ifndef __WINE_STATUS_H #define __WINE_STATUS_H -LRESULT StatusWindowProc( HWND32 hwnd, UINT32 msg, - WPARAM32 wParam, LPARAM lParam ); +LRESULT WINAPI StatusWindowProc( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ); typedef struct { diff --git a/include/stddebug.h b/include/stddebug.h index 71b01510cd0..819ae530e63 100644 --- a/include/stddebug.h +++ b/include/stddebug.h @@ -150,6 +150,7 @@ #undef DEBUG_TIMER #undef DEBUG_TOOLHELP #undef DEBUG_TWEAK +#undef DEBUG_UPDOWN #undef DEBUG_VER #undef DEBUG_VIRTUAL #undef DEBUG_VXD @@ -234,6 +235,7 @@ #define DEBUG_TIMER #define DEBUG_TOOLHELP #define DEBUG_TWEAK +#define DEBUG_UPDOWN #define DEBUG_VER #define DEBUG_VIRTUAL #define DEBUG_VXD diff --git a/include/stress.h b/include/stress.h index 86f718c817d..f38857e4fba 100644 --- a/include/stress.h +++ b/include/stress.h @@ -11,17 +11,17 @@ extern "C" { #define EDS_CUR 2 #define EDS_TEMP 3 -BOOL16 AllocGDIMem(UINT16); -BOOL16 AllocMem(DWORD); -BOOL16 AllocUserMem(UINT16); -int AllocDiskSpace(long, UINT16); -int AllocFileHandles(int); -int GetFreeFileHandles(void); -void FreeAllGDIMem(void); -void FreeAllMem(void); -void FreeAllUserMem(void); -void UnAllocDiskSpace(UINT16); -void UnAllocFileHandles(void); +BOOL16 WINAPI AllocGDIMem(UINT16); +BOOL16 WINAPI AllocMem(DWORD); +BOOL16 WINAPI AllocUserMem(UINT16); +int WINAPI AllocDiskSpace(long, UINT16); +int WINAPI AllocFileHandles(int); +int WINAPI GetFreeFileHandles(void); +void WINAPI FreeAllGDIMem(void); +void WINAPI FreeAllMem(void); +void WINAPI FreeAllUserMem(void); +void WINAPI UnAllocDiskSpace(UINT16); +void WINAPI UnAllocFileHandles(void); #ifdef __cplusplus } diff --git a/include/task.h b/include/task.h index 62fc59e25b2..57129790e08 100644 --- a/include/task.h +++ b/include/task.h @@ -49,8 +49,12 @@ typedef struct #define THUNK_MAGIC ('P' | ('T' << 8)) struct _THDB; +struct _WSINFO; - /* Task database. See 'Windows Internals' p. 226 */ + /* Task database. See 'Windows Internals' p. 226. + * Note that 16-bit OLE 2 libs like to read it directly + * so we have to keep entry offsets as they are. + */ typedef struct { HTASK16 hNext; /* 00 Selector of next TDB */ @@ -82,8 +86,9 @@ typedef struct DWORD int75 WINE_PACKED; /* 4a int 75 (80x87 error) handler */ DWORD compat_flags WINE_PACKED; /* 4e Compatibility flags */ BYTE unused4[2]; /* 52 */ - struct _THDB *thdb; /* 54 Pointer to thread database */ - BYTE unused5[8]; /* 58 */ + struct _THDB *thdb; /* 54 Pointer to thread database */ + struct _WSINFO *pwsi; /* 58 Socket control struct */ + BYTE unused5[4]; /* 5B */ HANDLE16 hPDB; /* 60 Selector of PDB (i.e. PSP) */ SEGPTR dta WINE_PACKED; /* 62 Current DTA */ BYTE curdrive; /* 66 Current drive */ diff --git a/include/toolhelp.h b/include/toolhelp.h index eaf30eca85a..8d1cd81638a 100644 --- a/include/toolhelp.h +++ b/include/toolhelp.h @@ -76,11 +76,13 @@ typedef struct /* wFlags values */ #define GF_PDB_OWNER 0x0100 /* Low byte is KERNEL flags */ -BOOL16 GlobalInfo( GLOBALINFO *pInfo ); -BOOL16 GlobalFirst( GLOBALENTRY *pGlobal, WORD wFlags ); -BOOL16 GlobalNext( GLOBALENTRY *pGlobal, WORD wFlags) ; -BOOL16 GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL16 hItem ); -BOOL16 GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE16 hModule, WORD wSeg ); +WORD WINAPI GlobalHandleToSel( HGLOBAL16 handle ); +BOOL16 WINAPI GlobalInfo( GLOBALINFO *pInfo ); +BOOL16 WINAPI GlobalFirst( GLOBALENTRY *pGlobal, WORD wFlags ); +BOOL16 WINAPI GlobalNext( GLOBALENTRY *pGlobal, WORD wFlags) ; +BOOL16 WINAPI GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL16 hItem ); +BOOL16 WINAPI GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE16 hModule, + WORD wSeg ); /* Local heap */ @@ -154,9 +156,9 @@ typedef struct #define LT_USER_HANDLETABLE 32 #define LT_USER_MAX LT_USER_HANDLETABLE -BOOL16 LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL16 handle ); -BOOL16 LocalFirst( LOCALENTRY *pLocalEntry, HGLOBAL16 handle ); -BOOL16 LocalNext( LOCALENTRY *pLocalEntry ); +BOOL16 WINAPI LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL16 handle ); +BOOL16 WINAPI LocalFirst( LOCALENTRY *pLocalEntry, HGLOBAL16 handle ); +BOOL16 WINAPI LocalNext( LOCALENTRY *pLocalEntry ); /* modules */ @@ -171,10 +173,10 @@ typedef struct HANDLE16 wNext; } MODULEENTRY, *LPMODULEENTRY; -BOOL16 ModuleFirst(MODULEENTRY *lpModule); -BOOL16 ModuleNext(MODULEENTRY *lpModule); -BOOL16 ModuleFindName(MODULEENTRY *lpModule, LPCSTR lpstrName); -BOOL16 ModuleFindHandle(MODULEENTRY *lpModule, HMODULE16 hModule); +BOOL16 WINAPI ModuleFirst(MODULEENTRY *lpModule); +BOOL16 WINAPI ModuleNext(MODULEENTRY *lpModule); +BOOL16 WINAPI ModuleFindName(MODULEENTRY *lpModule, LPCSTR lpstrName); +BOOL16 WINAPI ModuleFindHandle(MODULEENTRY *lpModule, HMODULE16 hModule); /* tasks */ @@ -197,12 +199,12 @@ typedef struct HANDLE16 hNext; } TASKENTRY, *LPTASKENTRY; -BOOL16 TaskFirst(LPTASKENTRY lpTask); -BOOL16 TaskNext(LPTASKENTRY lpTask); -BOOL16 TaskFindHandle(LPTASKENTRY lpTask, HTASK16 hTask); -DWORD TaskSetCSIP(HTASK16 hTask, WORD wCS, WORD wIP); -DWORD TaskGetCSIP(HTASK16 hTask); -BOOL16 TaskSwitch(HTASK16 hTask, DWORD dwNewCSIP); +BOOL16 WINAPI TaskFirst(LPTASKENTRY lpTask); +BOOL16 WINAPI TaskNext(LPTASKENTRY lpTask); +BOOL16 WINAPI TaskFindHandle(LPTASKENTRY lpTask, HTASK16 hTask); +DWORD WINAPI TaskSetCSIP(HTASK16 hTask, WORD wCS, WORD wIP); +DWORD WINAPI TaskGetCSIP(HTASK16 hTask); +BOOL16 WINAPI TaskSwitch(HTASK16 hTask, DWORD dwNewCSIP); /* mem info */ @@ -230,8 +232,8 @@ typedef struct HGLOBAL16 hGDISegment; } SYSHEAPINFO; -BOOL16 MemManInfo(LPMEMMANINFO lpEnhMode); -BOOL16 SystemHeapInfo( SYSHEAPINFO *pHeapInfo ); +BOOL16 WINAPI MemManInfo(LPMEMMANINFO lpEnhMode); +BOOL16 WINAPI SystemHeapInfo( SYSHEAPINFO *pHeapInfo ); /* timer info */ @@ -241,7 +243,7 @@ typedef struct tagTIMERINFO { DWORD dwmsThisVM; } TIMERINFO; -BOOL16 TimerCount( TIMERINFO *pTimerInfo ); +BOOL16 WINAPI TimerCount( TIMERINFO *pTimerInfo ); /* Window classes */ @@ -253,14 +255,14 @@ typedef struct HANDLE16 wNext; } CLASSENTRY; -BOOL16 ClassFirst( CLASSENTRY *pClassEntry ); -BOOL16 ClassNext( CLASSENTRY *pClassEntry ); +BOOL16 WINAPI ClassFirst( CLASSENTRY *pClassEntry ); +BOOL16 WINAPI ClassNext( CLASSENTRY *pClassEntry ); /* Memory read/write */ -DWORD MemoryRead( WORD sel, DWORD offset, void *buffer, DWORD count ); -DWORD MemoryWrite( WORD sel, DWORD offset, void *buffer, DWORD count ); +DWORD WINAPI MemoryRead( WORD sel, DWORD offset, void *buffer, DWORD count ); +DWORD WINAPI MemoryWrite( WORD sel, DWORD offset, void *buffer, DWORD count ); /* flags to NotifyRegister() */ #define NF_NORMAL 0 /* everything except taskswitches, debugerrors, @@ -269,7 +271,7 @@ DWORD MemoryWrite( WORD sel, DWORD offset, void *buffer, DWORD count ); #define NF_TASKSWITCH 1 /* get taskswitch information */ #define NF_RIP 2 /* get debugerrors of system */ -BOOL16 NotifyRegister(HTASK16 htask,FARPROC16 lpfnCallback,WORD wFlags); +BOOL16 WINAPI NotifyRegister(HTASK16 htask,FARPROC16 lpfnCallback,WORD wFlags); #define NFY_UNKNOWN 0 #define NFY_LOADSEG 1 diff --git a/include/updown.h b/include/updown.h new file mode 100644 index 00000000000..07b132e3304 --- /dev/null +++ b/include/updown.h @@ -0,0 +1,28 @@ +/* + * Up-down class extra info + * + * Copyright 1997 Dimitrie O. Paun + */ + +#ifndef __WINE_UPDOWN_H +#define __WINE_UPDOWN_H + +#include "windows.h" +#include "commctrl.h" + +typedef struct +{ + UINT32 AccelCount; /* Number of elements in AccelVect */ + UDACCEL* AccelVect; /* Vector containing AccelCount elements */ + INT32 Base; /* Base to display nr in the buddy window */ + INT32 CurVal; /* Current up-down value */ + INT32 MinVal; /* Minimum up-down value */ + INT32 MaxVal; /* Maximum up-down value */ + HWND32 Buddy; /* Handle to the buddy window */ + INT32 Flags; /* Internal Flags FLAG_* */ +} UPDOWN_INFO; + +LRESULT WINAPI UpDownWindowProc( HWND32 hwnd, UINT32 message, WPARAM32 wParam, + LPARAM lParam); + +#endif /* __WINE_UPDOWN_H */ diff --git a/include/ver.h b/include/ver.h index 05342f26c36..60d0dee177a 100644 --- a/include/ver.h +++ b/include/ver.h @@ -127,15 +127,6 @@ typedef struct tagVS_FIXEDFILEINFO { DWORD dwFileDateLS; } VS_FIXEDFILEINFO; -/* following two aren't in version.dll */ -DWORD -GetFileResourceSize(LPCSTR filename,SEGPTR restype,SEGPTR resid,LPDWORD off); - -DWORD -GetFileResource(LPCSTR filename,SEGPTR restype,SEGPTR resid, - DWORD off,DWORD reslen,LPVOID data -); - /* 20 GETFILEVERSIONINFORAW */ diff --git a/include/win.h b/include/win.h index 139e919b4b7..c9520000beb 100644 --- a/include/win.h +++ b/include/win.h @@ -74,7 +74,7 @@ typedef struct tagWND HWND32 hwndLastActive;/* Last active popup hwnd */ DWORD dwStyle; /* Window style (from CreateWindow) */ DWORD dwExStyle; /* Extended style (from CreateWindowEx) */ - UINT16 wIDmenu; /* ID or hmenu (from CreateWindow) */ + UINT32 wIDmenu; /* ID or hmenu (from CreateWindow) */ WORD flags; /* Misc. flags (see below) */ Window window; /* X window (only for top-level windows) */ HMENU16 hSysMenu; /* window's copy of System Menu */ @@ -124,6 +124,7 @@ extern void WIN_SendParentNotify( HWND32 hwnd, WORD event, extern void 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 WND** WIN_BuildWinArray( WND *wndPtr, UINT32 bwa, UINT32* pnum ); diff --git a/include/winbase.h b/include/winbase.h index e8604187ea2..46aaa977446 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -57,7 +57,6 @@ #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK -/*WINAPI int SetErrorMode(int);*/ #define STATUS_SUCCESS 0x00000000 #define STATUS_WAIT_0 0x00000000 @@ -156,19 +155,17 @@ DECL_WINELIB_TYPE_AW(OSVERSIONINFO); #define VER_PLATFORM_WIN32_NT 2 /*DWORD WINAPI GetVersion( void );*/ -BOOL32 GetVersionEx32A(OSVERSIONINFO32A*); -BOOL32 GetVersionEx32W(OSVERSIONINFO32W*); +BOOL32 WINAPI GetVersionEx32A(OSVERSIONINFO32A*); +BOOL32 WINAPI GetVersionEx32W(OSVERSIONINFO32W*); #define GetVersionEx WINELIB_NAME_AW(GetVersionEx) /*int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);*/ -HACCEL32 LoadAcceleratorsA( HINSTANCE32, const char *); - -void DeleteCriticalSection(CRITICAL_SECTION *lpCrit); -void EnterCriticalSection(CRITICAL_SECTION *lpCrit); -void InitializeCriticalSection(CRITICAL_SECTION *lpCrit); -void LeaveCriticalSection(CRITICAL_SECTION *lpCrit); -HANDLE32 OpenProcess(DWORD access, BOOL32 inherit, DWORD id); -int TerminateProcess(HANDLE32 h, int ret); +void WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit); +void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit); +void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit); +void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit); +HANDLE32 WINAPI OpenProcess(DWORD access, BOOL32 inherit, DWORD id); +int WINAPI TerminateProcess(HANDLE32 h, int ret); #endif /* __WINE_WINBASE_H */ diff --git a/include/windows.h b/include/windows.h index 06814ac209c..139c33b1db2 100644 --- a/include/windows.h +++ b/include/windows.h @@ -1098,6 +1098,14 @@ typedef struct DWORD fsCsb[2]; } FONTSIGNATURE,*LPFONTSIGNATURE; +typedef struct +{ + UINT32 ciCharset; + UINT32 ciACP; + FONTSIGNATURE fs; +} CHARSETINFO,*LPCHARSETINFO; + + typedef struct { INT16 txfHeight; @@ -2787,6 +2795,7 @@ typedef struct #define SWP_NOSENDCHANGING 0x0400 #define SWP_DEFERERASE 0x2000 +#define HWND_DESKTOP ((HWND32)0) #define HWND_BROADCAST ((HWND32)0xffff) /* SetWindowPos() hwndInsertAfter field values */ @@ -2840,8 +2849,10 @@ typedef struct #define MF_BYCOMMAND 0x0000 #define MF_BYPOSITION 0x0400 #define MF_SEPARATOR 0x0800 +#define MF_DEFAULT 0x1000 #define MF_SYSMENU 0x2000 #define MF_HELP 0x4000 +#define MF_RIGHTJUSTIFY 0x4000 #define MF_MOUSESELECT 0x8000 /* Flags for extended menu item types. */ @@ -2865,6 +2876,21 @@ typedef struct #define MFS_UNHILITE MF_UNHILITE #define MFS_DEFAULT MF_DEFAULT +/* FIXME: not sure this one is correct */ +typedef struct { + UINT16 cbSize; + UINT16 fMask; + UINT16 fType; + UINT16 fState; + UINT16 wID; + HMENU16 hSubMenu; + HBITMAP16 hbmpChecked; + HBITMAP16 hbmpUnchecked; + DWORD dwItemData; + LPSTR dwTypeData; + UINT16 cch; +} MENUITEMINFO16, *LPMENUITEMINFO16; + typedef struct { UINT32 cbSize; UINT32 fMask; @@ -3035,6 +3061,23 @@ DECL_WINELIB_TYPE_AW(LPMENUITEMINFO); #define DFCS_FLAT 0x4000 #define DFCS_MONO 0x8000 +/* DrawState defines ... */ +typedef BOOL32 (CALLBACK *DRAWSTATEPROC)(HDC32,LPARAM,WPARAM32,INT32,INT32); + +/* Image type */ +#define DST_COMPLEX 0x0000 +#define DST_TEXT 0x0001 +#define DST_PREFIXTEXT 0x0002 +#define DST_ICON 0x0003 +#define DST_BITMAP 0x0004 + +/* State type */ +#define DSS_NORMAL 0x0000 +#define DSS_UNION 0x0010 /* Gray string appearance */ +#define DSS_DISABLED 0x0020 +#define DSS_MONO 0x0080 +#define DSS_RIGHT 0x8000 + /* Window Styles */ #define WS_OVERLAPPED 0x00000000L #define WS_POPUP 0x80000000L @@ -5118,2521 +5161,2591 @@ typedef struct { DECL_WINELIB_TYPE_AW(NONCLIENTMETRICS); DECL_WINELIB_TYPE_AW(LPNONCLIENTMETRICS); +typedef struct tagNMHDR +{ + HWND32 hwndFrom; + UINT32 idFrom; + UINT32 code; +} NMHDR, *LPNMHDR; + #pragma pack(4) /* Declarations for functions that exist only in Win16 */ -WORD AllocCStoDSAlias(WORD); -WORD AllocDStoCSAlias(WORD); -WORD AllocSelector(WORD); -WORD AllocSelectorArray(WORD); -VOID CalcChildScroll(HWND16,WORD); -INT16 Catch(LPCATCHBUF); -WORD ChangeSelector(WORD,WORD); -INT16 CloseComm(INT16); -HGLOBAL16 CreateCursorIconIndirect(HINSTANCE16,CURSORICONINFO*,LPCVOID,LPCVOID); -WORD CreateSystemTimer(WORD,FARPROC16); -BOOL16 DCHook(HDC16,WORD,DWORD,LPARAM); -VOID DirectedYield(HTASK16); -HGLOBAL16 DirectResAlloc(HINSTANCE16,WORD,UINT16); -VOID DisableSystemTimers(void); -BOOL16 DlgDirSelect(HWND16,LPSTR,INT16); -BOOL16 DlgDirSelectComboBox(HWND16,LPSTR,INT16); -DWORD DumpIcon(SEGPTR,WORD*,SEGPTR*,SEGPTR*); -BOOL16 EnableCommNotification(INT16,HWND16,INT16,INT16); -BOOL16 EnableHardwareInput(BOOL16); -VOID EnableSystemTimers(void); -INT16 ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16); -HANDLE16 FarGetOwner(HGLOBAL16); -VOID FarSetOwner(HGLOBAL16,HANDLE16); -BOOL16 FastWindowFrame(HDC16,const RECT16*,INT16,INT16,DWORD); -VOID FillWindow(HWND16,HWND16,HDC16,HBRUSH16); -INT16 FlushComm(INT16,INT16); -WORD FreeSelector(WORD); -UINT16 GDIRealizePalette(HDC16); -HPALETTE16 GDISelectPalette(HDC16,HPALETTE16,WORD); -HANDLE16 GetAtomHandle(ATOM); -DWORD GetBitmapDimension(HBITMAP16); -DWORD GetBrushOrg(HDC16); -HANDLE16 GetCodeHandle(FARPROC16); -INT16 GetCommError(INT16,LPCOMSTAT); -UINT16 GetCommEventMask(INT16,UINT16); -HBRUSH16 GetControlBrush(HWND16,HDC16,UINT16); -VOID GetCodeInfo(FARPROC16,LPVOID); -HANDLE16 GetCurrentPDB(void); -DWORD GetCurrentPosition(HDC16); -HTASK16 GetCurrentTask(void); -DWORD GetDCHook(HDC16,FARPROC16*); -DWORD GetDCOrg(HDC16); -HDC16 GetDCState(HDC16); -HWND16 GetDesktopHwnd(void); -SEGPTR GetDOSEnvironment(void); -INT16 GetEnvironment(LPCSTR,LPSTR,UINT16); -HMODULE16 GetExePtr(HANDLE16); -WORD GetExeVersion(void); -DWORD GetHeapSpaces(HMODULE16); -INT16 GetKbCodePage(VOID); -INT16 GetInstanceData(HINSTANCE16,WORD,INT16); -HGLOBAL16 GetMetaFileBits(HMETAFILE16); -BOOL16 GetModuleName(HINSTANCE16,LPSTR,INT16); -INT16 GetModuleUsage(HINSTANCE16); -FARPROC16 GetMouseEventProc(void); -UINT16 GetNumTasks(void); -DWORD GetSelectorBase(WORD); -DWORD GetSelectorLimit(WORD); -HINSTANCE16 GetTaskDS(void); -HQUEUE16 GetTaskQueue(HTASK16); -BYTE GetTempDrive(BYTE); -DWORD GetTextExtent(HDC16,LPCSTR,INT16); -DWORD GetViewportExt(HDC16); -DWORD GetViewportOrg(HDC16); -BOOL16 GetWinDebugInfo(LPWINDEBUGINFO,UINT16); -DWORD GetWindowExt(HDC16); -DWORD GetWindowOrg(HDC16); -DWORD GetWinFlags(void); -DWORD GlobalDOSAlloc(DWORD); -WORD GlobalDOSFree(WORD); -void GlobalFreeAll(HGLOBAL16); -HGLOBAL16 GlobalLRUNewest(HGLOBAL16); -HGLOBAL16 GlobalLRUOldest(HGLOBAL16); -VOID GlobalNotify(FARPROC16); -WORD GlobalPageLock(HGLOBAL16); -WORD GlobalPageUnlock(HGLOBAL16); -INT16 InitApp(HINSTANCE16); -HRGN16 InquireVisRgn(HDC16); -INT16 IntersectVisRect(HDC16,INT16,INT16,INT16,INT16); -BOOL16 IsDCCurrentPalette(HDC16); -BOOL16 IsGDIObject(HGDIOBJ16); -BOOL16 IsSharedSelector(HANDLE16); -BOOL16 IsTask(HTASK16); -HTASK16 IsTaskLocked(void); -BOOL16 IsValidMetaFile(HMETAFILE16); -VOID LogError(UINT16, LPVOID); -VOID LogParamError(UINT16,FARPROC16,LPVOID); -BOOL16 LocalInit(HANDLE16,WORD,WORD); -FARPROC16 LocalNotify(FARPROC16); -HTASK16 LockCurrentTask(BOOL16); -HMENU16 LookupMenuHandle(HMENU16,INT16); -DWORD MoveTo(HDC16,INT16,INT16); -DWORD OffsetViewportOrg(HDC16,INT16,INT16); -INT16 OffsetVisRgn(HDC16,INT16,INT16); -DWORD OffsetWindowOrg(HDC16,INT16,INT16); -VOID OldYield(void); -INT16 OpenComm(LPCSTR,UINT16,UINT16); -VOID PaintRect(HWND16,HWND16,HDC16,HBRUSH16,const RECT16*); -VOID PostEvent(HTASK16); -WORD PrestoChangoSelector(WORD,WORD); -INT16 ReadComm(INT16,LPSTR,INT16); -UINT16 RealizeDefaultPalette(HDC16); -BOOL32 RegisterShellHook(HWND16,UINT16); -INT16 RestoreVisRgn(HDC16); -HRGN16 SaveVisRgn(HDC16); -DWORD ScaleViewportExt(HDC16,INT16,INT16,INT16,INT16); -DWORD ScaleWindowExt(HDC16,INT16,INT16,INT16,INT16); -WORD SelectorAccessRights(WORD,WORD,WORD); -INT16 SelectVisRgn(HDC16,HRGN16); -DWORD SetBitmapDimension(HBITMAP16,INT16,INT16); -DWORD SetBrushOrg(HDC16,INT16,INT16); -UINT16* SetCommEventMask(INT16,UINT16); -BOOL16 SetDCHook(HDC16,FARPROC16,DWORD); -DWORD SetDCOrg(HDC16,INT16,INT16); -VOID SetDCState(HDC16,HDC16); -BOOL16 SetDeskPattern(void); -INT16 SetEnvironment(LPCSTR,LPCSTR,UINT16); -WORD SetHookFlags(HDC16,WORD); -HMETAFILE16 SetMetaFileBits(HGLOBAL16); -VOID SetPriority(HTASK16,INT16); -FARPROC16 SetResourceHandler(HINSTANCE16,SEGPTR,FARPROC16); -WORD SetSelectorBase(WORD,DWORD); -WORD SetSelectorLimit(WORD,DWORD); -LONG SetSwapAreaSize(WORD); -HQUEUE16 SetTaskQueue(HTASK16,HQUEUE16); -FARPROC16 SetTaskSignalProc(HTASK16,FARPROC16); -DWORD SetViewportExt(HDC16,INT16,INT16); -DWORD SetViewportOrg(HDC16,INT16,INT16); -BOOL16 SetWinDebugInfo(LPWINDEBUGINFO); -DWORD SetWindowExt(HDC16,INT16,INT16); -DWORD SetWindowOrg(HDC16,INT16,INT16); -VOID SwitchStackBack(void); -VOID SwitchStackTo(WORD,WORD,WORD); -INT16 Throw(LPCATCHBUF,INT16); -INT16 UngetCommChar(INT16,CHAR); -VOID UserYield(void); -BOOL16 WaitEvent(HTASK16); -INT16 WriteComm(INT16,LPSTR,INT16); -VOID WriteOutProfiles(VOID); -VOID hmemcpy(LPVOID,LPCVOID,LONG); -VOID Yield(void); +WORD WINAPI AllocCStoDSAlias(WORD); +WORD WINAPI AllocDStoCSAlias(WORD); +WORD WINAPI AllocSelector(WORD); +WORD WINAPI AllocSelectorArray(WORD); +VOID WINAPI CalcChildScroll(HWND16,WORD); +INT16 WINAPI Catch(LPCATCHBUF); +VOID WINAPI CascadeChildWindows(HWND16,WORD); +INT16 WINAPI CloseComm(INT16); +HGLOBAL16 WINAPI CreateCursorIconIndirect(HINSTANCE16,CURSORICONINFO*, + LPCVOID,LPCVOID); +WORD WINAPI CreateSystemTimer(WORD,FARPROC16); +BOOL16 WINAPI DCHook(HDC16,WORD,DWORD,LPARAM); +VOID WINAPI DirectedYield(HTASK16); +HGLOBAL16 WINAPI DirectResAlloc(HINSTANCE16,WORD,UINT16); +VOID WINAPI DisableSystemTimers(void); +BOOL16 WINAPI DlgDirSelect(HWND16,LPSTR,INT16); +BOOL16 WINAPI DlgDirSelectComboBox(HWND16,LPSTR,INT16); +DWORD WINAPI DumpIcon(SEGPTR,WORD*,SEGPTR*,SEGPTR*); +BOOL16 WINAPI EnableCommNotification(INT16,HWND16,INT16,INT16); +BOOL16 WINAPI EnableHardwareInput(BOOL16); +VOID WINAPI EnableSystemTimers(void); +INT16 WINAPI ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16); +HANDLE16 WINAPI FarGetOwner(HGLOBAL16); +VOID WINAPI FarSetOwner(HGLOBAL16,HANDLE16); +BOOL16 WINAPI FastWindowFrame(HDC16,const RECT16*,INT16,INT16,DWORD); +VOID WINAPI FileCDR(FARPROC16); +VOID WINAPI FillWindow(HWND16,HWND16,HDC16,HBRUSH16); +INT16 WINAPI FlushComm(INT16,INT16); +WORD WINAPI FreeSelector(WORD); +UINT16 WINAPI GDIRealizePalette(HDC16); +HPALETTE16 WINAPI GDISelectPalette(HDC16,HPALETTE16,WORD); +HANDLE16 WINAPI GetAtomHandle(ATOM); +DWORD WINAPI GetBitmapDimension(HBITMAP16); +DWORD WINAPI GetBrushOrg(HDC16); +HANDLE16 WINAPI GetCodeHandle(FARPROC16); +INT16 WINAPI GetCommError(INT16,LPCOMSTAT); +UINT16 WINAPI GetCommEventMask(INT16,UINT16); +HBRUSH16 WINAPI GetControlBrush(HWND16,HDC16,UINT16); +VOID WINAPI GetCodeInfo(FARPROC16,LPVOID); +HANDLE16 WINAPI GetCurrentPDB(void); +DWORD WINAPI GetCurrentPosition(HDC16); +HTASK16 WINAPI GetCurrentTask(void); +DWORD WINAPI GetDCHook(HDC16,FARPROC16*); +DWORD WINAPI GetDCOrg(HDC16); +HDC16 WINAPI GetDCState(HDC16); +HWND16 WINAPI GetDesktopHwnd(void); +SEGPTR WINAPI GetDOSEnvironment(void); +INT16 WINAPI GetEnvironment(LPCSTR,LPSTR,UINT16); +HMODULE16 WINAPI GetExePtr(HANDLE16); +WORD WINAPI GetExeVersion(void); +WORD WINAPI GetExpWinVer(HMODULE16); +DWORD WINAPI GetFileResourceSize(LPCSTR,SEGPTR,SEGPTR,LPDWORD); +DWORD WINAPI GetFileResource(LPCSTR,SEGPTR,SEGPTR,DWORD,DWORD,LPVOID); +DWORD WINAPI GetHeapSpaces(HMODULE16); +INT16 WINAPI GetInstanceData(HINSTANCE16,WORD,INT16); +HGLOBAL16 WINAPI GetMetaFileBits(HMETAFILE16); +BOOL16 WINAPI GetModuleName(HINSTANCE16,LPSTR,INT16); +INT16 WINAPI GetModuleUsage(HINSTANCE16); +FARPROC16 WINAPI GetMouseEventProc(void); +UINT16 WINAPI GetNumTasks(void); +DWORD WINAPI GetSelectorBase(WORD); +DWORD WINAPI GetSelectorLimit(WORD); +HINSTANCE16 WINAPI GetTaskDS(void); +HQUEUE16 WINAPI GetTaskQueue(HTASK16); +BYTE WINAPI GetTempDrive(BYTE); +DWORD WINAPI GetTextExtent(HDC16,LPCSTR,INT16); +DWORD WINAPI GetViewportExt(HDC16); +DWORD WINAPI GetViewportOrg(HDC16); +BOOL16 WINAPI GetWinDebugInfo(LPWINDEBUGINFO,UINT16); +DWORD WINAPI GetWindowExt(HDC16); +DWORD WINAPI GetWindowOrg(HDC16); +DWORD WINAPI GetWinFlags(void); +DWORD WINAPI GlobalDOSAlloc(DWORD); +WORD WINAPI GlobalDOSFree(WORD); +void WINAPI GlobalFreeAll(HGLOBAL16); +HGLOBAL16 WINAPI GlobalLRUNewest(HGLOBAL16); +HGLOBAL16 WINAPI GlobalLRUOldest(HGLOBAL16); +VOID WINAPI GlobalNotify(FARPROC16); +WORD WINAPI GlobalPageLock(HGLOBAL16); +WORD WINAPI GlobalPageUnlock(HGLOBAL16); +INT16 WINAPI InitApp(HINSTANCE16); +HRGN16 WINAPI InquireVisRgn(HDC16); +INT16 WINAPI IntersectVisRect(HDC16,INT16,INT16,INT16,INT16); +BOOL16 WINAPI IsDCCurrentPalette(HDC16); +BOOL16 WINAPI IsGDIObject(HGDIOBJ16); +BOOL16 WINAPI IsSharedSelector(HANDLE16); +BOOL16 WINAPI IsTask(HTASK16); +HTASK16 WINAPI IsTaskLocked(void); +BOOL16 WINAPI IsValidMetaFile(HMETAFILE16); +VOID WINAPI LogError(UINT16, LPVOID); +VOID WINAPI LogParamError(UINT16,FARPROC16,LPVOID); +WORD WINAPI LocalCountFree(void); +WORD WINAPI LocalHandleDelta(WORD); +WORD WINAPI LocalHeapSize(void); +BOOL16 WINAPI LocalInit(HANDLE16,WORD,WORD); +FARPROC16 WINAPI LocalNotify(FARPROC16); +HTASK16 WINAPI LockCurrentTask(BOOL16); +HMENU16 WINAPI LookupMenuHandle(HMENU16,INT16); +DWORD WINAPI MoveTo(HDC16,INT16,INT16); +DWORD WINAPI OffsetViewportOrg(HDC16,INT16,INT16); +INT16 WINAPI OffsetVisRgn(HDC16,INT16,INT16); +DWORD WINAPI OffsetWindowOrg(HDC16,INT16,INT16); +VOID WINAPI OldYield(void); +INT16 WINAPI OpenComm(LPCSTR,UINT16,UINT16); +VOID WINAPI PaintRect(HWND16,HWND16,HDC16,HBRUSH16,const RECT16*); +VOID WINAPI PostEvent(HTASK16); +WORD WINAPI PrestoChangoSelector(WORD,WORD); +INT16 WINAPI ReadComm(INT16,LPSTR,INT16); +UINT16 WINAPI RealizeDefaultPalette(HDC16); +BOOL32 WINAPI RegisterShellHook(HWND16,UINT16); +INT16 WINAPI RestoreVisRgn(HDC16); +HRGN16 WINAPI SaveVisRgn(HDC16); +DWORD WINAPI ScaleViewportExt(HDC16,INT16,INT16,INT16,INT16); +DWORD WINAPI ScaleWindowExt(HDC16,INT16,INT16,INT16,INT16); +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); +BOOL16 WINAPI SetDCHook(HDC16,FARPROC16,DWORD); +DWORD WINAPI SetDCOrg(HDC16,INT16,INT16); +VOID WINAPI SetDCState(HDC16,HDC16); +BOOL16 WINAPI SetDeskPattern(void); +INT16 WINAPI SetEnvironment(LPCSTR,LPCSTR,UINT16); +WORD WINAPI SetHookFlags(HDC16,WORD); +HMETAFILE16 WINAPI SetMetaFileBits(HGLOBAL16); +VOID WINAPI SetPriority(HTASK16,INT16); +FARPROC16 WINAPI SetResourceHandler(HINSTANCE16,SEGPTR,FARPROC16); +WORD WINAPI SetSelectorBase(WORD,DWORD); +WORD WINAPI SetSelectorLimit(WORD,DWORD); +LONG WINAPI SetSwapAreaSize(WORD); +HQUEUE16 WINAPI SetTaskQueue(HTASK16,HQUEUE16); +FARPROC16 WINAPI SetTaskSignalProc(HTASK16,FARPROC16); +DWORD WINAPI SetViewportExt(HDC16,INT16,INT16); +DWORD WINAPI SetViewportOrg(HDC16,INT16,INT16); +BOOL16 WINAPI SetWinDebugInfo(LPWINDEBUGINFO); +DWORD WINAPI SetWindowExt(HDC16,INT16,INT16); +DWORD WINAPI SetWindowOrg(HDC16,INT16,INT16); +VOID WINAPI SwitchStackBack(void); +VOID WINAPI SwitchStackTo(WORD,WORD,WORD); +VOID WINAPI TileChildWindows(HWND16,WORD); +INT16 WINAPI Throw(LPCATCHBUF,INT16); +INT16 WINAPI UngetCommChar(INT16,CHAR); +VOID WINAPI UserYield(void); +BOOL16 WINAPI WaitEvent(HTASK16); +INT16 WINAPI WriteComm(INT16,LPSTR,INT16); +VOID WINAPI WriteOutProfiles(VOID); +VOID WINAPI hmemcpy(LPVOID,LPCVOID,LONG); +VOID WINAPI Yield(void); + /* Declarations for functions that exist only in Win32 */ -BOOL32 Beep(DWORD,DWORD); -BOOL32 ClearCommError(INT32,LPDWORD,LPCOMSTAT); -BOOL32 CloseHandle(HANDLE32); -BOOL32 CopyFile32A(LPCSTR,LPCSTR,BOOL32); -BOOL32 CopyFile32W(LPCWSTR,LPCWSTR,BOOL32); -#define CopyFile WINELIB_NAME_AW(CopyFile) -INT32 CompareFileTime(LPFILETIME,LPFILETIME); -HANDLE32 CreateEvent32A(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCSTR); -HANDLE32 CreateEvent32W(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCWSTR); -#define CreateEvent WINELIB_NAME_AW(CreateEvent) -HFILE32 CreateFile32A(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE32); -HFILE32 CreateFile32W(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE32); -#define CreateFile WINELIB_NAME_AW(CreateFile) -HANDLE32 CreateFileMapping32A(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR); -HANDLE32 CreateFileMapping32W(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR); -#define CreateFileMapping WINELIB_NAME_AW(CreateFileMapping) -HANDLE32 CreateMutex32A(LPSECURITY_ATTRIBUTES,BOOL32,LPCSTR); -HANDLE32 CreateMutex32W(LPSECURITY_ATTRIBUTES,BOOL32,LPCWSTR); -#define CreateMutex WINELIB_NAME_AW(CreateMutex) -HANDLE32 CreateSemaphore32A(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR); -HANDLE32 CreateSemaphore32W(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR); -#define CreateSemaphore WINELIB_NAME_AW(CreateSemaphore) -BOOL32 DosDateTimeToFileTime(WORD,WORD,LPFILETIME); -INT32 EnumPropsEx32A(HWND32,PROPENUMPROCEX32A,LPARAM); -INT32 EnumPropsEx32W(HWND32,PROPENUMPROCEX32W,LPARAM); -#define EnumPropsEx WINELIB_NAME_AW(EnumPropsEx) -BOOL32 EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR,ENUMRESLANGPROC32A,LONG); -BOOL32 EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR,ENUMRESLANGPROC32W,LONG); -#define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages) -BOOL32 EnumResourceNames32A(HMODULE32,LPCSTR,ENUMRESNAMEPROC32A,LONG); -BOOL32 EnumResourceNames32W(HMODULE32,LPCWSTR,ENUMRESNAMEPROC32W,LONG); -#define EnumResourceNames WINELIB_NAME_AW(EnumResourceNames) -BOOL32 EnumResourceTypes32A(HMODULE32,ENUMRESTYPEPROC32A,LONG); -BOOL32 EnumResourceTypes32W(HMODULE32,ENUMRESTYPEPROC32W,LONG); -#define EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes) -BOOL32 EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A,DWORD); -BOOL32 EnumSystemCodePages32W(CODEPAGE_ENUMPROC32W,DWORD); -#define EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages) -BOOL32 EnumSystemLocales32A(LOCALE_ENUMPROC32A,DWORD); -BOOL32 EnumSystemLocales32W(LOCALE_ENUMPROC32W,DWORD); -#define EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales) -BOOL32 EnumThreadWindows(DWORD,WNDENUMPROC32,LPARAM); -void ExitProcess(DWORD); -BOOL32 ExitWindowsEx(UINT32,DWORD); -DWORD ExpandEnvironmentStrings32A(LPCSTR,LPSTR,DWORD); -DWORD ExpandEnvironmentStrings32W(LPCWSTR,LPWSTR,DWORD); -#define ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings) -BOOL32 FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD); -BOOL32 FileTimeToLocalFileTime(const FILETIME*,LPFILETIME); -BOOL32 FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME); -HRSRC32 FindResourceEx32A(HINSTANCE32,LPCSTR,LPCSTR,WORD); -HRSRC32 FindResourceEx32W(HINSTANCE32,LPCWSTR,LPCWSTR,WORD); -#define FindResourceEx WINELIB_NAME_AW(FindResourceEx) -BOOL32 FlushFileBuffers(HFILE32); -BOOL32 FreeEnvironmentStrings32A(LPSTR); -BOOL32 FreeEnvironmentStrings32W(LPWSTR); -#define FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings) -UINT32 GetACP(void); -LPCSTR GetCommandLine32A(); -LPCWSTR GetCommandLine32W(); -#define GetCommandLine WINELIB_NAME_AW(GetCommandLine) -BOOL32 GetCommTimeouts(INT32,LPCOMMTIMEOUTS); -BOOL32 GetCPInfo(UINT32,LPCPINFO); -HANDLE32 GetCurrentProcess(void); -DWORD GetCurrentProcessId(void); -HANDLE32 GetCurrentThread(void); -DWORD GetCurrentThreadId(void); -BOOL32 GetDCOrgEx(HDC32,LPPOINT32); -LPSTR GetEnvironmentStrings32A(void); -LPWSTR GetEnvironmentStrings32W(void); -#define GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings) -DWORD GetEnvironmentVariable32A(LPCSTR,LPSTR,DWORD); -DWORD GetEnvironmentVariable32W(LPCWSTR,LPWSTR,DWORD); -#define GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable) -DWORD GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*); -DWORD GetFileSize(HFILE32,LPDWORD); -BOOL32 GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME); -DWORD GetFileType(HFILE32); -DWORD GetFullPathName32A(LPCSTR,DWORD,LPSTR,LPSTR*); -DWORD GetFullPathName32W(LPCWSTR,DWORD,LPWSTR,LPWSTR*); -#define GetFullPathName WINELIB_NAME_AW(GetFullPathName) -VOID GetLocalTime(LPSYSTEMTIME); -DWORD GetLogicalDrives(void); -BOOL32 GetMenuItemInfo32A(HMENU32,UINT32,BOOL32,MENUITEMINFO32A*); -BOOL32 GetMenuItemInfo32W(HMENU32,UINT32,BOOL32,MENUITEMINFO32W*); -#define GetMenuItemInfo WINELIB_NAME_AW(GetMenuItemInfo) -UINT32 GetOEMCP(void); -DWORD GetPriorityClass(HANDLE32); -HANDLE32 GetProcessHeap(void); -DWORD GetShortPathName32A(LPCSTR,LPSTR,DWORD); -DWORD GetShortPathName32W(LPCWSTR,LPWSTR,DWORD); -#define GetShortPathName WINELIB_NAME_AW(GetShortPathName) -HFILE32 GetStdHandle(DWORD); -BOOL32 GetStringTypeEx32A(LCID,DWORD,LPCSTR,INT32,LPWORD); -BOOL32 GetStringTypeEx32W(LCID,DWORD,LPCWSTR,INT32,LPWORD); -#define GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx) -VOID GetSystemInfo(LPSYSTEM_INFO); -BOOL32 GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); -VOID GetSystemTime(LPSYSTEMTIME); -LCID GetThreadLocale(); -INT32 GetThreadPriority(HANDLE32); -DWORD GetWindowThreadProcessId(HWND32,LPDWORD); -VOID GlobalMemoryStatus(LPMEMORYSTATUS); -LPVOID HeapAlloc(HANDLE32,DWORD,DWORD); -DWORD HeapCompact(HANDLE32,DWORD); -HANDLE32 HeapCreate(DWORD,DWORD,DWORD); -BOOL32 HeapDestroy(HANDLE32); -BOOL32 HeapFree(HANDLE32,DWORD,LPVOID); -BOOL32 HeapLock(HANDLE32); -LPVOID HeapReAlloc(HANDLE32,DWORD,LPVOID,DWORD); -DWORD HeapSize(HANDLE32,DWORD,LPVOID); -BOOL32 HeapUnlock(HANDLE32); -BOOL32 HeapValidate(HANDLE32,DWORD,LPVOID); -BOOL32 IsDBCSLeadByteEx(UINT32,BYTE); -BOOL32 IsWindowUnicode(HWND32); -BOOL32 IsValidLocale(DWORD,DWORD); -BOOL32 LocalFileTimeToFileTime(const FILETIME*,LPFILETIME); -BOOL32 LockFile(HFILE32,DWORD,DWORD,DWORD,DWORD); -SEGPTR MapLS(LPVOID); -LPVOID MapSL(SEGPTR); -LPVOID MapViewOfFile(HANDLE32,DWORD,DWORD,DWORD,DWORD); -LPVOID MapViewOfFileEx(HANDLE32,DWORD,DWORD,DWORD,DWORD,LPVOID); -INT32 MessageBoxEx32A(HWND32,LPCSTR,LPCSTR,UINT32,WORD); -INT32 MessageBoxEx32W(HWND32,LPCWSTR,LPCWSTR,UINT32,WORD); -#define MessageBoxEx WINELIB_NAME_AW(MessageBoxEx) -BOOL32 MoveFile32A(LPCSTR,LPCSTR); -BOOL32 MoveFile32W(LPCWSTR,LPCWSTR); -#define MoveFile WINELIB_NAME_AW(MoveFile) -HANDLE32 OpenEvent32A(DWORD,BOOL32,LPCSTR); -HANDLE32 OpenEvent32W(DWORD,BOOL32,LPCWSTR); -#define OpenEvent WINELIB_NAME_AW(OpenEvent) -HANDLE32 OpenFileMapping32A(DWORD,BOOL32,LPCSTR); -HANDLE32 OpenFileMapping32W(DWORD,BOOL32,LPCWSTR); -#define OpenFileMapping WINELIB_NAME_AW(OpenFileMapping) -HANDLE32 OpenMutex32A(DWORD,BOOL32,LPCSTR); -HANDLE32 OpenMutex32W(DWORD,BOOL32,LPCWSTR); -#define OpenMutex WINELIB_NAME_AW(OpenMutex) -HANDLE32 OpenSemaphore32A(DWORD,BOOL32,LPCSTR); -HANDLE32 OpenSemaphore32W(DWORD,BOOL32,LPCWSTR); -#define OpenSemaphore WINELIB_NAME_AW(OpenSemaphore) -DWORD QueryDosDevice32A(LPCSTR,LPSTR,DWORD); -DWORD QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD); -#define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice) -BOOL32 QueryPerformanceCounter(LPLARGE_INTEGER); -BOOL32 ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); -BOOL32 ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); -#define ReadConsole WINELIB_NAME_AW(ReadConsole) -BOOL32 ReadFile(HFILE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED); -DWORD RegCreateKeyEx32A(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM, - LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD); -DWORD RegCreateKeyEx32W(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM, - LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD); -#define RegCreateKeyEx WINELIB_NAME_AW(RegCreateKeyEx) -DWORD RegEnumKeyEx32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,LPDWORD,LPFILETIME); -DWORD RegEnumKeyEx32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,LPDWORD,LPFILETIME); -#define RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx) -DWORD RegOpenKeyEx32W(HKEY,LPCWSTR,DWORD,REGSAM,LPHKEY); -DWORD RegOpenKeyEx32A(HKEY,LPCSTR,DWORD,REGSAM,LPHKEY); -#define RegOpenKeyEx WINELIB_NAME_AW(RegOpenKeyEx) -DWORD RegQueryInfoKey32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD, - LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPFILETIME); -DWORD RegQueryInfoKey32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD, - LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPFILETIME); -#define RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey) -BOOL32 ReleaseSemaphore(HANDLE32,LONG,LPLONG); -VOID RtlFillMemory(LPVOID,UINT32,UINT32); -VOID RtlMoveMemory(LPVOID,LPCVOID,UINT32); -VOID RtlZeroMemory(LPVOID,UINT32); -DWORD SearchPath32A(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*); -DWORD SearchPath32W(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*); -#define SearchPath WINELIB_NAME(SearchPath) -BOOL32 SetBrushOrgEx(HDC32,INT32,INT32,LPPOINT32); -BOOL32 SetCommMask(INT32,DWORD); -BOOL32 SetCommTimeouts(INT32,LPCOMMTIMEOUTS); -BOOL32 SetConsoleTitle32A(LPCSTR); -BOOL32 SetConsoleTitle32W(LPCWSTR); -#define SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle) -BOOL32 SetEndOfFile(HFILE32); -BOOL32 SetEnvironmentVariable32A(LPCSTR,LPCSTR); -BOOL32 SetEnvironmentVariable32W(LPCWSTR,LPCWSTR); -#define SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable) -DWORD SetFilePointer(HFILE32,LONG,LPLONG,DWORD); -BOOL32 SetFileTime(HFILE32,const FILETIME*,const FILETIME*,const FILETIME*); -VOID SetLastErrorEx(DWORD,DWORD); -BOOL32 SetPriorityClass(HANDLE32,DWORD); -BOOL32 SetStdHandle(DWORD,HANDLE32); -BOOL32 SetSystemPowerState(BOOL32,BOOL32); -BOOL32 SetSystemTime(const SYSTEMTIME*); -BOOL32 SetThreadPriority(HANDLE32,INT32); -BOOL32 SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION); -VOID Sleep(DWORD); -BOOL32 SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME); -BOOL32 TrackPopupMenuEx(HMENU32,UINT32,INT32,INT32,HWND32,LPTPMPARAMS); -DWORD TlsAlloc(void); -BOOL32 TlsFree(DWORD); -LPVOID TlsGetValue(DWORD); -BOOL32 TlsSetValue(DWORD,LPVOID); -VOID UnMapLS(SEGPTR); -BOOL32 UnlockFile(HFILE32,DWORD,DWORD,DWORD,DWORD); -BOOL32 UnmapViewOfFile(LPVOID); -LPVOID VirtualAlloc(LPVOID,DWORD,DWORD,DWORD); -BOOL32 VirtualFree(LPVOID,DWORD,DWORD); -BOOL32 VirtualLock(LPVOID,DWORD); -BOOL32 VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD); -BOOL32 VirtualProtectEx(HANDLE32,LPVOID,DWORD,DWORD,LPDWORD); -BOOL32 VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); -BOOL32 VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); -BOOL32 VirtualUnlock(LPVOID,DWORD); -BOOL32 WriteConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); -BOOL32 WriteConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); -#define WriteConsole WINELIB_NAME_AW(WriteConsole) -BOOL32 WriteFile(HFILE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED); + +BOOL32 WINAPI AreFileApisANSI(void); +BOOL32 WINAPI Beep(DWORD,DWORD); +BOOL32 WINAPI ClearCommError(INT32,LPDWORD,LPCOMSTAT); +BOOL32 WINAPI CloseHandle(HANDLE32); +BOOL32 WINAPI CopyFile32A(LPCSTR,LPCSTR,BOOL32); +BOOL32 WINAPI CopyFile32W(LPCWSTR,LPCWSTR,BOOL32); +#define CopyFile WINELIB_NAME_AW(CopyFile) +INT32 WINAPI CompareFileTime(LPFILETIME,LPFILETIME); +HANDLE32 WINAPI CreateEvent32A(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCSTR); +HANDLE32 WINAPI CreateEvent32W(LPSECURITY_ATTRIBUTES,BOOL32,BOOL32,LPCWSTR); +#define CreateEvent WINELIB_NAME_AW(CreateEvent) +HFILE32 WINAPI CreateFile32A(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES, + DWORD,DWORD,HANDLE32); +HFILE32 WINAPI CreateFile32W(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES, + DWORD,DWORD,HANDLE32); +#define CreateFile WINELIB_NAME_AW(CreateFile) +HANDLE32 WINAPI CreateFileMapping32A(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD, + DWORD,DWORD,LPCSTR); +HANDLE32 WINAPI CreateFileMapping32W(HANDLE32,LPSECURITY_ATTRIBUTES,DWORD, + DWORD,DWORD,LPCWSTR); +#define CreateFileMapping WINELIB_NAME_AW(CreateFileMapping) +HANDLE32 WINAPI CreateMutex32A(LPSECURITY_ATTRIBUTES,BOOL32,LPCSTR); +HANDLE32 WINAPI CreateMutex32W(LPSECURITY_ATTRIBUTES,BOOL32,LPCWSTR); +#define CreateMutex WINELIB_NAME_AW(CreateMutex) +HANDLE32 WINAPI CreateSemaphore32A(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR); +HANDLE32 WINAPI CreateSemaphore32W(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR); +#define CreateSemaphore WINELIB_NAME_AW(CreateSemaphore) +BOOL32 WINAPI DisableThreadLibraryCalls(HMODULE32); +BOOL32 WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME); +INT32 WINAPI EnumPropsEx32A(HWND32,PROPENUMPROCEX32A,LPARAM); +INT32 WINAPI EnumPropsEx32W(HWND32,PROPENUMPROCEX32W,LPARAM); +#define EnumPropsEx WINELIB_NAME_AW(EnumPropsEx) +BOOL32 WINAPI EnumResourceLanguages32A(HMODULE32,LPCSTR,LPCSTR, + ENUMRESLANGPROC32A,LONG); +BOOL32 WINAPI EnumResourceLanguages32W(HMODULE32,LPCWSTR,LPCWSTR, + ENUMRESLANGPROC32W,LONG); +#define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages) +BOOL32 WINAPI EnumResourceNames32A(HMODULE32,LPCSTR,ENUMRESNAMEPROC32A, + LONG); +BOOL32 WINAPI EnumResourceNames32W(HMODULE32,LPCWSTR,ENUMRESNAMEPROC32W, + LONG); +#define EnumResourceNames WINELIB_NAME_AW(EnumResourceNames) +BOOL32 WINAPI EnumResourceTypes32A(HMODULE32,ENUMRESTYPEPROC32A,LONG); +BOOL32 WINAPI EnumResourceTypes32W(HMODULE32,ENUMRESTYPEPROC32W,LONG); +#define EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes) +BOOL32 WINAPI EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A,DWORD); +BOOL32 WINAPI EnumSystemCodePages32W(CODEPAGE_ENUMPROC32W,DWORD); +#define EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages) +BOOL32 WINAPI EnumSystemLocales32A(LOCALE_ENUMPROC32A,DWORD); +BOOL32 WINAPI EnumSystemLocales32W(LOCALE_ENUMPROC32W,DWORD); +#define EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales) +BOOL32 WINAPI EnumThreadWindows(DWORD,WNDENUMPROC32,LPARAM); +void WINAPI ExitProcess(DWORD); +BOOL32 WINAPI ExitWindowsEx(UINT32,DWORD); +DWORD WINAPI ExpandEnvironmentStrings32A(LPCSTR,LPSTR,DWORD); +DWORD WINAPI ExpandEnvironmentStrings32W(LPCWSTR,LPWSTR,DWORD); +#define ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings) +BOOL32 WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD); +BOOL32 WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME); +BOOL32 WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME); +HRSRC32 WINAPI FindResourceEx32A(HINSTANCE32,LPCSTR,LPCSTR,WORD); +HRSRC32 WINAPI FindResourceEx32W(HINSTANCE32,LPCWSTR,LPCWSTR,WORD); +#define FindResourceEx WINELIB_NAME_AW(FindResourceEx) +BOOL32 WINAPI FlushFileBuffers(HFILE32); +BOOL32 WINAPI FreeEnvironmentStrings32A(LPSTR); +BOOL32 WINAPI FreeEnvironmentStrings32W(LPWSTR); +#define FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings) +UINT32 WINAPI GetACP(void); +LPCSTR WINAPI GetCommandLine32A(); +LPCWSTR WINAPI GetCommandLine32W(); +#define GetCommandLine WINELIB_NAME_AW(GetCommandLine) +BOOL32 WINAPI GetCommTimeouts(INT32,LPCOMMTIMEOUTS); +BOOL32 WINAPI GetComputerName32A(LPSTR,LPDWORD); +BOOL32 WINAPI GetComputerName32W(LPWSTR,LPDWORD); +#define GetComputerName WINELIB_NAME_AW(GetComputerName) +BOOL32 WINAPI GetCPInfo(UINT32,LPCPINFO); +HANDLE32 WINAPI GetCurrentProcess(void); +DWORD WINAPI GetCurrentProcessId(void); +HANDLE32 WINAPI GetCurrentThread(void); +DWORD WINAPI GetCurrentThreadId(void); +BOOL32 WINAPI GetDCOrgEx(HDC32,LPPOINT32); +LPSTR WINAPI GetEnvironmentStrings32A(void); +LPWSTR WINAPI GetEnvironmentStrings32W(void); +#define GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings) +DWORD WINAPI GetEnvironmentVariable32A(LPCSTR,LPSTR,DWORD); +DWORD WINAPI GetEnvironmentVariable32W(LPCWSTR,LPWSTR,DWORD); +#define GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable) +DWORD WINAPI GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*); +DWORD WINAPI GetFileSize(HFILE32,LPDWORD); +BOOL32 WINAPI GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME); +DWORD WINAPI GetFileType(HFILE32); +DWORD WINAPI GetFullPathName32A(LPCSTR,DWORD,LPSTR,LPSTR*); +DWORD WINAPI GetFullPathName32W(LPCWSTR,DWORD,LPWSTR,LPWSTR*); +#define GetFullPathName WINELIB_NAME_AW(GetFullPathName) +VOID WINAPI GetLocalTime(LPSYSTEMTIME); +DWORD WINAPI GetLogicalDrives(void); +BOOL32 WINAPI GetMenuItemInfo32A(HMENU32,UINT32,BOOL32,MENUITEMINFO32A*); +BOOL32 WINAPI GetMenuItemInfo32W(HMENU32,UINT32,BOOL32,MENUITEMINFO32W*); +#define GetMenuItemInfo WINELIB_NAME_AW(GetMenuItemInfo) +UINT32 WINAPI GetOEMCP(void); +DWORD WINAPI GetPriorityClass(HANDLE32); +HANDLE32 WINAPI GetProcessHeap(void); +DWORD WINAPI GetShortPathName32A(LPCSTR,LPSTR,DWORD); +DWORD WINAPI GetShortPathName32W(LPCWSTR,LPWSTR,DWORD); +#define GetShortPathName WINELIB_NAME_AW(GetShortPathName) +HFILE32 WINAPI GetStdHandle(DWORD); +BOOL32 WINAPI GetStringTypeEx32A(LCID,DWORD,LPCSTR,INT32,LPWORD); +BOOL32 WINAPI GetStringTypeEx32W(LCID,DWORD,LPCWSTR,INT32,LPWORD); +#define GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx) +VOID WINAPI GetSystemInfo(LPSYSTEM_INFO); +BOOL32 WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); +VOID WINAPI GetSystemTime(LPSYSTEMTIME); +BOOL32 WINAPI GetTextExtentExPoint32A(HDC32,LPCSTR,INT32,INT32, + LPINT32,LPINT32,LPSIZE32); +BOOL32 WINAPI GetTextExtentExPoint32W(HDC32,LPCWSTR,INT32,INT32, + LPINT32,LPINT32,LPSIZE32); +#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint) +LCID WINAPI GetThreadLocale(); +INT32 WINAPI GetThreadPriority(HANDLE32); +BOOL32 WINAPI GetUserName32A(LPSTR,LPDWORD); +BOOL32 WINAPI GetUserName32W(LPWSTR,LPDWORD); +#define GetUserName WINELIB_NAME_AW(GetUserName) +DWORD WINAPI GetWindowThreadProcessId(HWND32,LPDWORD); +VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS); +LPVOID WINAPI HeapAlloc(HANDLE32,DWORD,DWORD); +DWORD WINAPI HeapCompact(HANDLE32,DWORD); +HANDLE32 WINAPI HeapCreate(DWORD,DWORD,DWORD); +BOOL32 WINAPI HeapDestroy(HANDLE32); +BOOL32 WINAPI HeapFree(HANDLE32,DWORD,LPVOID); +BOOL32 WINAPI HeapLock(HANDLE32); +LPVOID WINAPI HeapReAlloc(HANDLE32,DWORD,LPVOID,DWORD); +DWORD WINAPI HeapSize(HANDLE32,DWORD,LPVOID); +BOOL32 WINAPI HeapUnlock(HANDLE32); +BOOL32 WINAPI HeapValidate(HANDLE32,DWORD,LPVOID); +BOOL32 WINAPI IsDBCSLeadByteEx(UINT32,BYTE); +BOOL32 WINAPI IsWindowUnicode(HWND32); +BOOL32 WINAPI IsValidLocale(DWORD,DWORD); +BOOL32 WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME); +BOOL32 WINAPI LockFile(HFILE32,DWORD,DWORD,DWORD,DWORD); +SEGPTR WINAPI MapLS(LPVOID); +LPVOID WINAPI MapSL(SEGPTR); +LPVOID WINAPI MapViewOfFile(HANDLE32,DWORD,DWORD,DWORD,DWORD); +LPVOID WINAPI MapViewOfFileEx(HANDLE32,DWORD,DWORD,DWORD,DWORD,LPVOID); +INT32 WINAPI MessageBoxEx32A(HWND32,LPCSTR,LPCSTR,UINT32,WORD); +INT32 WINAPI MessageBoxEx32W(HWND32,LPCWSTR,LPCWSTR,UINT32,WORD); +#define MessageBoxEx WINELIB_NAME_AW(MessageBoxEx) +BOOL32 WINAPI MoveFile32A(LPCSTR,LPCSTR); +BOOL32 WINAPI MoveFile32W(LPCWSTR,LPCWSTR); +#define MoveFile WINELIB_NAME_AW(MoveFile) +HANDLE32 WINAPI OpenEvent32A(DWORD,BOOL32,LPCSTR); +HANDLE32 WINAPI OpenEvent32W(DWORD,BOOL32,LPCWSTR); +#define OpenEvent WINELIB_NAME_AW(OpenEvent) +HANDLE32 WINAPI OpenFileMapping32A(DWORD,BOOL32,LPCSTR); +HANDLE32 WINAPI OpenFileMapping32W(DWORD,BOOL32,LPCWSTR); +#define OpenFileMapping WINELIB_NAME_AW(OpenFileMapping) +HANDLE32 WINAPI OpenMutex32A(DWORD,BOOL32,LPCSTR); +HANDLE32 WINAPI OpenMutex32W(DWORD,BOOL32,LPCWSTR); +#define OpenMutex WINELIB_NAME_AW(OpenMutex) +HANDLE32 WINAPI OpenSemaphore32A(DWORD,BOOL32,LPCSTR); +HANDLE32 WINAPI OpenSemaphore32W(DWORD,BOOL32,LPCWSTR); +#define OpenSemaphore WINELIB_NAME_AW(OpenSemaphore) +DWORD WINAPI QueryDosDevice32A(LPCSTR,LPSTR,DWORD); +DWORD WINAPI QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD); +#define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice) +BOOL32 WINAPI QueryPerformanceCounter(LPLARGE_INTEGER); +BOOL32 WINAPI ReadConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); +BOOL32 WINAPI ReadConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); +#define ReadConsole WINELIB_NAME_AW(ReadConsole) +BOOL32 WINAPI ReadFile(HFILE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED); +DWORD WINAPI RegCreateKeyEx32A(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM, + LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD); +DWORD WINAPI RegCreateKeyEx32W(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM, + LPSECURITY_ATTRIBUTES,LPHKEY,LPDWORD); +#define RegCreateKeyEx WINELIB_NAME_AW(RegCreateKeyEx) +DWORD WINAPI RegEnumKeyEx32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR, + LPDWORD,LPFILETIME); +DWORD WINAPI RegEnumKeyEx32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR, + LPDWORD,LPFILETIME); +#define RegEnumKeyEx WINELIB_NAME_AW(RegEnumKeyEx) +DWORD WINAPI RegOpenKeyEx32W(HKEY,LPCWSTR,DWORD,REGSAM,LPHKEY); +DWORD WINAPI RegOpenKeyEx32A(HKEY,LPCSTR,DWORD,REGSAM,LPHKEY); +#define RegOpenKeyEx WINELIB_NAME_AW(RegOpenKeyEx) +DWORD WINAPI RegQueryInfoKey32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD, + LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD, + LPDWORD,LPFILETIME); +DWORD WINAPI RegQueryInfoKey32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD, + LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD, + LPDWORD,LPFILETIME); +#define RegQueryInfoKey WINELIB_NAME_AW(RegQueryInfoKey) +BOOL32 WINAPI ReleaseSemaphore(HANDLE32,LONG,LPLONG); +VOID WINAPI RtlFillMemory(LPVOID,UINT32,UINT32); +VOID WINAPI RtlMoveMemory(LPVOID,LPCVOID,UINT32); +VOID WINAPI RtlZeroMemory(LPVOID,UINT32); +DWORD WINAPI SearchPath32A(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*); +DWORD WINAPI SearchPath32W(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*); +#define SearchPath WINELIB_NAME(SearchPath) +BOOL32 WINAPI SetBrushOrgEx(HDC32,INT32,INT32,LPPOINT32); +BOOL32 WINAPI SetCommMask(INT32,DWORD); +BOOL32 WINAPI SetCommTimeouts(INT32,LPCOMMTIMEOUTS); +BOOL32 WINAPI SetConsoleTitle32A(LPCSTR); +BOOL32 WINAPI SetConsoleTitle32W(LPCWSTR); +#define SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle) +BOOL32 WINAPI SetEndOfFile(HFILE32); +BOOL32 WINAPI SetEnvironmentVariable32A(LPCSTR,LPCSTR); +BOOL32 WINAPI SetEnvironmentVariable32W(LPCWSTR,LPCWSTR); +#define SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable) +VOID WINAPI SetFileApisToANSI(void); +VOID WINAPI SetFileApisToOEM(void); +DWORD WINAPI SetFilePointer(HFILE32,LONG,LPLONG,DWORD); +BOOL32 WINAPI SetFileTime(HFILE32,const FILETIME*,const FILETIME*, + const FILETIME*); +VOID WINAPI SetLastErrorEx(DWORD,DWORD); +BOOL32 WINAPI SetMenuItemInfo32A(HMENU32,UINT32,BOOL32,const MENUITEMINFO32A*); +BOOL32 WINAPI SetMenuItemInfo32W(HMENU32,UINT32,BOOL32,const MENUITEMINFO32W*); +#define SetMenuItemInfo WINELIB_NAME_AW(SetMenuItemInfo) +BOOL32 WINAPI SetPriorityClass(HANDLE32,DWORD); +BOOL32 WINAPI SetStdHandle(DWORD,HANDLE32); +BOOL32 WINAPI SetSystemPowerState(BOOL32,BOOL32); +BOOL32 WINAPI SetSystemTime(const SYSTEMTIME*); +BOOL32 WINAPI SetThreadPriority(HANDLE32,INT32); +BOOL32 WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION); +VOID WINAPI Sleep(DWORD); +BOOL32 WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME); +BOOL32 WINAPI TrackPopupMenuEx(HMENU32,UINT32,INT32,INT32,HWND32, + LPTPMPARAMS); +DWORD WINAPI TlsAlloc(void); +BOOL32 WINAPI TlsFree(DWORD); +LPVOID WINAPI TlsGetValue(DWORD); +BOOL32 WINAPI TlsSetValue(DWORD,LPVOID); +VOID WINAPI UnMapLS(SEGPTR); +BOOL32 WINAPI UnlockFile(HFILE32,DWORD,DWORD,DWORD,DWORD); +BOOL32 WINAPI UnmapViewOfFile(LPVOID); +LPVOID WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD); +BOOL32 WINAPI VirtualFree(LPVOID,DWORD,DWORD); +BOOL32 WINAPI VirtualLock(LPVOID,DWORD); +BOOL32 WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD); +BOOL32 WINAPI VirtualProtectEx(HANDLE32,LPVOID,DWORD,DWORD,LPDWORD); +BOOL32 WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); +BOOL32 WINAPI VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); +BOOL32 WINAPI VirtualUnlock(LPVOID,DWORD); +BOOL32 WINAPI WriteConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); +BOOL32 WINAPI WriteConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID); +#define WriteConsole WINELIB_NAME_AW(WriteConsole) +BOOL32 WINAPI WriteFile(HFILE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED); /* Declarations for functions that are the same in Win16 and Win32 */ -VOID CloseSound(VOID); -DWORD GetDialogBaseUnits(void); -VOID GetKeyboardState(LPBYTE); -DWORD GetLastError(void); -DWORD GetMenuCheckMarkDimensions(void); -LONG GetMessageExtraInfo(void); -DWORD GetMessagePos(void); -LONG GetMessageTime(void); -DWORD GetTickCount(void); -ATOM GlobalDeleteAtom(ATOM); -VOID LZDone(void); -DWORD OemKeyScan(WORD); -DWORD RegCloseKey(HKEY); -DWORD RegFlushKey(HKEY); -VOID ReleaseCapture(void); -VOID SetKeyboardState(LPBYTE); -VOID SetLastError(DWORD); -VOID WaitMessage(VOID); +VOID WINAPI CloseSound(VOID); +VOID WINAPI EndMenu(void); +DWORD WINAPI GetDialogBaseUnits(void); +VOID WINAPI GetKeyboardState(LPBYTE); +DWORD WINAPI GetLastError(void); +DWORD WINAPI GetMenuCheckMarkDimensions(void); +LONG WINAPI GetMessageExtraInfo(void); +DWORD WINAPI GetMessagePos(void); +LONG WINAPI GetMessageTime(void); +DWORD WINAPI GetTickCount(void); +ATOM WINAPI GlobalDeleteAtom(ATOM); +VOID WINAPI LZDone(void); +DWORD WINAPI OemKeyScan(WORD); +DWORD WINAPI RegCloseKey(HKEY); +DWORD WINAPI RegFlushKey(HKEY); +VOID WINAPI ReleaseCapture(void); +VOID WINAPI SetKeyboardState(LPBYTE); +VOID WINAPI SetLastError(DWORD); +VOID WINAPI WaitMessage(VOID); /* Declarations for functions that change between Win16 and Win32 */ -INT16 AccessResource16(HINSTANCE16,HRSRC16); -INT32 AccessResource32(HINSTANCE32,HRSRC32); -#define AccessResource WINELIB_NAME(AccessResource) -ATOM AddAtom16(SEGPTR); -ATOM AddAtom32A(LPCSTR); -ATOM AddAtom32W(LPCWSTR); -#define AddAtom WINELIB_NAME_AW(AddAtom) -INT16 AddFontResource16(LPCSTR); -INT32 AddFontResource32A(LPCSTR); -INT32 AddFontResource32W(LPCWSTR); -#define AddFontResource WINELIB_NAME_AW(AddFontResource) -BOOL16 AdjustWindowRect16(LPRECT16,DWORD,BOOL16); -BOOL32 AdjustWindowRect32(LPRECT32,DWORD,BOOL32); -#define AdjustWindowRect WINELIB_NAME(AdjustWindowRect) -BOOL16 AdjustWindowRectEx16(LPRECT16,DWORD,BOOL16,DWORD); -BOOL32 AdjustWindowRectEx32(LPRECT32,DWORD,BOOL32,DWORD); -#define AdjustWindowRectEx WINELIB_NAME(AdjustWindowRectEx) -HGLOBAL16 AllocResource16(HINSTANCE16,HRSRC16,DWORD); -HGLOBAL32 AllocResource32(HINSTANCE32,HRSRC32,DWORD); -#define AllocResource WINELIB_NAME(AllocResource) -BOOL16 AnimatePalette16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY); -BOOL32 AnimatePalette32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY); -#define AnimatePalette WINELIB_NAME(AnimatePalette) -SEGPTR AnsiLower16(SEGPTR); -#define AnsiLower32A CharLower32A -#define AnsiLower32W CharLower32W -#define AnsiLower WINELIB_NAME_AW(AnsiLower) -UINT16 AnsiLowerBuff16(LPSTR,UINT16); -#define AnsiLowerBuff32A CharLowerBuff32A -#define AnsiLowerBuff32W CharLowerBuff32W -#define AnsiLowerBuff WINELIB_NAME_AW(AnsiLowerBuff) -SEGPTR AnsiNext16(SEGPTR); -#define AnsiNext32A CharNext32A -#define AnsiNext32W CharNext32W -#define AnsiNext WINELIB_NAME_AW(AnsiNext) -SEGPTR AnsiPrev16(SEGPTR,SEGPTR); -#define AnsiPrev32A CharPrev32A -#define AnsiPrev32W CharPrev32W -#define AnsiPrev WINELIB_NAME_AW(AnsiPrev) -INT16 AnsiToOem16(LPCSTR,LPSTR); -#define AnsiToOem32A CharToOem32A -#define AnsiToOem32W CharToOem32W -#define AnsiToOem WINELIB_NAME_AW(AnsiToOem) -VOID AnsiToOemBuff16(LPCSTR,LPSTR,UINT16); -#define AnsiToOemBuff32A CharToOemBuff32A -#define AnsiToOemBuff32W CharToOemBuff32W -#define AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff) -SEGPTR AnsiUpper16(SEGPTR); -#define AnsiUpper32A CharUpper32A -#define AnsiUpper32W CharUpper32W -#define AnsiUpper WINELIB_NAME_AW(AnsiUpper) -UINT16 AnsiUpperBuff16(LPSTR,UINT16); -#define AnsiUpperBuff32A CharUpperBuff32A -#define AnsiUpperBuff32W CharUpperBuff32W -#define AnsiUpperBuff WINELIB_NAME_AW(AnsiUpperBuff) -BOOL16 AnyPopup16(void); -BOOL32 AnyPopup32(void); -#define AnyPopup WINELIB_NAME(AnyPopup) -BOOL16 AppendMenu16(HMENU16,UINT16,UINT16,SEGPTR); -BOOL32 AppendMenu32A(HMENU32,UINT32,UINT32,LPCSTR); -BOOL32 AppendMenu32W(HMENU32,UINT32,UINT32,LPCWSTR); -#define AppendMenu WINELIB_NAME_AW(AppendMenu) -BOOL16 Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16); -BOOL32 Arc32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32); -#define Arc WINELIB_NAME(Arc) -UINT16 ArrangeIconicWindows16(HWND16); -UINT32 ArrangeIconicWindows32(HWND32); -#define ArrangeIconicWindows WINELIB_NAME(ArrangeIconicWindows) -HDWP16 BeginDeferWindowPos16(INT16); -HDWP32 BeginDeferWindowPos32(INT32); -#define BeginDeferWindowPos WINELIB_NAME(BeginDeferWindowPos) -HDC16 BeginPaint16(HWND16,LPPAINTSTRUCT16); -HDC32 BeginPaint32(HWND32,LPPAINTSTRUCT32); -#define BeginPaint WINELIB_NAME(BeginPaint) -BOOL16 BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD); -BOOL32 BitBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,DWORD); -#define BitBlt WINELIB_NAME(BitBlt) -BOOL16 BringWindowToTop16(HWND16); -BOOL32 BringWindowToTop32(HWND32); -#define BringWindowToTop WINELIB_NAME(BringWindowToTop) -BOOL16 BuildCommDCB16(LPCSTR,LPDCB16); -BOOL32 BuildCommDCB32A(LPCSTR,LPDCB32); -BOOL32 BuildCommDCB32W(LPCWSTR,LPDCB32); -#define BuildCommDCB WINELIB_NAME_AW(BuildCommDCB) -BOOL32 BuildCommDCBAndTimeouts32A(LPCSTR,LPDCB32,LPCOMMTIMEOUTS); -BOOL32 BuildCommDCBAndTimeouts32W(LPCWSTR,LPDCB32,LPCOMMTIMEOUTS); -#define BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts) -BOOL16 CallMsgFilter16(SEGPTR,INT16); -BOOL32 CallMsgFilter32A(LPMSG32,INT32); -BOOL32 CallMsgFilter32W(LPMSG32,INT32); -#define CallMsgFilter WINELIB_NAME_AW(CallMsgFilter) -LRESULT CallNextHookEx16(HHOOK,INT16,WPARAM16,LPARAM); -LRESULT CallNextHookEx32(HHOOK,INT32,WPARAM32,LPARAM); -#define CallNextHookEx WINELIB_NAME(CallNextHookEx) -LRESULT CallWindowProc16(WNDPROC16,HWND16,UINT16,WPARAM16,LPARAM); -LRESULT CallWindowProc32A(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM); -LRESULT CallWindowProc32W(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM); -#define CallWindowProc WINELIB_NAME_AW(CallWindowProc) -BOOL16 ChangeClipboardChain16(HWND16,HWND16); -BOOL32 ChangeClipboardChain32(HWND32,HWND32); -#define ChangeClipboardChain WINELIB_NAME(ChangeClipboardChain) -BOOL16 ChangeMenu16(HMENU16,UINT16,SEGPTR,UINT16,UINT16); -BOOL32 ChangeMenu32A(HMENU32,UINT32,LPCSTR,UINT32,UINT32); -BOOL32 ChangeMenu32W(HMENU32,UINT32,LPCWSTR,UINT32,UINT32); -#define ChangeMenu WINELIB_NAME_AW(ChangeMenu) -LPSTR CharLower32A(LPSTR); -LPWSTR CharLower32W(LPWSTR); -#define CharLower WINELIB_NAME_AW(CharLower) -DWORD CharLowerBuff32A(LPSTR,DWORD); -DWORD CharLowerBuff32W(LPWSTR,DWORD); -#define CharLowerBuff WINELIB_NAME_AW(CharLowerBuff) -LPSTR CharNext32A(LPCSTR); -LPWSTR CharNext32W(LPCWSTR); -#define CharNext WINELIB_NAME_AW(CharNext) -LPSTR CharNextEx32A(WORD,LPCSTR,DWORD); -LPWSTR CharNextEx32W(WORD,LPCWSTR,DWORD); -#define CharNextEx WINELIB_NAME_AW(CharNextEx) -LPSTR CharPrev32A(LPCSTR,LPCSTR); -LPWSTR CharPrev32W(LPCWSTR,LPCWSTR); -#define CharPrev WINELIB_NAME_AW(CharPrev) -LPSTR CharPrevEx32A(WORD,LPCSTR,LPCSTR,DWORD); -LPWSTR CharPrevEx32W(WORD,LPCWSTR,LPCWSTR,DWORD); -#define CharPrevEx WINELIB_NAME_AW(CharPrevEx) -LPSTR CharUpper32A(LPSTR); -LPWSTR CharUpper32W(LPWSTR); -#define CharUpper WINELIB_NAME_AW(CharUpper) -DWORD CharUpperBuff32A(LPSTR,DWORD); -DWORD CharUpperBuff32W(LPWSTR,DWORD); -#define CharUpperBuff WINELIB_NAME_AW(CharUpperBuff) -BOOL32 CharToOem32A(LPCSTR,LPSTR); -BOOL32 CharToOem32W(LPCWSTR,LPSTR); -#define CharToOem WINELIB_NAME_AW(CharToOem) -BOOL32 CharToOemBuff32A(LPCSTR,LPSTR,DWORD); -BOOL32 CharToOemBuff32W(LPCWSTR,LPSTR,DWORD); -#define CharToOemBuff WINELIB_NAME_AW(CharToOemBuff) -BOOL16 CheckDlgButton16(HWND16,INT16,UINT16); -BOOL32 CheckDlgButton32(HWND32,INT32,UINT32); -#define CheckDlgButton WINELIB_NAME(CheckDlgButton) -BOOL16 CheckMenuItem16(HMENU16,UINT16,UINT16); -DWORD CheckMenuItem32(HMENU32,UINT32,UINT32); -#define CheckMenuItem WINELIB_NAME(CheckMenuItem) -BOOL16 CheckRadioButton16(HWND16,UINT16,UINT16,UINT16); -BOOL32 CheckRadioButton32(HWND32,UINT32,UINT32,UINT32); -#define CheckRadioButton WINELIB_NAME(CheckRadioButton) -HWND16 ChildWindowFromPoint16(HWND16,POINT16); -HWND32 ChildWindowFromPoint32(HWND32,POINT32); -#define ChildWindowFromPoint WINELIB_NAME(ChildWindowFromPoint) -BOOL16 Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16); -BOOL32 Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32); -#define Chord WINELIB_NAME(Chord) -INT16 ClearCommBreak16(INT16); -BOOL32 ClearCommBreak32(INT32); -#define ClearCommBreak WINELIB_NAME(ClearCommBreak) -BOOL16 ClientToScreen16(HWND16,LPPOINT16); -BOOL32 ClientToScreen32(HWND32,LPPOINT32); -#define ClientToScreen WINELIB_NAME(ClientToScreen) -BOOL16 ClipCursor16(const RECT16*); -BOOL32 ClipCursor32(const RECT32*); -#define ClipCursor WINELIB_NAME(ClipCursor) -BOOL16 CloseClipboard16(void); -BOOL32 CloseClipboard32(void); -#define CloseClipboard WINELIB_NAME(CloseClipboard) -HMETAFILE16 CloseMetaFile16(HDC16); -HMETAFILE32 CloseMetaFile32(HDC32); -#define CloseMetaFile WINELIB_NAME(CloseMetaFile) -BOOL16 CloseWindow16(HWND16); -BOOL32 CloseWindow32(HWND32); -#define CloseWindow WINELIB_NAME(CloseWindow) -INT16 CombineRgn16(HRGN16,HRGN16,HRGN16,INT16); -INT32 CombineRgn32(HRGN32,HRGN32,HRGN32,INT32); -#define CombineRgn WINELIB_NAME(CombineRgn) -UINT16 CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD); -UINT32 CompareString32A(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD); -UINT32 CompareString32W(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD); -#define CompareString WINELIB_NAME_AW(CompareString) -HCURSOR16 CopyCursor16(HINSTANCE16,HCURSOR16); -#define CopyCursor32(cur) ((HCURSOR32)CopyIcon32((HICON32)(cur))) -#define CopyCursor WINELIB_NAME(CopyCursor) -HICON16 CopyIcon16(HINSTANCE16,HICON16); -HICON32 CopyIcon32(HICON32); -#define CopyIcon WINELIB_NAME(CopyIcon) -LONG CopyLZFile16(HFILE16,HFILE16); -LONG CopyLZFile32(HFILE32,HFILE32); -#define CopyLZFile WINELIB_NAME(CopyLZFile) -HMETAFILE16 CopyMetaFile16(HMETAFILE16,LPCSTR); -HMETAFILE32 CopyMetaFile32A(HMETAFILE32,LPCSTR); -HMETAFILE32 CopyMetaFile32W(HMETAFILE32,LPCWSTR); -#define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile) -BOOL16 CopyRect16(RECT16*,const RECT16*); -BOOL32 CopyRect32(RECT32*,const RECT32*); -#define CopyRect WINELIB_NAME(CopyRect) -INT16 CountClipboardFormats16(void); -INT32 CountClipboardFormats32(void); -#define CountClipboardFormats WINELIB_NAME(CountClipboardFormats) -INT16 CountVoiceNotes16(INT16); -DWORD CountVoiceNotes32(DWORD); -#define CountVoiceNotes WINELIB_NAME(CountVoiceNotes) -HBITMAP16 CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID); -HBITMAP32 CreateBitmap32(INT32,INT32,UINT32,UINT32,LPCVOID); -#define CreateBitmap WINELIB_NAME(CreateBitmap) -HBITMAP16 CreateBitmapIndirect16(const BITMAP16*); -HBITMAP32 CreateBitmapIndirect32(const BITMAP32*); -#define CreateBitmapIndirect WINELIB_NAME(CreateBitmapIndirect) -HBRUSH16 CreateBrushIndirect16(const LOGBRUSH16*); -HBRUSH32 CreateBrushIndirect32(const LOGBRUSH32*); -#define CreateBrushIndirect WINELIB_NAME(CreateBrushIndirect) -VOID CreateCaret16(HWND16,HBITMAP16,INT16,INT16); -BOOL32 CreateCaret32(HWND32,HBITMAP32,INT32,INT32); -#define CreateCaret WINELIB_NAME(CreateCaret) -HBITMAP16 CreateCompatibleBitmap16(HDC16,INT16,INT16); -HBITMAP32 CreateCompatibleBitmap32(HDC32,INT32,INT32); -#define CreateCompatibleBitmap WINELIB_NAME(CreateCompatibleBitmap) -HDC16 CreateCompatibleDC16(HDC16); -HDC32 CreateCompatibleDC32(HDC32); -#define CreateCompatibleDC WINELIB_NAME(CreateCompatibleDC) -HCURSOR16 CreateCursor16(HINSTANCE16,INT16,INT16,INT16,INT16,LPCVOID,LPCVOID); -HCURSOR32 CreateCursor32(HINSTANCE32,INT32,INT32,INT32,INT32,LPCVOID,LPCVOID); -#define CreateCursor WINELIB_NAME(CreateCursor) -HDC16 CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*); -HDC32 CreateDC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*); -HDC32 CreateDC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*); -#define CreateDC WINELIB_NAME_AW(CreateDC) -HWND16 CreateDialog16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16); -#define CreateDialog32A(inst,ptr,hwnd,dlg) \ +LRESULT WINAPI AboutDlgProc16(HWND16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI AboutDlgProc32(HWND32,UINT32,WPARAM32,LPARAM); +#define AboutDlgProc WINELIB_NAME(AboutDlgProc) +INT16 WINAPI AccessResource16(HINSTANCE16,HRSRC16); +INT32 WINAPI AccessResource32(HINSTANCE32,HRSRC32); +#define AccessResource WINELIB_NAME(AccessResource) +ATOM WINAPI AddAtom16(SEGPTR); +ATOM WINAPI AddAtom32A(LPCSTR); +ATOM WINAPI AddAtom32W(LPCWSTR); +#define AddAtom WINELIB_NAME_AW(AddAtom) +INT16 WINAPI AddFontResource16(LPCSTR); +INT32 WINAPI AddFontResource32A(LPCSTR); +INT32 WINAPI AddFontResource32W(LPCWSTR); +#define AddFontResource WINELIB_NAME_AW(AddFontResource) +BOOL16 WINAPI AdjustWindowRect16(LPRECT16,DWORD,BOOL16); +BOOL32 WINAPI AdjustWindowRect32(LPRECT32,DWORD,BOOL32); +#define AdjustWindowRect WINELIB_NAME(AdjustWindowRect) +BOOL16 WINAPI AdjustWindowRectEx16(LPRECT16,DWORD,BOOL16,DWORD); +BOOL32 WINAPI AdjustWindowRectEx32(LPRECT32,DWORD,BOOL32,DWORD); +#define AdjustWindowRectEx WINELIB_NAME(AdjustWindowRectEx) +HGLOBAL16 WINAPI AllocResource16(HINSTANCE16,HRSRC16,DWORD); +HGLOBAL32 WINAPI AllocResource32(HINSTANCE32,HRSRC32,DWORD); +#define AllocResource WINELIB_NAME(AllocResource) +void WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY); +BOOL32 WINAPI AnimatePalette32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY); +#define AnimatePalette WINELIB_NAME(AnimatePalette) +SEGPTR WINAPI AnsiLower16(SEGPTR); +#define AnsiLower32A CharLower32A +#define AnsiLower32W CharLower32W +#define AnsiLower WINELIB_NAME_AW(AnsiLower) +UINT16 WINAPI AnsiLowerBuff16(LPSTR,UINT16); +#define AnsiLowerBuff32A CharLowerBuff32A +#define AnsiLowerBuff32W CharLowerBuff32W +#define AnsiLowerBuff WINELIB_NAME_AW(AnsiLowerBuff) +SEGPTR WINAPI AnsiNext16(SEGPTR); +#define AnsiNext32A CharNext32A +#define AnsiNext32W CharNext32W +#define AnsiNext WINELIB_NAME_AW(AnsiNext) +SEGPTR WINAPI AnsiPrev16(SEGPTR,SEGPTR); +#define AnsiPrev32A CharPrev32A +#define AnsiPrev32W CharPrev32W +#define AnsiPrev WINELIB_NAME_AW(AnsiPrev) +INT16 WINAPI AnsiToOem16(LPCSTR,LPSTR); +#define AnsiToOem32A CharToOem32A +#define AnsiToOem32W CharToOem32W +#define AnsiToOem WINELIB_NAME_AW(AnsiToOem) +VOID WINAPI AnsiToOemBuff16(LPCSTR,LPSTR,UINT16); +#define AnsiToOemBuff32A CharToOemBuff32A +#define AnsiToOemBuff32W CharToOemBuff32W +#define AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff) +SEGPTR WINAPI AnsiUpper16(SEGPTR); +#define AnsiUpper32A CharUpper32A +#define AnsiUpper32W CharUpper32W +#define AnsiUpper WINELIB_NAME_AW(AnsiUpper) +UINT16 WINAPI AnsiUpperBuff16(LPSTR,UINT16); +#define AnsiUpperBuff32A CharUpperBuff32A +#define AnsiUpperBuff32W CharUpperBuff32W +#define AnsiUpperBuff WINELIB_NAME_AW(AnsiUpperBuff) +BOOL16 WINAPI AnyPopup16(void); +BOOL32 WINAPI AnyPopup32(void); +#define AnyPopup WINELIB_NAME(AnyPopup) +BOOL16 WINAPI AppendMenu16(HMENU16,UINT16,UINT16,SEGPTR); +BOOL32 WINAPI AppendMenu32A(HMENU32,UINT32,UINT32,LPCSTR); +BOOL32 WINAPI AppendMenu32W(HMENU32,UINT32,UINT32,LPCWSTR); +#define AppendMenu WINELIB_NAME_AW(AppendMenu) +BOOL16 WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16); +BOOL32 WINAPI Arc32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32); +#define Arc WINELIB_NAME(Arc) +UINT16 WINAPI ArrangeIconicWindows16(HWND16); +UINT32 WINAPI ArrangeIconicWindows32(HWND32); +#define ArrangeIconicWindows WINELIB_NAME(ArrangeIconicWindows) +HDWP16 WINAPI BeginDeferWindowPos16(INT16); +HDWP32 WINAPI BeginDeferWindowPos32(INT32); +#define BeginDeferWindowPos WINELIB_NAME(BeginDeferWindowPos) +HDC16 WINAPI BeginPaint16(HWND16,LPPAINTSTRUCT16); +HDC32 WINAPI BeginPaint32(HWND32,LPPAINTSTRUCT32); +#define BeginPaint WINELIB_NAME(BeginPaint) +BOOL16 WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD); +BOOL32 WINAPI BitBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,DWORD); +#define BitBlt WINELIB_NAME(BitBlt) +BOOL16 WINAPI BringWindowToTop16(HWND16); +BOOL32 WINAPI BringWindowToTop32(HWND32); +#define BringWindowToTop WINELIB_NAME(BringWindowToTop) +BOOL16 WINAPI BuildCommDCB16(LPCSTR,LPDCB16); +BOOL32 WINAPI BuildCommDCB32A(LPCSTR,LPDCB32); +BOOL32 WINAPI BuildCommDCB32W(LPCWSTR,LPDCB32); +#define BuildCommDCB WINELIB_NAME_AW(BuildCommDCB) +BOOL32 WINAPI BuildCommDCBAndTimeouts32A(LPCSTR,LPDCB32,LPCOMMTIMEOUTS); +BOOL32 WINAPI BuildCommDCBAndTimeouts32W(LPCWSTR,LPDCB32,LPCOMMTIMEOUTS); +#define BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts) +BOOL16 WINAPI CallMsgFilter16(SEGPTR,INT16); +BOOL32 WINAPI CallMsgFilter32A(LPMSG32,INT32); +BOOL32 WINAPI CallMsgFilter32W(LPMSG32,INT32); +#define CallMsgFilter WINELIB_NAME_AW(CallMsgFilter) +LRESULT WINAPI CallNextHookEx16(HHOOK,INT16,WPARAM16,LPARAM); +LRESULT WINAPI CallNextHookEx32(HHOOK,INT32,WPARAM32,LPARAM); +#define CallNextHookEx WINELIB_NAME(CallNextHookEx) +LRESULT WINAPI CallWindowProc16(WNDPROC16,HWND16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI CallWindowProc32A(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM); +LRESULT WINAPI CallWindowProc32W(WNDPROC32,HWND32,UINT32,WPARAM32,LPARAM); +#define CallWindowProc WINELIB_NAME_AW(CallWindowProc) +BOOL16 WINAPI ChangeClipboardChain16(HWND16,HWND16); +BOOL32 WINAPI ChangeClipboardChain32(HWND32,HWND32); +#define ChangeClipboardChain WINELIB_NAME(ChangeClipboardChain) +BOOL16 WINAPI ChangeMenu16(HMENU16,UINT16,SEGPTR,UINT16,UINT16); +BOOL32 WINAPI ChangeMenu32A(HMENU32,UINT32,LPCSTR,UINT32,UINT32); +BOOL32 WINAPI ChangeMenu32W(HMENU32,UINT32,LPCWSTR,UINT32,UINT32); +#define ChangeMenu WINELIB_NAME_AW(ChangeMenu) +LPSTR WINAPI CharLower32A(LPSTR); +LPWSTR WINAPI CharLower32W(LPWSTR); +#define CharLower WINELIB_NAME_AW(CharLower) +DWORD WINAPI CharLowerBuff32A(LPSTR,DWORD); +DWORD WINAPI CharLowerBuff32W(LPWSTR,DWORD); +#define CharLowerBuff WINELIB_NAME_AW(CharLowerBuff) +LPSTR WINAPI CharNext32A(LPCSTR); +LPWSTR WINAPI CharNext32W(LPCWSTR); +#define CharNext WINELIB_NAME_AW(CharNext) +LPSTR WINAPI CharNextEx32A(WORD,LPCSTR,DWORD); +LPWSTR WINAPI CharNextEx32W(WORD,LPCWSTR,DWORD); +#define CharNextEx WINELIB_NAME_AW(CharNextEx) +LPSTR WINAPI CharPrev32A(LPCSTR,LPCSTR); +LPWSTR WINAPI CharPrev32W(LPCWSTR,LPCWSTR); +#define CharPrev WINELIB_NAME_AW(CharPrev) +LPSTR WINAPI CharPrevEx32A(WORD,LPCSTR,LPCSTR,DWORD); +LPWSTR WINAPI CharPrevEx32W(WORD,LPCWSTR,LPCWSTR,DWORD); +#define CharPrevEx WINELIB_NAME_AW(CharPrevEx) +LPSTR WINAPI CharUpper32A(LPSTR); +LPWSTR WINAPI CharUpper32W(LPWSTR); +#define CharUpper WINELIB_NAME_AW(CharUpper) +DWORD WINAPI CharUpperBuff32A(LPSTR,DWORD); +DWORD WINAPI CharUpperBuff32W(LPWSTR,DWORD); +#define CharUpperBuff WINELIB_NAME_AW(CharUpperBuff) +BOOL32 WINAPI CharToOem32A(LPCSTR,LPSTR); +BOOL32 WINAPI CharToOem32W(LPCWSTR,LPSTR); +#define CharToOem WINELIB_NAME_AW(CharToOem) +BOOL32 WINAPI CharToOemBuff32A(LPCSTR,LPSTR,DWORD); +BOOL32 WINAPI CharToOemBuff32W(LPCWSTR,LPSTR,DWORD); +#define CharToOemBuff WINELIB_NAME_AW(CharToOemBuff) +BOOL16 WINAPI CheckDlgButton16(HWND16,INT16,UINT16); +BOOL32 WINAPI CheckDlgButton32(HWND32,INT32,UINT32); +#define CheckDlgButton WINELIB_NAME(CheckDlgButton) +BOOL16 WINAPI CheckMenuItem16(HMENU16,UINT16,UINT16); +DWORD WINAPI CheckMenuItem32(HMENU32,UINT32,UINT32); +#define CheckMenuItem WINELIB_NAME(CheckMenuItem) +BOOL16 WINAPI CheckRadioButton16(HWND16,UINT16,UINT16,UINT16); +BOOL32 WINAPI CheckRadioButton32(HWND32,UINT32,UINT32,UINT32); +#define CheckRadioButton WINELIB_NAME(CheckRadioButton) +HWND16 WINAPI ChildWindowFromPoint16(HWND16,POINT16); +HWND32 WINAPI ChildWindowFromPoint32(HWND32,POINT32); +#define ChildWindowFromPoint WINELIB_NAME(ChildWindowFromPoint) +BOOL16 WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16); +BOOL32 WINAPI Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32); +#define Chord WINELIB_NAME(Chord) +INT16 WINAPI ClearCommBreak16(INT16); +BOOL32 WINAPI ClearCommBreak32(INT32); +#define ClearCommBreak WINELIB_NAME(ClearCommBreak) +BOOL16 WINAPI ClientToScreen16(HWND16,LPPOINT16); +BOOL32 WINAPI ClientToScreen32(HWND32,LPPOINT32); +#define ClientToScreen WINELIB_NAME(ClientToScreen) +BOOL16 WINAPI ClipCursor16(const RECT16*); +BOOL32 WINAPI ClipCursor32(const RECT32*); +#define ClipCursor WINELIB_NAME(ClipCursor) +BOOL16 WINAPI CloseClipboard16(void); +BOOL32 WINAPI CloseClipboard32(void); +#define CloseClipboard WINELIB_NAME(CloseClipboard) +HMETAFILE16 WINAPI CloseMetaFile16(HDC16); +HMETAFILE32 WINAPI CloseMetaFile32(HDC32); +#define CloseMetaFile WINELIB_NAME(CloseMetaFile) +BOOL16 WINAPI CloseWindow16(HWND16); +BOOL32 WINAPI CloseWindow32(HWND32); +#define CloseWindow WINELIB_NAME(CloseWindow) +INT16 WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16); +INT32 WINAPI CombineRgn32(HRGN32,HRGN32,HRGN32,INT32); +#define CombineRgn WINELIB_NAME(CombineRgn) +UINT16 WINAPI CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD); +UINT32 WINAPI CompareString32A(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD); +UINT32 WINAPI CompareString32W(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD); +#define CompareString WINELIB_NAME_AW(CompareString) +HCURSOR16 WINAPI CopyCursor16(HINSTANCE16,HCURSOR16); +#define CopyCursor32(cur) ((HCURSOR32)CopyIcon32((HICON32)(cur))) +#define CopyCursor WINELIB_NAME(CopyCursor) +HICON16 WINAPI CopyIcon16(HINSTANCE16,HICON16); +HICON32 WINAPI CopyIcon32(HICON32); +#define CopyIcon WINELIB_NAME(CopyIcon) +LONG WINAPI CopyLZFile16(HFILE16,HFILE16); +LONG WINAPI CopyLZFile32(HFILE32,HFILE32); +#define CopyLZFile WINELIB_NAME(CopyLZFile) +HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR); +HMETAFILE32 WINAPI CopyMetaFile32A(HMETAFILE32,LPCSTR); +HMETAFILE32 WINAPI CopyMetaFile32W(HMETAFILE32,LPCWSTR); +#define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile) +BOOL16 WINAPI CopyRect16(RECT16*,const RECT16*); +BOOL32 WINAPI CopyRect32(RECT32*,const RECT32*); +#define CopyRect WINELIB_NAME(CopyRect) +INT16 WINAPI CountClipboardFormats16(void); +INT32 WINAPI CountClipboardFormats32(void); +#define CountClipboardFormats WINELIB_NAME(CountClipboardFormats) +INT16 WINAPI CountVoiceNotes16(INT16); +DWORD WINAPI CountVoiceNotes32(DWORD); +#define CountVoiceNotes WINELIB_NAME(CountVoiceNotes) +HBITMAP16 WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID); +HBITMAP32 WINAPI CreateBitmap32(INT32,INT32,UINT32,UINT32,LPCVOID); +#define CreateBitmap WINELIB_NAME(CreateBitmap) +HBITMAP16 WINAPI CreateBitmapIndirect16(const BITMAP16*); +HBITMAP32 WINAPI CreateBitmapIndirect32(const BITMAP32*); +#define CreateBitmapIndirect WINELIB_NAME(CreateBitmapIndirect) +HBRUSH16 WINAPI CreateBrushIndirect16(const LOGBRUSH16*); +HBRUSH32 WINAPI CreateBrushIndirect32(const LOGBRUSH32*); +#define CreateBrushIndirect WINELIB_NAME(CreateBrushIndirect) +VOID WINAPI CreateCaret16(HWND16,HBITMAP16,INT16,INT16); +BOOL32 WINAPI CreateCaret32(HWND32,HBITMAP32,INT32,INT32); +#define CreateCaret WINELIB_NAME(CreateCaret) +HBITMAP16 WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16); +HBITMAP32 WINAPI CreateCompatibleBitmap32(HDC32,INT32,INT32); +#define CreateCompatibleBitmap WINELIB_NAME(CreateCompatibleBitmap) +HDC16 WINAPI CreateCompatibleDC16(HDC16); +HDC32 WINAPI CreateCompatibleDC32(HDC32); +#define CreateCompatibleDC WINELIB_NAME(CreateCompatibleDC) +HCURSOR16 WINAPI CreateCursor16(HINSTANCE16,INT16,INT16,INT16,INT16,LPCVOID,LPCVOID); +HCURSOR32 WINAPI CreateCursor32(HINSTANCE32,INT32,INT32,INT32,INT32,LPCVOID,LPCVOID); +#define CreateCursor WINELIB_NAME(CreateCursor) +HDC16 WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*); +HDC32 WINAPI CreateDC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*); +HDC32 WINAPI CreateDC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*); +#define CreateDC WINELIB_NAME_AW(CreateDC) +HWND16 WINAPI CreateDialog16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16); +#define CreateDialog32A(inst,ptr,hwnd,dlg) \ CreateDialogParam32A(inst,ptr,hwnd,dlg,0) -#define CreateDialog32W(inst,ptr,hwnd,dlg) \ +#define CreateDialog32W(inst,ptr,hwnd,dlg) \ CreateDialogParam32W(inst,ptr,hwnd,dlg,0) -#define CreateDialog WINELIB_NAME_AW(CreateDialog) -HWND16 CreateDialogIndirect16(HINSTANCE16,LPCVOID,HWND16,DLGPROC16); -#define CreateDialogIndirect32A(inst,ptr,hwnd,dlg) \ +#define CreateDialog WINELIB_NAME_AW(CreateDialog) +HWND16 WINAPI CreateDialogIndirect16(HINSTANCE16,LPCVOID,HWND16,DLGPROC16); +#define CreateDialogIndirect32A(inst,ptr,hwnd,dlg) \ CreateDialogIndirectParam32A(inst,ptr,hwnd,dlg,0) -#define CreateDialogIndirect32W(inst,ptr,hwnd,dlg) \ +#define CreateDialogIndirect32W(inst,ptr,hwnd,dlg) \ CreateDialogIndirectParam32W(inst,ptr,hwnd,dlg,0) -#define CreateDialogIndirect WINELIB_NAME_AW(CreateDialogIndirect) -HWND16 CreateDialogIndirectParam16(HINSTANCE16,LPCVOID,HWND16,DLGPROC16,LPARAM); -HWND32 CreateDialogIndirectParam32A(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM); -HWND32 CreateDialogIndirectParam32W(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM); -#define CreateDialogIndirectParam WINELIB_NAME_AW(CreateDialogIndirectParam) -HWND16 CreateDialogParam16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16,LPARAM); -HWND32 CreateDialogParam32A(HINSTANCE32,LPCSTR,HWND32,DLGPROC32,LPARAM); -HWND32 CreateDialogParam32W(HINSTANCE32,LPCWSTR,HWND32,DLGPROC32,LPARAM); -#define CreateDialogParam WINELIB_NAME_AW(CreateDialogParam) -HBITMAP16 CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,LPCVOID, - const BITMAPINFO*,UINT16); -HBITMAP32 CreateDIBitmap32(HDC32,const BITMAPINFOHEADER*,DWORD,LPCVOID, - const BITMAPINFO*,UINT32); -#define CreateDIBitmap WINELIB_NAME(CreateDIBitmap) -HBRUSH16 CreateDIBPatternBrush16(HGLOBAL16,UINT16); -HBRUSH32 CreateDIBPatternBrush32(HGLOBAL32,UINT32); -#define CreateDIBPatternBrush WINELIB_NAME(CreateDIBPatternBrush) -BOOL16 CreateDirectory16(LPCSTR,LPVOID); -BOOL32 CreateDirectory32A(LPCSTR,LPSECURITY_ATTRIBUTES); -BOOL32 CreateDirectory32W(LPCWSTR,LPSECURITY_ATTRIBUTES); -#define CreateDirectory WINELIB_NAME_AW(CreateDirectory) -BOOL32 CreateDirectoryEx32A(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); -BOOL32 CreateDirectoryEx32W(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); -#define CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx) -HBITMAP16 CreateDiscardableBitmap16(HDC16,INT16,INT16); -HBITMAP32 CreateDiscardableBitmap32(HDC32,INT32,INT32); -#define CreateDiscardableBitmap WINELIB_NAME(CreateDiscardableBitmap) -HRGN16 CreateEllipticRgn16(INT16,INT16,INT16,INT16); -HRGN32 CreateEllipticRgn32(INT32,INT32,INT32,INT32); -#define CreateEllipticRgn WINELIB_NAME(CreateEllipticRgn) -HRGN16 CreateEllipticRgnIndirect16(const RECT16 *); -HRGN32 CreateEllipticRgnIndirect32(const RECT32 *); -#define CreateEllipticRgnIndirect WINELIB_NAME(CreateEllipticRgnIndirect) -HFONT16 CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR); -HFONT32 CreateFont32A(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR); -HFONT32 CreateFont32W(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR); -#define CreateFont WINELIB_NAME_AW(CreateFont) -HFONT16 CreateFontIndirect16(const LOGFONT16*); -HFONT32 CreateFontIndirect32A(const LOGFONT32A*); -HFONT32 CreateFontIndirect32W(const LOGFONT32W*); -#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect) -HBRUSH16 CreateHatchBrush16(INT16,COLORREF); -HBRUSH32 CreateHatchBrush32(INT32,COLORREF); -#define CreateHatchBrush WINELIB_NAME(CreateHatchBrush) -HDC16 CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*); -HDC32 CreateIC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*); -HDC32 CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*); -#define CreateIC WINELIB_NAME_AW(CreateIC) -HICON16 CreateIcon16(HINSTANCE16,INT16,INT16,BYTE,BYTE,LPCVOID,LPCVOID); -HICON32 CreateIcon32(HINSTANCE32,INT32,INT32,BYTE,BYTE,LPCVOID,LPCVOID); -#define CreateIcon WINELIB_NAME(CreateIcon) -HMENU16 CreateMenu16(void); -HMENU32 CreateMenu32(void); -#define CreateMenu WINELIB_NAME(CreateMenu) -HDC16 CreateMetaFile16(LPCSTR); -HDC32 CreateMetaFile32A(LPCSTR); -HDC32 CreateMetaFile32W(LPCWSTR); -#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile) -HPALETTE16 CreatePalette16(const LOGPALETTE*); -HPALETTE32 CreatePalette32(const LOGPALETTE*); -#define CreatePalette WINELIB_NAME(CreatePalette) -HBRUSH16 CreatePatternBrush16(HBITMAP16); -HBRUSH32 CreatePatternBrush32(HBITMAP32); -#define CreatePatternBrush WINELIB_NAME(CreatePatternBrush) -HPEN16 CreatePen16(INT16,INT16,COLORREF); -HPEN32 CreatePen32(INT32,INT32,COLORREF); -#define CreatePen WINELIB_NAME(CreatePen) -HPEN16 CreatePenIndirect16(const LOGPEN16*); -HPEN32 CreatePenIndirect32(const LOGPEN32*); -#define CreatePenIndirect WINELIB_NAME(CreatePenIndirect) -HRGN16 CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16); -HRGN32 CreatePolyPolygonRgn32(const POINT32*,const INT32*,INT32,INT32); -#define CreatePolyPolygonRgn WINELIB_NAME(CreatePolyPolygonRgn) -HRGN16 CreatePolygonRgn16(const POINT16*,INT16,INT16); -HRGN32 CreatePolygonRgn32(const POINT32*,INT32,INT32); -#define CreatePolygonRgn WINELIB_NAME(CreatePolygonRgn) -HMENU16 CreatePopupMenu16(void); -HMENU32 CreatePopupMenu32(void); -#define CreatePopupMenu WINELIB_NAME(CreatePopupMenu) -HRGN16 CreateRectRgn16(INT16,INT16,INT16,INT16); -HRGN32 CreateRectRgn32(INT32,INT32,INT32,INT32); -#define CreateRectRgn WINELIB_NAME(CreateRectRgn) -HRGN16 CreateRectRgnIndirect16(const RECT16*); -HRGN32 CreateRectRgnIndirect32(const RECT32*); -#define CreateRectRgnIndirect WINELIB_NAME(CreateRectRgnIndirect) -HRGN16 CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16); -HRGN32 CreateRoundRectRgn32(INT32,INT32,INT32,INT32,INT32,INT32); -#define CreateRoundRectRgn WINELIB_NAME(CreateRoundRectRgn) -BOOL16 CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR); -BOOL32 CreateScalableFontResource32A(DWORD,LPCSTR,LPCSTR,LPCSTR); -BOOL32 CreateScalableFontResource32W(DWORD,LPCWSTR,LPCWSTR,LPCWSTR); -#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource) -HBRUSH16 CreateSolidBrush16(COLORREF); -HBRUSH32 CreateSolidBrush32(COLORREF); -#define CreateSolidBrush WINELIB_NAME(CreateSolidBrush) -HWND16 CreateWindow16(LPCSTR,LPCSTR,DWORD,INT16,INT16,INT16,INT16,HWND16,HMENU16,HINSTANCE16,LPVOID); -#define CreateWindow32A(className,titleName,style,x,y,width,height,\ - parent,menu,instance,param) \ - CreateWindowEx32A(0,className,titleName,style,x,y,width,height,\ - parent,menu,instance,param) -#define CreateWindow32W(className,titleName,style,x,y,width,height,\ - parent,menu,instance,param) \ - CreateWindowEx32W(0,className,titleName,style,x,y,width,height,\ - parent,menu,instance,param) -#define CreateWindow WINELIB_NAME_AW(CreateWindow) -HWND16 CreateWindowEx16(DWORD,LPCSTR,LPCSTR,DWORD,INT16,INT16,INT16,INT16,HWND16,HMENU16,HINSTANCE16,LPVOID); -HWND32 CreateWindowEx32A(DWORD,LPCSTR,LPCSTR,DWORD,INT32,INT32,INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID); -HWND32 CreateWindowEx32W(DWORD,LPCWSTR,LPCWSTR,DWORD,INT32,INT32,INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID); -#define CreateWindowEx WINELIB_NAME_AW(CreateWindowEx) -LRESULT DefDlgProc16(HWND16,UINT16,WPARAM16,LPARAM); -LRESULT DefDlgProc32A(HWND32,UINT32,WPARAM32,LPARAM); -LRESULT DefDlgProc32W(HWND32,UINT32,WPARAM32,LPARAM); -#define DefDlgProc WINELIB_NAME_AW(DefDlgProc) -HDWP16 DeferWindowPos16(HDWP16,HWND16,HWND16,INT16,INT16,INT16,INT16,UINT16); -HDWP32 DeferWindowPos32(HDWP32,HWND32,HWND32,INT32,INT32,INT32,INT32,UINT32); -#define DeferWindowPos WINELIB_NAME(DeferWindowPos) -LRESULT DefFrameProc16(HWND16,HWND16,UINT16,WPARAM16,LPARAM); -LRESULT DefFrameProc32A(HWND32,HWND32,UINT32,WPARAM32,LPARAM); -LRESULT DefFrameProc32W(HWND32,HWND32,UINT32,WPARAM32,LPARAM); -#define DefFrameProc WINELIB_NAME_AW(DefFrameProc) -LRESULT DefHookProc16(INT16,WPARAM16,LPARAM,HHOOK*); -#define DefHookProc32(code,wparam,lparam,phhook) \ - CallNextHookEx32(*(phhook),code,wparam,lparam) -#define DefHookProc WINELIB_NAME(DefHookProc) -LRESULT DefMDIChildProc16(HWND16,UINT16,WPARAM16,LPARAM); -LRESULT DefMDIChildProc32A(HWND32,UINT32,WPARAM32,LPARAM); -LRESULT DefMDIChildProc32W(HWND32,UINT32,WPARAM32,LPARAM); -#define DefMDIChildProc WINELIB_NAME_AW(DefMDIChildProc) -LRESULT DefWindowProc16(HWND16,UINT16,WPARAM16,LPARAM); -LRESULT DefWindowProc32A(HWND32,UINT32,WPARAM32,LPARAM); -LRESULT DefWindowProc32W(HWND32,UINT32,WPARAM32,LPARAM); -#define DefWindowProc WINELIB_NAME_AW(DefWindowProc) -ATOM DeleteAtom16(ATOM); -ATOM DeleteAtom32(ATOM); -#define DeleteAtom WINELIB_NAME(DeleteAtom) -BOOL16 DeleteDC16(HDC16); -BOOL32 DeleteDC32(HDC32); -#define DeleteDC WINELIB_NAME(DeleteDC) -BOOL16 DeleteFile16(LPCSTR); -BOOL32 DeleteFile32A(LPCSTR); -BOOL32 DeleteFile32W(LPCWSTR); -#define DeleteFile WINELIB_NAME_AW(DeleteFile) -BOOL16 DeleteMenu16(HMENU16,UINT16,UINT16); -BOOL32 DeleteMenu32(HMENU32,UINT32,UINT32); -#define DeleteMenu WINELIB_NAME(DeleteMenu) -BOOL16 DeleteMetaFile16(HMETAFILE16); -BOOL32 DeleteMetaFile32(HMETAFILE32); -#define DeleteMetaFile WINELIB_NAME(DeleteMetaFile) -BOOL16 DeleteObject16(HGDIOBJ16); -BOOL32 DeleteObject32(HGDIOBJ32); -#define DeleteObject WINELIB_NAME(DeleteObject) -VOID DestroyCaret16(void); -BOOL32 DestroyCaret32(void); -#define DestroyCaret WINELIB_NAME(DestroyCaret) -BOOL16 DestroyCursor16(HCURSOR16); -BOOL32 DestroyCursor32(HCURSOR32); -#define DestroyCursor WINELIB_NAME(DestroyCursor) -BOOL16 DestroyIcon16(HICON16); -BOOL32 DestroyIcon32(HICON32); -#define DestroyIcon WINELIB_NAME(DestroyIcon) -BOOL16 DestroyMenu16(HMENU16); -BOOL32 DestroyMenu32(HMENU32); -#define DestroyMenu WINELIB_NAME(DestroyMenu) -BOOL16 DestroyWindow16(HWND16); -BOOL32 DestroyWindow32(HWND32); -#define DestroyWindow WINELIB_NAME(DestroyWindow) -INT16 DialogBox16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16); -#define DialogBox32A(inst,template,owner,func) \ - DialogBoxParam32A(inst,template,owner,func,0) -#define DialogBox32W(inst,template,owner,func) \ - DialogBoxParam32W(inst,template,owner,func,0) -#define DialogBox WINELIB_NAME_AW(DialogBox) -INT16 DialogBoxIndirect16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16); -#define DialogBoxIndirect32A(inst,template,owner,func) \ - DialogBoxIndirectParam32A(inst,template,owner,func,0) -#define DialogBoxIndirect32W(inst,template,owner,func) \ - DialogBoxIndirectParam32W(inst,template,owner,func,0) -#define DialogBoxIndirect WINELIB_NAME_AW(DialogBoxIndirect) -INT16 DialogBoxIndirectParam16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16,LPARAM); -INT32 DialogBoxIndirectParam32A(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM); -INT32 DialogBoxIndirectParam32W(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM); -#define DialogBoxIndirectParam WINELIB_NAME_AW(DialogBoxIndirectParam) -INT16 DialogBoxParam16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16,LPARAM); -INT32 DialogBoxParam32A(HINSTANCE32,LPCSTR,HWND32,DLGPROC32,LPARAM); -INT32 DialogBoxParam32W(HINSTANCE32,LPCWSTR,HWND32,DLGPROC32,LPARAM); -#define DialogBoxParam WINELIB_NAME_AW(DialogBoxParam) -LONG DispatchMessage16(const MSG16*); -LONG DispatchMessage32A(const MSG32*); -LONG DispatchMessage32W(const MSG32*); -#define DispatchMessage WINELIB_NAME_AW(DispatchMessage) -INT16 DlgDirList16(HWND16,LPSTR,INT16,INT16,UINT16); -INT32 DlgDirList32A(HWND32,LPSTR,INT32,INT32,UINT32); -INT32 DlgDirList32W(HWND32,LPWSTR,INT32,INT32,UINT32); -#define DlgDirList WINELIB_NAME_AW(DlgDirList) -INT16 DlgDirListComboBox16(HWND16,LPSTR,INT16,INT16,UINT16); -INT32 DlgDirListComboBox32A(HWND32,LPSTR,INT32,INT32,UINT32); -INT32 DlgDirListComboBox32W(HWND32,LPWSTR,INT32,INT32,UINT32); -#define DlgDirListComboBox WINELIB_NAME_AW(DlgDirListComboBox) -BOOL16 DlgDirSelectComboBoxEx16(HWND16,LPSTR,INT16,INT16); -BOOL32 DlgDirSelectComboBoxEx32A(HWND32,LPSTR,INT32,INT32); -BOOL32 DlgDirSelectComboBoxEx32W(HWND32,LPWSTR,INT32,INT32); -#define DlgDirSelectComboBoxEx WINELIB_NAME_AW(DlgDirSelectComboBoxEx) -BOOL16 DlgDirSelectEx16(HWND16,LPSTR,INT16,INT16); -BOOL32 DlgDirSelectEx32A(HWND32,LPSTR,INT32,INT32); -BOOL32 DlgDirSelectEx32W(HWND32,LPWSTR,INT32,INT32); -#define DlgDirSelectEx WINELIB_NAME_AW(DlgDirSelectEx) -BOOL16 DPtoLP16(HDC16,LPPOINT16,INT16); -BOOL32 DPtoLP32(HDC32,LPPOINT32,INT32); -#define DPtoLP WINELIB_NAME(DPtoLP) -BOOL16 DragDetect16(HWND16,POINT16); -BOOL32 DragDetect32(HWND32,POINT32); -#define DragDetect WINELIB_NAME(DragDetect) -DWORD DragObject16(HWND16,HWND16,UINT16,HANDLE16,WORD,HCURSOR16); -DWORD DragObject32(HWND32,HWND32,UINT32,DWORD,HCURSOR32); -#define DragObject WINELIB_NAME(DragObject) -BOOL16 DrawEdge16(HDC16,LPRECT16,UINT16,UINT16); -BOOL32 DrawEdge32(HDC32,LPRECT32,UINT32,UINT32); -#define DrawEdge WINELIB_NAME(DrawEdge) -void DrawFocusRect16(HDC16,const RECT16*); -void DrawFocusRect32(HDC32,const RECT32*); -#define DrawFocusRect WINELIB_NAME(DrawFocusRect) -BOOL16 DrawFrameControl16(HDC16,LPRECT16,UINT16,UINT16); -BOOL32 DrawFrameControl32(HDC32,LPRECT32,UINT32,UINT32); -#define DrawFrameControl WINELIB_NAME(DrawFrameControl) -BOOL16 DrawIcon16(HDC16,INT16,INT16,HICON16); -BOOL32 DrawIcon32(HDC32,INT32,INT32,HICON32); -#define DrawIcon WINELIB_NAME(DrawIcon) -VOID DrawMenuBar16(HWND16); -BOOL32 DrawMenuBar32(HWND32); -#define DrawMenuBar WINELIB_NAME(DrawMenuBar) -INT16 DrawText16(HDC16,LPCSTR,INT16,LPRECT16,UINT16); -INT32 DrawText32A(HDC32,LPCSTR,INT32,LPRECT32,UINT32); -INT32 DrawText32W(HDC32,LPCWSTR,INT32,LPRECT32,UINT32); -#define DrawText WINELIB_NAME_AW(DrawText) -BOOL16 Ellipse16(HDC16,INT16,INT16,INT16,INT16); -BOOL32 Ellipse32(HDC32,INT32,INT32,INT32,INT32); -#define Ellipse WINELIB_NAME(Ellipse) -BOOL16 EmptyClipboard16(void); -BOOL32 EmptyClipboard32(void); -#define EmptyClipboard WINELIB_NAME(EmptyClipboard) -BOOL16 EnableMenuItem16(HMENU16,UINT16,UINT16); -BOOL32 EnableMenuItem32(HMENU32,UINT32,UINT32); -#define EnableMenuItem WINELIB_NAME(EnableMenuItem) -BOOL16 EnableScrollBar16(HWND16,INT16,UINT16); -BOOL32 EnableScrollBar32(HWND32,INT32,UINT32); -#define EnableScrollBar WINELIB_NAME(EnableScrollBar) -BOOL16 EnableWindow16(HWND16,BOOL16); -BOOL32 EnableWindow32(HWND32,BOOL32); -#define EnableWindow WINELIB_NAME(EnableWindow) -BOOL16 EndDeferWindowPos16(HDWP16); -BOOL32 EndDeferWindowPos32(HDWP32); -#define EndDeferWindowPos WINELIB_NAME(EndDeferWindowPos) -BOOL16 EndDialog16(HWND16,INT16); -BOOL32 EndDialog32(HWND32,INT32); -#define EndDialog WINELIB_NAME(EndDialog) -INT16 EndDoc16(HDC16); -INT32 EndDoc32(HDC32); -#define EndDoc WINELIB_NAME(EndDoc) -BOOL16 EndPaint16(HWND16,const PAINTSTRUCT16*); -BOOL32 EndPaint32(HWND32,const PAINTSTRUCT32*); -#define EndPaint WINELIB_NAME(EndPaint) -BOOL16 EnumChildWindows16(HWND16,WNDENUMPROC16,LPARAM); -BOOL32 EnumChildWindows32(HWND32,WNDENUMPROC32,LPARAM); -#define EnumChildWindows WINELIB_NAME(EnumChildWindows) -UINT16 EnumClipboardFormats16(UINT16); -UINT32 EnumClipboardFormats32(UINT32); -#define EnumClipboardFormats WINELIB_NAME(EnumClipboardFormats) -INT16 EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM); -INT32 EnumFontFamilies32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM); -INT32 EnumFontFamilies32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM); -#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies) -INT16 EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD); -INT32 EnumFontFamiliesEx32A(HDC32,LPLOGFONT32A,FONTENUMPROCEX32A,LPARAM,DWORD); -INT32 EnumFontFamiliesEx32W(HDC32,LPLOGFONT32W,FONTENUMPROCEX32W,LPARAM,DWORD); -#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx) -INT16 EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM); -INT32 EnumFonts32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM); -INT32 EnumFonts32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM); -#define EnumFonts WINELIB_NAME_AW(EnumFonts) -BOOL16 EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM); -BOOL32 EnumMetaFile32(HDC32,HMETAFILE32,MFENUMPROC32,LPARAM); -#define EnumMetaFile WINELIB_NAME(EnumMetaFile) -INT16 EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM); -INT32 EnumObjects32(HDC32,INT32,GOBJENUMPROC32,LPARAM); -#define EnumObjects WINELIB_NAME(EnumObjects) -INT16 EnumProps16(HWND16,PROPENUMPROC16); -INT32 EnumProps32A(HWND32,PROPENUMPROC32A); -INT32 EnumProps32W(HWND32,PROPENUMPROC32W); -#define EnumProps WINELIB_NAME_AW(EnumProps) -BOOL16 EnumTaskWindows16(HTASK16,WNDENUMPROC16,LPARAM); -#define EnumTaskWindows32(handle,proc,lparam) \ - EnumThreadWindows(handle,proc,lparam) -#define EnumTaskWindows WINELIB_NAME(EnumTaskWindows) -BOOL16 EnumWindows16(WNDENUMPROC16,LPARAM); -BOOL32 EnumWindows32(WNDENUMPROC32,LPARAM); -#define EnumWindows WINELIB_NAME(EnumWindows) -BOOL16 EqualRect16(const RECT16*,const RECT16*); -BOOL32 EqualRect32(const RECT32*,const RECT32*); -#define EqualRect WINELIB_NAME(EqualRect) -BOOL16 EqualRgn16(HRGN16,HRGN16); -BOOL32 EqualRgn32(HRGN32,HRGN32); -#define EqualRgn WINELIB_NAME(EqualRgn) -INT16 Escape16(HDC16,INT16,INT16,SEGPTR,SEGPTR); -INT32 Escape32(HDC32,INT32,INT32,LPVOID,LPVOID); -#define Escape WINELIB_NAME(Escape) -LONG EscapeCommFunction16(UINT16,UINT16); -BOOL32 EscapeCommFunction32(INT32,UINT32); -#define EscapeCommFunction WINELIB_NAME(EscapeCommFunction) -INT16 ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16); -INT32 ExcludeClipRect32(HDC32,INT32,INT32,INT32,INT32); -#define ExcludeClipRect WINELIB_NAME(ExcludeClipRect) -INT16 ExcludeUpdateRgn16(HDC16,HWND16); -INT32 ExcludeUpdateRgn32(HDC32,HWND32); -#define ExcludeUpdateRgn WINELIB_NAME(ExcludeUpdateRgn) -BOOL16 ExitWindows16(DWORD,UINT16); -#define ExitWindows32(a,b) ExitWindowsEx(EWX_LOGOFF,0xffffffff) -#define ExitWindows WINELIB_NAME(ExitWindows) -BOOL16 ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16); -BOOL32 ExtFloodFill32(HDC32,INT32,INT32,COLORREF,UINT32); -#define ExtFloodFill WINELIB_NAME(ExtFloodFill) -HICON16 ExtractIcon16(HINSTANCE16,LPCSTR,UINT16); -HICON32 ExtractIcon32A(HINSTANCE32,LPCSTR,UINT32); -HICON32 ExtractIcon32W(HINSTANCE32,LPCWSTR,UINT32); -#define ExtractIcon WINELIB_NAME_AW(ExtractIcon) -BOOL16 ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,LPCSTR,UINT16,const INT16*); -BOOL32 ExtTextOut32A(HDC32,INT32,INT32,UINT32,const RECT32*,LPCSTR,UINT32,const INT32*); -BOOL32 ExtTextOut32W(HDC32,INT32,INT32,UINT32,const RECT32*,LPCWSTR,UINT32,const INT32*); -#define ExtTextOut WINELIB_NAME_AW(ExtTextOut) -void FatalAppExit16(UINT16,LPCSTR); -void FatalAppExit32A(UINT32,LPCSTR); -void FatalAppExit32W(UINT32,LPCWSTR); -#define FatalAppExit WINELIB_NAME_AW(FatalAppExit) -INT16 FillRect16(HDC16,const RECT16*,HBRUSH16); -INT32 FillRect32(HDC32,const RECT32*,HBRUSH32); -#define FillRect WINELIB_NAME(FillRect) -BOOL16 FillRgn16(HDC16,HRGN16,HBRUSH16); -BOOL32 FillRgn32(HDC32,HRGN32,HBRUSH32); -#define FillRgn WINELIB_NAME(FillRgn) -ATOM FindAtom16(SEGPTR); -ATOM FindAtom32A(LPCSTR); -ATOM FindAtom32W(LPCWSTR); -#define FindAtom WINELIB_NAME_AW(FindAtom) -BOOL16 FindClose16(HANDLE16); -BOOL32 FindClose32(HANDLE32); -#define FindClose WINELIB_NAME(FindClose) -HINSTANCE16 FindExecutable16(LPCSTR,LPCSTR,LPSTR); -HINSTANCE32 FindExecutable32A(LPCSTR,LPCSTR,LPSTR); -HINSTANCE32 FindExecutable32W(LPCWSTR,LPCWSTR,LPWSTR); -#define FindExecutable WINELIB_NAME_AW(FindExecutable) -HANDLE16 FindFirstFile16(LPCSTR,LPWIN32_FIND_DATA32A); -HANDLE32 FindFirstFile32A(LPCSTR,LPWIN32_FIND_DATA32A); -HANDLE32 FindFirstFile32W(LPCWSTR,LPWIN32_FIND_DATA32W); -#define FindFirst WINELIB_NAME_AW(FindFirst) -BOOL16 FindNextFile16(HANDLE16,LPWIN32_FIND_DATA32A); -BOOL32 FindNextFile32A(HANDLE32,LPWIN32_FIND_DATA32A); -BOOL32 FindNextFile32W(HANDLE32,LPWIN32_FIND_DATA32W); -#define FindNext WINELIB_NAME_AW(FindNext) -HRSRC16 FindResource16(HINSTANCE16,SEGPTR,SEGPTR); -HRSRC32 FindResource32A(HINSTANCE32,LPCSTR,LPCSTR); -HRSRC32 FindResource32W(HINSTANCE32,LPCWSTR,LPCWSTR); -#define FindResource WINELIB_NAME_AW(FindResource) -HWND16 FindWindow16(SEGPTR,LPCSTR); -HWND32 FindWindow32A(LPCSTR,LPCSTR); -HWND32 FindWindow32W(LPCWSTR,LPCWSTR); -#define FindWindow WINELIB_NAME_AW(FindWindow) -HWND16 FindWindowEx16(HWND16,HWND16,SEGPTR,LPCSTR); -HWND32 FindWindowEx32A(HWND32,HWND32,LPCSTR,LPCSTR); -HWND32 FindWindowEx32W(HWND32,HWND32,LPCWSTR,LPCWSTR); -#define FindWindowEx WINELIB_NAME_AW(FindWindowEx) -BOOL16 FlashWindow16(HWND16,BOOL16); -BOOL32 FlashWindow32(HWND32,BOOL32); -#define FlashWindow WINELIB_NAME(FlashWindow) -BOOL16 FloodFill16(HDC16,INT16,INT16,COLORREF); -BOOL32 FloodFill32(HDC32,INT32,INT32,COLORREF); -#define FloodFill WINELIB_NAME(FloodFill) -INT16 FrameRect16(HDC16,const RECT16*,HBRUSH16); -INT32 FrameRect32(HDC32,const RECT32*,HBRUSH32); -#define FrameRect WINELIB_NAME(FrameRect) -BOOL16 FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16); -BOOL32 FrameRgn32(HDC32,HRGN32,HBRUSH32,INT32,INT32); -#define FrameRgn WINELIB_NAME(FrameRgn) -VOID FreeLibrary16(HINSTANCE16); -BOOL32 FreeLibrary32(HMODULE32); -#define FreeLibrary WINELIB_NAME(FreeLibrary) -BOOL16 FreeModule16(HMODULE16); -#define FreeModule32(handle) FreeLibrary32(handle) -#define FreeModule WINELIB_NAME(FreeModule) -void FreeProcInstance16(FARPROC16); -#define FreeProcInstance32(proc) /*nothing*/ -#define FreeProcInstance WINELIB_NAME(FreeProcInstance) -BOOL16 FreeResource16(HGLOBAL16); -BOOL32 FreeResource32(HGLOBAL32); -#define FreeResource WINELIB_NAME(FreeResource) -HWND16 GetActiveWindow16(void); -HWND32 GetActiveWindow32(void); -#define GetActiveWindow WINELIB_NAME(GetActiveWindow) -DWORD GetAppCompatFlags16(HTASK16); -DWORD GetAppCompatFlags32(HTASK32); -#define GetAppCompatFlags WINELIB_NAME(GetAppCompatFlags) -WORD GetAsyncKeyState16(INT16); -WORD GetAsyncKeyState32(INT32); -#define GetAsyncKeyState WINELIB_NAME(GetAsyncKeyState) -UINT16 GetAtomName16(ATOM,LPSTR,INT16); -UINT32 GetAtomName32A(ATOM,LPSTR,INT32); -UINT32 GetAtomName32W(ATOM,LPWSTR,INT32); -#define GetAtomName WINELIB_NAME_AW(GetAtomName) -LONG GetBitmapBits16(HBITMAP16,LONG,LPVOID); -LONG GetBitmapBits32(HBITMAP32,LONG,LPVOID); -#define GetBitmapBits WINELIB_NAME(GetBitmapBits) -BOOL16 GetBitmapDimensionEx16(HBITMAP16,LPSIZE16); -BOOL32 GetBitmapDimensionEx32(HBITMAP32,LPSIZE32); -#define GetBitmapDimensionEx WINELIB_NAME(GetBitmapDimensionEx) -BOOL16 GetBrushOrgEx16(HDC16,LPPOINT16); -BOOL32 GetBrushOrgEx32(HDC32,LPPOINT32); -#define GetBrushOrgEx WINELIB_NAME(GetBrushOrgEx) -COLORREF GetBkColor16(HDC16); -COLORREF GetBkColor32(HDC32); -#define GetBkColor WINELIB_NAME(GetBkColor) -INT16 GetBkMode16(HDC16); -INT32 GetBkMode32(HDC32); -#define GetBkMode WINELIB_NAME(GetBkMode) -HWND16 GetCapture16(void); -HWND32 GetCapture32(void); -#define GetCapture WINELIB_NAME(GetCapture) -UINT16 GetCaretBlinkTime16(void); -UINT32 GetCaretBlinkTime32(void); -#define GetCaretBlinkTime WINELIB_NAME(GetCaretBlinkTime) -VOID GetCaretPos16(LPPOINT16); -BOOL32 GetCaretPos32(LPPOINT32); -#define GetCaretPos WINELIB_NAME(GetCaretPos) -BOOL16 GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16); -BOOL32 GetCharABCWidths32A(HDC32,UINT32,UINT32,LPABC32); -BOOL32 GetCharABCWidths32W(HDC32,UINT32,UINT32,LPABC32); -#define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths) -BOOL16 GetCharWidth16(HDC16,UINT16,UINT16,LPINT16); -BOOL32 GetCharWidth32A(HDC32,UINT32,UINT32,LPINT32); -BOOL32 GetCharWidth32W(HDC32,UINT32,UINT32,LPINT32); -#define GetCharWidth WINELIB_NAME_AW(GetCharWidth) -BOOL16 GetClassInfo16(HINSTANCE16,SEGPTR,WNDCLASS16 *); -BOOL32 GetClassInfo32A(HINSTANCE32,LPCSTR,WNDCLASS32A *); -BOOL32 GetClassInfo32W(HINSTANCE32,LPCWSTR,WNDCLASS32W *); -#define GetClassInfo WINELIB_NAME_AW(GetClassInfo) -BOOL16 GetClassInfoEx16(HINSTANCE16,SEGPTR,WNDCLASSEX16 *); -BOOL32 GetClassInfoEx32A(HINSTANCE32,LPCSTR,WNDCLASSEX32A *); -BOOL32 GetClassInfoEx32W(HINSTANCE32,LPCWSTR,WNDCLASSEX32W *); -#define GetClassInfoEx WINELIB_NAME_AW(GetClassInfoEx) -LONG GetClassLong16(HWND16,INT16); -LONG GetClassLong32A(HWND32,INT32); -LONG GetClassLong32W(HWND32,INT32); -#define GetClassLong WINELIB_NAME_AW(GetClassLong) -INT16 GetClassName16(HWND16,LPSTR,INT16); -INT32 GetClassName32A(HWND32,LPSTR,INT32); -INT32 GetClassName32W(HWND32,LPWSTR,INT32); -#define GetClassName WINELIB_NAME_AW(GetClassName) -WORD GetClassWord16(HWND16,INT16); -WORD GetClassWord32(HWND32,INT32); -#define GetClassWord WINELIB_NAME(GetClassWord) -void GetClientRect16(HWND16,LPRECT16); -void GetClientRect32(HWND32,LPRECT32); -#define GetClientRect WINELIB_NAME(GetClientRect) -HANDLE16 GetClipboardData16(UINT16); -HANDLE32 GetClipboardData32(UINT32); -#define GetClipboardData WINELIB_NAME(GetClipboardData) -INT16 GetClipboardFormatName16(UINT16,LPSTR,INT16); -INT32 GetClipboardFormatName32A(UINT32,LPSTR,INT32); -INT32 GetClipboardFormatName32W(UINT32,LPWSTR,INT32); -#define GetClipboardFormatName WINELIB_NAME_AW(GetClipboardFormatName) -HWND16 GetClipboardOwner16(void); -HWND32 GetClipboardOwner32(void); -#define GetClipboardOwner WINELIB_NAME(GetClipboardOwner) -HWND16 GetClipboardViewer16(void); -HWND32 GetClipboardViewer32(void); -#define GetClipboardViewer WINELIB_NAME(GetClipboardViewer) -INT16 GetClipBox16(HDC16,LPRECT16); -INT32 GetClipBox32(HDC32,LPRECT32); -#define GetClipBox WINELIB_NAME(GetClipBox) -void GetClipCursor16(LPRECT16); -void GetClipCursor32(LPRECT32); -#define GetClipCursor WINELIB_NAME(GetClipCursor) -HRGN16 GetClipRgn16(HDC16); -INT32 GetClipRgn32(HDC32,HRGN32); -#define GetClipRgn WINELIB_NAME(GetClipRgn) -INT16 GetCommState16(INT16,LPDCB16); -BOOL32 GetCommState32(INT32,LPDCB32); -#define GetCommState WINELIB_NAME(GetCommState) -UINT16 GetCurrentDirectory16(UINT16,LPSTR); -UINT32 GetCurrentDirectory32A(UINT32,LPSTR); -UINT32 GetCurrentDirectory32W(UINT32,LPWSTR); -#define GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory) -BOOL16 GetCurrentPositionEx16(HDC16,LPPOINT16); -BOOL32 GetCurrentPositionEx32(HDC32,LPPOINT32); -#define GetCurrentPositionEx WINELIB_NAME(GetCurrentPositionEx) -DWORD GetCurrentTime16(void); -#define GetCurrentTime32() GetTickCount() -#define GetCurrentTime WINELIB_NAME(GetCurrentTime) -HCURSOR16 GetCursor16(void); -HCURSOR32 GetCursor32(void); -#define GetCursor WINELIB_NAME(GetCursor) -void GetCursorPos16(LPPOINT16); -void GetCursorPos32(LPPOINT32); -#define GetCursorPos WINELIB_NAME(GetCursorPos) -HDC16 GetDC16(HWND16); -HDC32 GetDC32(HWND32); -#define GetDC WINELIB_NAME(GetDC) -HDC16 GetDCEx16(HWND16,HRGN16,DWORD); -HDC32 GetDCEx32(HWND32,HRGN32,DWORD); -#define GetDCEx WINELIB_NAME(GetDCEx) -HWND16 GetDesktopWindow16(void); -HWND32 GetDesktopWindow32(void); -#define GetDesktopWindow WINELIB_NAME(GetDesktopWindow) -INT16 GetDeviceCaps16(HDC16,INT16); -INT32 GetDeviceCaps32(HDC32,INT32); -#define GetDeviceCaps WINELIB_NAME(GetDeviceCaps) -INT16 GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPSTR,LPBITMAPINFO,UINT16); -INT32 GetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPSTR,LPBITMAPINFO,UINT32); -#define GetDIBits WINELIB_NAME(GetDIBits) -BOOL16 GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); -BOOL32 GetDiskFreeSpace32A(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); -BOOL32 GetDiskFreeSpace32W(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); -#define GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace) -INT16 GetDlgCtrlID16(HWND16); -INT32 GetDlgCtrlID32(HWND32); -#define GetDlgCtrlID WINELIB_NAME(GetDlgCtrlID) -HWND16 GetDlgItem16(HWND16,INT16); -HWND32 GetDlgItem32(HWND32,INT32); -#define GetDlgItem WINELIB_NAME(GetDlgItem) -UINT16 GetDlgItemInt16(HWND16,INT16,BOOL16*,BOOL16); -UINT32 GetDlgItemInt32(HWND32,INT32,BOOL32*,BOOL32); -#define GetDlgItemInt WINELIB_NAME(GetDlgItemInt) -INT16 GetDlgItemText16(HWND16,INT16,SEGPTR,UINT16); -INT32 GetDlgItemText32A(HWND32,INT32,LPSTR,UINT32); -INT32 GetDlgItemText32W(HWND32,INT32,LPWSTR,UINT32); -#define GetDlgItemText WINELIB_NAME_AW(GetDlgItemText) -UINT16 GetDoubleClickTime16(void); -UINT32 GetDoubleClickTime32(void); -#define GetDoubleClickTime WINELIB_NAME(GetDoubleClickTime) -UINT16 GetDriveType16(UINT16); /* yes, the arguments differ */ -UINT32 GetDriveType32A(LPCSTR); -UINT32 GetDriveType32W(LPCWSTR); -#define GetDriveType WINELIB_NAME_AW(GetDriveType) -INT16 GetExpandedName16(LPCSTR,LPSTR); -INT32 GetExpandedName32A(LPCSTR,LPSTR); -INT32 GetExpandedName32W(LPCWSTR,LPWSTR); -#define GetExpandedName WINELIB_NAME_AW(GetExpandedName) -DWORD GetFileAttributes16(LPCSTR); -DWORD GetFileAttributes32A(LPCSTR); -DWORD GetFileAttributes32W(LPCWSTR); -#define GetFileAttributes WINELIB_NAME_AW(GetFileAttributes) -DWORD GetFileVersionInfoSize16(LPCSTR,LPDWORD); -DWORD GetFileVersionInfoSize32A(LPCSTR,LPDWORD); -DWORD GetFileVersionInfoSize32W(LPCWSTR,LPDWORD); -#define GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize) -DWORD GetFileVersionInfo16(LPCSTR,DWORD,DWORD,LPVOID); -DWORD GetFileVersionInfo32A(LPCSTR,DWORD,DWORD,LPVOID); -DWORD GetFileVersionInfo32W(LPCWSTR,DWORD,DWORD,LPVOID); -#define GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo) -HWND16 GetFocus16(void); -HWND32 GetFocus32(void); -#define GetFocus WINELIB_NAME(GetFocus) -DWORD GetFreeSpace16(UINT16); -#define GetFreeSpace32(w) (0x100000L) -#define GetFreeSpace WINELIB_NAME(GetFreeSpace) -DWORD GetGlyphOutLine16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*); -DWORD GetGlyphOutLine32A(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*); -DWORD GetGlyphOutLine32W(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*); -#define GetGlyphOutLine WINELIB_NAME_AW(GetGlyphOutLine) -BOOL16 GetInputState16(void); -BOOL32 GetInputState32(void); -#define GetInputState WINELIB_NAME(GetInputState) -UINT16 GetInternalWindowPos16(HWND16,LPRECT16,LPPOINT16); -UINT32 GetInternalWindowPos32(HWND32,LPRECT32,LPPOINT32); -#define GetInternalWindowPos WINELIB_NAME(GetInternalWindowPos) -INT16 GetKBCodePage16(void); -UINT32 GetKBCodePage32(void); -#define GetKBCodePage WINELIB_NAME(GetKBCodePage) -INT16 GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16); -DWORD GetKerningPairs32A(HDC32,DWORD,LPKERNINGPAIR32); -DWORD GetKerningPairs32W(HDC32,DWORD,LPKERNINGPAIR32); -#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs) -INT16 GetKeyboardType16(INT16); -INT32 GetKeyboardType32(INT32); -#define GetKeyboardType WINELIB_NAME(GetKeyboardType) -INT16 GetKeyNameText16(LONG,LPSTR,INT16); -INT32 GetKeyNameText32A(LONG,LPSTR,INT32); -INT32 GetKeyNameText32W(LONG,LPWSTR,INT32); -#define GetKeyNameText WINELIB_NAME_AW(GetKeyNameText) -WORD GetKeyState16(INT16); -WORD GetKeyState32(INT32); -#define GetKeyState WINELIB_NAME(GetKeyState) -HWND16 GetLastActivePopup16(HWND16); -HWND32 GetLastActivePopup32(HWND32); -#define GetLastActivePopup WINELIB_NAME(GetLastActivePopup) -UINT32 GetLogicalDriveStrings32A(UINT32,LPSTR); -UINT32 GetLogicalDriveStrings32W(UINT32,LPWSTR); -#define GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings) -INT16 GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16); -INT32 GetLocaleInfo32A(LCID,LCTYPE,LPSTR,INT32); -INT32 GetLocaleInfo32W(LCID,LCTYPE,LPWSTR,INT32); -#define GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo) -INT16 GetMapMode16(HDC16); -INT32 GetMapMode32(HDC32); -#define GetMapMode WINELIB_NAME(GetMapMode) -HMENU16 GetMenu16(HWND16); -HMENU32 GetMenu32(HWND32); -#define GetMenu WINELIB_NAME(GetMenu) -INT16 GetMenuItemCount16(HMENU16); -INT32 GetMenuItemCount32(HMENU32); -#define GetMenuItemCount WINELIB_NAME(GetMenuItemCount) -UINT16 GetMenuItemID16(HMENU16,INT16); -UINT32 GetMenuItemID32(HMENU32,INT32); -#define GetMenuItemID WINELIB_NAME(GetMenuItemID) -UINT16 GetMenuState16(HMENU16,UINT16,UINT16); -UINT32 GetMenuState32(HMENU32,UINT32,UINT32); -#define GetMenuState WINELIB_NAME(GetMenuState) -INT16 GetMenuString16(HMENU16,UINT16,LPSTR,INT16,UINT16); -INT32 GetMenuString32A(HMENU32,UINT32,LPSTR,INT32,UINT32); -INT32 GetMenuString32W(HMENU32,UINT32,LPWSTR,INT32,UINT32); -#define GetMenuString WINELIB_NAME_AW(GetMenuString) -BOOL16 GetMessage16(SEGPTR,HWND16,UINT16,UINT16); -BOOL32 GetMessage32A(LPMSG32,HWND32,UINT32,UINT32); -BOOL32 GetMessage32W(LPMSG32,HWND32,UINT32,UINT32); -#define GetMessage WINELIB_NAME_AW(GetMessage) -HMETAFILE16 GetMetaFile16(LPCSTR); -HMETAFILE32 GetMetaFile32A(LPCSTR); -HMETAFILE32 GetMetaFile32W(LPCWSTR); -#define GetMetaFile WINELIB_NAME_AW(GetMetaFile) -INT16 GetModuleFileName16(HINSTANCE16,LPSTR,INT16); -DWORD GetModuleFileName32A(HMODULE32,LPSTR,DWORD); -DWORD GetModuleFileName32W(HMODULE32,LPWSTR,DWORD); -#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName) -HMODULE16 GetModuleHandle16(LPCSTR); -HMODULE32 GetModuleHandle32A(LPCSTR); -HMODULE32 GetModuleHandle32W(LPCSTR); -#define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle) -DWORD GetNearestColor16(HDC16,DWORD); -DWORD GetNearestColor32(HDC32,DWORD); -#define GetNearestColor WINELIB_NAME(GetNearestColor) -UINT16 GetNearestPaletteIndex16(HPALETTE16,COLORREF); -UINT32 GetNearestPaletteIndex32(HPALETTE32,COLORREF); -#define GetNearestPaletteIndex WINELIB_NAME(GetNearestPaletteIndex) -HWND16 GetNextDlgGroupItem16(HWND16,HWND16,BOOL16); -HWND32 GetNextDlgGroupItem32(HWND32,HWND32,BOOL32); -#define GetNextDlgGroupItem WINELIB_NAME(GetNextDlgGroupItem) -HWND16 GetNextDlgTabItem16(HWND16,HWND16,BOOL16); -HWND32 GetNextDlgTabItem32(HWND32,HWND32,BOOL32); -#define GetNextDlgTabItem WINELIB_NAME(GetNextDlgTabItem) -HWND16 GetNextWindow16(HWND16,WORD); -#define GetNextWindow32 GetWindow32 -#define GetNextWindow WINELIB_NAME(GetNextWindow) -INT16 GetObject16(HANDLE16,INT16,LPVOID); -INT32 GetObject32A(HANDLE32,INT32,LPVOID); -INT32 GetObject32W(HANDLE32,INT32,LPVOID); -#define GetObject WINELIB_NAME_AW(GetObject) -HWND16 GetOpenClipboardWindow16(void); -HWND32 GetOpenClipboardWindow32(void); -#define GetOpenClipboardWindow WINELIB_NAME(GetOpenClipboardWindow) -UINT16 GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY); -UINT32 GetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY); -#define GetPaletteEntries WINELIB_NAME(GetPaletteEntries) -HWND16 GetParent16(HWND16); -HWND32 GetParent32(HWND32); -#define GetParent WINELIB_NAME(GetParent) -COLORREF GetPixel16(HDC16,INT16,INT16); -COLORREF GetPixel32(HDC32,INT32,INT32); -#define GetPixel WINELIB_NAME(GetPixel) -INT16 GetPolyFillMode16(HDC16); -INT32 GetPolyFillMode32(HDC32); -#define GetPolyFillMode WINELIB_NAME(GetPolyFillMode) -INT16 GetPriorityClipboardFormat16(UINT16*,INT16); -INT32 GetPriorityClipboardFormat32(UINT32*,INT32); -#define GetPriorityClipboardFormat WINELIB_NAME(GetPriorityClipboardFormat) -UINT16 GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR); -UINT32 GetPrivateProfileInt32A(LPCSTR,LPCSTR,INT32,LPCSTR); -UINT32 GetPrivateProfileInt32W(LPCWSTR,LPCWSTR,INT32,LPCWSTR); -#define GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt) -INT16 GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT16,LPCSTR); -INT32 GetPrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT32,LPCSTR); -INT32 GetPrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,INT32,LPCWSTR); -#define GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString) -FARPROC16 GetProcAddress16(HMODULE16,SEGPTR); -FARPROC32 GetProcAddress32(HMODULE32,LPCSTR); -#define GetProcAddress WINELIB_NAME(GetProcAddress) -UINT16 GetProfileInt16(LPCSTR,LPCSTR,INT16); -UINT32 GetProfileInt32A(LPCSTR,LPCSTR,INT32); -UINT32 GetProfileInt32W(LPCWSTR,LPCWSTR,INT32); -#define GetProfileInt WINELIB_NAME_AW(GetProfileInt) -INT16 GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT16); -INT32 GetProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT32); -INT32 GetProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,INT32); -#define GetProfileString WINELIB_NAME_AW(GetProfileString) -HANDLE16 GetProp16(HWND16,LPCSTR); -HANDLE32 GetProp32A(HWND32,LPCSTR); -HANDLE32 GetProp32W(HWND32,LPCWSTR); -#define GetProp WINELIB_NAME_AW(GetProp) -DWORD GetQueueStatus16(UINT16); -DWORD GetQueueStatus32(UINT32); -#define GetQueueStatus WINELIB_NAME(GetQueueStatus) -BOOL16 GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16); -BOOL32 GetRasterizerCaps32(LPRASTERIZER_STATUS,UINT32); -#define GetRasterizerCaps WINELIB_NAME(GetRasterizerCaps) -INT16 GetRelAbs16(HDC16); -INT32 GetRelAbs32(HDC32); -#define GetRelAbs WINELIB_NAME(GetRelAbs) -INT16 GetRgnBox16(HRGN16,LPRECT16); -INT32 GetRgnBox32(HRGN32,LPRECT32); -#define GetRgnBox WINELIB_NAME(GetRgnBox) -INT16 GetROP216(HDC16); -INT32 GetROP232(HDC32); -#define GetROP2 WINELIB_NAME(GetROP2) -BOOL16 GetScrollInfo16(HWND16,INT16,LPSCROLLINFO); -BOOL32 GetScrollInfo32(HWND32,INT32,LPSCROLLINFO); -#define GetScrollInfo WINELIB_NAME(GetScrollInfo) -INT16 GetScrollPos16(HWND16,INT16); -INT32 GetScrollPos32(HWND32,INT32); -#define GetScrollPos WINELIB_NAME(GetScrollPos) -BOOL16 GetScrollRange16(HWND16,INT16,LPINT16,LPINT16); -BOOL32 GetScrollRange32(HWND32,INT32,LPINT32,LPINT32); -#define GetScrollRange WINELIB_NAME(GetScrollRange) -HGDIOBJ16 GetStockObject16(INT16); -HGDIOBJ32 GetStockObject32(INT32); -#define GetStockObject WINELIB_NAME(GetStockObject) -INT16 GetStretchBltMode16(HDC16); -INT32 GetStretchBltMode32(HDC32); -#define GetStretchBltMode WINELIB_NAME(GetStretchBltMode) -BOOL16 GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD); -BOOL32 GetStringType32A(LCID,DWORD,LPCSTR,INT32,LPWORD); -BOOL32 GetStringType32W(DWORD,LPCWSTR,INT32,LPWORD); -#define GetStringType WINELIB_NAME_AW(GetStringType) -HMENU16 GetSubMenu16(HMENU16,INT16); -HMENU32 GetSubMenu32(HMENU32,INT32); -#define GetSubMenu WINELIB_NAME(GetSubMenu) -COLORREF GetSysColor16(INT16); -COLORREF GetSysColor32(INT32); -#define GetSysColor WINELIB_NAME(GetSysColor) -HBRUSH16 GetSysColorBrush16(INT16); -HBRUSH32 GetSysColorBrush32(INT32); -#define GetSysColorBrush WINELIB_NAME(GetSysColorBrush) -HWND16 GetSysModalWindow16(void); -#define GetSysModalWindow32() ((HWND32)0) -#define GetSysModalWindow WINELIB_NAME(GetSysModalWindow) -UINT16 GetSystemDirectory16(LPSTR,UINT16); -UINT32 GetSystemDirectory32A(LPSTR,UINT32); -UINT32 GetSystemDirectory32W(LPWSTR,UINT32); -#define GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory) -HMENU16 GetSystemMenu16(HWND16,BOOL16); -HMENU32 GetSystemMenu32(HWND32,BOOL32); -#define GetSystemMenu WINELIB_NAME(GetSystemMenu) -INT16 GetSystemMetrics16(INT16); -INT32 GetSystemMetrics32(INT32); -#define GetSystemMetrics WINELIB_NAME(GetSystemMetrics) -UINT16 GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY); -UINT32 GetSystemPaletteEntries32(HDC32,UINT32,UINT32,LPPALETTEENTRY); -#define GetSystemPaletteEntries WINELIB_NAME(GetSystemPaletteEntries) -UINT16 GetSystemPaletteUse16(HDC16); -UINT32 GetSystemPaletteUse32(HDC32); -#define GetSystemPaletteUse WINELIB_NAME(GetSystemPaletteUse) -DWORD GetTabbedTextExtent16(HDC16,LPCSTR,INT16,INT16,const INT16*); -DWORD GetTabbedTextExtent32A(HDC32,LPCSTR,INT32,INT32,const INT32*); -DWORD GetTabbedTextExtent32W(HDC32,LPCWSTR,INT32,INT32,const INT32*); -#define GetTabbedTextExtent WINELIB_NAME_AW(GetTabbedTextExtent) -UINT16 GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR); -UINT32 GetTempFileName32A(LPCSTR,LPCSTR,UINT32,LPSTR); -UINT32 GetTempFileName32W(LPCWSTR,LPCWSTR,UINT32,LPWSTR); -#define GetTempFileName WINELIB_NAME_AW(GetTempFileName) -UINT32 GetTempPath32A(UINT32,LPSTR); -UINT32 GetTempPath32W(UINT32,LPWSTR); -#define GetTempPath WINELIB_NAME_AW(GetTempPath) -UINT16 GetTextAlign16(HDC16); -UINT32 GetTextAlign32(HDC32); -#define GetTextAlign WINELIB_NAME(GetTextAlign) -INT16 GetTextCharacterExtra16(HDC16); -INT32 GetTextCharacterExtra32(HDC32); -#define GetTextCharacterExtra WINELIB_NAME(GetTextCharacterExtra) -COLORREF GetTextColor16(HDC16); -COLORREF GetTextColor32(HDC32); -#define GetTextColor WINELIB_NAME(GetTextColor) -BOOL16 GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16); -BOOL32 GetTextExtentPoint32A(HDC32,LPCSTR,INT32,LPSIZE32); -BOOL32 GetTextExtentPoint32W(HDC32,LPCWSTR,INT32,LPSIZE32); -#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint) -INT16 GetTextFace16(HDC16,INT16,LPSTR); -INT32 GetTextFace32A(HDC32,INT32,LPSTR); -INT32 GetTextFace32W(HDC32,INT32,LPWSTR); -#define GetTextFace WINELIB_NAME_AW(GetTextFace) -BOOL16 GetTextMetrics16(HDC16,LPTEXTMETRIC16); -BOOL32 GetTextMetrics32A(HDC32,LPTEXTMETRIC32A); -BOOL32 GetTextMetrics32W(HDC32,LPTEXTMETRIC32W); -#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics) -LPINT16 GetThresholdEvent16(void); -LPDWORD GetThresholdEvent32(void); -#define GetThresholdEvent WINELIB_NAME(GetThresholdEvent) -INT16 GetThresholdStatus16(void); -DWORD GetThresholdStatus32(void); -#define GetThresholdStatus WINELIB_NAME(GetThresholdStatus) -HWND16 GetTopWindow16(HWND16); -HWND32 GetTopWindow32(HWND32); -#define GetTopWindow WINELIB_NAME(GetTopWindow) -BOOL16 GetUpdateRect16(HWND16,LPRECT16,BOOL16); -BOOL32 GetUpdateRect32(HWND32,LPRECT32,BOOL32); -#define GetUpdateRect WINELIB_NAME(GetUpdateRect) -INT16 GetUpdateRgn16(HWND16,HRGN16,BOOL16); -INT32 GetUpdateRgn32(HWND32,HRGN32,BOOL32); -#define GetUpdateRgn WINELIB_NAME(GetUpdateRgn) -LONG GetVersion16(void); -LONG GetVersion32(void); -#define GetVersion WINELIB_NAME(GetVersion) -BOOL16 GetViewportExtEx16(HDC16,LPPOINT16); -BOOL32 GetViewportExtEx32(HDC32,LPPOINT32); -#define GetViewportExtEx WINELIB_NAME(GetViewportExtEx) -BOOL16 GetViewportOrgEx16(HDC16,LPPOINT16); -BOOL32 GetViewportOrgEx32(HDC32,LPPOINT32); -#define GetViewportOrgEx WINELIB_NAME(GetViewportOrgEx) -BOOL32 GetVolumeInformation32A(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD); -BOOL32 GetVolumeInformation32W(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD); -#define GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation) -HWND16 GetWindow16(HWND16,WORD); -HWND32 GetWindow32(HWND32,WORD); -#define GetWindow WINELIB_NAME(GetWindow) -HDC16 GetWindowDC16(HWND16); -HDC32 GetWindowDC32(HWND32); -#define GetWindowDC WINELIB_NAME(GetWindowDC) -BOOL16 GetWindowExtEx16(HDC16,LPPOINT16); -BOOL32 GetWindowExtEx32(HDC32,LPPOINT32); -#define GetWindowExtEx WINELIB_NAME(GetWindowExtEx) -LONG GetWindowLong16(HWND16,INT16); -LONG GetWindowLong32A(HWND32,INT32); -LONG GetWindowLong32W(HWND32,INT32); -#define GetWindowLong WINELIB_NAME_AW(GetWindowLong) -BOOL16 GetWindowOrgEx16(HDC16,LPPOINT16); -BOOL32 GetWindowOrgEx32(HDC32,LPPOINT32); -#define GetWindowOrgEx WINELIB_NAME(GetWindowOrgEx) -BOOL16 GetWindowPlacement16(HWND16,LPWINDOWPLACEMENT16); -BOOL32 GetWindowPlacement32(HWND32,LPWINDOWPLACEMENT32); -#define GetWindowPlacement WINELIB_NAME(GetWindowPlacement) -void GetWindowRect16(HWND16,LPRECT16); -void GetWindowRect32(HWND32,LPRECT32); -#define GetWindowRect WINELIB_NAME(GetWindowRect) -UINT16 GetWindowsDirectory16(LPSTR,UINT16); -UINT32 GetWindowsDirectory32A(LPSTR,UINT32); -UINT32 GetWindowsDirectory32W(LPWSTR,UINT32); -#define GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory) -HTASK16 GetWindowTask16(HWND16); -#define GetWindowTask32(hwnd) ((HTASK32)GetWindowThreadProcessId(hwnd,NULL)) -#define GetWindowTask WINELIB_NAME(GetWindowTask) -INT16 GetWindowText16(HWND16,SEGPTR,INT16); -INT32 GetWindowText32A(HWND32,LPSTR,INT32); -INT32 GetWindowText32W(HWND32,LPWSTR,INT32); -#define GetWindowText WINELIB_NAME_AW(GetWindowText) -INT16 GetWindowTextLength16(HWND16); -INT32 GetWindowTextLength32A(HWND32); -INT32 GetWindowTextLength32W(HWND32); -#define GetWindowTextLength WINELIB_NAME_AW(GetWindowTextLength) -WORD GetWindowWord16(HWND16,INT16); -WORD GetWindowWord32(HWND32,INT32); -#define GetWindowWord WINELIB_NAME(GetWindowWord) -ATOM GlobalAddAtom16(SEGPTR); -ATOM GlobalAddAtom32A(LPCSTR); -ATOM GlobalAddAtom32W(LPCWSTR); -#define GlobalAddAtom WINELIB_NAME_AW(GlobalAddAtom) -HGLOBAL16 GlobalAlloc16(UINT16,DWORD); -HGLOBAL32 GlobalAlloc32(UINT32,DWORD); -#define GlobalAlloc WINELIB_NAME(GlobalAlloc) -DWORD GlobalCompact16(DWORD); -DWORD GlobalCompact32(DWORD); -#define GlobalCompact WINELIB_NAME(GlobalCompact) -UINT16 GlobalFlags16(HGLOBAL16); -UINT32 GlobalFlags32(HGLOBAL32); -#define GlobalFlags WINELIB_NAME(GlobalFlags) -ATOM GlobalFindAtom16(SEGPTR); -ATOM GlobalFindAtom32A(LPCSTR); -ATOM GlobalFindAtom32W(LPCWSTR); -#define GlobalFindAtom WINELIB_NAME_AW(GlobalFindAtom) -HGLOBAL16 GlobalFree16(HGLOBAL16); -HGLOBAL32 GlobalFree32(HGLOBAL32); -#define GlobalFree WINELIB_NAME(GlobalFree) -UINT16 GlobalGetAtomName16(ATOM,LPSTR,INT16); -UINT32 GlobalGetAtomName32A(ATOM,LPSTR,INT32); -UINT32 GlobalGetAtomName32W(ATOM,LPWSTR,INT32); -#define GlobalGetAtomName WINELIB_NAME_AW(GlobalGetAtomName) -DWORD GlobalHandle16(WORD); -HGLOBAL32 GlobalHandle32(LPCVOID); -#define GlobalHandle WINELIB_NAME(GlobalHandle) -VOID GlobalFix16(HGLOBAL16); -VOID GlobalFix32(HGLOBAL32); -#define GlobalFix WINELIB_NAME(GlobalFix) -LPVOID GlobalLock16(HGLOBAL16); -LPVOID GlobalLock32(HGLOBAL32); -#define GlobalLock WINELIB_NAME(GlobalLock) -HGLOBAL16 GlobalReAlloc16(HGLOBAL16,DWORD,UINT16); -HGLOBAL32 GlobalReAlloc32(HGLOBAL32,DWORD,UINT32); -#define GlobalReAlloc WINELIB_NAME(GlobalReAlloc) -DWORD GlobalSize16(HGLOBAL16); -DWORD GlobalSize32(HGLOBAL32); -#define GlobalSize WINELIB_NAME(GlobalSize) -VOID GlobalUnfix16(HGLOBAL16); -VOID GlobalUnfix32(HGLOBAL32); -#define GlobalUnfix WINELIB_NAME(GlobalUnfix) -BOOL16 GlobalUnlock16(HGLOBAL16); -BOOL32 GlobalUnlock32(HGLOBAL32); -#define GlobalUnlock WINELIB_NAME(GlobalUnlock) -BOOL16 GlobalUnWire16(HGLOBAL16); -BOOL32 GlobalUnWire32(HGLOBAL32); -#define GlobalUnWire WINELIB_NAME(GlobalUnWire) -SEGPTR GlobalWire16(HGLOBAL16); -LPVOID GlobalWire32(HGLOBAL32); -#define GlobalWire WINELIB_NAME(GlobalWire) -BOOL16 GrayString16(HDC16,HBRUSH16,GRAYSTRINGPROC16,LPARAM, - INT16,INT16,INT16,INT16,INT16); -BOOL32 GrayString32A(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM, - INT32,INT32,INT32,INT32,INT32); -BOOL32 GrayString32W(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM, - INT32,INT32,INT32,INT32,INT32); -#define GrayString WINELIB_NAME_AW(GrayString) -VOID HideCaret16(HWND16); -BOOL32 HideCaret32(HWND32); -#define HideCaret WINELIB_NAME(HideCaret) -BOOL16 HiliteMenuItem16(HWND16,HMENU16,UINT16,UINT16); -BOOL32 HiliteMenuItem32(HWND32,HMENU32,UINT32,UINT32); -#define HiliteMenuItem WINELIB_NAME(HiliteMenuItem) -void InflateRect16(LPRECT16,INT16,INT16); -void InflateRect32(LPRECT32,INT32,INT32); -#define InflateRect WINELIB_NAME(InflateRect) -WORD InitAtomTable16(WORD); -BOOL32 InitAtomTable32(DWORD); -#define InitAtomTable WINELIB_NAME(InitAtomTable) -BOOL16 InSendMessage16(void); -BOOL32 InSendMessage32(void); -#define InSendMessage WINELIB_NAME(InSendMessage) -BOOL16 InsertMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR); -BOOL32 InsertMenu32A(HMENU32,UINT32,UINT32,UINT32,LPCSTR); -BOOL32 InsertMenu32W(HMENU32,UINT32,UINT32,UINT32,LPCWSTR); -#define InsertMenu WINELIB_NAME_AW(InsertMenu) -INT16 IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16); -INT32 IntersectClipRect32(HDC32,INT32,INT32,INT32,INT32); -#define IntersectClipRect WINELIB_NAME(IntersectClipRect) -BOOL16 IntersectRect16(LPRECT16,const RECT16*,const RECT16*); -BOOL32 IntersectRect32(LPRECT32,const RECT32*,const RECT32*); -#define IntersectRect WINELIB_NAME(IntersectRect) -void InvalidateRect16(HWND16,const RECT16*,BOOL16); -void InvalidateRect32(HWND32,const RECT32*,BOOL32); -#define InvalidateRect WINELIB_NAME(InvalidateRect) -void InvalidateRgn16(HWND16,HRGN16,BOOL16); -void InvalidateRgn32(HWND32,HRGN32,BOOL32); -#define InvalidateRgn WINELIB_NAME(InvalidateRgn) -void InvertRect16(HDC16,const RECT16*); -void InvertRect32(HDC32,const RECT32*); -#define InvertRect WINELIB_NAME(InvertRect) -BOOL16 InvertRgn16(HDC16,HRGN16); -BOOL32 InvertRgn32(HDC32,HRGN32); -#define InvertRgn WINELIB_NAME(InvertRgn) -BOOL16 IsBadCodePtr16(SEGPTR); -BOOL32 IsBadCodePtr32(FARPROC32); -#define IsBadCodePtr WINELIB_NAME(IsBadCodePtr) -BOOL16 IsBadHugeReadPtr16(SEGPTR,DWORD); -BOOL32 IsBadHugeReadPtr32(LPCVOID,UINT32); -#define IsBadHugeReadPtr WINELIB_NAME(IsBadHugeReadPtr) -BOOL16 IsBadHugeWritePtr16(SEGPTR,DWORD); -BOOL32 IsBadHugeWritePtr32(LPVOID,UINT32); -#define IsBadHugeWritePtr WINELIB_NAME(IsBadHugeWritePtr) -BOOL16 IsBadReadPtr16(SEGPTR,UINT16); -BOOL32 IsBadReadPtr32(LPCVOID,UINT32); -#define IsBadReadPtr WINELIB_NAME(IsBadReadPtr) -BOOL16 IsBadStringPtr16(SEGPTR,UINT16); -BOOL32 IsBadStringPtr32A(LPCSTR,UINT32); -BOOL32 IsBadStringPtr32W(LPCWSTR,UINT32); -#define IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr) -BOOL16 IsBadWritePtr16(SEGPTR,UINT16); -BOOL32 IsBadWritePtr32(LPVOID,UINT32); -#define IsBadWritePtr WINELIB_NAME(IsBadWritePtr) -BOOL16 IsCharAlpha16(CHAR); -BOOL32 IsCharAlpha32A(CHAR); -BOOL32 IsCharAlpha32W(WCHAR); -#define IsCharAlpha WINELIB_NAME_AW(IsCharAlpha) -BOOL16 IsCharAlphaNumeric16(CHAR); -BOOL32 IsCharAlphaNumeric32A(CHAR); -BOOL32 IsCharAlphaNumeric32W(WCHAR); -#define IsCharAlphaNumeric WINELIB_NAME_AW(IsCharAlphaNumeric) -BOOL16 IsCharLower16(CHAR); -BOOL32 IsCharLower32A(CHAR); -BOOL32 IsCharLower32W(WCHAR); -#define IsCharLower WINELIB_NAME_AW(IsCharLower) -BOOL16 IsCharUpper16(CHAR); -BOOL32 IsCharUpper32A(CHAR); -BOOL32 IsCharUpper32W(WCHAR); -#define IsCharUpper WINELIB_NAME_AW(IsCharUpper) -BOOL16 IsChild16(HWND16,HWND16); -BOOL32 IsChild32(HWND32,HWND32); -#define IsChild WINELIB_NAME(IsChild) -BOOL16 IsClipboardFormatAvailable16(UINT16); -BOOL32 IsClipboardFormatAvailable32(UINT32); -#define IsClipboardFormatAvailable WINELIB_NAME(IsClipboardFormatAvailable) -BOOL16 IsDBCSLeadByte16(BYTE); -BOOL32 IsDBCSLeadByte32(BYTE); -#define IsDBCSLeadByte WINELIB_NAME(IsDBCSLeadByte) -BOOL16 IsDialogMessage16(HWND16,LPMSG16); -BOOL32 IsDialogMessage32A(HWND32,LPMSG32); -BOOL32 IsDialogMessage32W(HWND32,LPMSG32); -#define IsDialogMessage WINELIB_NAME(IsDialogMessage) -UINT16 IsDlgButtonChecked16(HWND16,UINT16); -UINT32 IsDlgButtonChecked32(HWND32,UINT32); -#define IsDlgButtonChecked WINELIB_NAME(IsDlgButtonChecked) -BOOL16 IsIconic16(HWND16); -BOOL32 IsIconic32(HWND32); -#define IsIconic WINELIB_NAME(IsIconic) -BOOL16 IsMenu16(HMENU16); -BOOL32 IsMenu32(HMENU32); -#define IsMenu WINELIB_NAME(IsMenu) -BOOL16 IsRectEmpty16(const RECT16*); -BOOL32 IsRectEmpty32(const RECT32*); -#define IsRectEmpty WINELIB_NAME(IsRectEmpty) -BOOL16 IsWindow16(HWND16); -BOOL32 IsWindow32(HWND32); -#define IsWindow WINELIB_NAME(IsWindow) -BOOL16 IsWindowEnabled16(HWND16); -BOOL32 IsWindowEnabled32(HWND32); -#define IsWindowEnabled WINELIB_NAME(IsWindowEnabled) -BOOL16 IsWindowVisible16(HWND16); -BOOL32 IsWindowVisible32(HWND32); -#define IsWindowVisible WINELIB_NAME(IsWindowVisible) -BOOL16 IsZoomed16(HWND16); -BOOL32 IsZoomed32(HWND32); -#define IsZoomed WINELIB_NAME(IsZoomed) -BOOL16 KillSystemTimer16(HWND16,UINT16); -BOOL32 KillSystemTimer32(HWND32,UINT32); -#define KillSystemTimer WINELIB_NAME(KillSystemTimer) -BOOL16 KillTimer16(HWND16,UINT16); -BOOL32 KillTimer32(HWND32,UINT32); -#define KillTimer WINELIB_NAME(KillTimer) -HFILE16 LZOpenFile16(LPCSTR,LPOFSTRUCT,UINT16); -HFILE32 LZOpenFile32A(LPCSTR,LPOFSTRUCT,UINT32); -HFILE32 LZOpenFile32W(LPCWSTR,LPOFSTRUCT,UINT32); -#define LZOpenFile WINELIB_NAME_AW(LZOpenFile) -INT16 LZRead16(HFILE16,LPVOID,UINT16); -INT32 LZRead32(HFILE32,LPVOID,UINT32); -#define LZRead WINELIB_NAME(LZRead) -INT16 LZStart16(void); -INT32 LZStart32(void); -#define LZStart WINELIB_NAME(LZStart) -VOID LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM); -BOOL32 LineDDA32(INT32,INT32,INT32,INT32,LINEDDAPROC32,LPARAM); -#define LineDDA WINELIB_NAME(LineDDA) -BOOL16 LineTo16(HDC16,INT16,INT16); -BOOL32 LineTo32(HDC32,INT32,INT32); -#define LineTo WINELIB_NAME(LineTo) -HACCEL16 LoadAccelerators16(HINSTANCE16,SEGPTR); -HACCEL32 LoadAccelerators32A(HINSTANCE32,LPCSTR); -HACCEL32 LoadAccelerators32W(HINSTANCE32,LPCWSTR); -#define LoadAccelerators WINELIB_NAME_AW(LoadAccelerators) -HBITMAP16 LoadBitmap16(HANDLE16,SEGPTR); -HBITMAP32 LoadBitmap32A(HANDLE32,LPCSTR); -HBITMAP32 LoadBitmap32W(HANDLE32,LPCWSTR); -#define LoadBitmap WINELIB_NAME(LoadBitmap) -HCURSOR16 LoadCursor16(HINSTANCE16,SEGPTR); -HCURSOR32 LoadCursor32A(HINSTANCE32,LPCSTR); -HCURSOR32 LoadCursor32W(HINSTANCE32,LPCWSTR); -#define LoadCursor WINELIB_NAME_AW(LoadCursor) -HICON16 LoadIcon16(HINSTANCE16,SEGPTR); -HICON32 LoadIcon32A(HINSTANCE32,LPCSTR); -HICON32 LoadIcon32W(HINSTANCE32,LPCWSTR); -#define LoadIcon WINELIB_NAME_AW(LoadIcon) -HINSTANCE16 LoadLibrary16(LPCSTR); -HINSTANCE32 LoadLibrary32A(LPCSTR); -HINSTANCE32 LoadLibrary32W(LPCWSTR); -#define LoadLibrary WINELIB_NAME_AW(LoadLibrary) -HMENU16 LoadMenu16(HINSTANCE16,SEGPTR); -HMENU32 LoadMenu32A(HINSTANCE32,LPCSTR); -HMENU32 LoadMenu32W(HINSTANCE32,LPCWSTR); -#define LoadMenu WINELIB_NAME_AW(LoadMenu) -HMENU16 LoadMenuIndirect16(LPCVOID); -HMENU32 LoadMenuIndirect32A(LPCVOID); -HMENU32 LoadMenuIndirect32W(LPCVOID); -#define LoadMenuIndirect WINELIB_NAME_AW(LoadMenuIndirect) -HINSTANCE16 LoadModule16(LPCSTR,LPVOID); -DWORD LoadModule32(LPCSTR,LPVOID); -#define LoadModule WINELIB_NAME(LoadModule) -HGLOBAL16 LoadResource16(HINSTANCE16,HRSRC16); -HGLOBAL32 LoadResource32(HINSTANCE32,HRSRC32); -#define LoadResource WINELIB_NAME(LoadResource) -INT16 LoadString16(HINSTANCE16,UINT16,LPSTR,INT16); -INT32 LoadString32A(HINSTANCE32,UINT32,LPSTR,INT32); -INT32 LoadString32W(HINSTANCE32,UINT32,LPWSTR,INT32); -#define LoadString WINELIB_NAME_AW(LoadString) -HLOCAL16 LocalAlloc16(UINT16,WORD); -HLOCAL32 LocalAlloc32(UINT32,DWORD); -#define LocalAlloc WINELIB_NAME(LocalAlloc) -UINT16 LocalCompact16(UINT16); -UINT32 LocalCompact32(UINT32); -#define LocalCompact WINELIB_NAME(LocalCompact) -UINT16 LocalFlags16(HLOCAL16); -UINT32 LocalFlags32(HLOCAL32); -#define LocalFlags WINELIB_NAME(LocalFlags) -HLOCAL16 LocalFree16(HLOCAL16); -HLOCAL32 LocalFree32(HLOCAL32); -#define LocalFree WINELIB_NAME(LocalFree) -HLOCAL16 LocalHandle16(WORD); -HLOCAL32 LocalHandle32(LPCVOID); -#define LocalHandle WINELIB_NAME(LocalHandle) -SEGPTR LocalLock16(HLOCAL16); -LPVOID LocalLock32(HLOCAL32); -#define LocalLock WINELIB_NAME(LocalLock) -HLOCAL16 LocalReAlloc16(HLOCAL16,WORD,UINT16); -HLOCAL32 LocalReAlloc32(HLOCAL32,DWORD,UINT32); -#define LocalReAlloc WINELIB_NAME(LocalReAlloc) -UINT16 LocalShrink16(HGLOBAL16,UINT16); -UINT32 LocalShrink32(HGLOBAL32,UINT32); -#define LocalShrink WINELIB_NAME(LocalShrink) -UINT16 LocalSize16(HLOCAL16); -UINT32 LocalSize32(HLOCAL32); -#define LocalSize WINELIB_NAME(LocalSize) -BOOL16 LocalUnlock16(HLOCAL16); -BOOL32 LocalUnlock32(HLOCAL32); -#define LocalUnlock WINELIB_NAME(LocalUnlock) -LPVOID LockResource16(HGLOBAL16); -LPVOID LockResource32(HGLOBAL32); -#define LockResource WINELIB_NAME(LockResource) -HGLOBAL16 LockSegment16(HGLOBAL16); -#define LockSegment32(handle) GlobalFix32((HANDLE32)(handle)) -#define LockSegment WINELIB_NAME(LockSegment) -BOOL16 LockWindowUpdate16(HWND16); -BOOL32 LockWindowUpdate32(HWND32); -#define LockWindowUpdate WINELIB_NAME(LockWindowUpdate) -BOOL16 LPtoDP16(HDC16,LPPOINT16,INT16); -BOOL32 LPtoDP32(HDC32,LPPOINT32,INT32); -#define LPtoDP WINELIB_NAME(LPtoDP) -void LZClose16(HFILE16); -void LZClose32(HFILE32); -#define LZClose WINELIB_NAME(LZClose) -LONG LZCopy16(HFILE16,HFILE16); -LONG LZCopy32(HFILE32,HFILE32); -#define LZCopy WINELIB_NAME(LZCopy) -HFILE16 LZInit16(HFILE16); -HFILE32 LZInit32(HFILE32); -#define LZInit WINELIB_NAME(LZInit) -LONG LZSeek16(HFILE16,LONG,INT16); -LONG LZSeek32(HFILE32,LONG,INT32); -#define LZSeek WINELIB_NAME(LZSeek) -UINT16 MapVirtualKey16(UINT16,UINT16); -UINT32 MapVirtualKey32A(UINT32,UINT32); -UINT32 MapVirtualKey32W(UINT32,UINT32); -#define MapVirtualKey WINELIB_NAME_AW(MapVirtualKey) -FARPROC16 MakeProcInstance16(FARPROC16,HANDLE16); -#define MakeProcInstance32(proc,inst) (proc) -#define MakeProcInstance WINELIB_NAME(MakeProcInstance) -void MapDialogRect16(HWND16,LPRECT16); -void MapDialogRect32(HWND32,LPRECT32); -#define MapDialogRect WINELIB_NAME(MapDialogRect) -void MapWindowPoints16(HWND16,HWND16,LPPOINT16,UINT16); -void MapWindowPoints32(HWND32,HWND32,LPPOINT32,UINT32); -#define MapWindowPoints WINELIB_NAME(MapWindowPoints) -VOID MessageBeep16(UINT16); -BOOL32 MessageBeep32(UINT32); -#define MessageBeep WINELIB_NAME(MessageBeep) -INT16 MessageBox16(HWND16,LPCSTR,LPCSTR,UINT16); -INT32 MessageBox32A(HWND32,LPCSTR,LPCSTR,UINT32); -INT32 MessageBox32W(HWND32,LPCWSTR,LPCWSTR,UINT32); -#define MessageBox WINELIB_NAME_AW(MessageBox) -BOOL16 ModifyMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR); -BOOL32 ModifyMenu32A(HMENU32,UINT32,UINT32,UINT32,LPCSTR); -BOOL32 ModifyMenu32W(HMENU32,UINT32,UINT32,UINT32,LPCWSTR); -#define ModifyMenu WINELIB_NAME_AW(ModifyMenu) -BOOL16 MoveToEx16(HDC16,INT16,INT16,LPPOINT16); -BOOL32 MoveToEx32(HDC32,INT32,INT32,LPPOINT32); -#define MoveToEx WINELIB_NAME(MoveToEx) -BOOL16 MoveWindow16(HWND16,INT16,INT16,INT16,INT16,BOOL16); -BOOL32 MoveWindow32(HWND32,INT32,INT32,INT32,INT32,BOOL32); -#define MoveWindow WINELIB_NAME(MoveWindow) -INT16 MulDiv16(INT16,INT16,INT16); -INT32 MulDiv32(INT32,INT32,INT32); -#define MulDiv WINELIB_NAME(MulDiv) -INT16 OemToAnsi16(LPCSTR,LPSTR); -#define OemToAnsi32A OemToChar32A -#define OemToAnsi32W OemToChar32W -#define OemToAnsi WINELIB_NAME_AW(OemToAnsi) -VOID OemToAnsiBuff16(LPCSTR,LPSTR,UINT16); -#define OemToAnsiBuff32A OemToCharBuff32A -#define OemToAnsiBuff32W OemToCharBuff32W -#define OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff) -BOOL32 OemToChar32A(LPCSTR,LPSTR); -BOOL32 OemToChar32W(LPCSTR,LPWSTR); -#define OemToChar WINELIB_NAME_AW(OemToChar) -BOOL32 OemToCharBuff32A(LPCSTR,LPSTR,DWORD); -BOOL32 OemToCharBuff32W(LPCSTR,LPWSTR,DWORD); -#define OemToCharBuff WINELIB_NAME_AW(OemToCharBuff) -INT16 OffsetClipRgn16(HDC16,INT16,INT16); -INT32 OffsetClipRgn32(HDC32,INT32,INT32); -#define OffsetClipRgn WINELIB_NAME(OffsetClipRgn) -void OffsetRect16(LPRECT16,INT16,INT16); -void OffsetRect32(LPRECT32,INT32,INT32); -#define OffsetRect WINELIB_NAME(OffsetRect) -INT16 OffsetRgn16(HRGN16,INT16,INT16); -INT32 OffsetRgn32(HRGN32,INT32,INT32); -#define OffsetRgn WINELIB_NAME(OffsetRgn) -BOOL16 OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16); -BOOL32 OffsetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32); -#define OffsetViewportOrgEx WINELIB_NAME(OffsetViewportOrgEx) -BOOL16 OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16); -BOOL32 OffsetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32); -#define OffsetWindowOrgEx WINELIB_NAME(OffsetWindowOrgEx) -BOOL16 OpenClipboard16(HWND16); -BOOL32 OpenClipboard32(HWND32); -#define OpenClipboard WINELIB_NAME(OpenClipboard) -HFILE16 OpenFile16(LPCSTR,OFSTRUCT*,UINT16); -HFILE32 OpenFile32(LPCSTR,OFSTRUCT*,UINT32); -#define OpenFile WINELIB_NAME(OpenFile) -BOOL16 OpenIcon16(HWND16); -BOOL32 OpenIcon32(HWND32); -#define OpenIcon WINELIB_NAME(OpenIcon) -INT16 OpenSound16(void); -VOID OpenSound32(void); -#define OpenSound WINELIB_NAME(OpenSound) -VOID OutputDebugString16(LPCSTR); -VOID OutputDebugString32A(LPCSTR); -VOID OutputDebugString32W(LPCWSTR); -#define OutputDebugString WINELIB_NAME_AW(OutputDebugString) -BOOL16 PaintRgn16(HDC16,HRGN16); -BOOL32 PaintRgn32(HDC32,HRGN32); -#define PaintRgn WINELIB_NAME(PaintRgn) -BOOL16 PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD); -BOOL32 PatBlt32(HDC32,INT32,INT32,INT32,INT32,DWORD); -#define PatBlt WINELIB_NAME(PatBlt) -BOOL16 PeekMessage16(LPMSG16,HWND16,UINT16,UINT16,UINT16); -BOOL32 PeekMessage32A(LPMSG32,HWND32,UINT32,UINT32,UINT32); -BOOL32 PeekMessage32W(LPMSG32,HWND32,UINT32,UINT32,UINT32); -#define PeekMessage WINELIB_NAME_AW(PeekMessage) -BOOL16 Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16); -BOOL32 Pie32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32); -#define Pie WINELIB_NAME(Pie) -BOOL16 PlayMetaFile16(HDC16,HMETAFILE16); -BOOL32 PlayMetaFile32(HDC32,HMETAFILE32); -#define PlayMetaFile WINELIB_NAME(PlayMetaFile) -VOID PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16); -BOOL32 PlayMetaFileRecord32(HDC32,LPHANDLETABLE32,LPMETARECORD,UINT32); -#define PlayMetaFileRecord WINELIB_NAME(PlayMetaFileRecord) -BOOL16 PolyPolygon16(HDC16,LPPOINT16,LPINT16,UINT16); -BOOL32 PolyPolygon32(HDC32,LPPOINT32,LPINT32,UINT32); -#define PolyPolygon WINELIB_NAME(PolyPolygon) -BOOL16 Polygon16(HDC16,LPPOINT16,INT16); -BOOL32 Polygon32(HDC32,LPPOINT32,INT32); -#define Polygon WINELIB_NAME(Polygon) -BOOL16 Polyline16(HDC16,LPPOINT16,INT16); -BOOL32 Polyline32(HDC32,LPPOINT32,INT32); -#define Polyline WINELIB_NAME(Polyline) -BOOL16 PostAppMessage16(HTASK16,UINT16,WPARAM16,LPARAM); -#define PostAppMessage32A(thread,msg,wparam,lparam) \ - PostThreadMessage32A((DWORD)(thread),msg,wparam,lparam) -#define PostAppMessage32W(thread,msg,wparam,lparam) \ - PostThreadMessage32W((DWORD)(thread),msg,wparam,lparam) -#define PostAppMessage WINELIB_NAME_AW(PostAppMessage) -BOOL16 PostMessage16(HWND16,UINT16,WPARAM16,LPARAM); -BOOL32 PostMessage32A(HWND32,UINT32,WPARAM32,LPARAM); -BOOL32 PostMessage32W(HWND32,UINT32,WPARAM32,LPARAM); -#define PostMessage WINELIB_NAME_AW(PostMessage) -void PostQuitMessage16(INT16); -void PostQuitMessage32(INT32); -#define PostQuitMessage WINELIB_NAME(PostQuitMessage) -BOOL16 PtInRect16(const RECT16*,POINT16); -BOOL32 PtInRect32(const RECT32*,POINT32); -#define PtInRect WINELIB_NAME(PtInRect) -BOOL16 PtInRegion16(HRGN16,INT16,INT16); -BOOL32 PtInRegion32(HRGN32,INT32,INT32); -#define PtInRegion WINELIB_NAME(PtInRegion) -BOOL16 PtVisible16(HDC16,INT16,INT16); -BOOL32 PtVisible32(HDC32,INT32,INT32); -#define PtVisible WINELIB_NAME(PtVisible) -UINT16 RealizePalette16(HDC16); -UINT32 RealizePalette32(HDC32); -#define RealizePalette WINELIB_NAME(RealizePalette) -BOOL16 Rectangle16(HDC16,INT16,INT16,INT16,INT16); -BOOL32 Rectangle32(HDC32,INT32,INT32,INT32,INT32); -#define Rectangle WINELIB_NAME(Rectangle) -BOOL16 RectInRegion16(HRGN16,const RECT16 *); -BOOL32 RectInRegion32(HRGN32,const RECT32 *); -#define RectInRegion WINELIB_NAME(RectInRegion) -BOOL16 RectVisible16(HDC16,LPRECT16); -BOOL32 RectVisible32(HDC32,LPRECT32); -#define RectVisible WINELIB_NAME(RectVisible) -BOOL16 RedrawWindow16(HWND16,const RECT16*,HRGN16,UINT16); -BOOL32 RedrawWindow32(HWND32,const RECT32*,HRGN32,UINT32); -#define RedrawWindow WINELIB_NAME(RedrawWindow) -DWORD RegCreateKey16(HKEY,LPCSTR,LPHKEY); -DWORD RegCreateKey32A(HKEY,LPCSTR,LPHKEY); -DWORD RegCreateKey32W(HKEY,LPCWSTR,LPHKEY); -#define RegCreateKey WINELIB_NAME_AW(RegCreateKey) -DWORD RegDeleteKey16(HKEY,LPCSTR); -DWORD RegDeleteKey32A(HKEY,LPCSTR); -DWORD RegDeleteKey32W(HKEY,LPWSTR); -#define RegDeleteKey WINELIB_NAME_AW(RegDeleteKey) -DWORD RegDeleteValue16(HKEY,LPSTR); -DWORD RegDeleteValue32A(HKEY,LPSTR); -DWORD RegDeleteValue32W(HKEY,LPWSTR); -#define RegDeleteValue WINELIB_NAME_AW(RegDeleteValue) -DWORD RegEnumKey16(HKEY,DWORD,LPSTR,DWORD); -DWORD RegEnumKey32A(HKEY,DWORD,LPSTR,DWORD); -DWORD RegEnumKey32W(HKEY,DWORD,LPWSTR,DWORD); -#define RegEnumKey WINELIB_NAME_AW(RegEnumKey) -DWORD RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD); -DWORD RegEnumValue32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD); -DWORD RegEnumValue32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD); -#define RegEnumValue WINELIB_NAME_AW(RegEnumValue) -ATOM RegisterClass16(const WNDCLASS16*); -ATOM RegisterClass32A(const WNDCLASS32A *); -ATOM RegisterClass32W(const WNDCLASS32W *); -#define RegisterClass WINELIB_NAME_AW(RegisterClass) -ATOM RegisterClassEx16(const WNDCLASSEX16*); -ATOM RegisterClassEx32A(const WNDCLASSEX32A *); -ATOM RegisterClassEx32W(const WNDCLASSEX32W *); -#define RegisterClassEx WINELIB_NAME_AW(RegisterClassEx) -UINT16 RegisterClipboardFormat16(LPCSTR); -UINT32 RegisterClipboardFormat32A(LPCSTR); -UINT32 RegisterClipboardFormat32W(LPCWSTR); -#define RegisterClipboardFormat WINELIB_NAME_AW(RegisterClipboardFormat) -WORD RegisterWindowMessage16(SEGPTR); -WORD RegisterWindowMessage32A(LPCSTR); -WORD RegisterWindowMessage32W(LPCWSTR); -#define RegisterWindowMessage WINELIB_NAME_AW(RegisterWindowMessage) -DWORD RegOpenKey16(HKEY,LPCSTR,LPHKEY); -DWORD RegOpenKey32A(HKEY,LPCSTR,LPHKEY); -DWORD RegOpenKey32W(HKEY,LPCWSTR,LPHKEY); -#define RegOpenKey WINELIB_NAME_AW(RegOpenKey) -DWORD RegQueryValue16(HKEY,LPSTR,LPSTR,LPDWORD); -DWORD RegQueryValue32A(HKEY,LPSTR,LPSTR,LPDWORD); -DWORD RegQueryValue32W(HKEY,LPWSTR,LPWSTR,LPDWORD); -#define RegQueryValue WINELIB_NAME_AW(RegQueryValue) -DWORD RegQueryValueEx16(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD); -DWORD RegQueryValueEx32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD); -DWORD RegQueryValueEx32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD); -#define RegQueryValueEx WINELIB_NAME_AW(RegQueryValueEx) -DWORD RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD); -DWORD RegSetValue32A(HKEY,LPCSTR,DWORD,LPCSTR,DWORD); -DWORD RegSetValue32W(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD); -#define RegSetValue WINELIB_NAME_AW(RegSetValue) -DWORD RegSetValueEx16(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD); -DWORD RegSetValueEx32A(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD); -DWORD RegSetValueEx32W(HKEY,LPWSTR,DWORD,DWORD,LPBYTE,DWORD); -#define RegSetValueEx WINELIB_NAME_AW(RegSetValueEx) -INT16 ReleaseDC16(HWND16,HDC16); -INT32 ReleaseDC32(HWND32,HDC32); -#define ReleaseDC WINELIB_NAME(ReleaseDC) -BOOL16 RemoveDirectory16(LPCSTR); -BOOL32 RemoveDirectory32A(LPCSTR); -BOOL32 RemoveDirectory32W(LPCWSTR); -#define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory) -BOOL16 RemoveFontResource16(SEGPTR); -BOOL32 RemoveFontResource32A(LPCSTR); -BOOL32 RemoveFontResource32W(LPCWSTR); -#define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource) -BOOL16 RemoveMenu16(HMENU16,UINT16,UINT16); -BOOL32 RemoveMenu32(HMENU32,UINT32,UINT32); -#define RemoveMenu WINELIB_NAME(RemoveMenu) -HANDLE16 RemoveProp16(HWND16,LPCSTR); -HANDLE32 RemoveProp32A(HWND32,LPCSTR); -HANDLE32 RemoveProp32W(HWND32,LPCWSTR); -#define RemoveProp WINELIB_NAME_AW(RemoveProp) -VOID ReplyMessage16(LRESULT); -BOOL32 ReplyMessage32(LRESULT); -#define ReplyMessage WINELIB_NAME(ReplyMessage) -HDC16 ResetDC16(HDC16,const DEVMODE16 *); -HDC32 ResetDC32A(HDC32,const DEVMODE32A *); -HDC32 ResetDC32W(HDC32,const DEVMODE32W *); -#define ResetDC WINELIB_NAME_AW(ResetDC) -BOOL16 ResizePalette16(HPALETTE16,UINT16); -BOOL32 ResizePalette32(HPALETTE32,UINT32); -#define ResizePalette WINELIB_NAME(ResizePalette) -BOOL16 RestoreDC16(HDC16,INT16); -BOOL32 RestoreDC32(HDC32,INT32); -#define RestoreDC WINELIB_NAME(RestoreDC) -BOOL16 RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16); -BOOL32 RoundRect32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32); -#define RoundRect WINELIB_NAME(RoundRect) -INT16 SaveDC16(HDC16); -INT32 SaveDC32(HDC32); -#define SaveDC WINELIB_NAME(SaveDC) -BOOL16 ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16); -BOOL32 ScaleViewportExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32); -#define ScaleViewportExtEx WINELIB_NAME(ScaleViewportExtEx) -BOOL16 ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16); -BOOL32 ScaleWindowExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32); -#define ScaleWindowExtEx WINELIB_NAME(ScaleWindowExtEx) -void ScreenToClient16(HWND16,LPPOINT16); -void ScreenToClient32(HWND32,LPPOINT32); -#define ScreenToClient WINELIB_NAME(ScreenToClient) -VOID ScrollChildren16(HWND16,UINT16,WPARAM16,LPARAM); -VOID ScrollChildren32(HWND32,UINT32,WPARAM32,LPARAM); -#define ScrollChildren WINELIB_NAME(ScrollChildren) -BOOL16 ScrollDC16(HDC16,INT16,INT16,const RECT16*,const RECT16*, +#define CreateDialogIndirect WINELIB_NAME_AW(CreateDialogIndirect) +HWND16 WINAPI CreateDialogIndirectParam16(HINSTANCE16,LPCVOID,HWND16, + DLGPROC16,LPARAM); +HWND32 WINAPI CreateDialogIndirectParam32A(HINSTANCE32,LPCVOID,HWND32, + DLGPROC32,LPARAM); +HWND32 WINAPI CreateDialogIndirectParam32W(HINSTANCE32,LPCVOID,HWND32, + DLGPROC32,LPARAM); +#define CreateDialogIndirectParam WINELIB_NAME_AW(CreateDialogIndirectParam) +HWND16 WINAPI CreateDialogParam16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16,LPARAM); +HWND32 WINAPI CreateDialogParam32A(HINSTANCE32,LPCSTR,HWND32,DLGPROC32,LPARAM); +HWND32 WINAPI CreateDialogParam32W(HINSTANCE32,LPCWSTR,HWND32,DLGPROC32,LPARAM); +#define CreateDialogParam WINELIB_NAME_AW(CreateDialogParam) +HBITMAP16 WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD, + LPCVOID,const BITMAPINFO*,UINT16); +HBITMAP32 WINAPI CreateDIBitmap32(HDC32,const BITMAPINFOHEADER*,DWORD, + LPCVOID,const BITMAPINFO*,UINT32); +#define CreateDIBitmap WINELIB_NAME(CreateDIBitmap) +HBRUSH16 WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16); +HBRUSH32 WINAPI CreateDIBPatternBrush32(HGLOBAL32,UINT32); +#define CreateDIBPatternBrush WINELIB_NAME(CreateDIBPatternBrush) +BOOL16 WINAPI CreateDirectory16(LPCSTR,LPVOID); +BOOL32 WINAPI CreateDirectory32A(LPCSTR,LPSECURITY_ATTRIBUTES); +BOOL32 WINAPI CreateDirectory32W(LPCWSTR,LPSECURITY_ATTRIBUTES); +#define CreateDirectory WINELIB_NAME_AW(CreateDirectory) +BOOL32 WINAPI CreateDirectoryEx32A(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); +BOOL32 WINAPI CreateDirectoryEx32W(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); +#define CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx) +HBITMAP16 WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16); +HBITMAP32 WINAPI CreateDiscardableBitmap32(HDC32,INT32,INT32); +#define CreateDiscardableBitmap WINELIB_NAME(CreateDiscardableBitmap) +HRGN16 WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16); +HRGN32 WINAPI CreateEllipticRgn32(INT32,INT32,INT32,INT32); +#define CreateEllipticRgn WINELIB_NAME(CreateEllipticRgn) +HRGN16 WINAPI CreateEllipticRgnIndirect16(const RECT16 *); +HRGN32 WINAPI CreateEllipticRgnIndirect32(const RECT32 *); +#define CreateEllipticRgnIndirect WINELIB_NAME(CreateEllipticRgnIndirect) +HFONT16 WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE, + BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR); +HFONT32 WINAPI CreateFont32A(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD, + DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR); +HFONT32 WINAPI CreateFont32W(INT32,INT32,INT32,INT32,INT32,DWORD,DWORD, + DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR); +#define CreateFont WINELIB_NAME_AW(CreateFont) +HFONT16 WINAPI CreateFontIndirect16(const LOGFONT16*); +HFONT32 WINAPI CreateFontIndirect32A(const LOGFONT32A*); +HFONT32 WINAPI CreateFontIndirect32W(const LOGFONT32W*); +#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect) +HBRUSH16 WINAPI CreateHatchBrush16(INT16,COLORREF); +HBRUSH32 WINAPI CreateHatchBrush32(INT32,COLORREF); +#define CreateHatchBrush WINELIB_NAME(CreateHatchBrush) +HDC16 WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODE16*); +HDC32 WINAPI CreateIC32A(LPCSTR,LPCSTR,LPCSTR,const DEVMODE32A*); +HDC32 WINAPI CreateIC32W(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODE32W*); +#define CreateIC WINELIB_NAME_AW(CreateIC) +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) +HMENU16 WINAPI CreateMenu16(void); +HMENU32 WINAPI CreateMenu32(void); +#define CreateMenu WINELIB_NAME(CreateMenu) +HDC16 WINAPI CreateMetaFile16(LPCSTR); +HDC32 WINAPI CreateMetaFile32A(LPCSTR); +HDC32 WINAPI CreateMetaFile32W(LPCWSTR); +#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile) +HPALETTE16 WINAPI CreatePalette16(const LOGPALETTE*); +HPALETTE32 WINAPI CreatePalette32(const LOGPALETTE*); +#define CreatePalette WINELIB_NAME(CreatePalette) +HBRUSH16 WINAPI CreatePatternBrush16(HBITMAP16); +HBRUSH32 WINAPI CreatePatternBrush32(HBITMAP32); +#define CreatePatternBrush WINELIB_NAME(CreatePatternBrush) +HPEN16 WINAPI CreatePen16(INT16,INT16,COLORREF); +HPEN32 WINAPI CreatePen32(INT32,INT32,COLORREF); +#define CreatePen WINELIB_NAME(CreatePen) +HPEN16 WINAPI CreatePenIndirect16(const LOGPEN16*); +HPEN32 WINAPI CreatePenIndirect32(const LOGPEN32*); +#define CreatePenIndirect WINELIB_NAME(CreatePenIndirect) +HRGN16 WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16); +HRGN32 WINAPI CreatePolyPolygonRgn32(const POINT32*,const INT32*,INT32,INT32); +#define CreatePolyPolygonRgn WINELIB_NAME(CreatePolyPolygonRgn) +HRGN16 WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16); +HRGN32 WINAPI CreatePolygonRgn32(const POINT32*,INT32,INT32); +#define CreatePolygonRgn WINELIB_NAME(CreatePolygonRgn) +HMENU16 WINAPI CreatePopupMenu16(void); +HMENU32 WINAPI CreatePopupMenu32(void); +#define CreatePopupMenu WINELIB_NAME(CreatePopupMenu) +HRGN16 WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16); +HRGN32 WINAPI CreateRectRgn32(INT32,INT32,INT32,INT32); +#define CreateRectRgn WINELIB_NAME(CreateRectRgn) +HRGN16 WINAPI CreateRectRgnIndirect16(const RECT16*); +HRGN32 WINAPI CreateRectRgnIndirect32(const RECT32*); +#define CreateRectRgnIndirect WINELIB_NAME(CreateRectRgnIndirect) +HRGN16 WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16); +HRGN32 WINAPI CreateRoundRectRgn32(INT32,INT32,INT32,INT32,INT32,INT32); +#define CreateRoundRectRgn WINELIB_NAME(CreateRoundRectRgn) +BOOL16 WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR); +BOOL32 WINAPI CreateScalableFontResource32A(DWORD,LPCSTR,LPCSTR,LPCSTR); +BOOL32 WINAPI CreateScalableFontResource32W(DWORD,LPCWSTR,LPCWSTR,LPCWSTR); +#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource) +HBRUSH16 WINAPI CreateSolidBrush16(COLORREF); +HBRUSH32 WINAPI CreateSolidBrush32(COLORREF); +#define CreateSolidBrush WINELIB_NAME(CreateSolidBrush) +HWND16 WINAPI CreateWindow16(LPCSTR,LPCSTR,DWORD,INT16,INT16,INT16,INT16, + HWND16,HMENU16,HINSTANCE16,LPVOID); +#define CreateWindow32A(className,titleName,style,x,y,width,height,\ + parent,menu,instance,param) \ + CreateWindowEx32A(0,className,titleName,style,x,y,width,height,\ + parent,menu,instance,param) +#define CreateWindow32W(className,titleName,style,x,y,width,height,\ + parent,menu,instance,param) \ + CreateWindowEx32W(0,className,titleName,style,x,y,width,height,\ + parent,menu,instance,param) +#define CreateWindow WINELIB_NAME_AW(CreateWindow) +HWND16 WINAPI CreateWindowEx16(DWORD,LPCSTR,LPCSTR,DWORD,INT16,INT16, + INT16,INT16,HWND16,HMENU16,HINSTANCE16,LPVOID); +HWND32 WINAPI CreateWindowEx32A(DWORD,LPCSTR,LPCSTR,DWORD,INT32,INT32, + INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID); +HWND32 WINAPI CreateWindowEx32W(DWORD,LPCWSTR,LPCWSTR,DWORD,INT32,INT32, + INT32,INT32,HWND32,HMENU32,HINSTANCE32,LPVOID); +#define CreateWindowEx WINELIB_NAME_AW(CreateWindowEx) +LRESULT WINAPI DefDlgProc16(HWND16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI DefDlgProc32A(HWND32,UINT32,WPARAM32,LPARAM); +LRESULT WINAPI DefDlgProc32W(HWND32,UINT32,WPARAM32,LPARAM); +#define DefDlgProc WINELIB_NAME_AW(DefDlgProc) +HDWP16 WINAPI DeferWindowPos16(HDWP16,HWND16,HWND16,INT16,INT16,INT16,INT16,UINT16); +HDWP32 WINAPI DeferWindowPos32(HDWP32,HWND32,HWND32,INT32,INT32,INT32,INT32,UINT32); +#define DeferWindowPos WINELIB_NAME(DeferWindowPos) +LRESULT WINAPI DefFrameProc16(HWND16,HWND16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI DefFrameProc32A(HWND32,HWND32,UINT32,WPARAM32,LPARAM); +LRESULT WINAPI DefFrameProc32W(HWND32,HWND32,UINT32,WPARAM32,LPARAM); +#define DefFrameProc WINELIB_NAME_AW(DefFrameProc) +LRESULT WINAPI DefHookProc16(INT16,WPARAM16,LPARAM,HHOOK*); +#define DefHookProc32(code,wparam,lparam,phhook) \ + CallNextHookEx32(*(phhook),code,wparam,lparam) +#define DefHookProc WINELIB_NAME(DefHookProc) +LRESULT WINAPI DefMDIChildProc16(HWND16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI DefMDIChildProc32A(HWND32,UINT32,WPARAM32,LPARAM); +LRESULT WINAPI DefMDIChildProc32W(HWND32,UINT32,WPARAM32,LPARAM); +#define DefMDIChildProc WINELIB_NAME_AW(DefMDIChildProc) +LRESULT WINAPI DefWindowProc16(HWND16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI DefWindowProc32A(HWND32,UINT32,WPARAM32,LPARAM); +LRESULT WINAPI DefWindowProc32W(HWND32,UINT32,WPARAM32,LPARAM); +#define DefWindowProc WINELIB_NAME_AW(DefWindowProc) +ATOM WINAPI DeleteAtom16(ATOM); +ATOM WINAPI DeleteAtom32(ATOM); +#define DeleteAtom WINELIB_NAME(DeleteAtom) +BOOL16 WINAPI DeleteDC16(HDC16); +BOOL32 WINAPI DeleteDC32(HDC32); +#define DeleteDC WINELIB_NAME(DeleteDC) +BOOL16 WINAPI DeleteFile16(LPCSTR); +BOOL32 WINAPI DeleteFile32A(LPCSTR); +BOOL32 WINAPI DeleteFile32W(LPCWSTR); +#define DeleteFile WINELIB_NAME_AW(DeleteFile) +BOOL16 WINAPI DeleteMenu16(HMENU16,UINT16,UINT16); +BOOL32 WINAPI DeleteMenu32(HMENU32,UINT32,UINT32); +#define DeleteMenu WINELIB_NAME(DeleteMenu) +BOOL16 WINAPI DeleteMetaFile16(HMETAFILE16); +BOOL32 WINAPI DeleteMetaFile32(HMETAFILE32); +#define DeleteMetaFile WINELIB_NAME(DeleteMetaFile) +BOOL16 WINAPI DeleteObject16(HGDIOBJ16); +BOOL32 WINAPI DeleteObject32(HGDIOBJ32); +#define DeleteObject WINELIB_NAME(DeleteObject) +VOID WINAPI DestroyCaret16(void); +BOOL32 WINAPI DestroyCaret32(void); +#define DestroyCaret WINELIB_NAME(DestroyCaret) +BOOL16 WINAPI DestroyCursor16(HCURSOR16); +BOOL32 WINAPI DestroyCursor32(HCURSOR32); +#define DestroyCursor WINELIB_NAME(DestroyCursor) +BOOL16 WINAPI DestroyIcon16(HICON16); +BOOL32 WINAPI DestroyIcon32(HICON32); +#define DestroyIcon WINELIB_NAME(DestroyIcon) +BOOL16 WINAPI DestroyMenu16(HMENU16); +BOOL32 WINAPI DestroyMenu32(HMENU32); +#define DestroyMenu WINELIB_NAME(DestroyMenu) +BOOL16 WINAPI DestroyWindow16(HWND16); +BOOL32 WINAPI DestroyWindow32(HWND32); +#define DestroyWindow WINELIB_NAME(DestroyWindow) +INT16 WINAPI DialogBox16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16); +#define DialogBox32A(inst,template,owner,func) \ + DialogBoxParam32A(inst,template,owner,func,0) +#define DialogBox32W(inst,template,owner,func) \ + DialogBoxParam32W(inst,template,owner,func,0) +#define DialogBox WINELIB_NAME_AW(DialogBox) +INT16 WINAPI DialogBoxIndirect16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16); +#define DialogBoxIndirect32A(inst,template,owner,func) \ + DialogBoxIndirectParam32A(inst,template,owner,func,0) +#define DialogBoxIndirect32W(inst,template,owner,func) \ + DialogBoxIndirectParam32W(inst,template,owner,func,0) +#define DialogBoxIndirect WINELIB_NAME_AW(DialogBoxIndirect) +INT16 WINAPI DialogBoxIndirectParam16(HINSTANCE16,HANDLE16,HWND16,DLGPROC16,LPARAM); +INT32 WINAPI DialogBoxIndirectParam32A(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM); +INT32 WINAPI DialogBoxIndirectParam32W(HINSTANCE32,LPCVOID,HWND32,DLGPROC32,LPARAM); +#define DialogBoxIndirectParam WINELIB_NAME_AW(DialogBoxIndirectParam) +INT16 WINAPI DialogBoxParam16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16,LPARAM); +INT32 WINAPI DialogBoxParam32A(HINSTANCE32,LPCSTR,HWND32,DLGPROC32,LPARAM); +INT32 WINAPI DialogBoxParam32W(HINSTANCE32,LPCWSTR,HWND32,DLGPROC32,LPARAM); +#define DialogBoxParam WINELIB_NAME_AW(DialogBoxParam) +LONG WINAPI DispatchMessage16(const MSG16*); +LONG WINAPI DispatchMessage32A(const MSG32*); +LONG WINAPI DispatchMessage32W(const MSG32*); +#define DispatchMessage WINELIB_NAME_AW(DispatchMessage) +INT16 WINAPI DlgDirList16(HWND16,LPSTR,INT16,INT16,UINT16); +INT32 WINAPI DlgDirList32A(HWND32,LPSTR,INT32,INT32,UINT32); +INT32 WINAPI DlgDirList32W(HWND32,LPWSTR,INT32,INT32,UINT32); +#define DlgDirList WINELIB_NAME_AW(DlgDirList) +INT16 WINAPI DlgDirListComboBox16(HWND16,LPSTR,INT16,INT16,UINT16); +INT32 WINAPI DlgDirListComboBox32A(HWND32,LPSTR,INT32,INT32,UINT32); +INT32 WINAPI DlgDirListComboBox32W(HWND32,LPWSTR,INT32,INT32,UINT32); +#define DlgDirListComboBox WINELIB_NAME_AW(DlgDirListComboBox) +BOOL16 WINAPI DlgDirSelectComboBoxEx16(HWND16,LPSTR,INT16,INT16); +BOOL32 WINAPI DlgDirSelectComboBoxEx32A(HWND32,LPSTR,INT32,INT32); +BOOL32 WINAPI DlgDirSelectComboBoxEx32W(HWND32,LPWSTR,INT32,INT32); +#define DlgDirSelectComboBoxEx WINELIB_NAME_AW(DlgDirSelectComboBoxEx) +BOOL16 WINAPI DlgDirSelectEx16(HWND16,LPSTR,INT16,INT16); +BOOL32 WINAPI DlgDirSelectEx32A(HWND32,LPSTR,INT32,INT32); +BOOL32 WINAPI DlgDirSelectEx32W(HWND32,LPWSTR,INT32,INT32); +#define DlgDirSelectEx WINELIB_NAME_AW(DlgDirSelectEx) +BOOL16 WINAPI DPtoLP16(HDC16,LPPOINT16,INT16); +BOOL32 WINAPI DPtoLP32(HDC32,LPPOINT32,INT32); +#define DPtoLP WINELIB_NAME(DPtoLP) +BOOL16 WINAPI DragDetect16(HWND16,POINT16); +BOOL32 WINAPI DragDetect32(HWND32,POINT32); +#define DragDetect WINELIB_NAME(DragDetect) +DWORD WINAPI DragObject16(HWND16,HWND16,UINT16,HANDLE16,WORD,HCURSOR16); +DWORD WINAPI DragObject32(HWND32,HWND32,UINT32,DWORD,HCURSOR32); +#define DragObject WINELIB_NAME(DragObject) +BOOL16 WINAPI DrawEdge16(HDC16,LPRECT16,UINT16,UINT16); +BOOL32 WINAPI DrawEdge32(HDC32,LPRECT32,UINT32,UINT32); +#define DrawEdge WINELIB_NAME(DrawEdge) +void WINAPI DrawFocusRect16(HDC16,const RECT16*); +void WINAPI DrawFocusRect32(HDC32,const RECT32*); +#define DrawFocusRect WINELIB_NAME(DrawFocusRect) +BOOL16 WINAPI DrawFrameControl16(HDC16,LPRECT16,UINT16,UINT16); +BOOL32 WINAPI DrawFrameControl32(HDC32,LPRECT32,UINT32,UINT32); +#define DrawFrameControl WINELIB_NAME(DrawFrameControl) +BOOL16 WINAPI DrawIcon16(HDC16,INT16,INT16,HICON16); +BOOL32 WINAPI DrawIcon32(HDC32,INT32,INT32,HICON32); +#define DrawIcon WINELIB_NAME(DrawIcon) +VOID WINAPI DrawMenuBar16(HWND16); +BOOL32 WINAPI DrawMenuBar32(HWND32); +#define DrawMenuBar WINELIB_NAME(DrawMenuBar) +INT16 WINAPI DrawText16(HDC16,LPCSTR,INT16,LPRECT16,UINT16); +INT32 WINAPI DrawText32A(HDC32,LPCSTR,INT32,LPRECT32,UINT32); +INT32 WINAPI DrawText32W(HDC32,LPCWSTR,INT32,LPRECT32,UINT32); +#define DrawText WINELIB_NAME_AW(DrawText) +BOOL16 WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16); +BOOL32 WINAPI Ellipse32(HDC32,INT32,INT32,INT32,INT32); +#define Ellipse WINELIB_NAME(Ellipse) +BOOL16 WINAPI EmptyClipboard16(void); +BOOL32 WINAPI EmptyClipboard32(void); +#define EmptyClipboard WINELIB_NAME(EmptyClipboard) +BOOL16 WINAPI EnableMenuItem16(HMENU16,UINT16,UINT16); +BOOL32 WINAPI EnableMenuItem32(HMENU32,UINT32,UINT32); +#define EnableMenuItem WINELIB_NAME(EnableMenuItem) +BOOL16 WINAPI EnableScrollBar16(HWND16,INT16,UINT16); +BOOL32 WINAPI EnableScrollBar32(HWND32,INT32,UINT32); +#define EnableScrollBar WINELIB_NAME(EnableScrollBar) +BOOL16 WINAPI EnableWindow16(HWND16,BOOL16); +BOOL32 WINAPI EnableWindow32(HWND32,BOOL32); +#define EnableWindow WINELIB_NAME(EnableWindow) +BOOL16 WINAPI EndDeferWindowPos16(HDWP16); +BOOL32 WINAPI EndDeferWindowPos32(HDWP32); +#define EndDeferWindowPos WINELIB_NAME(EndDeferWindowPos) +BOOL16 WINAPI EndDialog16(HWND16,INT16); +BOOL32 WINAPI EndDialog32(HWND32,INT32); +#define EndDialog WINELIB_NAME(EndDialog) +INT16 WINAPI EndDoc16(HDC16); +INT32 WINAPI EndDoc32(HDC32); +#define EndDoc WINELIB_NAME(EndDoc) +BOOL16 WINAPI EndPaint16(HWND16,const PAINTSTRUCT16*); +BOOL32 WINAPI EndPaint32(HWND32,const PAINTSTRUCT32*); +#define EndPaint WINELIB_NAME(EndPaint) +BOOL16 WINAPI EnumChildWindows16(HWND16,WNDENUMPROC16,LPARAM); +BOOL32 WINAPI EnumChildWindows32(HWND32,WNDENUMPROC32,LPARAM); +#define EnumChildWindows WINELIB_NAME(EnumChildWindows) +UINT16 WINAPI EnumClipboardFormats16(UINT16); +UINT32 WINAPI EnumClipboardFormats32(UINT32); +#define EnumClipboardFormats WINELIB_NAME(EnumClipboardFormats) +INT16 WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM); +INT32 WINAPI EnumFontFamilies32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM); +INT32 WINAPI EnumFontFamilies32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM); +#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies) +INT16 WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD); +INT32 WINAPI EnumFontFamiliesEx32A(HDC32,LPLOGFONT32A,FONTENUMPROCEX32A,LPARAM,DWORD); +INT32 WINAPI EnumFontFamiliesEx32W(HDC32,LPLOGFONT32W,FONTENUMPROCEX32W,LPARAM,DWORD); +#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx) +INT16 WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM); +INT32 WINAPI EnumFonts32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM); +INT32 WINAPI EnumFonts32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM); +#define EnumFonts WINELIB_NAME_AW(EnumFonts) +BOOL16 WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM); +BOOL32 WINAPI EnumMetaFile32(HDC32,HMETAFILE32,MFENUMPROC32,LPARAM); +#define EnumMetaFile WINELIB_NAME(EnumMetaFile) +INT16 WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM); +INT32 WINAPI EnumObjects32(HDC32,INT32,GOBJENUMPROC32,LPARAM); +#define EnumObjects WINELIB_NAME(EnumObjects) +INT16 WINAPI EnumProps16(HWND16,PROPENUMPROC16); +INT32 WINAPI EnumProps32A(HWND32,PROPENUMPROC32A); +INT32 WINAPI EnumProps32W(HWND32,PROPENUMPROC32W); +#define EnumProps WINELIB_NAME_AW(EnumProps) +BOOL16 WINAPI EnumTaskWindows16(HTASK16,WNDENUMPROC16,LPARAM); +#define EnumTaskWindows32(handle,proc,lparam) \ + EnumThreadWindows(handle,proc,lparam) +#define EnumTaskWindows WINELIB_NAME(EnumTaskWindows) +BOOL16 WINAPI EnumWindows16(WNDENUMPROC16,LPARAM); +BOOL32 WINAPI EnumWindows32(WNDENUMPROC32,LPARAM); +#define EnumWindows WINELIB_NAME(EnumWindows) +BOOL16 WINAPI EqualRect16(const RECT16*,const RECT16*); +BOOL32 WINAPI EqualRect32(const RECT32*,const RECT32*); +#define EqualRect WINELIB_NAME(EqualRect) +BOOL16 WINAPI EqualRgn16(HRGN16,HRGN16); +BOOL32 WINAPI EqualRgn32(HRGN32,HRGN32); +#define EqualRgn WINELIB_NAME(EqualRgn) +INT16 WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,SEGPTR); +INT32 WINAPI Escape32(HDC32,INT32,INT32,LPVOID,LPVOID); +#define Escape WINELIB_NAME(Escape) +LONG WINAPI EscapeCommFunction16(UINT16,UINT16); +BOOL32 WINAPI EscapeCommFunction32(INT32,UINT32); +#define EscapeCommFunction WINELIB_NAME(EscapeCommFunction) +INT16 WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16); +INT32 WINAPI ExcludeClipRect32(HDC32,INT32,INT32,INT32,INT32); +#define ExcludeClipRect WINELIB_NAME(ExcludeClipRect) +INT16 WINAPI ExcludeUpdateRgn16(HDC16,HWND16); +INT32 WINAPI ExcludeUpdateRgn32(HDC32,HWND32); +#define ExcludeUpdateRgn WINELIB_NAME(ExcludeUpdateRgn) +BOOL16 WINAPI ExitWindows16(DWORD,UINT16); +#define ExitWindows32(a,b) ExitWindowsEx(EWX_LOGOFF,0xffffffff) +#define ExitWindows WINELIB_NAME(ExitWindows) +BOOL16 WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16); +BOOL32 WINAPI ExtFloodFill32(HDC32,INT32,INT32,COLORREF,UINT32); +#define ExtFloodFill WINELIB_NAME(ExtFloodFill) +HICON16 WINAPI ExtractIcon16(HINSTANCE16,LPCSTR,UINT16); +HICON32 WINAPI ExtractIcon32A(HINSTANCE32,LPCSTR,UINT32); +HICON32 WINAPI ExtractIcon32W(HINSTANCE32,LPCWSTR,UINT32); +#define ExtractIcon WINELIB_NAME_AW(ExtractIcon) +BOOL16 WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*, + LPCSTR,UINT16,const INT16*); +BOOL32 WINAPI ExtTextOut32A(HDC32,INT32,INT32,UINT32,const RECT32*, + LPCSTR,UINT32,const INT32*); +BOOL32 WINAPI ExtTextOut32W(HDC32,INT32,INT32,UINT32,const RECT32*, + LPCWSTR,UINT32,const INT32*); +#define ExtTextOut WINELIB_NAME_AW(ExtTextOut) +void WINAPI FatalAppExit16(UINT16,LPCSTR); +void WINAPI FatalAppExit32A(UINT32,LPCSTR); +void WINAPI FatalAppExit32W(UINT32,LPCWSTR); +#define FatalAppExit WINELIB_NAME_AW(FatalAppExit) +INT16 WINAPI FillRect16(HDC16,const RECT16*,HBRUSH16); +INT32 WINAPI FillRect32(HDC32,const RECT32*,HBRUSH32); +#define FillRect WINELIB_NAME(FillRect) +BOOL16 WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16); +BOOL32 WINAPI FillRgn32(HDC32,HRGN32,HBRUSH32); +#define FillRgn WINELIB_NAME(FillRgn) +ATOM WINAPI FindAtom16(SEGPTR); +ATOM WINAPI FindAtom32A(LPCSTR); +ATOM WINAPI FindAtom32W(LPCWSTR); +#define FindAtom WINELIB_NAME_AW(FindAtom) +BOOL16 WINAPI FindClose16(HANDLE16); +BOOL32 WINAPI FindClose32(HANDLE32); +#define FindClose WINELIB_NAME(FindClose) +HINSTANCE16 WINAPI FindExecutable16(LPCSTR,LPCSTR,LPSTR); +HINSTANCE32 WINAPI FindExecutable32A(LPCSTR,LPCSTR,LPSTR); +HINSTANCE32 WINAPI FindExecutable32W(LPCWSTR,LPCWSTR,LPWSTR); +#define FindExecutable WINELIB_NAME_AW(FindExecutable) +HANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATA32A); +HANDLE32 WINAPI FindFirstFile32A(LPCSTR,LPWIN32_FIND_DATA32A); +HANDLE32 WINAPI FindFirstFile32W(LPCWSTR,LPWIN32_FIND_DATA32W); +#define FindFirst WINELIB_NAME_AW(FindFirst) +BOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATA32A); +BOOL32 WINAPI FindNextFile32A(HANDLE32,LPWIN32_FIND_DATA32A); +BOOL32 WINAPI FindNextFile32W(HANDLE32,LPWIN32_FIND_DATA32W); +#define FindNext WINELIB_NAME_AW(FindNext) +HRSRC16 WINAPI FindResource16(HINSTANCE16,SEGPTR,SEGPTR); +HRSRC32 WINAPI FindResource32A(HINSTANCE32,LPCSTR,LPCSTR); +HRSRC32 WINAPI FindResource32W(HINSTANCE32,LPCWSTR,LPCWSTR); +#define FindResource WINELIB_NAME_AW(FindResource) +HWND16 WINAPI FindWindow16(SEGPTR,LPCSTR); +HWND32 WINAPI FindWindow32A(LPCSTR,LPCSTR); +HWND32 WINAPI FindWindow32W(LPCWSTR,LPCWSTR); +#define FindWindow WINELIB_NAME_AW(FindWindow) +HWND16 WINAPI FindWindowEx16(HWND16,HWND16,SEGPTR,LPCSTR); +HWND32 WINAPI FindWindowEx32A(HWND32,HWND32,LPCSTR,LPCSTR); +HWND32 WINAPI FindWindowEx32W(HWND32,HWND32,LPCWSTR,LPCWSTR); +#define FindWindowEx WINELIB_NAME_AW(FindWindowEx) +BOOL16 WINAPI FlashWindow16(HWND16,BOOL16); +BOOL32 WINAPI FlashWindow32(HWND32,BOOL32); +#define FlashWindow WINELIB_NAME(FlashWindow) +BOOL16 WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF); +BOOL32 WINAPI FloodFill32(HDC32,INT32,INT32,COLORREF); +#define FloodFill WINELIB_NAME(FloodFill) +INT16 WINAPI FrameRect16(HDC16,const RECT16*,HBRUSH16); +INT32 WINAPI FrameRect32(HDC32,const RECT32*,HBRUSH32); +#define FrameRect WINELIB_NAME(FrameRect) +BOOL16 WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16); +BOOL32 WINAPI FrameRgn32(HDC32,HRGN32,HBRUSH32,INT32,INT32); +#define FrameRgn WINELIB_NAME(FrameRgn) +VOID WINAPI FreeLibrary16(HINSTANCE16); +BOOL32 WINAPI FreeLibrary32(HMODULE32); +#define FreeLibrary WINELIB_NAME(FreeLibrary) +BOOL16 WINAPI FreeModule16(HMODULE16); +#define FreeModule32(handle) FreeLibrary32(handle) +#define FreeModule WINELIB_NAME(FreeModule) +void WINAPI FreeProcInstance16(FARPROC16); +#define FreeProcInstance32(proc) /*nothing*/ +#define FreeProcInstance WINELIB_NAME(FreeProcInstance) +BOOL16 WINAPI FreeResource16(HGLOBAL16); +BOOL32 WINAPI FreeResource32(HGLOBAL32); +#define FreeResource WINELIB_NAME(FreeResource) +HWND16 WINAPI GetActiveWindow16(void); +HWND32 WINAPI GetActiveWindow32(void); +#define GetActiveWindow WINELIB_NAME(GetActiveWindow) +DWORD WINAPI GetAppCompatFlags16(HTASK16); +DWORD WINAPI GetAppCompatFlags32(HTASK32); +#define GetAppCompatFlags WINELIB_NAME(GetAppCompatFlags) +WORD WINAPI GetAsyncKeyState16(INT16); +WORD WINAPI GetAsyncKeyState32(INT32); +#define GetAsyncKeyState WINELIB_NAME(GetAsyncKeyState) +UINT16 WINAPI GetAtomName16(ATOM,LPSTR,INT16); +UINT32 WINAPI GetAtomName32A(ATOM,LPSTR,INT32); +UINT32 WINAPI GetAtomName32W(ATOM,LPWSTR,INT32); +#define GetAtomName WINELIB_NAME_AW(GetAtomName) +LONG WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID); +LONG WINAPI GetBitmapBits32(HBITMAP32,LONG,LPVOID); +#define GetBitmapBits WINELIB_NAME(GetBitmapBits) +BOOL16 WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16); +BOOL32 WINAPI GetBitmapDimensionEx32(HBITMAP32,LPSIZE32); +#define GetBitmapDimensionEx WINELIB_NAME(GetBitmapDimensionEx) +BOOL16 WINAPI GetBrushOrgEx16(HDC16,LPPOINT16); +BOOL32 WINAPI GetBrushOrgEx32(HDC32,LPPOINT32); +#define GetBrushOrgEx WINELIB_NAME(GetBrushOrgEx) +COLORREF WINAPI GetBkColor16(HDC16); +COLORREF WINAPI GetBkColor32(HDC32); +#define GetBkColor WINELIB_NAME(GetBkColor) +INT16 WINAPI GetBkMode16(HDC16); +INT32 WINAPI GetBkMode32(HDC32); +#define GetBkMode WINELIB_NAME(GetBkMode) +HWND16 WINAPI GetCapture16(void); +HWND32 WINAPI GetCapture32(void); +#define GetCapture WINELIB_NAME(GetCapture) +UINT16 WINAPI GetCaretBlinkTime16(void); +UINT32 WINAPI GetCaretBlinkTime32(void); +#define GetCaretBlinkTime WINELIB_NAME(GetCaretBlinkTime) +VOID WINAPI GetCaretPos16(LPPOINT16); +BOOL32 WINAPI GetCaretPos32(LPPOINT32); +#define GetCaretPos WINELIB_NAME(GetCaretPos) +BOOL16 WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16); +BOOL32 WINAPI GetCharABCWidths32A(HDC32,UINT32,UINT32,LPABC32); +BOOL32 WINAPI GetCharABCWidths32W(HDC32,UINT32,UINT32,LPABC32); +#define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths) +BOOL16 WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16); +BOOL32 WINAPI GetCharWidth32A(HDC32,UINT32,UINT32,LPINT32); +BOOL32 WINAPI GetCharWidth32W(HDC32,UINT32,UINT32,LPINT32); +#define GetCharWidth WINELIB_NAME_AW(GetCharWidth) +BOOL16 WINAPI GetClassInfo16(HINSTANCE16,SEGPTR,WNDCLASS16 *); +BOOL32 WINAPI GetClassInfo32A(HINSTANCE32,LPCSTR,WNDCLASS32A *); +BOOL32 WINAPI GetClassInfo32W(HINSTANCE32,LPCWSTR,WNDCLASS32W *); +#define GetClassInfo WINELIB_NAME_AW(GetClassInfo) +BOOL16 WINAPI GetClassInfoEx16(HINSTANCE16,SEGPTR,WNDCLASSEX16 *); +BOOL32 WINAPI GetClassInfoEx32A(HINSTANCE32,LPCSTR,WNDCLASSEX32A *); +BOOL32 WINAPI GetClassInfoEx32W(HINSTANCE32,LPCWSTR,WNDCLASSEX32W *); +#define GetClassInfoEx WINELIB_NAME_AW(GetClassInfoEx) +LONG WINAPI GetClassLong16(HWND16,INT16); +LONG WINAPI GetClassLong32A(HWND32,INT32); +LONG WINAPI GetClassLong32W(HWND32,INT32); +#define GetClassLong WINELIB_NAME_AW(GetClassLong) +INT16 WINAPI GetClassName16(HWND16,LPSTR,INT16); +INT32 WINAPI GetClassName32A(HWND32,LPSTR,INT32); +INT32 WINAPI GetClassName32W(HWND32,LPWSTR,INT32); +#define GetClassName WINELIB_NAME_AW(GetClassName) +WORD WINAPI GetClassWord16(HWND16,INT16); +WORD WINAPI GetClassWord32(HWND32,INT32); +#define GetClassWord WINELIB_NAME(GetClassWord) +void WINAPI GetClientRect16(HWND16,LPRECT16); +void WINAPI GetClientRect32(HWND32,LPRECT32); +#define GetClientRect WINELIB_NAME(GetClientRect) +HANDLE16 WINAPI GetClipboardData16(UINT16); +HANDLE32 WINAPI GetClipboardData32(UINT32); +#define GetClipboardData WINELIB_NAME(GetClipboardData) +INT16 WINAPI GetClipboardFormatName16(UINT16,LPSTR,INT16); +INT32 WINAPI GetClipboardFormatName32A(UINT32,LPSTR,INT32); +INT32 WINAPI GetClipboardFormatName32W(UINT32,LPWSTR,INT32); +#define GetClipboardFormatName WINELIB_NAME_AW(GetClipboardFormatName) +HWND16 WINAPI GetClipboardOwner16(void); +HWND32 WINAPI GetClipboardOwner32(void); +#define GetClipboardOwner WINELIB_NAME(GetClipboardOwner) +HWND16 WINAPI GetClipboardViewer16(void); +HWND32 WINAPI GetClipboardViewer32(void); +#define GetClipboardViewer WINELIB_NAME(GetClipboardViewer) +INT16 WINAPI GetClipBox16(HDC16,LPRECT16); +INT32 WINAPI GetClipBox32(HDC32,LPRECT32); +#define GetClipBox WINELIB_NAME(GetClipBox) +void WINAPI GetClipCursor16(LPRECT16); +void WINAPI GetClipCursor32(LPRECT32); +#define GetClipCursor WINELIB_NAME(GetClipCursor) +HRGN16 WINAPI GetClipRgn16(HDC16); +INT32 WINAPI GetClipRgn32(HDC32,HRGN32); +#define GetClipRgn WINELIB_NAME(GetClipRgn) +INT16 WINAPI GetCommState16(INT16,LPDCB16); +BOOL32 WINAPI GetCommState32(INT32,LPDCB32); +#define GetCommState WINELIB_NAME(GetCommState) +UINT16 WINAPI GetCurrentDirectory16(UINT16,LPSTR); +UINT32 WINAPI GetCurrentDirectory32A(UINT32,LPSTR); +UINT32 WINAPI GetCurrentDirectory32W(UINT32,LPWSTR); +#define GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory) +BOOL16 WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16); +BOOL32 WINAPI GetCurrentPositionEx32(HDC32,LPPOINT32); +#define GetCurrentPositionEx WINELIB_NAME(GetCurrentPositionEx) +DWORD WINAPI GetCurrentTime16(void); +#define GetCurrentTime32() GetTickCount() +#define GetCurrentTime WINELIB_NAME(GetCurrentTime) +HCURSOR16 WINAPI GetCursor16(void); +HCURSOR32 WINAPI GetCursor32(void); +#define GetCursor WINELIB_NAME(GetCursor) +void WINAPI GetCursorPos16(LPPOINT16); +void WINAPI GetCursorPos32(LPPOINT32); +#define GetCursorPos WINELIB_NAME(GetCursorPos) +HDC16 WINAPI GetDC16(HWND16); +HDC32 WINAPI GetDC32(HWND32); +#define GetDC WINELIB_NAME(GetDC) +HDC16 WINAPI GetDCEx16(HWND16,HRGN16,DWORD); +HDC32 WINAPI GetDCEx32(HWND32,HRGN32,DWORD); +#define GetDCEx WINELIB_NAME(GetDCEx) +HWND16 WINAPI GetDesktopWindow16(void); +HWND32 WINAPI GetDesktopWindow32(void); +#define GetDesktopWindow WINELIB_NAME(GetDesktopWindow) +INT16 WINAPI GetDeviceCaps16(HDC16,INT16); +INT32 WINAPI GetDeviceCaps32(HDC32,INT32); +#define GetDeviceCaps WINELIB_NAME(GetDeviceCaps) +INT16 WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPSTR,LPBITMAPINFO,UINT16); +INT32 WINAPI GetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPSTR,LPBITMAPINFO,UINT32); +#define GetDIBits WINELIB_NAME(GetDIBits) +BOOL16 WINAPI GetDiskFreeSpace16(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); +BOOL32 WINAPI GetDiskFreeSpace32A(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); +BOOL32 WINAPI GetDiskFreeSpace32W(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); +#define GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace) +INT16 WINAPI GetDlgCtrlID16(HWND16); +INT32 WINAPI GetDlgCtrlID32(HWND32); +#define GetDlgCtrlID WINELIB_NAME(GetDlgCtrlID) +HWND16 WINAPI GetDlgItem16(HWND16,INT16); +HWND32 WINAPI GetDlgItem32(HWND32,INT32); +#define GetDlgItem WINELIB_NAME(GetDlgItem) +UINT16 WINAPI GetDlgItemInt16(HWND16,INT16,BOOL16*,BOOL16); +UINT32 WINAPI GetDlgItemInt32(HWND32,INT32,BOOL32*,BOOL32); +#define GetDlgItemInt WINELIB_NAME(GetDlgItemInt) +INT16 WINAPI GetDlgItemText16(HWND16,INT16,SEGPTR,UINT16); +INT32 WINAPI GetDlgItemText32A(HWND32,INT32,LPSTR,UINT32); +INT32 WINAPI GetDlgItemText32W(HWND32,INT32,LPWSTR,UINT32); +#define GetDlgItemText WINELIB_NAME_AW(GetDlgItemText) +UINT16 WINAPI GetDoubleClickTime16(void); +UINT32 WINAPI GetDoubleClickTime32(void); +#define GetDoubleClickTime WINELIB_NAME(GetDoubleClickTime) +UINT16 WINAPI GetDriveType16(UINT16); /* yes, the arguments differ */ +UINT32 WINAPI GetDriveType32A(LPCSTR); +UINT32 WINAPI GetDriveType32W(LPCWSTR); +#define GetDriveType WINELIB_NAME_AW(GetDriveType) +INT16 WINAPI GetExpandedName16(LPCSTR,LPSTR); +INT32 WINAPI GetExpandedName32A(LPCSTR,LPSTR); +INT32 WINAPI GetExpandedName32W(LPCWSTR,LPWSTR); +#define GetExpandedName WINELIB_NAME_AW(GetExpandedName) +DWORD WINAPI GetFileAttributes16(LPCSTR); +DWORD WINAPI GetFileAttributes32A(LPCSTR); +DWORD WINAPI GetFileAttributes32W(LPCWSTR); +#define GetFileAttributes WINELIB_NAME_AW(GetFileAttributes) +DWORD WINAPI GetFileVersionInfoSize16(LPCSTR,LPDWORD); +DWORD WINAPI GetFileVersionInfoSize32A(LPCSTR,LPDWORD); +DWORD WINAPI GetFileVersionInfoSize32W(LPCWSTR,LPDWORD); +#define GetFileVersionInfoSize WINELIB_NAME_AW(GetFileVersionInfoSize) +DWORD WINAPI GetFileVersionInfo16(LPCSTR,DWORD,DWORD,LPVOID); +DWORD WINAPI GetFileVersionInfo32A(LPCSTR,DWORD,DWORD,LPVOID); +DWORD WINAPI GetFileVersionInfo32W(LPCWSTR,DWORD,DWORD,LPVOID); +#define GetFileVersionInfo WINELIB_NAME_AW(GetFileVersionInfo) +HWND16 WINAPI GetFocus16(void); +HWND32 WINAPI GetFocus32(void); +#define GetFocus WINELIB_NAME(GetFocus) +DWORD WINAPI GetFreeSpace16(UINT16); +#define GetFreeSpace32(w) (0x100000L) +#define GetFreeSpace WINELIB_NAME(GetFreeSpace) +DWORD WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*); +DWORD WINAPI GetGlyphOutline32A(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*); +DWORD WINAPI GetGlyphOutline32W(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*); +#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline) +BOOL16 WINAPI GetInputState16(void); +BOOL32 WINAPI GetInputState32(void); +#define GetInputState WINELIB_NAME(GetInputState) +UINT16 WINAPI GetInternalWindowPos16(HWND16,LPRECT16,LPPOINT16); +UINT32 WINAPI GetInternalWindowPos32(HWND32,LPRECT32,LPPOINT32); +#define GetInternalWindowPos WINELIB_NAME(GetInternalWindowPos) +INT16 WINAPI GetKBCodePage16(void); +UINT32 WINAPI GetKBCodePage32(void); +#define GetKBCodePage WINELIB_NAME(GetKBCodePage) +INT16 WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16); +DWORD WINAPI GetKerningPairs32A(HDC32,DWORD,LPKERNINGPAIR32); +DWORD WINAPI GetKerningPairs32W(HDC32,DWORD,LPKERNINGPAIR32); +#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs) +INT16 WINAPI GetKeyboardType16(INT16); +INT32 WINAPI GetKeyboardType32(INT32); +#define GetKeyboardType WINELIB_NAME(GetKeyboardType) +INT16 WINAPI GetKeyNameText16(LONG,LPSTR,INT16); +INT32 WINAPI GetKeyNameText32A(LONG,LPSTR,INT32); +INT32 WINAPI GetKeyNameText32W(LONG,LPWSTR,INT32); +#define GetKeyNameText WINELIB_NAME_AW(GetKeyNameText) +WORD WINAPI GetKeyState16(INT16); +WORD WINAPI GetKeyState32(INT32); +#define GetKeyState WINELIB_NAME(GetKeyState) +HWND16 WINAPI GetLastActivePopup16(HWND16); +HWND32 WINAPI GetLastActivePopup32(HWND32); +#define GetLastActivePopup WINELIB_NAME(GetLastActivePopup) +UINT32 WINAPI GetLogicalDriveStrings32A(UINT32,LPSTR); +UINT32 WINAPI GetLogicalDriveStrings32W(UINT32,LPWSTR); +#define GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings) +INT16 WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16); +INT32 WINAPI GetLocaleInfo32A(LCID,LCTYPE,LPSTR,INT32); +INT32 WINAPI GetLocaleInfo32W(LCID,LCTYPE,LPWSTR,INT32); +#define GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo) +INT16 WINAPI GetMapMode16(HDC16); +INT32 WINAPI GetMapMode32(HDC32); +#define GetMapMode WINELIB_NAME(GetMapMode) +HMENU16 WINAPI GetMenu16(HWND16); +HMENU32 WINAPI GetMenu32(HWND32); +#define GetMenu WINELIB_NAME(GetMenu) +INT16 WINAPI GetMenuItemCount16(HMENU16); +INT32 WINAPI GetMenuItemCount32(HMENU32); +#define GetMenuItemCount WINELIB_NAME(GetMenuItemCount) +UINT16 WINAPI GetMenuItemID16(HMENU16,INT16); +UINT32 WINAPI GetMenuItemID32(HMENU32,INT32); +#define GetMenuItemID WINELIB_NAME(GetMenuItemID) +UINT16 WINAPI GetMenuState16(HMENU16,UINT16,UINT16); +UINT32 WINAPI GetMenuState32(HMENU32,UINT32,UINT32); +#define GetMenuState WINELIB_NAME(GetMenuState) +INT16 WINAPI GetMenuString16(HMENU16,UINT16,LPSTR,INT16,UINT16); +INT32 WINAPI GetMenuString32A(HMENU32,UINT32,LPSTR,INT32,UINT32); +INT32 WINAPI GetMenuString32W(HMENU32,UINT32,LPWSTR,INT32,UINT32); +#define GetMenuString WINELIB_NAME_AW(GetMenuString) +BOOL16 WINAPI GetMessage16(SEGPTR,HWND16,UINT16,UINT16); +BOOL32 WINAPI GetMessage32A(LPMSG32,HWND32,UINT32,UINT32); +BOOL32 WINAPI GetMessage32W(LPMSG32,HWND32,UINT32,UINT32); +#define GetMessage WINELIB_NAME_AW(GetMessage) +HMETAFILE16 WINAPI GetMetaFile16(LPCSTR); +HMETAFILE32 WINAPI GetMetaFile32A(LPCSTR); +HMETAFILE32 WINAPI GetMetaFile32W(LPCWSTR); +#define GetMetaFile WINELIB_NAME_AW(GetMetaFile) +INT16 WINAPI GetModuleFileName16(HINSTANCE16,LPSTR,INT16); +DWORD WINAPI GetModuleFileName32A(HMODULE32,LPSTR,DWORD); +DWORD WINAPI GetModuleFileName32W(HMODULE32,LPWSTR,DWORD); +#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName) +HMODULE16 WINAPI GetModuleHandle16(LPCSTR); +HMODULE32 WINAPI GetModuleHandle32A(LPCSTR); +HMODULE32 WINAPI GetModuleHandle32W(LPCSTR); +#define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle) +DWORD WINAPI GetNearestColor16(HDC16,DWORD); +DWORD WINAPI GetNearestColor32(HDC32,DWORD); +#define GetNearestColor WINELIB_NAME(GetNearestColor) +UINT16 WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF); +UINT32 WINAPI GetNearestPaletteIndex32(HPALETTE32,COLORREF); +#define GetNearestPaletteIndex WINELIB_NAME(GetNearestPaletteIndex) +HWND16 WINAPI GetNextDlgGroupItem16(HWND16,HWND16,BOOL16); +HWND32 WINAPI GetNextDlgGroupItem32(HWND32,HWND32,BOOL32); +#define GetNextDlgGroupItem WINELIB_NAME(GetNextDlgGroupItem) +HWND16 WINAPI GetNextDlgTabItem16(HWND16,HWND16,BOOL16); +HWND32 WINAPI GetNextDlgTabItem32(HWND32,HWND32,BOOL32); +#define GetNextDlgTabItem WINELIB_NAME(GetNextDlgTabItem) +HWND16 WINAPI GetNextWindow16(HWND16,WORD); +#define GetNextWindow32 GetWindow32 +#define GetNextWindow WINELIB_NAME(GetNextWindow) +INT16 WINAPI GetObject16(HANDLE16,INT16,LPVOID); +INT32 WINAPI GetObject32A(HANDLE32,INT32,LPVOID); +INT32 WINAPI GetObject32W(HANDLE32,INT32,LPVOID); +#define GetObject WINELIB_NAME_AW(GetObject) +HWND16 WINAPI GetOpenClipboardWindow16(void); +HWND32 WINAPI GetOpenClipboardWindow32(void); +#define GetOpenClipboardWindow WINELIB_NAME(GetOpenClipboardWindow) +UINT16 WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY); +UINT32 WINAPI GetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY); +#define GetPaletteEntries WINELIB_NAME(GetPaletteEntries) +HWND16 WINAPI GetParent16(HWND16); +HWND32 WINAPI GetParent32(HWND32); +#define GetParent WINELIB_NAME(GetParent) +COLORREF WINAPI GetPixel16(HDC16,INT16,INT16); +COLORREF WINAPI GetPixel32(HDC32,INT32,INT32); +#define GetPixel WINELIB_NAME(GetPixel) +INT16 WINAPI GetPolyFillMode16(HDC16); +INT32 WINAPI GetPolyFillMode32(HDC32); +#define GetPolyFillMode WINELIB_NAME(GetPolyFillMode) +INT16 WINAPI GetPriorityClipboardFormat16(UINT16*,INT16); +INT32 WINAPI GetPriorityClipboardFormat32(UINT32*,INT32); +#define GetPriorityClipboardFormat WINELIB_NAME(GetPriorityClipboardFormat) +UINT16 WINAPI GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR); +UINT32 WINAPI GetPrivateProfileInt32A(LPCSTR,LPCSTR,INT32,LPCSTR); +UINT32 WINAPI GetPrivateProfileInt32W(LPCWSTR,LPCWSTR,INT32,LPCWSTR); +#define GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt) +INT16 WINAPI GetPrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT16,LPCSTR); +INT32 WINAPI GetPrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT32,LPCSTR); +INT32 WINAPI GetPrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,INT32,LPCWSTR); +#define GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString) +FARPROC16 WINAPI GetProcAddress16(HMODULE16,SEGPTR); +FARPROC32 WINAPI GetProcAddress32(HMODULE32,LPCSTR); +#define GetProcAddress WINELIB_NAME(GetProcAddress) +UINT16 WINAPI GetProfileInt16(LPCSTR,LPCSTR,INT16); +UINT32 WINAPI GetProfileInt32A(LPCSTR,LPCSTR,INT32); +UINT32 WINAPI GetProfileInt32W(LPCWSTR,LPCWSTR,INT32); +#define GetProfileInt WINELIB_NAME_AW(GetProfileInt) +INT16 WINAPI GetProfileString16(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT16); +INT32 WINAPI GetProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPSTR,INT32); +INT32 WINAPI GetProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,INT32); +#define GetProfileString WINELIB_NAME_AW(GetProfileString) +HANDLE16 WINAPI GetProp16(HWND16,LPCSTR); +HANDLE32 WINAPI GetProp32A(HWND32,LPCSTR); +HANDLE32 WINAPI GetProp32W(HWND32,LPCWSTR); +#define GetProp WINELIB_NAME_AW(GetProp) +DWORD WINAPI GetQueueStatus16(UINT16); +DWORD WINAPI GetQueueStatus32(UINT32); +#define GetQueueStatus WINELIB_NAME(GetQueueStatus) +BOOL16 WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16); +BOOL32 WINAPI GetRasterizerCaps32(LPRASTERIZER_STATUS,UINT32); +#define GetRasterizerCaps WINELIB_NAME(GetRasterizerCaps) +INT16 WINAPI GetRelAbs16(HDC16); +INT32 WINAPI GetRelAbs32(HDC32); +#define GetRelAbs WINELIB_NAME(GetRelAbs) +INT16 WINAPI GetRgnBox16(HRGN16,LPRECT16); +INT32 WINAPI GetRgnBox32(HRGN32,LPRECT32); +#define GetRgnBox WINELIB_NAME(GetRgnBox) +INT16 WINAPI GetROP216(HDC16); +INT32 WINAPI GetROP232(HDC32); +#define GetROP2 WINELIB_NAME(GetROP2) +BOOL16 WINAPI GetScrollInfo16(HWND16,INT16,LPSCROLLINFO); +BOOL32 WINAPI GetScrollInfo32(HWND32,INT32,LPSCROLLINFO); +#define GetScrollInfo WINELIB_NAME(GetScrollInfo) +INT16 WINAPI GetScrollPos16(HWND16,INT16); +INT32 WINAPI GetScrollPos32(HWND32,INT32); +#define GetScrollPos WINELIB_NAME(GetScrollPos) +BOOL16 WINAPI GetScrollRange16(HWND16,INT16,LPINT16,LPINT16); +BOOL32 WINAPI GetScrollRange32(HWND32,INT32,LPINT32,LPINT32); +#define GetScrollRange WINELIB_NAME(GetScrollRange) +HGDIOBJ16 WINAPI GetStockObject16(INT16); +HGDIOBJ32 WINAPI GetStockObject32(INT32); +#define GetStockObject WINELIB_NAME(GetStockObject) +INT16 WINAPI GetStretchBltMode16(HDC16); +INT32 WINAPI GetStretchBltMode32(HDC32); +#define GetStretchBltMode WINELIB_NAME(GetStretchBltMode) +BOOL16 WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD); +BOOL32 WINAPI GetStringType32A(LCID,DWORD,LPCSTR,INT32,LPWORD); +BOOL32 WINAPI GetStringType32W(DWORD,LPCWSTR,INT32,LPWORD); +#define GetStringType WINELIB_NAME_AW(GetStringType) +HMENU16 WINAPI GetSubMenu16(HMENU16,INT16); +HMENU32 WINAPI GetSubMenu32(HMENU32,INT32); +#define GetSubMenu WINELIB_NAME(GetSubMenu) +COLORREF WINAPI GetSysColor16(INT16); +COLORREF WINAPI GetSysColor32(INT32); +#define GetSysColor WINELIB_NAME(GetSysColor) +HBRUSH16 WINAPI GetSysColorBrush16(INT16); +HBRUSH32 WINAPI GetSysColorBrush32(INT32); +#define GetSysColorBrush WINELIB_NAME(GetSysColorBrush) +HWND16 WINAPI GetSysModalWindow16(void); +#define GetSysModalWindow32() ((HWND32)0) +#define GetSysModalWindow WINELIB_NAME(GetSysModalWindow) +UINT16 WINAPI GetSystemDirectory16(LPSTR,UINT16); +UINT32 WINAPI GetSystemDirectory32A(LPSTR,UINT32); +UINT32 WINAPI GetSystemDirectory32W(LPWSTR,UINT32); +#define GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory) +HMENU16 WINAPI GetSystemMenu16(HWND16,BOOL16); +HMENU32 WINAPI GetSystemMenu32(HWND32,BOOL32); +#define GetSystemMenu WINELIB_NAME(GetSystemMenu) +INT16 WINAPI GetSystemMetrics16(INT16); +INT32 WINAPI GetSystemMetrics32(INT32); +#define GetSystemMetrics WINELIB_NAME(GetSystemMetrics) +UINT16 WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY); +UINT32 WINAPI GetSystemPaletteEntries32(HDC32,UINT32,UINT32,LPPALETTEENTRY); +#define GetSystemPaletteEntries WINELIB_NAME(GetSystemPaletteEntries) +UINT16 WINAPI GetSystemPaletteUse16(HDC16); +UINT32 WINAPI GetSystemPaletteUse32(HDC32); +#define GetSystemPaletteUse WINELIB_NAME(GetSystemPaletteUse) +DWORD WINAPI GetTabbedTextExtent16(HDC16,LPCSTR,INT16,INT16,const INT16*); +DWORD WINAPI GetTabbedTextExtent32A(HDC32,LPCSTR,INT32,INT32,const INT32*); +DWORD WINAPI GetTabbedTextExtent32W(HDC32,LPCWSTR,INT32,INT32,const INT32*); +#define GetTabbedTextExtent WINELIB_NAME_AW(GetTabbedTextExtent) +UINT16 WINAPI GetTempFileName16(BYTE,LPCSTR,UINT16,LPSTR); +UINT32 WINAPI GetTempFileName32A(LPCSTR,LPCSTR,UINT32,LPSTR); +UINT32 WINAPI GetTempFileName32W(LPCWSTR,LPCWSTR,UINT32,LPWSTR); +#define GetTempFileName WINELIB_NAME_AW(GetTempFileName) +UINT32 WINAPI GetTempPath32A(UINT32,LPSTR); +UINT32 WINAPI GetTempPath32W(UINT32,LPWSTR); +#define GetTempPath WINELIB_NAME_AW(GetTempPath) +UINT16 WINAPI GetTextAlign16(HDC16); +UINT32 WINAPI GetTextAlign32(HDC32); +#define GetTextAlign WINELIB_NAME(GetTextAlign) +INT16 WINAPI GetTextCharacterExtra16(HDC16); +INT32 WINAPI GetTextCharacterExtra32(HDC32); +#define GetTextCharacterExtra WINELIB_NAME(GetTextCharacterExtra) +COLORREF WINAPI GetTextColor16(HDC16); +COLORREF WINAPI GetTextColor32(HDC32); +#define GetTextColor WINELIB_NAME(GetTextColor) +BOOL16 WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16); +BOOL32 WINAPI GetTextExtentPoint32A(HDC32,LPCSTR,INT32,LPSIZE32); +BOOL32 WINAPI GetTextExtentPoint32W(HDC32,LPCWSTR,INT32,LPSIZE32); +#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint) +INT16 WINAPI GetTextFace16(HDC16,INT16,LPSTR); +INT32 WINAPI GetTextFace32A(HDC32,INT32,LPSTR); +INT32 WINAPI GetTextFace32W(HDC32,INT32,LPWSTR); +#define GetTextFace WINELIB_NAME_AW(GetTextFace) +BOOL16 WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16); +BOOL32 WINAPI GetTextMetrics32A(HDC32,LPTEXTMETRIC32A); +BOOL32 WINAPI GetTextMetrics32W(HDC32,LPTEXTMETRIC32W); +#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics) +LPINT16 WINAPI GetThresholdEvent16(void); +LPDWORD WINAPI GetThresholdEvent32(void); +#define GetThresholdEvent WINELIB_NAME(GetThresholdEvent) +INT16 WINAPI GetThresholdStatus16(void); +DWORD WINAPI GetThresholdStatus32(void); +#define GetThresholdStatus WINELIB_NAME(GetThresholdStatus) +HWND16 WINAPI GetTopWindow16(HWND16); +HWND32 WINAPI GetTopWindow32(HWND32); +#define GetTopWindow WINELIB_NAME(GetTopWindow) +BOOL16 WINAPI GetUpdateRect16(HWND16,LPRECT16,BOOL16); +BOOL32 WINAPI GetUpdateRect32(HWND32,LPRECT32,BOOL32); +#define GetUpdateRect WINELIB_NAME(GetUpdateRect) +INT16 WINAPI GetUpdateRgn16(HWND16,HRGN16,BOOL16); +INT32 WINAPI GetUpdateRgn32(HWND32,HRGN32,BOOL32); +#define GetUpdateRgn WINELIB_NAME(GetUpdateRgn) +LONG WINAPI GetVersion16(void); +LONG WINAPI GetVersion32(void); +#define GetVersion WINELIB_NAME(GetVersion) +BOOL16 WINAPI GetViewportExtEx16(HDC16,LPPOINT16); +BOOL32 WINAPI GetViewportExtEx32(HDC32,LPPOINT32); +#define GetViewportExtEx WINELIB_NAME(GetViewportExtEx) +BOOL16 WINAPI GetViewportOrgEx16(HDC16,LPPOINT16); +BOOL32 WINAPI GetViewportOrgEx32(HDC32,LPPOINT32); +#define GetViewportOrgEx WINELIB_NAME(GetViewportOrgEx) +BOOL32 WINAPI GetVolumeInformation32A(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD); +BOOL32 WINAPI GetVolumeInformation32W(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD); +#define GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation) +HWND16 WINAPI GetWindow16(HWND16,WORD); +HWND32 WINAPI GetWindow32(HWND32,WORD); +#define GetWindow WINELIB_NAME(GetWindow) +HDC16 WINAPI GetWindowDC16(HWND16); +HDC32 WINAPI GetWindowDC32(HWND32); +#define GetWindowDC WINELIB_NAME(GetWindowDC) +BOOL16 WINAPI GetWindowExtEx16(HDC16,LPPOINT16); +BOOL32 WINAPI GetWindowExtEx32(HDC32,LPPOINT32); +#define GetWindowExtEx WINELIB_NAME(GetWindowExtEx) +LONG WINAPI GetWindowLong16(HWND16,INT16); +LONG WINAPI GetWindowLong32A(HWND32,INT32); +LONG WINAPI GetWindowLong32W(HWND32,INT32); +#define GetWindowLong WINELIB_NAME_AW(GetWindowLong) +BOOL16 WINAPI GetWindowOrgEx16(HDC16,LPPOINT16); +BOOL32 WINAPI GetWindowOrgEx32(HDC32,LPPOINT32); +#define GetWindowOrgEx WINELIB_NAME(GetWindowOrgEx) +BOOL16 WINAPI GetWindowPlacement16(HWND16,LPWINDOWPLACEMENT16); +BOOL32 WINAPI GetWindowPlacement32(HWND32,LPWINDOWPLACEMENT32); +#define GetWindowPlacement WINELIB_NAME(GetWindowPlacement) +void WINAPI GetWindowRect16(HWND16,LPRECT16); +void WINAPI GetWindowRect32(HWND32,LPRECT32); +#define GetWindowRect WINELIB_NAME(GetWindowRect) +UINT16 WINAPI GetWindowsDirectory16(LPSTR,UINT16); +UINT32 WINAPI GetWindowsDirectory32A(LPSTR,UINT32); +UINT32 WINAPI GetWindowsDirectory32W(LPWSTR,UINT32); +#define GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory) +HTASK16 WINAPI GetWindowTask16(HWND16); +#define GetWindowTask32(hwnd) ((HTASK32)GetWindowThreadProcessId(hwnd,NULL)) +#define GetWindowTask WINELIB_NAME(GetWindowTask) +INT16 WINAPI GetWindowText16(HWND16,SEGPTR,INT16); +INT32 WINAPI GetWindowText32A(HWND32,LPSTR,INT32); +INT32 WINAPI GetWindowText32W(HWND32,LPWSTR,INT32); +#define GetWindowText WINELIB_NAME_AW(GetWindowText) +INT16 WINAPI GetWindowTextLength16(HWND16); +INT32 WINAPI GetWindowTextLength32A(HWND32); +INT32 WINAPI GetWindowTextLength32W(HWND32); +#define GetWindowTextLength WINELIB_NAME_AW(GetWindowTextLength) +WORD WINAPI GetWindowWord16(HWND16,INT16); +WORD WINAPI GetWindowWord32(HWND32,INT32); +#define GetWindowWord WINELIB_NAME(GetWindowWord) +ATOM WINAPI GlobalAddAtom16(SEGPTR); +ATOM WINAPI GlobalAddAtom32A(LPCSTR); +ATOM WINAPI GlobalAddAtom32W(LPCWSTR); +#define GlobalAddAtom WINELIB_NAME_AW(GlobalAddAtom) +HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD); +HGLOBAL32 WINAPI GlobalAlloc32(UINT32,DWORD); +#define GlobalAlloc WINELIB_NAME(GlobalAlloc) +DWORD WINAPI GlobalCompact16(DWORD); +DWORD WINAPI GlobalCompact32(DWORD); +#define GlobalCompact WINELIB_NAME(GlobalCompact) +UINT16 WINAPI GlobalFlags16(HGLOBAL16); +UINT32 WINAPI GlobalFlags32(HGLOBAL32); +#define GlobalFlags WINELIB_NAME(GlobalFlags) +ATOM WINAPI GlobalFindAtom16(SEGPTR); +ATOM WINAPI GlobalFindAtom32A(LPCSTR); +ATOM WINAPI GlobalFindAtom32W(LPCWSTR); +#define GlobalFindAtom WINELIB_NAME_AW(GlobalFindAtom) +HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16); +HGLOBAL32 WINAPI GlobalFree32(HGLOBAL32); +#define GlobalFree WINELIB_NAME(GlobalFree) +UINT16 WINAPI GlobalGetAtomName16(ATOM,LPSTR,INT16); +UINT32 WINAPI GlobalGetAtomName32A(ATOM,LPSTR,INT32); +UINT32 WINAPI GlobalGetAtomName32W(ATOM,LPWSTR,INT32); +#define GlobalGetAtomName WINELIB_NAME_AW(GlobalGetAtomName) +DWORD WINAPI GlobalHandle16(WORD); +HGLOBAL32 WINAPI GlobalHandle32(LPCVOID); +#define GlobalHandle WINELIB_NAME(GlobalHandle) +VOID WINAPI GlobalFix16(HGLOBAL16); +VOID WINAPI GlobalFix32(HGLOBAL32); +#define GlobalFix WINELIB_NAME(GlobalFix) +LPVOID WINAPI GlobalLock16(HGLOBAL16); +LPVOID WINAPI GlobalLock32(HGLOBAL32); +#define GlobalLock WINELIB_NAME(GlobalLock) +HGLOBAL16 WINAPI GlobalReAlloc16(HGLOBAL16,DWORD,UINT16); +HGLOBAL32 WINAPI GlobalReAlloc32(HGLOBAL32,DWORD,UINT32); +#define GlobalReAlloc WINELIB_NAME(GlobalReAlloc) +DWORD WINAPI GlobalSize16(HGLOBAL16); +DWORD WINAPI GlobalSize32(HGLOBAL32); +#define GlobalSize WINELIB_NAME(GlobalSize) +VOID WINAPI GlobalUnfix16(HGLOBAL16); +VOID WINAPI GlobalUnfix32(HGLOBAL32); +#define GlobalUnfix WINELIB_NAME(GlobalUnfix) +BOOL16 WINAPI GlobalUnlock16(HGLOBAL16); +BOOL32 WINAPI GlobalUnlock32(HGLOBAL32); +#define GlobalUnlock WINELIB_NAME(GlobalUnlock) +BOOL16 WINAPI GlobalUnWire16(HGLOBAL16); +BOOL32 WINAPI GlobalUnWire32(HGLOBAL32); +#define GlobalUnWire WINELIB_NAME(GlobalUnWire) +SEGPTR WINAPI GlobalWire16(HGLOBAL16); +LPVOID WINAPI GlobalWire32(HGLOBAL32); +#define GlobalWire WINELIB_NAME(GlobalWire) +BOOL16 WINAPI GrayString16(HDC16,HBRUSH16,GRAYSTRINGPROC16,LPARAM, + INT16,INT16,INT16,INT16,INT16); +BOOL32 WINAPI GrayString32A(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM, + INT32,INT32,INT32,INT32,INT32); +BOOL32 WINAPI GrayString32W(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM, + INT32,INT32,INT32,INT32,INT32); +#define GrayString WINELIB_NAME_AW(GrayString) +VOID WINAPI HideCaret16(HWND16); +BOOL32 WINAPI HideCaret32(HWND32); +#define HideCaret WINELIB_NAME(HideCaret) +BOOL16 WINAPI HiliteMenuItem16(HWND16,HMENU16,UINT16,UINT16); +BOOL32 WINAPI HiliteMenuItem32(HWND32,HMENU32,UINT32,UINT32); +#define HiliteMenuItem WINELIB_NAME(HiliteMenuItem) +void WINAPI InflateRect16(LPRECT16,INT16,INT16); +void WINAPI InflateRect32(LPRECT32,INT32,INT32); +#define InflateRect WINELIB_NAME(InflateRect) +WORD WINAPI InitAtomTable16(WORD); +BOOL32 WINAPI InitAtomTable32(DWORD); +#define InitAtomTable WINELIB_NAME(InitAtomTable) +BOOL16 WINAPI InSendMessage16(void); +BOOL32 WINAPI InSendMessage32(void); +#define InSendMessage WINELIB_NAME(InSendMessage) +BOOL16 WINAPI InsertMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR); +BOOL32 WINAPI InsertMenu32A(HMENU32,UINT32,UINT32,UINT32,LPCSTR); +BOOL32 WINAPI InsertMenu32W(HMENU32,UINT32,UINT32,UINT32,LPCWSTR); +#define InsertMenu WINELIB_NAME_AW(InsertMenu) +BOOL16 WINAPI InsertMenuItem16(HMENU16,UINT16,BOOL16,const MENUITEMINFO16*); +BOOL32 WINAPI InsertMenuItem32A(HMENU32,UINT32,BOOL32,const MENUITEMINFO32A*); +BOOL32 WINAPI InsertMenuItem32W(HMENU32,UINT32,BOOL32,const MENUITEMINFO32W*); +#define InsertMenuItem WINELIB_NAME_AW(InsertMenuItem) +INT16 WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16); +INT32 WINAPI IntersectClipRect32(HDC32,INT32,INT32,INT32,INT32); +#define IntersectClipRect WINELIB_NAME(IntersectClipRect) +BOOL16 WINAPI IntersectRect16(LPRECT16,const RECT16*,const RECT16*); +BOOL32 WINAPI IntersectRect32(LPRECT32,const RECT32*,const RECT32*); +#define IntersectRect WINELIB_NAME(IntersectRect) +void WINAPI InvalidateRect16(HWND16,const RECT16*,BOOL16); +void WINAPI InvalidateRect32(HWND32,const RECT32*,BOOL32); +#define InvalidateRect WINELIB_NAME(InvalidateRect) +void WINAPI InvalidateRgn16(HWND16,HRGN16,BOOL16); +void WINAPI InvalidateRgn32(HWND32,HRGN32,BOOL32); +#define InvalidateRgn WINELIB_NAME(InvalidateRgn) +void WINAPI InvertRect16(HDC16,const RECT16*); +void WINAPI InvertRect32(HDC32,const RECT32*); +#define InvertRect WINELIB_NAME(InvertRect) +BOOL16 WINAPI InvertRgn16(HDC16,HRGN16); +BOOL32 WINAPI InvertRgn32(HDC32,HRGN32); +#define InvertRgn WINELIB_NAME(InvertRgn) +BOOL16 WINAPI IsBadCodePtr16(SEGPTR); +BOOL32 WINAPI IsBadCodePtr32(FARPROC32); +#define IsBadCodePtr WINELIB_NAME(IsBadCodePtr) +BOOL16 WINAPI IsBadHugeReadPtr16(SEGPTR,DWORD); +BOOL32 WINAPI IsBadHugeReadPtr32(LPCVOID,UINT32); +#define IsBadHugeReadPtr WINELIB_NAME(IsBadHugeReadPtr) +BOOL16 WINAPI IsBadHugeWritePtr16(SEGPTR,DWORD); +BOOL32 WINAPI IsBadHugeWritePtr32(LPVOID,UINT32); +#define IsBadHugeWritePtr WINELIB_NAME(IsBadHugeWritePtr) +BOOL16 WINAPI IsBadReadPtr16(SEGPTR,UINT16); +BOOL32 WINAPI IsBadReadPtr32(LPCVOID,UINT32); +#define IsBadReadPtr WINELIB_NAME(IsBadReadPtr) +BOOL16 WINAPI IsBadStringPtr16(SEGPTR,UINT16); +BOOL32 WINAPI IsBadStringPtr32A(LPCSTR,UINT32); +BOOL32 WINAPI IsBadStringPtr32W(LPCWSTR,UINT32); +#define IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr) +BOOL16 WINAPI IsBadWritePtr16(SEGPTR,UINT16); +BOOL32 WINAPI IsBadWritePtr32(LPVOID,UINT32); +#define IsBadWritePtr WINELIB_NAME(IsBadWritePtr) +BOOL16 WINAPI IsCharAlpha16(CHAR); +BOOL32 WINAPI IsCharAlpha32A(CHAR); +BOOL32 WINAPI IsCharAlpha32W(WCHAR); +#define IsCharAlpha WINELIB_NAME_AW(IsCharAlpha) +BOOL16 WINAPI IsCharAlphaNumeric16(CHAR); +BOOL32 WINAPI IsCharAlphaNumeric32A(CHAR); +BOOL32 WINAPI IsCharAlphaNumeric32W(WCHAR); +#define IsCharAlphaNumeric WINELIB_NAME_AW(IsCharAlphaNumeric) +BOOL16 WINAPI IsCharLower16(CHAR); +BOOL32 WINAPI IsCharLower32A(CHAR); +BOOL32 WINAPI IsCharLower32W(WCHAR); +#define IsCharLower WINELIB_NAME_AW(IsCharLower) +BOOL16 WINAPI IsCharUpper16(CHAR); +BOOL32 WINAPI IsCharUpper32A(CHAR); +BOOL32 WINAPI IsCharUpper32W(WCHAR); +#define IsCharUpper WINELIB_NAME_AW(IsCharUpper) +BOOL16 WINAPI IsChild16(HWND16,HWND16); +BOOL32 WINAPI IsChild32(HWND32,HWND32); +#define IsChild WINELIB_NAME(IsChild) +BOOL16 WINAPI IsClipboardFormatAvailable16(UINT16); +BOOL32 WINAPI IsClipboardFormatAvailable32(UINT32); +#define IsClipboardFormatAvailable WINELIB_NAME(IsClipboardFormatAvailable) +BOOL16 WINAPI IsDBCSLeadByte16(BYTE); +BOOL32 WINAPI IsDBCSLeadByte32(BYTE); +#define IsDBCSLeadByte WINELIB_NAME(IsDBCSLeadByte) +BOOL16 WINAPI IsDialogMessage16(HWND16,LPMSG16); +BOOL32 WINAPI IsDialogMessage32A(HWND32,LPMSG32); +BOOL32 WINAPI IsDialogMessage32W(HWND32,LPMSG32); +#define IsDialogMessage WINELIB_NAME(IsDialogMessage) +UINT16 WINAPI IsDlgButtonChecked16(HWND16,UINT16); +UINT32 WINAPI IsDlgButtonChecked32(HWND32,UINT32); +#define IsDlgButtonChecked WINELIB_NAME(IsDlgButtonChecked) +BOOL16 WINAPI IsIconic16(HWND16); +BOOL32 WINAPI IsIconic32(HWND32); +#define IsIconic WINELIB_NAME(IsIconic) +BOOL16 WINAPI IsMenu16(HMENU16); +BOOL32 WINAPI IsMenu32(HMENU32); +#define IsMenu WINELIB_NAME(IsMenu) +BOOL16 WINAPI IsRectEmpty16(const RECT16*); +BOOL32 WINAPI IsRectEmpty32(const RECT32*); +#define IsRectEmpty WINELIB_NAME(IsRectEmpty) +BOOL16 WINAPI IsWindow16(HWND16); +BOOL32 WINAPI IsWindow32(HWND32); +#define IsWindow WINELIB_NAME(IsWindow) +BOOL16 WINAPI IsWindowEnabled16(HWND16); +BOOL32 WINAPI IsWindowEnabled32(HWND32); +#define IsWindowEnabled WINELIB_NAME(IsWindowEnabled) +BOOL16 WINAPI IsWindowVisible16(HWND16); +BOOL32 WINAPI IsWindowVisible32(HWND32); +#define IsWindowVisible WINELIB_NAME(IsWindowVisible) +BOOL16 WINAPI IsZoomed16(HWND16); +BOOL32 WINAPI IsZoomed32(HWND32); +#define IsZoomed WINELIB_NAME(IsZoomed) +BOOL16 WINAPI KillSystemTimer16(HWND16,UINT16); +BOOL32 WINAPI KillSystemTimer32(HWND32,UINT32); +#define KillSystemTimer WINELIB_NAME(KillSystemTimer) +BOOL16 WINAPI KillTimer16(HWND16,UINT16); +BOOL32 WINAPI KillTimer32(HWND32,UINT32); +#define KillTimer WINELIB_NAME(KillTimer) +HFILE16 WINAPI LZOpenFile16(LPCSTR,LPOFSTRUCT,UINT16); +HFILE32 WINAPI LZOpenFile32A(LPCSTR,LPOFSTRUCT,UINT32); +HFILE32 WINAPI LZOpenFile32W(LPCWSTR,LPOFSTRUCT,UINT32); +#define LZOpenFile WINELIB_NAME_AW(LZOpenFile) +INT16 WINAPI LZRead16(HFILE16,LPVOID,UINT16); +INT32 WINAPI LZRead32(HFILE32,LPVOID,UINT32); +#define LZRead WINELIB_NAME(LZRead) +INT16 WINAPI LZStart16(void); +INT32 WINAPI LZStart32(void); +#define LZStart WINELIB_NAME(LZStart) +VOID WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM); +BOOL32 WINAPI LineDDA32(INT32,INT32,INT32,INT32,LINEDDAPROC32,LPARAM); +#define LineDDA WINELIB_NAME(LineDDA) +BOOL16 WINAPI LineTo16(HDC16,INT16,INT16); +BOOL32 WINAPI LineTo32(HDC32,INT32,INT32); +#define LineTo WINELIB_NAME(LineTo) +HACCEL16 WINAPI LoadAccelerators16(HINSTANCE16,SEGPTR); +HACCEL32 WINAPI LoadAccelerators32A(HINSTANCE32,LPCSTR); +HACCEL32 WINAPI LoadAccelerators32W(HINSTANCE32,LPCWSTR); +#define LoadAccelerators WINELIB_NAME_AW(LoadAccelerators) +HBITMAP16 WINAPI LoadBitmap16(HANDLE16,SEGPTR); +HBITMAP32 WINAPI LoadBitmap32A(HANDLE32,LPCSTR); +HBITMAP32 WINAPI LoadBitmap32W(HANDLE32,LPCWSTR); +#define LoadBitmap WINELIB_NAME(LoadBitmap) +HCURSOR16 WINAPI LoadCursor16(HINSTANCE16,SEGPTR); +HCURSOR32 WINAPI LoadCursor32A(HINSTANCE32,LPCSTR); +HCURSOR32 WINAPI LoadCursor32W(HINSTANCE32,LPCWSTR); +#define LoadCursor WINELIB_NAME_AW(LoadCursor) +HICON16 WINAPI LoadIcon16(HINSTANCE16,SEGPTR); +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); +#define LoadLibrary WINELIB_NAME_AW(LoadLibrary) +HMENU16 WINAPI LoadMenu16(HINSTANCE16,SEGPTR); +HMENU32 WINAPI LoadMenu32A(HINSTANCE32,LPCSTR); +HMENU32 WINAPI LoadMenu32W(HINSTANCE32,LPCWSTR); +#define LoadMenu WINELIB_NAME_AW(LoadMenu) +HMENU16 WINAPI LoadMenuIndirect16(LPCVOID); +HMENU32 WINAPI LoadMenuIndirect32A(LPCVOID); +HMENU32 WINAPI LoadMenuIndirect32W(LPCVOID); +#define LoadMenuIndirect WINELIB_NAME_AW(LoadMenuIndirect) +HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID); +DWORD WINAPI LoadModule32(LPCSTR,LPVOID); +#define LoadModule WINELIB_NAME(LoadModule) +HGLOBAL16 WINAPI LoadResource16(HINSTANCE16,HRSRC16); +HGLOBAL32 WINAPI LoadResource32(HINSTANCE32,HRSRC32); +#define LoadResource WINELIB_NAME(LoadResource) +INT16 WINAPI LoadString16(HINSTANCE16,UINT16,LPSTR,INT16); +INT32 WINAPI LoadString32A(HINSTANCE32,UINT32,LPSTR,INT32); +INT32 WINAPI LoadString32W(HINSTANCE32,UINT32,LPWSTR,INT32); +#define LoadString WINELIB_NAME_AW(LoadString) +HLOCAL16 WINAPI LocalAlloc16(UINT16,WORD); +HLOCAL32 WINAPI LocalAlloc32(UINT32,DWORD); +#define LocalAlloc WINELIB_NAME(LocalAlloc) +UINT16 WINAPI LocalCompact16(UINT16); +UINT32 WINAPI LocalCompact32(UINT32); +#define LocalCompact WINELIB_NAME(LocalCompact) +UINT16 WINAPI LocalFlags16(HLOCAL16); +UINT32 WINAPI LocalFlags32(HLOCAL32); +#define LocalFlags WINELIB_NAME(LocalFlags) +HLOCAL16 WINAPI LocalFree16(HLOCAL16); +HLOCAL32 WINAPI LocalFree32(HLOCAL32); +#define LocalFree WINELIB_NAME(LocalFree) +HLOCAL16 WINAPI LocalHandle16(WORD); +HLOCAL32 WINAPI LocalHandle32(LPCVOID); +#define LocalHandle WINELIB_NAME(LocalHandle) +SEGPTR WINAPI LocalLock16(HLOCAL16); +LPVOID WINAPI LocalLock32(HLOCAL32); +#define LocalLock WINELIB_NAME(LocalLock) +HLOCAL16 WINAPI LocalReAlloc16(HLOCAL16,WORD,UINT16); +HLOCAL32 WINAPI LocalReAlloc32(HLOCAL32,DWORD,UINT32); +#define LocalReAlloc WINELIB_NAME(LocalReAlloc) +UINT16 WINAPI LocalShrink16(HGLOBAL16,UINT16); +UINT32 WINAPI LocalShrink32(HGLOBAL32,UINT32); +#define LocalShrink WINELIB_NAME(LocalShrink) +UINT16 WINAPI LocalSize16(HLOCAL16); +UINT32 WINAPI LocalSize32(HLOCAL32); +#define LocalSize WINELIB_NAME(LocalSize) +BOOL16 WINAPI LocalUnlock16(HLOCAL16); +BOOL32 WINAPI LocalUnlock32(HLOCAL32); +#define LocalUnlock WINELIB_NAME(LocalUnlock) +LPVOID WINAPI LockResource16(HGLOBAL16); +LPVOID WINAPI LockResource32(HGLOBAL32); +#define LockResource WINELIB_NAME(LockResource) +HGLOBAL16 WINAPI LockSegment16(HGLOBAL16); +#define LockSegment32(handle) GlobalFix32((HANDLE32)(handle)) +#define LockSegment WINELIB_NAME(LockSegment) +BOOL16 WINAPI LockWindowUpdate16(HWND16); +BOOL32 WINAPI LockWindowUpdate32(HWND32); +#define LockWindowUpdate WINELIB_NAME(LockWindowUpdate) +BOOL16 WINAPI LPtoDP16(HDC16,LPPOINT16,INT16); +BOOL32 WINAPI LPtoDP32(HDC32,LPPOINT32,INT32); +#define LPtoDP WINELIB_NAME(LPtoDP) +void WINAPI LZClose16(HFILE16); +void WINAPI LZClose32(HFILE32); +#define LZClose WINELIB_NAME(LZClose) +LONG WINAPI LZCopy16(HFILE16,HFILE16); +LONG WINAPI LZCopy32(HFILE32,HFILE32); +#define LZCopy WINELIB_NAME(LZCopy) +HFILE16 WINAPI LZInit16(HFILE16); +HFILE32 WINAPI LZInit32(HFILE32); +#define LZInit WINELIB_NAME(LZInit) +LONG WINAPI LZSeek16(HFILE16,LONG,INT16); +LONG WINAPI LZSeek32(HFILE32,LONG,INT32); +#define LZSeek WINELIB_NAME(LZSeek) +UINT16 WINAPI MapVirtualKey16(UINT16,UINT16); +UINT32 WINAPI MapVirtualKey32A(UINT32,UINT32); +UINT32 WINAPI MapVirtualKey32W(UINT32,UINT32); +#define MapVirtualKey WINELIB_NAME_AW(MapVirtualKey) +FARPROC16 WINAPI MakeProcInstance16(FARPROC16,HANDLE16); +#define MakeProcInstance32(proc,inst) (proc) +#define MakeProcInstance WINELIB_NAME(MakeProcInstance) +void WINAPI MapDialogRect16(HWND16,LPRECT16); +void WINAPI MapDialogRect32(HWND32,LPRECT32); +#define MapDialogRect WINELIB_NAME(MapDialogRect) +void WINAPI MapWindowPoints16(HWND16,HWND16,LPPOINT16,UINT16); +void WINAPI MapWindowPoints32(HWND32,HWND32,LPPOINT32,UINT32); +#define MapWindowPoints WINELIB_NAME(MapWindowPoints) +VOID WINAPI MessageBeep16(UINT16); +BOOL32 WINAPI MessageBeep32(UINT32); +#define MessageBeep WINELIB_NAME(MessageBeep) +INT16 WINAPI MessageBox16(HWND16,LPCSTR,LPCSTR,UINT16); +INT32 WINAPI MessageBox32A(HWND32,LPCSTR,LPCSTR,UINT32); +INT32 WINAPI MessageBox32W(HWND32,LPCWSTR,LPCWSTR,UINT32); +#define MessageBox WINELIB_NAME_AW(MessageBox) +BOOL16 WINAPI ModifyMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR); +BOOL32 WINAPI ModifyMenu32A(HMENU32,UINT32,UINT32,UINT32,LPCSTR); +BOOL32 WINAPI ModifyMenu32W(HMENU32,UINT32,UINT32,UINT32,LPCWSTR); +#define ModifyMenu WINELIB_NAME_AW(ModifyMenu) +BOOL16 WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16); +BOOL32 WINAPI MoveToEx32(HDC32,INT32,INT32,LPPOINT32); +#define MoveToEx WINELIB_NAME(MoveToEx) +BOOL16 WINAPI MoveWindow16(HWND16,INT16,INT16,INT16,INT16,BOOL16); +BOOL32 WINAPI MoveWindow32(HWND32,INT32,INT32,INT32,INT32,BOOL32); +#define MoveWindow WINELIB_NAME(MoveWindow) +INT16 WINAPI MulDiv16(INT16,INT16,INT16); +INT32 WINAPI MulDiv32(INT32,INT32,INT32); +#define MulDiv WINELIB_NAME(MulDiv) +INT16 WINAPI OemToAnsi16(LPCSTR,LPSTR); +#define OemToAnsi32A OemToChar32A +#define OemToAnsi32W OemToChar32W +#define OemToAnsi WINELIB_NAME_AW(OemToAnsi) +VOID WINAPI OemToAnsiBuff16(LPCSTR,LPSTR,UINT16); +#define OemToAnsiBuff32A OemToCharBuff32A +#define OemToAnsiBuff32W OemToCharBuff32W +#define OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff) +BOOL32 WINAPI OemToChar32A(LPCSTR,LPSTR); +BOOL32 WINAPI OemToChar32W(LPCSTR,LPWSTR); +#define OemToChar WINELIB_NAME_AW(OemToChar) +BOOL32 WINAPI OemToCharBuff32A(LPCSTR,LPSTR,DWORD); +BOOL32 WINAPI OemToCharBuff32W(LPCSTR,LPWSTR,DWORD); +#define OemToCharBuff WINELIB_NAME_AW(OemToCharBuff) +INT16 WINAPI OffsetClipRgn16(HDC16,INT16,INT16); +INT32 WINAPI OffsetClipRgn32(HDC32,INT32,INT32); +#define OffsetClipRgn WINELIB_NAME(OffsetClipRgn) +void WINAPI OffsetRect16(LPRECT16,INT16,INT16); +void WINAPI OffsetRect32(LPRECT32,INT32,INT32); +#define OffsetRect WINELIB_NAME(OffsetRect) +INT16 WINAPI OffsetRgn16(HRGN16,INT16,INT16); +INT32 WINAPI OffsetRgn32(HRGN32,INT32,INT32); +#define OffsetRgn WINELIB_NAME(OffsetRgn) +BOOL16 WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16); +BOOL32 WINAPI OffsetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32); +#define OffsetViewportOrgEx WINELIB_NAME(OffsetViewportOrgEx) +BOOL16 WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16); +BOOL32 WINAPI OffsetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32); +#define OffsetWindowOrgEx WINELIB_NAME(OffsetWindowOrgEx) +BOOL16 WINAPI OpenClipboard16(HWND16); +BOOL32 WINAPI OpenClipboard32(HWND32); +#define OpenClipboard WINELIB_NAME(OpenClipboard) +HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16); +HFILE32 WINAPI OpenFile32(LPCSTR,OFSTRUCT*,UINT32); +#define OpenFile WINELIB_NAME(OpenFile) +BOOL16 WINAPI OpenIcon16(HWND16); +BOOL32 WINAPI OpenIcon32(HWND32); +#define OpenIcon WINELIB_NAME(OpenIcon) +INT16 WINAPI OpenSound16(void); +VOID WINAPI OpenSound32(void); +#define OpenSound WINELIB_NAME(OpenSound) +VOID WINAPI OutputDebugString16(LPCSTR); +VOID WINAPI OutputDebugString32A(LPCSTR); +VOID WINAPI OutputDebugString32W(LPCWSTR); +#define OutputDebugString WINELIB_NAME_AW(OutputDebugString) +BOOL16 WINAPI PaintRgn16(HDC16,HRGN16); +BOOL32 WINAPI PaintRgn32(HDC32,HRGN32); +#define PaintRgn WINELIB_NAME(PaintRgn) +BOOL16 WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD); +BOOL32 WINAPI PatBlt32(HDC32,INT32,INT32,INT32,INT32,DWORD); +#define PatBlt WINELIB_NAME(PatBlt) +BOOL16 WINAPI PeekMessage16(LPMSG16,HWND16,UINT16,UINT16,UINT16); +BOOL32 WINAPI PeekMessage32A(LPMSG32,HWND32,UINT32,UINT32,UINT32); +BOOL32 WINAPI PeekMessage32W(LPMSG32,HWND32,UINT32,UINT32,UINT32); +#define PeekMessage WINELIB_NAME_AW(PeekMessage) +BOOL16 WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16); +BOOL32 WINAPI Pie32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32); +#define Pie WINELIB_NAME(Pie) +BOOL16 WINAPI PlayMetaFile16(HDC16,HMETAFILE16); +BOOL32 WINAPI PlayMetaFile32(HDC32,HMETAFILE32); +#define PlayMetaFile WINELIB_NAME(PlayMetaFile) +VOID WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16); +BOOL32 WINAPI PlayMetaFileRecord32(HDC32,LPHANDLETABLE32,LPMETARECORD,UINT32); +#define PlayMetaFileRecord WINELIB_NAME(PlayMetaFileRecord) +BOOL16 WINAPI PolyPolygon16(HDC16,LPPOINT16,LPINT16,UINT16); +BOOL32 WINAPI PolyPolygon32(HDC32,LPPOINT32,LPINT32,UINT32); +#define PolyPolygon WINELIB_NAME(PolyPolygon) +BOOL16 WINAPI Polygon16(HDC16,LPPOINT16,INT16); +BOOL32 WINAPI Polygon32(HDC32,LPPOINT32,INT32); +#define Polygon WINELIB_NAME(Polygon) +BOOL16 WINAPI Polyline16(HDC16,LPPOINT16,INT16); +BOOL32 WINAPI Polyline32(HDC32,LPPOINT32,INT32); +#define Polyline WINELIB_NAME(Polyline) +BOOL16 WINAPI PostAppMessage16(HTASK16,UINT16,WPARAM16,LPARAM); +#define PostAppMessage32A(thread,msg,wparam,lparam) \ + PostThreadMessage32A((DWORD)(thread),msg,wparam,lparam) +#define PostAppMessage32W(thread,msg,wparam,lparam) \ + PostThreadMessage32W((DWORD)(thread),msg,wparam,lparam) +#define PostAppMessage WINELIB_NAME_AW(PostAppMessage) +BOOL16 WINAPI PostMessage16(HWND16,UINT16,WPARAM16,LPARAM); +BOOL32 WINAPI PostMessage32A(HWND32,UINT32,WPARAM32,LPARAM); +BOOL32 WINAPI PostMessage32W(HWND32,UINT32,WPARAM32,LPARAM); +#define PostMessage WINELIB_NAME_AW(PostMessage) +void WINAPI PostQuitMessage16(INT16); +void WINAPI PostQuitMessage32(INT32); +#define PostQuitMessage WINELIB_NAME(PostQuitMessage) +BOOL16 WINAPI PtInRect16(const RECT16*,POINT16); +BOOL32 WINAPI PtInRect32(const RECT32*,POINT32); +#define PtInRect WINELIB_NAME(PtInRect) +BOOL16 WINAPI PtInRegion16(HRGN16,INT16,INT16); +BOOL32 WINAPI PtInRegion32(HRGN32,INT32,INT32); +#define PtInRegion WINELIB_NAME(PtInRegion) +BOOL16 WINAPI PtVisible16(HDC16,INT16,INT16); +BOOL32 WINAPI PtVisible32(HDC32,INT32,INT32); +#define PtVisible WINELIB_NAME(PtVisible) +UINT16 WINAPI RealizePalette16(HDC16); +UINT32 WINAPI RealizePalette32(HDC32); +#define RealizePalette WINELIB_NAME(RealizePalette) +BOOL16 WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16); +BOOL32 WINAPI Rectangle32(HDC32,INT32,INT32,INT32,INT32); +#define Rectangle WINELIB_NAME(Rectangle) +BOOL16 WINAPI RectInRegion16(HRGN16,const RECT16 *); +BOOL32 WINAPI RectInRegion32(HRGN32,const RECT32 *); +#define RectInRegion WINELIB_NAME(RectInRegion) +BOOL16 WINAPI RectVisible16(HDC16,LPRECT16); +BOOL32 WINAPI RectVisible32(HDC32,LPRECT32); +#define RectVisible WINELIB_NAME(RectVisible) +BOOL16 WINAPI RedrawWindow16(HWND16,const RECT16*,HRGN16,UINT16); +BOOL32 WINAPI RedrawWindow32(HWND32,const RECT32*,HRGN32,UINT32); +#define RedrawWindow WINELIB_NAME(RedrawWindow) +DWORD WINAPI RegCreateKey16(HKEY,LPCSTR,LPHKEY); +DWORD WINAPI RegCreateKey32A(HKEY,LPCSTR,LPHKEY); +DWORD WINAPI RegCreateKey32W(HKEY,LPCWSTR,LPHKEY); +#define RegCreateKey WINELIB_NAME_AW(RegCreateKey) +DWORD WINAPI RegDeleteKey16(HKEY,LPCSTR); +DWORD WINAPI RegDeleteKey32A(HKEY,LPCSTR); +DWORD WINAPI RegDeleteKey32W(HKEY,LPWSTR); +#define RegDeleteKey WINELIB_NAME_AW(RegDeleteKey) +DWORD WINAPI RegDeleteValue16(HKEY,LPSTR); +DWORD WINAPI RegDeleteValue32A(HKEY,LPSTR); +DWORD WINAPI RegDeleteValue32W(HKEY,LPWSTR); +#define RegDeleteValue WINELIB_NAME_AW(RegDeleteValue) +DWORD WINAPI RegEnumKey16(HKEY,DWORD,LPSTR,DWORD); +DWORD WINAPI RegEnumKey32A(HKEY,DWORD,LPSTR,DWORD); +DWORD WINAPI RegEnumKey32W(HKEY,DWORD,LPWSTR,DWORD); +#define RegEnumKey WINELIB_NAME_AW(RegEnumKey) +DWORD WINAPI RegEnumValue16(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD); +DWORD WINAPI RegEnumValue32A(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD); +DWORD WINAPI RegEnumValue32W(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD); +#define RegEnumValue WINELIB_NAME_AW(RegEnumValue) +ATOM WINAPI RegisterClass16(const WNDCLASS16*); +ATOM WINAPI RegisterClass32A(const WNDCLASS32A *); +ATOM WINAPI RegisterClass32W(const WNDCLASS32W *); +#define RegisterClass WINELIB_NAME_AW(RegisterClass) +ATOM WINAPI RegisterClassEx16(const WNDCLASSEX16*); +ATOM WINAPI RegisterClassEx32A(const WNDCLASSEX32A *); +ATOM WINAPI RegisterClassEx32W(const WNDCLASSEX32W *); +#define RegisterClassEx WINELIB_NAME_AW(RegisterClassEx) +UINT16 WINAPI RegisterClipboardFormat16(LPCSTR); +UINT32 WINAPI RegisterClipboardFormat32A(LPCSTR); +UINT32 WINAPI RegisterClipboardFormat32W(LPCWSTR); +#define RegisterClipboardFormat WINELIB_NAME_AW(RegisterClipboardFormat) +WORD WINAPI RegisterWindowMessage16(SEGPTR); +WORD WINAPI RegisterWindowMessage32A(LPCSTR); +WORD WINAPI RegisterWindowMessage32W(LPCWSTR); +#define RegisterWindowMessage WINELIB_NAME_AW(RegisterWindowMessage) +DWORD WINAPI RegOpenKey16(HKEY,LPCSTR,LPHKEY); +DWORD WINAPI RegOpenKey32A(HKEY,LPCSTR,LPHKEY); +DWORD WINAPI RegOpenKey32W(HKEY,LPCWSTR,LPHKEY); +#define RegOpenKey WINELIB_NAME_AW(RegOpenKey) +DWORD WINAPI RegQueryValue16(HKEY,LPSTR,LPSTR,LPDWORD); +DWORD WINAPI RegQueryValue32A(HKEY,LPSTR,LPSTR,LPDWORD); +DWORD WINAPI RegQueryValue32W(HKEY,LPWSTR,LPWSTR,LPDWORD); +#define RegQueryValue WINELIB_NAME_AW(RegQueryValue) +DWORD WINAPI RegQueryValueEx16(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD); +DWORD WINAPI RegQueryValueEx32A(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD); +DWORD WINAPI RegQueryValueEx32W(HKEY,LPWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD); +#define RegQueryValueEx WINELIB_NAME_AW(RegQueryValueEx) +DWORD WINAPI RegSetValue16(HKEY,LPCSTR,DWORD,LPCSTR,DWORD); +DWORD WINAPI RegSetValue32A(HKEY,LPCSTR,DWORD,LPCSTR,DWORD); +DWORD WINAPI RegSetValue32W(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD); +#define RegSetValue WINELIB_NAME_AW(RegSetValue) +DWORD WINAPI RegSetValueEx16(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD); +DWORD WINAPI RegSetValueEx32A(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD); +DWORD WINAPI RegSetValueEx32W(HKEY,LPWSTR,DWORD,DWORD,LPBYTE,DWORD); +#define RegSetValueEx WINELIB_NAME_AW(RegSetValueEx) +INT16 WINAPI ReleaseDC16(HWND16,HDC16); +INT32 WINAPI ReleaseDC32(HWND32,HDC32); +#define ReleaseDC WINELIB_NAME(ReleaseDC) +BOOL16 WINAPI RemoveDirectory16(LPCSTR); +BOOL32 WINAPI RemoveDirectory32A(LPCSTR); +BOOL32 WINAPI RemoveDirectory32W(LPCWSTR); +#define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory) +BOOL16 WINAPI RemoveFontResource16(SEGPTR); +BOOL32 WINAPI RemoveFontResource32A(LPCSTR); +BOOL32 WINAPI RemoveFontResource32W(LPCWSTR); +#define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource) +BOOL16 WINAPI RemoveMenu16(HMENU16,UINT16,UINT16); +BOOL32 WINAPI RemoveMenu32(HMENU32,UINT32,UINT32); +#define RemoveMenu WINELIB_NAME(RemoveMenu) +HANDLE16 WINAPI RemoveProp16(HWND16,LPCSTR); +HANDLE32 WINAPI RemoveProp32A(HWND32,LPCSTR); +HANDLE32 WINAPI RemoveProp32W(HWND32,LPCWSTR); +#define RemoveProp WINELIB_NAME_AW(RemoveProp) +VOID WINAPI ReplyMessage16(LRESULT); +BOOL32 WINAPI ReplyMessage32(LRESULT); +#define ReplyMessage WINELIB_NAME(ReplyMessage) +HDC16 WINAPI ResetDC16(HDC16,const DEVMODE16 *); +HDC32 WINAPI ResetDC32A(HDC32,const DEVMODE32A *); +HDC32 WINAPI ResetDC32W(HDC32,const DEVMODE32W *); +#define ResetDC WINELIB_NAME_AW(ResetDC) +BOOL16 WINAPI ResizePalette16(HPALETTE16,UINT16); +BOOL32 WINAPI ResizePalette32(HPALETTE32,UINT32); +#define ResizePalette WINELIB_NAME(ResizePalette) +BOOL16 WINAPI RestoreDC16(HDC16,INT16); +BOOL32 WINAPI RestoreDC32(HDC32,INT32); +#define RestoreDC WINELIB_NAME(RestoreDC) +BOOL16 WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16); +BOOL32 WINAPI RoundRect32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32); +#define RoundRect WINELIB_NAME(RoundRect) +INT16 WINAPI SaveDC16(HDC16); +INT32 WINAPI SaveDC32(HDC32); +#define SaveDC WINELIB_NAME(SaveDC) +BOOL16 WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16); +BOOL32 WINAPI ScaleViewportExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32); +#define ScaleViewportExtEx WINELIB_NAME(ScaleViewportExtEx) +BOOL16 WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16); +BOOL32 WINAPI ScaleWindowExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32); +#define ScaleWindowExtEx WINELIB_NAME(ScaleWindowExtEx) +void WINAPI ScreenToClient16(HWND16,LPPOINT16); +void WINAPI ScreenToClient32(HWND32,LPPOINT32); +#define ScreenToClient WINELIB_NAME(ScreenToClient) +VOID WINAPI ScrollChildren16(HWND16,UINT16,WPARAM16,LPARAM); +VOID WINAPI ScrollChildren32(HWND32,UINT32,WPARAM32,LPARAM); +#define ScrollChildren WINELIB_NAME(ScrollChildren) +BOOL16 WINAPI ScrollDC16(HDC16,INT16,INT16,const RECT16*,const RECT16*, HRGN16,LPRECT16); -BOOL32 ScrollDC32(HDC32,INT32,INT32,const RECT32*,const RECT32*, +BOOL32 WINAPI ScrollDC32(HDC32,INT32,INT32,const RECT32*,const RECT32*, HRGN32,LPRECT32); -#define ScrollDC WINELIB_NAME(ScrollDC) -void ScrollWindow16(HWND16,INT16,INT16,const RECT16*,const RECT16*); -BOOL32 ScrollWindow32(HWND32,INT32,INT32,const RECT32*,const RECT32*); -#define ScrollWindow WINELIB_NAME(ScrollWindow) -INT16 ScrollWindowEx16(HWND16,INT16,INT16,const RECT16*,const RECT16*, - HRGN16,LPRECT16,UINT16); -INT32 ScrollWindowEx32(HWND32,INT32,INT32,const RECT32*,const RECT32*, - HRGN32,LPRECT32,UINT32); -#define ScrollWindowEx WINELIB_NAME(ScrollWindowEx) -INT16 SelectClipRgn16(HDC16,HRGN16); -INT32 SelectClipRgn32(HDC32,HRGN32); -#define SelectClipRgn WINELIB_NAME(SelectClipRgn) -HGDIOBJ16 SelectObject16(HDC16,HGDIOBJ16); -HGDIOBJ32 SelectObject32(HDC32,HGDIOBJ32); -#define SelectObject WINELIB_NAME(SelectObject) -HPALETTE16 SelectPalette16(HDC16,HPALETTE16,BOOL16); -HPALETTE32 SelectPalette32(HDC32,HPALETTE32,BOOL32); -#define SelectPalette WINELIB_NAME(SelectPalette) -LRESULT SendDlgItemMessage16(HWND16,INT16,UINT16,WPARAM16,LPARAM); -LRESULT SendDlgItemMessage32A(HWND32,INT32,UINT32,WPARAM32,LPARAM); -LRESULT SendDlgItemMessage32W(HWND32,INT32,UINT32,WPARAM32,LPARAM); -#define SendDlgItemMessage WINELIB_NAME_AW(SendDlgItemMessage) -LRESULT SendMessage16(HWND16,UINT16,WPARAM16,LPARAM); -LRESULT SendMessage32A(HWND32,UINT32,WPARAM32,LPARAM); -LRESULT SendMessage32W(HWND32,UINT32,WPARAM32,LPARAM); -#define SendMessage WINELIB_NAME_AW(SendMessage) -HWND16 SetActiveWindow16(HWND16); -HWND32 SetActiveWindow32(HWND32); -#define SetActiveWindow WINELIB_NAME(SetActiveWindow) -LONG SetBitmapBits16(HBITMAP16,LONG,LPCVOID); -LONG SetBitmapBits32(HBITMAP32,LONG,LPCVOID); -#define SetBitmapBits WINELIB_NAME(SetBitmapBits) -BOOL16 SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16); -BOOL32 SetBitmapDimensionEx32(HBITMAP32,INT32,INT32,LPSIZE32); -#define SetBitmapDimensionEx WINELIB_NAME(SetBitmapDimensionEx) -COLORREF SetBkColor16(HDC16,COLORREF); -COLORREF SetBkColor32(HDC32,COLORREF); -#define SetBkColor WINELIB_NAME(SetBkColor) -INT16 SetBkMode16(HDC16,INT16); -INT32 SetBkMode32(HDC32,INT32); -#define SetBkMode WINELIB_NAME(SetBkMode) -HWND16 SetCapture16(HWND16); -HWND32 SetCapture32(HWND32); -#define SetCapture WINELIB_NAME(SetCapture) -VOID SetCaretBlinkTime16(UINT16); -BOOL32 SetCaretBlinkTime32(UINT32); -#define SetCaretBlinkTime WINELIB_NAME(SetCaretBlinkTime) -VOID SetCaretPos16(INT16,INT16); -BOOL32 SetCaretPos32(INT32,INT32); -#define SetCaretPos WINELIB_NAME(SetCaretPos) -LONG SetClassLong16(HWND16,INT16,LONG); -LONG SetClassLong32A(HWND32,INT32,LONG); -LONG SetClassLong32W(HWND32,INT32,LONG); -#define SetClassLong WINELIB_NAME_AW(SetClassLong) -WORD SetClassWord16(HWND16,INT16,WORD); -WORD SetClassWord32(HWND32,INT32,WORD); -#define SetClassWord WINELIB_NAME(SetClassWord) -HANDLE16 SetClipboardData16(UINT16,HANDLE16); -HANDLE32 SetClipboardData32(UINT32,HANDLE32); -#define SetClipboardData WINELIB_NAME(SetClipboardData) -HWND16 SetClipboardViewer16(HWND16); -HWND32 SetClipboardViewer32(HWND32); -#define SetClipboardViewer WINELIB_NAME(SetClipboardViewer) -INT16 SetCommBreak16(INT16); -BOOL32 SetCommBreak32(INT32); -#define SetCommBreak WINELIB_NAME(SetCommBreak) -INT16 SetCommState16(LPDCB16); -BOOL32 SetCommState32(INT32,LPDCB32); -#define SetCommState WINELIB_NAME(SetCommState) -BOOL16 SetCurrentDirectory16(LPCSTR); -BOOL32 SetCurrentDirectory32A(LPCSTR); -BOOL32 SetCurrentDirectory32W(LPCWSTR); -#define SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory) -HCURSOR16 SetCursor16(HCURSOR16); -HCURSOR32 SetCursor32(HCURSOR32); -#define SetCursor WINELIB_NAME(SetCursor) -void SetCursorPos16(INT16,INT16); -BOOL32 SetCursorPos32(INT32,INT32); -#define SetCursorPos WINELIB_NAME(SetCursorPos) -BOOL16 SetDeskWallPaper16(LPCSTR); -BOOL32 SetDeskWallPaper32(LPCSTR); -#define SetDeskWallPaper WINELIB_NAME(SetDeskWallPaper) -INT16 SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16); -INT32 SetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32); -#define SetDIBits WINELIB_NAME(SetDIBits) -INT16 SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16, - UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16); -INT32 SetDIBitsToDevice32(HDC32,INT32,INT32,DWORD,DWORD,INT32,INT32, - UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32); -#define SetDIBitsToDevice WINELIB_NAME(SetDIBitsToDevice) -void SetDlgItemInt16(HWND16,INT16,UINT16,BOOL16); -void SetDlgItemInt32(HWND32,INT32,UINT32,BOOL32); -#define SetDlgItemInt WINELIB_NAME(SetDlgItemInt) -void SetDlgItemText16(HWND16,INT16,SEGPTR); -void SetDlgItemText32A(HWND32,INT32,LPCSTR); -void SetDlgItemText32W(HWND32,INT32,LPCWSTR); -#define SetDlgItemText WINELIB_NAME_AW(SetDlgItemText) -VOID SetDoubleClickTime16(UINT16); -BOOL32 SetDoubleClickTime32(UINT32); -#define SetDoubleClickTime WINELIB_NAME(SetDoubleClickTime) -UINT16 SetErrorMode16(UINT16); -UINT32 SetErrorMode32(UINT32); -#define SetErrorMode WINELIB_NAME(SetErrorMode) -BOOL16 SetFileAttributes16(LPCSTR,DWORD); -BOOL32 SetFileAttributes32A(LPCSTR,DWORD); -BOOL32 SetFileAttributes32W(LPCWSTR,DWORD); -#define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes) -HWND16 SetFocus16(HWND16); -HWND32 SetFocus32(HWND32); -#define SetFocus WINELIB_NAME(SetFocus) -UINT16 SetHandleCount16(UINT16); -UINT32 SetHandleCount32(UINT32); -#define SetHandleCount WINELIB_NAME(SetHandleCount) -void SetInternalWindowPos16(HWND16,UINT16,LPRECT16,LPPOINT16); -void SetInternalWindowPos32(HWND32,UINT32,LPRECT32,LPPOINT32); -#define SetInternalWindowPos WINELIB_NAME(SetInternalWindowPos) -INT16 SetMapMode16(HDC16,INT16); -INT32 SetMapMode32(HDC32,INT32); -#define SetMapMode WINELIB_NAME(SetMapMode) -DWORD SetMapperFlags16(HDC16,DWORD); -DWORD SetMapperFlags32(HDC32,DWORD); -#define SetMapperFlags WINELIB_NAME(SetMapperFlags) -BOOL16 SetMenu16(HWND16,HMENU16); -BOOL32 SetMenu32(HWND32,HMENU32); -#define SetMenu WINELIB_NAME(SetMenu) -BOOL16 SetMenuItemBitmaps16(HMENU16,UINT16,UINT16,HBITMAP16,HBITMAP16); -BOOL32 SetMenuItemBitmaps32(HMENU32,UINT32,UINT32,HBITMAP32,HBITMAP32); -#define SetMenuItemBitmaps WINELIB_NAME(SetMenuItemBitmaps) -BOOL16 SetMessageQueue16(INT16); -BOOL32 SetMessageQueue32(INT32); -#define SetMessageQueue WINELIB_NAME(SetMessageQueue) -UINT16 SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY); -UINT32 SetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY); -#define SetPaletteEntries WINELIB_NAME(SetPaletteEntries) -HWND16 SetParent16(HWND16,HWND16); -HWND32 SetParent32(HWND32,HWND32); -#define SetParent WINELIB_NAME(SetParent) -COLORREF SetPixel16(HDC16,INT16,INT16,COLORREF); -COLORREF SetPixel32(HDC32,INT32,INT32,COLORREF); -#define SetPixel WINELIB_NAME(SetPixel) -INT16 SetPolyFillMode16(HDC16,INT16); -INT32 SetPolyFillMode32(HDC32,INT32); -#define SetPolyFillMode WINELIB_NAME(SetPolyFillMode) -BOOL16 SetProp16(HWND16,LPCSTR,HANDLE16); -BOOL32 SetProp32A(HWND32,LPCSTR,HANDLE32); -BOOL32 SetProp32W(HWND32,LPCWSTR,HANDLE32); -#define SetProp WINELIB_NAME_AW(SetProp) -void SetRect16(LPRECT16,INT16,INT16,INT16,INT16); -void SetRect32(LPRECT32,INT32,INT32,INT32,INT32); -#define SetRect WINELIB_NAME(SetRect) -void SetRectEmpty16(LPRECT16); -void SetRectEmpty32(LPRECT32); -#define SetRectEmpty WINELIB_NAME(SetRectEmpty) -VOID SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16); -VOID SetRectRgn32(HRGN32,INT32,INT32,INT32,INT32); -#define SetRectRgn WINELIB_NAME(SetRectRgn) -INT16 SetRelAbs16(HDC16,INT16); -INT32 SetRelAbs32(HDC32,INT32); -#define SetRelAbs WINELIB_NAME(SetRelAbs) -INT16 SetROP216(HDC16,INT16); -INT32 SetROP232(HDC32,INT32); -#define SetROP2 WINELIB_NAME(SetROP2) -INT16 SetScrollInfo16(HWND16,INT16,const SCROLLINFO*,BOOL16); -INT32 SetScrollInfo32(HWND32,INT32,const SCROLLINFO*,BOOL32); -#define SetScrollInfo WINELIB_NAME(SetScrollInfo) -INT16 SetScrollPos16(HWND16,INT16,INT16,BOOL16); -INT32 SetScrollPos32(HWND32,INT32,INT32,BOOL32); -#define SetScrollPos WINELIB_NAME(SetScrollPos) -void SetScrollRange16(HWND16,INT16,INT16,INT16,BOOL16); -BOOL32 SetScrollRange32(HWND32,INT32,INT32,INT32,BOOL32); -#define SetScrollRange WINELIB_NAME(SetScrollRange) -INT16 SetSoundNoise16(INT16,INT16); -DWORD SetSoundNoise32(DWORD,DWORD); -#define SetSoundNoise WINELIB_NAME(SetSoundNoise) -INT16 SetStretchBltMode16(HDC16,INT16); -INT32 SetStretchBltMode32(HDC32,INT32); -#define SetStretchBltMode WINELIB_NAME(SetStretchBltMode) -VOID SetSysColors16(INT16,const INT16*,const COLORREF*); -BOOL32 SetSysColors32(INT32,const INT32*,const COLORREF*); -#define SetSysColors WINELIB_NAME(SetSysColors) -HWND16 SetSysModalWindow16(HWND16); -#define SetSysModalWindow32(hwnd) ((HWND32)0) -#define SetSysModalWindow WINELIB_NAME(SetSysModalWindow) -BOOL16 SetSystemMenu16(HWND16,HMENU16); -BOOL32 SetSystemMenu32(HWND32,HMENU32); -#define SetSystemMenu WINELIB_NAME(SetSystemMenu) -UINT16 SetSystemPaletteUse16(HDC16,UINT16); -UINT32 SetSystemPaletteUse32(HDC32,UINT32); -#define SetSystemPaletteUse WINELIB_NAME(SetSystemPaletteUse) -UINT16 SetSystemTimer16(HWND16,UINT16,UINT16,TIMERPROC16); -UINT32 SetSystemTimer32(HWND32,UINT32,UINT32,TIMERPROC32); -#define SetSystemTimer WINELIB_NAME(SetSystemTimer) -UINT16 SetTextAlign16(HDC16,UINT16); -UINT32 SetTextAlign32(HDC32,UINT32); -#define SetTextAlign WINELIB_NAME(SetTextAlign) -INT16 SetTextCharacterExtra16(HDC16,INT16); -INT32 SetTextCharacterExtra32(HDC32,INT32); -#define SetTextCharacterExtra WINELIB_NAME(SetTextCharacterExtra) -COLORREF SetTextColor16(HDC16,COLORREF); -COLORREF SetTextColor32(HDC32,COLORREF); -#define SetTextColor WINELIB_NAME(SetTextColor) -INT16 SetTextJustification16(HDC16,INT16,INT16); -BOOL32 SetTextJustification32(HDC32,INT32,INT32); -#define SetTextJustification WINELIB_NAME(SetTextJustification) -UINT16 SetTimer16(HWND16,UINT16,UINT16,TIMERPROC16); -UINT32 SetTimer32(HWND32,UINT32,UINT32,TIMERPROC32); -#define SetTimer WINELIB_NAME(SetTimer) -BOOL16 SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16); -BOOL32 SetViewportExtEx32(HDC32,INT32,INT32,LPSIZE32); -#define SetViewportExtEx WINELIB_NAME(SetViewportExtEx) -BOOL16 SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16); -BOOL32 SetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32); -#define SetViewportOrgEx WINELIB_NAME(SetViewportOrgEx) -INT16 SetVoiceAccent16(INT16,INT16,INT16,INT16,INT16); -DWORD SetVoiceAccent32(DWORD,DWORD,DWORD,DWORD,DWORD); -#define SetVoiceAccent WINELIB_NAME(SetVoiceAccent) -INT16 SetVoiceEnvelope16(INT16,INT16,INT16); -DWORD SetVoiceEnvelope32(DWORD,DWORD,DWORD); -#define SetVoiceEnvelope WINELIB_NAME(SetVoiceEnvelope) -INT16 SetVoiceNote16(INT16,INT16,INT16,INT16); -DWORD SetVoiceNote32(DWORD,DWORD,DWORD,DWORD); -#define SetVoiceNote WINELIB_NAME(SetVoiceNote) -INT16 SetVoiceQueueSize16(INT16,INT16); -DWORD SetVoiceQueueSize32(DWORD,DWORD); -#define SetVoiceQueueSize WINELIB_NAME(SetVoiceQueueSize) -INT16 SetVoiceSound16(INT16,DWORD,INT16); -DWORD SetVoiceSound32(DWORD,DWORD,DWORD); -#define SetVoiceSound WINELIB_NAME(SetVoiceSound) -INT16 SetVoiceThreshold16(INT16,INT16); -DWORD SetVoiceThreshold32(DWORD,DWORD); -#define SetVoiceThreshold WINELIB_NAME(SetVoiceThreshold) -BOOL16 SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16); -BOOL32 SetWindowExtEx32(HDC32,INT32,INT32,LPSIZE32); -#define SetWindowExtEx WINELIB_NAME(SetWindowExtEx) -LONG SetWindowLong16(HWND16,INT16,LONG); -LONG SetWindowLong32A(HWND32,INT32,LONG); -LONG SetWindowLong32W(HWND32,INT32,LONG); -#define SetWindowLong WINELIB_NAME_AW(SetWindowLong) -BOOL16 SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16); -BOOL32 SetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32); -#define SetWindowOrgEx WINELIB_NAME(SetWindowOrgEx) -BOOL16 SetWindowPlacement16(HWND16,const WINDOWPLACEMENT16*); -BOOL32 SetWindowPlacement32(HWND32,const WINDOWPLACEMENT32*); -#define SetWindowPlacement WINELIB_NAME(SetWindowPlacement) -FARPROC16 SetWindowsHook16(INT16,HOOKPROC16); -HHOOK SetWindowsHook32A(INT32,HOOKPROC32); -HHOOK SetWindowsHook32W(INT32,HOOKPROC32); -#define SetWindowsHook WINELIB_NAME_AW(SetWindowsHook) -HHOOK SetWindowsHookEx16(INT16,HOOKPROC16,HINSTANCE16,HTASK16); -HHOOK SetWindowsHookEx32A(INT32,HOOKPROC32,HINSTANCE32,DWORD); -HHOOK SetWindowsHookEx32W(INT32,HOOKPROC32,HINSTANCE32,DWORD); -#define SetWindowsHookEx WINELIB_NAME_AW(SetWindowsHookEx) -BOOL16 SetWindowPos16(HWND16,HWND16,INT16,INT16,INT16,INT16,WORD); -BOOL32 SetWindowPos32(HWND32,HWND32,INT32,INT32,INT32,INT32,WORD); -#define SetWindowPos WINELIB_NAME(SetWindowPos) -void SetWindowText16(HWND16,SEGPTR); -void SetWindowText32A(HWND32,LPCSTR); -void SetWindowText32W(HWND32,LPCWSTR); -#define SetWindowText WINELIB_NAME_AW(SetWindowText) -WORD SetWindowWord16(HWND16,INT16,WORD); -WORD SetWindowWord32(HWND32,INT32,WORD); -#define SetWindowWord WINELIB_NAME(SetWindowWord) -BOOL16 ShellAbout16(HWND16,LPCSTR,LPCSTR,HICON16); -BOOL32 ShellAbout32A(HWND32,LPCSTR,LPCSTR,HICON32); -BOOL32 ShellAbout32W(HWND32,LPCWSTR,LPCWSTR,HICON32); -#define ShellAbout WINELIB_NAME_AW(ShellAbout) -HINSTANCE16 ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16); -HINSTANCE32 ShellExecute32A(HWND32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT32); -HINSTANCE32 ShellExecute32W(HWND32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT32); -#define ShellExecute WINELIB_NAME_AW(ShellExecute) -VOID ShowCaret16(HWND16); -BOOL32 ShowCaret32(HWND32); -#define ShowCaret WINELIB_NAME(ShowCaret) -INT16 ShowCursor16(BOOL16); -INT32 ShowCursor32(BOOL32); -#define ShowCursor WINELIB_NAME(ShowCursor) -void ShowScrollBar16(HWND16,INT16,BOOL16); -BOOL32 ShowScrollBar32(HWND32,INT32,BOOL32); -#define ShowScrollBar WINELIB_NAME(ShowScrollBar) -VOID ShowOwnedPopups16(HWND16,BOOL16); -BOOL32 ShowOwnedPopups32(HWND32,BOOL32); -#define ShowOwnedPopups WINELIB_NAME(ShowOwnedPopups) -BOOL16 ShowWindow16(HWND16,INT16); -BOOL32 ShowWindow32(HWND32,INT32); -#define ShowWindow WINELIB_NAME(ShowWindow) -DWORD SizeofResource16(HMODULE16,HRSRC16); -DWORD SizeofResource32(HMODULE32,HRSRC32); -#define SizeofResource WINELIB_NAME(SizeofResource) -INT16 StartDoc16(HDC16,const DOCINFO16*); -INT32 StartDoc32A(HDC32,const DOCINFO32A*); -INT32 StartDoc32W(HDC32,const DOCINFO32W*); -#define StartDoc WINELIB_NAME_AW(StartDoc) -INT16 StartSound16(void); -VOID StartSound32(void); -#define StartSound WINELIB_NAME(StartSound) -INT16 StopSound16(void); -VOID StopSound32(void); -#define StopSound WINELIB_NAME(StopSound) -BOOL16 StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16, - INT16,INT16,DWORD); -BOOL32 StretchBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32, - INT32,INT32,DWORD); -#define StretchBlt WINELIB_NAME(StretchBlt) -INT16 StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16, - INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD); -INT32 StretchDIBits32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32, - INT32,const VOID*,const BITMAPINFO*,UINT32,DWORD); -#define StretchDIBits WINELIB_NAME(StretchDIBits) -BOOL16 SubtractRect16(LPRECT16,const RECT16*,const RECT16*); -BOOL32 SubtractRect32(LPRECT32,const RECT32*,const RECT32*); -#define SubtractRect WINELIB_NAME(SubtractRect) -BOOL16 SwapMouseButton16(BOOL16); -BOOL32 SwapMouseButton32(BOOL32); -#define SwapMouseButton WINELIB_NAME(SwapMouseButton) -VOID SwitchToThisWindow16(HWND16,BOOL16); -VOID SwitchToThisWindow32(HWND32,BOOL32); -#define SwitchToThisWindow WINELIB_NAME(SwitchToThisWindow) -INT16 SyncAllVoices16(void); -DWORD SyncAllVoices32(void); -#define SyncAllVoices WINELIB_NAME(SyncAllVoices) -BOOL16 SystemParametersInfo16(UINT16,UINT16,LPVOID,UINT16); -BOOL32 SystemParametersInfo32A(UINT32,UINT32,LPVOID,UINT32); -BOOL32 SystemParametersInfo32W(UINT32,UINT32,LPVOID,UINT32); -#define SystemParametersInfo WINELIB_NAME_AW(SystemParametersInfo) -LONG TabbedTextOut16(HDC16,INT16,INT16,LPCSTR,INT16,INT16,const INT16*,INT16); -LONG TabbedTextOut32A(HDC32,INT32,INT32,LPCSTR,INT32,INT32,const INT32*,INT32); -LONG TabbedTextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32,INT32,const INT32*,INT32); -#define TabbedTextOut WINELIB_NAME_AW(TabbedTextOut) -BOOL16 TextOut16(HDC16,INT16,INT16,LPCSTR,INT16); -BOOL32 TextOut32A(HDC32,INT32,INT32,LPCSTR,INT32); -BOOL32 TextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32); -#define TextOut WINELIB_NAME_AW(TextOut) -INT16 ToAscii16(UINT16,UINT16,LPBYTE,LPVOID,UINT16); -INT32 ToAscii32(UINT32,UINT32,LPBYTE,LPWORD,UINT32); -#define ToAscii WINELIB_NAME(ToAscii) -BOOL16 TrackPopupMenu16(HMENU16,UINT16,INT16,INT16,INT16,HWND16,const RECT16*); -BOOL32 TrackPopupMenu32(HMENU32,UINT32,INT32,INT32,INT32,HWND32,const RECT32*); -#define TrackPopupMenu WINELIB_NAME(TrackPopupMenu) -INT16 TranslateAccelerator16(HWND16,HACCEL16,LPMSG16); -INT32 TranslateAccelerator32(HWND32,HACCEL32,LPMSG32); -#define TranslateAccelerator WINELIB_NAME(TranslateAccelerator) -BOOL16 TranslateMDISysAccel16(HWND16,LPMSG16); -BOOL32 TranslateMDISysAccel32(HWND32,LPMSG32); -#define TranslateMDISysAccel WINELIB_NAME(TranslateMDISysAccel) -BOOL16 TranslateMessage16(const MSG16*); -BOOL32 TranslateMessage32(const MSG32*); -#define TranslateMessage WINELIB_NAME(TranslateMessage) -INT16 TransmitCommChar16(INT16,CHAR); -BOOL32 TransmitCommChar32(INT32,CHAR); -#define TransmitCommChar WINELIB_NAME(TransmitCommChar) -BOOL16 UnhookWindowsHook16(INT16,HOOKPROC16); -BOOL32 UnhookWindowsHook32(INT32,HOOKPROC32); -#define UnhookWindowsHook WINELIB_NAME(UnhookWindowsHook) -BOOL16 UnhookWindowsHookEx16(HHOOK); -BOOL32 UnhookWindowsHookEx32(HHOOK); -#define UnhookWindowsHookEx WINELIB_NAME(UnhookWindowsHookEx) -BOOL16 UnionRect16(LPRECT16,const RECT16*,const RECT16*); -BOOL32 UnionRect32(LPRECT32,const RECT32*,const RECT32*); -#define UnionRect WINELIB_NAME(UnionRect) -void UnlockSegment16(HGLOBAL16); -#define UnlockSegment32(handle) GlobalUnfix((HANDLE32)(handle)) -#define UnlockSegment WINELIB_NAME(UnlockSegment) -BOOL16 UnrealizeObject16(HGDIOBJ16); -BOOL32 UnrealizeObject32(HGDIOBJ32); -#define UnrealizeObject WINELIB_NAME(UnrealizeObject) -BOOL16 UnregisterClass16(SEGPTR,HINSTANCE16); -BOOL32 UnregisterClass32A(LPCSTR,HINSTANCE32); -BOOL32 UnregisterClass32W(LPCWSTR,HINSTANCE32); -#define UnregisterClass WINELIB_NAME_AW(UnregisterClass) -INT16 UpdateColors16(HDC16); -BOOL32 UpdateColors32(HDC32); -#define UpdateColors WINELIB_NAME(UpdateColors) -VOID UpdateWindow16(HWND16); -VOID UpdateWindow32(HWND32); -#define UpdateWindow WINELIB_NAME(UpdateWindow) -VOID ValidateRect16(HWND16,const RECT16*); -VOID ValidateRect32(HWND32,const RECT32*); -#define ValidateRect WINELIB_NAME(ValidateRect) -VOID ValidateRgn16(HWND16,HRGN16); -VOID ValidateRgn32(HWND32,HRGN32); -#define ValidateRgn WINELIB_NAME(ValidateRgn) -DWORD VerFindFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*,LPSTR,UINT16*); -DWORD VerFindFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*,LPSTR,UINT32*); -DWORD VerFindFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*,LPWSTR,UINT32*); -#define VerFindFile WINELIB_NAME_AW(VerFindFile) -DWORD VerInstallFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*); -DWORD VerInstallFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*); -DWORD VerInstallFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*); -#define VerInstallFile WINELIB_NAME_AW(VerInstallFile) -DWORD VerLanguageName16(UINT16,LPSTR,UINT16); -DWORD VerLanguageName32A(UINT32,LPSTR,UINT32); -DWORD VerLanguageName32W(UINT32,LPWSTR,UINT32); -#define VerLanguageName WINELIB_NAME_AW(VerLanguageName) -DWORD VerQueryValue16(SEGPTR,LPCSTR,SEGPTR*,UINT16*); -DWORD VerQueryValue32A(LPVOID,LPCSTR,LPVOID*,UINT32*); -DWORD VerQueryValue32W(LPVOID,LPCWSTR,LPVOID*,UINT32*); -#define VerQueryValue WINELIB_NAME_AW(VerQueryValue) -WORD VkKeyScan16(CHAR); -WORD VkKeyScan32A(CHAR); -WORD VkKeyScan32W(WCHAR); -#define VkKeyScan WINELIB_NAME_AW(VkKeyScan) -INT16 WaitSoundState16(INT16); -DWORD WaitSoundState32(DWORD); -#define WaitSoundState WINELIB_NAME(WaitSoundState) -HWND16 WindowFromDC16(HDC16); -HWND32 WindowFromDC32(HDC32); -#define WindowFromDC WINELIB_NAME(WindowFromDC) -HWND16 WindowFromPoint16(POINT16); -HWND32 WindowFromPoint32(POINT32); -#define WindowFromPoint WINELIB_NAME(WindowFromPoint) -BOOL16 WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR); -BOOL32 WritePrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPCSTR); -BOOL32 WritePrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); -#define WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString) -BOOL16 WriteProfileString16(LPCSTR,LPCSTR,LPCSTR); -BOOL32 WriteProfileString32A(LPCSTR,LPCSTR,LPCSTR); -BOOL32 WriteProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR); -#define WriteProfileString WINELIB_NAME_AW(WriteProfileString) -SEGPTR lstrcat16(SEGPTR,LPCSTR); -LPSTR lstrcat32A(LPSTR,LPCSTR); -LPWSTR lstrcat32W(LPWSTR,LPCWSTR); -#define lstrcat WINELIB_NAME_AW(lstrcat) -SEGPTR lstrcatn16(SEGPTR,LPCSTR,INT16); -LPSTR lstrcatn32A(LPSTR,LPCSTR,INT32); -LPWSTR lstrcatn32W(LPWSTR,LPCWSTR,INT32); -#define lstrcatn WINELIB_NAME_AW(lstrcatn) -INT16 lstrcmp16(LPCSTR,LPCSTR); -INT32 lstrcmp32A(LPCSTR,LPCSTR); -INT32 lstrcmp32W(LPCWSTR,LPCWSTR); -#define lstrcmp WINELIB_NAME_AW(lstrcmp) -INT16 lstrcmpi16(LPCSTR,LPCSTR); -INT32 lstrcmpi32A(LPCSTR,LPCSTR); -INT32 lstrcmpi32W(LPCWSTR,LPCWSTR); -#define lstrcmpi WINELIB_NAME_AW(lstrcmpi) -SEGPTR lstrcpy16(SEGPTR,LPCSTR); -LPSTR lstrcpy32A(LPSTR,LPCSTR); -LPWSTR lstrcpy32W(LPWSTR,LPCWSTR); -#define lstrcpy WINELIB_NAME_AW(lstrcpy) -SEGPTR lstrcpyn16(SEGPTR,LPCSTR,INT16); -LPSTR lstrcpyn32A(LPSTR,LPCSTR,INT32); -LPWSTR lstrcpyn32W(LPWSTR,LPCWSTR,INT32); -#define lstrcpyn WINELIB_NAME_AW(lstrcpyn) -INT16 lstrlen16(LPCSTR); -INT32 lstrlen32A(LPCSTR); -INT32 lstrlen32W(LPCWSTR); -#define lstrlen WINELIB_NAME_AW(lstrlen) -HINSTANCE16 WinExec16(LPCSTR,UINT16); -HINSTANCE32 WinExec32(LPCSTR,UINT32); -#define WinExec WINELIB_NAME(WinExec) -BOOL16 WinHelp16(HWND16,LPCSTR,UINT16,DWORD); -BOOL32 WinHelp32A(HWND32,LPCSTR,UINT32,DWORD); -BOOL32 WinHelp32W(HWND32,LPCWSTR,UINT32,DWORD); -#define WinHelp WINELIB_NAME_AW(WinHelp) -INT16 wsnprintf16(LPSTR,UINT16,LPCSTR,...); -INT32 wsnprintf32A(LPSTR,UINT32,LPCSTR,...); -INT32 wsnprintf32W(LPWSTR,UINT32,LPCWSTR,...); -#define wsnprintf WINELIB_NAME_AW(wsnprintf) -INT16 wsprintf16(LPSTR,LPCSTR,...); -INT32 wsprintf32A(LPSTR,LPCSTR,...); -INT32 wsprintf32W(LPWSTR,LPCWSTR,...); -#define wsprintf WINELIB_NAME_AW(wsprintf) -INT16 wvsnprintf16(LPSTR,UINT16,LPCSTR,LPCVOID); -INT32 wvsnprintf32A(LPSTR,UINT32,LPCSTR,LPCVOID); -INT32 wvsnprintf32W(LPWSTR,UINT32,LPCWSTR,LPCVOID); -#define wvsnprintf WINELIB_NAME_AW(wvsnprintf) -INT16 wvsprintf16(LPSTR,LPCSTR,LPCVOID); -INT32 wvsprintf32A(LPSTR,LPCSTR,LPCVOID); -INT32 wvsprintf32W(LPWSTR,LPCWSTR,LPCVOID); -#define wvsprintf WINELIB_NAME_AW(wvsprintf) -LONG _hread16(HFILE16,LPVOID,LONG); -LONG _hread32(HFILE32,LPVOID,LONG); -#define _hread WINELIB_NAME(_hread) -LONG _hwrite16(HFILE16,LPCSTR,LONG); -LONG _hwrite32(HFILE32,LPCSTR,LONG); -#define _hwrite WINELIB_NAME(_hwrite) -HFILE16 _lcreat16(LPCSTR,INT16); -HFILE32 _lcreat32(LPCSTR,INT32); -#define _lcreat WINELIB_NAME(_lcreat) -HFILE16 _lclose16(HFILE16); -HFILE32 _lclose32(HFILE32); -#define _lclose WINELIB_NAME(_lclose) -LONG _llseek16(HFILE16,LONG,INT16); -LONG _llseek32(HFILE32,LONG,INT32); -#define _llseek WINELIB_NAME(_llseek) -HFILE16 _lopen16(LPCSTR,INT16); -HFILE32 _lopen32(LPCSTR,INT32); -#define _lopen WINELIB_NAME(_lopen) -UINT16 _lread16(HFILE16,LPVOID,UINT16); -UINT32 _lread32(HFILE32,LPVOID,UINT32); -#define _lread WINELIB_NAME(_lread) -UINT16 _lwrite16(HFILE16,LPCSTR,UINT16); -UINT32 _lwrite32(HFILE32,LPCSTR,UINT32); -#define _lwrite WINELIB_NAME(_lwrite) +#define ScrollDC WINELIB_NAME(ScrollDC) +void WINAPI ScrollWindow16(HWND16,INT16,INT16,const RECT16*,const RECT16*); +BOOL32 WINAPI ScrollWindow32(HWND32,INT32,INT32,const RECT32*,const RECT32*); +#define ScrollWindow WINELIB_NAME(ScrollWindow) +INT16 WINAPI ScrollWindowEx16(HWND16,INT16,INT16,const RECT16*, + const RECT16*,HRGN16,LPRECT16,UINT16); +INT32 WINAPI ScrollWindowEx32(HWND32,INT32,INT32,const RECT32*, + const RECT32*,HRGN32,LPRECT32,UINT32); +#define ScrollWindowEx WINELIB_NAME(ScrollWindowEx) +INT16 WINAPI SelectClipRgn16(HDC16,HRGN16); +INT32 WINAPI SelectClipRgn32(HDC32,HRGN32); +#define SelectClipRgn WINELIB_NAME(SelectClipRgn) +HGDIOBJ16 WINAPI SelectObject16(HDC16,HGDIOBJ16); +HGDIOBJ32 WINAPI SelectObject32(HDC32,HGDIOBJ32); +#define SelectObject WINELIB_NAME(SelectObject) +HPALETTE16 WINAPI SelectPalette16(HDC16,HPALETTE16,BOOL16); +HPALETTE32 WINAPI SelectPalette32(HDC32,HPALETTE32,BOOL32); +#define SelectPalette WINELIB_NAME(SelectPalette) +LRESULT WINAPI SendDlgItemMessage16(HWND16,INT16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI SendDlgItemMessage32A(HWND32,INT32,UINT32,WPARAM32,LPARAM); +LRESULT WINAPI SendDlgItemMessage32W(HWND32,INT32,UINT32,WPARAM32,LPARAM); +#define SendDlgItemMessage WINELIB_NAME_AW(SendDlgItemMessage) +LRESULT WINAPI SendMessage16(HWND16,UINT16,WPARAM16,LPARAM); +LRESULT WINAPI SendMessage32A(HWND32,UINT32,WPARAM32,LPARAM); +LRESULT WINAPI SendMessage32W(HWND32,UINT32,WPARAM32,LPARAM); +#define SendMessage WINELIB_NAME_AW(SendMessage) +HWND16 WINAPI SetActiveWindow16(HWND16); +HWND32 WINAPI SetActiveWindow32(HWND32); +#define SetActiveWindow WINELIB_NAME(SetActiveWindow) +LONG WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID); +LONG WINAPI SetBitmapBits32(HBITMAP32,LONG,LPCVOID); +#define SetBitmapBits WINELIB_NAME(SetBitmapBits) +BOOL16 WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16); +BOOL32 WINAPI SetBitmapDimensionEx32(HBITMAP32,INT32,INT32,LPSIZE32); +#define SetBitmapDimensionEx WINELIB_NAME(SetBitmapDimensionEx) +COLORREF WINAPI SetBkColor16(HDC16,COLORREF); +COLORREF WINAPI SetBkColor32(HDC32,COLORREF); +#define SetBkColor WINELIB_NAME(SetBkColor) +INT16 WINAPI SetBkMode16(HDC16,INT16); +INT32 WINAPI SetBkMode32(HDC32,INT32); +#define SetBkMode WINELIB_NAME(SetBkMode) +HWND16 WINAPI SetCapture16(HWND16); +HWND32 WINAPI SetCapture32(HWND32); +#define SetCapture WINELIB_NAME(SetCapture) +VOID WINAPI SetCaretBlinkTime16(UINT16); +BOOL32 WINAPI SetCaretBlinkTime32(UINT32); +#define SetCaretBlinkTime WINELIB_NAME(SetCaretBlinkTime) +VOID WINAPI SetCaretPos16(INT16,INT16); +BOOL32 WINAPI SetCaretPos32(INT32,INT32); +#define SetCaretPos WINELIB_NAME(SetCaretPos) +LONG WINAPI SetClassLong16(HWND16,INT16,LONG); +LONG WINAPI SetClassLong32A(HWND32,INT32,LONG); +LONG WINAPI SetClassLong32W(HWND32,INT32,LONG); +#define SetClassLong WINELIB_NAME_AW(SetClassLong) +WORD WINAPI SetClassWord16(HWND16,INT16,WORD); +WORD WINAPI SetClassWord32(HWND32,INT32,WORD); +#define SetClassWord WINELIB_NAME(SetClassWord) +HANDLE16 WINAPI SetClipboardData16(UINT16,HANDLE16); +HANDLE32 WINAPI SetClipboardData32(UINT32,HANDLE32); +#define SetClipboardData WINELIB_NAME(SetClipboardData) +HWND16 WINAPI SetClipboardViewer16(HWND16); +HWND32 WINAPI SetClipboardViewer32(HWND32); +#define SetClipboardViewer WINELIB_NAME(SetClipboardViewer) +INT16 WINAPI SetCommBreak16(INT16); +BOOL32 WINAPI SetCommBreak32(INT32); +#define SetCommBreak WINELIB_NAME(SetCommBreak) +INT16 WINAPI SetCommState16(LPDCB16); +BOOL32 WINAPI SetCommState32(INT32,LPDCB32); +#define SetCommState WINELIB_NAME(SetCommState) +BOOL16 WINAPI SetCurrentDirectory16(LPCSTR); +BOOL32 WINAPI SetCurrentDirectory32A(LPCSTR); +BOOL32 WINAPI SetCurrentDirectory32W(LPCWSTR); +#define SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory) +HCURSOR16 WINAPI SetCursor16(HCURSOR16); +HCURSOR32 WINAPI SetCursor32(HCURSOR32); +#define SetCursor WINELIB_NAME(SetCursor) +void WINAPI SetCursorPos16(INT16,INT16); +BOOL32 WINAPI SetCursorPos32(INT32,INT32); +#define SetCursorPos WINELIB_NAME(SetCursorPos) +BOOL16 WINAPI SetDeskWallPaper16(LPCSTR); +BOOL32 WINAPI SetDeskWallPaper32(LPCSTR); +#define SetDeskWallPaper WINELIB_NAME(SetDeskWallPaper) +INT16 WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16); +INT32 WINAPI SetDIBits32(HDC32,HBITMAP32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32); +#define SetDIBits WINELIB_NAME(SetDIBits) +INT16 WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16, + INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16); +INT32 WINAPI SetDIBitsToDevice32(HDC32,INT32,INT32,DWORD,DWORD,INT32, + INT32,UINT32,UINT32,LPCVOID,const BITMAPINFO*,UINT32); +#define SetDIBitsToDevice WINELIB_NAME(SetDIBitsToDevice) +void WINAPI SetDlgItemInt16(HWND16,INT16,UINT16,BOOL16); +void WINAPI SetDlgItemInt32(HWND32,INT32,UINT32,BOOL32); +#define SetDlgItemInt WINELIB_NAME(SetDlgItemInt) +void WINAPI SetDlgItemText16(HWND16,INT16,SEGPTR); +void WINAPI SetDlgItemText32A(HWND32,INT32,LPCSTR); +void WINAPI SetDlgItemText32W(HWND32,INT32,LPCWSTR); +#define SetDlgItemText WINELIB_NAME_AW(SetDlgItemText) +VOID WINAPI SetDoubleClickTime16(UINT16); +BOOL32 WINAPI SetDoubleClickTime32(UINT32); +#define SetDoubleClickTime WINELIB_NAME(SetDoubleClickTime) +UINT16 WINAPI SetErrorMode16(UINT16); +UINT32 WINAPI SetErrorMode32(UINT32); +#define SetErrorMode WINELIB_NAME(SetErrorMode) +BOOL16 WINAPI SetFileAttributes16(LPCSTR,DWORD); +BOOL32 WINAPI SetFileAttributes32A(LPCSTR,DWORD); +BOOL32 WINAPI SetFileAttributes32W(LPCWSTR,DWORD); +#define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes) +HWND16 WINAPI SetFocus16(HWND16); +HWND32 WINAPI SetFocus32(HWND32); +#define SetFocus WINELIB_NAME(SetFocus) +UINT16 WINAPI SetHandleCount16(UINT16); +UINT32 WINAPI SetHandleCount32(UINT32); +#define SetHandleCount WINELIB_NAME(SetHandleCount) +void WINAPI SetInternalWindowPos16(HWND16,UINT16,LPRECT16,LPPOINT16); +void WINAPI SetInternalWindowPos32(HWND32,UINT32,LPRECT32,LPPOINT32); +#define SetInternalWindowPos WINELIB_NAME(SetInternalWindowPos) +INT16 WINAPI SetMapMode16(HDC16,INT16); +INT32 WINAPI SetMapMode32(HDC32,INT32); +#define SetMapMode WINELIB_NAME(SetMapMode) +DWORD WINAPI SetMapperFlags16(HDC16,DWORD); +DWORD WINAPI SetMapperFlags32(HDC32,DWORD); +#define SetMapperFlags WINELIB_NAME(SetMapperFlags) +BOOL16 WINAPI SetMenu16(HWND16,HMENU16); +BOOL32 WINAPI SetMenu32(HWND32,HMENU32); +#define SetMenu WINELIB_NAME(SetMenu) +BOOL16 WINAPI SetMenuItemBitmaps16(HMENU16,UINT16,UINT16,HBITMAP16,HBITMAP16); +BOOL32 WINAPI SetMenuItemBitmaps32(HMENU32,UINT32,UINT32,HBITMAP32,HBITMAP32); +#define SetMenuItemBitmaps WINELIB_NAME(SetMenuItemBitmaps) +BOOL16 WINAPI SetMessageQueue16(INT16); +BOOL32 WINAPI SetMessageQueue32(INT32); +#define SetMessageQueue WINELIB_NAME(SetMessageQueue) +UINT16 WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY); +UINT32 WINAPI SetPaletteEntries32(HPALETTE32,UINT32,UINT32,LPPALETTEENTRY); +#define SetPaletteEntries WINELIB_NAME(SetPaletteEntries) +HWND16 WINAPI SetParent16(HWND16,HWND16); +HWND32 WINAPI SetParent32(HWND32,HWND32); +#define SetParent WINELIB_NAME(SetParent) +COLORREF WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF); +COLORREF WINAPI SetPixel32(HDC32,INT32,INT32,COLORREF); +#define SetPixel WINELIB_NAME(SetPixel) +INT16 WINAPI SetPolyFillMode16(HDC16,INT16); +INT32 WINAPI SetPolyFillMode32(HDC32,INT32); +#define SetPolyFillMode WINELIB_NAME(SetPolyFillMode) +BOOL16 WINAPI SetProp16(HWND16,LPCSTR,HANDLE16); +BOOL32 WINAPI SetProp32A(HWND32,LPCSTR,HANDLE32); +BOOL32 WINAPI SetProp32W(HWND32,LPCWSTR,HANDLE32); +#define SetProp WINELIB_NAME_AW(SetProp) +void WINAPI SetRect16(LPRECT16,INT16,INT16,INT16,INT16); +void WINAPI SetRect32(LPRECT32,INT32,INT32,INT32,INT32); +#define SetRect WINELIB_NAME(SetRect) +void WINAPI SetRectEmpty16(LPRECT16); +void WINAPI SetRectEmpty32(LPRECT32); +#define SetRectEmpty WINELIB_NAME(SetRectEmpty) +VOID WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16); +VOID WINAPI SetRectRgn32(HRGN32,INT32,INT32,INT32,INT32); +#define SetRectRgn WINELIB_NAME(SetRectRgn) +INT16 WINAPI SetRelAbs16(HDC16,INT16); +INT32 WINAPI SetRelAbs32(HDC32,INT32); +#define SetRelAbs WINELIB_NAME(SetRelAbs) +INT16 WINAPI SetROP216(HDC16,INT16); +INT32 WINAPI SetROP232(HDC32,INT32); +#define SetROP2 WINELIB_NAME(SetROP2) +INT16 WINAPI SetScrollInfo16(HWND16,INT16,const SCROLLINFO*,BOOL16); +INT32 WINAPI SetScrollInfo32(HWND32,INT32,const SCROLLINFO*,BOOL32); +#define SetScrollInfo WINELIB_NAME(SetScrollInfo) +INT16 WINAPI SetScrollPos16(HWND16,INT16,INT16,BOOL16); +INT32 WINAPI SetScrollPos32(HWND32,INT32,INT32,BOOL32); +#define SetScrollPos WINELIB_NAME(SetScrollPos) +void WINAPI SetScrollRange16(HWND16,INT16,INT16,INT16,BOOL16); +BOOL32 WINAPI SetScrollRange32(HWND32,INT32,INT32,INT32,BOOL32); +#define SetScrollRange WINELIB_NAME(SetScrollRange) +INT16 WINAPI SetSoundNoise16(INT16,INT16); +DWORD WINAPI SetSoundNoise32(DWORD,DWORD); +#define SetSoundNoise WINELIB_NAME(SetSoundNoise) +INT16 WINAPI SetStretchBltMode16(HDC16,INT16); +INT32 WINAPI SetStretchBltMode32(HDC32,INT32); +#define SetStretchBltMode WINELIB_NAME(SetStretchBltMode) +VOID WINAPI SetSysColors16(INT16,const INT16*,const COLORREF*); +BOOL32 WINAPI SetSysColors32(INT32,const INT32*,const COLORREF*); +#define SetSysColors WINELIB_NAME(SetSysColors) +HWND16 WINAPI SetSysModalWindow16(HWND16); +#define SetSysModalWindow32(hwnd) ((HWND32)0) +#define SetSysModalWindow WINELIB_NAME(SetSysModalWindow) +BOOL16 WINAPI SetSystemMenu16(HWND16,HMENU16); +BOOL32 WINAPI SetSystemMenu32(HWND32,HMENU32); +#define SetSystemMenu WINELIB_NAME(SetSystemMenu) +UINT16 WINAPI SetSystemPaletteUse16(HDC16,UINT16); +UINT32 WINAPI SetSystemPaletteUse32(HDC32,UINT32); +#define SetSystemPaletteUse WINELIB_NAME(SetSystemPaletteUse) +UINT16 WINAPI SetSystemTimer16(HWND16,UINT16,UINT16,TIMERPROC16); +UINT32 WINAPI SetSystemTimer32(HWND32,UINT32,UINT32,TIMERPROC32); +#define SetSystemTimer WINELIB_NAME(SetSystemTimer) +UINT16 WINAPI SetTextAlign16(HDC16,UINT16); +UINT32 WINAPI SetTextAlign32(HDC32,UINT32); +#define SetTextAlign WINELIB_NAME(SetTextAlign) +INT16 WINAPI SetTextCharacterExtra16(HDC16,INT16); +INT32 WINAPI SetTextCharacterExtra32(HDC32,INT32); +#define SetTextCharacterExtra WINELIB_NAME(SetTextCharacterExtra) +COLORREF WINAPI SetTextColor16(HDC16,COLORREF); +COLORREF WINAPI SetTextColor32(HDC32,COLORREF); +#define SetTextColor WINELIB_NAME(SetTextColor) +INT16 WINAPI SetTextJustification16(HDC16,INT16,INT16); +BOOL32 WINAPI SetTextJustification32(HDC32,INT32,INT32); +#define SetTextJustification WINELIB_NAME(SetTextJustification) +UINT16 WINAPI SetTimer16(HWND16,UINT16,UINT16,TIMERPROC16); +UINT32 WINAPI SetTimer32(HWND32,UINT32,UINT32,TIMERPROC32); +#define SetTimer WINELIB_NAME(SetTimer) +BOOL16 WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16); +BOOL32 WINAPI SetViewportExtEx32(HDC32,INT32,INT32,LPSIZE32); +#define SetViewportExtEx WINELIB_NAME(SetViewportExtEx) +BOOL16 WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16); +BOOL32 WINAPI SetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32); +#define SetViewportOrgEx WINELIB_NAME(SetViewportOrgEx) +INT16 WINAPI SetVoiceAccent16(INT16,INT16,INT16,INT16,INT16); +DWORD WINAPI SetVoiceAccent32(DWORD,DWORD,DWORD,DWORD,DWORD); +#define SetVoiceAccent WINELIB_NAME(SetVoiceAccent) +INT16 WINAPI SetVoiceEnvelope16(INT16,INT16,INT16); +DWORD WINAPI SetVoiceEnvelope32(DWORD,DWORD,DWORD); +#define SetVoiceEnvelope WINELIB_NAME(SetVoiceEnvelope) +INT16 WINAPI SetVoiceNote16(INT16,INT16,INT16,INT16); +DWORD WINAPI SetVoiceNote32(DWORD,DWORD,DWORD,DWORD); +#define SetVoiceNote WINELIB_NAME(SetVoiceNote) +INT16 WINAPI SetVoiceQueueSize16(INT16,INT16); +DWORD WINAPI SetVoiceQueueSize32(DWORD,DWORD); +#define SetVoiceQueueSize WINELIB_NAME(SetVoiceQueueSize) +INT16 WINAPI SetVoiceSound16(INT16,DWORD,INT16); +DWORD WINAPI SetVoiceSound32(DWORD,DWORD,DWORD); +#define SetVoiceSound WINELIB_NAME(SetVoiceSound) +INT16 WINAPI SetVoiceThreshold16(INT16,INT16); +DWORD WINAPI SetVoiceThreshold32(DWORD,DWORD); +#define SetVoiceThreshold WINELIB_NAME(SetVoiceThreshold) +BOOL16 WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16); +BOOL32 WINAPI SetWindowExtEx32(HDC32,INT32,INT32,LPSIZE32); +#define SetWindowExtEx WINELIB_NAME(SetWindowExtEx) +LONG WINAPI SetWindowLong16(HWND16,INT16,LONG); +LONG WINAPI SetWindowLong32A(HWND32,INT32,LONG); +LONG WINAPI SetWindowLong32W(HWND32,INT32,LONG); +#define SetWindowLong WINELIB_NAME_AW(SetWindowLong) +BOOL16 WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16); +BOOL32 WINAPI SetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32); +#define SetWindowOrgEx WINELIB_NAME(SetWindowOrgEx) +BOOL16 WINAPI SetWindowPlacement16(HWND16,const WINDOWPLACEMENT16*); +BOOL32 WINAPI SetWindowPlacement32(HWND32,const WINDOWPLACEMENT32*); +#define SetWindowPlacement WINELIB_NAME(SetWindowPlacement) +FARPROC16 WINAPI SetWindowsHook16(INT16,HOOKPROC16); +HHOOK WINAPI SetWindowsHook32A(INT32,HOOKPROC32); +HHOOK WINAPI SetWindowsHook32W(INT32,HOOKPROC32); +#define SetWindowsHook WINELIB_NAME_AW(SetWindowsHook) +HHOOK WINAPI SetWindowsHookEx16(INT16,HOOKPROC16,HINSTANCE16,HTASK16); +HHOOK WINAPI SetWindowsHookEx32A(INT32,HOOKPROC32,HINSTANCE32,DWORD); +HHOOK WINAPI SetWindowsHookEx32W(INT32,HOOKPROC32,HINSTANCE32,DWORD); +#define SetWindowsHookEx WINELIB_NAME_AW(SetWindowsHookEx) +BOOL16 WINAPI SetWindowPos16(HWND16,HWND16,INT16,INT16,INT16,INT16,WORD); +BOOL32 WINAPI SetWindowPos32(HWND32,HWND32,INT32,INT32,INT32,INT32,WORD); +#define SetWindowPos WINELIB_NAME(SetWindowPos) +void WINAPI SetWindowText16(HWND16,SEGPTR); +void WINAPI SetWindowText32A(HWND32,LPCSTR); +void WINAPI SetWindowText32W(HWND32,LPCWSTR); +#define SetWindowText WINELIB_NAME_AW(SetWindowText) +WORD WINAPI SetWindowWord16(HWND16,INT16,WORD); +WORD WINAPI SetWindowWord32(HWND32,INT32,WORD); +#define SetWindowWord WINELIB_NAME(SetWindowWord) +BOOL16 WINAPI ShellAbout16(HWND16,LPCSTR,LPCSTR,HICON16); +BOOL32 WINAPI ShellAbout32A(HWND32,LPCSTR,LPCSTR,HICON32); +BOOL32 WINAPI ShellAbout32W(HWND32,LPCWSTR,LPCWSTR,HICON32); +#define ShellAbout WINELIB_NAME_AW(ShellAbout) +HINSTANCE16 WINAPI ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16); +HINSTANCE32 WINAPI ShellExecute32A(HWND32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT32); +HINSTANCE32 WINAPI ShellExecute32W(HWND32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT32); +#define ShellExecute WINELIB_NAME_AW(ShellExecute) +VOID WINAPI ShowCaret16(HWND16); +BOOL32 WINAPI ShowCaret32(HWND32); +#define ShowCaret WINELIB_NAME(ShowCaret) +INT16 WINAPI ShowCursor16(BOOL16); +INT32 WINAPI ShowCursor32(BOOL32); +#define ShowCursor WINELIB_NAME(ShowCursor) +void WINAPI ShowScrollBar16(HWND16,INT16,BOOL16); +BOOL32 WINAPI ShowScrollBar32(HWND32,INT32,BOOL32); +#define ShowScrollBar WINELIB_NAME(ShowScrollBar) +VOID WINAPI ShowOwnedPopups16(HWND16,BOOL16); +BOOL32 WINAPI ShowOwnedPopups32(HWND32,BOOL32); +#define ShowOwnedPopups WINELIB_NAME(ShowOwnedPopups) +BOOL16 WINAPI ShowWindow16(HWND16,INT16); +BOOL32 WINAPI ShowWindow32(HWND32,INT32); +#define ShowWindow WINELIB_NAME(ShowWindow) +DWORD WINAPI SizeofResource16(HMODULE16,HRSRC16); +DWORD WINAPI SizeofResource32(HMODULE32,HRSRC32); +#define SizeofResource WINELIB_NAME(SizeofResource) +INT16 WINAPI StartDoc16(HDC16,const DOCINFO16*); +INT32 WINAPI StartDoc32A(HDC32,const DOCINFO32A*); +INT32 WINAPI StartDoc32W(HDC32,const DOCINFO32W*); +#define StartDoc WINELIB_NAME_AW(StartDoc) +INT16 WINAPI StartSound16(void); +VOID WINAPI StartSound32(void); +#define StartSound WINELIB_NAME(StartSound) +INT16 WINAPI StopSound16(void); +VOID WINAPI StopSound32(void); +#define StopSound WINELIB_NAME(StopSound) +BOOL16 WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16, + INT16,INT16,INT16,DWORD); +BOOL32 WINAPI StretchBlt32(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32, + INT32,INT32,INT32,DWORD); +#define StretchBlt WINELIB_NAME(StretchBlt) +INT16 WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16, + INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD); +INT32 WINAPI StretchDIBits32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32, + INT32,INT32,const VOID*,const BITMAPINFO*,UINT32,DWORD); +#define StretchDIBits WINELIB_NAME(StretchDIBits) +BOOL16 WINAPI SubtractRect16(LPRECT16,const RECT16*,const RECT16*); +BOOL32 WINAPI SubtractRect32(LPRECT32,const RECT32*,const RECT32*); +#define SubtractRect WINELIB_NAME(SubtractRect) +BOOL16 WINAPI SwapMouseButton16(BOOL16); +BOOL32 WINAPI SwapMouseButton32(BOOL32); +#define SwapMouseButton WINELIB_NAME(SwapMouseButton) +VOID WINAPI SwitchToThisWindow16(HWND16,BOOL16); +VOID WINAPI SwitchToThisWindow32(HWND32,BOOL32); +#define SwitchToThisWindow WINELIB_NAME(SwitchToThisWindow) +INT16 WINAPI SyncAllVoices16(void); +DWORD WINAPI SyncAllVoices32(void); +#define SyncAllVoices WINELIB_NAME(SyncAllVoices) +BOOL16 WINAPI SystemParametersInfo16(UINT16,UINT16,LPVOID,UINT16); +BOOL32 WINAPI SystemParametersInfo32A(UINT32,UINT32,LPVOID,UINT32); +BOOL32 WINAPI SystemParametersInfo32W(UINT32,UINT32,LPVOID,UINT32); +#define SystemParametersInfo WINELIB_NAME_AW(SystemParametersInfo) +LONG WINAPI TabbedTextOut16(HDC16,INT16,INT16,LPCSTR,INT16,INT16,const INT16*,INT16); +LONG WINAPI TabbedTextOut32A(HDC32,INT32,INT32,LPCSTR,INT32,INT32,const INT32*,INT32); +LONG WINAPI TabbedTextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32,INT32,const INT32*,INT32); +#define TabbedTextOut WINELIB_NAME_AW(TabbedTextOut) +BOOL16 WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16); +BOOL32 WINAPI TextOut32A(HDC32,INT32,INT32,LPCSTR,INT32); +BOOL32 WINAPI TextOut32W(HDC32,INT32,INT32,LPCWSTR,INT32); +#define TextOut WINELIB_NAME_AW(TextOut) +INT16 WINAPI ToAscii16(UINT16,UINT16,LPBYTE,LPVOID,UINT16); +INT32 WINAPI ToAscii32(UINT32,UINT32,LPBYTE,LPWORD,UINT32); +#define ToAscii WINELIB_NAME(ToAscii) +BOOL16 WINAPI TrackPopupMenu16(HMENU16,UINT16,INT16,INT16,INT16,HWND16,const RECT16*); +BOOL32 WINAPI TrackPopupMenu32(HMENU32,UINT32,INT32,INT32,INT32,HWND32,const RECT32*); +#define TrackPopupMenu WINELIB_NAME(TrackPopupMenu) +INT16 WINAPI TranslateAccelerator16(HWND16,HACCEL16,LPMSG16); +INT32 WINAPI TranslateAccelerator32(HWND32,HACCEL32,LPMSG32); +#define TranslateAccelerator WINELIB_NAME(TranslateAccelerator) +BOOL16 WINAPI TranslateMDISysAccel16(HWND16,LPMSG16); +BOOL32 WINAPI TranslateMDISysAccel32(HWND32,LPMSG32); +#define TranslateMDISysAccel WINELIB_NAME(TranslateMDISysAccel) +BOOL16 WINAPI TranslateMessage16(const MSG16*); +BOOL32 WINAPI TranslateMessage32(const MSG32*); +#define TranslateMessage WINELIB_NAME(TranslateMessage) +INT16 WINAPI TransmitCommChar16(INT16,CHAR); +BOOL32 WINAPI TransmitCommChar32(INT32,CHAR); +#define TransmitCommChar WINELIB_NAME(TransmitCommChar) +BOOL16 WINAPI UnhookWindowsHook16(INT16,HOOKPROC16); +BOOL32 WINAPI UnhookWindowsHook32(INT32,HOOKPROC32); +#define UnhookWindowsHook WINELIB_NAME(UnhookWindowsHook) +BOOL16 WINAPI UnhookWindowsHookEx16(HHOOK); +BOOL32 WINAPI UnhookWindowsHookEx32(HHOOK); +#define UnhookWindowsHookEx WINELIB_NAME(UnhookWindowsHookEx) +BOOL16 WINAPI UnionRect16(LPRECT16,const RECT16*,const RECT16*); +BOOL32 WINAPI UnionRect32(LPRECT32,const RECT32*,const RECT32*); +#define UnionRect WINELIB_NAME(UnionRect) +void WINAPI UnlockSegment16(HGLOBAL16); +#define UnlockSegment32(handle) GlobalUnfix((HANDLE32)(handle)) +#define UnlockSegment WINELIB_NAME(UnlockSegment) +BOOL16 WINAPI UnrealizeObject16(HGDIOBJ16); +BOOL32 WINAPI UnrealizeObject32(HGDIOBJ32); +#define UnrealizeObject WINELIB_NAME(UnrealizeObject) +BOOL16 WINAPI UnregisterClass16(SEGPTR,HINSTANCE16); +BOOL32 WINAPI UnregisterClass32A(LPCSTR,HINSTANCE32); +BOOL32 WINAPI UnregisterClass32W(LPCWSTR,HINSTANCE32); +#define UnregisterClass WINELIB_NAME_AW(UnregisterClass) +INT16 WINAPI UpdateColors16(HDC16); +BOOL32 WINAPI UpdateColors32(HDC32); +#define UpdateColors WINELIB_NAME(UpdateColors) +VOID WINAPI UpdateWindow16(HWND16); +VOID WINAPI UpdateWindow32(HWND32); +#define UpdateWindow WINELIB_NAME(UpdateWindow) +VOID WINAPI ValidateRect16(HWND16,const RECT16*); +VOID WINAPI ValidateRect32(HWND32,const RECT32*); +#define ValidateRect WINELIB_NAME(ValidateRect) +VOID WINAPI ValidateRgn16(HWND16,HRGN16); +VOID WINAPI ValidateRgn32(HWND32,HRGN32); +#define ValidateRgn WINELIB_NAME(ValidateRgn) +DWORD WINAPI VerFindFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*,LPSTR,UINT16*); +DWORD WINAPI VerFindFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*,LPSTR,UINT32*); +DWORD WINAPI VerFindFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*,LPWSTR,UINT32*); +#define VerFindFile WINELIB_NAME_AW(VerFindFile) +DWORD WINAPI VerInstallFile16(UINT16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT16*); +DWORD WINAPI VerInstallFile32A(UINT32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT32*); +DWORD WINAPI VerInstallFile32W(UINT32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT32*); +#define VerInstallFile WINELIB_NAME_AW(VerInstallFile) +DWORD WINAPI VerLanguageName16(UINT16,LPSTR,UINT16); +DWORD WINAPI VerLanguageName32A(UINT32,LPSTR,UINT32); +DWORD WINAPI VerLanguageName32W(UINT32,LPWSTR,UINT32); +#define VerLanguageName WINELIB_NAME_AW(VerLanguageName) +DWORD WINAPI VerQueryValue16(SEGPTR,LPCSTR,SEGPTR*,UINT16*); +DWORD WINAPI VerQueryValue32A(LPVOID,LPCSTR,LPVOID*,UINT32*); +DWORD WINAPI VerQueryValue32W(LPVOID,LPCWSTR,LPVOID*,UINT32*); +#define VerQueryValue WINELIB_NAME_AW(VerQueryValue) +WORD WINAPI VkKeyScan16(CHAR); +WORD WINAPI VkKeyScan32A(CHAR); +WORD WINAPI VkKeyScan32W(WCHAR); +#define VkKeyScan WINELIB_NAME_AW(VkKeyScan) +INT16 WINAPI WaitSoundState16(INT16); +DWORD WINAPI WaitSoundState32(DWORD); +#define WaitSoundState WINELIB_NAME(WaitSoundState) +HWND16 WINAPI WindowFromDC16(HDC16); +HWND32 WINAPI WindowFromDC32(HDC32); +#define WindowFromDC WINELIB_NAME(WindowFromDC) +HWND16 WINAPI WindowFromPoint16(POINT16); +HWND32 WINAPI WindowFromPoint32(POINT32); +#define WindowFromPoint WINELIB_NAME(WindowFromPoint) +BOOL16 WINAPI WritePrivateProfileString16(LPCSTR,LPCSTR,LPCSTR,LPCSTR); +BOOL32 WINAPI WritePrivateProfileString32A(LPCSTR,LPCSTR,LPCSTR,LPCSTR); +BOOL32 WINAPI WritePrivateProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); +#define WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString) +BOOL16 WINAPI WriteProfileString16(LPCSTR,LPCSTR,LPCSTR); +BOOL32 WINAPI WriteProfileString32A(LPCSTR,LPCSTR,LPCSTR); +BOOL32 WINAPI WriteProfileString32W(LPCWSTR,LPCWSTR,LPCWSTR); +#define WriteProfileString WINELIB_NAME_AW(WriteProfileString) +SEGPTR WINAPI lstrcat16(SEGPTR,LPCSTR); +LPSTR WINAPI lstrcat32A(LPSTR,LPCSTR); +LPWSTR WINAPI lstrcat32W(LPWSTR,LPCWSTR); +#define lstrcat WINELIB_NAME_AW(lstrcat) +SEGPTR WINAPI lstrcatn16(SEGPTR,LPCSTR,INT16); +LPSTR WINAPI lstrcatn32A(LPSTR,LPCSTR,INT32); +LPWSTR WINAPI lstrcatn32W(LPWSTR,LPCWSTR,INT32); +#define lstrcatn WINELIB_NAME_AW(lstrcatn) +INT16 WINAPI lstrcmp16(LPCSTR,LPCSTR); +INT32 WINAPI lstrcmp32A(LPCSTR,LPCSTR); +INT32 WINAPI lstrcmp32W(LPCWSTR,LPCWSTR); +#define lstrcmp WINELIB_NAME_AW(lstrcmp) +INT16 WINAPI lstrcmpi16(LPCSTR,LPCSTR); +INT32 WINAPI lstrcmpi32A(LPCSTR,LPCSTR); +INT32 WINAPI lstrcmpi32W(LPCWSTR,LPCWSTR); +#define lstrcmpi WINELIB_NAME_AW(lstrcmpi) +SEGPTR WINAPI lstrcpy16(SEGPTR,LPCSTR); +LPSTR WINAPI lstrcpy32A(LPSTR,LPCSTR); +LPWSTR WINAPI lstrcpy32W(LPWSTR,LPCWSTR); +#define lstrcpy WINELIB_NAME_AW(lstrcpy) +SEGPTR WINAPI lstrcpyn16(SEGPTR,LPCSTR,INT16); +LPSTR WINAPI lstrcpyn32A(LPSTR,LPCSTR,INT32); +LPWSTR WINAPI lstrcpyn32W(LPWSTR,LPCWSTR,INT32); +#define lstrcpyn WINELIB_NAME_AW(lstrcpyn) +INT16 WINAPI lstrlen16(LPCSTR); +INT32 WINAPI lstrlen32A(LPCSTR); +INT32 WINAPI lstrlen32W(LPCWSTR); +#define lstrlen WINELIB_NAME_AW(lstrlen) +HINSTANCE16 WINAPI WinExec16(LPCSTR,UINT16); +HINSTANCE32 WINAPI WinExec32(LPCSTR,UINT32); +#define WinExec WINELIB_NAME(WinExec) +BOOL16 WINAPI WinHelp16(HWND16,LPCSTR,UINT16,DWORD); +BOOL32 WINAPI WinHelp32A(HWND32,LPCSTR,UINT32,DWORD); +BOOL32 WINAPI WinHelp32W(HWND32,LPCWSTR,UINT32,DWORD); +#define WinHelp WINELIB_NAME_AW(WinHelp) +INT16 WINAPIV wsnprintf16(LPSTR,UINT16,LPCSTR,...); +INT32 WINAPIV wsnprintf32A(LPSTR,UINT32,LPCSTR,...); +INT32 WINAPIV wsnprintf32W(LPWSTR,UINT32,LPCWSTR,...); +#define wsnprintf WINELIB_NAME_AW(wsnprintf) +INT16 WINAPIV wsprintf16(LPSTR,LPCSTR,...); +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); +#define wvsnprintf WINELIB_NAME_AW(wvsnprintf) +INT16 WINAPI wvsprintf16(LPSTR,LPCSTR,LPCVOID); +INT32 WINAPI wvsprintf32A(LPSTR,LPCSTR,LPCVOID); +INT32 WINAPI wvsprintf32W(LPWSTR,LPCWSTR,LPCVOID); +#define wvsprintf WINELIB_NAME_AW(wvsprintf) +LONG WINAPI _hread16(HFILE16,LPVOID,LONG); +LONG WINAPI _hread32(HFILE32,LPVOID,LONG); +#define _hread WINELIB_NAME(_hread) +LONG WINAPI _hwrite16(HFILE16,LPCSTR,LONG); +LONG WINAPI _hwrite32(HFILE32,LPCSTR,LONG); +#define _hwrite WINELIB_NAME(_hwrite) +HFILE16 WINAPI _lcreat16(LPCSTR,INT16); +HFILE32 WINAPI _lcreat32(LPCSTR,INT32); +#define _lcreat WINELIB_NAME(_lcreat) +HFILE16 WINAPI _lclose16(HFILE16); +HFILE32 WINAPI _lclose32(HFILE32); +#define _lclose WINELIB_NAME(_lclose) +LONG WINAPI _llseek16(HFILE16,LONG,INT16); +LONG WINAPI _llseek32(HFILE32,LONG,INT32); +#define _llseek WINELIB_NAME(_llseek) +HFILE16 WINAPI _lopen16(LPCSTR,INT16); +HFILE32 WINAPI _lopen32(LPCSTR,INT32); +#define _lopen WINELIB_NAME(_lopen) +UINT16 WINAPI _lread16(HFILE16,LPVOID,UINT16); +UINT32 WINAPI _lread32(HFILE32,LPVOID,UINT32); +#define _lread WINELIB_NAME(_lread) +UINT16 WINAPI _lwrite16(HFILE16,LPCSTR,UINT16); +UINT32 WINAPI _lwrite32(HFILE32,LPCSTR,UINT32); +#define _lwrite WINELIB_NAME(_lwrite) /* Extra functions that don't exist in the Windows API */ -INT32 LoadMessage32A(HINSTANCE32,UINT32,WORD,LPSTR,INT32); -INT32 LoadMessage32W(HINSTANCE32,UINT32,WORD,LPWSTR,INT32); -SEGPTR WIN16_GlobalLock16(HGLOBAL16); -SEGPTR WIN16_LockResource(HGLOBAL16); -LONG WIN16_hread(HFILE16,SEGPTR,LONG); -INT32 lstrncmp32A(LPCSTR,LPCSTR,INT32); -INT32 lstrncmp32W(LPCWSTR,LPCWSTR,INT32); -INT32 lstrncmpi32A(LPCSTR,LPCSTR,INT32); -INT32 lstrncmpi32W(LPCWSTR,LPCWSTR,INT32); -LPWSTR lstrcpyAtoW(LPWSTR,LPCSTR); -LPSTR lstrcpyWtoA(LPSTR,LPCWSTR); -LPWSTR lstrcpynAtoW(LPWSTR,LPCSTR,INT32); -LPSTR lstrcpynWtoA(LPSTR,LPCWSTR,INT32); +INT32 WINAPI LoadMessage32A(HINSTANCE32,UINT32,WORD,LPSTR,INT32); +INT32 WINAPI LoadMessage32W(HINSTANCE32,UINT32,WORD,LPWSTR,INT32); +SEGPTR WINAPI WIN16_GlobalLock16(HGLOBAL16); +SEGPTR WINAPI WIN16_LockResource(HGLOBAL16); +LONG WINAPI WIN16_hread(HFILE16,SEGPTR,LONG); +INT32 WINAPI lstrncmp32A(LPCSTR,LPCSTR,INT32); +INT32 WINAPI lstrncmp32W(LPCWSTR,LPCWSTR,INT32); +INT32 WINAPI lstrncmpi32A(LPCSTR,LPCSTR,INT32); +INT32 WINAPI lstrncmpi32W(LPCWSTR,LPCWSTR,INT32); +LPWSTR WINAPI lstrcpyAtoW(LPWSTR,LPCSTR); +LPSTR WINAPI lstrcpyWtoA(LPSTR,LPCWSTR); +LPWSTR WINAPI lstrcpynAtoW(LPWSTR,LPCSTR,INT32); +LPSTR WINAPI lstrcpynWtoA(LPSTR,LPCWSTR,INT32); #ifdef __cplusplus } diff --git a/include/winnls.h b/include/winnls.h index 04c92d40ac7..b0bb86b6173 100644 --- a/include/winnls.h +++ b/include/winnls.h @@ -118,4 +118,15 @@ #define WC_SEPCHARS 0x00000020 #define WC_DEFAULTCHAR 0x00000040 +#define MAKELCID(l, s) (MAKELONG(l, s)) +#define MAKELANGID(p, s) ((((WORD)(s))<<10) | (WORD)(p)) + +#define SORT_DEFAULT 0 +#define SUBLANG_DEFAULT 1 + +#define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)) +#define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)) +#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)) +#define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)) + #endif /* __WINE_WINNLS_H */ diff --git a/include/winnt.h b/include/winnt.h index 4bd73875962..dc6b7cd8dfe 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -139,6 +139,32 @@ typedef struct #endif /* __WINE__ */ +/* ifdef _x86_ ... */ +typedef struct _LDT_ENTRY { + WORD LimitLow; + WORD BaseLow; + union { + struct { + BYTE BaseMid; + BYTE Flags1;/*Declare as bytes to avoid alignment problems */ + BYTE Flags2; + BYTE BaseHi; + } Bytes; + struct { + DWORD BaseMid : 8; + DWORD Type : 5; + DWORD Dpl : 2; + DWORD Pres : 1; + DWORD LimitHi : 4; + DWORD Sys : 1; + DWORD Reserved_0 : 1; + DWORD Default_Big : 1; + DWORD Granularity : 1; + DWORD BaseHi : 8; + } Bits; + } HighWord; +} LDT_ENTRY, *LPLDT_ENTRY; + /* * Exception codes */ @@ -255,9 +281,9 @@ typedef struct _EXCEPTION_POINTERS typedef LONG (*PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS ExceptionInfo); typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; -DWORD UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers ); +DWORD WINAPI UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers ); LPTOP_LEVEL_EXCEPTION_FILTER -SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter ); +WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter ); /* Language IDs */ diff --git a/include/winsock.h b/include/winsock.h index ed813b7ff7d..cfd1ce5672d 100644 --- a/include/winsock.h +++ b/include/winsock.h @@ -21,6 +21,7 @@ /* Win16 socket-related types */ typedef UINT16 SOCKET16; +typedef UINT32 SOCKET32; typedef struct ws_hostent { @@ -64,7 +65,9 @@ typedef struct /* ws_fd_set operations */ -INT16 __WSAFDIsSet( SOCKET16, ws_fd_set * ); +INT16 WINAPI __WSAFDIsSet16( SOCKET16, ws_fd_set * ); +INT32 WINAPI __WSAFDIsSet32( SOCKET32, ws_fd_set * ); +#define __WSAFDIsSet WINELIB_NAME(__WSAFDIsSet); #define WS_FD_CLR(fd, set) do { \ UINT16 __i; \ @@ -141,8 +144,12 @@ typedef struct WSAData { * This is used instead of -1, since the * SOCKET type is unsigned. */ -#define INVALID_SOCKET (SOCKET16)(~0) -#define SOCKET_ERROR (-1) +#define INVALID_SOCKET16 (~0) +#define INVALID_SOCKET32 (~0) +#define SOCKET_ERROR (-1) + +DECL_WINELIB_TYPE(INVALID_SOCKET); +DECL_WINELIB_TYPE(SOCKET); /* * Types @@ -221,16 +228,17 @@ typedef struct WSAData { /* * Define flags to be used with the WSAAsyncSelect() call. */ -#define WS_FD_READ 0x01 -#define WS_FD_WRITE 0x02 -#define WS_FD_OOB 0x04 -#define WS_FD_ACCEPT 0x08 -#define WS_FD_CONNECT 0x10 -#define WS_FD_CLOSE 0x20 +#define WS_FD_READ 0x0001 +#define WS_FD_WRITE 0x0002 +#define WS_FD_OOB 0x0004 +#define WS_FD_ACCEPT 0x0008 +#define WS_FD_CONNECT 0x0010 +#define WS_FD_CLOSE 0x0020 #define WS_FD_NONBLOCK 0x10000000 /* internal per-socket flags */ #define WS_FD_INACTIVE 0x20000000 #define WS_FD_CONNECTED 0x40000000 +#define WS_FD_RAW 0x80000000 #define WS_FD_INTERNAL 0xFFFF0000 /* @@ -332,35 +340,43 @@ extern "C" { /* Microsoft Windows Extension function prototypes */ -INT16 WSAStartup(UINT16 wVersionRequired, LPWSADATA lpWSAData); -INT16 WSACleanup(void); -void WSASetLastError(INT16 iError); -INT16 WSAGetLastError(void); -BOOL16 WSAIsBlocking(void); -INT16 WSAUnhookBlockingHook(void); -FARPROC16 WSASetBlockingHook(FARPROC16 lpBlockFunc); -INT16 WSACancelBlockingCall(void); -HANDLE16 WSAAsyncGetServByName(HWND16 hWnd, UINT16 wMsg, - LPCSTR name, LPCSTR proto, - SEGPTR buf, INT16 buflen); +INT16 WINAPI WSAStartup16(UINT16 wVersionRequired, LPWSADATA lpWSAData); +INT32 WINAPI WSAStartup32(UINT32 wVersionRequired, LPWSADATA lpWSAData); +#define WSAStartup WINELIB_NAME(WSAStartup); +void WINAPI WSASetLastError16(INT16 iError); +void WINAPI WSASetLastError32(INT32 iError); +#define WSASetLastError WINELIB_NAME(WSASetLastError); +INT32 WINAPI WSACleanup(void); +INT32 WINAPI WSAGetLastError(void); +BOOL32 WINAPI WSAIsBlocking(void); +INT32 WINAPI WSACancelBlockingCall(void); +INT16 WINAPI WSAUnhookBlockingHook16(void); +INT32 WINAPI WSAUnhookBlockingHook32(void); +#define WSAUnhookBlockingHook WINELIB_NAME(WSAUnhookBlockingHook) +FARPROC16 WINAPI WSASetBlockingHook16(FARPROC16 lpBlockFunc); +FARPROC32 WINAPI WSASetBlockingHook32(FARPROC32 lpBlockFunc); +#define WSASetBlockingHook WINELIB_NAME(WSASetBlockingHook) +HANDLE16 WINAPI WSAAsyncGetServByName(HWND16 hWnd, UINT16 wMsg, + LPCSTR name, LPCSTR proto, + SEGPTR buf, INT16 buflen); -HANDLE16 WSAAsyncGetServByPort(HWND16 hWnd, UINT16 wMsg, INT16 port, - LPCSTR proto, SEGPTR buf, INT16 buflen); +HANDLE16 WINAPI WSAAsyncGetServByPort(HWND16 hWnd, UINT16 wMsg, INT16 port, + LPCSTR proto, SEGPTR buf, INT16 buflen); -HANDLE16 WSAAsyncGetProtoByName(HWND16 hWnd, UINT16 wMsg, - LPCSTR name, SEGPTR buf, INT16 buflen); +HANDLE16 WINAPI WSAAsyncGetProtoByName(HWND16 hWnd, UINT16 wMsg, + LPCSTR name, SEGPTR buf, INT16 buflen); -HANDLE16 WSAAsyncGetProtoByNumber(HWND16 hWnd, UINT16 wMsg, - INT16 number, SEGPTR buf, INT16 buflen); +HANDLE16 WINAPI WSAAsyncGetProtoByNumber(HWND16 hWnd, UINT16 wMsg, + INT16 number, SEGPTR buf, INT16 buflen); -HANDLE16 WSAAsyncGetHostByName(HWND16 hWnd, UINT16 wMsg, - LPCSTR name, SEGPTR buf, INT16 buflen); +HANDLE16 WINAPI WSAAsyncGetHostByName(HWND16 hWnd, UINT16 wMsg, + LPCSTR name, SEGPTR buf, INT16 buflen); -HANDLE16 WSAAsyncGetHostByAddr(HWND16 hWnd, UINT16 wMsg, LPCSTR addr, INT16 len, - INT16 type, SEGPTR buf, INT16 buflen); - -INT16 WSACancelAsyncRequest(HANDLE16 hAsyncTaskHandle); -INT16 WSAAsyncSelect(SOCKET16 s, HWND16 hWnd, UINT16 wMsg, UINT32 lEvent); +HANDLE16 WINAPI WSAAsyncGetHostByAddr(HWND16 hWnd, UINT16 wMsg, LPCSTR addr, + INT16 len, INT16 type, SEGPTR buf, INT16 buflen); +INT16 WINAPI WSACancelAsyncRequest(HANDLE16 hAsyncTaskHandle); +INT16 WINAPI WSAAsyncSelect(SOCKET16 s, HWND16 hWnd, UINT16 wMsg, + UINT32 lEvent); #ifdef __cplusplus } @@ -417,9 +433,13 @@ typedef struct timeval TIMEVAL, *PTIMEVAL, *LPTIMEVAL; /* ----------------------------------- internal structures */ -#define WS_DUP_NATIVE 0x0 -#define WS_DUP_OFFSET 0x2 -#define WS_DUP_SEGPTR 0x4 +/* ws_... struct conversion flags */ + +#define WS_DUP_NATIVE 0x0001 /* native structure format (not ws_..) */ +#define WS_DUP_OFFSET 0x0002 /* internal pointers are offsets */ +#define WS_DUP_SEGPTR 0x0004 /* internal pointers are SEGPTRs */ + /* by default, internal pointers are linear */ +/* async DNS op flags */ #define AOP_IO 0x0000001 /* aop_control paramaters */ @@ -437,80 +457,60 @@ typedef struct __aop /* custom data */ - HWND16 hWnd; - UINT16 uMsg; + HWND16 hWnd; /* hWnd to post */ + UINT16 uMsg; /* uMsg message to. */ - unsigned flags; - SEGPTR buffer_base; - int buflen; + SEGPTR buffer_base; /* buffer to copy result to */ + UINT16 buflen; + UINT16 flags; /* WSMSG_ASYNC_... */ } ws_async_op; -#define WSMSG_ASYNC_SELECT 0x0000001 -#define WSMSG_ASYNC_HOSTBYNAME 0x0000010 -#define WSMSG_ASYNC_HOSTBYADDR 0x0000020 -#define WSMSG_ASYNC_PROTOBYNAME 0x0000100 -#define WSMSG_ASYNC_PROTOBYNUM 0x0000200 -#define WSMSG_ASYNC_SERVBYNAME 0x0001000 -#define WSMSG_ASYNC_SERVBYPORT 0x0002000 +#define WSMSG_ASYNC_HOSTBYNAME 0x0001 +#define WSMSG_ASYNC_HOSTBYADDR 0x0002 +#define WSMSG_ASYNC_PROTOBYNAME 0x0010 +#define WSMSG_ASYNC_PROTOBYNUM 0x0020 +#define WSMSG_ASYNC_SERVBYNAME 0x0100 +#define WSMSG_ASYNC_SERVBYPORT 0x0200 +#define WSMSG_DEAD_AOP 0x8000 -#define MTYPE_PARENT 0x50505357 -#define MTYPE_CLIENT 0x50435357 - -#pragma pack(1) -typedef struct +typedef struct __sop /* WSAAsyncSelect() control struct */ { - long mtype; /* WSMSG_... */ + struct __sop *next, *prev; - UINT32 lParam; /* WS_FD_... event */ - UINT16 wParam; /* socket handle - used only for MTYPE_CLIENT messages */ -} ipc_packet; + struct __ws* pws; + HWND16 hWnd; + UINT16 uMsg; +} ws_select_op; -#define MTYPE_PARENT_SIZE \ - (sizeof(UINT32)) -#define MTYPE_CLIENT_SIZE \ - (sizeof(ipc_packet) - sizeof(long)) -#pragma pack(4) - -typedef struct +typedef struct __ws /* socket */ { - int fd; - unsigned flags; - ws_async_op* p_aop; /* AsyncSelect() handler */ + int fd; + unsigned flags; + ws_select_op* psop; } ws_socket; -typedef struct -{ - ws_async_op* ws_aop; /* init'ed for getXbyY */ - ws_socket* ws_sock; /* init'ed for AsyncSelect */ - int lEvent; - int lLength; - char* buffer; - char* init; - ipc_packet ip; -} ws_async_ctl; - #define WS_MAX_SOCKETS_PER_THREAD 16 #define WS_MAX_UDP_DATAGRAM 1024 #define WSI_BLOCKINGCALL 0x00000001 /* per-thread info flags */ +#define WSI_BLOCKINGHOOK32 0x00000002 /* 32-bit callback */ -typedef struct __WSINFO +typedef struct _WSINFO { - struct __WSINFO* prev,*next; + struct _WSINFO* prev,*next; unsigned flags; - int err; - INT16 num_startup; + INT32 err; /* WSAGetLastError() return value */ + INT16 num_startup; /* reference counter */ INT16 num_async_rq; - INT16 last_free; + INT16 last_free; /* entry in the socket table */ UINT16 buflen; char* buffer; /* allocated from SEGPTR heap */ char* dbuffer; /* buffer for dummies (32 bytes) */ ws_socket sock[WS_MAX_SOCKETS_PER_THREAD]; - FARPROC16 blocking_hook; - HTASK16 tid; /* owning thread id - better switch - * to TLS when it gets fixed */ + DWORD blocking_hook; + HTASK16 tid; /* owning task id - process might be better */ } WSINFO, *LPWSINFO; int WS_dup_he(LPWSINFO pwsi, struct hostent* p_he, int flag); @@ -527,10 +527,12 @@ int WINSOCK_unblock_io(int fd, int noblock); int WINSOCK_check_async_op(ws_async_op* p_aop); void WINSOCK_link_async_op(ws_async_op* p_aop); void WINSOCK_unlink_async_op(ws_async_op* p_aop); -void WINSOCK_cancel_async_op(HTASK16 tid); -void WINSOCK_do_async_select(void); -void WINSOCK_Shutdown(void); +int WINSOCK_cancel_async_op(ws_async_op* p_aop); +void WINSOCK_cancel_task_aops(HTASK16, void (*__memfree)(void*) ); + +BOOL32 WINSOCK_HandleIO(int* fd_max, int num_pending, fd_set io_set[3] ); +void WINSOCK_Shutdown(void); UINT16 wsaErrno(void); UINT16 wsaHerrno(void); diff --git a/include/wintypes.h b/include/wintypes.h index 05d3869cfd3..26269212d4e 100644 --- a/include/wintypes.h +++ b/include/wintypes.h @@ -63,6 +63,40 @@ # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type #endif /* __WINE__ */ + +/* 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__)) +# else +# error You need gcc >= 2.7 to build Wine on a 386 +# endif /* __GNUC__ */ +#else /* __i386__ */ +# define __stdcall /* nothing */ +# define __cdecl /* nothing */ +#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 +#define PASCAL __stdcall +#define _pascal __stdcall +#define __export __stdcall +#define WINAPIV __cdecl +#define APIENTRY WINAPI + + /* Standard data types. These are the same for emulator and library. */ typedef void VOID; @@ -165,46 +199,46 @@ DECLARE_HANDLE(HWND); /* Callback function pointers types */ -typedef LRESULT (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM); -typedef LRESULT (*DLGPROC32)(HWND32,UINT32,WPARAM32,LPARAM); +typedef LRESULT (CALLBACK *DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM); +typedef LRESULT (CALLBACK *DLGPROC32)(HWND32,UINT32,WPARAM32,LPARAM); DECL_WINELIB_TYPE(DLGPROC); -typedef LRESULT (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM); -typedef LRESULT (*DRIVERPROC32)(DWORD,HDRVR32,UINT32,LPARAM,LPARAM); +typedef LRESULT (CALLBACK *DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM); +typedef LRESULT (CALLBACK *DRIVERPROC32)(DWORD,HDRVR32,UINT32,LPARAM,LPARAM); DECL_WINELIB_TYPE(DRIVERPROC); -typedef INT16 (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16); -typedef INT32 (*EDITWORDBREAKPROC32A)(LPSTR,INT32,INT32,INT32); -typedef INT32 (*EDITWORDBREAKPROC32W)(LPWSTR,INT32,INT32,INT32); +typedef INT16 (CALLBACK *EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16); +typedef INT32 (CALLBACK *EDITWORDBREAKPROC32A)(LPSTR,INT32,INT32,INT32); +typedef INT32 (CALLBACK *EDITWORDBREAKPROC32W)(LPWSTR,INT32,INT32,INT32); DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC); -typedef LRESULT (*FARPROC16)(); -typedef LRESULT (*FARPROC32)(); +typedef LRESULT (CALLBACK *FARPROC16)(); +typedef LRESULT (CALLBACK *FARPROC32)(); DECL_WINELIB_TYPE(FARPROC); -typedef INT16 (*GOBJENUMPROC16)(SEGPTR,LPARAM); -typedef INT32 (*GOBJENUMPROC32)(LPVOID,LPARAM); +typedef INT16 (CALLBACK *GOBJENUMPROC16)(SEGPTR,LPARAM); +typedef INT32 (CALLBACK *GOBJENUMPROC32)(LPVOID,LPARAM); DECL_WINELIB_TYPE(GOBJENUMPROC); -typedef BOOL16 (*GRAYSTRINGPROC16)(HDC16,LPARAM,INT16); -typedef BOOL32 (*GRAYSTRINGPROC32)(HDC32,LPARAM,INT32); +typedef BOOL16 (CALLBACK *GRAYSTRINGPROC16)(HDC16,LPARAM,INT16); +typedef BOOL32 (CALLBACK *GRAYSTRINGPROC32)(HDC32,LPARAM,INT32); DECL_WINELIB_TYPE(GRAYSTRINGPROC); -typedef LRESULT (*HOOKPROC16)(INT16,WPARAM16,LPARAM); -typedef LRESULT (*HOOKPROC32)(INT32,WPARAM32,LPARAM); +typedef LRESULT (CALLBACK *HOOKPROC16)(INT16,WPARAM16,LPARAM); +typedef LRESULT (CALLBACK *HOOKPROC32)(INT32,WPARAM32,LPARAM); DECL_WINELIB_TYPE(HOOKPROC); -typedef VOID (*LINEDDAPROC16)(INT16,INT16,LPARAM); -typedef VOID (*LINEDDAPROC32)(INT32,INT32,LPARAM); +typedef VOID (CALLBACK *LINEDDAPROC16)(INT16,INT16,LPARAM); +typedef VOID (CALLBACK *LINEDDAPROC32)(INT32,INT32,LPARAM); DECL_WINELIB_TYPE(LINEDDAPROC); -typedef BOOL16 (*PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16); -typedef BOOL32 (*PROPENUMPROC32A)(HWND32,LPCSTR,HANDLE32); -typedef BOOL32 (*PROPENUMPROC32W)(HWND32,LPCWSTR,HANDLE32); +typedef BOOL16 (CALLBACK *PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16); +typedef BOOL32 (CALLBACK *PROPENUMPROC32A)(HWND32,LPCSTR,HANDLE32); +typedef BOOL32 (CALLBACK *PROPENUMPROC32W)(HWND32,LPCWSTR,HANDLE32); DECL_WINELIB_TYPE_AW(PROPENUMPROC); -typedef BOOL32 (*PROPENUMPROCEX32A)(HWND32,LPCSTR,HANDLE32,LPARAM); -typedef BOOL32 (*PROPENUMPROCEX32W)(HWND32,LPCWSTR,HANDLE32,LPARAM); +typedef BOOL32 (CALLBACK *PROPENUMPROCEX32A)(HWND32,LPCSTR,HANDLE32,LPARAM); +typedef BOOL32 (CALLBACK *PROPENUMPROCEX32W)(HWND32,LPCWSTR,HANDLE32,LPARAM); DECL_WINELIB_TYPE_AW(PROPENUMPROCEX); -typedef VOID (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD); -typedef VOID (*TIMERPROC32)(HWND32,UINT32,UINT32,DWORD); +typedef VOID (CALLBACK *TIMERPROC16)(HWND16,UINT16,UINT16,DWORD); +typedef VOID (CALLBACK *TIMERPROC32)(HWND32,UINT32,UINT32,DWORD); DECL_WINELIB_TYPE(TIMERPROC); -typedef LRESULT (*WNDENUMPROC16)(HWND16,LPARAM); -typedef LRESULT (*WNDENUMPROC32)(HWND32,LPARAM); +typedef LRESULT (CALLBACK *WNDENUMPROC16)(HWND16,LPARAM); +typedef LRESULT (CALLBACK *WNDENUMPROC32)(HWND32,LPARAM); DECL_WINELIB_TYPE(WNDENUMPROC); -typedef LRESULT (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM); -typedef LRESULT (*WNDPROC32)(HWND32,UINT32,WPARAM32,LPARAM); +typedef LRESULT (CALLBACK *WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM); +typedef LRESULT (CALLBACK *WNDPROC32)(HWND32,UINT32,WPARAM32,LPARAM); DECL_WINELIB_TYPE(WNDPROC); /* TCHAR data types definitions for Winelib. */ @@ -286,15 +320,10 @@ DECL_WINELIB_TYPE(HWND); /* Define some empty macros for compatibility with Windows code. */ #ifndef __WINE__ -#define CALLBACK #define NEAR #define FAR -#define PASCAL -#define WINAPI #define _far #define _near -#define _pascal -#define __export #endif /* __WINE__ */ /* Macro for structure packing. */ diff --git a/include/x11font.h b/include/x11font.h index c87064ec7e1..aed042c4dbd 100644 --- a/include/x11font.h +++ b/include/x11font.h @@ -55,9 +55,10 @@ typedef struct #define FI_VARIABLEPITCH 0x0040 #define FI_FIXEDPITCH 0x0080 -#define FI_ENC_ISO8859 0x0100 -#define FI_ENC_ISO646 0x0200 -#define FI_ENC_ANSI 0x0400 +#define FI_ENC_ISO8859 0x0100 /* iso8859-* */ +#define FI_ENC_ISO646 0x0200 /* iso646* */ +#define FI_ENC_ANSI 0x0400 /* ansi-0 */ +#define FI_ENC_MSCODEPAGE 0x0800 /* cp125-* */ #define FI_FIXEDEX 0x1000 #define FI_NORMAL 0x2000 diff --git a/library/miscstubs.c b/library/miscstubs.c index 045f25ac00e..c472441c5cb 100644 --- a/library/miscstubs.c +++ b/library/miscstubs.c @@ -17,34 +17,6 @@ void CallFrom16_long_wwwll(void) {} void CallFrom32_stdcall_5(void) {} -int CallTo32_LargeStack( int (*func)(), int nbargs, ...) -{ - va_list arglist; - int i,a[32]; - - va_start(arglist,nbargs); - - for(i=0; i 0L) {wsprintf((LPSTR)WriteBuf, (LPCSTR)"Successful decompression from %s to %s\n", - arrgv[1], lpzDestFile); + _ARGV[1], lpzDestFile); MessageBox((HWND)NULL, (LPSTR)WriteBuf, (LPCSTR)NULL, MB_OK); }; LZClose(hSourceFile); LZClose(hDestFile); diff --git a/loader/main.c b/loader/main.c index 4ac8026e384..b3e4f8b7b40 100644 --- a/loader/main.c +++ b/loader/main.c @@ -54,6 +54,7 @@ HANDLE32 SegptrHeap = 0; */ int MAIN_Init(void) { + extern BOOL32 EVENT_Init(void); extern BOOL32 RELAY_Init(void); extern BOOL32 WIN16DRV_Init(void); extern BOOL32 VIRTUAL_Init(void); @@ -77,6 +78,9 @@ int MAIN_Init(void) /* Initialize signal handling */ if (!SIGNAL_Init()) return 0; + /* Initialize event handling */ + if (!EVENT_Init()) return 0; + #ifdef WINELIB /* Create USER and GDI heap */ USER_HeapSel = GlobalAlloc16( GMEM_FIXED, 0x10000 ); diff --git a/loader/module.c b/loader/module.c index bd128303a5d..a41ce3749ab 100644 --- a/loader/module.c +++ b/loader/module.c @@ -265,7 +265,7 @@ static WORD MODULE_Ne2MemFlags(WORD flags) * MODULE_AllocateSegment (WPROCS.26) */ -DWORD MODULE_AllocateSegment(WORD wFlags, WORD wSize, WORD wElem) +DWORD WINAPI MODULE_AllocateSegment(WORD wFlags, WORD wSize, WORD wElem) { WORD size = wSize << wElem; HANDLE16 hMem = GlobalAlloc16( MODULE_Ne2MemFlags(wFlags), size); @@ -478,6 +478,10 @@ static HMODULE16 MODULE_LoadExeHeader( HFILE32 hFile, OFSTRUCT *ofs ) if (ne_header.ne_magic == IMAGE_NT_SIGNATURE) return (HMODULE16)21; /* win32 exe */ if (ne_header.ne_magic != IMAGE_OS2_SIGNATURE) return (HMODULE16)11; /* invalid exe */ + if (ne_header.ne_magic == IMAGE_OS2_SIGNATURE_LX) { + fprintf(stderr, "Sorry, this is an OS/2 linear executable (LX) file !\n"); + return (HMODULE16)11; + } /* We now have a valid NE header */ size = sizeof(NE_MODULE) + @@ -804,6 +808,15 @@ FARPROC16 MODULE_GetEntryPoint( HMODULE16 hModule, WORD ordinal ) } +/*********************************************************************** + * EntryAddrProc (WPROCS.27) + */ +FARPROC16 WINAPI EntryAddrProc( HMODULE16 hModule, WORD ordinal ) +{ + return MODULE_GetEntryPoint( hModule, ordinal ); +} + + /*********************************************************************** * MODULE_SetEntryPoint * @@ -1286,7 +1299,7 @@ HINSTANCE16 LoadModule16( LPCSTR name, LPVOID paramBlock ) /********************************************************************** * FreeModule16 (KERNEL.46) */ -BOOL16 FreeModule16( HMODULE16 hModule ) +BOOL16 WINAPI FreeModule16( HMODULE16 hModule ) { NE_MODULE *pModule; @@ -1303,13 +1316,13 @@ BOOL16 FreeModule16( HMODULE16 hModule ) /********************************************************************** * GetModuleHandle16 (KERNEL.47) */ -HMODULE16 WIN16_GetModuleHandle( SEGPTR name ) +HMODULE16 WINAPI WIN16_GetModuleHandle( SEGPTR name ) { if (HIWORD(name) == 0) return GetExePtr( (HINSTANCE16)name ); return MODULE_FindModule( PTR_SEG_TO_LIN(name) ); } -HMODULE16 GetModuleHandle16( LPCSTR name ) +HMODULE16 WINAPI GetModuleHandle16( LPCSTR name ) { return MODULE_FindModule( name ); } @@ -1318,7 +1331,7 @@ HMODULE16 GetModuleHandle16( LPCSTR name ) /********************************************************************** * GetModuleUsage (KERNEL.48) */ -INT16 GetModuleUsage( HINSTANCE16 hModule ) +INT16 WINAPI GetModuleUsage( HINSTANCE16 hModule ) { NE_MODULE *pModule; @@ -1333,7 +1346,8 @@ INT16 GetModuleUsage( HINSTANCE16 hModule ) /********************************************************************** * GetModuleFileName16 (KERNEL.49) */ -INT16 GetModuleFileName16( HINSTANCE16 hModule, LPSTR lpFileName, INT16 nSize ) +INT16 WINAPI GetModuleFileName16( HINSTANCE16 hModule, LPSTR lpFileName, + INT16 nSize ) { NE_MODULE *pModule; @@ -1349,7 +1363,8 @@ INT16 GetModuleFileName16( HINSTANCE16 hModule, LPSTR lpFileName, INT16 nSize ) /*********************************************************************** * GetModuleFileName32A (KERNEL32.235) */ -DWORD GetModuleFileName32A( HMODULE32 hModule, LPSTR lpFileName, DWORD size ) +DWORD WINAPI GetModuleFileName32A( HMODULE32 hModule, LPSTR lpFileName, + DWORD size ) { NE_MODULE *pModule; @@ -1369,7 +1384,8 @@ DWORD GetModuleFileName32A( HMODULE32 hModule, LPSTR lpFileName, DWORD size ) /*********************************************************************** * GetModuleFileName32W (KERNEL32.236) */ -DWORD GetModuleFileName32W( HMODULE32 hModule, LPWSTR lpFileName, DWORD size ) +DWORD WINAPI GetModuleFileName32W( HMODULE32 hModule, LPWSTR lpFileName, + DWORD size ) { LPSTR fnA = (char*)HeapAlloc( GetProcessHeap(), 0, size ); DWORD res = GetModuleFileName32A( hModule, fnA, size ); @@ -1382,7 +1398,7 @@ DWORD GetModuleFileName32W( HMODULE32 hModule, LPWSTR lpFileName, DWORD size ) /********************************************************************** * GetModuleName (KERNEL.27) */ -BOOL16 GetModuleName( HINSTANCE16 hinst, LPSTR buf, INT16 nSize ) +BOOL16 WINAPI GetModuleName( HINSTANCE16 hinst, LPSTR buf, INT16 nSize ) { LPSTR name = MODULE_GetModuleName(hinst); @@ -1395,7 +1411,8 @@ BOOL16 GetModuleName( HINSTANCE16 hinst, LPSTR buf, INT16 nSize ) /*********************************************************************** * LoadLibraryEx32W (KERNEL.513) */ -HINSTANCE16 LoadLibraryEx32W16( LPCSTR libname, HANDLE16 hf, DWORD flags ) +HINSTANCE16 WINAPI LoadLibraryEx32W16( LPCSTR libname, HANDLE16 hf, + DWORD flags ) { fprintf(stderr,"LoadLibraryEx32W(%s,%d,%08lx)\n",libname,hf,flags); if (!flags && !hf) @@ -1406,7 +1423,7 @@ HINSTANCE16 LoadLibraryEx32W16( LPCSTR libname, HANDLE16 hf, DWORD flags ) /*********************************************************************** * LoadLibrary (KERNEL.95) */ -HINSTANCE16 LoadLibrary16( LPCSTR libname ) +HINSTANCE16 WINAPI LoadLibrary16( LPCSTR libname ) { HINSTANCE16 handle; @@ -1436,7 +1453,7 @@ HINSTANCE16 LoadLibrary16( LPCSTR libname ) /*********************************************************************** * FreeLibrary16 (KERNEL.96) */ -void FreeLibrary16( HINSTANCE16 handle ) +void WINAPI FreeLibrary16( HINSTANCE16 handle ) { dprintf_module( stddeb,"FreeLibrary: %04x\n", handle ); FreeModule16( handle ); @@ -1446,7 +1463,7 @@ void FreeLibrary16( HINSTANCE16 handle ) /*********************************************************************** * WinExec16 (KERNEL.166) */ -HINSTANCE16 WinExec16( LPCSTR lpCmdLine, UINT16 nCmdShow ) +HINSTANCE16 WINAPI WinExec16( LPCSTR lpCmdLine, UINT16 nCmdShow ) { return WinExec32( lpCmdLine, nCmdShow ); } @@ -1455,7 +1472,7 @@ HINSTANCE16 WinExec16( LPCSTR lpCmdLine, UINT16 nCmdShow ) /*********************************************************************** * WinExec32 (KERNEL32.566) */ -HINSTANCE32 WinExec32( LPCSTR lpCmdLine, UINT32 nCmdShow ) +HINSTANCE32 WINAPI WinExec32( LPCSTR lpCmdLine, UINT32 nCmdShow ) { LOADPARAMS params; HGLOBAL16 cmdShowHandle, cmdLineHandle; @@ -1581,7 +1598,7 @@ HINSTANCE32 WinExec32( LPCSTR lpCmdLine, UINT32 nCmdShow ) argptr = argv; if (iconic) *argptr++ = "-iconic"; *argptr++ = unixfilename; - p = cmdline; + p = cmdline + 1; while (1) { while (*p && (*p == ' ' || *p == '\t')) *p++ = '\0'; @@ -1628,7 +1645,7 @@ HINSTANCE32 WinExec32( LPCSTR lpCmdLine, UINT32 nCmdShow ) * WIN32_GetProcAddress16 (KERNEL32.36) * Get procaddress in 16bit module from win32... (kernel32 undoc. ordinal func) */ -FARPROC16 WIN32_GetProcAddress16( HMODULE16 hModule, LPSTR name ) +FARPROC16 WINAPI WIN32_GetProcAddress16( HMODULE16 hModule, LPSTR name ) { WORD ordinal; FARPROC16 ret; @@ -1656,7 +1673,7 @@ FARPROC16 WIN32_GetProcAddress16( HMODULE16 hModule, LPSTR name ) /*********************************************************************** * GetProcAddress16 (KERNEL.50) */ -FARPROC16 GetProcAddress16( HMODULE16 hModule, SEGPTR name ) +FARPROC16 WINAPI GetProcAddress16( HMODULE16 hModule, SEGPTR name ) { WORD ordinal; FARPROC16 ret; @@ -1688,7 +1705,7 @@ FARPROC16 GetProcAddress16( HMODULE16 hModule, SEGPTR name ) /*********************************************************************** * GetProcAddress32 (KERNEL32.257) */ -FARPROC32 GetProcAddress32( HMODULE32 hModule, LPCSTR function ) +FARPROC32 WINAPI GetProcAddress32( HMODULE32 hModule, LPCSTR function ) { #ifndef WINELIB NE_MODULE *pModule; @@ -1713,8 +1730,7 @@ FARPROC32 GetProcAddress32( HMODULE32 hModule, LPCSTR function ) /*********************************************************************** * RtlImageNtHeaders (NTDLL) */ -LPIMAGE_NT_HEADERS -RtlImageNtHeader(HMODULE32 hModule) +LPIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE32 hModule) { #ifndef WINELIB NE_MODULE *pModule; @@ -1734,7 +1750,7 @@ RtlImageNtHeader(HMODULE32 hModule) /********************************************************************** * GetExpWinVer (KERNEL.167) */ -WORD GetExpWinVer( HMODULE16 hModule ) +WORD WINAPI GetExpWinVer( HMODULE16 hModule ) { NE_MODULE *pModule = MODULE_GetPtr( hModule ); return pModule ? pModule->expected_version : 0; @@ -1744,7 +1760,7 @@ WORD GetExpWinVer( HMODULE16 hModule ) /********************************************************************** * IsSharedSelector (KERNEL.345) */ -BOOL16 IsSharedSelector( HANDLE16 selector ) +BOOL16 WINAPI IsSharedSelector( HANDLE16 selector ) { /* Check whether the selector belongs to a DLL */ NE_MODULE *pModule = MODULE_GetPtr( GetExePtr( selector )); @@ -1756,7 +1772,7 @@ BOOL16 IsSharedSelector( HANDLE16 selector ) /********************************************************************** * ModuleFirst (TOOLHELP.59) */ -BOOL16 ModuleFirst( MODULEENTRY *lpme ) +BOOL16 WINAPI ModuleFirst( MODULEENTRY *lpme ) { lpme->wNext = hFirstModule; return ModuleNext( lpme ); @@ -1766,7 +1782,7 @@ BOOL16 ModuleFirst( MODULEENTRY *lpme ) /********************************************************************** * ModuleNext (TOOLHELP.60) */ -BOOL16 ModuleNext( MODULEENTRY *lpme ) +BOOL16 WINAPI ModuleNext( MODULEENTRY *lpme ) { NE_MODULE *pModule; @@ -1787,7 +1803,7 @@ BOOL16 ModuleNext( MODULEENTRY *lpme ) /********************************************************************** * ModuleFindName (TOOLHELP.61) */ -BOOL16 ModuleFindName( MODULEENTRY *lpme, LPCSTR name ) +BOOL16 WINAPI ModuleFindName( MODULEENTRY *lpme, LPCSTR name ) { lpme->wNext = GetModuleHandle16( name ); return ModuleNext( lpme ); @@ -1797,7 +1813,7 @@ BOOL16 ModuleFindName( MODULEENTRY *lpme, LPCSTR name ) /********************************************************************** * ModuleFindHandle (TOOLHELP.62) */ -BOOL16 ModuleFindHandle( MODULEENTRY *lpme, HMODULE16 hModule ) +BOOL16 WINAPI ModuleFindHandle( MODULEENTRY *lpme, HMODULE16 hModule ) { hModule = GetExePtr( hModule ); /* In case we were passed an hInstance */ lpme->wNext = hModule; diff --git a/loader/ne_image.c b/loader/ne_image.c index 353620664fe..dd0ff092948 100644 --- a/loader/ne_image.c +++ b/loader/ne_image.c @@ -550,7 +550,7 @@ void NE_InitializeDLLs( HMODULE16 hModule ) */ /* It does nothing */ -void PatchCodeHandle(HANDLE16 hSel) +void WINAPI PatchCodeHandle(HANDLE16 hSel) { } #endif /* WINELIB */ diff --git a/loader/pe_image.c b/loader/pe_image.c index 5f7660b806b..223348b9747 100644 --- a/loader/pe_image.c +++ b/loader/pe_image.c @@ -27,6 +27,7 @@ #include "global.h" #include "task.h" #include "ldt.h" +#include "options.h" #include "stddebug.h" #include "debug.h" #include "debugger.h" @@ -189,6 +190,8 @@ fixup_imports (struct pe_data *pe, HMODULE16 hModule) Module = (char *) RVA(pe_imp->Name); dprintf_win32 (stddeb, "%s\n", Module); + /* FIXME: forwarder entries ... */ + if (pe_imp->u.OriginalFirstThunk != 0) { /* original MS style */ dprintf_win32 (stddeb, "Microsoft style imports used\n"); import_list =(LPIMAGE_THUNK_DATA) RVA(pe_imp->u.OriginalFirstThunk); @@ -402,16 +405,14 @@ static void PE_LoadImage( struct pe_data **ret_pe, int fd, HMODULE16 hModule, WO fprintf(stderr,")\n"); return; } - /* FIXME: this is a *horrible* hack to make COMDLG32.DLL load OK. The -problem needs to be fixed properly at some stage */ - + * problem needs to be fixed properly at some stage + */ if (pe->pe_header->OptionalHeader.NumberOfRvaAndSizes != 16) { printf("Short PE Header!!!\n"); lseek( fd, -(16 - pe->pe_header->OptionalHeader.NumberOfRvaAndSizes) * sizeof(IMAGE_DATA_DIRECTORY), SEEK_CUR); } -/* horrible hack ends !!! */ /* read sections */ pe->pe_seg = xmalloc(sizeof(IMAGE_SECTION_HEADER) * pe->pe_header->FileHeader.NumberOfSections); @@ -423,19 +424,8 @@ problem needs to be fixed properly at some stage */ pe->vma_size=0; dprintf_win32(stddeb, "Load addr is %x\n",load_addr); calc_vma_size(pe); - -#if 0 - /* We use malloc here, while a huge part of that address space does - not be supported by actual memory. It has to be contiguous, though. - I don't know if mmap("/dev/null"); would do any better. - What I'd really like to do is a Win32 style VirtualAlloc/MapViewOfFile - sequence */ - load_addr = pe->load_addr = (int)xmalloc(pe->vma_size); - memset( load_addr, 0, pe->vma_size); -#else load_addr = (int) VirtualAlloc( (void*)pe->base_addr, pe->vma_size, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE ); pe->load_addr = load_addr; -#endif dprintf_win32(stddeb, "Load addr is really %x, range %x\n", pe->load_addr, pe->vma_size); @@ -476,7 +466,6 @@ problem needs to be fixed properly at some stage */ if(strcmp(pe->pe_seg[i].Name, ".reloc") == 0) pe->pe_reloc = (LPIMAGE_BASE_RELOCATION) result; - } /* There is word that the actual loader does not care about the @@ -538,11 +527,9 @@ problem needs to be fixed properly at some stage */ [IMAGE_DIRECTORY_ENTRY_GLOBALPTR].Size) dprintf_win32(stdnimp,"Global Pointer (MIPS) ignored\n"); -#ifdef NOT /* we initialize this later */ if(pe->pe_header->OptionalHeader.DataDirectory [IMAGE_DIRECTORY_ENTRY_TLS].Size) - dprintf_win32(stdnimp,"Thread local storage ignored\n"); -#endif + fprintf(stdnimp,"Thread local storage ignored\n"); if(pe->pe_header->OptionalHeader.DataDirectory [IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size) @@ -658,6 +645,16 @@ static void PE_InitDLL(HMODULE16 hModule, DWORD type,LPVOID lpReserved) if (!(pModule->flags & NE_FFLAGS_WIN32) || !(pe = pModule->pe_module)) return; + load_addr = pe->load_addr; + +#ifndef WINELIB + if (Options.debug) { + DBG_ADDR addr = { NULL, 0, RVA(pe->pe_header->OptionalHeader.AddressOfEntryPoint) }; + DEBUG_AddBreakpoint( &addr ); + DEBUG_SetBreakpoints(TRUE); + } +#endif + /* DLL_ATTACH_PROCESS: * lpreserved is NULL for dynamic loads, not-NULL for static loads * DLL_DETACH_PROCESS: @@ -669,7 +666,6 @@ static void PE_InitDLL(HMODULE16 hModule, DWORD type,LPVOID lpReserved) if ( (pe->pe_header->FileHeader.Characteristics & IMAGE_FILE_DLL) && (pe->pe_header->OptionalHeader.AddressOfEntryPoint) ) { - load_addr = pe->load_addr; printf("InitPEDLL() called!\n"); CallDLLEntryProc32( (FARPROC32)RVA(pe->pe_header->OptionalHeader.AddressOfEntryPoint), diff --git a/loader/resource.c b/loader/resource.c index 6e4ac03a849..31c645344ad 100644 --- a/loader/resource.c +++ b/loader/resource.c @@ -36,7 +36,7 @@ extern WORD WINE_LanguageId; /********************************************************************** * FindResource16 (KERNEL.60) */ -HRSRC16 FindResource16( HMODULE16 hModule, SEGPTR name, SEGPTR type ) +HRSRC16 WINAPI FindResource16( HMODULE16 hModule, SEGPTR name, SEGPTR type ) { NE_MODULE *pModule; @@ -70,7 +70,7 @@ HRSRC16 FindResource16( HMODULE16 hModule, SEGPTR name, SEGPTR type ) /********************************************************************** * FindResource32A (KERNEL32.128) */ -HANDLE32 FindResource32A( HINSTANCE32 hModule, LPCSTR name, LPCSTR type ) +HANDLE32 WINAPI FindResource32A( HINSTANCE32 hModule, LPCSTR name, LPCSTR type) { return FindResourceEx32A(hModule,name,type,WINE_LanguageId); } @@ -78,9 +78,9 @@ HANDLE32 FindResource32A( HINSTANCE32 hModule, LPCSTR name, LPCSTR type ) /********************************************************************** * FindResourceEx32A (KERNEL32.129) */ -HANDLE32 FindResourceEx32A( - HINSTANCE32 hModule,LPCSTR name,LPCSTR type,WORD lang -) { +HANDLE32 WINAPI FindResourceEx32A( HINSTANCE32 hModule, LPCSTR name, + LPCSTR type, WORD lang ) +{ LPWSTR xname,xtype; HANDLE32 ret; @@ -102,9 +102,9 @@ HANDLE32 FindResourceEx32A( /********************************************************************** * FindResourceEx32W (KERNEL32.130) */ -HRSRC32 FindResourceEx32W( - HINSTANCE32 hModule, LPCWSTR name, LPCWSTR type, WORD lang -) { +HRSRC32 WINAPI FindResourceEx32W( HINSTANCE32 hModule, LPCWSTR name, + LPCWSTR type, WORD lang ) +{ #ifndef WINELIB NE_MODULE *pModule; @@ -132,7 +132,7 @@ HRSRC32 FindResourceEx32W( /********************************************************************** * FindResource32W (KERNEL32.131) */ -HRSRC32 FindResource32W( HINSTANCE32 hModule, LPCWSTR name, LPCWSTR type ) +HRSRC32 WINAPI FindResource32W(HINSTANCE32 hModule, LPCWSTR name, LPCWSTR type) { return FindResourceEx32W(hModule,name,type,WINE_LanguageId); } @@ -141,7 +141,7 @@ HRSRC32 FindResource32W( HINSTANCE32 hModule, LPCWSTR name, LPCWSTR type ) /********************************************************************** * LoadResource16 (KERNEL.61) */ -HGLOBAL16 LoadResource16( HMODULE16 hModule, HRSRC16 hRsrc ) +HGLOBAL16 WINAPI LoadResource16( HMODULE16 hModule, HRSRC16 hRsrc ) { NE_MODULE *pModule; @@ -165,7 +165,7 @@ HGLOBAL16 LoadResource16( HMODULE16 hModule, HRSRC16 hRsrc ) /********************************************************************** * LoadResource32 (KERNEL32.370) */ -HGLOBAL32 LoadResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) +HGLOBAL32 WINAPI LoadResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) { #ifndef WINELIB NE_MODULE *pModule; @@ -193,7 +193,7 @@ HGLOBAL32 LoadResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) * LockResource (KERNEL.62) */ /* 16-bit version */ -SEGPTR WIN16_LockResource16(HGLOBAL16 handle) +SEGPTR WINAPI WIN16_LockResource16(HGLOBAL16 handle) { #ifndef WINELIB HMODULE16 hModule; @@ -215,7 +215,7 @@ SEGPTR WIN16_LockResource16(HGLOBAL16 handle) } /* WINELIB 16-bit version */ -LPVOID LockResource16( HGLOBAL16 handle ) +LPVOID WINAPI LockResource16( HGLOBAL16 handle ) { #ifndef WINELIB HMODULE16 hModule; @@ -240,7 +240,7 @@ LPVOID LockResource16( HGLOBAL16 handle ) /********************************************************************** * LockResource32 (KERNEL32.384) */ -LPVOID LockResource32( HGLOBAL32 handle ) +LPVOID WINAPI LockResource32( HGLOBAL32 handle ) { return (LPVOID)handle; } @@ -249,7 +249,7 @@ LPVOID LockResource32( HGLOBAL32 handle ) /********************************************************************** * FreeResource16 (KERNEL.63) */ -BOOL16 FreeResource16( HGLOBAL16 handle ) +BOOL16 WINAPI FreeResource16( HGLOBAL16 handle ) { #ifndef WINELIB HMODULE16 hModule; @@ -273,7 +273,7 @@ BOOL16 FreeResource16( HGLOBAL16 handle ) /********************************************************************** * FreeResource32 (KERNEL32.145) */ -BOOL32 FreeResource32( HGLOBAL32 handle ) +BOOL32 WINAPI FreeResource32( HGLOBAL32 handle ) { /* no longer used in Win32 */ return TRUE; @@ -283,7 +283,7 @@ BOOL32 FreeResource32( HGLOBAL32 handle ) /********************************************************************** * AccessResource16 (KERNEL.64) */ -INT16 AccessResource16( HINSTANCE16 hModule, HRSRC16 hRsrc ) +INT16 WINAPI AccessResource16( HINSTANCE16 hModule, HRSRC16 hRsrc ) { NE_MODULE *pModule; @@ -308,7 +308,7 @@ INT16 AccessResource16( HINSTANCE16 hModule, HRSRC16 hRsrc ) /********************************************************************** * AccessResource32 (KERNEL32.64) */ -INT32 AccessResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) +INT32 WINAPI AccessResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) { hModule = GetExePtr( hModule ); /* In case we were passed an hInstance */ dprintf_resource(stddeb, "AccessResource: module=%04x res=%04x\n", @@ -322,7 +322,7 @@ INT32 AccessResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) /********************************************************************** * SizeofResource16 (KERNEL.65) */ -DWORD SizeofResource16( HMODULE16 hModule, HRSRC16 hRsrc ) +DWORD WINAPI SizeofResource16( HMODULE16 hModule, HRSRC16 hRsrc ) { NE_MODULE *pModule; @@ -346,7 +346,7 @@ DWORD SizeofResource16( HMODULE16 hModule, HRSRC16 hRsrc ) /********************************************************************** * SizeofResource32 (KERNEL32.522) */ -DWORD SizeofResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) +DWORD WINAPI SizeofResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) { hModule = GetExePtr( hModule ); /* In case we were passed an hInstance */ dprintf_resource(stddeb, "SizeofResource32: module=%04x res=%04x\n", @@ -363,7 +363,7 @@ DWORD SizeofResource32( HINSTANCE32 hModule, HRSRC32 hRsrc ) /********************************************************************** * AllocResource16 (KERNEL.66) */ -HGLOBAL16 AllocResource16( HMODULE16 hModule, HRSRC16 hRsrc, DWORD size ) +HGLOBAL16 WINAPI AllocResource16( HMODULE16 hModule, HRSRC16 hRsrc, DWORD size) { NE_MODULE *pModule; @@ -389,7 +389,8 @@ HGLOBAL16 AllocResource16( HMODULE16 hModule, HRSRC16 hRsrc, DWORD size ) * * Check Schulman, p. 232 for details */ -HGLOBAL16 DirectResAlloc( HINSTANCE16 hInstance, WORD wType, UINT16 wSize ) +HGLOBAL16 WINAPI DirectResAlloc( HINSTANCE16 hInstance, WORD wType, + UINT16 wSize ) { dprintf_resource(stddeb,"DirectResAlloc(%04x,%04x,%04x)\n", hInstance, wType, wSize ); @@ -405,7 +406,7 @@ HGLOBAL16 DirectResAlloc( HINSTANCE16 hInstance, WORD wType, UINT16 wSize ) /********************************************************************** * LoadAccelerators16 [USER.177] */ -HACCEL16 LoadAccelerators16(HINSTANCE16 instance, SEGPTR lpTableName) +HACCEL16 WINAPI LoadAccelerators16(HINSTANCE16 instance, SEGPTR lpTableName) { HACCEL16 hAccel; HGLOBAL16 rsc_mem; @@ -458,7 +459,7 @@ HACCEL16 LoadAccelerators16(HINSTANCE16 instance, SEGPTR lpTableName) * 04: WORD IDval * 06: WORD pad (to DWORD boundary) */ -HACCEL32 LoadAccelerators32W(HINSTANCE32 instance,LPCWSTR lpTableName) +HACCEL32 WINAPI LoadAccelerators32W(HINSTANCE32 instance,LPCWSTR lpTableName) { HACCEL32 hAccel; HGLOBAL32 rsc_mem; @@ -504,7 +505,7 @@ HACCEL32 LoadAccelerators32W(HINSTANCE32 instance,LPCWSTR lpTableName) return hAccel; } -HACCEL32 LoadAccelerators32A(HINSTANCE32 instance,LPCSTR lpTableName) +HACCEL32 WINAPI LoadAccelerators32A(HINSTANCE32 instance,LPCSTR lpTableName) { LPWSTR uni; HACCEL32 result; @@ -521,8 +522,8 @@ HACCEL32 LoadAccelerators32A(HINSTANCE32 instance,LPCSTR lpTableName) /********************************************************************** * LoadString16 */ -INT16 -LoadString16(HINSTANCE16 instance,UINT16 resource_id,LPSTR buffer,INT16 buflen) +INT16 WINAPI LoadString16( HINSTANCE16 instance, UINT16 resource_id, + LPSTR buffer, INT16 buflen ) { HGLOBAL16 hmem; HRSRC16 hrsrc; @@ -568,8 +569,8 @@ LoadString16(HINSTANCE16 instance,UINT16 resource_id,LPSTR buffer,INT16 buflen) /********************************************************************** * LoadString32W (USER32.375) */ -INT32 -LoadString32W(HINSTANCE32 instance,UINT32 resource_id,LPWSTR buffer,int buflen) +INT32 WINAPI LoadString32W( HINSTANCE32 instance, UINT32 resource_id, + LPWSTR buffer, int buflen ) { HGLOBAL32 hmem; HRSRC32 hrsrc; @@ -618,8 +619,8 @@ LoadString32W(HINSTANCE32 instance,UINT32 resource_id,LPWSTR buffer,int buflen) /********************************************************************** * LoadString32A (USER32.374) */ -INT32 -LoadString32A(HINSTANCE32 instance,UINT32 resource_id,LPSTR buffer,int buflen) +INT32 WINAPI LoadString32A( HINSTANCE32 instance, UINT32 resource_id, + LPSTR buffer,int buflen ) { INT32 retval; LPWSTR buffer2 = NULL; @@ -659,10 +660,9 @@ LoadString32A(HINSTANCE32 instance,UINT32 resource_id,LPSTR buffer,int buflen) /********************************************************************** * LoadMessage32A (internal) */ -INT32 -LoadMessage32A( - HINSTANCE32 instance,UINT32 id,WORD lang,LPSTR buffer,int buflen -) { +INT32 LoadMessage32A( HINSTANCE32 instance, UINT32 id, WORD lang, + LPSTR buffer, int buflen ) +{ HGLOBAL32 hmem; HRSRC32 hrsrc; BYTE *p; @@ -747,8 +747,8 @@ INT32 LoadMessage32W( HINSTANCE32 instance, UINT32 id, WORD lang, /********************************************************************** * SetResourceHandler (KERNEL.43) */ -FARPROC16 -SetResourceHandler(HINSTANCE16 instance,SEGPTR s,FARPROC16 farproc) +FARPROC16 WINAPI SetResourceHandler( HINSTANCE16 instance, SEGPTR s, + FARPROC16 farproc ) { if (HIWORD(s)) fprintf(stderr,"SetResourceHandler(%04x,%s,%p), empty STUB!\n", @@ -763,46 +763,54 @@ SetResourceHandler(HINSTANCE16 instance,SEGPTR s,FARPROC16 farproc) /********************************************************************** * EnumResourceTypesA (KERNEL32.90) */ -BOOL32 -EnumResourceTypes32A(HMODULE32 hmodule,ENUMRESTYPEPROC32A lpfun,LONG lParam) { +BOOL32 WINAPI EnumResourceTypes32A( HMODULE32 hmodule,ENUMRESTYPEPROC32A lpfun, + LONG lParam) +{ return PE_EnumResourceTypes32A(hmodule,lpfun,lParam); } /********************************************************************** * EnumResourceTypesW (KERNEL32.91) */ -BOOL32 -EnumResourceTypes32W(HMODULE32 hmodule,ENUMRESTYPEPROC32W lpfun,LONG lParam) { +BOOL32 WINAPI EnumResourceTypes32W( HMODULE32 hmodule,ENUMRESTYPEPROC32W lpfun, + LONG lParam) +{ return PE_EnumResourceTypes32W(hmodule,lpfun,lParam); } /********************************************************************** * EnumResourceNamesA (KERNEL32.88) */ -BOOL32 -EnumResourceNames32A(HMODULE32 hmodule,LPCSTR type,ENUMRESNAMEPROC32A lpfun,LONG lParam) { +BOOL32 WINAPI EnumResourceNames32A( HMODULE32 hmodule, LPCSTR type, + ENUMRESNAMEPROC32A lpfun, LONG lParam ) +{ return PE_EnumResourceNames32A(hmodule,type,lpfun,lParam); } /********************************************************************** * EnumResourceNamesW (KERNEL32.89) */ -BOOL32 -EnumResourceNames32W(HMODULE32 hmodule,LPCWSTR type,ENUMRESNAMEPROC32W lpfun,LONG lParam) { +BOOL32 WINAPI EnumResourceNames32W( HMODULE32 hmodule, LPCWSTR type, + ENUMRESNAMEPROC32W lpfun, LONG lParam ) +{ return PE_EnumResourceNames32W(hmodule,type,lpfun,lParam); } /********************************************************************** * EnumResourceLanguagesA (KERNEL32.86) */ -BOOL32 -EnumResourceLanguages32A(HMODULE32 hmodule,LPCSTR type,LPCSTR name,ENUMRESLANGPROC32A lpfun,LONG lParam) { +BOOL32 WINAPI EnumResourceLanguages32A( HMODULE32 hmodule, LPCSTR type, + LPCSTR name, ENUMRESLANGPROC32A lpfun, + LONG lParam) +{ return PE_EnumResourceLanguages32A(hmodule,type,name,lpfun,lParam); } /********************************************************************** * EnumResourceLanguagesW (KERNEL32.87) */ -BOOL32 -EnumResourceLanguages32W(HMODULE32 hmodule,LPCWSTR type,LPCWSTR name,ENUMRESLANGPROC32W lpfun,LONG lParam) { +BOOL32 WINAPI EnumResourceLanguages32W( HMODULE32 hmodule, LPCWSTR type, + LPCWSTR name, ENUMRESLANGPROC32W lpfun, + LONG lParam) +{ return PE_EnumResourceLanguages32W(hmodule,type,name,lpfun,lParam); } #endif /* WINELIB */ diff --git a/loader/signal.c b/loader/signal.c index 1257e330517..d99dedc9a90 100644 --- a/loader/signal.c +++ b/loader/signal.c @@ -46,12 +46,24 @@ struct kernel_sigaction static __inline__ int wine_sigaction( int sig, struct kernel_sigaction *new, struct kernel_sigaction *old ) { +#ifdef __PIC__ + __asm__ __volatile__( "pushl %%ebx\n\t" + "movl %2,%%ebx\n\t" + "int $0x80\n\t" + "popl %%ebx" + : "=a" (sig) + : "0" (SYS_sigaction), + "g" (sig), + "c" (new), + "d" (old) ); +#else __asm__ __volatile__( "int $0x80" : "=a" (sig) : "0" (SYS_sigaction), "b" (sig), "c" (new), "d" (old) ); +#endif /* __PIC__ */ if (sig>=0) return 0; errno = -sig; @@ -62,15 +74,7 @@ static __inline__ int wine_sigaction( int sig, struct kernel_sigaction *new, /* Signal stack */ -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) -# define SIGNAL_STACK_SIZE MINSIGSTKSZ -#elif defined (__svr4__) || defined(_SCO_DS) -# define SIGNAL_STACK_SIZE SIGSTKSZ -#else -# define SIGNAL_STACK_SIZE 4096 -#endif - -static char SIGNAL_Stack[SIGNAL_STACK_SIZE]; +static char SIGNAL_Stack[16384]; /********************************************************************** @@ -102,7 +106,8 @@ void SIGNAL_SetHandler( int sig, void (*func)(), int flags ) struct kernel_sigaction sig_act; sig_act.sa_handler = func; - sig_act.sa_flags = SA_RESTART | (flags) ? SA_NOMASK : 0; + sig_act.sa_flags = SA_RESTART | (flags) ? SA_NOMASK : 0; + sig_act.sa_mask = 0; /* Point to the top of the stack, minus 4 just in case, and make it aligned */ sig_act.sa_restorer = @@ -112,10 +117,8 @@ void SIGNAL_SetHandler( int sig, void (*func)(), int flags ) #else /* linux && __i386__ */ struct sigaction sig_act; - sigset_t sig_mask; - sigemptyset(&sig_mask); sig_act.sa_handler = func; - sig_act.sa_mask = sig_mask; + sigemptyset( &sig_act.sa_mask ); # if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) sig_act.sa_flags = SA_ONSTACK; @@ -179,7 +182,6 @@ void SIGNAL_MaskAsyncEvents( BOOL32 flag ) #ifdef SIGIO sigaddset(&set, SIGIO); #endif - sigaddset(&set, SIGUSR1); #ifdef CONFIG_IPC sigaddset(&set, SIGUSR2); #endif diff --git a/loader/task.c b/loader/task.c index 4094ee9381a..467548c8743 100644 --- a/loader/task.c +++ b/loader/task.c @@ -40,8 +40,9 @@ /* Min. number of thunks allocated when creating a new segment */ #define MIN_THUNKS 32 -extern void USER_AppExit( HTASK16, HINSTANCE16, HQUEUE16 ); -extern void PE_InitTls( PE_MODULE *module ); +extern INT32 WINSOCK_DeleteTaskWSI( TDB* pTask, struct _WSINFO* pwsi ); +extern void USER_AppExit( HTASK16, HINSTANCE16, HQUEUE16 ); +extern void PE_InitTls( PE_MODULE *module ); /* Saved 16-bit stack for current process (Win16 only) */ DWORD IF1632_Saved16_ss_sp = 0; @@ -50,7 +51,10 @@ DWORD IF1632_Saved16_ss_sp = 0; DWORD IF1632_Saved32_esp = 0; /* Original Unix stack */ -DWORD IF1632_Original32_esp; +DWORD IF1632_Original32_esp = 0; + + /* Pointer to function to switch to a larger stack */ +int (*IF1632_CallLargeStack)( int (*func)(), void *arg ) = NULL; static HTASK16 hFirstTask = 0; static HTASK16 hCurrentTask = 0; @@ -685,6 +689,16 @@ void TASK_KillCurrentTask( INT16 exitCode ) TDB* pTask = (TDB*) GlobalLock16( hCurrentTask ); if (!pTask) USER_ExitWindows(); /* No current task yet */ + dprintf_task(stddeb, "Killing task %04x\n", hCurrentTask ); + + /* Clean up sockets */ + + if( pTask->pwsi ) + { + dprintf_task(stddeb, "\tremoving socket table\n"); + WINSOCK_DeleteTaskWSI( pTask, pTask->pwsi ); + } + /* Perform USER cleanup */ USER_AppExit( hCurrentTask, pTask->hInstance, pTask->hQueue ); @@ -698,7 +712,7 @@ void TASK_KillCurrentTask( INT16 exitCode ) if (nTaskCount <= 1) { - dprintf_task( stddeb, "Killing the last task, exiting\n" ); + dprintf_task( stddeb, "\nthis is the last task, exiting\n" ); USER_ExitWindows(); } @@ -767,7 +781,7 @@ void TASK_Reschedule(void) /* extract hardware events only! */ - if (!hTask) EVENT_WaitXEvent( FALSE, TRUE ); + if (!hTask) EVENT_WaitNetEvent( FALSE, TRUE ); while (!hTask) { @@ -788,7 +802,7 @@ void TASK_Reschedule(void) /* No task found, wait for some events to come in */ - EVENT_WaitXEvent( TRUE, TRUE ); + EVENT_WaitNetEvent( TRUE, TRUE ); } if (hTask == hCurrentTask) @@ -845,7 +859,7 @@ void TASK_YieldToSystem(TDB* pTask) !(pQ->wakeBits & (QS_SENDMESSAGE | QS_SMRESULT)) ) { pQ->flags &= ~QUEUE_FLAG_XEVENT; - EVENT_WaitXEvent( FALSE, FALSE ); + EVENT_WaitNetEvent( FALSE, FALSE ); } } } @@ -854,7 +868,7 @@ void TASK_YieldToSystem(TDB* pTask) /*********************************************************************** * InitTask (KERNEL.91) */ -void InitTask( CONTEXT *context ) +void WINAPI InitTask( CONTEXT *context ) { TDB *pTask; NE_MODULE *pModule; @@ -912,7 +926,7 @@ void InitTask( CONTEXT *context ) /*********************************************************************** * WaitEvent (KERNEL.30) */ -BOOL16 WaitEvent( HTASK16 hTask ) +BOOL16 WINAPI WaitEvent( HTASK16 hTask ) { TDB *pTask; @@ -935,7 +949,7 @@ BOOL16 WaitEvent( HTASK16 hTask ) /*********************************************************************** * PostEvent (KERNEL.31) */ -void PostEvent( HTASK16 hTask ) +void WINAPI PostEvent( HTASK16 hTask ) { TDB *pTask; @@ -948,7 +962,7 @@ void PostEvent( HTASK16 hTask ) /*********************************************************************** * SetPriority (KERNEL.32) */ -void SetPriority( HTASK16 hTask, INT16 delta ) +void WINAPI SetPriority( HTASK16 hTask, INT16 delta ) { TDB *pTask; INT16 newpriority; @@ -969,7 +983,7 @@ void SetPriority( HTASK16 hTask, INT16 delta ) /*********************************************************************** * LockCurrentTask (KERNEL.33) */ -HTASK16 LockCurrentTask( BOOL16 bLock ) +HTASK16 WINAPI LockCurrentTask( BOOL16 bLock ) { if (bLock) hLockedTask = hCurrentTask; else hLockedTask = 0; @@ -980,7 +994,7 @@ HTASK16 LockCurrentTask( BOOL16 bLock ) /*********************************************************************** * IsTaskLocked (KERNEL.122) */ -HTASK16 IsTaskLocked(void) +HTASK16 WINAPI IsTaskLocked(void) { return hLockedTask; } @@ -989,7 +1003,7 @@ HTASK16 IsTaskLocked(void) /*********************************************************************** * OldYield (KERNEL.117) */ -void OldYield(void) +void WINAPI OldYield(void) { TDB *pCurTask; @@ -1003,7 +1017,7 @@ void OldYield(void) /*********************************************************************** * DirectedYield (KERNEL.150) */ -void DirectedYield( HTASK16 hTask ) +void WINAPI DirectedYield( HTASK16 hTask ) { TDB *pCurTask = (TDB *)GlobalLock16( hCurrentTask ); pCurTask->hYieldTo = hTask; @@ -1014,7 +1028,7 @@ void DirectedYield( HTASK16 hTask ) /*********************************************************************** * UserYield (USER.332) */ -void UserYield(void) +void WINAPI UserYield(void) { TDB *pCurTask = (TDB *)GlobalLock16( hCurrentTask ); MESSAGEQUEUE *queue = (MESSAGEQUEUE *)GlobalLock16( pCurTask->hQueue ); @@ -1033,7 +1047,7 @@ void UserYield(void) /*********************************************************************** * Yield (KERNEL.29) */ -void Yield(void) +void WINAPI Yield(void) { TDB *pCurTask = (TDB *)GlobalLock16( hCurrentTask ); if (pCurTask) pCurTask->hYieldTo = 0; @@ -1045,7 +1059,7 @@ void Yield(void) /*********************************************************************** * MakeProcInstance16 (KERNEL.51) */ -FARPROC16 MakeProcInstance16( FARPROC16 func, HANDLE16 hInstance ) +FARPROC16 WINAPI MakeProcInstance16( FARPROC16 func, HANDLE16 hInstance ) { BYTE *thunk; SEGPTR thunkaddr; @@ -1070,7 +1084,7 @@ FARPROC16 MakeProcInstance16( FARPROC16 func, HANDLE16 hInstance ) /*********************************************************************** * FreeProcInstance16 (KERNEL.52) */ -void FreeProcInstance16( FARPROC16 func ) +void WINAPI FreeProcInstance16( FARPROC16 func ) { dprintf_task( stddeb, "FreeProcInstance(%08lx)\n", (DWORD)func ); if (!__winelib) TASK_FreeThunk( hCurrentTask, (SEGPTR)func ); @@ -1080,7 +1094,7 @@ void FreeProcInstance16( FARPROC16 func ) /********************************************************************** * GetCodeHandle (KERNEL.93) */ -HANDLE16 GetCodeHandle( FARPROC16 proc ) +HANDLE16 WINAPI GetCodeHandle( FARPROC16 proc ) { HANDLE16 handle; BYTE *thunk = (BYTE *)PTR_SEG_TO_LIN( proc ); @@ -1103,7 +1117,7 @@ HANDLE16 GetCodeHandle( FARPROC16 proc ) /*********************************************************************** * SetTaskQueue (KERNEL.34) */ -HQUEUE16 SetTaskQueue( HTASK16 hTask, HQUEUE16 hQueue ) +HQUEUE16 WINAPI SetTaskQueue( HTASK16 hTask, HQUEUE16 hQueue ) { HQUEUE16 hPrev; TDB *pTask; @@ -1123,7 +1137,7 @@ HQUEUE16 SetTaskQueue( HTASK16 hTask, HQUEUE16 hQueue ) /*********************************************************************** * GetTaskQueue (KERNEL.35) */ -HQUEUE16 GetTaskQueue( HTASK16 hTask ) +HQUEUE16 WINAPI GetTaskQueue( HTASK16 hTask ) { TDB *pTask; @@ -1136,7 +1150,7 @@ HQUEUE16 GetTaskQueue( HTASK16 hTask ) /*********************************************************************** * SwitchStackTo (KERNEL.108) */ -void SwitchStackTo( WORD seg, WORD ptr, WORD top ) +void WINAPI SwitchStackTo( WORD seg, WORD ptr, WORD top ) { TDB *pTask; STACK16FRAME *oldFrame, *newFrame; @@ -1177,7 +1191,7 @@ void SwitchStackTo( WORD seg, WORD ptr, WORD top ) * to make sure all registers are preserved, but we don't use them in any * way, so we don't need a CONTEXT* argument. */ -void SwitchStackBack(void) +void WINAPI SwitchStackBack(void) { TDB *pTask; STACK16FRAME *oldFrame, *newFrame; @@ -1216,7 +1230,7 @@ void SwitchStackBack(void) /*********************************************************************** * GetTaskQueueDS (KERNEL.118) */ -void GetTaskQueueDS( CONTEXT *context ) +void WINAPI GetTaskQueueDS( CONTEXT *context ) { DS_reg(context) = GlobalHandleToSel( GetTaskQueue(0) ); } @@ -1225,7 +1239,7 @@ void GetTaskQueueDS( CONTEXT *context ) /*********************************************************************** * GetTaskQueueES (KERNEL.119) */ -void GetTaskQueueES( CONTEXT *context ) +void WINAPI GetTaskQueueES( CONTEXT *context ) { ES_reg(context) = GlobalHandleToSel( GetTaskQueue(0) ); } @@ -1234,12 +1248,12 @@ void GetTaskQueueES( CONTEXT *context ) /*********************************************************************** * GetCurrentTask (KERNEL.36) */ -HTASK16 GetCurrentTask(void) +HTASK16 WINAPI GetCurrentTask(void) { return hCurrentTask; } -DWORD WIN16_GetCurrentTask(void) +DWORD WINAPI WIN16_GetCurrentTask(void) { /* This is the version used by relay code; the first task is */ /* returned in the high word of the result */ @@ -1250,7 +1264,7 @@ DWORD WIN16_GetCurrentTask(void) /*********************************************************************** * GetCurrentPDB (KERNEL.37) */ -HANDLE16 GetCurrentPDB(void) +HANDLE16 WINAPI GetCurrentPDB(void) { TDB *pTask; @@ -1262,7 +1276,7 @@ HANDLE16 GetCurrentPDB(void) /*********************************************************************** * GetInstanceData (KERNEL.54) */ -INT16 GetInstanceData( HINSTANCE16 instance, WORD buffer, INT16 len ) +INT16 WINAPI GetInstanceData( HINSTANCE16 instance, WORD buffer, INT16 len ) { char *ptr = (char *)GlobalLock16( instance ); if (!ptr || !len) return 0; @@ -1275,7 +1289,7 @@ INT16 GetInstanceData( HINSTANCE16 instance, WORD buffer, INT16 len ) /*********************************************************************** * GetExeVersion (KERNEL.105) */ -WORD GetExeVersion(void) +WORD WINAPI GetExeVersion(void) { TDB *pTask; @@ -1287,7 +1301,7 @@ WORD GetExeVersion(void) /*********************************************************************** * SetErrorMode16 (KERNEL.107) */ -UINT16 SetErrorMode16( UINT16 mode ) +UINT16 WINAPI SetErrorMode16( UINT16 mode ) { TDB *pTask; UINT16 oldMode; @@ -1303,7 +1317,7 @@ UINT16 SetErrorMode16( UINT16 mode ) /*********************************************************************** * SetErrorMode32 (KERNEL32.486) */ -UINT32 SetErrorMode32( UINT32 mode ) +UINT32 WINAPI SetErrorMode32( UINT32 mode ) { return SetErrorMode16( (UINT16)mode ); } @@ -1312,7 +1326,7 @@ UINT32 SetErrorMode32( UINT32 mode ) /*********************************************************************** * GetDOSEnvironment (KERNEL.131) */ -SEGPTR GetDOSEnvironment(void) +SEGPTR WINAPI GetDOSEnvironment(void) { TDB *pTask; @@ -1324,7 +1338,7 @@ SEGPTR GetDOSEnvironment(void) /*********************************************************************** * GetNumTasks (KERNEL.152) */ -UINT16 GetNumTasks(void) +UINT16 WINAPI GetNumTasks(void) { return nTaskCount; } @@ -1336,7 +1350,7 @@ UINT16 GetNumTasks(void) * Note: this function apparently returns a DWORD with LOWORD == HIWORD. * I don't think we need to bother with this. */ -HINSTANCE16 GetTaskDS(void) +HINSTANCE16 WINAPI GetTaskDS(void) { TDB *pTask; @@ -1348,7 +1362,7 @@ HINSTANCE16 GetTaskDS(void) /*********************************************************************** * IsTask (KERNEL.320) */ -BOOL16 IsTask( HTASK16 hTask ) +BOOL16 WINAPI IsTask( HTASK16 hTask ) { TDB *pTask; @@ -1361,7 +1375,7 @@ BOOL16 IsTask( HTASK16 hTask ) /*********************************************************************** * SetTaskSignalProc (KERNEL.38) */ -FARPROC16 SetTaskSignalProc( HTASK16 hTask, FARPROC16 proc ) +FARPROC16 WINAPI SetTaskSignalProc( HTASK16 hTask, FARPROC16 proc ) { TDB *pTask; FARPROC16 oldProc; @@ -1377,8 +1391,8 @@ FARPROC16 SetTaskSignalProc( HTASK16 hTask, FARPROC16 proc ) /*********************************************************************** * SetSigHandler (KERNEL.140) */ -WORD SetSigHandler( FARPROC16 newhandler, FARPROC16* oldhandler, - UINT16 *oldmode, UINT16 newmode, UINT16 flag ) +WORD WINAPI SetSigHandler( FARPROC16 newhandler, FARPROC16* oldhandler, + UINT16 *oldmode, UINT16 newmode, UINT16 flag ) { fprintf(stdnimp,"SetSigHandler(%p,%p,%p,%d,%d), unimplemented.\n", newhandler,oldhandler,oldmode,newmode,flag ); @@ -1402,7 +1416,7 @@ WORD SetSigHandler( FARPROC16 newhandler, FARPROC16* oldhandler, /*********************************************************************** * GlobalNotify (KERNEL.154) */ -VOID GlobalNotify( FARPROC16 proc ) +VOID WINAPI GlobalNotify( FARPROC16 proc ) { TDB *pTask; @@ -1414,7 +1428,7 @@ VOID GlobalNotify( FARPROC16 proc ) /*********************************************************************** * GetExePtr (KERNEL.133) */ -HMODULE16 GetExePtr( HANDLE16 handle ) +HMODULE16 WINAPI GetExePtr( HANDLE16 handle ) { char *ptr; HTASK16 hTask; @@ -1454,7 +1468,7 @@ HMODULE16 GetExePtr( HANDLE16 handle ) /*********************************************************************** * TaskFirst (TOOLHELP.63) */ -BOOL16 TaskFirst( TASKENTRY *lpte ) +BOOL16 WINAPI TaskFirst( TASKENTRY *lpte ) { lpte->hNext = hFirstTask; return TaskNext( lpte ); @@ -1464,7 +1478,7 @@ BOOL16 TaskFirst( TASKENTRY *lpte ) /*********************************************************************** * TaskNext (TOOLHELP.64) */ -BOOL16 TaskNext( TASKENTRY *lpte ) +BOOL16 WINAPI TaskNext( TASKENTRY *lpte ) { TDB *pTask; INSTANCEDATA *pInstData; @@ -1496,7 +1510,7 @@ BOOL16 TaskNext( TASKENTRY *lpte ) /*********************************************************************** * TaskFindHandle (TOOLHELP.65) */ -BOOL16 TaskFindHandle( TASKENTRY *lpte, HTASK16 hTask ) +BOOL16 WINAPI TaskFindHandle( TASKENTRY *lpte, HTASK16 hTask ) { lpte->hNext = hTask; return TaskNext( lpte ); @@ -1506,7 +1520,7 @@ BOOL16 TaskFindHandle( TASKENTRY *lpte, HTASK16 hTask ) /*********************************************************************** * GetAppCompatFlags16 (KERNEL.354) */ -DWORD GetAppCompatFlags16( HTASK16 hTask ) +DWORD WINAPI GetAppCompatFlags16( HTASK16 hTask ) { return GetAppCompatFlags32( hTask ); } @@ -1515,7 +1529,7 @@ DWORD GetAppCompatFlags16( HTASK16 hTask ) /*********************************************************************** * GetAppCompatFlags32 (USER32.205) */ -DWORD GetAppCompatFlags32( HTASK32 hTask ) +DWORD WINAPI GetAppCompatFlags32( HTASK32 hTask ) { TDB *pTask; diff --git a/memory/atom.c b/memory/atom.c index 598c267c50b..83d7a4c33c1 100644 --- a/memory/atom.c +++ b/memory/atom.c @@ -263,7 +263,7 @@ static UINT32 ATOM_GetAtomName( WORD selector, ATOM atom, /*********************************************************************** * InitAtomTable16 (KERNEL.68) */ -WORD InitAtomTable16( WORD entries ) +WORD WINAPI InitAtomTable16( WORD entries ) { return ATOM_InitTable( CURRENT_DS, entries ); } @@ -272,7 +272,7 @@ WORD InitAtomTable16( WORD entries ) /*********************************************************************** * GetAtomHandle (KERNEL.73) */ -HANDLE16 GetAtomHandle( ATOM atom ) +HANDLE16 WINAPI GetAtomHandle( ATOM atom ) { if (atom < MIN_STR_ATOM) return 0; return ATOMTOHANDLE( atom ); @@ -282,7 +282,7 @@ HANDLE16 GetAtomHandle( ATOM atom ) /*********************************************************************** * AddAtom16 (KERNEL.70) */ -ATOM AddAtom16( SEGPTR str ) +ATOM WINAPI AddAtom16( SEGPTR str ) { ATOM atom; HANDLE16 ds = CURRENT_DS; @@ -304,7 +304,7 @@ ATOM AddAtom16( SEGPTR str ) /*********************************************************************** * AddAtom32A (KERNEL32.0) */ -ATOM AddAtom32A( LPCSTR str ) +ATOM WINAPI AddAtom32A( LPCSTR str ) { return GlobalAddAtom32A( str ); /* FIXME */ } @@ -313,7 +313,7 @@ ATOM AddAtom32A( LPCSTR str ) /*********************************************************************** * AddAtom32W (KERNEL32.1) */ -ATOM AddAtom32W( LPCWSTR str ) +ATOM WINAPI AddAtom32W( LPCWSTR str ) { return GlobalAddAtom32W( str ); /* FIXME */ } @@ -322,7 +322,7 @@ ATOM AddAtom32W( LPCWSTR str ) /*********************************************************************** * DeleteAtom16 (KERNEL.71) */ -ATOM DeleteAtom16( ATOM atom ) +ATOM WINAPI DeleteAtom16( ATOM atom ) { return ATOM_DeleteAtom( CURRENT_DS, atom ); } @@ -331,7 +331,7 @@ ATOM DeleteAtom16( ATOM atom ) /*********************************************************************** * DeleteAtom32 (KERNEL32.69) */ -ATOM DeleteAtom32( ATOM atom ) +ATOM WINAPI DeleteAtom32( ATOM atom ) { return GlobalDeleteAtom( atom ); /* FIXME */ } @@ -340,7 +340,7 @@ ATOM DeleteAtom32( ATOM atom ) /*********************************************************************** * FindAtom16 (KERNEL.69) */ -ATOM FindAtom16( SEGPTR str ) +ATOM WINAPI FindAtom16( SEGPTR str ) { if (!HIWORD(str)) return (ATOM)LOWORD(str); /* Integer atom */ return ATOM_FindAtom( CURRENT_DS, (LPCSTR)PTR_SEG_TO_LIN(str) ); @@ -350,7 +350,7 @@ ATOM FindAtom16( SEGPTR str ) /*********************************************************************** * FindAtom32A (KERNEL32.117) */ -ATOM FindAtom32A( LPCSTR str ) +ATOM WINAPI FindAtom32A( LPCSTR str ) { return GlobalFindAtom32A( str ); /* FIXME */ } @@ -359,7 +359,7 @@ ATOM FindAtom32A( LPCSTR str ) /*********************************************************************** * FindAtom32W (KERNEL32.118) */ -ATOM FindAtom32W( LPCWSTR str ) +ATOM WINAPI FindAtom32W( LPCWSTR str ) { return GlobalFindAtom32W( str ); /* FIXME */ } @@ -368,7 +368,7 @@ ATOM FindAtom32W( LPCWSTR str ) /*********************************************************************** * GetAtomName16 (KERNEL.72) */ -UINT16 GetAtomName16( ATOM atom, LPSTR buffer, INT16 count ) +UINT16 WINAPI GetAtomName16( ATOM atom, LPSTR buffer, INT16 count ) { return (UINT16)ATOM_GetAtomName( CURRENT_DS, atom, buffer, count ); } @@ -377,7 +377,7 @@ UINT16 GetAtomName16( ATOM atom, LPSTR buffer, INT16 count ) /*********************************************************************** * GetAtomName32A (KERNEL32.149) */ -UINT32 GetAtomName32A( ATOM atom, LPSTR buffer, INT32 count ) +UINT32 WINAPI GetAtomName32A( ATOM atom, LPSTR buffer, INT32 count ) { return GlobalGetAtomName32A( atom, buffer, count ); /* FIXME */ } @@ -386,7 +386,7 @@ UINT32 GetAtomName32A( ATOM atom, LPSTR buffer, INT32 count ) /*********************************************************************** * GetAtomName32W (KERNEL32.150) */ -UINT32 GetAtomName32W( ATOM atom, LPWSTR buffer, INT32 count ) +UINT32 WINAPI GetAtomName32W( ATOM atom, LPWSTR buffer, INT32 count ) { return GlobalGetAtomName32W( atom, buffer, count ); /* FIXME */ } @@ -395,7 +395,7 @@ UINT32 GetAtomName32W( ATOM atom, LPWSTR buffer, INT32 count ) /*********************************************************************** * GlobalAddAtom16 (USER.268) */ -ATOM GlobalAddAtom16( SEGPTR str ) +ATOM WINAPI GlobalAddAtom16( SEGPTR str ) { if (!HIWORD(str)) return (ATOM)LOWORD(str); /* Integer atom */ #ifdef CONFIG_IPC @@ -408,7 +408,7 @@ ATOM GlobalAddAtom16( SEGPTR str ) /*********************************************************************** * GlobalAddAtom32A (KERNEL32.313) */ -ATOM GlobalAddAtom32A( LPCSTR str ) +ATOM WINAPI GlobalAddAtom32A( LPCSTR str ) { if (!HIWORD(str)) return (ATOM)LOWORD(str); /* Integer atom */ return ATOM_AddAtom( USER_HeapSel, str ); @@ -418,7 +418,7 @@ ATOM GlobalAddAtom32A( LPCSTR str ) /*********************************************************************** * GlobalAddAtom32W (KERNEL32.314) */ -ATOM GlobalAddAtom32W( LPCWSTR str ) +ATOM WINAPI GlobalAddAtom32W( LPCWSTR str ) { char buffer[MAX_ATOM_LEN+1]; if (!HIWORD(str)) return (ATOM)LOWORD(str); /* Integer atom */ @@ -430,7 +430,7 @@ ATOM GlobalAddAtom32W( LPCWSTR str ) /*********************************************************************** * GlobalDeleteAtom (USER.269) (KERNEL32.317) */ -ATOM GlobalDeleteAtom( ATOM atom ) +ATOM WINAPI GlobalDeleteAtom( ATOM atom ) { #ifdef CONFIG_IPC if (Options.ipc) return DDE_GlobalDeleteAtom( atom ); @@ -442,7 +442,7 @@ ATOM GlobalDeleteAtom( ATOM atom ) /*********************************************************************** * GlobalFindAtom16 (USER.270) */ -ATOM GlobalFindAtom16( SEGPTR str ) +ATOM WINAPI GlobalFindAtom16( SEGPTR str ) { if (!HIWORD(str)) return (ATOM)LOWORD(str); /* Integer atom */ #ifdef CONFIG_IPC @@ -455,7 +455,7 @@ ATOM GlobalFindAtom16( SEGPTR str ) /*********************************************************************** * GlobalFindAtom32A (KERNEL32.318) */ -ATOM GlobalFindAtom32A( LPCSTR str ) +ATOM WINAPI GlobalFindAtom32A( LPCSTR str ) { if (!HIWORD(str)) return (ATOM)LOWORD(str); /* Integer atom */ return ATOM_FindAtom( USER_HeapSel, str ); @@ -465,7 +465,7 @@ ATOM GlobalFindAtom32A( LPCSTR str ) /*********************************************************************** * GlobalFindAtom32W (KERNEL32.319) */ -ATOM GlobalFindAtom32W( LPCWSTR str ) +ATOM WINAPI GlobalFindAtom32W( LPCWSTR str ) { char buffer[MAX_ATOM_LEN+1]; if (!HIWORD(str)) return (ATOM)LOWORD(str); /* Integer atom */ @@ -477,7 +477,7 @@ ATOM GlobalFindAtom32W( LPCWSTR str ) /*********************************************************************** * GlobalGetAtomName16 (USER.271) */ -UINT16 GlobalGetAtomName16( ATOM atom, LPSTR buffer, INT16 count ) +UINT16 WINAPI GlobalGetAtomName16( ATOM atom, LPSTR buffer, INT16 count ) { #ifdef CONFIG_IPC if (Options.ipc) return DDE_GlobalGetAtomName( atom, buffer, count ); @@ -489,7 +489,7 @@ UINT16 GlobalGetAtomName16( ATOM atom, LPSTR buffer, INT16 count ) /*********************************************************************** * GlobalGetAtomName32A (KERNEL32.323) */ -UINT32 GlobalGetAtomName32A( ATOM atom, LPSTR buffer, INT32 count ) +UINT32 WINAPI GlobalGetAtomName32A( ATOM atom, LPSTR buffer, INT32 count ) { return ATOM_GetAtomName( USER_HeapSel, atom, buffer, count ); } @@ -497,7 +497,7 @@ UINT32 GlobalGetAtomName32A( ATOM atom, LPSTR buffer, INT32 count ) /*********************************************************************** * GlobalGetAtomName32W (KERNEL32.324) */ -UINT32 GlobalGetAtomName32W( ATOM atom, LPWSTR buffer, INT32 count ) +UINT32 WINAPI GlobalGetAtomName32W( ATOM atom, LPWSTR buffer, INT32 count ) { char tmp[MAX_ATOM_LEN+1]; ATOM_GetAtomName( USER_HeapSel, atom, tmp, sizeof(tmp) ); diff --git a/memory/global.c b/memory/global.c index 749d28439d3..45088c25c34 100644 --- a/memory/global.c +++ b/memory/global.c @@ -269,7 +269,7 @@ WORD DDE_GlobalHandleToSel( HGLOBAL16 handle ) /*********************************************************************** * GlobalAlloc16 (KERNEL.15) */ -HGLOBAL16 GlobalAlloc16( UINT16 flags, DWORD size ) +HGLOBAL16 WINAPI GlobalAlloc16( UINT16 flags, DWORD size ) { HANDLE16 owner = GetCurrentPDB(); @@ -282,7 +282,7 @@ HGLOBAL16 GlobalAlloc16( UINT16 flags, DWORD size ) /*********************************************************************** * GlobalReAlloc16 (KERNEL.16) */ -HGLOBAL16 GlobalReAlloc16( HGLOBAL16 handle, DWORD size, UINT16 flags ) +HGLOBAL16 WINAPI GlobalReAlloc16( HGLOBAL16 handle, DWORD size, UINT16 flags ) { WORD selcount; DWORD oldsize; @@ -388,7 +388,7 @@ HGLOBAL16 GlobalReAlloc16( HGLOBAL16 handle, DWORD size, UINT16 flags ) /*********************************************************************** * GlobalFree16 (KERNEL.17) */ -HGLOBAL16 GlobalFree16( HGLOBAL16 handle ) +HGLOBAL16 WINAPI GlobalFree16( HGLOBAL16 handle ) { void *ptr = GlobalLock16( handle ); @@ -407,7 +407,7 @@ HGLOBAL16 GlobalFree16( HGLOBAL16 handle ) * * This is the GlobalLock16() function used by 16-bit code. */ -SEGPTR WIN16_GlobalLock16( HGLOBAL16 handle ) +SEGPTR WINAPI WIN16_GlobalLock16( HGLOBAL16 handle ) { dprintf_global( stddeb, "WIN16_GlobalLock16(%04x) -> %08lx\n", handle, MAKELONG( 0, GlobalHandleToSel(handle)) ); @@ -428,7 +428,7 @@ SEGPTR WIN16_GlobalLock16( HGLOBAL16 handle ) * * This is the GlobalLock16() function used by 32-bit code. */ -LPVOID GlobalLock16( HGLOBAL16 handle ) +LPVOID WINAPI GlobalLock16( HGLOBAL16 handle ) { if (!handle) return 0; #ifdef CONFIG_IPC @@ -441,7 +441,7 @@ LPVOID GlobalLock16( HGLOBAL16 handle ) /*********************************************************************** * GlobalUnlock16 (KERNEL.19) */ -BOOL16 GlobalUnlock16( HGLOBAL16 handle ) +BOOL16 WINAPI GlobalUnlock16( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalUnlock16: %04x\n", handle ); return 0; @@ -451,7 +451,7 @@ BOOL16 GlobalUnlock16( HGLOBAL16 handle ) /*********************************************************************** * GlobalSize16 (KERNEL.20) */ -DWORD GlobalSize16( HGLOBAL16 handle ) +DWORD WINAPI GlobalSize16( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalSize16: %04x\n", handle ); if (!handle) return 0; @@ -462,7 +462,7 @@ DWORD GlobalSize16( HGLOBAL16 handle ) /*********************************************************************** * GlobalHandle16 (KERNEL.21) */ -DWORD GlobalHandle16( WORD sel ) +DWORD WINAPI GlobalHandle16( WORD sel ) { dprintf_global( stddeb, "GlobalHandle16: %04x\n", sel ); return MAKELONG( GET_ARENA_PTR(sel)->handle, GlobalHandleToSel(sel) ); @@ -472,7 +472,7 @@ DWORD GlobalHandle16( WORD sel ) /*********************************************************************** * GlobalFlags16 (KERNEL.22) */ -UINT16 GlobalFlags16( HGLOBAL16 handle ) +UINT16 WINAPI GlobalFlags16( HGLOBAL16 handle ) { GLOBALARENA *pArena; @@ -487,7 +487,7 @@ UINT16 GlobalFlags16( HGLOBAL16 handle ) /*********************************************************************** * LockSegment16 (KERNEL.23) */ -HGLOBAL16 LockSegment16( HGLOBAL16 handle ) +HGLOBAL16 WINAPI LockSegment16( HGLOBAL16 handle ) { dprintf_global( stddeb, "LockSegment: %04x\n", handle ); if (handle == (HGLOBAL16)-1) handle = CURRENT_DS; @@ -499,7 +499,7 @@ HGLOBAL16 LockSegment16( HGLOBAL16 handle ) /*********************************************************************** * UnlockSegment16 (KERNEL.24) */ -void UnlockSegment16( HGLOBAL16 handle ) +void WINAPI UnlockSegment16( HGLOBAL16 handle ) { dprintf_global( stddeb, "UnlockSegment: %04x\n", handle ); if (handle == (HGLOBAL16)-1) handle = CURRENT_DS; @@ -511,7 +511,7 @@ void UnlockSegment16( HGLOBAL16 handle ) /*********************************************************************** * GlobalCompact16 (KERNEL.25) */ -DWORD GlobalCompact16( DWORD desired ) +DWORD WINAPI GlobalCompact16( DWORD desired ) { return GLOBAL_MAX_ALLOC_SIZE; } @@ -520,7 +520,7 @@ DWORD GlobalCompact16( DWORD desired ) /*********************************************************************** * GlobalFreeAll (KERNEL.26) */ -void GlobalFreeAll( HGLOBAL16 owner ) +void WINAPI GlobalFreeAll( HGLOBAL16 owner ) { DWORD i; GLOBALARENA *pArena; @@ -537,7 +537,7 @@ void GlobalFreeAll( HGLOBAL16 owner ) /*********************************************************************** * GlobalWire16 (KERNEL.111) */ -SEGPTR GlobalWire16( HGLOBAL16 handle ) +SEGPTR WINAPI GlobalWire16( HGLOBAL16 handle ) { return WIN16_GlobalLock16( handle ); } @@ -546,7 +546,7 @@ SEGPTR GlobalWire16( HGLOBAL16 handle ) /*********************************************************************** * GlobalUnWire16 (KERNEL.112) */ -BOOL16 GlobalUnWire16( HGLOBAL16 handle ) +BOOL16 WINAPI GlobalUnWire16( HGLOBAL16 handle ) { return GlobalUnlock16( handle ); } @@ -555,7 +555,7 @@ BOOL16 GlobalUnWire16( HGLOBAL16 handle ) /*********************************************************************** * SetSwapAreaSize (KERNEL.106) */ -LONG SetSwapAreaSize( WORD size ) +LONG WINAPI SetSwapAreaSize( WORD size ) { dprintf_global(stdnimp, "STUB: SetSwapAreaSize(%d)\n", size ); return MAKELONG( size, 0xffff ); @@ -565,7 +565,7 @@ LONG SetSwapAreaSize( WORD size ) /*********************************************************************** * GlobalLRUOldest (KERNEL.163) */ -HGLOBAL16 GlobalLRUOldest( HGLOBAL16 handle ) +HGLOBAL16 WINAPI GlobalLRUOldest( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalLRUOldest: %04x\n", handle ); if (handle == (HGLOBAL16)-1) handle = CURRENT_DS; @@ -576,7 +576,7 @@ HGLOBAL16 GlobalLRUOldest( HGLOBAL16 handle ) /*********************************************************************** * GlobalLRUNewest (KERNEL.164) */ -HGLOBAL16 GlobalLRUNewest( HGLOBAL16 handle ) +HGLOBAL16 WINAPI GlobalLRUNewest( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalLRUNewest: %04x\n", handle ); if (handle == (HGLOBAL16)-1) handle = CURRENT_DS; @@ -587,7 +587,7 @@ HGLOBAL16 GlobalLRUNewest( HGLOBAL16 handle ) /*********************************************************************** * GetFreeSpace16 (KERNEL.169) */ -DWORD GetFreeSpace16( UINT16 wFlags ) +DWORD WINAPI GetFreeSpace16( UINT16 wFlags ) { MEMORYSTATUS ms; GlobalMemoryStatus( &ms ); @@ -597,7 +597,7 @@ DWORD GetFreeSpace16( UINT16 wFlags ) /*********************************************************************** * GlobalDOSAlloc (KERNEL.184) */ -DWORD GlobalDOSAlloc(DWORD size) +DWORD WINAPI GlobalDOSAlloc(DWORD size) { UINT16 uParagraph; LPVOID lpBlock = DOSMEM_GetBlock( size, &uParagraph ); @@ -617,7 +617,7 @@ DWORD GlobalDOSAlloc(DWORD size) /*********************************************************************** * GlobalDOSFree (KERNEL.185) */ -WORD GlobalDOSFree(WORD sel) +WORD WINAPI GlobalDOSFree(WORD sel) { DWORD block = GetSelectorBase(sel); @@ -634,7 +634,7 @@ WORD GlobalDOSFree(WORD sel) /*********************************************************************** * GlobalPageLock (KERNEL.191) */ -WORD GlobalPageLock( HGLOBAL16 handle ) +WORD WINAPI GlobalPageLock( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalPageLock: %04x\n", handle ); return ++(GET_ARENA_PTR(handle)->pageLockCount); @@ -644,7 +644,7 @@ WORD GlobalPageLock( HGLOBAL16 handle ) /*********************************************************************** * GlobalPageUnlock (KERNEL.192) */ -WORD GlobalPageUnlock( HGLOBAL16 handle ) +WORD WINAPI GlobalPageUnlock( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalPageUnlock: %04x\n", handle ); return --(GET_ARENA_PTR(handle)->pageLockCount); @@ -654,7 +654,7 @@ WORD GlobalPageUnlock( HGLOBAL16 handle ) /*********************************************************************** * GlobalFix16 (KERNEL.197) */ -void GlobalFix16( HGLOBAL16 handle ) +void WINAPI GlobalFix16( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalFix16: %04x\n", handle ); GET_ARENA_PTR(handle)->lockCount++; @@ -664,7 +664,7 @@ void GlobalFix16( HGLOBAL16 handle ) /*********************************************************************** * GlobalUnfix16 (KERNEL.198) */ -void GlobalUnfix16( HGLOBAL16 handle ) +void WINAPI GlobalUnfix16( HGLOBAL16 handle ) { dprintf_global( stddeb, "GlobalUnfix16: %04x\n", handle ); GET_ARENA_PTR(handle)->lockCount--; @@ -674,7 +674,7 @@ void GlobalUnfix16( HGLOBAL16 handle ) /*********************************************************************** * FarSetOwner (KERNEL.403) */ -void FarSetOwner( HGLOBAL16 handle, HANDLE16 hOwner ) +void WINAPI FarSetOwner( HGLOBAL16 handle, HANDLE16 hOwner ) { GET_ARENA_PTR(handle)->hOwner = hOwner; } @@ -683,7 +683,7 @@ void FarSetOwner( HGLOBAL16 handle, HANDLE16 hOwner ) /*********************************************************************** * FarGetOwner (KERNEL.404) */ -HANDLE16 FarGetOwner( HGLOBAL16 handle ) +HANDLE16 WINAPI FarGetOwner( HGLOBAL16 handle ) { return GET_ARENA_PTR(handle)->hOwner; } @@ -692,7 +692,7 @@ HANDLE16 FarGetOwner( HGLOBAL16 handle ) /*********************************************************************** * GlobalHandleToSel (TOOLHELP.50) */ -WORD GlobalHandleToSel( HGLOBAL16 handle ) +WORD WINAPI GlobalHandleToSel( HGLOBAL16 handle ) { dprintf_toolhelp( stddeb, "GlobalHandleToSel: %04x\n", handle ); if (!handle) return 0; @@ -711,7 +711,7 @@ WORD GlobalHandleToSel( HGLOBAL16 handle ) /*********************************************************************** * GlobalFirst (TOOLHELP.51) */ -BOOL16 GlobalFirst( GLOBALENTRY *pGlobal, WORD wFlags ) +BOOL16 WINAPI GlobalFirst( GLOBALENTRY *pGlobal, WORD wFlags ) { if (wFlags == GLOBAL_LRU) return FALSE; pGlobal->dwNext = 0; @@ -722,7 +722,7 @@ BOOL16 GlobalFirst( GLOBALENTRY *pGlobal, WORD wFlags ) /*********************************************************************** * GlobalNext (TOOLHELP.52) */ -BOOL16 GlobalNext( GLOBALENTRY *pGlobal, WORD wFlags) +BOOL16 WINAPI GlobalNext( GLOBALENTRY *pGlobal, WORD wFlags) { GLOBALARENA *pArena; @@ -755,7 +755,7 @@ BOOL16 GlobalNext( GLOBALENTRY *pGlobal, WORD wFlags) /*********************************************************************** * GlobalInfo (TOOLHELP.53) */ -BOOL16 GlobalInfo( GLOBALINFO *pInfo ) +BOOL16 WINAPI GlobalInfo( GLOBALINFO *pInfo ) { int i; GLOBALARENA *pArena; @@ -772,7 +772,7 @@ BOOL16 GlobalInfo( GLOBALINFO *pInfo ) /*********************************************************************** * GlobalEntryHandle (TOOLHELP.54) */ -BOOL16 GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL16 hItem ) +BOOL16 WINAPI GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL16 hItem ) { return FALSE; } @@ -781,7 +781,8 @@ BOOL16 GlobalEntryHandle( GLOBALENTRY *pGlobal, HGLOBAL16 hItem ) /*********************************************************************** * GlobalEntryModule (TOOLHELP.55) */ -BOOL16 GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE16 hModule, WORD wSeg ) +BOOL16 WINAPI GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE16 hModule, + WORD wSeg ) { return FALSE; } @@ -790,7 +791,7 @@ BOOL16 GlobalEntryModule( GLOBALENTRY *pGlobal, HMODULE16 hModule, WORD wSeg ) /*********************************************************************** * MemManInfo (TOOLHELP.72) */ -BOOL16 MemManInfo( MEMMANINFO *info ) +BOOL16 WINAPI MemManInfo( MEMMANINFO *info ) { MEMORYSTATUS status; @@ -849,7 +850,7 @@ typedef struct __GLOBAL32_INTERN /*********************************************************************** * GlobalAlloc32 (KERNEL32.315) */ -HGLOBAL32 GlobalAlloc32(UINT32 flags, DWORD size) +HGLOBAL32 WINAPI GlobalAlloc32(UINT32 flags, DWORD size) { PGLOBAL32_INTERN pintern; DWORD hpflags; @@ -892,7 +893,7 @@ HGLOBAL32 GlobalAlloc32(UINT32 flags, DWORD size) /*********************************************************************** * GlobalLock32 (KERNEL32.326) */ -LPVOID GlobalLock32(HGLOBAL32 hmem) +LPVOID WINAPI GlobalLock32(HGLOBAL32 hmem) { PGLOBAL32_INTERN pintern; LPVOID palloc; @@ -922,7 +923,7 @@ LPVOID GlobalLock32(HGLOBAL32 hmem) /*********************************************************************** * GlobalUnlock32 (KERNEL32.332) */ -BOOL32 GlobalUnlock32(HGLOBAL32 hmem) +BOOL32 WINAPI GlobalUnlock32(HGLOBAL32 hmem) { PGLOBAL32_INTERN pintern; BOOL32 locked; @@ -953,7 +954,7 @@ BOOL32 GlobalUnlock32(HGLOBAL32 hmem) /*********************************************************************** * GlobalHandle32 (KERNEL32.325) */ -HGLOBAL32 GlobalHandle32(LPCVOID pmem) +HGLOBAL32 WINAPI GlobalHandle32(LPCVOID pmem) { return (HGLOBAL32) POINTER_TO_HANDLE(pmem); } @@ -962,7 +963,7 @@ HGLOBAL32 GlobalHandle32(LPCVOID pmem) /*********************************************************************** * GlobalReAlloc32 (KERNEL32.328) */ -HGLOBAL32 GlobalReAlloc32(HGLOBAL32 hmem, DWORD size, UINT32 flags) +HGLOBAL32 WINAPI GlobalReAlloc32(HGLOBAL32 hmem, DWORD size, UINT32 flags) { LPVOID palloc; HGLOBAL32 hnew; @@ -1045,7 +1046,7 @@ HGLOBAL32 GlobalReAlloc32(HGLOBAL32 hmem, DWORD size, UINT32 flags) /*********************************************************************** * GlobalFree32 (KERNEL32.322) */ -HGLOBAL32 GlobalFree32(HGLOBAL32 hmem) +HGLOBAL32 WINAPI GlobalFree32(HGLOBAL32 hmem) { PGLOBAL32_INTERN pintern; HGLOBAL32 hreturned=NULL; @@ -1080,7 +1081,7 @@ HGLOBAL32 GlobalFree32(HGLOBAL32 hmem) /*********************************************************************** * GlobalSize32 (KERNEL32.329) */ -DWORD GlobalSize32(HGLOBAL32 hmem) +DWORD WINAPI GlobalSize32(HGLOBAL32 hmem) { DWORD retval; PGLOBAL32_INTERN pintern; @@ -1113,7 +1114,7 @@ DWORD GlobalSize32(HGLOBAL32 hmem) /*********************************************************************** * GlobalWire32 (KERNEL32.333) */ -LPVOID GlobalWire32(HGLOBAL32 hmem) +LPVOID WINAPI GlobalWire32(HGLOBAL32 hmem) { return GlobalLock32( hmem ); } @@ -1122,7 +1123,7 @@ LPVOID GlobalWire32(HGLOBAL32 hmem) /*********************************************************************** * GlobalUnWire32 (KERNEL32.330) */ -BOOL32 GlobalUnWire32(HGLOBAL32 hmem) +BOOL32 WINAPI GlobalUnWire32(HGLOBAL32 hmem) { return GlobalUnlock32( hmem); } @@ -1131,7 +1132,7 @@ BOOL32 GlobalUnWire32(HGLOBAL32 hmem) /*********************************************************************** * GlobalFix32 (KERNEL32.320) */ -VOID GlobalFix32(HGLOBAL32 hmem) +VOID WINAPI GlobalFix32(HGLOBAL32 hmem) { GlobalLock32( hmem ); } @@ -1140,7 +1141,7 @@ VOID GlobalFix32(HGLOBAL32 hmem) /*********************************************************************** * GlobalUnfix32 (KERNEL32.331) */ -VOID GlobalUnfix32(HGLOBAL32 hmem) +VOID WINAPI GlobalUnfix32(HGLOBAL32 hmem) { GlobalUnlock32( hmem); } @@ -1149,7 +1150,7 @@ VOID GlobalUnfix32(HGLOBAL32 hmem) /*********************************************************************** * GlobalFlags32 (KERNEL32.321) */ -UINT32 GlobalFlags32(HGLOBAL32 hmem) +UINT32 WINAPI GlobalFlags32(HGLOBAL32 hmem) { DWORD retval; PGLOBAL32_INTERN pintern; @@ -1182,7 +1183,7 @@ UINT32 GlobalFlags32(HGLOBAL32 hmem) /*********************************************************************** * GlobalCompact32 (KERNEL32.316) */ -DWORD GlobalCompact32( DWORD minfree ) +DWORD WINAPI GlobalCompact32( DWORD minfree ) { return 0; /* GlobalCompact does nothing in Win32 */ } @@ -1191,7 +1192,7 @@ DWORD GlobalCompact32( DWORD minfree ) /*********************************************************************** * GlobalMemoryStatus (KERNEL32.327) */ -VOID GlobalMemoryStatus( LPMEMORYSTATUS lpmem ) +VOID WINAPI GlobalMemoryStatus( LPMEMORYSTATUS lpmem ) { #ifdef linux FILE *f = fopen( "/proc/meminfo", "r" ); @@ -1204,16 +1205,27 @@ VOID GlobalMemoryStatus( LPMEMORYSTATUS lpmem ) lpmem->dwTotalPageFile = lpmem->dwAvailPageFile = 0; while (fgets( buffer, sizeof(buffer), f )) { + /* old style /proc/meminfo ... */ if (sscanf( buffer, "Mem: %d %d %d", &total, &used, &free )) { lpmem->dwTotalPhys += total; lpmem->dwAvailPhys += free; } - else if (sscanf( buffer, "Swap: %d %d %d", &total, &used, &free )) + if (sscanf( buffer, "Swap: %d %d %d", &total, &used, &free )) { lpmem->dwTotalPageFile += total; lpmem->dwAvailPageFile += free; } + + /* new style /proc/meminfo ... */ + if (sscanf(buffer, "MemTotal: %d", &total)) + lpmem->dwTotalPhys = total*1024; + if (sscanf(buffer, "MemFree: %d", &free)) + lpmem->dwAvailPhys = free*1024; + if (sscanf(buffer, "SwapTotal: %d", &total)) + lpmem->dwTotalPageFile = total*1024; + if (sscanf(buffer, "SwapFree: %d", &free)) + lpmem->dwAvailPageFile = free*1024; } fclose( f ); @@ -1236,3 +1248,16 @@ VOID GlobalMemoryStatus( LPMEMORYSTATUS lpmem ) lpmem->dwTotalVirtual = 32*1024*1024; lpmem->dwAvailVirtual = 32*1024*1024; } + +/********************************************************************** + * WOWGlobalAllocLock (KERNEL32.62) + * + * Combined GlobalAlloc and GlobalLock. + */ +SEGPTR WINAPI WOWGlobalAllocLock16(DWORD flags,DWORD cb,HGLOBAL16 *hmem) +{ + HGLOBAL16 xhmem; + xhmem = GlobalAlloc16(flags,cb); + if (hmem) *hmem = xhmem; + return WIN16_GlobalLock16(xhmem); +} diff --git a/memory/heap.c b/memory/heap.c index 75e5adc6a13..990ebb97163 100644 --- a/memory/heap.c +++ b/memory/heap.c @@ -780,7 +780,7 @@ SEGPTR HEAP_GetSegptr( HANDLE32 heap, DWORD flags, LPCVOID ptr ) /*********************************************************************** * HeapCreate (KERNEL32.336) */ -HANDLE32 HeapCreate( DWORD flags, DWORD initialSize, DWORD maxSize ) +HANDLE32 WINAPI HeapCreate( DWORD flags, DWORD initialSize, DWORD maxSize ) { int i; HEAP *heap; @@ -838,7 +838,7 @@ HANDLE32 HeapCreate( DWORD flags, DWORD initialSize, DWORD maxSize ) /*********************************************************************** * HeapDestroy (KERNEL32.337) */ -BOOL32 HeapDestroy( HANDLE32 heap ) +BOOL32 WINAPI HeapDestroy( HANDLE32 heap ) { HEAP *heapPtr = HEAP_GetPtr( heap ); SUBHEAP *subheap; @@ -862,7 +862,7 @@ BOOL32 HeapDestroy( HANDLE32 heap ) /*********************************************************************** * HeapAlloc (KERNEL32.334) */ -LPVOID HeapAlloc( HANDLE32 heap, DWORD flags, DWORD size ) +LPVOID WINAPI HeapAlloc( HANDLE32 heap, DWORD flags, DWORD size ) { ARENA_FREE *pArena; ARENA_INUSE *pInUse; @@ -922,7 +922,7 @@ LPVOID HeapAlloc( HANDLE32 heap, DWORD flags, DWORD size ) /*********************************************************************** * HeapFree (KERNEL32.338) */ -BOOL32 HeapFree( HANDLE32 heap, DWORD flags, LPVOID ptr ) +BOOL32 WINAPI HeapFree( HANDLE32 heap, DWORD flags, LPVOID ptr ) { ARENA_INUSE *pInUse; SUBHEAP *subheap; @@ -961,7 +961,7 @@ BOOL32 HeapFree( HANDLE32 heap, DWORD flags, LPVOID ptr ) /*********************************************************************** * HeapReAlloc (KERNEL32.340) */ -LPVOID HeapReAlloc( HANDLE32 heap, DWORD flags, LPVOID ptr, DWORD size ) +LPVOID WINAPI HeapReAlloc( HANDLE32 heap, DWORD flags, LPVOID ptr, DWORD size ) { ARENA_INUSE *pArena; DWORD oldSize; @@ -1077,7 +1077,7 @@ LPVOID HeapReAlloc( HANDLE32 heap, DWORD flags, LPVOID ptr, DWORD size ) /*********************************************************************** * HeapCompact (KERNEL32.335) */ -DWORD HeapCompact( HANDLE32 heap, DWORD flags ) +DWORD WINAPI HeapCompact( HANDLE32 heap, DWORD flags ) { return 0; } @@ -1086,7 +1086,7 @@ DWORD HeapCompact( HANDLE32 heap, DWORD flags ) /*********************************************************************** * HeapLock (KERNEL32.339) */ -BOOL32 HeapLock( HANDLE32 heap ) +BOOL32 WINAPI HeapLock( HANDLE32 heap ) { HEAP *heapPtr = HEAP_GetPtr( heap ); @@ -1099,7 +1099,7 @@ BOOL32 HeapLock( HANDLE32 heap ) /*********************************************************************** * HeapUnlock (KERNEL32.342) */ -BOOL32 HeapUnlock( HANDLE32 heap ) +BOOL32 WINAPI HeapUnlock( HANDLE32 heap ) { HEAP *heapPtr = HEAP_GetPtr( heap ); @@ -1112,7 +1112,7 @@ BOOL32 HeapUnlock( HANDLE32 heap ) /*********************************************************************** * HeapSize (KERNEL32.341) */ -DWORD HeapSize( HANDLE32 heap, DWORD flags, LPVOID ptr ) +DWORD WINAPI HeapSize( HANDLE32 heap, DWORD flags, LPVOID ptr ) { DWORD ret; HEAP *heapPtr = HEAP_GetPtr( heap ); @@ -1142,7 +1142,7 @@ DWORD HeapSize( HANDLE32 heap, DWORD flags, LPVOID ptr ) /*********************************************************************** * HeapValidate (KERNEL32.343) */ -BOOL32 HeapValidate( HANDLE32 heap, DWORD flags, LPVOID block ) +BOOL32 WINAPI HeapValidate( HANDLE32 heap, DWORD flags, LPVOID block ) { SUBHEAP *subheap; HEAP *heapPtr = (HEAP *)heap; @@ -1194,7 +1194,7 @@ BOOL32 HeapValidate( HANDLE32 heap, DWORD flags, LPVOID block ) /*********************************************************************** * HeapWalk (KERNEL32.344) */ -BOOL32 HeapWalk( HANDLE32 heap, void *entry ) +BOOL32 WINAPI HeapWalk( HANDLE32 heap, void *entry ) { fprintf( stderr, "HeapWalk(%08x): not implemented\n", heap ); return FALSE; diff --git a/memory/ldt.c b/memory/ldt.c index de1cad0a5df..36da4e1bea4 100644 --- a/memory/ldt.c +++ b/memory/ldt.c @@ -34,12 +34,24 @@ static __inline__ int modify_ldt( int func, struct modify_ldt_s *ptr, unsigned long count ) { int res; +#ifdef __PIC__ + __asm__ __volatile__( "pushl %%ebx\n\t" + "movl %2,%%ebx\n\t" + "int $0x80\n\t" + "popl %%ebx" + : "=a" (res) + : "0" (SYS_modify_ldt), + "g" (func), + "c" (ptr), + "d" (count) ); +#else __asm__ __volatile__("int $0x80" : "=a" (res) : "0" (SYS_modify_ldt), "b" (func), "c" (ptr), "d" (count) ); +#endif /* __PIC__ */ if (res >= 0) return res; errno = -res; return -1; diff --git a/memory/local.c b/memory/local.c index e54c03a90e5..894bebaa28a 100644 --- a/memory/local.c +++ b/memory/local.c @@ -302,7 +302,7 @@ static void LOCAL_PrintHeap( HANDLE16 ds ) /*********************************************************************** * LocalInit (KERNEL.4) */ -BOOL16 LocalInit( HANDLE16 selector, WORD start, WORD end ) +BOOL16 WINAPI LocalInit( HANDLE16 selector, WORD start, WORD end ) { char *ptr; WORD heapInfoArena, freeArena, lastArena; @@ -1460,7 +1460,7 @@ HLOCAL16 LOCAL_Handle( HANDLE16 ds, WORD addr ) /*********************************************************************** * LocalAlloc16 (KERNEL.5) */ -HLOCAL16 LocalAlloc16( UINT16 flags, WORD size ) +HLOCAL16 WINAPI LocalAlloc16( UINT16 flags, WORD size ) { return LOCAL_Alloc( CURRENT_DS, flags, size ); } @@ -1469,7 +1469,7 @@ HLOCAL16 LocalAlloc16( UINT16 flags, WORD size ) /*********************************************************************** * LocalReAlloc16 (KERNEL.6) */ -HLOCAL16 LocalReAlloc16( HLOCAL16 handle, WORD size, UINT16 flags ) +HLOCAL16 WINAPI LocalReAlloc16( HLOCAL16 handle, WORD size, UINT16 flags ) { return LOCAL_ReAlloc( CURRENT_DS, handle, size, flags ); } @@ -1478,7 +1478,7 @@ HLOCAL16 LocalReAlloc16( HLOCAL16 handle, WORD size, UINT16 flags ) /*********************************************************************** * LocalFree16 (KERNEL.7) */ -HLOCAL16 LocalFree16( HLOCAL16 handle ) +HLOCAL16 WINAPI LocalFree16( HLOCAL16 handle ) { return LOCAL_Free( CURRENT_DS, handle ); } @@ -1489,7 +1489,7 @@ HLOCAL16 LocalFree16( HLOCAL16 handle ) * * Note: only the offset part of the pointer is returned by the relay code. */ -SEGPTR LocalLock16( HLOCAL16 handle ) +SEGPTR WINAPI LocalLock16( HLOCAL16 handle ) { return LOCAL_LockSegptr( CURRENT_DS, handle ); } @@ -1498,7 +1498,7 @@ SEGPTR LocalLock16( HLOCAL16 handle ) /*********************************************************************** * LocalUnlock16 (KERNEL.9) */ -BOOL16 LocalUnlock16( HLOCAL16 handle ) +BOOL16 WINAPI LocalUnlock16( HLOCAL16 handle ) { return LOCAL_Unlock( CURRENT_DS, handle ); } @@ -1507,7 +1507,7 @@ BOOL16 LocalUnlock16( HLOCAL16 handle ) /*********************************************************************** * LocalSize16 (KERNEL.10) */ -UINT16 LocalSize16( HLOCAL16 handle ) +UINT16 WINAPI LocalSize16( HLOCAL16 handle ) { return LOCAL_Size( CURRENT_DS, handle ); } @@ -1516,7 +1516,7 @@ UINT16 LocalSize16( HLOCAL16 handle ) /*********************************************************************** * LocalHandle16 (KERNEL.11) */ -HLOCAL16 LocalHandle16( WORD addr ) +HLOCAL16 WINAPI LocalHandle16( WORD addr ) { return LOCAL_Handle( CURRENT_DS, addr ); } @@ -1525,7 +1525,7 @@ HLOCAL16 LocalHandle16( WORD addr ) /*********************************************************************** * LocalFlags16 (KERNEL.12) */ -UINT16 LocalFlags16( HLOCAL16 handle ) +UINT16 WINAPI LocalFlags16( HLOCAL16 handle ) { return LOCAL_Flags( CURRENT_DS, handle ); } @@ -1534,7 +1534,7 @@ UINT16 LocalFlags16( HLOCAL16 handle ) /*********************************************************************** * LocalCompact16 (KERNEL.13) */ -UINT16 LocalCompact16( UINT16 minfree ) +UINT16 WINAPI LocalCompact16( UINT16 minfree ) { dprintf_local( stddeb, "LocalCompact: %04x\n", minfree ); return LOCAL_Compact( CURRENT_DS, minfree, 0 ); @@ -1544,7 +1544,7 @@ UINT16 LocalCompact16( UINT16 minfree ) /*********************************************************************** * LocalNotify (KERNEL.14) */ -FARPROC16 LocalNotify( FARPROC16 func ) +FARPROC16 WINAPI LocalNotify( FARPROC16 func ) { LOCALHEAPINFO *pInfo; FARPROC16 oldNotify; @@ -1567,7 +1567,7 @@ FARPROC16 LocalNotify( FARPROC16 func ) /*********************************************************************** * LocalShrink16 (KERNEL.121) */ -UINT16 LocalShrink16( HGLOBAL16 handle, UINT16 newsize ) +UINT16 WINAPI LocalShrink16( HGLOBAL16 handle, UINT16 newsize ) { dprintf_local( stddeb, "LocalShrink: %04x %04x\n", handle, newsize ); return 0; @@ -1577,7 +1577,7 @@ UINT16 LocalShrink16( HGLOBAL16 handle, UINT16 newsize ) /*********************************************************************** * GetHeapSpaces (KERNEL.138) */ -DWORD GetHeapSpaces( HMODULE16 module ) +DWORD WINAPI GetHeapSpaces( HMODULE16 module ) { NE_MODULE *pModule; WORD ds; @@ -1592,7 +1592,7 @@ DWORD GetHeapSpaces( HMODULE16 module ) /*********************************************************************** * LocalCountFree (KERNEL.161) */ -WORD LocalCountFree(void) +WORD WINAPI LocalCountFree(void) { return LOCAL_CountFree( CURRENT_DS ); } @@ -1601,7 +1601,7 @@ WORD LocalCountFree(void) /*********************************************************************** * LocalHeapSize (KERNEL.162) */ -WORD LocalHeapSize() +WORD WINAPI LocalHeapSize(void) { dprintf_local( stddeb, "LocalHeapSize:\n" ); return LOCAL_HeapSize( CURRENT_DS ); @@ -1611,7 +1611,7 @@ WORD LocalHeapSize() /*********************************************************************** * LocalHandleDelta (KERNEL.310) */ -WORD LocalHandleDelta( WORD delta ) +WORD WINAPI LocalHandleDelta( WORD delta ) { LOCALHEAPINFO *pInfo; @@ -1630,7 +1630,7 @@ WORD LocalHandleDelta( WORD delta ) /*********************************************************************** * LocalInfo (TOOLHELP.56) */ -BOOL16 LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL16 handle ) +BOOL16 WINAPI LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL16 handle ) { LOCALHEAPINFO *pInfo = LOCAL_GetHeap(SELECTOROF(WIN16_GlobalLock16(handle))); if (!pInfo) return FALSE; @@ -1642,7 +1642,7 @@ BOOL16 LocalInfo( LOCALINFO *pLocalInfo, HGLOBAL16 handle ) /*********************************************************************** * LocalFirst (TOOLHELP.57) */ -BOOL16 LocalFirst( LOCALENTRY *pLocalEntry, HGLOBAL16 handle ) +BOOL16 WINAPI LocalFirst( LOCALENTRY *pLocalEntry, HGLOBAL16 handle ) { WORD ds = GlobalHandleToSel( handle ); char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 ); @@ -1665,7 +1665,7 @@ BOOL16 LocalFirst( LOCALENTRY *pLocalEntry, HGLOBAL16 handle ) /*********************************************************************** * LocalNext (TOOLHELP.58) */ -BOOL16 LocalNext( LOCALENTRY *pLocalEntry ) +BOOL16 WINAPI LocalNext( LOCALENTRY *pLocalEntry ) { WORD ds = GlobalHandleToSel( pLocalEntry->hHeap ); char *ptr = PTR_SEG_OFF_TO_LIN( ds, 0 ); @@ -1692,7 +1692,7 @@ BOOL16 LocalNext( LOCALENTRY *pLocalEntry ) /*********************************************************************** * LocalAlloc32 (KERNEL32.371) */ -HLOCAL32 LocalAlloc32( UINT32 flags, DWORD size ) +HLOCAL32 WINAPI LocalAlloc32( UINT32 flags, DWORD size ) { return (HLOCAL32)GlobalAlloc32( flags, size ); } @@ -1701,7 +1701,7 @@ HLOCAL32 LocalAlloc32( UINT32 flags, DWORD size ) /*********************************************************************** * LocalCompact32 (KERNEL32.372) */ -UINT32 LocalCompact32( UINT32 minfree ) +UINT32 WINAPI LocalCompact32( UINT32 minfree ) { return 0; /* LocalCompact does nothing in Win32 */ } @@ -1710,7 +1710,7 @@ UINT32 LocalCompact32( UINT32 minfree ) /*********************************************************************** * LocalFlags32 (KERNEL32.374) */ -UINT32 LocalFlags32( HLOCAL32 handle ) +UINT32 WINAPI LocalFlags32( HLOCAL32 handle ) { return GlobalFlags32( (HGLOBAL32)handle ); } @@ -1719,7 +1719,7 @@ UINT32 LocalFlags32( HLOCAL32 handle ) /*********************************************************************** * LocalFree32 (KERNEL32.375) */ -HLOCAL32 LocalFree32( HLOCAL32 handle ) +HLOCAL32 WINAPI LocalFree32( HLOCAL32 handle ) { return (HLOCAL32)GlobalFree32( (HGLOBAL32)handle ); } @@ -1728,7 +1728,7 @@ HLOCAL32 LocalFree32( HLOCAL32 handle ) /*********************************************************************** * LocalHandle32 (KERNEL32.376) */ -HLOCAL32 LocalHandle32( LPCVOID ptr ) +HLOCAL32 WINAPI LocalHandle32( LPCVOID ptr ) { return (HLOCAL32)GlobalHandle32( ptr ); } @@ -1737,7 +1737,7 @@ HLOCAL32 LocalHandle32( LPCVOID ptr ) /*********************************************************************** * LocalLock32 (KERNEL32.377) */ -LPVOID LocalLock32( HLOCAL32 handle ) +LPVOID WINAPI LocalLock32( HLOCAL32 handle ) { return GlobalLock32( (HGLOBAL32)handle ); } @@ -1746,7 +1746,7 @@ LPVOID LocalLock32( HLOCAL32 handle ) /*********************************************************************** * LocalReAlloc32 (KERNEL32.378) */ -HLOCAL32 LocalReAlloc32( HLOCAL32 handle, DWORD size, UINT32 flags ) +HLOCAL32 WINAPI LocalReAlloc32( HLOCAL32 handle, DWORD size, UINT32 flags ) { return (HLOCAL32)GlobalReAlloc32( (HGLOBAL32)handle, size, flags ); } @@ -1755,7 +1755,7 @@ HLOCAL32 LocalReAlloc32( HLOCAL32 handle, DWORD size, UINT32 flags ) /*********************************************************************** * LocalShrink32 (KERNEL32.379) */ -UINT32 LocalShrink32( HGLOBAL32 handle, UINT32 newsize ) +UINT32 WINAPI LocalShrink32( HGLOBAL32 handle, UINT32 newsize ) { return 0; /* LocalShrink does nothing in Win32 */ } @@ -1764,7 +1764,7 @@ UINT32 LocalShrink32( HGLOBAL32 handle, UINT32 newsize ) /*********************************************************************** * LocalSize32 (KERNEL32.380) */ -UINT32 LocalSize32( HLOCAL32 handle ) +UINT32 WINAPI LocalSize32( HLOCAL32 handle ) { return GlobalSize32( (HGLOBAL32)handle ); } @@ -1773,7 +1773,7 @@ UINT32 LocalSize32( HLOCAL32 handle ) /*********************************************************************** * LocalUnlock32 (KERNEL32.381) */ -BOOL32 LocalUnlock32( HLOCAL32 handle ) +BOOL32 WINAPI LocalUnlock32( HLOCAL32 handle ) { return GlobalUnlock32( (HGLOBAL32)handle ); } diff --git a/memory/selector.c b/memory/selector.c index 06ed3ef876a..421cd999d85 100644 --- a/memory/selector.c +++ b/memory/selector.c @@ -20,7 +20,7 @@ /*********************************************************************** * AllocSelectorArray (KERNEL.206) */ -WORD AllocSelectorArray( WORD count ) +WORD WINAPI AllocSelectorArray( WORD count ) { WORD i, size = 0; @@ -40,7 +40,7 @@ WORD AllocSelectorArray( WORD count ) /*********************************************************************** * AllocSelector (KERNEL.175) */ -WORD AllocSelector( WORD sel ) +WORD WINAPI AllocSelector( WORD sel ) { WORD newsel, count, i; @@ -63,7 +63,7 @@ WORD AllocSelector( WORD sel ) /*********************************************************************** * FreeSelector (KERNEL.176) */ -WORD FreeSelector( WORD sel ) +WORD WINAPI FreeSelector( WORD sel ) { if (IS_SELECTOR_FREE(sel)) return sel; /* error */ SELECTOR_FreeBlock( sel, 1 ); @@ -202,7 +202,7 @@ WORD SELECTOR_ReallocBlock( WORD sel, const void *base, DWORD size, /*********************************************************************** * PrestoChangoSelector (KERNEL.177) */ -WORD PrestoChangoSelector( WORD selSrc, WORD selDst ) +WORD WINAPI PrestoChangoSelector( WORD selSrc, WORD selDst ) { ldt_entry entry; LDT_GetEntry( SELECTOR_TO_ENTRY( selSrc ), &entry ); @@ -215,7 +215,7 @@ WORD PrestoChangoSelector( WORD selSrc, WORD selDst ) /*********************************************************************** * AllocCStoDSAlias (KERNEL.170) */ -WORD AllocCStoDSAlias( WORD sel ) +WORD WINAPI AllocCStoDSAlias( WORD sel ) { WORD newsel; ldt_entry entry; @@ -234,7 +234,7 @@ WORD AllocCStoDSAlias( WORD sel ) /*********************************************************************** * AllocDStoCSAlias (KERNEL.171) */ -WORD AllocDStoCSAlias( WORD sel ) +WORD WINAPI AllocDStoCSAlias( WORD sel ) { WORD newsel; ldt_entry entry; @@ -253,7 +253,7 @@ WORD AllocDStoCSAlias( WORD sel ) /*********************************************************************** * LongPtrAdd (KERNEL.180) */ -void LongPtrAdd( DWORD ptr, DWORD add ) +void WINAPI LongPtrAdd( DWORD ptr, DWORD add ) { ldt_entry entry; LDT_GetEntry( SELECTOR_TO_ENTRY(SELECTOROF(ptr)), &entry ); @@ -265,7 +265,7 @@ void LongPtrAdd( DWORD ptr, DWORD add ) /*********************************************************************** * GetSelectorBase (KERNEL.186) */ -DWORD GetSelectorBase( WORD sel ) +DWORD WINAPI GetSelectorBase( WORD sel ) { DWORD base = GET_SEL_BASE(sel); @@ -279,7 +279,7 @@ DWORD GetSelectorBase( WORD sel ) /*********************************************************************** * SetSelectorBase (KERNEL.187) */ -WORD SetSelectorBase( WORD sel, DWORD base ) +WORD WINAPI SetSelectorBase( WORD sel, DWORD base ) { ldt_entry entry; @@ -295,7 +295,7 @@ WORD SetSelectorBase( WORD sel, DWORD base ) /*********************************************************************** * GetSelectorLimit (KERNEL.188) */ -DWORD GetSelectorLimit( WORD sel ) +DWORD WINAPI GetSelectorLimit( WORD sel ) { return GET_SEL_LIMIT(sel); } @@ -304,7 +304,7 @@ DWORD GetSelectorLimit( WORD sel ) /*********************************************************************** * SetSelectorLimit (KERNEL.189) */ -WORD SetSelectorLimit( WORD sel, DWORD limit ) +WORD WINAPI SetSelectorLimit( WORD sel, DWORD limit ) { ldt_entry entry; LDT_GetEntry( SELECTOR_TO_ENTRY(sel), &entry ); @@ -319,7 +319,7 @@ WORD SetSelectorLimit( WORD sel, DWORD limit ) /*********************************************************************** * SelectorAccessRights (KERNEL.196) */ -WORD SelectorAccessRights( WORD sel, WORD op, WORD val ) +WORD WINAPI SelectorAccessRights( WORD sel, WORD op, WORD val ) { ldt_entry entry; LDT_GetEntry( SELECTOR_TO_ENTRY(sel), &entry ); @@ -349,7 +349,7 @@ WORD SelectorAccessRights( WORD sel, WORD op, WORD val ) /*********************************************************************** * IsBadCodePtr16 (KERNEL.336) */ -BOOL16 IsBadCodePtr16( SEGPTR lpfn ) +BOOL16 WINAPI IsBadCodePtr16( SEGPTR lpfn ) { WORD sel; ldt_entry entry; @@ -367,7 +367,7 @@ BOOL16 IsBadCodePtr16( SEGPTR lpfn ) /*********************************************************************** * IsBadStringPtr16 (KERNEL.337) */ -BOOL16 IsBadStringPtr16( SEGPTR ptr, UINT16 size ) +BOOL16 WINAPI IsBadStringPtr16( SEGPTR ptr, UINT16 size ) { WORD sel; ldt_entry entry; @@ -386,7 +386,7 @@ BOOL16 IsBadStringPtr16( SEGPTR ptr, UINT16 size ) /*********************************************************************** * IsBadHugeReadPtr16 (KERNEL.346) */ -BOOL16 IsBadHugeReadPtr16( SEGPTR ptr, DWORD size ) +BOOL16 WINAPI IsBadHugeReadPtr16( SEGPTR ptr, DWORD size ) { WORD sel; ldt_entry entry; @@ -404,7 +404,7 @@ BOOL16 IsBadHugeReadPtr16( SEGPTR ptr, DWORD size ) /*********************************************************************** * IsBadHugeWritePtr16 (KERNEL.347) */ -BOOL16 IsBadHugeWritePtr16( SEGPTR ptr, DWORD size ) +BOOL16 WINAPI IsBadHugeWritePtr16( SEGPTR ptr, DWORD size ) { WORD sel; ldt_entry entry; @@ -421,7 +421,7 @@ BOOL16 IsBadHugeWritePtr16( SEGPTR ptr, DWORD size ) /*********************************************************************** * IsBadReadPtr16 (KERNEL.334) */ -BOOL16 IsBadReadPtr16( SEGPTR ptr, UINT16 size ) +BOOL16 WINAPI IsBadReadPtr16( SEGPTR ptr, UINT16 size ) { return IsBadHugeReadPtr16( ptr, size ); } @@ -430,7 +430,7 @@ BOOL16 IsBadReadPtr16( SEGPTR ptr, UINT16 size ) /*********************************************************************** * IsBadWritePtr16 (KERNEL.335) */ -BOOL16 IsBadWritePtr16( SEGPTR ptr, UINT16 size ) +BOOL16 WINAPI IsBadWritePtr16( SEGPTR ptr, UINT16 size ) { return IsBadHugeWritePtr16( ptr, size ); } @@ -439,7 +439,7 @@ BOOL16 IsBadWritePtr16( SEGPTR ptr, UINT16 size ) /*********************************************************************** * MemoryRead (TOOLHELP.78) */ -DWORD MemoryRead( WORD sel, DWORD offset, void *buffer, DWORD count ) +DWORD WINAPI MemoryRead( WORD sel, DWORD offset, void *buffer, DWORD count ) { if (IS_SELECTOR_FREE(sel)) return 0; if (offset > GET_SEL_LIMIT(sel)) return 0; @@ -453,7 +453,7 @@ DWORD MemoryRead( WORD sel, DWORD offset, void *buffer, DWORD count ) /*********************************************************************** * MemoryWrite (TOOLHELP.79) */ -DWORD MemoryWrite( WORD sel, DWORD offset, void *buffer, DWORD count ) +DWORD WINAPI MemoryWrite( WORD sel, DWORD offset, void *buffer, DWORD count ) { if (IS_SELECTOR_FREE(sel)) return 0; if (offset > GET_SEL_LIMIT(sel)) return 0; @@ -475,7 +475,7 @@ DWORD MemoryWrite( WORD sel, DWORD offset, void *buffer, DWORD count ) * * Maps fixed segmented pointer to linear. */ -LPVOID MapSL( SEGPTR sptr ) +LPVOID WINAPI MapSL( SEGPTR sptr ) { return (LPVOID)PTR_SEG_TO_LIN(sptr); } @@ -486,7 +486,7 @@ LPVOID MapSL( SEGPTR sptr ) * * Maps linear pointer to segmented. */ -SEGPTR MapLS( LPVOID ptr ) +SEGPTR WINAPI MapLS( LPVOID ptr ) { WORD sel = SELECTOR_AllocBlock( ptr, 0x10000, SEGMENT_DATA, FALSE, FALSE ); return PTR_SEG_OFF_TO_SEGPTR( sel, 0 ); @@ -498,7 +498,120 @@ SEGPTR MapLS( LPVOID ptr ) * * Free mapped selector. */ -void UnMapLS( SEGPTR sptr ) +void WINAPI UnMapLS( SEGPTR sptr ) { if (!__winelib) SELECTOR_FreeBlock( SELECTOROF(sptr), 1 ); } + +/*********************************************************************** + * GetThreadSelectorEntry (KERNEL32) + * FIXME: add #ifdef i386 for non x86 + */ +BOOL32 WINAPI GetThreadSelectorEntry( HANDLE32 hthread, DWORD sel, + LPLDT_ENTRY ldtent) +{ + ldt_entry ldtentry; + + LDT_GetEntry(SELECTOR_TO_ENTRY(sel),&ldtentry); + ldtent->BaseLow = ldtentry.base & 0x0000ffff; + ldtent->HighWord.Bits.BaseMid = (ldtentry.base & 0x00ff0000) >> 16; + ldtent->HighWord.Bits.BaseHi = (ldtentry.base & 0xff000000) >> 24; + ldtent->LimitLow = ldtentry.limit & 0x0000ffff; + ldtent->HighWord.Bits.LimitHi = (ldtentry.limit & 0x00ff0000) >> 16; + ldtent->HighWord.Bits.Dpl = 3; + ldtent->HighWord.Bits.Sys = 0; + ldtent->HighWord.Bits.Pres = 1; + ldtent->HighWord.Bits.Type = 0x10|(ldtentry.type << 2); + if (ldtentry.read_only) + ldtent->HighWord.Bits.Type|=0x2; + ldtent->HighWord.Bits.Granularity = ldtentry.limit_in_pages; + ldtent->HighWord.Bits.Default_Big = ldtentry.seg_32bit; + return TRUE; +} + + +/********************************************************************** + * SMapLS* (KERNEL32) + * These functions map linear pointers at [EBP+xxx] to segmented pointers + * and return them. + * Win95 uses some kind of alias structs, which it stores in [EBP+x] to + * unravel them at SUnMapLS. We just store the segmented pointer there. + */ +static void +x_SMapLS_IP_EBP_x(CONTEXT *context,int argoff) { + DWORD val,ptr; + + val =*(DWORD*)(EBP_reg(context)+argoff); + if (val<0x10000) { + ptr=val; + *(DWORD*)(EBP_reg(context)+argoff) = 0; + } else { + ptr = MapLS((LPVOID)val); + *(DWORD*)(EBP_reg(context)+argoff) = ptr; + } + fprintf(stderr,"[EBP+%d] %08lx => %08lx\n",argoff,val,ptr); + EAX_reg(context) = ptr; +} + +void WINAPI SMapLS_IP_EBP_8(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,8);} +void WINAPI SMapLS_IP_EBP_12(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,12);} +void WINAPI SMapLS_IP_EBP_16(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,16);} +void WINAPI SMapLS_IP_EBP_20(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,20);} +void WINAPI SMapLS_IP_EBP_24(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,24);} +void WINAPI SMapLS_IP_EBP_28(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,28);} +void WINAPI SMapLS_IP_EBP_32(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,32);} +void WINAPI SMapLS_IP_EBP_36(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,36);} +void WINAPI SMapLS_IP_EBP_40(CONTEXT *context) {x_SMapLS_IP_EBP_x(context,40);} + +void WINAPI SMapLS(CONTEXT *context,int argoff) +{ + if (EAX_reg(context)>=0x10000) { + EAX_reg(context) = MapLS((LPVOID)EAX_reg(context)); + EDX_reg(context) = EAX_reg(context); + } else { + EDX_reg(context) = 0; + } +} + +/********************************************************************** + * WOWGetVDMPointer (KERNEL32.55) + * Get linear from segmented pointer. (MSDN lib) + */ +LPVOID WINAPI WOWGetVDMPointer(DWORD vp,DWORD nrofbytes,BOOL32 protected) +{ + /* FIXME: add size check too */ + fprintf(stdnimp,"WOWGetVDMPointer(%08lx,%ld,%d)\n",vp,nrofbytes,protected); + if (protected) + return PTR_SEG_TO_LIN(vp); + else + return DOSMEM_MapRealToLinear(vp); +} + +/********************************************************************** + * GetVDMPointer32W (KERNEL.516) + */ +LPVOID WINAPI GetVDMPointer32W(DWORD vp,DWORD mode) +{ + return WOWGetVDMPointer(vp,0,mode); +} + +/********************************************************************** + * WOWGetVDMPointerFix (KERNEL32.55) + * Dito, but fix heapsegment (MSDN lib) + */ +LPVOID WINAPI WOWGetVDMPointerFix(DWORD vp,DWORD nrofbytes,BOOL32 protected) +{ + /* FIXME: fix heapsegment */ + fprintf(stdnimp,"WOWGetVDMPointerFix(%08lx,%ld,%d)\n",vp,nrofbytes,protected); + return WOWGetVDMPointer(vp,nrofbytes,protected); +} + +/********************************************************************** + * WOWGetVDMPointerUnFix (KERNEL32.56) + */ +void WINAPI WOWGetVDMPointerUnfix(DWORD vp) +{ + fprintf(stdnimp,"WOWGetVDMPointerUnfix(%08lx), STUB\n",vp); + /* FIXME: unfix heapsegment */ +} + diff --git a/memory/string.c b/memory/string.c index 05beae1a526..72efb864ec9 100644 --- a/memory/string.c +++ b/memory/string.c @@ -55,7 +55,7 @@ static const BYTE STRING_Ansi2Oem[256] = /*********************************************************************** * hmemcpy (KERNEL.348) */ -void hmemcpy( LPVOID dst, LPCVOID src, LONG count ) +void WINAPI hmemcpy( LPVOID dst, LPCVOID src, LONG count ) { memcpy( dst, src, count ); } @@ -64,7 +64,7 @@ void hmemcpy( LPVOID dst, LPCVOID src, LONG count ) /*********************************************************************** * lstrcat16 (KERNEL.89) */ -SEGPTR lstrcat16( SEGPTR dst, LPCSTR src ) +SEGPTR WINAPI lstrcat16( SEGPTR dst, LPCSTR src ) { lstrcat32A( (LPSTR)PTR_SEG_TO_LIN(dst), src ); return dst; @@ -74,7 +74,7 @@ SEGPTR lstrcat16( SEGPTR dst, LPCSTR src ) /*********************************************************************** * lstrcat32A (KERNEL32.599) */ -LPSTR lstrcat32A( LPSTR dst, LPCSTR src ) +LPSTR WINAPI lstrcat32A( LPSTR dst, LPCSTR src ) { dprintf_string(stddeb,"strcat: Append '%s' to '%s'\n", (src)?src:"NULL",(dst)?dst:"NULL"); @@ -86,7 +86,7 @@ LPSTR lstrcat32A( LPSTR dst, LPCSTR src ) /*********************************************************************** * lstrcat32W (KERNEL32.600) */ -LPWSTR lstrcat32W( LPWSTR dst, LPCWSTR src ) +LPWSTR WINAPI lstrcat32W( LPWSTR dst, LPCWSTR src ) { register LPWSTR p = dst; while (*p) p++; @@ -98,7 +98,7 @@ LPWSTR lstrcat32W( LPWSTR dst, LPCWSTR src ) /*********************************************************************** * lstrcatn16 (KERNEL.352) */ -SEGPTR lstrcatn16( SEGPTR dst, LPCSTR src, INT16 n ) +SEGPTR WINAPI lstrcatn16( SEGPTR dst, LPCSTR src, INT16 n ) { lstrcatn32A( (LPSTR)PTR_SEG_TO_LIN(dst), src, n ); return dst; @@ -108,7 +108,7 @@ SEGPTR lstrcatn16( SEGPTR dst, LPCSTR src, INT16 n ) /*********************************************************************** * lstrcatn32A (Not a Windows API) */ -LPSTR lstrcatn32A( LPSTR dst, LPCSTR src, INT32 n ) +LPSTR WINAPI lstrcatn32A( LPSTR dst, LPCSTR src, INT32 n ) { register LPSTR p = dst; dprintf_string(stddeb,"strcatn add %d chars from '%s' to '%s'\n", @@ -123,7 +123,7 @@ LPSTR lstrcatn32A( LPSTR dst, LPCSTR src, INT32 n ) /*********************************************************************** * lstrcatn32W (Not a Windows API) */ -LPWSTR lstrcatn32W( LPWSTR dst, LPCWSTR src, INT32 n ) +LPWSTR WINAPI lstrcatn32W( LPWSTR dst, LPCWSTR src, INT32 n ) { register LPWSTR p = dst; while (*p) p++; @@ -136,7 +136,7 @@ LPWSTR lstrcatn32W( LPWSTR dst, LPCWSTR src, INT32 n ) /*********************************************************************** * lstrcmp16 (USER.430) */ -INT16 lstrcmp16( LPCSTR str1, LPCSTR str2 ) +INT16 WINAPI lstrcmp16( LPCSTR str1, LPCSTR str2 ) { return (INT16)lstrcmp32A( str1, str2 ); } @@ -145,7 +145,7 @@ INT16 lstrcmp16( LPCSTR str1, LPCSTR str2 ) /*********************************************************************** * lstrcmp32A (KERNEL.602) */ -INT32 lstrcmp32A( LPCSTR str1, LPCSTR str2 ) +INT32 WINAPI lstrcmp32A( LPCSTR str1, LPCSTR str2 ) { dprintf_string(stddeb,"strcmp: '%s' and '%s'\n", (str1)?str1:"NULL",(str2)?str2:"NULL"); @@ -156,7 +156,7 @@ INT32 lstrcmp32A( LPCSTR str1, LPCSTR str2 ) /*********************************************************************** * lstrcmp32W (KERNEL.603) */ -INT32 lstrcmp32W( LPCWSTR str1, LPCWSTR str2 ) +INT32 WINAPI lstrcmp32W( LPCWSTR str1, LPCWSTR str2 ) { while (*str1 && (*str1 == *str2)) { str1++; str2++; } return (INT32)(*str1 - *str2); @@ -166,7 +166,7 @@ INT32 lstrcmp32W( LPCWSTR str1, LPCWSTR str2 ) /*********************************************************************** * lstrcmpi16 (USER.471) */ -INT16 lstrcmpi16( LPCSTR str1, LPCSTR str2 ) +INT16 WINAPI lstrcmpi16( LPCSTR str1, LPCSTR str2 ) { return (INT16)lstrcmpi32A( str1, str2 ); } @@ -175,7 +175,7 @@ INT16 lstrcmpi16( LPCSTR str1, LPCSTR str2 ) /*********************************************************************** * lstrcmpi32A (KERNEL32.605) */ -INT32 lstrcmpi32A( LPCSTR str1, LPCSTR str2 ) +INT32 WINAPI lstrcmpi32A( LPCSTR str1, LPCSTR str2 ) { INT32 res; @@ -194,7 +194,7 @@ INT32 lstrcmpi32A( LPCSTR str1, LPCSTR str2 ) /*********************************************************************** * lstrcmpi32W (KERNEL32.606) */ -INT32 lstrcmpi32W( LPCWSTR str1, LPCWSTR str2 ) +INT32 WINAPI lstrcmpi32W( LPCWSTR str1, LPCWSTR str2 ) { INT32 res; @@ -212,7 +212,7 @@ INT32 lstrcmpi32W( LPCWSTR str1, LPCWSTR str2 ) /*********************************************************************** * lstrcpy16 (KERNEL.88) */ -SEGPTR lstrcpy16( SEGPTR dst, LPCSTR src ) +SEGPTR WINAPI lstrcpy16( SEGPTR dst, LPCSTR src ) { lstrcpy32A( (LPSTR)PTR_SEG_TO_LIN(dst), src ); return dst; @@ -222,7 +222,7 @@ SEGPTR lstrcpy16( SEGPTR dst, LPCSTR src ) /*********************************************************************** * lstrcpy32A (KERNEL32.608) */ -LPSTR lstrcpy32A( LPSTR dst, LPCSTR src ) +LPSTR WINAPI lstrcpy32A( LPSTR dst, LPCSTR src ) { dprintf_string(stddeb,"strcpy '%s'\n", (src)?src:"NULL"); @@ -235,7 +235,7 @@ LPSTR lstrcpy32A( LPSTR dst, LPCSTR src ) /*********************************************************************** * lstrcpy32W (KERNEL32.609) */ -LPWSTR lstrcpy32W( LPWSTR dst, LPCWSTR src ) +LPWSTR WINAPI lstrcpy32W( LPWSTR dst, LPCWSTR src ) { register LPWSTR p = dst; while ((*p++ = *src++)); @@ -246,7 +246,7 @@ LPWSTR lstrcpy32W( LPWSTR dst, LPCWSTR src ) /*********************************************************************** * lstrcpyn16 (KERNEL.353) */ -SEGPTR lstrcpyn16( SEGPTR dst, LPCSTR src, INT16 n ) +SEGPTR WINAPI lstrcpyn16( SEGPTR dst, LPCSTR src, INT16 n ) { lstrcpyn32A( (LPSTR)PTR_SEG_TO_LIN(dst), src, n ); return dst; @@ -256,7 +256,7 @@ SEGPTR lstrcpyn16( SEGPTR dst, LPCSTR src, INT16 n ) /*********************************************************************** * lstrcpyn32A (KERNEL32.611) */ -LPSTR lstrcpyn32A( LPSTR dst, LPCSTR src, INT32 n ) +LPSTR WINAPI lstrcpyn32A( LPSTR dst, LPCSTR src, INT32 n ) { LPSTR p = dst; dprintf_string(stddeb,"strcpyn '%s' for %d chars\n", @@ -270,7 +270,7 @@ LPSTR lstrcpyn32A( LPSTR dst, LPCSTR src, INT32 n ) /*********************************************************************** * lstrcpyn32W (KERNEL32.612) */ -LPWSTR lstrcpyn32W( LPWSTR dst, LPCWSTR src, INT32 n ) +LPWSTR WINAPI lstrcpyn32W( LPWSTR dst, LPCWSTR src, INT32 n ) { LPWSTR p = dst; while ((n-- > 1) && *src) *p++ = *src++; @@ -282,7 +282,7 @@ LPWSTR lstrcpyn32W( LPWSTR dst, LPCWSTR src, INT32 n ) /*********************************************************************** * lstrlen16 (KERNEL.90) */ -INT16 lstrlen16( LPCSTR str ) +INT16 WINAPI lstrlen16( LPCSTR str ) { return (INT16)lstrlen32A( str ); } @@ -291,7 +291,7 @@ INT16 lstrlen16( LPCSTR str ) /*********************************************************************** * lstrlen32A (KERNEL32.614) */ -INT32 lstrlen32A( LPCSTR str ) +INT32 WINAPI lstrlen32A( LPCSTR str ) { /* looks weird, but win3.1 KERNEL got a GeneralProtection handler * in lstrlen() ... we check only for NULL pointer reference. @@ -306,7 +306,7 @@ INT32 lstrlen32A( LPCSTR str ) /*********************************************************************** * lstrlen32W (KERNEL32.615) */ -INT32 lstrlen32W( LPCWSTR str ) +INT32 WINAPI lstrlen32W( LPCWSTR str ) { INT32 len = 0; if (!str) return 0; @@ -318,7 +318,7 @@ INT32 lstrlen32W( LPCWSTR str ) /*********************************************************************** * lstrncmp32A (Not a Windows API) */ -INT32 lstrncmp32A( LPCSTR str1, LPCSTR str2, INT32 n ) +INT32 WINAPI lstrncmp32A( LPCSTR str1, LPCSTR str2, INT32 n ) { dprintf_string(stddeb,"strncmp '%s' and '%s' for %d chars\n", (str1)?str1:"NULL",(str2)?str2:"NULL",n); @@ -329,7 +329,7 @@ INT32 lstrncmp32A( LPCSTR str1, LPCSTR str2, INT32 n ) /*********************************************************************** * lstrncmp32W (Not a Windows API) */ -INT32 lstrncmp32W( LPCWSTR str1, LPCWSTR str2, INT32 n ) +INT32 WINAPI lstrncmp32W( LPCWSTR str1, LPCWSTR str2, INT32 n ) { if (!n) return 0; while ((--n > 0) && *str1 && (*str1 == *str2)) { str1++; str2++; } @@ -340,7 +340,7 @@ INT32 lstrncmp32W( LPCWSTR str1, LPCWSTR str2, INT32 n ) /*********************************************************************** * lstrncmpi32A (Not a Windows API) */ -INT32 lstrncmpi32A( LPCSTR str1, LPCSTR str2, INT32 n ) +INT32 WINAPI lstrncmpi32A( LPCSTR str1, LPCSTR str2, INT32 n ) { INT32 res; @@ -357,7 +357,7 @@ INT32 lstrncmpi32A( LPCSTR str1, LPCSTR str2, INT32 n ) /*********************************************************************** * lstrncmpi32W (Not a Windows API) */ -INT32 lstrncmpi32W( LPCWSTR str1, LPCWSTR str2, INT32 n ) +INT32 WINAPI lstrncmpi32W( LPCWSTR str1, LPCWSTR str2, INT32 n ) { INT32 res; @@ -376,7 +376,7 @@ INT32 lstrncmpi32W( LPCWSTR str1, LPCWSTR str2, INT32 n ) /*********************************************************************** * lstrcpyAtoW (Not a Windows API) */ -LPWSTR lstrcpyAtoW( LPWSTR dst, LPCSTR src ) +LPWSTR WINAPI lstrcpyAtoW( LPWSTR dst, LPCSTR src ) { register LPWSTR p = dst; while ((*p++ = (WCHAR)(unsigned char)*src++)); @@ -387,7 +387,7 @@ LPWSTR lstrcpyAtoW( LPWSTR dst, LPCSTR src ) /*********************************************************************** * lstrcpyWtoA (Not a Windows API) */ -LPSTR lstrcpyWtoA( LPSTR dst, LPCWSTR src ) +LPSTR WINAPI lstrcpyWtoA( LPSTR dst, LPCWSTR src ) { register LPSTR p = dst; while ((*p++ = (CHAR)*src++)); @@ -398,7 +398,7 @@ LPSTR lstrcpyWtoA( LPSTR dst, LPCWSTR src ) /*********************************************************************** * lstrcpynAtoW (Not a Windows API) */ -LPWSTR lstrcpynAtoW( LPWSTR dst, LPCSTR src, INT32 n ) +LPWSTR WINAPI lstrcpynAtoW( LPWSTR dst, LPCSTR src, INT32 n ) { LPWSTR p = dst; while ((n-- > 1) && *src) *p++ = (WCHAR)(unsigned char)*src++; @@ -410,7 +410,7 @@ LPWSTR lstrcpynAtoW( LPWSTR dst, LPCSTR src, INT32 n ) /*********************************************************************** * lstrcpynWtoA (Not a Windows API) */ -LPSTR lstrcpynWtoA( LPSTR dst, LPCWSTR src, INT32 n ) +LPSTR WINAPI lstrcpynWtoA( LPSTR dst, LPCWSTR src, INT32 n ) { LPSTR p = dst; while ((n-- > 1) && *src) *p++ = (CHAR)*src++; @@ -422,7 +422,7 @@ LPSTR lstrcpynWtoA( LPSTR dst, LPCWSTR src, INT32 n ) /*********************************************************************** * Copy (GDI.250) */ -void Copy( LPVOID src, LPVOID dst, WORD size ) +void WINAPI Copy( LPVOID src, LPVOID dst, WORD size ) { memcpy( dst, src, size ); } @@ -431,7 +431,7 @@ void Copy( LPVOID src, LPVOID dst, WORD size ) /*********************************************************************** * RtlFillMemory (KERNEL32.441) */ -VOID RtlFillMemory( LPVOID ptr, UINT32 len, UINT32 fill ) +VOID WINAPI RtlFillMemory( LPVOID ptr, UINT32 len, UINT32 fill ) { memset( ptr, fill, len ); } @@ -440,7 +440,7 @@ VOID RtlFillMemory( LPVOID ptr, UINT32 len, UINT32 fill ) /*********************************************************************** * RtlMoveMemory (KERNEL32.442) */ -VOID RtlMoveMemory( LPVOID dst, LPCVOID src, UINT32 len ) +VOID WINAPI RtlMoveMemory( LPVOID dst, LPCVOID src, UINT32 len ) { memmove( dst, src, len ); } @@ -449,7 +449,7 @@ VOID RtlMoveMemory( LPVOID dst, LPCVOID src, UINT32 len ) /*********************************************************************** * RtlZeroMemory (KERNEL32.444) */ -VOID RtlZeroMemory( LPVOID ptr, UINT32 len ) +VOID WINAPI RtlZeroMemory( LPVOID ptr, UINT32 len ) { memset( ptr, 0, len ); } @@ -458,7 +458,7 @@ VOID RtlZeroMemory( LPVOID ptr, UINT32 len ) /*********************************************************************** * AnsiToOem16 (KEYBOARD.5) */ -INT16 AnsiToOem16( LPCSTR s, LPSTR d ) +INT16 WINAPI AnsiToOem16( LPCSTR s, LPSTR d ) { CharToOem32A( s, d ); return -1; @@ -468,7 +468,7 @@ INT16 AnsiToOem16( LPCSTR s, LPSTR d ) /*********************************************************************** * OemToAnsi16 (KEYBOARD.6) */ -INT16 OemToAnsi16( LPCSTR s, LPSTR d ) +INT16 WINAPI OemToAnsi16( LPCSTR s, LPSTR d ) { OemToChar32A( s, d ); return -1; @@ -478,7 +478,7 @@ INT16 OemToAnsi16( LPCSTR s, LPSTR d ) /*********************************************************************** * AnsiToOemBuff16 (KEYBOARD.134) */ -void AnsiToOemBuff16( LPCSTR s, LPSTR d, UINT16 len ) +void WINAPI AnsiToOemBuff16( LPCSTR s, LPSTR d, UINT16 len ) { CharToOemBuff32A( s, d, len ? len : 65536 ); } @@ -487,7 +487,7 @@ void AnsiToOemBuff16( LPCSTR s, LPSTR d, UINT16 len ) /*********************************************************************** * OemToAnsiBuff16 (KEYBOARD.135) */ -void OemToAnsiBuff16( LPCSTR s, LPSTR d, UINT16 len ) +void WINAPI OemToAnsiBuff16( LPCSTR s, LPSTR d, UINT16 len ) { OemToCharBuff32A( s, d, len ? len : 65536 ); } @@ -496,7 +496,7 @@ void OemToAnsiBuff16( LPCSTR s, LPSTR d, UINT16 len ) /*********************************************************************** * CharToOem32A (USER32.36) */ -BOOL32 CharToOem32A( LPCSTR s, LPSTR d ) +BOOL32 WINAPI CharToOem32A( LPCSTR s, LPSTR d ) { if (!s || !d) return TRUE; dprintf_string(stddeb,"CharToOem '%s'\n", (s)?s:"NULL"); @@ -509,7 +509,7 @@ BOOL32 CharToOem32A( LPCSTR s, LPSTR d ) /*********************************************************************** * CharToOemBuff32A (USER32.37) */ -BOOL32 CharToOemBuff32A( LPCSTR s, LPSTR d, DWORD len ) +BOOL32 WINAPI CharToOemBuff32A( LPCSTR s, LPSTR d, DWORD len ) { while (len--) *d++ = ANSI_TO_OEM(*s++); return TRUE; @@ -519,7 +519,7 @@ BOOL32 CharToOemBuff32A( LPCSTR s, LPSTR d, DWORD len ) /*********************************************************************** * CharToOemBuff32W (USER32.38) */ -BOOL32 CharToOemBuff32W( LPCWSTR s, LPSTR d, DWORD len ) +BOOL32 WINAPI CharToOemBuff32W( LPCWSTR s, LPSTR d, DWORD len ) { while (len--) *d++ = ANSI_TO_OEM(*s++); return TRUE; @@ -529,7 +529,7 @@ BOOL32 CharToOemBuff32W( LPCWSTR s, LPSTR d, DWORD len ) /*********************************************************************** * CharToOem32W (USER32.39) */ -BOOL32 CharToOem32W( LPCWSTR s, LPSTR d ) +BOOL32 WINAPI CharToOem32W( LPCWSTR s, LPSTR d ) { while ((*d++ = ANSI_TO_OEM(*s++))); return TRUE; @@ -539,7 +539,7 @@ BOOL32 CharToOem32W( LPCWSTR s, LPSTR d ) /*********************************************************************** * OemToChar32A (USER32.401) */ -BOOL32 OemToChar32A( LPCSTR s, LPSTR d ) +BOOL32 WINAPI OemToChar32A( LPCSTR s, LPSTR d ) { dprintf_string(stddeb,"OemToChar '%s'\n", (s)?s:"NULL"); while ((*d++ = OEM_TO_ANSI(*s++))); @@ -551,7 +551,7 @@ BOOL32 OemToChar32A( LPCSTR s, LPSTR d ) /*********************************************************************** * OemToCharBuff32A (USER32.402) */ -BOOL32 OemToCharBuff32A( LPCSTR s, LPSTR d, DWORD len ) +BOOL32 WINAPI OemToCharBuff32A( LPCSTR s, LPSTR d, DWORD len ) { dprintf_string(stddeb,"OemToCharBuff '%s' for %ld chars\n", (s)?s:"NULL",len); while (len--) *d++ = OEM_TO_ANSI(*s++); @@ -562,7 +562,7 @@ BOOL32 OemToCharBuff32A( LPCSTR s, LPSTR d, DWORD len ) /*********************************************************************** * OemToCharBuff32W (USER32.403) */ -BOOL32 OemToCharBuff32W( LPCSTR s, LPWSTR d, DWORD len ) +BOOL32 WINAPI OemToCharBuff32W( LPCSTR s, LPWSTR d, DWORD len ) { while (len--) *d++ = (WCHAR)OEM_TO_ANSI(*s++); return TRUE; @@ -572,7 +572,7 @@ BOOL32 OemToCharBuff32W( LPCSTR s, LPWSTR d, DWORD len ) /*********************************************************************** * OemToChar32W (USER32.404) */ -BOOL32 OemToChar32W( LPCSTR s, LPWSTR d ) +BOOL32 WINAPI OemToChar32W( LPCSTR s, LPWSTR d ) { while ((*d++ = (WCHAR)OEM_TO_ANSI(*s++))); return TRUE; diff --git a/memory/virtual.c b/memory/virtual.c index 2aa42bad53c..f3765b2e30c 100644 --- a/memory/virtual.c +++ b/memory/virtual.c @@ -416,7 +416,7 @@ BOOL32 VIRTUAL_Init(void) /*********************************************************************** * VirtualAlloc (KERNEL32.548) */ -LPVOID VirtualAlloc( LPVOID addr, DWORD size, DWORD type, DWORD protect ) +LPVOID WINAPI VirtualAlloc( LPVOID addr, DWORD size, DWORD type, DWORD protect) { FILE_VIEW *view; UINT32 base, ptr, view_size; @@ -517,7 +517,7 @@ LPVOID VirtualAlloc( LPVOID addr, DWORD size, DWORD type, DWORD protect ) /*********************************************************************** * VirtualFree (KERNEL32.550) */ -BOOL32 VirtualFree( LPVOID addr, DWORD size, DWORD type ) +BOOL32 WINAPI VirtualFree( LPVOID addr, DWORD size, DWORD type ) { FILE_VIEW *view; UINT32 base; @@ -567,7 +567,7 @@ BOOL32 VirtualFree( LPVOID addr, DWORD size, DWORD type ) /*********************************************************************** * VirtualLock (KERNEL32.551) */ -BOOL32 VirtualLock( LPVOID addr, DWORD size ) +BOOL32 WINAPI VirtualLock( LPVOID addr, DWORD size ) { return TRUE; } @@ -576,7 +576,7 @@ BOOL32 VirtualLock( LPVOID addr, DWORD size ) /*********************************************************************** * VirtualUnlock (KERNEL32.556) */ -BOOL32 VirtualUnlock( LPVOID addr, DWORD size ) +BOOL32 WINAPI VirtualUnlock( LPVOID addr, DWORD size ) { return TRUE; } @@ -585,8 +585,8 @@ BOOL32 VirtualUnlock( LPVOID addr, DWORD size ) /*********************************************************************** * VirtualProtect (KERNEL32.552) */ -BOOL32 VirtualProtect( LPVOID addr, DWORD size, DWORD new_prot, - LPDWORD old_prot ) +BOOL32 WINAPI VirtualProtect( LPVOID addr, DWORD size, DWORD new_prot, + LPDWORD old_prot ) { FILE_VIEW *view; UINT32 base, i; @@ -628,8 +628,8 @@ BOOL32 VirtualProtect( LPVOID addr, DWORD size, DWORD new_prot, /*********************************************************************** * VirtualProtectEx (KERNEL32.553) */ -BOOL32 VirtualProtectEx( HANDLE32 handle, LPVOID addr, DWORD size, - DWORD new_prot, LPDWORD old_prot ) +BOOL32 WINAPI VirtualProtectEx( HANDLE32 handle, LPVOID addr, DWORD size, + DWORD new_prot, LPDWORD old_prot ) { BOOL32 ret = FALSE; @@ -649,7 +649,8 @@ BOOL32 VirtualProtectEx( HANDLE32 handle, LPVOID addr, DWORD size, /*********************************************************************** * VirtualQuery (KERNEL32.554) */ -BOOL32 VirtualQuery( LPCVOID addr, LPMEMORY_BASIC_INFORMATION info, DWORD len ) +BOOL32 WINAPI VirtualQuery( LPCVOID addr, LPMEMORY_BASIC_INFORMATION info, + DWORD len ) { FILE_VIEW *view = VIRTUAL_FirstView; UINT32 base = ROUND_ADDR( addr ); @@ -710,8 +711,8 @@ BOOL32 VirtualQuery( LPCVOID addr, LPMEMORY_BASIC_INFORMATION info, DWORD len ) /*********************************************************************** * VirtualQueryEx (KERNEL32.555) */ -BOOL32 VirtualQueryEx( HANDLE32 handle, LPCVOID addr, - LPMEMORY_BASIC_INFORMATION info, DWORD len ) +BOOL32 WINAPI VirtualQueryEx( HANDLE32 handle, LPCVOID addr, + LPMEMORY_BASIC_INFORMATION info, DWORD len ) { BOOL32 ret = FALSE; @@ -731,7 +732,7 @@ BOOL32 VirtualQueryEx( HANDLE32 handle, LPCVOID addr, /*********************************************************************** * IsBadReadPtr32 (KERNEL32.354) */ -BOOL32 IsBadReadPtr32( LPCVOID ptr, UINT32 size ) +BOOL32 WINAPI IsBadReadPtr32( LPCVOID ptr, UINT32 size ) { return !VIRTUAL_CheckFlags( (UINT32)ptr, size, VPROT_READ | VPROT_COMMITTED ); @@ -741,7 +742,7 @@ BOOL32 IsBadReadPtr32( LPCVOID ptr, UINT32 size ) /*********************************************************************** * IsBadWritePtr32 (KERNEL32.357) */ -BOOL32 IsBadWritePtr32( LPVOID ptr, UINT32 size ) +BOOL32 WINAPI IsBadWritePtr32( LPVOID ptr, UINT32 size ) { return !VIRTUAL_CheckFlags( (UINT32)ptr, size, VPROT_WRITE | VPROT_COMMITTED ); @@ -751,7 +752,7 @@ BOOL32 IsBadWritePtr32( LPVOID ptr, UINT32 size ) /*********************************************************************** * IsBadHugeReadPtr32 (KERNEL32.352) */ -BOOL32 IsBadHugeReadPtr32( LPCVOID ptr, UINT32 size ) +BOOL32 WINAPI IsBadHugeReadPtr32( LPCVOID ptr, UINT32 size ) { return IsBadReadPtr32( ptr, size ); } @@ -760,7 +761,7 @@ BOOL32 IsBadHugeReadPtr32( LPCVOID ptr, UINT32 size ) /*********************************************************************** * IsBadHugeWritePtr32 (KERNEL32.353) */ -BOOL32 IsBadHugeWritePtr32( LPVOID ptr, UINT32 size ) +BOOL32 WINAPI IsBadHugeWritePtr32( LPVOID ptr, UINT32 size ) { return IsBadWritePtr32( ptr, size ); } @@ -769,7 +770,7 @@ BOOL32 IsBadHugeWritePtr32( LPVOID ptr, UINT32 size ) /*********************************************************************** * IsBadCodePtr32 (KERNEL32.351) */ -BOOL32 IsBadCodePtr32( FARPROC32 ptr ) +BOOL32 WINAPI IsBadCodePtr32( FARPROC32 ptr ) { return !VIRTUAL_CheckFlags( (UINT32)ptr, 1, VPROT_EXEC | VPROT_COMMITTED ); } @@ -778,7 +779,7 @@ BOOL32 IsBadCodePtr32( FARPROC32 ptr ) /*********************************************************************** * IsBadStringPtr32A (KERNEL32.355) */ -BOOL32 IsBadStringPtr32A( LPCSTR str, UINT32 max ) +BOOL32 WINAPI IsBadStringPtr32A( LPCSTR str, UINT32 max ) { FILE_VIEW *view; UINT32 page, count; @@ -806,7 +807,7 @@ BOOL32 IsBadStringPtr32A( LPCSTR str, UINT32 max ) /*********************************************************************** * IsBadStringPtr32W (KERNEL32.356) */ -BOOL32 IsBadStringPtr32W( LPCWSTR str, UINT32 max ) +BOOL32 WINAPI IsBadStringPtr32W( LPCWSTR str, UINT32 max ) { FILE_VIEW *view; UINT32 page, count; @@ -834,9 +835,9 @@ BOOL32 IsBadStringPtr32W( LPCWSTR str, UINT32 max ) /*********************************************************************** * CreateFileMapping32A (KERNEL32.46) */ -HANDLE32 CreateFileMapping32A( HFILE32 hFile, LPSECURITY_ATTRIBUTES attr, - DWORD protect, DWORD size_high, DWORD size_low, - LPCSTR name ) +HANDLE32 WINAPI CreateFileMapping32A(HFILE32 hFile, LPSECURITY_ATTRIBUTES attr, + DWORD protect, DWORD size_high, + DWORD size_low, LPCSTR name ) { FILE_MAPPING *mapping = NULL; HANDLE32 handle; @@ -930,9 +931,9 @@ error: /*********************************************************************** * CreateFileMapping32W (KERNEL32.47) */ -HANDLE32 CreateFileMapping32W( HFILE32 hFile, LPSECURITY_ATTRIBUTES attr, - DWORD protect, DWORD size_high, DWORD size_low, - LPCWSTR name ) +HANDLE32 WINAPI CreateFileMapping32W(HFILE32 hFile, LPSECURITY_ATTRIBUTES attr, + DWORD protect, DWORD size_high, + DWORD size_low, LPCWSTR name ) { LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name ); HANDLE32 ret = CreateFileMapping32A( hFile, attr, protect, @@ -945,7 +946,7 @@ HANDLE32 CreateFileMapping32W( HFILE32 hFile, LPSECURITY_ATTRIBUTES attr, /*********************************************************************** * OpenFileMapping32A (KERNEL32.397) */ -HANDLE32 OpenFileMapping32A( DWORD access, BOOL32 inherit, LPCSTR name ) +HANDLE32 WINAPI OpenFileMapping32A( DWORD access, BOOL32 inherit, LPCSTR name ) { K32OBJ *obj = K32OBJ_FindNameType( name, K32OBJ_MEM_MAPPED_FILE ); if (!obj) return 0; @@ -956,7 +957,7 @@ HANDLE32 OpenFileMapping32A( DWORD access, BOOL32 inherit, LPCSTR name ) /*********************************************************************** * OpenFileMapping32W (KERNEL32.398) */ -HANDLE32 OpenFileMapping32W( DWORD access, BOOL32 inherit, LPCWSTR name ) +HANDLE32 WINAPI OpenFileMapping32W( DWORD access, BOOL32 inherit, LPCWSTR name) { LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name ); HANDLE32 ret = OpenFileMapping32A( access, inherit, nameA ); @@ -984,8 +985,8 @@ void VIRTUAL_DestroyMapping( K32OBJ *ptr ) /*********************************************************************** * MapViewOfFile (KERNEL32.385) */ -LPVOID MapViewOfFile( HANDLE32 mapping, DWORD access, DWORD offset_high, - DWORD offset_low, DWORD count ) +LPVOID WINAPI MapViewOfFile( HANDLE32 mapping, DWORD access, DWORD offset_high, + DWORD offset_low, DWORD count ) { return MapViewOfFileEx( mapping, access, offset_high, offset_low, count, NULL ); @@ -995,8 +996,8 @@ LPVOID MapViewOfFile( HANDLE32 mapping, DWORD access, DWORD offset_high, /*********************************************************************** * MapViewOfFileEx (KERNEL32.386) */ -LPVOID MapViewOfFileEx( HANDLE32 handle, DWORD access, DWORD offset_high, - DWORD offset_low, DWORD count, LPVOID addr ) +LPVOID WINAPI MapViewOfFileEx(HANDLE32 handle, DWORD access, DWORD offset_high, + DWORD offset_low, DWORD count, LPVOID addr ) { FILE_MAPPING *mapping; FILE_VIEW *view; @@ -1082,7 +1083,7 @@ error: /*********************************************************************** * UnmapViewOfFile (KERNEL32.540) */ -BOOL32 UnmapViewOfFile( LPVOID addr ) +BOOL32 WINAPI UnmapViewOfFile( LPVOID addr ) { FILE_VIEW *view; UINT32 base = ROUND_ADDR( addr ); diff --git a/misc/Makefile.in b/misc/Makefile.in index 86770446adb..92dc1c318ff 100644 --- a/misc/Makefile.in +++ b/misc/Makefile.in @@ -36,7 +36,7 @@ C_SRCS = \ ver.c \ w32sys.c \ winsock.c \ - winsock_async.c \ + winsock_dns.c \ wsprintf.c \ xmalloc.c diff --git a/misc/comm.c b/misc/comm.c index d119200ee39..f23666fc9f2 100644 --- a/misc/comm.c +++ b/misc/comm.c @@ -21,7 +21,7 @@ #include #include #include -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__svr4__) #include #endif #include @@ -148,7 +148,7 @@ int WinError(void) /************************************************************************** * BuildCommDCB (USER.213) */ -BOOL16 BuildCommDCB16(LPCSTR device, LPDCB16 lpdcb) +BOOL16 WINAPI BuildCommDCB16(LPCSTR device, LPDCB16 lpdcb) { /* "COM1:9600,n,8,1" */ /* 012345 */ @@ -173,6 +173,8 @@ BOOL16 BuildCommDCB16(LPCSTR device, LPDCB16 lpdcb) return -1; } + memset(lpdcb, 0, sizeof(DCB16)); /* initialize */ + if (!COM[port].fd) { OpenComm(device, 0, 0); } @@ -243,14 +245,17 @@ BOOL16 BuildCommDCB16(LPCSTR device, LPDCB16 lpdcb) /************************************************************************** * BuildCommDCBA (KERNEL32.14) */ -BOOL32 BuildCommDCB32A(LPCSTR device,LPDCB32 lpdcb) { +BOOL32 WINAPI BuildCommDCB32A(LPCSTR device,LPDCB32 lpdcb) +{ return BuildCommDCBAndTimeouts32A(device,lpdcb,NULL); } /************************************************************************** * BuildCommDCBAndTimeoutsA (KERNEL32.15) */ -BOOL32 BuildCommDCBAndTimeouts32A(LPCSTR device, LPDCB32 lpdcb,LPCOMMTIMEOUTS lptimeouts) { +BOOL32 WINAPI BuildCommDCBAndTimeouts32A(LPCSTR device, LPDCB32 lpdcb, + LPCOMMTIMEOUTS lptimeouts) +{ int port; char *ptr,*temp; @@ -270,6 +275,9 @@ BOOL32 BuildCommDCBAndTimeouts32A(LPCSTR device, LPDCB32 lpdcb,LPCOMMTIMEOUTS lp temp=(LPSTR)(device+5); } else temp=(LPSTR)device; + + memset(lpdcb, 0, sizeof(DCB32)); /* initialize */ + lpdcb->DCBlength = sizeof(DCB32); if (strchr(temp,',')) { /* old style */ DCB16 dcb16; @@ -372,9 +380,9 @@ BOOL32 BuildCommDCBAndTimeouts32A(LPCSTR device, LPDCB32 lpdcb,LPCOMMTIMEOUTS lp /************************************************************************** * BuildCommDCBAndTimeoutsW (KERNEL32.16) */ -BOOL32 BuildCommDCBAndTimeouts32W( - LPCWSTR devid,LPDCB32 lpdcb,LPCOMMTIMEOUTS lptimeouts -) { +BOOL32 WINAPI BuildCommDCBAndTimeouts32W( LPCWSTR devid, LPDCB32 lpdcb, + LPCOMMTIMEOUTS lptimeouts ) +{ LPSTR devidA; BOOL32 ret; @@ -388,14 +396,15 @@ BOOL32 BuildCommDCBAndTimeouts32W( /************************************************************************** * BuildCommDCBW (KERNEL32.17) */ -BOOL32 BuildCommDCB32W(LPCWSTR devid,LPDCB32 lpdcb) { +BOOL32 WINAPI BuildCommDCB32W(LPCWSTR devid,LPDCB32 lpdcb) +{ return BuildCommDCBAndTimeouts32W(devid,lpdcb,NULL); } /***************************************************************************** * OpenComm (USER.200) */ -INT16 OpenComm(LPCSTR device,UINT16 cbInQueue,UINT16 cbOutQueue) +INT16 WINAPI OpenComm(LPCSTR device,UINT16 cbInQueue,UINT16 cbOutQueue) { int port,fd; @@ -459,7 +468,7 @@ INT16 OpenComm(LPCSTR device,UINT16 cbInQueue,UINT16 cbOutQueue) /***************************************************************************** * CloseComm (USER.207) */ -INT16 CloseComm(INT16 fd) +INT16 WINAPI CloseComm(INT16 fd) { struct DosDeviceStruct *ptr; @@ -483,7 +492,7 @@ INT16 CloseComm(INT16 fd) /***************************************************************************** * SetCommBreak (USER.210) */ -INT16 SetCommBreak16(INT16 fd) +INT16 WINAPI SetCommBreak16(INT16 fd) { struct DosDeviceStruct *ptr; @@ -501,7 +510,7 @@ INT16 SetCommBreak16(INT16 fd) /***************************************************************************** * SetCommBreak (KERNEL32.449) */ -BOOL32 SetCommBreak32(INT32 fd) +BOOL32 WINAPI SetCommBreak32(INT32 fd) { struct DosDeviceStruct *ptr; @@ -520,7 +529,7 @@ BOOL32 SetCommBreak32(INT32 fd) /***************************************************************************** * ClearCommBreak (USER.211) */ -INT16 ClearCommBreak16(INT16 fd) +INT16 WINAPI ClearCommBreak16(INT16 fd) { struct DosDeviceStruct *ptr; @@ -538,7 +547,7 @@ INT16 ClearCommBreak16(INT16 fd) /***************************************************************************** * ClearCommBreak (KERNEL32.20) */ -BOOL32 ClearCommBreak32(INT32 fd) +BOOL32 WINAPI ClearCommBreak32(INT32 fd) { struct DosDeviceStruct *ptr; @@ -556,7 +565,7 @@ BOOL32 ClearCommBreak32(INT32 fd) /***************************************************************************** * EscapeCommFunction (USER.214) */ -LONG EscapeCommFunction16(UINT16 fd,UINT16 nFunction) +LONG WINAPI EscapeCommFunction16(UINT16 fd,UINT16 nFunction) { int max; struct termios port; @@ -632,7 +641,7 @@ LONG EscapeCommFunction16(UINT16 fd,UINT16 nFunction) /***************************************************************************** * EscapeCommFunction (KERNEL32.214) */ -BOOL32 EscapeCommFunction32(INT32 fd,UINT32 nFunction) +BOOL32 WINAPI EscapeCommFunction32(INT32 fd,UINT32 nFunction) { struct termios port; struct DosDeviceStruct *ptr; @@ -705,7 +714,7 @@ BOOL32 EscapeCommFunction32(INT32 fd,UINT32 nFunction) /***************************************************************************** * FlushComm (USER.215) */ -INT16 FlushComm(INT16 fd,INT16 fnQueue) +INT16 WINAPI FlushComm(INT16 fd,INT16 fnQueue) { int queue; @@ -720,7 +729,7 @@ INT16 FlushComm(INT16 fd,INT16 fnQueue) fd, fnQueue); return -1; } - if (tcflush(fd, fnQueue)) { + if (tcflush(fd, queue)) { commerror = WinError(); return -1; } else { @@ -732,7 +741,7 @@ INT16 FlushComm(INT16 fd,INT16 fnQueue) /***************************************************************************** * GetCommError (USER.203) */ -INT16 GetCommError(INT16 fd,LPCOMSTAT lpStat) +INT16 WINAPI GetCommError(INT16 fd,LPCOMSTAT lpStat) { int temperror; unsigned long cnt; @@ -771,7 +780,7 @@ INT16 GetCommError(INT16 fd,LPCOMSTAT lpStat) /***************************************************************************** * ClearCommError (KERNEL32.21) */ -BOOL32 ClearCommError(INT32 fd,LPDWORD errors,LPCOMSTAT lpStat) +BOOL32 WINAPI ClearCommError(INT32 fd,LPDWORD errors,LPCOMSTAT lpStat) { int temperror; @@ -785,7 +794,7 @@ BOOL32 ClearCommError(INT32 fd,LPDWORD errors,LPCOMSTAT lpStat) /***************************************************************************** * SetCommEventMask (USER.208) */ -UINT16 *SetCommEventMask(INT16 fd,UINT16 fuEvtMask) +UINT16* WINAPI SetCommEventMask(INT16 fd,UINT16 fuEvtMask) { dprintf_comm(stddeb,"SetCommEventMask:fd %d,mask %d\n",fd,fuEvtMask); eventmask |= fuEvtMask; @@ -795,7 +804,7 @@ UINT16 *SetCommEventMask(INT16 fd,UINT16 fuEvtMask) /***************************************************************************** * GetCommEventMask (USER.209) */ -UINT16 GetCommEventMask(INT16 fd,UINT16 fnEvtClear) +UINT16 WINAPI GetCommEventMask(INT16 fd,UINT16 fnEvtClear) { int events = 0; @@ -839,7 +848,7 @@ UINT16 GetCommEventMask(INT16 fd,UINT16 fnEvtClear) /***************************************************************************** * GetCommMask (KERNEL32.156) */ -BOOL32 GetCommMask(INT32 fd,LPDWORD evtmask) +BOOL32 WINAPI GetCommMask(INT32 fd,LPDWORD evtmask) { dprintf_comm(stddeb, "GetCommMask: fd %d, mask %p\n", fd, evtmask); @@ -850,7 +859,7 @@ BOOL32 GetCommMask(INT32 fd,LPDWORD evtmask) /***************************************************************************** * SetCommMask (KERNEL32.451) */ -BOOL32 SetCommMask(INT32 fd,DWORD evtmask) +BOOL32 WINAPI SetCommMask(INT32 fd,DWORD evtmask) { dprintf_comm(stddeb, "SetCommMask: fd %d, mask %lx\n", fd, evtmask); @@ -861,7 +870,7 @@ BOOL32 SetCommMask(INT32 fd,DWORD evtmask) /***************************************************************************** * SetCommState16 (USER.201) */ -INT16 SetCommState16(LPDCB16 lpdcb) +INT16 WINAPI SetCommState16(LPDCB16 lpdcb) { struct termios port; struct DosDeviceStruct *ptr; @@ -1048,8 +1057,12 @@ INT16 SetCommState16(LPDCB16 lpdcb) #endif if (lpdcb->fInX) port.c_iflag |= IXON; + else + port.c_iflag &= ~IXON; if (lpdcb->fOutX) port.c_iflag |= IXOFF; + else + port.c_iflag &= ~IXOFF; if (tcsetattr(lpdcb->Id, TCSADRAIN, &port) == -1) { commerror = WinError(); @@ -1063,7 +1076,7 @@ INT16 SetCommState16(LPDCB16 lpdcb) /***************************************************************************** * SetCommState32 (KERNEL32.452) */ -BOOL32 SetCommState32(INT32 fd,LPDCB32 lpdcb) +BOOL32 WINAPI SetCommState32(INT32 fd,LPDCB32 lpdcb) { struct termios port; struct DosDeviceStruct *ptr; @@ -1251,8 +1264,12 @@ BOOL32 SetCommState32(INT32 fd,LPDCB32 lpdcb) #endif if (lpdcb->fInX) port.c_iflag |= IXON; + else + port.c_iflag &= ~IXON; if (lpdcb->fOutX) port.c_iflag |= IXOFF; + else + port.c_iflag &= ~IXOFF; if (tcsetattr(fd,TCSADRAIN,&port)==-1) { commerror = WinError(); @@ -1267,7 +1284,7 @@ BOOL32 SetCommState32(INT32 fd,LPDCB32 lpdcb) /***************************************************************************** * GetCommState (USER.202) */ -INT16 GetCommState16(INT16 fd, LPDCB16 lpdcb) +INT16 WINAPI GetCommState16(INT16 fd, LPDCB16 lpdcb) { struct termios port; @@ -1386,7 +1403,7 @@ INT16 GetCommState16(INT16 fd, LPDCB16 lpdcb) /***************************************************************************** * GetCommState (KERNEL32.159) */ -BOOL32 GetCommState32(INT32 fd, LPDCB32 lpdcb) +BOOL32 WINAPI GetCommState32(INT32 fd, LPDCB32 lpdcb) { struct termios port; @@ -1502,7 +1519,7 @@ BOOL32 GetCommState32(INT32 fd, LPDCB32 lpdcb) /***************************************************************************** * TransmitCommChar (USER.206) */ -INT16 TransmitCommChar16(INT16 fd,CHAR chTransmit) +INT16 WINAPI TransmitCommChar16(INT16 fd,CHAR chTransmit) { struct DosDeviceStruct *ptr; @@ -1530,7 +1547,7 @@ INT16 TransmitCommChar16(INT16 fd,CHAR chTransmit) /***************************************************************************** * TransmitCommChar (KERNEL32.535) */ -BOOL32 TransmitCommChar32(INT32 fd,CHAR chTransmit) +BOOL32 WINAPI TransmitCommChar32(INT32 fd,CHAR chTransmit) { struct DosDeviceStruct *ptr; @@ -1556,7 +1573,7 @@ BOOL32 TransmitCommChar32(INT32 fd,CHAR chTransmit) /***************************************************************************** * UngetCommChar (USER.212) */ -INT16 UngetCommChar(INT16 fd,CHAR chUnget) +INT16 WINAPI UngetCommChar(INT16 fd,CHAR chUnget) { struct DosDeviceStruct *ptr; @@ -1580,7 +1597,7 @@ INT16 UngetCommChar(INT16 fd,CHAR chUnget) /***************************************************************************** * ReadComm (USER.204) */ -INT16 ReadComm(INT16 fd,LPSTR lpvBuf,INT16 cbRead) +INT16 WINAPI ReadComm(INT16 fd,LPSTR lpvBuf,INT16 cbRead) { int status, length; struct DosDeviceStruct *ptr; @@ -1625,7 +1642,7 @@ INT16 ReadComm(INT16 fd,LPSTR lpvBuf,INT16 cbRead) /***************************************************************************** * WriteComm (USER.205) */ -INT16 WriteComm(INT16 fd, LPSTR lpvBuf, INT16 cbWrite) +INT16 WINAPI WriteComm(INT16 fd, LPSTR lpvBuf, INT16 cbWrite) { int x, length; struct DosDeviceStruct *ptr; @@ -1660,7 +1677,8 @@ INT16 WriteComm(INT16 fd, LPSTR lpvBuf, INT16 cbWrite) /***************************************************************************** * GetCommTimeouts (KERNEL32.160) */ -BOOL32 GetCommTimeouts(INT32 fd,LPCOMMTIMEOUTS lptimeouts) { +BOOL32 WINAPI GetCommTimeouts(INT32 fd,LPCOMMTIMEOUTS lptimeouts) +{ fprintf(stderr,"GetCommTimeouts(%x,%p), empty stub.\n", fd,lptimeouts ); @@ -1670,7 +1688,7 @@ BOOL32 GetCommTimeouts(INT32 fd,LPCOMMTIMEOUTS lptimeouts) { /***************************************************************************** * SetCommTimeouts (KERNEL32.453) */ -BOOL32 SetCommTimeouts(INT32 fd,LPCOMMTIMEOUTS lptimeouts) { +BOOL32 WINAPI SetCommTimeouts(INT32 fd,LPCOMMTIMEOUTS lptimeouts) { fprintf(stderr,"SetCommTimeouts(%x,%p), empty stub.\n", fd,lptimeouts ); @@ -1680,8 +1698,8 @@ BOOL32 SetCommTimeouts(INT32 fd,LPCOMMTIMEOUTS lptimeouts) { /*********************************************************************** * EnableCommNotification (USER.246) */ -BOOL16 EnableCommNotification( INT16 fd, HWND16 hwnd, INT16 cbWriteNotify, - INT16 cbOutQueue ) +BOOL16 WINAPI EnableCommNotification( INT16 fd, HWND16 hwnd, + INT16 cbWriteNotify, INT16 cbOutQueue ) { fprintf(stderr, "EnableCommNotification(%d, %x, %d, %d), empty stub.\n", fd, hwnd, cbWriteNotify, cbOutQueue); return TRUE; diff --git a/misc/commdlg.c b/misc/commdlg.c index 4a4af0b63c1..34f91a79dbf 100644 --- a/misc/commdlg.c +++ b/misc/commdlg.c @@ -56,7 +56,7 @@ static BOOL32 FileDlg_Init() /*********************************************************************** * GetOpenFileName (COMMDLG.1) */ -BOOL16 GetOpenFileName16( SEGPTR ofn ) +BOOL16 WINAPI GetOpenFileName16( SEGPTR ofn ) { HINSTANCE16 hInst; HANDLE32 hDlgTmpl = 0, hResInfo; @@ -146,7 +146,7 @@ BOOL16 GetOpenFileName16( SEGPTR ofn ) /*********************************************************************** * GetSaveFileName (COMMDLG.2) */ -BOOL16 GetSaveFileName16( SEGPTR ofn) +BOOL16 WINAPI GetSaveFileName16( SEGPTR ofn) { HINSTANCE16 hInst; HANDLE32 hDlgTmpl = 0; @@ -296,7 +296,7 @@ static LPSTR FILEDLG_GetFileType(LPSTR cfptr, LPSTR fptr, WORD index) return fptr; fptr += strlen(fptr) + 1; } - return NULL; + return "*.*"; /* FIXME */ } /*********************************************************************** @@ -417,22 +417,51 @@ static int FILEDLG_HookCallChk(LPOPENFILENAME16 lpofn) return 0; } +/*********************************************************************** + * FILEDLG_CallWindowProc [internal] + * + * Adapt the structures back for win32 calls so the callee can read lpCustData + */ static BOOL32 FILEDLG_CallWindowProc(LPOPENFILENAME16 lpofn,HWND32 hwnd, UINT32 wMsg,WPARAM32 wParam,LPARAM lParam + ) { + BOOL32 needstruct; + + needstruct = (PTR_SEG_TO_LIN(lParam) == lpofn); + if (!(lpofn->Flags & OFN_WINE32)) return (BOOL32)CallWindowProc16( lpofn->lpfnHook,hwnd,(UINT16)wMsg,(WPARAM16)wParam,lParam ); /* |OFN_WINE32 */ - if (lpofn->Flags & OFN_UNICODE) - return (BOOL32)CallWindowProc32W( + if (lpofn->Flags & OFN_UNICODE) { + if (needstruct) { + OPENFILENAME32W ofnw; + + /* FIXME: probably needs more converted */ + ofnw.lCustData = lpofn->lCustData; + return (BOOL32)CallWindowProc32W( + (WNDPROC32)lpofn->lpfnHook,hwnd,wMsg,wParam,(LPARAM)&ofnw + ); + } else + return (BOOL32)CallWindowProc32W( + (WNDPROC32)lpofn->lpfnHook,hwnd,wMsg,wParam,lParam + ); + } + /* ! |OFN_UNICODE */ + if (needstruct) { + OPENFILENAME32A ofna; + + /* FIXME: probably needs more converted */ + ofna.lCustData = lpofn->lCustData; + return (BOOL32)CallWindowProc32A( + (WNDPROC32)lpofn->lpfnHook,hwnd,wMsg,wParam,(LPARAM)&ofna + ); + } else + return (BOOL32)CallWindowProc32A( (WNDPROC32)lpofn->lpfnHook,hwnd,wMsg,wParam,lParam ); - /* ! |OFN_UNICODE */ - return (BOOL32)CallWindowProc32A( - (WNDPROC32)lpofn->lpfnHook,hwnd,wMsg,wParam,lParam - ); } @@ -718,7 +747,8 @@ static LRESULT FILEDLG_WMCommand(HWND16 hWnd, WPARAM16 wParam, LPARAM lParam) /*********************************************************************** * FileOpenDlgProc (COMMDLG.6) */ -LRESULT FileOpenDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI FileOpenDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, + LPARAM lParam) { LPOPENFILENAME16 lpofn = (LPOPENFILENAME16)PTR_SEG_TO_LIN(GetWindowLong32A(hWnd, DWL_USER)); @@ -761,7 +791,8 @@ LRESULT FileOpenDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam /*********************************************************************** * FileSaveDlgProc (COMMDLG.7) */ -LRESULT FileSaveDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI FileSaveDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, + LPARAM lParam) { LPOPENFILENAME16 lpofn = (LPOPENFILENAME16)PTR_SEG_TO_LIN(GetWindowLong32A(hWnd, DWL_USER)); @@ -808,7 +839,7 @@ LRESULT FileSaveDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam /*********************************************************************** * FindTextDlg (COMMDLG.11) */ -HWND16 FindText( SEGPTR find ) +HWND16 WINAPI FindText( SEGPTR find ) { HANDLE16 hInst; LPCVOID ptr; @@ -833,7 +864,7 @@ HWND16 FindText( SEGPTR find ) /*********************************************************************** * ReplaceText (COMMDLG.12) */ -HWND16 ReplaceText( SEGPTR find ) +HWND16 WINAPI ReplaceText( SEGPTR find ) { HANDLE16 hInst; LPCVOID ptr; @@ -946,7 +977,8 @@ static LRESULT FINDDLG_WMCommand(HWND16 hWnd, WPARAM16 wParam, LPARAM lParam) /*********************************************************************** * FindTextDlgProc (COMMDLG.13) */ -LRESULT FindTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI FindTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, + LPARAM lParam) { switch (wMsg) { case WM_INITDIALOG: @@ -1066,7 +1098,8 @@ static LRESULT REPLACEDLG_WMCommand(HWND16 hWnd, WPARAM16 wParam, LPARAM lParam) /*********************************************************************** * ReplaceTextDlgProc (COMMDLG.14) */ -LRESULT ReplaceTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI ReplaceTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, + LPARAM lParam) { switch (wMsg) { case WM_INITDIALOG: @@ -1081,7 +1114,7 @@ LRESULT ReplaceTextDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lPa /*********************************************************************** * PrintDlg (COMMDLG.20) */ -BOOL16 PrintDlg( SEGPTR printdlg ) +BOOL16 WINAPI PrintDlg( SEGPTR printdlg ) { HANDLE16 hInst; BOOL16 bRet = FALSE; @@ -1115,7 +1148,8 @@ BOOL16 PrintDlg( SEGPTR printdlg ) /*********************************************************************** * PrintDlgProc (COMMDLG.21) */ -LRESULT PrintDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI PrintDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, + LPARAM lParam) { switch (wMsg) { @@ -1142,7 +1176,8 @@ LRESULT PrintDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam) /*********************************************************************** * PrintSetupDlgProc (COMMDLG.22) */ -LRESULT PrintSetupDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI PrintSetupDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, + LPARAM lParam) { switch (wMsg) { @@ -1168,7 +1203,7 @@ LRESULT PrintSetupDlgProc(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lPar /*********************************************************************** * CommDlgExtendedError (COMMDLG.26) */ -DWORD CommDlgExtendedError(void) +DWORD WINAPI CommDlgExtendedError(void) { return CommDlgLastError; } @@ -1176,7 +1211,7 @@ DWORD CommDlgExtendedError(void) /*********************************************************************** * GetFileTitleA (COMDLG32.8) */ -short GetFileTitle32A(LPCSTR lpFile, LPSTR lpTitle, UINT32 cbBuf) +short WINAPI GetFileTitle32A(LPCSTR lpFile, LPSTR lpTitle, UINT32 cbBuf) { int i, len; dprintf_commdlg(stddeb,"GetFileTitle(%p %p %d); \n", lpFile, lpTitle, cbBuf); @@ -1210,7 +1245,7 @@ short GetFileTitle32A(LPCSTR lpFile, LPSTR lpTitle, UINT32 cbBuf) /*********************************************************************** * GetFileTitleA (COMDLG32.8) */ -short GetFileTitle32W(LPCWSTR lpFile, LPWSTR lpTitle, UINT32 cbBuf) +short WINAPI GetFileTitle32W(LPCWSTR lpFile, LPWSTR lpTitle, UINT32 cbBuf) { LPSTR file = HEAP_strdupWtoA(GetProcessHeap(),0,lpFile); LPSTR title = HeapAlloc(GetProcessHeap(),0,cbBuf); @@ -1226,7 +1261,8 @@ short GetFileTitle32W(LPCWSTR lpFile, LPWSTR lpTitle, UINT32 cbBuf) /*********************************************************************** * GetFileTitle (COMMDLG.27) */ -short GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf) { +short WINAPI GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf) +{ return GetFileTitle32A(lpFile,lpTitle,cbBuf); } @@ -1236,7 +1272,7 @@ short GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf) { /*********************************************************************** * ChooseColor (COMMDLG.5) */ -BOOL16 ChooseColor(LPCHOOSECOLOR lpChCol) +BOOL16 WINAPI ChooseColor(LPCHOOSECOLOR lpChCol) { HINSTANCE16 hInst; HANDLE16 hDlgTmpl = 0; @@ -2272,8 +2308,8 @@ static LRESULT CC_WMLButtonDown(HWND16 hDlg, WPARAM16 wParam, LPARAM lParam) /*********************************************************************** * ColorDlgProc (COMMDLG.8) */ -LRESULT ColorDlgProc(HWND16 hDlg, UINT16 message, - WPARAM16 wParam, LONG lParam) +LRESULT WINAPI ColorDlgProc(HWND16 hDlg, UINT16 message, + WPARAM16 wParam, LONG lParam) { int res; struct CCPRIVATE * lpp=(struct CCPRIVATE *)GetWindowLong32A(hDlg, DWL_USER); @@ -2331,7 +2367,7 @@ LRESULT ColorDlgProc(HWND16 hDlg, UINT16 message, /*********************************************************************** * ChooseFont (COMMDLG.15) */ -BOOL16 ChooseFont(LPCHOOSEFONT lpChFont) +BOOL16 WINAPI ChooseFont(LPCHOOSEFONT lpChFont) { HINSTANCE16 hInst; HANDLE16 hDlgTmpl = 0; @@ -2411,8 +2447,8 @@ static BOOL32 CFn_HookCallChk(LPCHOOSEFONT lpcf) /*********************************************************************** * FontFamilyEnumProc (COMMDLG.19) */ -INT16 FontFamilyEnumProc( SEGPTR logfont, SEGPTR metrics, - UINT16 nFontType, LPARAM lParam ) +INT16 WINAPI FontFamilyEnumProc( SEGPTR logfont, SEGPTR metrics, + UINT16 nFontType, LPARAM lParam ) { int i; WORD w; @@ -2529,8 +2565,8 @@ static int SetFontSizesToCombo3(HWND16 hwnd, LPLOGFONT16 lplf, LPCHOOSEFONT lpcf /*********************************************************************** * FontStyleEnumProc (COMMDLG.18) */ -INT16 FontStyleEnumProc( SEGPTR logfont, SEGPTR metrics, - UINT16 nFontType, LPARAM lParam ) +INT16 WINAPI FontStyleEnumProc( SEGPTR logfont, SEGPTR metrics, + UINT16 nFontType, LPARAM lParam ) { HWND16 hcmb2=LOWORD(lParam); HWND16 hcmb3=HIWORD(lParam); @@ -2947,7 +2983,8 @@ LRESULT CFn_WMCommand(HWND16 hDlg, WPARAM16 wParam, LPARAM lParam) 2. some CF_.. flags are not supported 3. some TType extensions */ -LRESULT FormatCharDlgProc(HWND16 hDlg, UINT16 message, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI FormatCharDlgProc(HWND16 hDlg, UINT16 message, WPARAM16 wParam, + LPARAM lParam) { LPCHOOSEFONT lpcf=(LPCHOOSEFONT)GetWindowLong32A(hDlg, DWL_USER); if (message!=WM_INITDIALOG) @@ -2983,7 +3020,7 @@ LRESULT FormatCharDlgProc(HWND16 hDlg, UINT16 message, WPARAM16 wParam, LPARAM l #define GET_XXX_FILENAME(xxx) \ -BOOL32 xxx##32A( LPOPENFILENAME32A ofn ) \ +BOOL32 WINAPI xxx##32A( LPOPENFILENAME32A ofn ) \ { \ BOOL16 ret; \ LPOPENFILENAME16 ofn16 = SEGPTR_ALLOC(sizeof(OPENFILENAME16)); \ @@ -3062,7 +3099,7 @@ BOOL32 xxx##32A( LPOPENFILENAME32A ofn ) \ return ret; \ } \ \ -BOOL32 xxx##32W( LPOPENFILENAME32W ofn ) \ +BOOL32 WINAPI xxx##32W( LPOPENFILENAME32W ofn ) \ { \ BOOL16 ret; \ LPOPENFILENAME16 ofn16 = SEGPTR_ALLOC(sizeof(OPENFILENAME16)); \ diff --git a/misc/compobj.c b/misc/compobj.c index 45decf8c455..6fa4010f8cd 100644 --- a/misc/compobj.c +++ b/misc/compobj.c @@ -21,7 +21,7 @@ DWORD currentMalloc=0; /*********************************************************************** * CoBuildVersion [COMPOBJ.1] */ -DWORD CoBuildVersion() +DWORD WINAPI CoBuildVersion() { dprintf_ole(stddeb,"CoBuildVersion()\n"); return (rmm<<16)+rup; @@ -31,7 +31,7 @@ DWORD CoBuildVersion() * CoInitialize [COMPOBJ.2] * lpReserved is an IMalloc pointer in 16bit OLE. We just stored it as-is. */ -HRESULT CoInitialize(DWORD lpReserved) +HRESULT WINAPI CoInitialize(DWORD lpReserved) { dprintf_ole(stdnimp,"CoInitialize\n"); /* remember the LPMALLOC, maybe somebody wants to read it later on */ @@ -42,7 +42,7 @@ HRESULT CoInitialize(DWORD lpReserved) /*********************************************************************** * CoUnitialize [COMPOBJ.3] */ -void CoUnitialize() +void WINAPI CoUnitialize() { dprintf_ole(stdnimp,"CoUnitialize()\n"); } @@ -50,7 +50,7 @@ void CoUnitialize() /*********************************************************************** * CoGetMalloc [COMPOBJ.4] */ -HRESULT CoGetMalloc(DWORD dwMemContext, DWORD * lpMalloc) +HRESULT WINAPI CoGetMalloc(DWORD dwMemContext, DWORD * lpMalloc) { if(currentMalloc) { @@ -65,7 +65,7 @@ HRESULT CoGetMalloc(DWORD dwMemContext, DWORD * lpMalloc) /*********************************************************************** * CoDisconnectObject */ -OLESTATUS CoDisconnectObject( LPUNKNOWN lpUnk, DWORD reserved ) +OLESTATUS WINAPI CoDisconnectObject( LPUNKNOWN lpUnk, DWORD reserved ) { dprintf_ole(stdnimp,"CoDisconnectObject:%p %lx\n",lpUnk,reserved); return OLE_OK; @@ -77,8 +77,7 @@ OLESTATUS CoDisconnectObject( LPUNKNOWN lpUnk, DWORD reserved ) /* Class id: DWORD-WORD-WORD-BYTES[2]-BYTES[6] */ -OLESTATUS -CLSIDFromString(const LPCSTR idstr, CLSID *id) +OLESTATUS WINAPI CLSIDFromString(const LPCSTR idstr, CLSID *id) { BYTE *s = (BYTE *) idstr; BYTE *p; @@ -146,8 +145,7 @@ CLSIDFromString(const LPCSTR idstr, CLSID *id) * CLSIDFromString [COMPOBJ.19] */ -OLESTATUS -StringFromCLSID(const CLSID *id, LPSTR idstr) +OLESTATUS WINAPI StringFromCLSID(const CLSID *id, LPSTR idstr) { static const char *hex = "0123456789ABCDEF"; char *s; diff --git a/misc/cpu.c b/misc/cpu.c index d30032fe030..9fd96cb496e 100644 --- a/misc/cpu.c +++ b/misc/cpu.c @@ -10,8 +10,7 @@ #include #include "windows.h" -VOID -GetSystemInfo(LPSYSTEM_INFO si) +VOID WINAPI GetSystemInfo(LPSYSTEM_INFO si) { static int cache = 0; static SYSTEM_INFO cachedsi; diff --git a/misc/crtdll.c b/misc/crtdll.c index 0015d92dc88..707e47936f4 100644 --- a/misc/crtdll.c +++ b/misc/crtdll.c @@ -284,6 +284,7 @@ float CRTDLL_atof(LPCSTR x) */ INT32 CRTDLL_atoi(LPCSTR x) { + if (!x) return 0; return atoi(x); } @@ -293,6 +294,7 @@ INT32 CRTDLL_atoi(LPCSTR x) */ LONG CRTDLL_atol(LPCSTR x) { + if (!x) return 0; return atol(x); } @@ -498,7 +500,7 @@ float CRTDLL_sinh(float x) /********************************************************************* * sqrt (CRTDLL.459) */ -float CRTDLL_sqrt(float x) +double CRTDLL_sqrt(double x) { return sqrt(x); } diff --git a/misc/error.c b/misc/error.c index f4f2837c83b..fc2e12483c8 100644 --- a/misc/error.c +++ b/misc/error.c @@ -147,7 +147,8 @@ static const char *GetParamErrorString(UINT16 uErr) { /*********************************************************************** * LogError (KERNEL.324) */ -VOID LogError(UINT16 uErr, LPVOID lpvInfo) { +VOID WINAPI LogError(UINT16 uErr, LPVOID lpvInfo) +{ fprintf(stddeb, "LogError(%s, %p)\n", GetErrorString(uErr), lpvInfo); } @@ -156,7 +157,8 @@ VOID LogError(UINT16 uErr, LPVOID lpvInfo) { /*********************************************************************** * LogParamError (KERNEL.325) */ -void LogParamError(UINT16 uErr, FARPROC16 lpfn, LPVOID lpvParam) { +void WINAPI LogParamError(UINT16 uErr, FARPROC16 lpfn, LPVOID lpvParam) +{ /* FIXME: is it possible to get the module name/function * from the lpfn param? */ diff --git a/misc/lstr.c b/misc/lstr.c index 7228e67deb7..64190c3f55d 100644 --- a/misc/lstr.c +++ b/misc/lstr.c @@ -26,25 +26,25 @@ /* Funny to divide them between user and kernel. */ /* IsCharAlpha USER 433 */ -BOOL16 IsCharAlpha16(CHAR ch) +BOOL16 WINAPI IsCharAlpha16(CHAR ch) { return isalpha(ch); /* This is probably not right for NLS */ } /* IsCharAlphanumeric USER 434 */ -BOOL16 IsCharAlphanumeric16(CHAR ch) +BOOL16 WINAPI IsCharAlphaNumeric16(CHAR ch) { return isalnum(ch); } /* IsCharUpper USER 435 */ -BOOL16 IsCharUpper16(CHAR ch) +BOOL16 WINAPI IsCharUpper16(CHAR ch) { return isupper(ch); } /* IsCharLower USER 436 */ -BOOL16 IsCharLower16(CHAR ch) +BOOL16 WINAPI IsCharLower16(CHAR ch) { return islower(ch); } @@ -52,7 +52,7 @@ BOOL16 IsCharLower16(CHAR ch) /*********************************************************************** * AnsiUpper16 (USER.431) */ -SEGPTR AnsiUpper16( SEGPTR strOrChar ) +SEGPTR WINAPI AnsiUpper16( SEGPTR strOrChar ) { /* I am not sure if the locale stuff works with toupper, but then again I am not sure if the Linux libc locale stuffs works at all */ @@ -71,7 +71,7 @@ SEGPTR AnsiUpper16( SEGPTR strOrChar ) /*********************************************************************** * AnsiUpperBuff16 (USER.437) */ -UINT16 AnsiUpperBuff16( LPSTR str, UINT16 len ) +UINT16 WINAPI AnsiUpperBuff16( LPSTR str, UINT16 len ) { UINT32 count = len ? len : 65536; for (; count; count--, str++) *str = toupper(*str); @@ -81,7 +81,7 @@ UINT16 AnsiUpperBuff16( LPSTR str, UINT16 len ) /*********************************************************************** * AnsiLower16 (USER.432) */ -SEGPTR AnsiLower16( SEGPTR strOrChar ) +SEGPTR WINAPI AnsiLower16( SEGPTR strOrChar ) { /* I am not sure if the locale stuff works with toupper, but then again I am not sure if the Linux libc locale stuffs works at all */ @@ -100,7 +100,7 @@ SEGPTR AnsiLower16( SEGPTR strOrChar ) /*********************************************************************** * AnsiLowerBuff16 (USER.438) */ -UINT16 AnsiLowerBuff16( LPSTR str, UINT16 len ) +UINT16 WINAPI AnsiLowerBuff16( LPSTR str, UINT16 len ) { UINT32 count = len ? len : 65536; for (; count; count--, str++) *str = tolower(*str); @@ -111,7 +111,7 @@ UINT16 AnsiLowerBuff16( LPSTR str, UINT16 len ) /*********************************************************************** * AnsiNext16 (USER.472) */ -SEGPTR AnsiNext16(SEGPTR current) +SEGPTR WINAPI AnsiNext16(SEGPTR current) { return (*(char *)PTR_SEG_TO_LIN(current)) ? current + 1 : current; } @@ -120,7 +120,7 @@ SEGPTR AnsiNext16(SEGPTR current) /*********************************************************************** * AnsiPrev16 (USER.473) */ -SEGPTR AnsiPrev16( SEGPTR start, SEGPTR current ) +SEGPTR WINAPI AnsiPrev16( SEGPTR start, SEGPTR current ) { return (current == start) ? start : current - 1; } @@ -129,7 +129,7 @@ SEGPTR AnsiPrev16( SEGPTR start, SEGPTR current ) /*********************************************************************** * OutputDebugString16 (KERNEL.115) */ -void OutputDebugString16( LPCSTR str ) +void WINAPI OutputDebugString16( LPCSTR str ) { char *module; char *p, *buffer = HeapAlloc( GetProcessHeap(), 0, strlen(str)+1 ); @@ -147,7 +147,7 @@ void OutputDebugString16( LPCSTR str ) /*********************************************************************** * OutputDebugString32A (KERNEL32 */ -void OutputDebugString32A( LPCSTR str ) +void WINAPI OutputDebugString32A( LPCSTR str ) { OutputDebugString16( str ); } @@ -157,7 +157,7 @@ void OutputDebugString32A( LPCSTR str ) /*********************************************************************** * OutputDebugString32W (KERNEL32 */ -void OutputDebugString32W( LPCWSTR str ) +void WINAPI OutputDebugString32W( LPCWSTR str ) { LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, str ); OutputDebugString32A( p ); @@ -169,7 +169,7 @@ void OutputDebugString32W( LPCWSTR str ) /*********************************************************************** * CharNext32A (USER32.28) */ -LPSTR CharNext32A( LPCSTR ptr ) +LPSTR WINAPI CharNext32A( LPCSTR ptr ) { if (!*ptr) return (LPSTR)ptr; if (IsDBCSLeadByte32( *ptr )) return (LPSTR)(ptr + 2); @@ -180,7 +180,7 @@ LPSTR CharNext32A( LPCSTR ptr ) /*********************************************************************** * CharNextEx32A (USER32.29) */ -LPSTR CharNextEx32A( WORD codepage, LPCSTR ptr, DWORD flags ) +LPSTR WINAPI CharNextEx32A( WORD codepage, LPCSTR ptr, DWORD flags ) { if (!*ptr) return (LPSTR)ptr; if (IsDBCSLeadByteEx( codepage, *ptr )) return (LPSTR)(ptr + 2); @@ -191,7 +191,7 @@ LPSTR CharNextEx32A( WORD codepage, LPCSTR ptr, DWORD flags ) /*********************************************************************** * CharNextExW (USER32.30) */ -LPWSTR CharNextEx32W(WORD codepage,LPCWSTR x,DWORD flags) +LPWSTR WINAPI CharNextEx32W(WORD codepage,LPCWSTR x,DWORD flags) { /* FIXME: add DBCS / codepage stuff */ if (*x) return (LPWSTR)(x+1); @@ -201,7 +201,7 @@ LPWSTR CharNextEx32W(WORD codepage,LPCWSTR x,DWORD flags) /*********************************************************************** * CharNextW (USER32.31) */ -LPWSTR CharNext32W(LPCWSTR x) +LPWSTR WINAPI CharNext32W(LPCWSTR x) { if (*x) return (LPWSTR)(x+1); else return (LPWSTR)x; @@ -210,7 +210,7 @@ LPWSTR CharNext32W(LPCWSTR x) /*********************************************************************** * CharPrev32A (USER32.32) */ -LPSTR CharPrev32A( LPCSTR start, LPCSTR ptr ) +LPSTR WINAPI CharPrev32A( LPCSTR start, LPCSTR ptr ) { while (*start && (start < ptr)) { @@ -225,7 +225,7 @@ LPSTR CharPrev32A( LPCSTR start, LPCSTR ptr ) /*********************************************************************** * CharPrevEx32A (USER32.33) */ -LPSTR CharPrevEx32A( WORD codepage, LPCSTR start, LPCSTR ptr, DWORD flags ) +LPSTR WINAPI CharPrevEx32A( WORD codepage, LPCSTR start, LPCSTR ptr, DWORD flags ) { while (*start && (start < ptr)) { @@ -240,7 +240,7 @@ LPSTR CharPrevEx32A( WORD codepage, LPCSTR start, LPCSTR ptr, DWORD flags ) /*********************************************************************** * CharPrevExW (USER32.34) */ -LPWSTR CharPrevEx32W(WORD codepage,LPCWSTR start,LPCWSTR x,DWORD flags) +LPWSTR WINAPI CharPrevEx32W(WORD codepage,LPCWSTR start,LPCWSTR x,DWORD flags) { /* FIXME: add DBCS / codepage stuff */ if (x>start) return (LPWSTR)(x-1); @@ -250,7 +250,7 @@ LPWSTR CharPrevEx32W(WORD codepage,LPCWSTR start,LPCWSTR x,DWORD flags) /*********************************************************************** * CharPrevW (USER32.35) */ -LPWSTR CharPrev32W(LPCWSTR start,LPCWSTR x) +LPWSTR WINAPI CharPrev32W(LPCWSTR start,LPCWSTR x) { if (x>start) return (LPWSTR)(x-1); else return (LPWSTR)x; @@ -260,7 +260,7 @@ LPWSTR CharPrev32W(LPCWSTR start,LPCWSTR x) * CharLowerA (USER32.24) * FIXME: handle current locale */ -LPSTR CharLower32A(LPSTR x) +LPSTR WINAPI CharLower32A(LPSTR x) { LPSTR s; @@ -281,7 +281,7 @@ LPSTR CharLower32A(LPSTR x) * CharLowerBuffA (USER32.25) * FIXME: handle current locale */ -DWORD CharLowerBuff32A(LPSTR x,DWORD buflen) +DWORD WINAPI CharLowerBuff32A(LPSTR x,DWORD buflen) { DWORD done=0; @@ -298,7 +298,7 @@ DWORD CharLowerBuff32A(LPSTR x,DWORD buflen) * CharLowerBuffW (USER32.26) * FIXME: handle current locale */ -DWORD CharLowerBuff32W(LPWSTR x,DWORD buflen) +DWORD WINAPI CharLowerBuff32W(LPWSTR x,DWORD buflen) { DWORD done=0; @@ -315,7 +315,7 @@ DWORD CharLowerBuff32W(LPWSTR x,DWORD buflen) * CharLowerW (USER32.27) * FIXME: handle current locale */ -LPWSTR CharLower32W(LPWSTR x) +LPWSTR WINAPI CharLower32W(LPWSTR x) { if (HIWORD(x)) { @@ -334,7 +334,7 @@ LPWSTR CharLower32W(LPWSTR x) * CharUpper32A (USER32.40) * FIXME: handle current locale */ -LPSTR CharUpper32A(LPSTR x) +LPSTR WINAPI CharUpper32A(LPSTR x) { if (HIWORD(x)) { @@ -353,7 +353,7 @@ LPSTR CharUpper32A(LPSTR x) * CharUpperBuffA (USER32.41) * FIXME: handle current locale */ -DWORD CharUpperBuff32A(LPSTR x,DWORD buflen) +DWORD WINAPI CharUpperBuff32A(LPSTR x,DWORD buflen) { DWORD done=0; @@ -370,7 +370,7 @@ DWORD CharUpperBuff32A(LPSTR x,DWORD buflen) * CharUpperBuffW (USER32.42) * FIXME: handle current locale */ -DWORD CharUpperBuff32W(LPWSTR x,DWORD buflen) +DWORD WINAPI CharUpperBuff32W(LPWSTR x,DWORD buflen) { DWORD done=0; @@ -387,7 +387,7 @@ DWORD CharUpperBuff32W(LPWSTR x,DWORD buflen) * CharUpperW (USER32.43) * FIXME: handle current locale */ -LPWSTR CharUpper32W(LPWSTR x) +LPWSTR WINAPI CharUpper32W(LPWSTR x) { if (HIWORD(x)) { @@ -406,7 +406,7 @@ LPWSTR CharUpper32W(LPWSTR x) * IsCharAlphaA (USER32.330) * FIXME: handle current locale */ -BOOL32 IsCharAlpha32A(CHAR x) +BOOL32 WINAPI IsCharAlpha32A(CHAR x) { return isalpha(x); } @@ -415,7 +415,7 @@ BOOL32 IsCharAlpha32A(CHAR x) * IsCharAlphaNumericA (USER32.331) * FIXME: handle current locale */ -BOOL32 IsCharAlphaNumeric32A(CHAR x) +BOOL32 WINAPI IsCharAlphaNumeric32A(CHAR x) { return isalnum(x); } @@ -424,7 +424,7 @@ BOOL32 IsCharAlphaNumeric32A(CHAR x) * IsCharAlphaNumericW (USER32.332) * FIXME: handle current locale */ -BOOL32 IsCharAlphaNumeric32W(WCHAR x) +BOOL32 WINAPI IsCharAlphaNumeric32W(WCHAR x) { return isalnum(x); } @@ -433,7 +433,7 @@ BOOL32 IsCharAlphaNumeric32W(WCHAR x) * IsCharAlphaW (USER32.333) * FIXME: handle current locale */ -BOOL32 IsCharAlpha32W(WCHAR x) +BOOL32 WINAPI IsCharAlpha32W(WCHAR x) { return isalpha(x); } @@ -442,7 +442,7 @@ BOOL32 IsCharAlpha32W(WCHAR x) * IsCharLower32A (USER32.334) * FIXME: handle current locale */ -BOOL32 IsCharLower32A(CHAR x) +BOOL32 WINAPI IsCharLower32A(CHAR x) { return islower(x); } @@ -451,7 +451,7 @@ BOOL32 IsCharLower32A(CHAR x) * IsCharLower32W (USER32.335) * FIXME: handle current locale */ -BOOL32 IsCharLower32W(WCHAR x) +BOOL32 WINAPI IsCharLower32W(WCHAR x) { return islower(x); } @@ -460,7 +460,7 @@ BOOL32 IsCharLower32W(WCHAR x) * IsCharUpper32A (USER32.336) * FIXME: handle current locale */ -BOOL32 IsCharUpper32A(CHAR x) +BOOL32 WINAPI IsCharUpper32A(CHAR x) { return isupper(x); } @@ -469,7 +469,7 @@ BOOL32 IsCharUpper32A(CHAR x) * IsCharUpper32W (USER32.337) * FIXME: handle current locale */ -BOOL32 IsCharUpper32W(WCHAR x) +BOOL32 WINAPI IsCharUpper32W(WCHAR x) { return isupper(x); } @@ -478,8 +478,7 @@ BOOL32 IsCharUpper32W(WCHAR x) * FormatMessageA (KERNEL32.138) Library Version * FIXME: missing wrap,FROM_SYSTEM message-loading, */ -DWORD -FormatMessage32A( +DWORD WINAPI FormatMessage32A( DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, @@ -647,8 +646,8 @@ FormatMessage32A( /*********************************************************************** * FormatMessageA (KERNEL32.138) Emulator Version */ -DWORD -WIN32_FormatMessage32A(DWORD *args) { +DWORD WINAPI WIN32_FormatMessage32A(DWORD *args) +{ DWORD dwFlags = args[0]; LPCVOID lpSource = (LPCVOID)args[1]; DWORD dwMessageId = args[2]; @@ -682,8 +681,7 @@ WIN32_FormatMessage32A(DWORD *args) { ); } -DWORD -FormatMessage32W( +DWORD WINAPI FormatMessage32W( DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, @@ -851,10 +849,10 @@ FormatMessage32W( #undef ADD_TO_T /*********************************************************************** - * FormatMessageA (KERNEL32.138) Emulator Version + * FormatMessageW (KERNEL32.138) Emulator Version */ -DWORD -WIN32_FormatMessage32W(DWORD *args) { +DWORD WINAPI WIN32_FormatMessage32W(DWORD *args) +{ DWORD dwFlags = args[0]; LPCVOID lpSource = (LPCVOID)args[1]; DWORD dwMessageId = args[2]; diff --git a/misc/lzexpand.c b/misc/lzexpand.c index 384096e2c51..ba2b02dc782 100644 --- a/misc/lzexpand.c +++ b/misc/lzexpand.c @@ -118,7 +118,7 @@ static INT32 read_header(HFILE32 fd,struct lzfileheader *head) /*********************************************************************** * LZStart16 (LZEXPAND.7) */ -INT16 LZStart16(void) +INT16 WINAPI LZStart16(void) { dprintf_file(stddeb,"LZStart16(void)\n"); return 1; @@ -128,7 +128,7 @@ INT16 LZStart16(void) /*********************************************************************** * LZStart32 (LZ32.6) */ -INT32 LZStart32(void) +INT32 WINAPI LZStart32(void) { dprintf_file(stddeb,"LZStart32(void)\n"); return 1; @@ -138,7 +138,7 @@ INT32 LZStart32(void) /*********************************************************************** * LZInit16 (LZEXPAND.3) */ -HFILE16 LZInit16( HFILE16 hfSrc ) +HFILE16 WINAPI LZInit16( HFILE16 hfSrc ) { return LZInit32( hfSrc ); } @@ -156,7 +156,7 @@ HFILE16 LZInit16( HFILE16 hfSrc ) * since _llseek uses the same types as libc.lseek, we just use the macros of * libc */ -HFILE32 LZInit32( HFILE32 hfSrc ) +HFILE32 WINAPI LZInit32( HFILE32 hfSrc ) { struct lzfileheader head; @@ -193,7 +193,7 @@ HFILE32 LZInit32( HFILE32 hfSrc ) /*********************************************************************** * LZDone (LZEXPAND.9) (LZ32.8) */ -void LZDone(void) +void WINAPI LZDone(void) { dprintf_file(stddeb,"LZDone()\n"); } @@ -202,7 +202,7 @@ void LZDone(void) /*********************************************************************** * GetExpandedName16 (LZEXPAND.10) */ -INT16 GetExpandedName16( LPCSTR in, LPSTR out ) +INT16 WINAPI GetExpandedName16( LPCSTR in, LPSTR out ) { return (INT16)GetExpandedName32A( in, out ); } @@ -219,7 +219,7 @@ INT16 GetExpandedName16( LPCSTR in, LPSTR out ) * "FILE.BL_" (with lastchar 'a') is being translated to "FILE.BLA" */ -INT32 GetExpandedName32A( LPCSTR in, LPSTR out ) +INT32 WINAPI GetExpandedName32A( LPCSTR in, LPSTR out ) { struct lzfileheader head; HFILE32 fd; @@ -289,7 +289,7 @@ INT32 GetExpandedName32A( LPCSTR in, LPSTR out ) /*********************************************************************** * GetExpandedName32W (LZ32.11) */ -INT32 GetExpandedName32W( LPCWSTR in, LPWSTR out ) +INT32 WINAPI GetExpandedName32W( LPCWSTR in, LPWSTR out ) { char *xin,*xout; INT32 ret; @@ -307,7 +307,7 @@ INT32 GetExpandedName32W( LPCWSTR in, LPWSTR out ) /*********************************************************************** * LZRead16 (LZEXPAND.5) */ -INT16 LZRead16( HFILE16 fd, LPVOID buf, UINT16 toread ) +INT16 WINAPI LZRead16( HFILE16 fd, LPVOID buf, UINT16 toread ) { return LZRead32(fd,buf,toread); } @@ -316,7 +316,7 @@ INT16 LZRead16( HFILE16 fd, LPVOID buf, UINT16 toread ) /*********************************************************************** * LZRead32 (LZ32.4) */ -INT32 LZRead32( HFILE32 fd, LPVOID vbuf, UINT32 toread ) +INT32 WINAPI LZRead32( HFILE32 fd, LPVOID vbuf, UINT32 toread ) { int i,howmuch; BYTE b,*buf; @@ -412,7 +412,7 @@ INT32 LZRead32( HFILE32 fd, LPVOID vbuf, UINT32 toread ) /*********************************************************************** * LZSeek16 (LZEXPAND.4) */ -LONG LZSeek16( HFILE16 fd, LONG off, INT16 type ) +LONG WINAPI LZSeek16( HFILE16 fd, LONG off, INT16 type ) { return LZSeek32( fd, off, type ); } @@ -421,7 +421,7 @@ LONG LZSeek16( HFILE16 fd, LONG off, INT16 type ) /*********************************************************************** * LZSeek32 (LZ32.3) */ -LONG LZSeek32( HFILE32 fd, LONG off, INT32 type ) +LONG WINAPI LZSeek32( HFILE32 fd, LONG off, INT32 type ) { int i; struct lzstate *lzs; @@ -459,7 +459,7 @@ LONG LZSeek32( HFILE32 fd, LONG off, INT32 type ) /*********************************************************************** * LZCopy16 (LZEXPAND.1) */ -LONG LZCopy16( HFILE16 src, HFILE16 dest ) +LONG WINAPI LZCopy16( HFILE16 src, HFILE16 dest ) { return LZCopy32( src, dest ); } @@ -472,7 +472,7 @@ LONG LZCopy16( HFILE16 src, HFILE16 dest ) * if src is a LZ compressed file, it will be uncompressed. * will return the number of bytes written to dest or errors. */ -LONG LZCopy32( HFILE32 src, HFILE32 dest ) +LONG WINAPI LZCopy32( HFILE32 src, HFILE32 dest ) { int i,ret,wret; LONG len; @@ -530,7 +530,7 @@ static LPSTR LZEXPAND_MangleName( LPCSTR fn ) /*********************************************************************** * LZOpenFile16 (LZEXPAND.2) */ -HFILE16 LZOpenFile16( LPCSTR fn, LPOFSTRUCT ofs, UINT16 mode ) +HFILE16 WINAPI LZOpenFile16( LPCSTR fn, LPOFSTRUCT ofs, UINT16 mode ) { return LZOpenFile32A( fn, ofs, mode ); } @@ -541,7 +541,7 @@ HFILE16 LZOpenFile16( LPCSTR fn, LPOFSTRUCT ofs, UINT16 mode ) * * Opens a file. If not compressed, open it as a normal file. */ -HFILE32 LZOpenFile32A( LPCSTR fn, LPOFSTRUCT ofs, UINT32 mode ) +HFILE32 WINAPI LZOpenFile32A( LPCSTR fn, LPOFSTRUCT ofs, UINT32 mode ) { HFILE32 fd,cfd; @@ -568,7 +568,7 @@ HFILE32 LZOpenFile32A( LPCSTR fn, LPOFSTRUCT ofs, UINT32 mode ) /*********************************************************************** * LZOpenFile32W (LZ32.10) */ -HFILE32 LZOpenFile32W( LPCWSTR fn, LPOFSTRUCT ofs, UINT32 mode ) +HFILE32 WINAPI LZOpenFile32W( LPCWSTR fn, LPOFSTRUCT ofs, UINT32 mode ) { LPSTR xfn; LPWSTR yfn; @@ -590,7 +590,7 @@ HFILE32 LZOpenFile32W( LPCWSTR fn, LPOFSTRUCT ofs, UINT32 mode ) /*********************************************************************** * LZClose16 (LZEXPAND.6) */ -void LZClose16( HFILE16 fd ) +void WINAPI LZClose16( HFILE16 fd ) { return LZClose32( fd ); } @@ -599,7 +599,7 @@ void LZClose16( HFILE16 fd ) /*********************************************************************** * LZClose32 (LZ32.5) */ -void LZClose32( HFILE32 fd ) +void WINAPI LZClose32( HFILE32 fd ) { int i; @@ -622,7 +622,7 @@ void LZClose32( HFILE32 fd ) /*********************************************************************** * CopyLZFile16 (LZEXPAND.8) */ -LONG CopyLZFile16( HFILE16 src, HFILE16 dest ) +LONG WINAPI CopyLZFile16( HFILE16 src, HFILE16 dest ) { dprintf_file(stddeb,"CopyLZFile16(%d,%d)\n",src,dest); return LZCopy32(src,dest); @@ -635,7 +635,7 @@ LONG CopyLZFile16( HFILE16 src, HFILE16 dest ) * Copy src to dest (including uncompressing src). * NOTE: Yes. This is exactly the same function as LZCopy. */ -LONG CopyLZFile32( HFILE32 src, HFILE32 dest ) +LONG WINAPI CopyLZFile32( HFILE32 src, HFILE32 dest ) { dprintf_file(stddeb,"CopyLZFile32(%d,%d)\n",src,dest); return LZCopy32(src,dest); diff --git a/misc/main.c b/misc/main.c index 01cc321de3a..3ef3384f9e4 100644 --- a/misc/main.c +++ b/misc/main.c @@ -102,9 +102,12 @@ Window rootWindow; int screenWidth = 0, screenHeight = 0; /* Desktop window dimensions */ int screenDepth = 0; /* Screen depth to use */ int desktopX = 0, desktopY = 0; /* Desktop window position (if any) */ -int getVersion16 = 0; -int getVersion32 = 0; -OSVERSIONINFO32A getVersionEx; + +/* Default version is the same as -winver win31 */ +static LONG getVersion16 = MAKELONG( WINVERSION, 0x0616 ); /* DOS 6.22 */ +static LONG getVersion32 = MAKELONG( 4, 0x1606 ); /* DOS 6.22 */ +static OSVERSIONINFO32A getVersionEx = { sizeof(OSVERSIONINFO32A), 3, 10, 0, + VER_PLATFORM_WIN32s, "Win32s 1.3" }; struct options Options = { /* default options */ @@ -692,7 +695,7 @@ BOOL32 MAIN_WineInit( int *argc, char *argv[] ) /*********************************************************************** * MessageBeep16 (USER.104) */ -void MessageBeep16( UINT16 i ) +void WINAPI MessageBeep16( UINT16 i ) { MessageBeep32( i ); } @@ -701,7 +704,7 @@ void MessageBeep16( UINT16 i ) /*********************************************************************** * MessageBeep32 (USER32.389) */ -BOOL32 MessageBeep32( UINT32 i ) +BOOL32 WINAPI MessageBeep32( UINT32 i ) { XBell( display, 100 ); return TRUE; @@ -711,7 +714,7 @@ BOOL32 MessageBeep32( UINT32 i ) /*********************************************************************** * Beep (KERNEL32.11) */ -BOOL32 Beep( DWORD dwFreq, DWORD dwDur ) +BOOL32 WINAPI Beep( DWORD dwFreq, DWORD dwDur ) { /* dwFreq and dwDur are ignored by Win95 */ XBell(display, 100); @@ -722,43 +725,31 @@ BOOL32 Beep( DWORD dwFreq, DWORD dwDur ) /*********************************************************************** * GetVersion16 (KERNEL.3) */ -LONG GetVersion16(void) +LONG WINAPI GetVersion16(void) { - if (getVersion16) return getVersion16; - return MAKELONG( WINVERSION, WINDOSVER ); + return getVersion16; } /*********************************************************************** * GetVersion32 */ -LONG GetVersion32(void) +LONG WINAPI GetVersion32(void) { - if (getVersion32) return getVersion32; - return MAKELONG( 4, DOSVERSION); + return getVersion32; } /*********************************************************************** * GetVersionExA */ -BOOL32 GetVersionEx32A(OSVERSIONINFO32A *v) +BOOL32 WINAPI GetVersionEx32A(OSVERSIONINFO32A *v) { if(v->dwOSVersionInfoSize!=sizeof(OSVERSIONINFO32A)) { fprintf(stddeb,"wrong OSVERSIONINFO size from app"); return FALSE; } - if(!getVersion32) - { - /* Return something like NT 3.5 */ - v->dwMajorVersion = 3; - v->dwMinorVersion = 5; - v->dwBuildNumber = 42; - v->dwPlatformId = VER_PLATFORM_WIN32_NT; - strcpy(v->szCSDVersion, "Wine is not an emulator"); - return TRUE; - } v->dwMajorVersion = getVersionEx.dwMajorVersion; v->dwMinorVersion = getVersionEx.dwMinorVersion; v->dwBuildNumber = getVersionEx.dwBuildNumber; @@ -771,7 +762,7 @@ BOOL32 GetVersionEx32A(OSVERSIONINFO32A *v) /*********************************************************************** * GetVersionExW */ -BOOL32 GetVersionEx32W(OSVERSIONINFO32W *v) +BOOL32 WINAPI GetVersionEx32W(OSVERSIONINFO32W *v) { OSVERSIONINFO32A v1; if(v->dwOSVersionInfoSize!=sizeof(OSVERSIONINFO32W)) @@ -792,7 +783,7 @@ BOOL32 GetVersionEx32W(OSVERSIONINFO32W *v) /*********************************************************************** * GetWinFlags (KERNEL.132) */ -DWORD GetWinFlags(void) +DWORD WINAPI GetWinFlags(void) { static const long cpuflags[5] = { WF_CPU086, WF_CPU186, WF_CPU286, WF_CPU386, WF_CPU486 }; @@ -827,7 +818,7 @@ DWORD GetWinFlags(void) /*********************************************************************** * SetEnvironment (GDI.132) */ -INT16 SetEnvironment( LPCSTR lpPortName, LPCSTR lpEnviron, UINT16 nCount ) +INT16 WINAPI SetEnvironment(LPCSTR lpPortName, LPCSTR lpEnviron, UINT16 nCount) { LPENVENTRY lpNewEnv; LPENVENTRY lpEnv = lpEnvList; @@ -896,7 +887,7 @@ INT16 SetEnvironment( LPCSTR lpPortName, LPCSTR lpEnviron, UINT16 nCount ) /*********************************************************************** * GetEnvironment (GDI.134) */ -INT16 GetEnvironment( LPCSTR lpPortName, LPSTR lpEnviron, UINT16 nMaxSiz ) +INT16 WINAPI GetEnvironment(LPCSTR lpPortName, LPSTR lpEnviron, UINT16 nMaxSiz) { WORD nCount; LPENVENTRY lpEnv = lpEnvList; @@ -921,7 +912,7 @@ INT16 GetEnvironment( LPCSTR lpPortName, LPSTR lpEnviron, UINT16 nMaxSiz ) /*********************************************************************** * GetTimerResolution (USER.14) */ -LONG GetTimerResolution(void) +LONG WINAPI GetTimerResolution(void) { return (1000); } @@ -929,8 +920,8 @@ LONG GetTimerResolution(void) /*********************************************************************** * SystemParametersInfo32A (USER32.539) */ -BOOL32 SystemParametersInfo32A( UINT32 uAction, UINT32 uParam, - LPVOID lpvParam, UINT32 fuWinIni ) +BOOL32 WINAPI SystemParametersInfo32A( UINT32 uAction, UINT32 uParam, + LPVOID lpvParam, UINT32 fuWinIni ) { int timeout, temp; XKeyboardState keyboard_state; @@ -1007,7 +998,9 @@ BOOL32 SystemParametersInfo32A( UINT32 uAction, UINT32 uParam, case SPI_GETICONTITLELOGFONT: { LPLOGFONT32A lpLogFont = (LPLOGFONT32A)lpvParam; - GetProfileString32A("Desktop", "IconTitleFaceName", "Helvetica", + /* from now on we always have an alias for MS Sans Serif */ + + GetProfileString32A("Desktop", "IconTitleFaceName", "MS Sans Serif", lpLogFont->lfFaceName, LF_FACESIZE ); lpLogFont->lfHeight = -GetProfileInt32A("Desktop","IconTitleSize", 8); @@ -1029,16 +1022,26 @@ BOOL32 SystemParametersInfo32A( UINT32 uAction, UINT32 uParam, GetSystemMetrics32( SM_CYSCREEN ) ); break; - case SPI_GETNONCLIENTMETRICS: { - /* FIXME: implement correctly */ - LPNONCLIENTMETRICS32A lpnm=(LPNONCLIENTMETRICS32A)lpvParam; + case SPI_GETNONCLIENTMETRICS: - SystemParametersInfo32A(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfCaptionFont),0); - SystemParametersInfo32A(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfMenuFont),0); - SystemParametersInfo32A(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfStatusFont),0); - SystemParametersInfo32A(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfMessageFont),0); +#define lpnm ((LPNONCLIENTMETRICS32A)lpvParam) + + if( lpnm->cbSize == sizeof(NONCLIENTMETRICS32A) ) + { + /* FIXME: initialize geometry entries */ + + SystemParametersInfo32A(SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfCaptionFont),0); + SystemParametersInfo32A(SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfMenuFont),0); + SystemParametersInfo32A(SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfStatusFont),0); + SystemParametersInfo32A(SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfMessageFont),0); + } +#undef lpnm break; - } + default: return SystemParametersInfo16(uAction,uParam,lpvParam,fuWinIni); } @@ -1049,8 +1052,8 @@ BOOL32 SystemParametersInfo32A( UINT32 uAction, UINT32 uParam, /*********************************************************************** * SystemParametersInfo16 (USER.483) */ -BOOL16 SystemParametersInfo16( UINT16 uAction, UINT16 uParam, - LPVOID lpvParam, UINT16 fuWinIni ) +BOOL16 WINAPI SystemParametersInfo16( UINT16 uAction, UINT16 uParam, + LPVOID lpvParam, UINT16 fuWinIni ) { int timeout, temp; char buffer[256]; @@ -1174,7 +1177,7 @@ BOOL16 SystemParametersInfo16( UINT16 uAction, UINT16 uParam, { LPLOGFONT16 lpLogFont = (LPLOGFONT16)lpvParam; - GetProfileString32A("Desktop", "IconTitleFaceName", "Helvetica", + GetProfileString32A("Desktop", "IconTitleFaceName", "MS Sans Serif", lpLogFont->lfFaceName, LF_FACESIZE ); lpLogFont->lfHeight = -GetProfileInt32A("Desktop","IconTitleSize", 8); @@ -1190,16 +1193,25 @@ BOOL16 SystemParametersInfo16( UINT16 uAction, UINT16 uParam, lpLogFont->lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS; break; } - case SPI_GETNONCLIENTMETRICS: { - /* FIXME: implement correctly */ - LPNONCLIENTMETRICS16 lpnm=(LPNONCLIENTMETRICS16)lpvParam; + case SPI_GETNONCLIENTMETRICS: - SystemParametersInfo16(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfCaptionFont),0); - SystemParametersInfo16(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfMenuFont),0); - SystemParametersInfo16(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfStatusFont),0); - SystemParametersInfo16(SPI_GETICONTITLELOGFONT,0,(LPVOID)&(lpnm->lfMessageFont),0); - break; - } +#define lpnm ((LPNONCLIENTMETRICS16)lpvParam) + if( lpnm->cbSize == sizeof(NONCLIENTMETRICS16) ) + { + /* FIXME: initialize geometry entries */ + SystemParametersInfo16( SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfCaptionFont),0); + SystemParametersInfo16( SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfMenuFont),0); + SystemParametersInfo16( SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfStatusFont),0); + SystemParametersInfo16( SPI_GETICONTITLELOGFONT, 0, + (LPVOID)&(lpnm->lfMessageFont),0); + } + else /* winfile 95 sets sbSize to 340 */ + SystemParametersInfo32A( uAction, uParam, lpvParam, fuWinIni ); +#undef lpnm + break; case SPI_LANGDRIVER: case SPI_SETBORDER: @@ -1228,8 +1240,8 @@ BOOL16 SystemParametersInfo16( UINT16 uAction, UINT16 uParam, /*********************************************************************** * SystemParametersInfo32W (USER32.540) */ -BOOL32 SystemParametersInfo32W( UINT32 uAction, UINT32 uParam, - LPVOID lpvParam, UINT32 fuWinIni ) +BOOL32 WINAPI SystemParametersInfo32W( UINT32 uAction, UINT32 uParam, + LPVOID lpvParam, UINT32 fuWinIni ) { char buffer[256]; @@ -1295,7 +1307,7 @@ BOOL32 SystemParametersInfo32W( UINT32 uAction, UINT32 uParam, /*********************************************************************** * FileCDR (KERNEL.130) */ -void FileCDR(FARPROC16 x) +void WINAPI FileCDR(FARPROC16 x) { printf("FileCDR(%8x)\n", (int) x); } @@ -1303,7 +1315,7 @@ void FileCDR(FARPROC16 x) /*********************************************************************** * GetWinDebugInfo (KERNEL.355) */ -BOOL16 GetWinDebugInfo(WINDEBUGINFO *lpwdi, UINT16 flags) +BOOL16 WINAPI GetWinDebugInfo(WINDEBUGINFO *lpwdi, UINT16 flags) { printf("GetWinDebugInfo(%8lx,%d) stub returning 0\n", (unsigned long)lpwdi, flags); /* 0 means not in debugging mode/version */ @@ -1315,7 +1327,7 @@ BOOL16 GetWinDebugInfo(WINDEBUGINFO *lpwdi, UINT16 flags) /*********************************************************************** * GetWinDebugInfo (KERNEL.355) */ -BOOL16 SetWinDebugInfo(WINDEBUGINFO *lpwdi) +BOOL16 WINAPI SetWinDebugInfo(WINDEBUGINFO *lpwdi) { printf("SetWinDebugInfo(%8lx) stub returning 0\n", (unsigned long)lpwdi); /* 0 means not in debugging mode/version */ diff --git a/misc/mpr.c b/misc/mpr.c index 6c7b674f800..3679affa319 100644 --- a/misc/mpr.c +++ b/misc/mpr.c @@ -8,8 +8,7 @@ #include "stddebug.h" #include "debug.h" -DWORD -WNetGetCachedPassword( +DWORD WINAPI WNetGetCachedPassword( LPSTR pbResource, WORD cbResource, LPSTR pbPassword, @@ -22,8 +21,7 @@ WNetGetCachedPassword( return 0; } -DWORD -MultinetGetConnectionPerformance32A( +DWORD WINAPI MultinetGetConnectionPerformance32A( LPNETRESOURCE32A lpNetResource, LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct ) { diff --git a/misc/network.c b/misc/network.c index 5c1eacec173..3768fc93f98 100644 --- a/misc/network.c +++ b/misc/network.c @@ -35,7 +35,7 @@ typedef LPSTR LPNETRESOURCE; /************************************************************************** * WNetErrorText [USER.499] */ -int WNetErrorText(WORD nError,LPSTR lpszText,WORD cbText) +int WINAPI WNetErrorText(WORD nError,LPSTR lpszText,WORD cbText) { printf("EMPTY STUB !!! WNetErrorText(%x,%p,%x)\n", nError,lpszText,cbText); @@ -45,7 +45,7 @@ int WNetErrorText(WORD nError,LPSTR lpszText,WORD cbText) /************************************************************************** * WNetOpenJob [USER.501] */ -int WNetOpenJob(LPSTR szQueue,LPSTR szJobTitle,WORD nCopies,LPWORD pfh) +int WINAPI WNetOpenJob(LPSTR szQueue,LPSTR szJobTitle,WORD nCopies,LPWORD pfh) { printf("EMPTY STUB !!! WNetOpenJob('%s','%s',%x,%p)\n", szQueue,szJobTitle,nCopies,pfh); @@ -55,7 +55,7 @@ int WNetOpenJob(LPSTR szQueue,LPSTR szJobTitle,WORD nCopies,LPWORD pfh) /************************************************************************** * WNetCloseJob [USER.502] */ -int WNetCloseJob(WORD fh,LPWORD pidJob,LPSTR szQueue) +int WINAPI WNetCloseJob(WORD fh,LPWORD pidJob,LPSTR szQueue) { printf("EMPTY STUB !!! WNetCloseJob(%x,%p,'%s')\n", fh,pidJob,szQueue); @@ -65,7 +65,7 @@ int WNetCloseJob(WORD fh,LPWORD pidJob,LPSTR szQueue) /************************************************************************** * WNetAbortJob [USER.503] */ -int WNetAbortJob(LPSTR szQueue,WORD wJobId) +int WINAPI WNetAbortJob(LPSTR szQueue,WORD wJobId) { printf("EMPTY STUB !!! WNetAbortJob('%s',%x)\n", szQueue,wJobId); @@ -75,7 +75,7 @@ int WNetAbortJob(LPSTR szQueue,WORD wJobId) /************************************************************************** * WNetHoldJob [USER.504] */ -int WNetHoldJob(LPSTR szQueue,WORD wJobId) +int WINAPI WNetHoldJob(LPSTR szQueue,WORD wJobId) { printf("EMPTY STUB !!! WNetHoldJob('%s',%x)\n", szQueue,wJobId); @@ -85,7 +85,7 @@ int WNetHoldJob(LPSTR szQueue,WORD wJobId) /************************************************************************** * WNetReleaseJob [USER.505] */ -int WNetReleaseJob(LPSTR szQueue,WORD wJobId) +int WINAPI WNetReleaseJob(LPSTR szQueue,WORD wJobId) { printf("EMPTY STUB !!! WNetReleaseJob('%s',%x)\n", szQueue,wJobId); @@ -95,7 +95,7 @@ int WNetReleaseJob(LPSTR szQueue,WORD wJobId) /************************************************************************** * WNetCancelJob [USER.506] */ -int WNetCancelJob(LPSTR szQueue,WORD wJobId) +int WINAPI WNetCancelJob(LPSTR szQueue,WORD wJobId) { printf("EMPTY STUB !!! WNetCancelJob('%s',%x)\n", szQueue,wJobId); @@ -105,7 +105,7 @@ int WNetCancelJob(LPSTR szQueue,WORD wJobId) /************************************************************************** * WNetSetJobCopies [USER.507] */ -int WNetSetJobCopies(LPSTR szQueue,WORD wJobId,WORD nCopies) +int WINAPI WNetSetJobCopies(LPSTR szQueue,WORD wJobId,WORD nCopies) { printf("EMPTY STUB !!! WNetSetJobCopies('%s',%x,%x)\n", szQueue,wJobId,nCopies); @@ -115,7 +115,7 @@ int WNetSetJobCopies(LPSTR szQueue,WORD wJobId,WORD nCopies) /************************************************************************** * WNetWatchQueue [USER.508] */ -int WNetWatchQueue(HWND16 hWnd,LPSTR szLocal,LPSTR szUser,WORD nQueue) +int WINAPI WNetWatchQueue(HWND16 hWnd,LPSTR szLocal,LPSTR szUser,WORD nQueue) { printf("EMPTY STUB !!! WNetWatchQueue(%04x,'%s','%s',%x)\n", hWnd,szLocal,szUser,nQueue); @@ -125,7 +125,7 @@ int WNetWatchQueue(HWND16 hWnd,LPSTR szLocal,LPSTR szUser,WORD nQueue) /************************************************************************** * WNetUnwatchQueue [USER.509] */ -int WNetUnwatchQueue(LPSTR szQueue) +int WINAPI WNetUnwatchQueue(LPSTR szQueue) { printf("EMPTY STUB !!! WNetUnwatchQueue('%s')\n", szQueue); return WN_NET_ERROR; @@ -134,7 +134,7 @@ int WNetUnwatchQueue(LPSTR szQueue) /************************************************************************** * WNetLockQueueData [USER.510] */ -int WNetLockQueueData(LPSTR szQueue,LPSTR szUser,void *lplpQueueStruct) +int WINAPI WNetLockQueueData(LPSTR szQueue,LPSTR szUser,void *lplpQueueStruct) { printf("EMPTY STUB !!! WNetLockQueueData('%s','%s',%p)\n", szQueue,szUser,lplpQueueStruct); @@ -144,7 +144,7 @@ int WNetLockQueueData(LPSTR szQueue,LPSTR szUser,void *lplpQueueStruct) /************************************************************************** * WNetUnlockQueueData [USER.511] */ -int WNetUnlockQueueData(LPSTR szQueue) +int WINAPI WNetUnlockQueueData(LPSTR szQueue) { printf("EMPTY STUB !!! WNetUnlockQueueData('%s')\n",szQueue); return WN_NET_ERROR; @@ -153,8 +153,8 @@ int WNetUnlockQueueData(LPSTR szQueue) /************************************************************************** * WNetGetConnection [USER.512] */ -int WNetGetConnection(LPSTR lpLocalName, - LPSTR lpRemoteName, UINT16 *cbRemoteName) +int WINAPI WNetGetConnection(LPSTR lpLocalName, + LPSTR lpRemoteName, UINT16 *cbRemoteName) { const char *path; @@ -183,7 +183,7 @@ int WNetGetConnection(LPSTR lpLocalName, /************************************************************************** * WNetGetCaps [USER.513] */ -int WNetGetCaps(WORD capability) +int WINAPI WNetGetCaps(WORD capability) { return 0; } @@ -191,7 +191,7 @@ int WNetGetCaps(WORD capability) /************************************************************************** * WNetDeviceMode [USER.514] */ -int WNetDeviceMode(HWND16 hWndOwner) +int WINAPI WNetDeviceMode(HWND16 hWndOwner) { printf("EMPTY STUB !!! WNetDeviceMode(%04x)\n",hWndOwner); return WN_NET_ERROR; @@ -200,7 +200,7 @@ int WNetDeviceMode(HWND16 hWndOwner) /************************************************************************** * WNetBrowseDialog [USER.515] */ -int WNetBrowseDialog(HWND16 hParent,WORD nType,LPSTR szPath) +int WINAPI WNetBrowseDialog(HWND16 hParent,WORD nType,LPSTR szPath) { printf("EMPTY STUB !!! WNetBrowseDialog(%04x,%x,'%s')\n", hParent,nType,szPath); @@ -210,7 +210,7 @@ int WNetBrowseDialog(HWND16 hParent,WORD nType,LPSTR szPath) /************************************************************************** * WNetGetUser [USER.516] */ -UINT16 WNetGetUser(LPSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize) +UINT16 WINAPI WNetGetUser(LPSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize) { printf("EMPTY STUB !!! WNetGetUser(%p, %p, %p);\n", lpLocalName, lpUserName, lpSize); @@ -220,7 +220,8 @@ UINT16 WNetGetUser(LPSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize) /************************************************************************** * WNetAddConnection [USER.517] */ -UINT16 WNetAddConnection(LPSTR lpNetPath, LPSTR lpPassWord, LPSTR lpLocalName) +UINT16 WINAPI WNetAddConnection(LPSTR lpNetPath, LPSTR lpPassWord, + LPSTR lpLocalName) { printf("EMPTY STUB !!! WNetAddConnection('%s', %p, '%s');\n", lpNetPath, lpPassWord, lpLocalName); @@ -231,7 +232,7 @@ UINT16 WNetAddConnection(LPSTR lpNetPath, LPSTR lpPassWord, LPSTR lpLocalName) /************************************************************************** * WNetCancelConnection [USER.518] */ -UINT16 WNetCancelConnection(LPSTR lpName, BOOL16 bForce) +UINT16 WINAPI WNetCancelConnection(LPSTR lpName, BOOL16 bForce) { printf("EMPTY STUB !!! WNetCancelConnection('%s', %04X);\n", lpName, bForce); @@ -241,7 +242,7 @@ UINT16 WNetCancelConnection(LPSTR lpName, BOOL16 bForce) /************************************************************************** * WNetGetError [USER.519] */ -int WNetGetError(LPWORD nError) +int WINAPI WNetGetError(LPWORD nError) { printf("EMPTY STUB !!! WNetGetError(%p)\n",nError); return WN_NET_ERROR; @@ -250,7 +251,7 @@ int WNetGetError(LPWORD nError) /************************************************************************** * WNetGetErrorText [USER.520] */ -int WNetGetErrorText(WORD nError, LPSTR lpBuffer, LPWORD nBufferSize) +int WINAPI WNetGetErrorText(WORD nError, LPSTR lpBuffer, LPWORD nBufferSize) { printf("EMPTY STUB !!! WNetGetErrorText(%x,%p,%p)\n", nError,lpBuffer,nBufferSize); @@ -260,7 +261,7 @@ int WNetGetErrorText(WORD nError, LPSTR lpBuffer, LPWORD nBufferSize) /************************************************************************** * WNetRestoreConnection [USER.523] */ -int WNetRestoreConnection(HWND16 hwndOwner,LPSTR lpszDevice) +int WINAPI WNetRestoreConnection(HWND16 hwndOwner,LPSTR lpszDevice) { printf("EMPTY STUB !!! WNetRestoreConnection(%04x,'%s')\n", hwndOwner,lpszDevice); @@ -270,7 +271,7 @@ int WNetRestoreConnection(HWND16 hwndOwner,LPSTR lpszDevice) /************************************************************************** * WNetWriteJob [USER.524] */ -int WNetWriteJob(HANDLE16 hJob,void *lpData,LPWORD lpcbData) +int WINAPI WNetWriteJob(HANDLE16 hJob,void *lpData,LPWORD lpcbData) { printf("EMPTY STUB !!! WNetWriteJob(%04x,%p,%p)\n", hJob,lpData,lpcbData); @@ -280,7 +281,7 @@ int WNetWriteJob(HANDLE16 hJob,void *lpData,LPWORD lpcbData) /************************************************************************** * WnetConnectDialog [USER.525] */ -UINT16 WNetConnectDialog(HWND16 hWndParent, WORD iType) +UINT16 WINAPI WNetConnectDialog(HWND16 hWndParent, WORD iType) { printf("EMPTY STUB !!! WNetConnectDialog(%04x, %4X)\n", hWndParent, iType); return WN_SUCCESS; @@ -289,7 +290,7 @@ UINT16 WNetConnectDialog(HWND16 hWndParent, WORD iType) /************************************************************************** * WNetDisconnectDialog [USER.526] */ -int WNetDisconnectDialog(HWND16 hwndOwner, WORD iType) +int WINAPI WNetDisconnectDialog(HWND16 hwndOwner, WORD iType) { printf("EMPTY STUB !!! WNetDisconnectDialog(%04x,%x)\n", hwndOwner,iType); @@ -299,7 +300,7 @@ int WNetDisconnectDialog(HWND16 hwndOwner, WORD iType) /************************************************************************** * WnetConnectionDialog [USER.527] */ -UINT16 WNetConnectionDialog(HWND16 hWndParent, WORD iType) +UINT16 WINAPI WNetConnectionDialog(HWND16 hWndParent, WORD iType) { printf("EMPTY STUB !!! WNetConnectionDialog(%04x, %4X)\n", hWndParent, iType); @@ -309,7 +310,7 @@ UINT16 WNetConnectionDialog(HWND16 hWndParent, WORD iType) /************************************************************************** * WNetViewQueueDialog [USER.528] */ -int WNetViewQueueDialog(HWND16 hwndOwner,LPSTR lpszQueue) +int WINAPI WNetViewQueueDialog(HWND16 hwndOwner,LPSTR lpszQueue) { printf("EMPTY STUB !!! WNetViewQueueDialog(%04x,'%s')\n", hwndOwner,lpszQueue); @@ -319,8 +320,8 @@ int WNetViewQueueDialog(HWND16 hwndOwner,LPSTR lpszQueue) /************************************************************************** * WNetPropertyDialog [USER.529] */ -int WNetPropertyDialog(HWND16 hwndParent,WORD iButton, - WORD nPropSel,LPSTR lpszName,WORD nType) +int WINAPI WNetPropertyDialog(HWND16 hwndParent,WORD iButton, + WORD nPropSel,LPSTR lpszName,WORD nType) { printf("EMPTY STUB !!! WNetPropertyDialog(%04x,%x,%x,'%s',%x)\n", hwndParent,iButton,nPropSel,lpszName,nType); @@ -330,7 +331,7 @@ int WNetPropertyDialog(HWND16 hwndParent,WORD iButton, /************************************************************************** * WNetGetDirectoryType [USER.530] */ -int WNetGetDirectoryType(LPSTR lpName,void *lpType) +int WINAPI WNetGetDirectoryType(LPSTR lpName,void *lpType) { printf("EMPTY STUB !!! WNetGetDirectoryType('%s',%p)\n", lpName,lpType); @@ -340,7 +341,7 @@ int WNetGetDirectoryType(LPSTR lpName,void *lpType) /************************************************************************** * WNetDirectoryNotify [USER.531] */ -int WNetDirectoryNotify(HWND16 hwndOwner,void *lpDir,WORD wOper) +int WINAPI WNetDirectoryNotify(HWND16 hwndOwner,void *lpDir,WORD wOper) { printf("EMPTY STUB !!! WNetDirectoryNotify(%04x,%p,%x)\n", hwndOwner,lpDir,wOper); @@ -350,8 +351,8 @@ int WNetDirectoryNotify(HWND16 hwndOwner,void *lpDir,WORD wOper) /************************************************************************** * WNetGetPropertyText [USER.532] */ -int WNetGetPropertyText(HWND16 hwndParent,WORD iButton,WORD nPropSel, - LPSTR lpszName,WORD nType) +int WINAPI WNetGetPropertyText(HWND16 hwndParent,WORD iButton,WORD nPropSel, + LPSTR lpszName,WORD nType) { printf("EMPTY STUB !!! WNetGetPropertyText(%04x,%x,%x,'%s',%x)\n", hwndParent,iButton,nPropSel,lpszName,nType); @@ -361,8 +362,8 @@ int WNetGetPropertyText(HWND16 hwndParent,WORD iButton,WORD nPropSel, /************************************************************************** * WNetAddConnection2 [USER.???] */ -UINT16 WNetAddConnection2(LPSTR lpNetPath, LPSTR lpPassWord, - LPSTR lpLocalName, LPSTR lpUserName) +UINT16 WINAPI WNetAddConnection2(LPSTR lpNetPath, LPSTR lpPassWord, + LPSTR lpLocalName, LPSTR lpUserName) { printf("EMPTY STUB !!! WNetAddConnection2('%s', %p, '%s', '%s');\n", lpNetPath, lpPassWord, lpLocalName, lpUserName); @@ -372,7 +373,7 @@ UINT16 WNetAddConnection2(LPSTR lpNetPath, LPSTR lpPassWord, /************************************************************************** * WNetCloseEnum [USER.???] */ -UINT16 WNetCloseEnum(HANDLE16 hEnum) +UINT16 WINAPI WNetCloseEnum(HANDLE16 hEnum) { printf("EMPTY STUB !!! WNetCloseEnum(%04x);\n", hEnum); return WN_NET_ERROR; @@ -381,8 +382,8 @@ UINT16 WNetCloseEnum(HANDLE16 hEnum) /************************************************************************** * WNetEnumResource [USER.???] */ -UINT16 WNetEnumResource(HANDLE16 hEnum, DWORD cRequ, - DWORD *lpCount, LPVOID lpBuf) +UINT16 WINAPI WNetEnumResource(HANDLE16 hEnum, DWORD cRequ, + DWORD *lpCount, LPVOID lpBuf) { printf("EMPTY STUB !!! WNetEnumResource(%04x, %08lX, %p, %p);\n", hEnum, cRequ, lpCount, lpBuf); @@ -392,8 +393,8 @@ UINT16 WNetEnumResource(HANDLE16 hEnum, DWORD cRequ, /************************************************************************** * WNetOpenEnum [USER.???] */ -UINT16 WNetOpenEnum(DWORD dwScope, DWORD dwType, - LPNETRESOURCE lpNet, HANDLE16 *lphEnum) +UINT16 WINAPI WNetOpenEnum(DWORD dwScope, DWORD dwType, + LPNETRESOURCE lpNet, HANDLE16 *lphEnum) { printf("EMPTY STUB !!! WNetOpenEnum(%08lX, %08lX, %p, %p);\n", dwScope, dwType, lpNet, lphEnum); diff --git a/misc/ntdll.c b/misc/ntdll.c index cd430dc2926..43b6a5d13ae 100644 --- a/misc/ntdll.c +++ b/misc/ntdll.c @@ -22,24 +22,24 @@ /************************************************************************** * RtlLengthRequiredSid [NTDLL] */ -DWORD -RtlLengthRequiredSid(DWORD nrofsubauths) { +DWORD WINAPI RtlLengthRequiredSid(DWORD nrofsubauths) +{ return sizeof(DWORD)*nrofsubauths+sizeof(SID); } /************************************************************************** * RtlLengthSid [NTDLL] */ -DWORD -RtlLengthSid(LPSID sid) { +DWORD WINAPI RtlLengthSid(LPSID sid) +{ return sizeof(DWORD)*sid->SubAuthorityCount+sizeof(SID); } /************************************************************************** * RtlCreateAcl [NTDLL] */ -DWORD /* NTSTATUS */ -RtlCreateAcl(LPACL acl,DWORD size,DWORD rev) { +DWORD /* NTSTATUS */ WINAPI RtlCreateAcl(LPACL acl,DWORD size,DWORD rev) +{ if (rev!=ACL_REVISION) return STATUS_INVALID_PARAMETER; if (sizeRevision!=SECURITY_DESCRIPTOR_REVISION) return STATUS_UNKNOWN_REVISION; if (lpsd->Control & SE_SELF_RELATIVE) @@ -140,10 +139,10 @@ LPSECURITY_DESCRIPTOR lpsd,BOOL32 daclpresent,LPACL dacl,BOOL32 dacldefaulted /************************************************************************** * RtlSetSaclSecurityDescriptor [NTDLL] */ -DWORD /* NTSTATUS */ -RtlSetSaclSecurityDescriptor ( +DWORD /* NTSTATUS */ WINAPI RtlSetSaclSecurityDescriptor ( LPSECURITY_DESCRIPTOR lpsd,BOOL32 saclpresent,LPACL sacl,BOOL32 sacldefaulted -) { +) +{ if (lpsd->Revision!=SECURITY_DESCRIPTOR_REVISION) return STATUS_UNKNOWN_REVISION; if (lpsd->Control & SE_SELF_RELATIVE) @@ -164,8 +163,8 @@ LPSECURITY_DESCRIPTOR lpsd,BOOL32 saclpresent,LPACL sacl,BOOL32 sacldefaulted /************************************************************************** * RtlSetOwnerSecurityDescriptor [NTDLL] */ -DWORD /* NTSTATUS */ -RtlSetOwnerSecurityDescriptor (LPSECURITY_DESCRIPTOR lpsd,LPSID owner,BOOL32 ownerdefaulted) { +DWORD /* NTSTATUS */ WINAPI RtlSetOwnerSecurityDescriptor (LPSECURITY_DESCRIPTOR lpsd,LPSID owner,BOOL32 ownerdefaulted) +{ if (lpsd->Revision!=SECURITY_DESCRIPTOR_REVISION) return STATUS_UNKNOWN_REVISION; if (lpsd->Control & SE_SELF_RELATIVE) @@ -182,8 +181,8 @@ RtlSetOwnerSecurityDescriptor (LPSECURITY_DESCRIPTOR lpsd,LPSID owner,BOOL32 own /************************************************************************** * RtlSetOwnerSecurityDescriptor [NTDLL] */ -DWORD /* NTSTATUS */ -RtlSetGroupSecurityDescriptor (LPSECURITY_DESCRIPTOR lpsd,LPSID group,BOOL32 groupdefaulted) { +DWORD /* NTSTATUS */ WINAPI RtlSetGroupSecurityDescriptor (LPSECURITY_DESCRIPTOR lpsd,LPSID group,BOOL32 groupdefaulted) +{ if (lpsd->Revision!=SECURITY_DESCRIPTOR_REVISION) return STATUS_UNKNOWN_REVISION; if (lpsd->Control & SE_SELF_RELATIVE) @@ -201,8 +200,7 @@ RtlSetGroupSecurityDescriptor (LPSECURITY_DESCRIPTOR lpsd,LPSID group,BOOL32 gro /************************************************************************** * RtlNormalizeProcessParams [NTDLL] */ -LPVOID -RtlNormalizeProcessParams(LPVOID x) +LPVOID WINAPI RtlNormalizeProcessParams(LPVOID x) { fprintf(stdnimp,"RtlNormalizeProcessParams(%p), stub.\n",x); return x; @@ -211,8 +209,9 @@ RtlNormalizeProcessParams(LPVOID x) /************************************************************************** * RtlInitializeSid [NTDLL] */ -DWORD -RtlInitializeSid(LPSID lpsid,LPSID_IDENTIFIER_AUTHORITY lpsidauth,DWORD c) { +DWORD WINAPI RtlInitializeSid(LPSID lpsid,LPSID_IDENTIFIER_AUTHORITY lpsidauth, + DWORD c) +{ BYTE a = c&0xff; if (a>=SID_MAX_SUB_AUTHORITIES) @@ -226,24 +225,24 @@ RtlInitializeSid(LPSID lpsid,LPSID_IDENTIFIER_AUTHORITY lpsidauth,DWORD c) { /************************************************************************** * RtlSubAuthoritySid [NTDLL] */ -LPDWORD -RtlSubAuthoritySid(LPSID lpsid,DWORD nr) { +LPDWORD WINAPI RtlSubAuthoritySid(LPSID lpsid,DWORD nr) +{ return &(lpsid->SubAuthority[nr]); } /************************************************************************** * RtlSubAuthorityCountSid [NTDLL] */ -LPBYTE -RtlSubAuthorityCountSid(LPSID lpsid) { +LPBYTE WINAPI RtlSubAuthorityCountSid(LPSID lpsid) +{ return ((LPBYTE)lpsid)+1; } /************************************************************************** * RtlCopySid [NTDLL] */ -DWORD -RtlCopySid(DWORD len,LPSID to,LPSID from) { +DWORD WINAPI RtlCopySid(DWORD len,LPSID to,LPSID from) +{ if (len<(from->SubAuthorityCount*4+8)) return STATUS_BUFFER_TOO_SMALL; memmove(to,from,from->SubAuthorityCount*4+8); @@ -253,8 +252,8 @@ RtlCopySid(DWORD len,LPSID to,LPSID from) { /************************************************************************** * RtlAnsiStringToUnicodeString [NTDLL] */ -DWORD /* NTSTATUS */ -RtlAnsiStringToUnicodeString(LPUNICODE_STRING uni,LPANSI_STRING ansi,BOOL32 doalloc) { +DWORD /* NTSTATUS */ WINAPI RtlAnsiStringToUnicodeString(LPUNICODE_STRING uni,LPANSI_STRING ansi,BOOL32 doalloc) +{ DWORD unilen = (ansi->Length+1)*sizeof(WCHAR); if (unilen>0xFFFF) @@ -275,8 +274,8 @@ RtlAnsiStringToUnicodeString(LPUNICODE_STRING uni,LPANSI_STRING ansi,BOOL32 doal /************************************************************************** * RtlOemStringToUnicodeString [NTDLL] */ -DWORD /* NTSTATUS */ -RtlOemStringToUnicodeString(LPUNICODE_STRING uni,LPSTRING ansi,BOOL32 doalloc) { +DWORD /* NTSTATUS */ WINAPI RtlOemStringToUnicodeString(LPUNICODE_STRING uni,LPSTRING ansi,BOOL32 doalloc) +{ DWORD unilen = (ansi->Length+1)*sizeof(WCHAR); if (unilen>0xFFFF) @@ -297,8 +296,8 @@ RtlOemStringToUnicodeString(LPUNICODE_STRING uni,LPSTRING ansi,BOOL32 doalloc) { * RtlMultiByteToUnicodeN [NTDLL] * FIXME: multibyte support */ -DWORD /* NTSTATUS */ -RtlMultiByteToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen) { +DWORD /* NTSTATUS */ WINAPI RtlMultiByteToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen) +{ DWORD len; LPWSTR x; @@ -315,8 +314,8 @@ RtlMultiByteToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DW /************************************************************************** * RtlOemToUnicodeN [NTDLL] */ -DWORD /* NTSTATUS */ -RtlOemToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen) { +DWORD /* NTSTATUS */ WINAPI RtlOemToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen) +{ DWORD len; LPWSTR x; @@ -333,8 +332,8 @@ RtlOemToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oe /************************************************************************** * RtlInitString [NTDLL] */ -VOID -RtlInitAnsiString(LPANSI_STRING target,LPCSTR source) { +VOID WINAPI RtlInitAnsiString(LPANSI_STRING target,LPCSTR source) +{ target->Length = target->MaximumLength = 0; target->Buffer = (LPSTR)source; if (!source) @@ -345,8 +344,8 @@ RtlInitAnsiString(LPANSI_STRING target,LPCSTR source) { /************************************************************************** * RtlInitString [NTDLL] */ -VOID -RtlInitString(LPSTRING target,LPCSTR source) { +VOID WINAPI RtlInitString(LPSTRING target,LPCSTR source) +{ target->Length = target->MaximumLength = 0; target->Buffer = (LPSTR)source; if (!source) @@ -358,8 +357,8 @@ RtlInitString(LPSTRING target,LPCSTR source) { /************************************************************************** * RtlInitUnicodeString [NTDLL] */ -VOID -RtlInitUnicodeString(LPUNICODE_STRING target,LPCWSTR source) { +VOID WINAPI RtlInitUnicodeString(LPUNICODE_STRING target,LPCWSTR source) +{ target->Length = target->MaximumLength = 0; target->Buffer = (LPWSTR)source; if (!source) @@ -371,8 +370,8 @@ RtlInitUnicodeString(LPUNICODE_STRING target,LPCWSTR source) { /************************************************************************** * RtlFreeUnicodeString [NTDLL] */ -VOID -RtlFreeUnicodeString(LPUNICODE_STRING str) { +VOID WINAPI RtlFreeUnicodeString(LPUNICODE_STRING str) +{ if (str->Buffer) HeapFree(GetProcessHeap(),0,str->Buffer); } @@ -380,8 +379,8 @@ RtlFreeUnicodeString(LPUNICODE_STRING str) { /************************************************************************** * RtlUnicodeToOemN [NTDLL] */ -DWORD /* NTSTATUS */ -RtlUnicodeToOemN(LPSTR oemstr,DWORD oemlen,LPDWORD reslen,LPWSTR unistr,DWORD unilen) { +DWORD /* NTSTATUS */ WINAPI RtlUnicodeToOemN(LPSTR oemstr,DWORD oemlen,LPDWORD reslen,LPWSTR unistr,DWORD unilen) +{ DWORD len; LPSTR x; @@ -398,8 +397,7 @@ RtlUnicodeToOemN(LPSTR oemstr,DWORD oemlen,LPDWORD reslen,LPWSTR unistr,DWORD un /************************************************************************** * RtlUnicodeStringToOemString [NTDLL] */ -DWORD /* NTSTATUS */ -RtlUnicodeStringToOemString(LPANSI_STRING oem,LPUNICODE_STRING uni,BOOL32 alloc) +DWORD /* NTSTATUS */ WINAPI RtlUnicodeStringToOemString(LPANSI_STRING oem,LPUNICODE_STRING uni,BOOL32 alloc) { if (alloc) { oem->Buffer = (LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,uni->Length/2)+1; @@ -413,8 +411,7 @@ RtlUnicodeStringToOemString(LPANSI_STRING oem,LPUNICODE_STRING uni,BOOL32 alloc) /************************************************************************** * RtlUnicodeStringToAnsiString [NTDLL] */ -DWORD /* NTSTATUS */ -RtlUnicodeStringToAnsiString(LPUNICODE_STRING uni,LPANSI_STRING oem,BOOL32 alloc) +DWORD /* NTSTATUS */ WINAPI RtlUnicodeStringToAnsiString(LPUNICODE_STRING uni,LPANSI_STRING oem,BOOL32 alloc) { if (alloc) { oem->Buffer = (LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,uni->Length/2)+1; @@ -428,8 +425,8 @@ RtlUnicodeStringToAnsiString(LPUNICODE_STRING uni,LPANSI_STRING oem,BOOL32 alloc /************************************************************************** * RtlNtStatusToDosErro [NTDLL] */ -DWORD -RtlNtStatusToDosError(DWORD error) { +DWORD WINAPI RtlNtStatusToDosError(DWORD error) +{ /* FIXME: map STATUS_ to ERROR_ */ return error; } @@ -437,8 +434,8 @@ RtlNtStatusToDosError(DWORD error) { /************************************************************************** * RtlGetNtProductType [NTDLL] */ -DWORD -RtlGetNtProductType(LPVOID x) { +DWORD WINAPI RtlGetNtProductType(LPVOID x) +{ /* FIXME : find documentation for this one */ return 0; } @@ -446,8 +443,8 @@ RtlGetNtProductType(LPVOID x) { /************************************************************************** * RtlUpcaseUnicodeString [NTDLL] */ -DWORD -RtlUpcaseUnicodeString(LPUNICODE_STRING dest,LPUNICODE_STRING src,BOOL32 doalloc) { +DWORD WINAPI RtlUpcaseUnicodeString(LPUNICODE_STRING dest,LPUNICODE_STRING src,BOOL32 doalloc) +{ LPWSTR s,t; DWORD i,len; @@ -471,16 +468,16 @@ RtlUpcaseUnicodeString(LPUNICODE_STRING dest,LPUNICODE_STRING src,BOOL32 doalloc /************************************************************************** * RtlxOemStringToUnicodeSize [NTDLL] */ -UINT32 -RtlxOemStringToUnicodeSize(LPSTRING str) { +UINT32 WINAPI RtlxOemStringToUnicodeSize(LPSTRING str) +{ return str->Length*2+2; } /************************************************************************** * RtlxAnsiStringToUnicodeSize [NTDLL] */ -UINT32 -RtlxAnsiStringToUnicodeSize(LPANSI_STRING str) { +UINT32 WINAPI RtlxAnsiStringToUnicodeSize(LPANSI_STRING str) +{ return str->Length*2+2; } @@ -489,10 +486,9 @@ RtlxAnsiStringToUnicodeSize(LPANSI_STRING str) { * * FIXME: convert to UNC or whatever is expected here */ -BOOL32 -RtlDosPathNameToNtPathName_U( - LPWSTR from,LPUNICODE_STRING us,DWORD x2,DWORD x3 -) { +BOOL32 WINAPI RtlDosPathNameToNtPathName_U( + LPWSTR from,LPUNICODE_STRING us,DWORD x2,DWORD x3) +{ LPSTR fromA = HEAP_strdupWtoA(GetProcessHeap(),0,from); fprintf(stderr,"RtlDosPathNameToNtPathName_U(%s,%p,%08lx,%08lx)\n", @@ -506,8 +502,8 @@ RtlDosPathNameToNtPathName_U( /************************************************************************** * NtOpenFile [NTDLL] */ -DWORD -NtOpenFile(DWORD x1,DWORD flags,DWORD x3,DWORD x4,DWORD alignment,DWORD x6) { +DWORD WINAPI NtOpenFile(DWORD x1,DWORD flags,DWORD x3,DWORD x4,DWORD alignment,DWORD x6) +{ fprintf(stderr,"NtOpenFile(%08lx,%08lx,%08lx,%08lx,%08lx,%08lx)\n", x1,flags,x3,x4,alignment,x6 ); diff --git a/misc/ole2.c b/misc/ole2.c index 3ca5010b63c..5f65195bbe4 100644 --- a/misc/ole2.c +++ b/misc/ole2.c @@ -15,7 +15,7 @@ /*********************************************************************** * OleBuildVersion [OLE.1] */ -DWORD OleBuildVersion() +DWORD WINAPI OleBuildVersion() { dprintf_ole(stddeb,"OleBuildVersion()\n"); return (rmm<<16)+rup; @@ -24,7 +24,7 @@ DWORD OleBuildVersion() /*********************************************************************** * OleInitialize [OLE2.2] */ -HRESULT OleInitialize(LPVOID reserved) +HRESULT WINAPI OleInitialize(LPVOID reserved) { dprintf_ole(stdnimp,"OleInitialize\n"); return S_OK; @@ -33,7 +33,7 @@ HRESULT OleInitialize(LPVOID reserved) /*********************************************************************** * OleUnitialize [OLE2.3] */ -void OleUninitialize() +void WINAPI OleUninitialize() { dprintf_ole(stdnimp,"OleUninitialize()\n"); } diff --git a/misc/ole2disp.c b/misc/ole2disp.c index 69a08bfa21b..76f6181ed8c 100644 --- a/misc/ole2disp.c +++ b/misc/ole2disp.c @@ -36,7 +36,7 @@ static void* BSTR_GetAddr(BSTR in) /*********************************************************************** * SysAllocString [OLE2DISP.2] */ -BSTR SysAllocString(char *in) +BSTR WINAPI SysAllocString(char *in) { BSTR out=BSTR_AllocBytes(strlen(in)+1); if(!out)return 0; @@ -47,7 +47,7 @@ BSTR SysAllocString(char *in) /*********************************************************************** * SysReAllocString [OLE2DISP.3] */ -int SysReAllocString(BSTR *old,char *in) +int WINAPI SysReAllocString(BSTR *old,char *in) { BSTR new=SysAllocString(in); BSTR_Free(*old); @@ -58,7 +58,7 @@ int SysReAllocString(BSTR *old,char *in) /*********************************************************************** * SysAllocStringLen [OLE2DISP.4] */ -BSTR SysAllocStringLen(char *in, int len) +BSTR WINAPI SysAllocStringLen(char *in, int len) { BSTR out=BSTR_AllocBytes(len+1); if(!out)return 0; @@ -69,7 +69,7 @@ BSTR SysAllocStringLen(char *in, int len) /*********************************************************************** * SysReAllocStringLen [OLE2DISP.5] */ -int SysReAllocStringLen(BSTR *old,char *in,int len) +int WINAPI SysReAllocStringLen(BSTR *old,char *in,int len) { BSTR new=SysAllocStringLen(in,len); BSTR_Free(*old); @@ -80,7 +80,7 @@ int SysReAllocStringLen(BSTR *old,char *in,int len) /*********************************************************************** * SysFreeString [OLE2DISP.6] */ -void SysFreeString(BSTR in) +void WINAPI SysFreeString(BSTR in) { BSTR_Free(in); } @@ -88,7 +88,7 @@ void SysFreeString(BSTR in) /*********************************************************************** * SysStringLen [OLE2DISP.7] */ -int SysStringLen(BSTR str) +int WINAPI SysStringLen(BSTR str) { return strlen(BSTR_GetAddr(str)); } diff --git a/misc/ole2nls.c b/misc/ole2nls.c index 53ad95ee645..df08c93d99d 100644 --- a/misc/ole2nls.c +++ b/misc/ole2nls.c @@ -183,7 +183,7 @@ const struct map_lcid2str { /*********************************************************************** * GetUserDefaultLCID (OLE2NLS.1) */ -DWORD GetUserDefaultLCID() +DWORD WINAPI GetUserDefaultLCID() { /* Default sorting, neutral sublanguage */ switch(Options.language) @@ -224,7 +224,7 @@ DWORD GetUserDefaultLCID() /*********************************************************************** * GetSystemDefaultLCID (OLE2NLS.2) */ -DWORD GetSystemDefaultLCID() +DWORD WINAPI GetSystemDefaultLCID() { return GetUserDefaultLCID(); } @@ -232,7 +232,7 @@ DWORD GetSystemDefaultLCID() /*********************************************************************** * GetUserDefaultLangID (OLE2NLS.3) */ -WORD GetUserDefaultLangID() +WORD WINAPI GetUserDefaultLangID() { return (WORD)GetUserDefaultLCID(); } @@ -240,7 +240,7 @@ WORD GetUserDefaultLangID() /*********************************************************************** * GetSystemDefaultLangID (OLE2NLS.4) */ -WORD GetSystemDefaultLangID() +WORD WINAPI GetSystemDefaultLangID() { return GetUserDefaultLangID(); } @@ -249,12 +249,12 @@ WORD GetSystemDefaultLangID() * GetLocaleInfoA (OLE2NLS.5) * Is the last parameter really WORD for Win16? */ -INT16 GetLocaleInfo16(LCID lcid,LCTYPE LCType,LPSTR buf,INT16 len) +INT16 WINAPI GetLocaleInfo16(LCID lcid,LCTYPE LCType,LPSTR buf,INT16 len) { return GetLocaleInfo32A(lcid,LCType,buf,len); } -INT32 GetLocaleInfo32A(LCID lcid,LCTYPE LCType,LPSTR buf,INT32 len) +INT32 WINAPI GetLocaleInfo32A(LCID lcid,LCTYPE LCType,LPSTR buf,INT32 len) { char *retString; int found,i; @@ -1696,7 +1696,7 @@ LOCVAL(LOCALE_INEGSEPBYSPACE, "0") * GetLocaleInfo32W (KERNEL32.230) * Is the last parameter really WORD for Win16? */ -INT32 GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len) +INT32 WINAPI GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len) { LPSTR abuf = (LPSTR)HeapAlloc(GetProcessHeap(),0,len); @@ -1710,8 +1710,8 @@ INT32 GetLocaleInfo32W(LCID lcid,LCTYPE LCType,LPWSTR wbuf,INT32 len) /*********************************************************************** * CompareString16 (OLE2NLS.8) */ -UINT16 CompareString16(DWORD lcid,DWORD fdwStyle, - LPCSTR s1,DWORD l1,LPCSTR s2,DWORD l2) +UINT16 WINAPI CompareString16(DWORD lcid,DWORD fdwStyle, + LPCSTR s1,DWORD l1,LPCSTR s2,DWORD l2) { return (UINT16)CompareString32A(lcid,fdwStyle,s1,l1,s2,l2); } @@ -1721,8 +1721,8 @@ UINT16 CompareString16(DWORD lcid,DWORD fdwStyle, * This implementation ignores the locale * FIXME */ -UINT32 CompareString32A(DWORD lcid, DWORD fdwStyle, - LPCSTR s1, DWORD l1, LPCSTR s2,DWORD l2) +UINT32 WINAPI CompareString32A(DWORD lcid, DWORD fdwStyle, + LPCSTR s1, DWORD l1, LPCSTR s2,DWORD l2) { int len,ret; if(fdwStyle & NORM_IGNORENONSPACE) @@ -1751,8 +1751,8 @@ UINT32 CompareString32A(DWORD lcid, DWORD fdwStyle, * This implementation ignores the locale * FIXME */ -UINT32 CompareString32W(DWORD lcid, DWORD fdwStyle, - LPCWSTR s1, DWORD l1, LPCWSTR s2,DWORD l2) +UINT32 WINAPI CompareString32W(DWORD lcid, DWORD fdwStyle, + LPCWSTR s1, DWORD l1, LPCWSTR s2,DWORD l2) { int len,ret; if(fdwStyle & NORM_IGNORENONSPACE) @@ -1778,7 +1778,7 @@ UINT32 CompareString32W(DWORD lcid, DWORD fdwStyle, /*********************************************************************** * SetLocalInfoA (KERNEL32.499) */ -BOOL16 SetLocaleInfoA(DWORD lcid, DWORD lctype, LPCSTR data) +BOOL16 WINAPI SetLocaleInfoA(DWORD lcid, DWORD lctype, LPCSTR data) { fprintf(stdnimp,"SetLocaleInfoA(%ld,%ld,%s)\n",lcid,lctype,data); return TRUE; @@ -1787,7 +1787,8 @@ BOOL16 SetLocaleInfoA(DWORD lcid, DWORD lctype, LPCSTR data) /*********************************************************************** * IsValidLocale (KERNEL32.361) */ -BOOL32 IsValidLocale(LCID lcid,DWORD flags) { +BOOL32 WINAPI IsValidLocale(LCID lcid,DWORD flags) +{ /* we support ANY language. Well, at least say that...*/ return TRUE; } @@ -1795,7 +1796,8 @@ BOOL32 IsValidLocale(LCID lcid,DWORD flags) { /*********************************************************************** * EnumSystemLocales32W (KERNEL32.93) */ -BOOL32 EnumSystemLocales32W( LOCALE_ENUMPROC32W lpfnLocaleEnum, DWORD flags ) +BOOL32 WINAPI EnumSystemLocales32W( LOCALE_ENUMPROC32W lpfnLocaleEnum, + DWORD flags ) { int i; BOOL32 ret; @@ -1838,8 +1840,9 @@ BOOL32 EnumSystemLocales32W( LOCALE_ENUMPROC32W lpfnLocaleEnum, DWORD flags ) /*********************************************************************** * EnumSystemLocales32A (KERNEL32.92) */ -BOOL32 -EnumSystemLocales32A(LOCALE_ENUMPROC32A lpfnLocaleEnum,DWORD flags) { +BOOL32 WINAPI EnumSystemLocales32A(LOCALE_ENUMPROC32A lpfnLocaleEnum, + DWORD flags) +{ int i; CHAR buffer[200]; HKEY xhkey; @@ -1872,22 +1875,25 @@ EnumSystemLocales32A(LOCALE_ENUMPROC32A lpfnLocaleEnum,DWORD flags) { /*********************************************************************** * GetStringTypeA (OLE2NLS.7) */ -BOOL16 -GetStringType16(LCID locale,DWORD dwInfoType,LPCSTR src,INT16 cchSrc,LPWORD chartype) { +BOOL16 WINAPI GetStringType16(LCID locale,DWORD dwInfoType,LPCSTR src, + INT16 cchSrc,LPWORD chartype) +{ return GetStringTypeEx32A(locale,dwInfoType,src,cchSrc,chartype); } /*********************************************************************** * GetStringTypeA (KERNEL32.277) */ -BOOL32 -GetStringType32A(LCID locale,DWORD dwInfoType,LPCSTR src,INT32 cchSrc,LPWORD chartype) { +BOOL32 WINAPI GetStringType32A(LCID locale,DWORD dwInfoType,LPCSTR src, + INT32 cchSrc,LPWORD chartype) +{ return GetStringTypeEx32A(locale,dwInfoType,src,cchSrc,chartype); } /*********************************************************************** * GetStringTypeExA (KERNEL32.276) */ -BOOL32 -GetStringTypeEx32A(LCID locale,DWORD dwInfoType,LPCSTR src,INT32 cchSrc,LPWORD chartype) { +BOOL32 WINAPI GetStringTypeEx32A(LCID locale,DWORD dwInfoType,LPCSTR src, + INT32 cchSrc,LPWORD chartype) +{ int i; switch (dwInfoType) { @@ -1922,8 +1928,9 @@ GetStringTypeEx32A(LCID locale,DWORD dwInfoType,LPCSTR src,INT32 cchSrc,LPWORD c * GetStringTypeW (KERNEL32.279) * Yes, this is missing LCID locale. MS fault. */ -BOOL32 -GetStringType32W(DWORD dwInfoType,LPCWSTR src,INT32 cchSrc,LPWORD chartype) { +BOOL32 WINAPI GetStringType32W(DWORD dwInfoType,LPCWSTR src,INT32 cchSrc, + LPWORD chartype) +{ return GetStringTypeEx32W(0/*defaultlocale*/,dwInfoType,src,cchSrc,chartype); } @@ -1931,8 +1938,9 @@ GetStringType32W(DWORD dwInfoType,LPCWSTR src,INT32 cchSrc,LPWORD chartype) { * GetStringTypeW (KERNEL32.278) * FIXME: unicode chars are assumed chars */ -BOOL32 -GetStringTypeEx32W(LCID locale,DWORD dwInfoType,LPCWSTR src,INT32 cchSrc,LPWORD chartype) { +BOOL32 WINAPI GetStringTypeEx32W(LCID locale,DWORD dwInfoType,LPCWSTR src, + INT32 cchSrc,LPWORD chartype) +{ int i; switch (dwInfoType) { @@ -1955,15 +1963,17 @@ GetStringTypeEx32W(LCID locale,DWORD dwInfoType,LPCWSTR src,INT32 cchSrc,LPWORD if (isspace(src[i])) chartype[i]|=C1_SPACE; if (ispunct(src[i])) chartype[i]|=C1_PUNCT; if (iscntrl(src[i])) chartype[i]|=C1_CNTRL; - if (isblank(src[i])) chartype[i]|=C1_BLANK; +/* FIXME: isblank() is a GNU extension */ +/* if (isblank(src[i])) chartype[i]|=C1_BLANK; */ + if ((src[i] == ' ') || (src[i] == '\t')) chartype[i]|=C1_BLANK; /* C1_XDIGIT */ } return TRUE; } /* VerLanguageName [VER.10] */ -DWORD -VerLanguageName16(UINT16 langid,LPSTR langname,UINT16 langnamelen) { +DWORD WINAPI VerLanguageName16(UINT16 langid,LPSTR langname,UINT16 langnamelen) +{ int i; char *buf; @@ -1987,14 +1997,16 @@ VerLanguageName16(UINT16 langid,LPSTR langname,UINT16 langnamelen) { } /* VerLanguageNameA [VERSION.9] */ -DWORD -VerLanguageName32A(UINT32 langid,LPSTR langname,UINT32 langnamelen) { +DWORD WINAPI VerLanguageName32A(UINT32 langid,LPSTR langname, + UINT32 langnamelen) +{ return VerLanguageName16(langid,langname,langnamelen); } /* VerLanguageNameW [VERSION.10] */ -DWORD -VerLanguageName32W(UINT32 langid,LPWSTR langname,UINT32 langnamelen) { +DWORD WINAPI VerLanguageName32W(UINT32 langid,LPWSTR langname, + UINT32 langnamelen) +{ int i; char buffer[80]; LPWSTR keyname; diff --git a/misc/olecli.c b/misc/olecli.c index 2c7ab880293..bdc2aaea326 100644 --- a/misc/olecli.c +++ b/misc/olecli.c @@ -18,8 +18,8 @@ extern LONG OLE_current_handle; /*********************************************************************** * OleRegisterClientDoc */ -OLESTATUS OleRegisterClientDoc( LPCSTR classname, LPCSTR docname, - LONG reserved, LHCLIENTDOC *hRet ) +OLESTATUS WINAPI OleRegisterClientDoc( LPCSTR classname, LPCSTR docname, + LONG reserved, LHCLIENTDOC *hRet ) { dprintf_ole(stdnimp,"OleRegisterClientDoc:%s %s\n",classname,docname); *hRet=++OLE_current_handle; @@ -29,7 +29,7 @@ OLESTATUS OleRegisterClientDoc( LPCSTR classname, LPCSTR docname, /*********************************************************************** * OleRenameClientDoc */ -OLESTATUS OleRenameClientDoc(LHCLIENTDOC hDoc, LPCSTR newName) +OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC hDoc, LPCSTR newName) { dprintf_ole(stdnimp,"OleRenameClientDoc: %ld %s\n",hDoc, newName); return OLE_OK; @@ -38,7 +38,7 @@ OLESTATUS OleRenameClientDoc(LHCLIENTDOC hDoc, LPCSTR newName) /*********************************************************************** * OleRevokeClientDoc */ -OLESTATUS OleRevokeClientDoc(LHCLIENTDOC hServerDoc) +OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC hServerDoc) { dprintf_ole(stdnimp,"OleRevokeClientDoc:%ld\n",hServerDoc); return OLE_OK; @@ -47,7 +47,7 @@ OLESTATUS OleRevokeClientDoc(LHCLIENTDOC hServerDoc) /*********************************************************************** * OleIsDcMeta */ -BOOL16 OleIsDcMeta(HDC16 hdc) +BOOL16 WINAPI OleIsDcMeta(HDC16 hdc) { dprintf_ole(stddeb,"OleIsDCMeta(%04x)\n",hdc); return GDI_GetObjPtr( hdc, METAFILE_DC_MAGIC ) != 0; diff --git a/misc/olesvr.c b/misc/olesvr.c index b9e41ff29a7..0ebc3e2ae8d 100644 --- a/misc/olesvr.c +++ b/misc/olesvr.c @@ -17,9 +17,9 @@ LONG OLE_current_handle; /*********************************************************************** * OleRegisterServer */ -OLESTATUS OleRegisterServer( LPCSTR name, LPOLESERVER serverStruct, - LHSERVER *hRet, HINSTANCE16 hServer, - OLE_SERVER_USE use ) +OLESTATUS WINAPI OleRegisterServer( LPCSTR name, LPOLESERVER serverStruct, + LHSERVER *hRet, HINSTANCE16 hServer, + OLE_SERVER_USE use ) { dprintf_ole(stdnimp,"OleRegisterServer:%s\n",name); *hRet=++OLE_current_handle; @@ -30,7 +30,7 @@ OLESTATUS OleRegisterServer( LPCSTR name, LPOLESERVER serverStruct, /*********************************************************************** * OleBlockServer */ -OLESTATUS OleBlockServer(LHSERVER hServer) +OLESTATUS WINAPI OleBlockServer(LHSERVER hServer) { fprintf(stdnimp,"OleBlockServer:%ld\n",hServer); return OLE_OK; @@ -39,7 +39,7 @@ OLESTATUS OleBlockServer(LHSERVER hServer) /*********************************************************************** * OleUnblockServer */ -OLESTATUS OleUnblockServer(LHSERVER hServer, BOOL16 *block) +OLESTATUS WINAPI OleUnblockServer(LHSERVER hServer, BOOL16 *block) { fprintf(stdnimp,"OleUnblockServer:%ld\n",hServer); /* no more blocked messages :) */ @@ -50,8 +50,9 @@ OLESTATUS OleUnblockServer(LHSERVER hServer, BOOL16 *block) /*********************************************************************** * OleRegisterServerDoc */ -OLESTATUS OleRegisterServerDoc( LHSERVER hServer, LPCSTR docname, - LPOLESERVERDOC document, LHSERVERDOC *hRet) +OLESTATUS WINAPI OleRegisterServerDoc( LHSERVER hServer, LPCSTR docname, + LPOLESERVERDOC document, + LHSERVERDOC *hRet) { dprintf_ole(stdnimp,"OleRegisterServerDoc:%ld,%s\n", hServer, docname); *hRet=++OLE_current_handle; @@ -61,7 +62,7 @@ OLESTATUS OleRegisterServerDoc( LHSERVER hServer, LPCSTR docname, /*********************************************************************** * OleRevokeServerDoc */ -OLESTATUS OleRevokeServerDoc(LHSERVERDOC hServerDoc) +OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC hServerDoc) { dprintf_ole(stdnimp,"OleRevokeServerDoc:%ld\n",hServerDoc); return OLE_OK; @@ -70,7 +71,7 @@ OLESTATUS OleRevokeServerDoc(LHSERVERDOC hServerDoc) /*********************************************************************** * OleRevokeServer */ -OLESTATUS OleRevokeServer(LHSERVER hServer) +OLESTATUS WINAPI OleRevokeServer(LHSERVER hServer) { dprintf_ole(stdnimp,"OleRevokeServer:%ld\n",hServer); return OLE_OK; diff --git a/misc/printdrv.c b/misc/printdrv.c index df0bb96334c..2a6cc30a90f 100644 --- a/misc/printdrv.c +++ b/misc/printdrv.c @@ -13,7 +13,7 @@ #include "winerror.h" -INT16 StartDoc16( HDC16 hdc, const DOCINFO16 *lpdoc ) +INT16 WINAPI StartDoc16( HDC16 hdc, const DOCINFO16 *lpdoc ) { INT16 retVal; printf("In startdoc16(%p)\n", lpdoc ); @@ -28,17 +28,16 @@ INT16 StartDoc16( HDC16 hdc, const DOCINFO16 *lpdoc ) return retVal; } -INT16 -EndDoc16(HDC16 hdc) +INT16 WINAPI EndDoc16(HDC16 hdc) { return Escape16(hdc, ENDDOC, 0, 0, 0); } -DWORD -DrvGetPrinterData(LPSTR lpPrinter, LPSTR lpProfile, LPDWORD lpType, - LPBYTE lpPrinterData, int cbData, LPDWORD lpNeeded) +DWORD WINAPI DrvGetPrinterData(LPSTR lpPrinter, LPSTR lpProfile, + LPDWORD lpType, LPBYTE lpPrinterData, + int cbData, LPDWORD lpNeeded) { fprintf(stderr,"In DrvGetPrinterData "); if (HIWORD(lpPrinter)) @@ -55,9 +54,9 @@ DrvGetPrinterData(LPSTR lpPrinter, LPSTR lpProfile, LPDWORD lpType, -DWORD -DrvSetPrinterData(LPSTR lpPrinter, LPSTR lpProfile, LPDWORD lpType, - LPBYTE lpPrinterData, DWORD dwSize) +DWORD WINAPI DrvSetPrinterData(LPSTR lpPrinter, LPSTR lpProfile, + LPDWORD lpType, LPBYTE lpPrinterData, + DWORD dwSize) { fprintf(stderr,"In DrvSetPrinterData "); if (HIWORD(lpPrinter)) @@ -73,4 +72,20 @@ DrvSetPrinterData(LPSTR lpPrinter, LPSTR lpProfile, LPDWORD lpType, } +INT32 WINAPI DeviceCapabilities32A(LPCSTR printer,LPCSTR target,WORD z, + LPSTR a,LPDEVMODE32A b) +{ + fprintf(stderr,"DeviceCapabilitiesA(%s,%s,%d,%p,%p)\n",printer,target,z,a,b); + return 1; +} + +LONG WINAPI DocumentProperties32A(HWND32 hWnd,HANDLE32 hPrinter, + LPSTR pDeviceName, LPDEVMODE32A pDevModeOutput, + LPDEVMODE32A pDevModeInput,DWORD fMode ) +{ + fprintf(stderr,"DocumentPropertiesA(%d,%d,%s,%p,%p,%d)\n", + hWnd,hPrinter,pDeviceName,pDevModeOutput,pDevModeInput,fMode + ); + return 1; +} diff --git a/misc/registry.c b/misc/registry.c index 791e5db9bc6..56dea7d12eb 100644 --- a/misc/registry.c +++ b/misc/registry.c @@ -543,7 +543,7 @@ _find_or_add_key(LPKEYSTRUCT lpkey,LPWSTR keyname) { lplpkey= &(lpkey->nextsub); lpxkey = *lplpkey; while (lpxkey) { - if (!lstrcmp32W(lpxkey->keyname,keyname)) + if (!lstrcmpi32W(lpxkey->keyname,keyname)) break; lplpkey = &(lpxkey->next); lpxkey = *lplpkey; @@ -573,7 +573,7 @@ _find_or_add_value( break; } else { if ( val->name!=NULL && - !lstrcmp32W(val->name,name) + !lstrcmpi32W(val->name,name) ) break; } @@ -1625,7 +1625,7 @@ SHELL_LoadRegistry() { */ /* RegOpenKeyExW [ADVAPI32.150] */ -DWORD RegOpenKeyEx32W( +DWORD WINAPI RegOpenKeyEx32W( HKEY hkey, LPCWSTR lpszSubKey, DWORD dwReserved, @@ -1654,7 +1654,7 @@ DWORD RegOpenKeyEx32W( while (wps[i]) { lpxkey=lpNextKey->nextsub; while (lpxkey) { - if (!lstrcmp32W(wps[i],lpxkey->keyname)) + if (!lstrcmpi32W(wps[i],lpxkey->keyname)) break; lpxkey=lpxkey->next; } @@ -1672,7 +1672,7 @@ DWORD RegOpenKeyEx32W( } /* RegOpenKeyW [ADVAPI32.151] */ -DWORD RegOpenKey32W( +DWORD WINAPI RegOpenKey32W( HKEY hkey, LPCWSTR lpszSubKey, LPHKEY retkey @@ -1685,7 +1685,7 @@ DWORD RegOpenKey32W( /* RegOpenKeyExA [ADVAPI32.149] */ -DWORD RegOpenKeyEx32A( +DWORD WINAPI RegOpenKeyEx32A( HKEY hkey, LPCSTR lpszSubKey, DWORD dwReserved, @@ -1709,7 +1709,7 @@ DWORD RegOpenKeyEx32A( } /* RegOpenKeyA [ADVAPI32.148] */ -DWORD RegOpenKey32A( +DWORD WINAPI RegOpenKey32A( HKEY hkey, LPCSTR lpszSubKey, LPHKEY retkey @@ -1721,7 +1721,7 @@ DWORD RegOpenKey32A( } /* RegOpenKey [SHELL.1] [KERNEL.217] */ -DWORD RegOpenKey16( +DWORD WINAPI RegOpenKey16( HKEY hkey, LPCSTR lpszSubKey, LPHKEY retkey @@ -1746,7 +1746,7 @@ DWORD RegOpenKey16( */ /* RegCreateKeyExW [ADVAPI32.131] */ -DWORD RegCreateKeyEx32W( +DWORD WINAPI RegCreateKeyEx32W( HKEY hkey, LPCWSTR lpszSubKey, DWORD dwReserved, @@ -1790,7 +1790,7 @@ DWORD RegCreateKeyEx32W( while (wps[i]) { lpxkey=lpNextKey->nextsub; while (lpxkey) { - if (!lstrcmp32W(wps[i],lpxkey->keyname)) + if (!lstrcmpi32W(wps[i],lpxkey->keyname)) break; lpxkey=lpxkey->next; } @@ -1851,7 +1851,7 @@ DWORD RegCreateKeyEx32W( } /* RegCreateKeyW [ADVAPI32.132] */ -DWORD RegCreateKey32W( +DWORD WINAPI RegCreateKey32W( HKEY hkey, LPCWSTR lpszSubKey, LPHKEY retkey @@ -1876,7 +1876,7 @@ DWORD RegCreateKey32W( } /* RegCreateKeyExA [ADVAPI32.130] */ -DWORD RegCreateKeyEx32A( +DWORD WINAPI RegCreateKeyEx32A( HKEY hkey, LPCSTR lpszSubKey, DWORD dwReserved, @@ -1928,7 +1928,7 @@ DWORD RegCreateKeyEx32A( } /* RegCreateKeyA [ADVAPI32.129] */ -DWORD RegCreateKey32A( +DWORD WINAPI RegCreateKey32A( HKEY hkey, LPCSTR lpszSubKey, LPHKEY retkey @@ -1952,7 +1952,7 @@ DWORD RegCreateKey32A( } /* RegCreateKey [SHELL.2] [KERNEL.218] */ -DWORD RegCreateKey16( +DWORD WINAPI RegCreateKey16( HKEY hkey, LPCSTR lpszSubKey, LPHKEY retkey @@ -1976,7 +1976,7 @@ DWORD RegCreateKey16( */ /* RegQueryValueExW [ADVAPI32.158] */ -DWORD RegQueryValueEx32W( +DWORD WINAPI RegQueryValueEx32W( HKEY hkey, LPWSTR lpszValueName, LPDWORD lpdwReserved, @@ -2002,7 +2002,7 @@ DWORD RegQueryValueEx32W( } else { for (i=0;inrofvalues;i++) if ( lpkey->values[i].name && - !lstrcmp32W(lpszValueName,lpkey->values[i].name) + !lstrcmpi32W(lpszValueName,lpkey->values[i].name) ) break; } @@ -2038,7 +2038,7 @@ DWORD RegQueryValueEx32W( } /* RegQueryValueW [ADVAPI32.159] */ -DWORD RegQueryValue32W( +DWORD WINAPI RegQueryValue32W( HKEY hkey, LPWSTR lpszSubKey, LPWSTR lpszData, @@ -2075,7 +2075,7 @@ DWORD RegQueryValue32W( } /* RegQueryValueExA [ADVAPI32.157] */ -DWORD RegQueryValueEx32A( +DWORD WINAPI RegQueryValueEx32A( HKEY hkey, LPSTR lpszValueName, LPDWORD lpdwReserved, @@ -2151,7 +2151,7 @@ DWORD RegQueryValueEx32A( } /* RegQueryValueEx [KERNEL.225] */ -DWORD RegQueryValueEx16( +DWORD WINAPI RegQueryValueEx16( HKEY hkey, LPSTR lpszValueName, LPDWORD lpdwReserved, @@ -2174,7 +2174,7 @@ DWORD RegQueryValueEx16( } /* RegQueryValueA [ADVAPI32.156] */ -DWORD RegQueryValue32A( +DWORD WINAPI RegQueryValue32A( HKEY hkey, LPSTR lpszSubKey, LPSTR lpszData, @@ -2211,7 +2211,7 @@ DWORD RegQueryValue32A( } /* RegQueryValue [SHELL.6] [KERNEL.224] */ -DWORD RegQueryValue16( +DWORD WINAPI RegQueryValue16( HKEY hkey, LPSTR lpszSubKey, LPSTR lpszData, @@ -2238,7 +2238,7 @@ DWORD RegQueryValue16( */ /* RegSetValueExW [ADVAPI32.170] */ -DWORD RegSetValueEx32W( +DWORD WINAPI RegSetValueEx32W( HKEY hkey, LPWSTR lpszValueName, DWORD dwReserved, @@ -2266,7 +2266,7 @@ DWORD RegSetValueEx32W( } else { for (i=0;inrofvalues;i++) if ( lpkey->values[i].name && - !lstrcmp32W(lpszValueName,lpkey->values[i].name) + !lstrcmpi32W(lpszValueName,lpkey->values[i].name) ) break; } @@ -2294,7 +2294,7 @@ DWORD RegSetValueEx32W( } /* RegSetValueExA [ADVAPI32.169] */ -DWORD RegSetValueEx32A( +DWORD WINAPI RegSetValueEx32A( HKEY hkey, LPSTR lpszValueName, DWORD dwReserved, @@ -2327,7 +2327,7 @@ DWORD RegSetValueEx32A( } /* RegSetValueEx [KERNEL.226] */ -DWORD RegSetValueEx16( +DWORD WINAPI RegSetValueEx16( HKEY hkey, LPSTR lpszValueName, DWORD dwReserved, @@ -2342,7 +2342,7 @@ DWORD RegSetValueEx16( } /* RegSetValueW [ADVAPI32.171] */ -DWORD RegSetValue32W( +DWORD WINAPI RegSetValue32W( HKEY hkey, LPCWSTR lpszSubKey, DWORD dwType, @@ -2378,7 +2378,7 @@ DWORD RegSetValue32W( } /* RegSetValueA [ADVAPI32.168] */ -DWORD RegSetValue32A( +DWORD WINAPI RegSetValue32A( HKEY hkey, LPCSTR lpszSubKey, DWORD dwType, @@ -2411,7 +2411,7 @@ DWORD RegSetValue32A( } /* RegSetValue [KERNEL.221] [SHELL.5] */ -DWORD RegSetValue16( +DWORD WINAPI RegSetValue16( HKEY hkey, LPCSTR lpszSubKey, DWORD dwType, @@ -2435,7 +2435,7 @@ DWORD RegSetValue16( */ /* RegEnumKeyExW [ADVAPI32.139] */ -DWORD RegEnumKeyEx32W( +DWORD WINAPI RegEnumKeyEx32W( HKEY hkey, DWORD iSubkey, LPWSTR lpszName, @@ -2475,7 +2475,7 @@ DWORD RegEnumKeyEx32W( } /* RegEnumKeyW [ADVAPI32.140] */ -DWORD RegEnumKey32W( +DWORD WINAPI RegEnumKey32W( HKEY hkey, DWORD iSubkey, LPWSTR lpszName, @@ -2489,7 +2489,7 @@ DWORD RegEnumKey32W( return RegEnumKeyEx32W(hkey,iSubkey,lpszName,&lpcchName,NULL,NULL,NULL,&ft); } /* RegEnumKeyExA [ADVAPI32.138] */ -DWORD RegEnumKeyEx32A( +DWORD WINAPI RegEnumKeyEx32A( HKEY hkey, DWORD iSubkey, LPSTR lpszName, @@ -2546,7 +2546,7 @@ DWORD RegEnumKeyEx32A( } /* RegEnumKeyA [ADVAPI32.137] */ -DWORD RegEnumKey32A( +DWORD WINAPI RegEnumKey32A( HKEY hkey, DWORD iSubkey, LPSTR lpszName, @@ -2570,7 +2570,7 @@ DWORD RegEnumKey32A( } /* RegEnumKey [SHELL.7] [KERNEL.216] */ -DWORD RegEnumKey16( +DWORD WINAPI RegEnumKey16( HKEY hkey, DWORD iSubkey, LPSTR lpszName, @@ -2590,7 +2590,7 @@ DWORD RegEnumKey16( */ /* RegEnumValueW [ADVAPI32.142] */ -DWORD RegEnumValue32W( +DWORD WINAPI RegEnumValue32W( HKEY hkey, DWORD iValue, LPWSTR lpszValue, @@ -2636,7 +2636,7 @@ DWORD RegEnumValue32W( } /* RegEnumValueA [ADVAPI32.141] */ -DWORD RegEnumValue32A( +DWORD WINAPI RegEnumValue32A( HKEY hkey, DWORD iValue, LPSTR lpszValue, @@ -2693,7 +2693,7 @@ DWORD RegEnumValue32A( } /* RegEnumValue [KERNEL.223] */ -DWORD RegEnumValue16( +DWORD WINAPI RegEnumValue16( HKEY hkey, DWORD iValue, LPSTR lpszValue, @@ -2722,7 +2722,7 @@ DWORD RegEnumValue16( * Close registry key */ /* RegCloseKey [SHELL.3] [KERNEL.220] [ADVAPI32.126] */ -DWORD RegCloseKey(HKEY hkey) { +DWORD WINAPI RegCloseKey(HKEY hkey) { dprintf_reg(stddeb,"RegCloseKey(%x)\n",hkey); remove_handle(hkey); return ERROR_SUCCESS; @@ -2734,7 +2734,7 @@ DWORD RegCloseKey(HKEY hkey) { * RegDeleteKey16 -> RegDeleteKey32A -> RegDeleteKey32W */ /* RegDeleteKeyW [ADVAPI32.134] */ -DWORD RegDeleteKey32W(HKEY hkey,LPWSTR lpszSubKey) { +DWORD WINAPI RegDeleteKey32W(HKEY hkey,LPWSTR lpszSubKey) { LPKEYSTRUCT *lplpPrevKey,lpNextKey,lpxkey; LPWSTR *wps; int wpc,i; @@ -2754,7 +2754,7 @@ DWORD RegDeleteKey32W(HKEY hkey,LPWSTR lpszSubKey) { while (inextsub; while (lpxkey) { - if (!lstrcmp32W(wps[i],lpxkey->keyname)) + if (!lstrcmpi32W(wps[i],lpxkey->keyname)) break; lpxkey=lpxkey->next; } @@ -2769,7 +2769,7 @@ DWORD RegDeleteKey32W(HKEY hkey,LPWSTR lpszSubKey) { lpxkey = lpNextKey->nextsub; lplpPrevKey = &(lpNextKey->nextsub); while (lpxkey) { - if (!lstrcmp32W(wps[i],lpxkey->keyname)) + if (!lstrcmpi32W(wps[i],lpxkey->keyname)) break; lplpPrevKey = &(lpxkey->next); lpxkey = lpxkey->next; @@ -2790,7 +2790,7 @@ DWORD RegDeleteKey32W(HKEY hkey,LPWSTR lpszSubKey) { } /* RegDeleteKeyA [ADVAPI32.133] */ -DWORD RegDeleteKey32A(HKEY hkey,LPCSTR lpszSubKey) { +DWORD WINAPI RegDeleteKey32A(HKEY hkey,LPCSTR lpszSubKey) { LPWSTR lpszSubKeyW; DWORD ret; @@ -2804,7 +2804,7 @@ DWORD RegDeleteKey32A(HKEY hkey,LPCSTR lpszSubKey) { } /* RegDeleteKey [SHELL.4] [KERNEL.219] */ -DWORD RegDeleteKey16(HKEY hkey,LPCSTR lpszSubKey) { +DWORD WINAPI RegDeleteKey16(HKEY hkey,LPCSTR lpszSubKey) { dprintf_reg(stddeb,"RegDeleteKey16(%x,%s)\n", hkey,lpszSubKey ); @@ -2818,7 +2818,8 @@ DWORD RegDeleteKey16(HKEY hkey,LPCSTR lpszSubKey) { * RegDeleteValue16 -> RegDeleteValue32A -> RegDeleteValue32W */ /* RegDeleteValueW [ADVAPI32.136] */ -DWORD RegDeleteValue32W(HKEY hkey,LPWSTR lpszValue) { +DWORD WINAPI RegDeleteValue32W(HKEY hkey,LPWSTR lpszValue) +{ DWORD i; LPKEYSTRUCT lpkey; LPKEYVALUE val; @@ -2832,7 +2833,7 @@ DWORD RegDeleteValue32W(HKEY hkey,LPWSTR lpszValue) { if (lpszValue) { for (i=0;inrofvalues;i++) if ( lpkey->values[i].name && - !lstrcmp32W(lpkey->values[i].name,lpszValue) + !lstrcmpi32W(lpkey->values[i].name,lpszValue) ) break; } else { @@ -2859,7 +2860,8 @@ DWORD RegDeleteValue32W(HKEY hkey,LPWSTR lpszValue) { } /* RegDeleteValueA [ADVAPI32.135] */ -DWORD RegDeleteValue32A(HKEY hkey,LPSTR lpszValue) { +DWORD WINAPI RegDeleteValue32A(HKEY hkey,LPSTR lpszValue) +{ LPWSTR lpszValueW; DWORD ret; @@ -2871,13 +2873,15 @@ DWORD RegDeleteValue32A(HKEY hkey,LPSTR lpszValue) { } /* RegDeleteValue [KERNEL.222] */ -DWORD RegDeleteValue16(HKEY hkey,LPSTR lpszValue) { +DWORD WINAPI RegDeleteValue16(HKEY hkey,LPSTR lpszValue) +{ dprintf_reg( stddeb,"RegDeleteValue16(%x,%s)\n", hkey,lpszValue ); return RegDeleteValue32A(hkey,lpszValue); } /* RegFlushKey [ADVAPI32.143] [KERNEL.227] */ -DWORD RegFlushKey(HKEY hkey) { +DWORD WINAPI RegFlushKey(HKEY hkey) +{ dprintf_reg(stddeb,"RegFlushKey(%x), STUB.\n",hkey); return SHELL_ERROR_SUCCESS; } @@ -2885,7 +2889,7 @@ DWORD RegFlushKey(HKEY hkey) { /* FIXME: lpcchXXXX ... is this counting in WCHARS or in BYTEs ?? */ /* RegQueryInfoKeyW [ADVAPI32.153] */ -DWORD RegQueryInfoKey32W( +DWORD WINAPI RegQueryInfoKey32W( HKEY hkey, LPWSTR lpszClass, LPDWORD lpcchClass, @@ -2961,7 +2965,7 @@ DWORD RegQueryInfoKey32W( } /* RegQueryInfoKeyA [ADVAPI32.152] */ -DWORD RegQueryInfoKey32A( +DWORD WINAPI RegQueryInfoKey32A( HKEY hkey, LPSTR lpszClass, LPDWORD lpcchClass, @@ -3014,7 +3018,8 @@ DWORD RegQueryInfoKey32A( return ret; } /* RegConnectRegistryA [ADVAPI32.127] */ -DWORD RegConnectRegistry32A(LPCSTR machine,HKEY hkey,LPHKEY reskey) { +DWORD WINAPI RegConnectRegistry32A(LPCSTR machine,HKEY hkey,LPHKEY reskey) +{ fprintf(stderr,"RegConnectRegistry32A(%s,%08x,%p), STUB.\n", machine,hkey,reskey ); diff --git a/misc/shell.c b/misc/shell.c index 041fc8bef51..b3a9ffe3c94 100644 --- a/misc/shell.c +++ b/misc/shell.c @@ -62,7 +62,7 @@ static UINT16 uMsgShellActivate = 0; /************************************************************************* * DragAcceptFiles [SHELL.9] */ -void DragAcceptFiles(HWND16 hWnd, BOOL16 b) +void WINAPI DragAcceptFiles(HWND16 hWnd, BOOL16 b) { WND* wnd = WIN_FindWndPtr(hWnd); @@ -75,7 +75,8 @@ void DragAcceptFiles(HWND16 hWnd, BOOL16 b) /************************************************************************* * DragQueryFile [SHELL.11] */ -UINT16 DragQueryFile(HDROP16 hDrop, WORD wFile, LPSTR lpszFile, WORD wLength) +UINT16 WINAPI DragQueryFile(HDROP16 hDrop, WORD wFile, LPSTR lpszFile, + WORD wLength) { /* hDrop is a global memory block allocated with GMEM_SHARE * with DROPFILESTRUCT as a header and filenames following @@ -116,7 +117,7 @@ UINT16 DragQueryFile(HDROP16 hDrop, WORD wFile, LPSTR lpszFile, WORD wLength) /************************************************************************* * DragFinish [SHELL.12] */ -void DragFinish(HDROP16 h) +void WINAPI DragFinish(HDROP16 h) { GlobalFree16((HGLOBAL16)h); } @@ -125,7 +126,7 @@ void DragFinish(HDROP16 h) /************************************************************************* * DragQueryPoint [SHELL.13] */ -BOOL16 DragQueryPoint(HDROP16 hDrop, POINT16 *p) +BOOL16 WINAPI DragQueryPoint(HDROP16 hDrop, POINT16 *p) { LPDROPFILESTRUCT lpDropFileStruct; BOOL16 bRet; @@ -143,8 +144,7 @@ BOOL16 DragQueryPoint(HDROP16 hDrop, POINT16 *p) * SHELL_FindExecutable * Utility for code sharing between FindExecutable and ShellExecute */ -static HINSTANCE16 SHELL_FindExecutable( LPCSTR lpFile, - LPCSTR lpDirectory, +static HINSTANCE32 SHELL_FindExecutable( LPCSTR lpFile, LPCSTR lpOperation, LPSTR lpResult) { @@ -155,15 +155,13 @@ static HINSTANCE16 SHELL_FindExecutable( LPCSTR lpFile, char command[256]; /* command from registry */ LONG commandlen=256; /* This is the most DOS can handle :) */ char buffer[256]; /* Used to GetProfileString */ - HINSTANCE16 retval=31; /* default - 'No association was found' */ + HINSTANCE32 retval=31; /* default - 'No association was found' */ char *tok; /* token pointer */ int i; /* random counter */ char xlpFile[256]; /* result of SearchPath */ - dprintf_exec(stddeb, "SHELL_FindExecutable: File %s, Dir %s\n", - (lpFile != NULL?lpFile:"-"), - (lpDirectory != NULL?lpDirectory:"-")); - + dprintf_exec(stddeb, "SHELL_FindExecutable: %s\n", + (lpFile != NULL?lpFile:"-") ); lpResult[0]='\0'; /* Start off with an empty return string */ /* trap NULL parameters on entry */ @@ -172,7 +170,8 @@ static HINSTANCE16 SHELL_FindExecutable( LPCSTR lpFile, /* FIXME - should throw a warning, perhaps! */ return 2; /* File not found. Close enough, I guess. */ } - if (SearchPath32A(lpDirectory,lpFile,".exe",sizeof(xlpFile),xlpFile,NULL)) + + if (SearchPath32A( NULL, lpFile,".exe",sizeof(xlpFile),xlpFile,NULL)) lpFile = xlpFile; /* First thing we need is the file's extension */ @@ -215,7 +214,7 @@ static HINSTANCE16 SHELL_FindExecutable( LPCSTR lpFile, * attached */ dprintf_exec(stddeb, "SHELL_FindExecutable: found %s\n", lpResult); - return 33; + return 33; /* Greater than 32 to indicate success FIXME According to the * docs, I should be returning a handle for the @@ -292,11 +291,12 @@ static HINSTANCE16 SHELL_FindExecutable( LPCSTR lpFile, /************************************************************************* * ShellExecute16 [SHELL.20] */ -HINSTANCE16 ShellExecute16( HWND16 hWnd, LPCSTR lpOperation, LPCSTR lpFile, - LPCSTR lpParameters, LPCSTR lpDirectory, - INT16 iShowCmd ) +HINSTANCE16 WINAPI ShellExecute16( HWND16 hWnd, LPCSTR lpOperation, + LPCSTR lpFile, LPCSTR lpParameters, + LPCSTR lpDirectory, INT16 iShowCmd ) { HINSTANCE16 retval=31; + char old_dir[1024]; char cmd[256]; dprintf_exec(stddeb, "ShellExecute(%04x,'%s','%s','%s','%s',%x)\n", @@ -308,30 +308,36 @@ HINSTANCE16 ShellExecute16( HWND16 hWnd, LPCSTR lpOperation, LPCSTR lpFile, if (lpOperation==NULL) /* default is open */ lpOperation="open"; - retval = SHELL_FindExecutable( lpFile, lpDirectory, lpOperation, cmd ); - - if ( retval <= 32 ) + if (lpDirectory) { - return retval; + GetCurrentDirectory32A( sizeof(old_dir), old_dir ); + SetCurrentDirectory32A( lpDirectory ); } - if (lpParameters) - { - strcat(cmd," "); - strcat(cmd,lpParameters); - } + retval = SHELL_FindExecutable( lpFile, lpOperation, cmd ); - dprintf_exec(stddeb,"ShellExecute:starting %s\n",cmd); - return WinExec32(cmd,iShowCmd); + if (retval > 32) /* Found */ + { + if (lpParameters) + { + strcat(cmd," "); + strcat(cmd,lpParameters); + } + + dprintf_exec(stddeb,"ShellExecute:starting %s\n",cmd); + retval = WinExec32( cmd, iShowCmd ); + } + if (lpDirectory) SetCurrentDirectory32A( old_dir ); + return retval; } /************************************************************************* * ShellExecute32A (SHELL32.84) */ -HINSTANCE32 ShellExecute32A( HWND32 hWnd, LPCSTR lpOperation, LPCSTR lpFile, - LPCSTR lpParameters, LPCSTR lpDirectory, - INT32 iShowCmd ) +HINSTANCE32 WINAPI ShellExecute32A( HWND32 hWnd, LPCSTR lpOperation, + LPCSTR lpFile, LPCSTR lpParameters, + LPCSTR lpDirectory, INT32 iShowCmd ) { return ShellExecute16( hWnd, lpOperation, lpFile, lpParameters, lpDirectory, iShowCmd ); @@ -341,10 +347,20 @@ HINSTANCE32 ShellExecute32A( HWND32 hWnd, LPCSTR lpOperation, LPCSTR lpFile, /************************************************************************* * FindExecutable16 (SHELL.21) */ -HINSTANCE16 FindExecutable16( LPCSTR lpFile, LPCSTR lpDirectory, - LPSTR lpResult ) +HINSTANCE16 WINAPI FindExecutable16( LPCSTR lpFile, LPCSTR lpDirectory, + LPSTR lpResult ) { - HINSTANCE16 retval=31; /* default - 'No association was found' */ + return (HINSTANCE16)FindExecutable32A( lpFile, lpDirectory, lpResult ); +} + +/************************************************************************* + * FindExecutable32A (SHELL32.184) + */ +HINSTANCE32 WINAPI FindExecutable32A( LPCSTR lpFile, LPCSTR lpDirectory, + LPSTR lpResult ) +{ + HINSTANCE32 retval=31; /* default - 'No association was found' */ + char old_dir[1024]; dprintf_exec(stddeb, "FindExecutable: File %s, Dir %s\n", (lpFile != NULL?lpFile:"-"), @@ -359,10 +375,16 @@ HINSTANCE16 FindExecutable16( LPCSTR lpFile, LPCSTR lpDirectory, return 2; /* File not found. Close enough, I guess. */ } - retval = SHELL_FindExecutable( lpFile, lpDirectory, "open", - lpResult ); + if (lpDirectory) + { + GetCurrentDirectory32A( sizeof(old_dir), old_dir ); + SetCurrentDirectory32A( lpDirectory ); + } + + retval = SHELL_FindExecutable( lpFile, "open", lpResult ); dprintf_exec(stddeb, "FindExecutable: returning %s\n", lpResult); + if (lpDirectory) SetCurrentDirectory32A( old_dir ); return retval; } @@ -377,8 +399,8 @@ typedef struct /************************************************************************* * AboutDlgProc32 (not an exported API function) */ -LRESULT AboutDlgProc32( HWND32 hWnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ) +LRESULT WINAPI AboutDlgProc32( HWND32 hWnd, UINT32 msg, WPARAM32 wParam, + LPARAM lParam ) { char Template[512], AppTitle[512]; @@ -413,8 +435,8 @@ LRESULT AboutDlgProc32( HWND32 hWnd, UINT32 msg, WPARAM32 wParam, /************************************************************************* * AboutDlgProc16 (SHELL.33) */ -LRESULT AboutDlgProc16( HWND16 hWnd, UINT16 msg, WPARAM16 wParam, - LPARAM lParam ) +LRESULT WINAPI AboutDlgProc16( HWND16 hWnd, UINT16 msg, WPARAM16 wParam, + LPARAM lParam ) { return AboutDlgProc32( hWnd, msg, wParam, lParam ); } @@ -423,8 +445,8 @@ LRESULT AboutDlgProc16( HWND16 hWnd, UINT16 msg, WPARAM16 wParam, /************************************************************************* * ShellAbout16 (SHELL.22) */ -BOOL16 ShellAbout16( HWND16 hWnd, LPCSTR szApp, LPCSTR szOtherStuff, - HICON16 hIcon ) +BOOL16 WINAPI ShellAbout16( HWND16 hWnd, LPCSTR szApp, LPCSTR szOtherStuff, + HICON16 hIcon ) { return ShellAbout32A( hWnd, szApp, szOtherStuff, hIcon ); } @@ -432,8 +454,8 @@ BOOL16 ShellAbout16( HWND16 hWnd, LPCSTR szApp, LPCSTR szOtherStuff, /************************************************************************* * ShellAbout32A (SHELL32.82) */ -BOOL32 ShellAbout32A( HWND32 hWnd, LPCSTR szApp, LPCSTR szOtherStuff, - HICON32 hIcon ) +BOOL32 WINAPI ShellAbout32A( HWND32 hWnd, LPCSTR szApp, LPCSTR szOtherStuff, + HICON32 hIcon ) { ABOUT_INFO info; info.szApp = szApp; @@ -449,8 +471,8 @@ BOOL32 ShellAbout32A( HWND32 hWnd, LPCSTR szApp, LPCSTR szOtherStuff, /************************************************************************* * ShellAbout32W (SHELL32.83) */ -BOOL32 ShellAbout32W( HWND32 hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, - HICON32 hIcon ) +BOOL32 WINAPI ShellAbout32W( HWND32 hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, + HICON32 hIcon ) { BOOL32 ret; ABOUT_INFO info; @@ -604,7 +626,9 @@ static HGLOBAL16 ICO_GetIconDirectory(HINSTANCE16 hInst, HFILE32 hFile, LPicoICO * * This abortion is called directly by Progman */ -HGLOBAL16 InternalExtractIcon(HINSTANCE16 hInstance, LPCSTR lpszExeFileName, UINT16 nIconIndex, WORD n ) +HGLOBAL16 WINAPI InternalExtractIcon(HINSTANCE16 hInstance, + LPCSTR lpszExeFileName, UINT16 nIconIndex, + WORD n ) { HGLOBAL16 hRet = 0; HGLOBAL16* RetPtr = NULL; @@ -706,8 +730,8 @@ HGLOBAL16 InternalExtractIcon(HINSTANCE16 hInstance, LPCSTR lpszExeFileName, UIN /************************************************************************* * ExtractIcon16 (SHELL.34) */ -HICON16 ExtractIcon16( HINSTANCE16 hInstance, LPCSTR lpszExeFileName, - UINT16 nIconIndex ) +HICON16 WINAPI ExtractIcon16( HINSTANCE16 hInstance, LPCSTR lpszExeFileName, + UINT16 nIconIndex ) { HGLOBAL16 handle = InternalExtractIcon(hInstance,lpszExeFileName,nIconIndex, 1); @@ -726,8 +750,8 @@ HICON16 ExtractIcon16( HINSTANCE16 hInstance, LPCSTR lpszExeFileName, /************************************************************************* * ExtractIcon32A (SHELL32.20) */ -HICON32 ExtractIcon32A( HINSTANCE32 hInstance, LPCSTR lpszExeFileName, - UINT32 nIconIndex ) +HICON32 WINAPI ExtractIcon32A( HINSTANCE32 hInstance, LPCSTR lpszExeFileName, + UINT32 nIconIndex ) { /* FIXME */ return ExtractIcon16( hInstance, lpszExeFileName, nIconIndex ); @@ -740,7 +764,8 @@ HICON32 ExtractIcon32A( HINSTANCE32 hInstance, LPCSTR lpszExeFileName, * Return icon for given file (either from file itself or from associated * executable) and patch parameters if needed. */ -HICON16 ExtractAssociatedIcon(HINSTANCE16 hInst,LPSTR lpIconPath,LPWORD lpiIcon) +HICON16 WINAPI ExtractAssociatedIcon(HINSTANCE16 hInst,LPSTR lpIconPath, + LPWORD lpiIcon) { HICON16 hIcon = ExtractIcon16(hInst, lpIconPath, *lpiIcon); @@ -794,7 +819,7 @@ LPSTR SHELL_FindString(LPSTR lpEnv, LPCSTR entry) return NULL; } -SEGPTR FindEnvironmentString(LPSTR str) +SEGPTR WINAPI FindEnvironmentString(LPSTR str) { SEGPTR spEnv = GetDOSEnvironment(); LPSTR lpEnv = (LPSTR)PTR_SEG_TO_LIN(spEnv); @@ -813,7 +838,7 @@ SEGPTR FindEnvironmentString(LPSTR str) * Replace %KEYWORD% in the str with the value of variable KEYWORD * from "DOS" environment. */ -DWORD DoEnvironmentSubst(LPSTR str,WORD length) +DWORD WINAPI DoEnvironmentSubst(LPSTR str,WORD length) { LPSTR lpEnv = (LPSTR)PTR_SEG_TO_LIN(GetDOSEnvironment()); LPSTR lpBuffer = (LPSTR)HeapAlloc( GetProcessHeap(), 0, length); @@ -886,7 +911,7 @@ DWORD DoEnvironmentSubst(LPSTR str,WORD length) * ShellHookProc [SHELL.103] * System-wide WH_SHELL hook. */ -LRESULT ShellHookProc(INT16 code, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI ShellHookProc(INT16 code, WPARAM16 wParam, LPARAM lParam) { dprintf_reg(stddeb,"ShellHookProc: %i, %04x, %08x\n", code, wParam, (unsigned)lParam ); @@ -907,7 +932,7 @@ LRESULT ShellHookProc(INT16 code, WPARAM16 wParam, LPARAM lParam) /************************************************************************* * RegisterShellHook [SHELL.102] */ -BOOL32 RegisterShellHook(HWND16 hWnd, UINT16 uAction) +BOOL32 WINAPI RegisterShellHook(HWND16 hWnd, UINT16 uAction) { dprintf_reg(stddeb,"RegisterShellHook: %04x [%u]\n", hWnd, uAction ); @@ -948,10 +973,10 @@ BOOL32 RegisterShellHook(HWND16 hWnd, UINT16 uAction) /************************************************************************* * SHGetFileInfoA [SHELL32.54] */ -DWORD -SHGetFileInfo32A(LPCSTR path,DWORD dwFileAttributes,SHFILEINFO32A *psfi, - UINT32 sizeofpsfi,UINT32 flags -) { +DWORD WINAPI SHGetFileInfo32A(LPCSTR path,DWORD dwFileAttributes, + SHFILEINFO32A *psfi, UINT32 sizeofpsfi, + UINT32 flags ) +{ fprintf(stdnimp,"SHGetFileInfo32A(%s,0x%08lx,%p,%d,0x%08x)\n", path,dwFileAttributes,psfi,sizeofpsfi,flags ); @@ -961,8 +986,8 @@ SHGetFileInfo32A(LPCSTR path,DWORD dwFileAttributes,SHFILEINFO32A *psfi, /************************************************************************* * CommandLineToArgvW [SHELL32.2] */ -LPWSTR* -CommandLineToArgvW(LPWSTR cmdline,LPDWORD numargs) { +LPWSTR* WINAPI CommandLineToArgvW(LPWSTR cmdline,LPDWORD numargs) +{ LPWSTR *argv,s,t; int i; diff --git a/misc/sound.c b/misc/sound.c index 7c06aea85d8..452a6f74c2e 100644 --- a/misc/sound.c +++ b/misc/sound.c @@ -7,181 +7,183 @@ static char Copyright[] = "Copyright Robert J. Amstadt, 1993"; #include #include "windows.h" -INT16 OpenSound16(void) +INT16 WINAPI OpenSound16(void) { printf("OpenSound16()\n"); return -1; } -void OpenSound32(void) +void WINAPI OpenSound32(void) { printf("OpenSound32()\n"); } -void CloseSound(void) +void WINAPI CloseSound(void) { printf("CloseSound()\n"); } -INT16 SetVoiceQueueSize16(INT16 nVoice, INT16 nBytes) +INT16 WINAPI SetVoiceQueueSize16(INT16 nVoice, INT16 nBytes) { printf("SetVoiceQueueSize16 (%d,%d)\n",nVoice,nBytes); return 0; } -DWORD SetVoiceQueueSize32(DWORD nVoice, DWORD nBytes) +DWORD WINAPI SetVoiceQueueSize32(DWORD nVoice, DWORD nBytes) { printf("SetVoiceQueueSize32 (%ld,%ld)\n",nVoice,nBytes); return 0; } -INT16 SetVoiceNote16(INT16 nVoice, INT16 nValue, INT16 nLength, INT16 nCdots) +INT16 WINAPI SetVoiceNote16(INT16 nVoice, INT16 nValue, INT16 nLength, + INT16 nCdots) { printf("SetVoiceNote16 (%d,%d,%d,%d)\n",nVoice,nValue,nLength,nCdots); return 0; } -DWORD SetVoiceNote32(DWORD nVoice, DWORD nValue, DWORD nLength, DWORD nCdots) +DWORD WINAPI SetVoiceNote32(DWORD nVoice, DWORD nValue, DWORD nLength, + DWORD nCdots) { printf("SetVoiceNote32 (%ld,%ld,%ld,%ld)\n",nVoice,nValue,nLength,nCdots); return 0; } -INT16 SetVoiceAccent16(INT16 nVoice, INT16 nTempo, INT16 nVolume, - INT16 nMode, INT16 nPitch) +INT16 WINAPI SetVoiceAccent16(INT16 nVoice, INT16 nTempo, INT16 nVolume, + INT16 nMode, INT16 nPitch) { printf("SetVoiceAccent16(%d,%d,%d,%d,%d)\n", nVoice, nTempo, nVolume, nMode, nPitch); return 0; } -DWORD SetVoiceAccent32(DWORD nVoice, DWORD nTempo, DWORD nVolume, - DWORD nMode, DWORD nPitch) +DWORD WINAPI SetVoiceAccent32(DWORD nVoice, DWORD nTempo, DWORD nVolume, + DWORD nMode, DWORD nPitch) { printf("SetVoiceAccent32(%ld,%ld,%ld,%ld,%ld)\n", nVoice, nTempo, nVolume, nMode, nPitch); return 0; } -INT16 SetVoiceEnvelope16(INT16 nVoice, INT16 nShape, INT16 nRepeat) +INT16 WINAPI SetVoiceEnvelope16(INT16 nVoice, INT16 nShape, INT16 nRepeat) { printf("SetVoiceEnvelope16(%d,%d,%d)\n",nVoice,nShape,nRepeat); return 0; } -DWORD SetVoiceEnvelope32(DWORD nVoice, DWORD nShape, DWORD nRepeat) +DWORD WINAPI SetVoiceEnvelope32(DWORD nVoice, DWORD nShape, DWORD nRepeat) { printf("SetVoiceEnvelope32(%ld,%ld,%ld)\n",nVoice,nShape,nRepeat); return 0; } -INT16 SetSoundNoise16(INT16 nSource, INT16 nDuration) +INT16 WINAPI SetSoundNoise16(INT16 nSource, INT16 nDuration) { printf("SetSoundNoise16(%d,%d)\n",nSource,nDuration); return 0; } -DWORD SetSoundNoise32(DWORD nSource, DWORD nDuration) +DWORD WINAPI SetSoundNoise32(DWORD nSource, DWORD nDuration) { printf("SetSoundNoise32(%ld,%ld)\n",nSource,nDuration); return 0; } -INT16 SetVoiceSound16(INT16 nVoice, DWORD lFrequency, INT16 nDuration) +INT16 WINAPI SetVoiceSound16(INT16 nVoice, DWORD lFrequency, INT16 nDuration) { printf("SetVoiceSound16(%d, %ld, %d)\n",nVoice,lFrequency, nDuration); return 0; } -DWORD SetVoiceSound32(DWORD nVoice, DWORD lFrequency, DWORD nDuration) +DWORD WINAPI SetVoiceSound32(DWORD nVoice, DWORD lFrequency, DWORD nDuration) { printf("SetVoiceSound32(%ld, %ld, %ld)\n",nVoice,lFrequency, nDuration); return 0; } -INT16 StartSound16(void) +INT16 WINAPI StartSound16(void) { return 0; } -INT16 StopSound16(void) +INT16 WINAPI StopSound16(void) { return 0; } -INT16 WaitSoundState16(INT16 x) +INT16 WINAPI WaitSoundState16(INT16 x) { fprintf(stderr, "WaitSoundState16(%d)\n", x); return 0; } -DWORD WaitSoundState32(DWORD x) +DWORD WINAPI WaitSoundState32(DWORD x) { fprintf(stderr, "WaitSoundState32(%ld)\n", x); return 0; } -INT16 SyncAllVoices16(void) +INT16 WINAPI SyncAllVoices16(void) { fprintf(stderr, "SyncAllVoices16()\n"); return 0; } -DWORD SyncAllVoices32(void) +DWORD WINAPI SyncAllVoices32(void) { fprintf(stderr, "SyncAllVoices32()\n"); return 0; } -INT16 CountVoiceNotes16(INT16 x) +INT16 WINAPI CountVoiceNotes16(INT16 x) { fprintf(stderr, "CountVoiceNotes16(%d)\n", x); return 0; } -DWORD CountVoiceNotes32(DWORD x) +DWORD WINAPI CountVoiceNotes32(DWORD x) { fprintf(stderr, "CountVoiceNotes32(%ld)\n", x); return 0; } -LPINT16 GetThresholdEvent16(void) +LPINT16 WINAPI GetThresholdEvent16(void) { fprintf(stderr, "GetThresholdEvent16()\n"); return NULL; } -LPDWORD GetThresholdEvent32(void) +LPDWORD WINAPI GetThresholdEvent32(void) { fprintf(stderr, "GetThresholdEvent32()\n"); return NULL; } -INT16 GetThresholdStatus16(void) +INT16 WINAPI GetThresholdStatus16(void) { fprintf(stderr, "GetThresholdStatus16()\n"); return 0; } -DWORD GetThresholdStatus32(void) +DWORD WINAPI GetThresholdStatus32(void) { fprintf(stderr, "GetThresholdStatus32()\n"); return 0; } -INT16 SetVoiceThreshold16(INT16 a, INT16 b) +INT16 WINAPI SetVoiceThreshold16(INT16 a, INT16 b) { fprintf(stderr, "SetVoiceThreshold16(%d,%d)\n", a, b); return 0; } -DWORD SetVoiceThreshold32(DWORD a, DWORD b) +DWORD WINAPI SetVoiceThreshold32(DWORD a, DWORD b) { fprintf(stderr, "SetVoiceThreshold32(%ld,%ld)\n", a, b); return 0; } -void DoBeep(void) +void WINAPI DoBeep(void) { fprintf(stderr, "BEEP!\n"); } diff --git a/misc/stress.c b/misc/stress.c index d8003233edf..6b4e2feb4fa 100644 --- a/misc/stress.c +++ b/misc/stress.c @@ -8,14 +8,14 @@ #include "debug.h" -int AllocDiskSpace(long lLeft, UINT16 uDrive) +int WINAPI AllocDiskSpace(long lLeft, UINT16 uDrive) { dprintf_stress(stdnimp, "stress.dll: AllocDiskSpace %d, %ld\n", uDrive, lLeft); return 1; } -int AllocFileHandles(int Left) +int WINAPI AllocFileHandles(int Left) { dprintf_stress(stddeb, "stress.dll: AllocFileHandles %d\n", Left); @@ -25,48 +25,48 @@ int AllocFileHandles(int Left) return 1; } -BOOL16 AllocGDIMem(UINT16 uLeft) +BOOL16 WINAPI AllocGDIMem(UINT16 uLeft) { dprintf_stress(stddeb, "stress.dll: AllocGDIMem %d\n", uLeft); return 1; } -BOOL16 AllocMem(DWORD dwLeft) +BOOL16 WINAPI AllocMem(DWORD dwLeft) { dprintf_stress(stdnimp, "stress.dll: AllocMem %ld\n", dwLeft); return 1; } -BOOL16 AllocUserMem(UINT16 uContig) +BOOL16 WINAPI AllocUserMem(UINT16 uContig) { dprintf_stress(stddeb, "stress.dll: AllocUserMem %d\n", uContig); return 1; } -void FreeAllMem(void) +void WINAPI FreeAllMem(void) { dprintf_stress(stddeb, "stress.dll: FreeAllMem\n"); } -void FreeAllGDIMem(void) +void WINAPI FreeAllGDIMem(void) { dprintf_stress(stddeb, "stress.dll: FreeAllGDIMem\n"); } -void FreeAllUserMem(void) +void WINAPI FreeAllUserMem(void) { dprintf_stress(stddeb, "stress.dll: FreeAllUserMem\n"); } -void GetFreeAllUserMem(void) +void WINAPI GetFreeAllUserMem(void) { dprintf_stress(stddeb, "stress.dll: GetFreeAllUserMem\n"); } -int GetFreeFileHandles(void) +int WINAPI GetFreeFileHandles(void) { dprintf_stress(stddeb, "stress.dll: GetFreeFileHandles\n"); @@ -77,12 +77,12 @@ int GetFreeFileHandles(void) #endif } -void UnAllocDiskSpace(UINT16 drive) +void WINAPI UnAllocDiskSpace(UINT16 drive) { dprintf_stress(stddeb, "stress.dll: UnAllocDiskSpace %d\n", drive); } -void UnAllocFileHandles(void) +void WINAPI UnAllocFileHandles(void) { dprintf_stress(stddeb, "stress.dll: GetFreeAllUserMem\n"); } diff --git a/misc/system.c b/misc/system.c index dee79bd0363..1c347297093 100644 --- a/misc/system.c +++ b/misc/system.c @@ -100,7 +100,7 @@ static void SYSTEM_StopTicks(void) * Note: the function always takes 2 WORD arguments, contrary to what * "Undocumented Windows" says. */ -DWORD InquireSystem( WORD code, WORD arg ) +DWORD WINAPI InquireSystem( WORD code, WORD arg ) { WORD drivetype; @@ -125,7 +125,7 @@ DWORD InquireSystem( WORD code, WORD arg ) /*********************************************************************** * CreateSystemTimer (SYSTEM.2) */ -WORD CreateSystemTimer( WORD rate, FARPROC16 callback ) +WORD WINAPI CreateSystemTimer( WORD rate, FARPROC16 callback ) { int i; @@ -150,7 +150,7 @@ WORD CreateSystemTimer( WORD rate, FARPROC16 callback ) * * Note: do not confuse this function with USER.182 */ -WORD SYSTEM_KillSystemTimer( WORD timer ) +WORD WINAPI SYSTEM_KillSystemTimer( WORD timer ) { if (!timer || (timer > NB_SYS_TIMERS)) return timer; /* Error */ SYS_Timers[timer-1].callback = NULL; @@ -162,7 +162,7 @@ WORD SYSTEM_KillSystemTimer( WORD timer ) /*********************************************************************** * EnableSystemTimers (SYSTEM.4) */ -void EnableSystemTimers(void) +void WINAPI EnableSystemTimers(void) { SYS_TimersDisabled = FALSE; if (SYS_NbTimers) SYSTEM_StartTicks(); @@ -172,7 +172,7 @@ void EnableSystemTimers(void) /*********************************************************************** * DisableSystemTimers (SYSTEM.5) */ -void DisableSystemTimers(void) +void WINAPI DisableSystemTimers(void) { SYS_TimersDisabled = TRUE; if (SYS_NbTimers) SYSTEM_StopTicks(); diff --git a/misc/toolhelp.c b/misc/toolhelp.c index f5f73db589b..cba7996a334 100644 --- a/misc/toolhelp.c +++ b/misc/toolhelp.c @@ -29,7 +29,8 @@ static struct notify static int nrofnotifys = 0; -BOOL16 NotifyRegister( HTASK16 htask, FARPROC16 lpfnCallback, WORD wFlags ) +BOOL16 WINAPI NotifyRegister( HTASK16 htask, FARPROC16 lpfnCallback, + WORD wFlags ) { int i; @@ -51,7 +52,7 @@ BOOL16 NotifyRegister( HTASK16 htask, FARPROC16 lpfnCallback, WORD wFlags ) return TRUE; } -BOOL16 NotifyUnregister( HTASK16 htask ) +BOOL16 WINAPI NotifyUnregister( HTASK16 htask ) { int i; diff --git a/misc/tweak.c b/misc/tweak.c index e8f0095371a..0d88d0b7c51 100644 --- a/misc/tweak.c +++ b/misc/tweak.c @@ -239,80 +239,6 @@ int TWEAK_Init() } -/****************************************************************************** - * - * int TWEAK_CheckOldFonts() - * - * Examines wine.conf for old/invalid font entries and recommend changes to - * the user. - * - * Revision history - * 05-Jul-1997 Dave Cuthbert (dacut@ece.cmu.edu) - * Original implementation. - * - *****************************************************************************/ - -static void TWEAK_CheckOldFontsCallback(char const *, char const *, void *); - -static char const *fontmsgprologue = -"Wine warning:\n" -" The following entries in the [fonts] section of the wine.conf file are\n" -" obsolete or invalid:\n"; - -static char const *fontmsgepilogue = -" These entries should be eliminated or updated.\n" -" See the documentation/fonts file for more information.\n"; - -static int TWEAK_CheckOldFonts() -{ - int found = 0; - - PROFILE_EnumerateWineIniSection("Fonts", &TWEAK_CheckOldFontsCallback, - (void *)&found); - if(found) - fprintf(stderr, fontmsgepilogue); - - return 1; -} - -static void TWEAK_CheckOldFontsCallback( - char const *key, - char const *value, - void *found) -{ - /* Ignore any keys that start with potential comment characters "'", '#', - or ';'. */ - if(key[0] == '\'' || key[0] == '#' || key[0] == ';' || key[0] == '\0') - return; - - /* Make sure this is a valid key */ - if(strncasecmp(key, "Alias", 5) == 0 || - strcasecmp(key, "Default") == 0) { - - /* Valid key; make sure the value doesn't contain a wildcard */ - if(strchr(value, '*')) { - if(*(int *)found == 0) { - fprintf(stderr, fontmsgprologue); - ++*(int *)found; - } - - fprintf(stderr, " %s=%s [no wildcards allowed]\n", key, value); - } - } - else { - /* Not a valid key */ - if(*(int *)found == 0) { - fprintf(stderr, fontmsgprologue); - ++*(int *)found; - } - - fprintf(stderr, " %s=%s [obsolete]\n", key, value); - } - - return; -} - - /****************************************************************************** * * int TWEAK_CheckConfiguration() @@ -327,12 +253,10 @@ static void TWEAK_CheckOldFontsCallback( int TWEAK_CheckConfiguration() { - TWEAK_CheckOldFonts(); return 1; } - /****************************************************************************** * * Tweak graphic subsystem. diff --git a/misc/ver.c b/misc/ver.c index 0a747bf75d6..89426ca38cf 100644 --- a/misc/ver.c +++ b/misc/ver.c @@ -303,8 +303,9 @@ find_ne_resource( } /* GetFileResourceSize [VER.2] */ -DWORD -GetFileResourceSize(LPCSTR filename,SEGPTR restype,SEGPTR resid,LPDWORD off) { +DWORD WINAPI GetFileResourceSize(LPCSTR filename,SEGPTR restype,SEGPTR resid, + LPDWORD off) +{ HFILE32 lzfd; OFSTRUCT ofs; BYTE *resdata; @@ -331,10 +332,9 @@ GetFileResourceSize(LPCSTR filename,SEGPTR restype,SEGPTR resid,LPDWORD off) { } /* GetFileResource [VER.3] */ -DWORD -GetFileResource(LPCSTR filename,SEGPTR restype,SEGPTR resid, - DWORD off,DWORD datalen,LPVOID data -) { +DWORD WINAPI GetFileResource(LPCSTR filename,SEGPTR restype,SEGPTR resid, + DWORD off,DWORD datalen,LPVOID data ) +{ HFILE32 lzfd; OFSTRUCT ofs; BYTE *resdata; @@ -367,8 +367,8 @@ GetFileResource(LPCSTR filename,SEGPTR restype,SEGPTR resid, } /* GetFileVersionInfoSize [VER.6] */ -DWORD -GetFileVersionInfoSize16(LPCSTR filename,LPDWORD handle) { +DWORD WINAPI GetFileVersionInfoSize16(LPCSTR filename,LPDWORD handle) +{ DWORD len,ret; BYTE buf[72]; VS_FIXEDFILEINFO *vffi; @@ -479,14 +479,14 @@ GetFileVersionInfoSize16(LPCSTR filename,LPDWORD handle) { } /* GetFileVersionInfoSize32A [VERSION.1] */ -DWORD -GetFileVersionInfoSize32A(LPCSTR filename,LPDWORD handle) { +DWORD WINAPI GetFileVersionInfoSize32A(LPCSTR filename,LPDWORD handle) +{ dprintf_ver(stddeb,"GetFileVersionInfoSize32A(%s,%p)\n",filename,handle); return GetFileVersionInfoSize16(filename,handle); } /* GetFileVersionInfoSize32W [VERSION.2] */ -DWORD GetFileVersionInfoSize32W( LPCWSTR filename, LPDWORD handle ) +DWORD WINAPI GetFileVersionInfoSize32W( LPCWSTR filename, LPDWORD handle ) { LPSTR xfn = HEAP_strdupWtoA( GetProcessHeap(), 0, filename ); DWORD ret = GetFileVersionInfoSize16( xfn, handle ); @@ -495,8 +495,9 @@ DWORD GetFileVersionInfoSize32W( LPCWSTR filename, LPDWORD handle ) } /* GetFileVersionInfo [VER.7] */ -DWORD -GetFileVersionInfo16(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data) { +DWORD WINAPI GetFileVersionInfo16(LPCSTR filename,DWORD handle,DWORD datasize, + LPVOID data) +{ dprintf_ver(stddeb,"GetFileVersionInfo16(%s,%ld,%ld,%p)\n->", filename,handle,datasize,data ); @@ -506,14 +507,15 @@ GetFileVersionInfo16(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data) { } /* GetFileVersionInfoA [VERSION.0] */ -DWORD -GetFileVersionInfo32A(LPCSTR filename,DWORD handle,DWORD datasize,LPVOID data) { +DWORD WINAPI GetFileVersionInfo32A(LPCSTR filename,DWORD handle, + DWORD datasize,LPVOID data) +{ return GetFileVersionInfo16(filename,handle,datasize,data); } /* GetFileVersionInfoW [VERSION.3] */ -DWORD GetFileVersionInfo32W( LPCWSTR filename, DWORD handle, DWORD datasize, - LPVOID data) +DWORD WINAPI GetFileVersionInfo32W( LPCWSTR filename, DWORD handle, + DWORD datasize, LPVOID data) { LPSTR fn = HEAP_strdupWtoA( GetProcessHeap(), 0, filename ); DWORD ret = GetFileVersionInfo16( fn, handle, datasize, data ); @@ -534,7 +536,7 @@ DWORD GetFileVersionInfo32W( LPCWSTR filename, DWORD handle, DWORD datasize, * ****************************************************************************/ -DWORD VerFindFile16( +DWORD WINAPI VerFindFile16( UINT16 flags, LPCSTR lpszFilename, LPCSTR lpszWinDir, @@ -693,8 +695,7 @@ DWORD VerFindFile16( } /* VerFindFileA [VERSION.5] */ -DWORD -VerFindFile32A( +DWORD WINAPI VerFindFile32A( UINT32 flags,LPCSTR filename,LPCSTR windir,LPCSTR appdir, LPSTR curdir,UINT32 *pcurdirlen,LPSTR destdir,UINT32 *pdestdirlen ) { @@ -707,8 +708,7 @@ VerFindFile32A( } /* VerFindFileW [VERSION.6] */ -DWORD -VerFindFile32W( +DWORD WINAPI VerFindFile32W( UINT32 flags,LPCWSTR filename,LPCWSTR windir,LPCWSTR appdir, LPWSTR curdir,UINT32 *pcurdirlen,LPWSTR destdir,UINT32 *pdestdirlen ) { @@ -735,8 +735,7 @@ VerFindFile32W( } /* VerInstallFile [VER.9] */ -DWORD -VerInstallFile16( +DWORD WINAPI VerInstallFile16( UINT16 flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir, LPCSTR destdir,LPCSTR curdir,LPSTR tmpfile,UINT16 *tmpfilelen ) { @@ -784,8 +783,7 @@ _error2vif(DWORD error) { } } -DWORD -VerInstallFile32A( +DWORD WINAPI VerInstallFile32A( UINT32 flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir, LPCSTR destdir,LPCSTR curdir,LPSTR tmpfile,UINT32 *tmpfilelen ) { @@ -948,8 +946,7 @@ VerInstallFile32A( } /* VerInstallFileW [VERSION.8] */ -DWORD -VerInstallFile32W( +DWORD WINAPI VerInstallFile32W( UINT32 flags,LPCWSTR srcfilename,LPCWSTR destfilename,LPCWSTR srcdir, LPCWSTR destdir,LPCWSTR curdir,LPWSTR tmpfile,UINT32 *tmpfilelen ) { @@ -1035,8 +1032,8 @@ _find_data(BYTE *block,LPCSTR str, WORD buff_remain) { /* VerQueryValue [VER.11] */ /* take care, 'buffer' is NOT a SEGPTR, it just points to one */ -DWORD -VerQueryValue16(SEGPTR segblock,LPCSTR subblock,SEGPTR *buffer,UINT16 *buflen) +DWORD WINAPI VerQueryValue16(SEGPTR segblock,LPCSTR subblock,SEGPTR *buffer, + UINT16 *buflen) { BYTE *block=PTR_SEG_TO_LIN(segblock),*b; struct db *db; @@ -1062,8 +1059,8 @@ VerQueryValue16(SEGPTR segblock,LPCSTR subblock,SEGPTR *buffer,UINT16 *buflen) return 1; } -DWORD -VerQueryValue32A(LPVOID vblock,LPCSTR subblock,LPVOID *vbuffer,UINT32 *buflen) +DWORD WINAPI VerQueryValue32A(LPVOID vblock,LPCSTR subblock, + LPVOID *vbuffer,UINT32 *buflen) { BYTE *b,*block=(LPBYTE)vblock,**buffer=(LPBYTE*)vbuffer; struct db *db; @@ -1088,8 +1085,8 @@ VerQueryValue32A(LPVOID vblock,LPCSTR subblock,LPVOID *vbuffer,UINT32 *buflen) return 1; } -DWORD -VerQueryValue32W(LPVOID vblock,LPCWSTR subblock,LPVOID *vbuffer,UINT32 *buflen) +DWORD WINAPI VerQueryValue32W(LPVOID vblock,LPCWSTR subblock,LPVOID *vbuffer, + UINT32 *buflen) { /* FIXME: hmm, we not only need to convert subblock, but also * the content...or? diff --git a/misc/w32sys.c b/misc/w32sys.c index 8fae50db760..427b47ed3cf 100644 --- a/misc/w32sys.c +++ b/misc/w32sys.c @@ -12,7 +12,7 @@ /*********************************************************************** * GetWin32sInfo (W32SYS.12) */ -WORD GetWin32sInfo( LPWIN32SINFO lpInfo) +WORD WINAPI GetWin32sInfo( LPWIN32SINFO lpInfo) { lpInfo->bMajor = 1; lpInfo->bMinor = 3; diff --git a/misc/winsock.c b/misc/winsock.c index 159ed1c1c5e..3246b415fa7 100644 --- a/misc/winsock.c +++ b/misc/winsock.c @@ -2,14 +2,9 @@ * based on Windows Sockets 1.1 specs * (ftp.microsoft.com:/Advsys/winsock/spec11/WINSOCK.TXT) * - * (C) 1993,1994,1996 John Brezak, Erik Bos, Alex Korobka. + * (C) 1993,1994,1996,1997 John Brezak, Erik Bos, Alex Korobka. * - * TODO: Merge Async...() handling with X event loop by adding - * thread/task fdset to select(2) in windows/event.c. - * Also fork dns lookup helper during the startup (with a pipe - * for communication) and make it fork for a database request - * instead of forking the main process (i.e. something like - * Netscape 4.0). + * TODO: 32-bit asynchronous services. */ #include @@ -41,6 +36,8 @@ #include "winnt.h" #include "heap.h" #include "ldt.h" +#include "task.h" +#include "message.h" #include "winsock.h" #include "miscemu.h" #include "stddebug.h" @@ -57,10 +54,6 @@ /* ----------------------------------- internal data */ extern int h_errno; -extern void __sigio(int); - -ws_async_ctl async_ctl; -int async_qid = -1; static HANDLE32 _WSHeap = 0; static unsigned char* _ws_stub = NULL; @@ -74,13 +67,13 @@ static LPWSINFO _wsi_list = NULL; #define WS_PTR2HANDLE(ptr) \ ((short)((int)(ptr) - (int)_ws_stub)) #define WS_HANDLE2PTR(handle) \ - ((unsigned)((int)_ws_stub + (int)handle)) + ((unsigned)((int)_ws_stub + (int)(handle))) #define WSI_CHECK_RANGE(pwsi, pws) \ ( ((unsigned)(pws) > (unsigned)(pwsi)) && \ ((unsigned)(pws) < ((unsigned)(pwsi) + sizeof(WSINFO))) ) -static INT16 _ws_sock_ops[] = +static INT32 _ws_sock_ops[] = { WS_SO_DEBUG, WS_SO_REUSEADDR, WS_SO_KEEPALIVE, WS_SO_DONTROUTE, WS_SO_BROADCAST, WS_SO_LINGER, WS_SO_OOBINLINE, WS_SO_SNDBUF, WS_SO_RCVBUF, WS_SO_ERROR, WS_SO_TYPE, WS_SO_DONTLINGER, 0 }; @@ -89,28 +82,27 @@ static int _px_sock_ops[] = SO_LINGER, SO_OOBINLINE, SO_SNDBUF, SO_RCVBUF, SO_ERROR, SO_TYPE, SO_LINGER }; -static INT16 init_async_select(ws_socket* pws, HWND16 hWnd, UINT16 uMsg, UINT32 lEvent); -static int notify_client(ws_socket* pws, unsigned flag); - static int _check_ws(LPWSINFO pwsi, ws_socket* pws); static int _check_buffer(LPWSINFO pwsi, int size); -static void fixup_wshe(struct ws_hostent* p_wshe, SEGPTR base); -static void fixup_wspe(struct ws_protoent* p_wspe, SEGPTR base); -static void fixup_wsse(struct ws_servent* p_wsse, SEGPTR base); +extern void EVENT_AddIO( int fd, unsigned flag ); +extern void EVENT_DeleteIO( int fd, unsigned flag ); -static int cancel_async_select(ws_socket*); - -static void convert_sockopt(INT16 *level, INT16 *optname) +/*********************************************************************** + * convert_sockopt() + * + * Converts socket flags from Windows format. + */ +static void convert_sockopt(INT32 *level, INT32 *optname) { - int i; + int i; switch (*level) { case WS_SOL_SOCKET: *level = SOL_SOCKET; for(i=0; _ws_sock_ops[i]; i++) if( _ws_sock_ops[i] == *optname ) break; - if( _ws_sock_ops[i] ) *optname = (INT16)_px_sock_ops[i]; + if( _ws_sock_ops[i] ) *optname = _px_sock_ops[i]; else fprintf(stderr, "convert_sockopt() unknown optname %d\n", *optname); break; case WS_IPPROTO_TCP: @@ -118,71 +110,63 @@ static void convert_sockopt(INT16 *level, INT16 *optname) } } -static void _ws_global_init() -{ - if( !_ws_stub ) - { - _WSHeap = HeapCreate(HEAP_ZERO_MEMORY, 8120, 32768); - if( !(_ws_stub = WS_ALLOC(0x10)) ) - fprintf(stderr,"Fatal: failed to create WinSock heap\n"); - } - if( async_qid == -1 ) - if( (async_qid = msgget(IPC_PRIVATE, IPC_CREAT | 0x1FF)) == -1 ) - fprintf(stderr,"Fatal: failed to create WinSock resource\n"); -} - -/* ----------------------------------- Per-thread info */ - -static void wsi_link(LPWSINFO pwsi) -{ if( _wsi_list ) _wsi_list->prev = pwsi; - pwsi->next = _wsi_list; _wsi_list = pwsi; -} - -static void wsi_unlink(LPWSINFO pwsi) -{ - if( pwsi == _wsi_list ) _wsi_list = pwsi->next; - else - { pwsi->prev->next = pwsi->next; - if( pwsi->next ) pwsi->next->prev = pwsi->prev; } -} +/* ----------------------------------- Per-thread info (or per-process?) */ static LPWSINFO wsi_find(HTASK16 hTask) -{ LPWSINFO pwsi = _wsi_list; - while( pwsi && pwsi->tid != hTask ) pwsi = pwsi->next; - return pwsi; +{ + TDB* pTask = (TDB*)GlobalLock16(hTask); + if( pTask ) + { + if( pTask->pwsi ) return pTask->pwsi; + else + { + LPWSINFO pwsi = _wsi_list; + while( pwsi && pwsi->tid != hTask ) pwsi = pwsi->next; + if( pwsi ) + fprintf(stderr,"loose wsi struct! pwsi=0x%08x, task=0x%04x\n", + (unsigned)pwsi, hTask ); + return pwsi; + } + } + return NULL; } static ws_socket* wsi_alloc_socket(LPWSINFO pwsi, int fd) { - if( pwsi->last_free >= 0 ) - { - int i = pwsi->last_free; + /* Initialize a new entry in the socket table */ - pwsi->last_free = pwsi->sock[i].flags; - pwsi->sock[i].fd = fd; - pwsi->sock[i].flags = 0; - return &pwsi->sock[i]; - } - return NULL; + if( pwsi->last_free >= 0 ) + { + int i = pwsi->last_free; + + pwsi->last_free = pwsi->sock[i].flags; /* free list */ + pwsi->sock[i].fd = fd; + pwsi->sock[i].flags = 0; + return &pwsi->sock[i]; + } + return NULL; } static void fd_set_normalize(fd_set* fds, LPWSINFO pwsi, ws_fd_set* ws, int* highfd) { - FD_ZERO(fds); - if(ws) - { - int i; - ws_socket* pws; - for(i=0;i<(ws->fd_count);i++) - { - pws = (ws_socket*)WS_HANDLE2PTR(ws->fd_array[i]); - if( _check_ws(pwsi, pws) ) - { - if( pws->fd > *highfd ) *highfd = pws->fd; - FD_SET(pws->fd, fds); - } + /* translate Winsock fd set into the normal fd set */ + + FD_ZERO(fds); + if( ws ) + { + int i; + ws_socket* pws; + + for( i = 0; i < (ws->fd_count) ; i++ ) + { + pws = (ws_socket*)WS_HANDLE2PTR(ws->fd_array[i]); + if( _check_ws(pwsi, pws) ) + { + if( pws->fd > *highfd ) *highfd = pws->fd; + FD_SET(pws->fd, fds); + } + } } - } } /* @@ -229,24 +213,19 @@ static void fd_set_update(LPWSINFO pwsi, fd_set* fds, ws_fd_set* ws, return; } -static void fd_set_update_except(LPWSINFO pwsi, fd_set *fds, ws_fd_set *ws, - fd_set *errorfds) +HANDLE16 __ws_gethandle( void* ptr ) { - if (ws) - { - int i, j, count = ws->fd_count; + return (HANDLE16)WS_PTR2HANDLE(ptr); +} - for (i=j=0; i < count; i++) - { - ws_socket *pws = (ws_socket *)WS_HANDLE2PTR(ws->fd_array[i]); +void* __ws_memalloc( int size ) +{ + return WS_ALLOC(size); +} - if (_check_ws(pwsi, pws) && (FD_ISSET(pws->fd, fds) - || FD_ISSET(pws->fd, errorfds))) - ws->fd_array[j++] = ws->fd_array[i]; - } - ws->fd_count = j; - } - return; +void __ws_memfree(void* ptr) +{ + WS_FREE(ptr); } /* ----------------------------------- API ----- @@ -254,9 +233,15 @@ static void fd_set_update_except(LPWSINFO pwsi, fd_set *fds, ws_fd_set *ws, * Init / cleanup / error checking. */ -INT16 WSAStartup(UINT16 wVersionRequested, LPWSADATA lpWSAData) +/*********************************************************************** + * WSAStartup16() (WINSOCK.115) + * + * Create socket control struct, attach it to the global list and + * update a pointer in the task struct. + */ +INT16 WINAPI WSAStartup16(UINT16 wVersionRequested, LPWSADATA lpWSAData) { - WSADATA WINSOCK_data = { 0x0101, 0x0101, + WSADATA WINSOCK_data = { 0x0101, 0x0101, "WINE Sockets 1.1", #ifdef linux "Linux/i386", @@ -272,191 +257,288 @@ INT16 WSAStartup(UINT16 wVersionRequested, LPWSADATA lpWSAData) "Unknown", #endif WS_MAX_SOCKETS_PER_THREAD, - WS_MAX_UDP_DATAGRAM, NULL }; - HTASK16 tid = GetCurrentTask(); - LPWSINFO pwsi; + WS_MAX_UDP_DATAGRAM, (SEGPTR)NULL }; + HTASK16 tid = GetCurrentTask(); + LPWSINFO pwsi; - dprintf_winsock(stddeb, "WSAStartup: verReq=%x\n", wVersionRequested); + dprintf_winsock(stddeb, "WSAStartup: verReq=%x\n", wVersionRequested); - if (LOBYTE(wVersionRequested) < 1 || (LOBYTE(wVersionRequested) == 1 && - HIBYTE(wVersionRequested) < 1)) return WSAVERNOTSUPPORTED; + if (LOBYTE(wVersionRequested) < 1 || (LOBYTE(wVersionRequested) == 1 && + HIBYTE(wVersionRequested) < 1)) return WSAVERNOTSUPPORTED; - if (!lpWSAData) return WSAEINVAL; + if (!lpWSAData) return WSAEINVAL; - _ws_global_init(); - if( _WSHeap == 0 ) return WSASYSNOTREADY; - - pwsi = wsi_find(GetCurrentTask()); - if( pwsi == NULL ) - { - if( (pwsi = (LPWSINFO)WS_ALLOC( sizeof(WSINFO))) ) + /* initialize socket heap */ + + if( !_ws_stub ) { - int i = 0; - pwsi->tid = tid; - for( i = 0; i < WS_MAX_SOCKETS_PER_THREAD; i++ ) - { - pwsi->sock[i].fd = -1; - pwsi->sock[i].flags = i + 1; - } - pwsi->sock[WS_MAX_SOCKETS_PER_THREAD - 1].flags = -1; - } - else return WSASYSNOTREADY; - wsi_link(pwsi); - } else pwsi->num_startup++; + _WSHeap = HeapCreate(HEAP_ZERO_MEMORY, 8120, 32768); + if( !(_ws_stub = WS_ALLOC(0x10)) ) + { + fprintf(stderr,"Fatal: failed to create WinSock heap\n"); + return 0; + } + } + if( _WSHeap == 0 ) return WSASYSNOTREADY; - /* return winsock information */ - memcpy(lpWSAData, &WINSOCK_data, sizeof(WINSOCK_data)); + /* create socket array for this task */ + + pwsi = wsi_find(GetCurrentTask()); + if( pwsi == NULL ) + { + TDB* pTask = (TDB*)GlobalLock16( tid ); - dprintf_winsock(stddeb, "WSAStartup: succeeded\n"); - return(0); + if( (pwsi = (LPWSINFO)WS_ALLOC( sizeof(WSINFO))) ) + { + int i = 0; + pwsi->tid = tid; + for( i = 0; i < WS_MAX_SOCKETS_PER_THREAD; i++ ) + { + pwsi->sock[i].fd = -1; + pwsi->sock[i].flags = i + 1; + } + pwsi->sock[WS_MAX_SOCKETS_PER_THREAD - 1].flags = -1; + } + else return WSASYSNOTREADY; + + /* add this control struct to the global list */ + + pwsi->prev = NULL; + if( _wsi_list ) + _wsi_list->prev = pwsi; + pwsi->next = _wsi_list; + _wsi_list = pwsi; + pTask->pwsi = pwsi; + } + else pwsi->num_startup++; + + /* return winsock information */ + + memcpy(lpWSAData, &WINSOCK_data, sizeof(WINSOCK_data)); + + dprintf_winsock(stddeb, "WSAStartup: succeeded\n"); + return 0; } +/*********************************************************************** + * WSAStartup32() (WSOCK32.115) + */ +INT32 WINAPI WSAStartup32(UINT32 wVersionRequested, LPWSADATA lpWSAData) +{ + return WSAStartup16( wVersionRequested, lpWSAData ); +} + +/*********************************************************************** + * WSACleanup() (WINSOCK.116) + * + * Cleanup functions of varying impact. + */ void WINSOCK_Shutdown() { - if( async_qid != -1 ) - if( msgctl(async_qid, IPC_RMID, NULL) == -1 ) - fprintf(stderr,"failed to delete WS message queue.\n"); - else async_qid = -1; + /* Called on exit(), has to remove all outstanding async DNS processes. */ + + WINSOCK_cancel_task_aops( 0, __ws_memfree ); } -INT16 WSACleanup(void) +INT32 WINSOCK_DeleteTaskWSI( TDB* pTask, LPWSINFO pwsi ) { - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + /* WSACleanup() backend, called on task termination as well. */ - /* FIXME: do global cleanup if no current task */ + int i, j, n; - dprintf_winsock(stddeb, "WSACleanup(%08x)\n", (unsigned)pwsi); - if( pwsi ) - { - int i, j, n; + if( --pwsi->num_startup > 0 ) return 0; - if( pwsi->num_startup-- ) return 0; + SIGNAL_MaskAsyncEvents( TRUE ); + if( pTask ) + pTask->pwsi = NULL; + WINSOCK_cancel_task_aops( pTask->hSelf, __ws_memfree ); + SIGNAL_MaskAsyncEvents( FALSE ); - SIGNAL_MaskAsyncEvents( TRUE ); - WINSOCK_cancel_async_op(GetCurrentTask()); - SIGNAL_MaskAsyncEvents( FALSE ); + /* unlink socket control struct */ - wsi_unlink(pwsi); - if( _wsi_list == NULL ) WINSOCK_Shutdown(); + if( pwsi == _wsi_list ) + _wsi_list = pwsi->next; + else + pwsi->prev->next = pwsi->next; + if( pwsi->next ) pwsi->next->prev = pwsi->prev; - if( pwsi->flags & WSI_BLOCKINGCALL ) - dprintf_winsock(stddeb,"\tinside blocking call!\n"); - if( pwsi->num_async_rq ) - dprintf_winsock(stddeb,"\thave %i outstanding async ops!\n", pwsi->num_async_rq ); + if( _wsi_list == NULL ) + WINSOCK_Shutdown(); /* just in case */ - for(i = 0, j = 0, n = 0; i < WS_MAX_SOCKETS_PER_THREAD; i++) + if( pwsi->flags & WSI_BLOCKINGCALL ) + dprintf_winsock(stddeb,"\tinside blocking call!\n"); + +/* FIXME: aop_control() doesn't decrement pwsi->num_async_rq + * + * if( pwsi->num_async_rq ) + * dprintf_winsock(stddeb,"\thave %i outstanding async ops!\n", pwsi->num_async_rq ); + */ + + for(i = 0, j = 0, n = 0; i < WS_MAX_SOCKETS_PER_THREAD; i++) if( pwsi->sock[i].fd != -1 ) - { - n += cancel_async_select(&pwsi->sock[i]); - close(pwsi->sock[i].fd); j++; + { + if( pwsi->sock[i].psop ) + { + n++; + WSAAsyncSelect( (SOCKET16)WS_PTR2HANDLE(pwsi->sock + i), 0, 0, 0 ); + } + close(pwsi->sock[i].fd); j++; } - if( j ) + if( j ) dprintf_winsock(stddeb,"\tclosed %i sockets, killed %i async selects!\n", j, n); - if( pwsi->buffer ) SEGPTR_FREE(pwsi->buffer); - if( pwsi->dbuffer ) SEGPTR_FREE(pwsi->dbuffer); - WS_FREE(pwsi); - return 0; - } - return SOCKET_ERROR; + /* delete scratch buffers */ + + if( pwsi->buffer ) SEGPTR_FREE(pwsi->buffer); + if( pwsi->dbuffer ) SEGPTR_FREE(pwsi->dbuffer); + + memset( pwsi, 0, sizeof(WSINFO) ); + WS_FREE(pwsi); + return 0; } -INT16 WSAGetLastError(void) +INT32 WINAPI WSACleanup(void) { - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - INT16 ret; + HTASK16 hTask = GetCurrentTask(); - dprintf_winsock(stddeb, "WSAGetLastError(%08x)", (unsigned)pwsi); - - ret = (pwsi) ? pwsi->err : WSANOTINITIALISED; - - dprintf_winsock(stddeb, " = %i\n", (int)ret); - return ret; + dprintf_winsock(stddeb, "WSACleanup(%04x)\n", hTask ); + if( hTask ) + { + LPWSINFO pwsi = wsi_find(hTask); + if( pwsi ) + return WINSOCK_DeleteTaskWSI( (TDB*)GlobalLock16(hTask), pwsi ); + return SOCKET_ERROR; + } + else + WINSOCK_Shutdown(); /* remove all outstanding DNS requests */ + return 0; } -void WSASetLastError(INT16 iError) + +/*********************************************************************** + * WSAGetLastError() (WSOCK32.111)(WINSOCK.111) + */ +INT32 WINAPI WSAGetLastError(void) { - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + INT16 ret; - dprintf_winsock(stddeb, "WSASetLastError(%08x): %d\n", (unsigned)pwsi, (int)iError); + dprintf_winsock(stddeb, "WSAGetLastError(%08x)", (unsigned)pwsi); - if( pwsi ) pwsi->err = iError; + ret = (pwsi) ? pwsi->err : WSANOTINITIALISED; + + dprintf_winsock(stddeb, " = %i\n", (int)ret); + return ret; +} + +/*********************************************************************** + * WSASetLastError32() (WSOCK32.112) + */ +void WINAPI WSASetLastError32(INT32 iError) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WSASetLastError(%08x): %d\n", (unsigned)pwsi, (int)iError); + if( pwsi ) pwsi->err = iError; +} + +/*********************************************************************** + * WSASetLastError16() (WINSOCK.112) + */ +void WINAPI WSASetLastError16(INT16 iError) +{ + WSASetLastError32(iError); } int _check_ws(LPWSINFO pwsi, ws_socket* pws) { - if( pwsi ) - if( pwsi->flags & WSI_BLOCKINGCALL ) pwsi->err = WSAEINPROGRESS; - else if( WSI_CHECK_RANGE(pwsi, pws) ) return 1; - else pwsi->err = WSAENOTSOCK; - return 0; + if( pwsi ) + if( pwsi->flags & WSI_BLOCKINGCALL ) pwsi->err = WSAEINPROGRESS; + else if( WSI_CHECK_RANGE(pwsi, pws) ) return 1; + else pwsi->err = WSAENOTSOCK; + return 0; } int _check_buffer(LPWSINFO pwsi, int size) { - if( pwsi->buffer && pwsi->buflen >= size ) return 1; - else SEGPTR_FREE(pwsi->buffer); - pwsi->buffer = (char*)SEGPTR_ALLOC((pwsi->buflen = size)); - return (pwsi->buffer != NULL); + if( pwsi->buffer && pwsi->buflen >= size ) return 1; + else SEGPTR_FREE(pwsi->buffer); + + pwsi->buffer = (char*)SEGPTR_ALLOC((pwsi->buflen = size)); + return (pwsi->buffer != NULL); } -/* ----- socket operations */ +/* ----------------------------------- i/o APIs */ -SOCKET16 WINSOCK_accept(SOCKET16 s, struct sockaddr *addr, INT16 *addrlen16) +/*********************************************************************** + * accept() (WSOCK32.1) + */ +SOCKET32 WINAPI WINSOCK_accept32(SOCKET32 s, struct sockaddr *addr, + INT32 *addrlen32) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR((SOCKET16)s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); - dprintf_winsock(stddeb, "WS_ACCEPT(%08x): socket %04x\n", - (unsigned)pwsi, (UINT16)s); - if( _check_ws(pwsi, pws) ) - { - int sock, fd_flags, addrlen32 = *addrlen16; + dprintf_winsock(stddeb, "WS_ACCEPT(%08x): socket %04x\n", + (unsigned)pwsi, (UINT16)s ); + if( _check_ws(pwsi, pws) ) + { + int sock, fd_flags; - /* this is how block info is supposed to be used - - * WSAIsBlocking() would then check WSI_BLOCKINGCALL bit. - */ + fd_flags = fcntl(pws->fd, F_GETFL, 0); - fd_flags = fcntl(pws->fd, F_GETFL, 0); - if( !(fd_flags & O_NONBLOCK) ) pwsi->flags |= WSI_BLOCKINGCALL; + if( (sock = accept(pws->fd, addr, addrlen32)) >= 0 ) + { + ws_socket* pnew = wsi_alloc_socket(pwsi, sock); + if( pnew ) + { + s = (SOCKET32)WS_PTR2HANDLE(pnew); + if( pws->psop && pws->flags & WS_FD_ACCEPT ) + { + EVENT_AddIO( pws->fd, EVENT_IO_READ ); /* reenabler */ - if( (sock = accept(pws->fd, addr, &addrlen32)) >= 0 ) - { - ws_socket* pnew = wsi_alloc_socket(pwsi, sock); - notify_client(pws, WS_FD_ACCEPT); - if( pnew ) - { - if( pws->p_aop ) - init_async_select(pnew, pws->p_aop->hWnd, - pws->p_aop->uMsg, - pws->p_aop->flags & ~WS_FD_ACCEPT ); - - pwsi->flags &= ~WSI_BLOCKINGCALL; - return (SOCKET16)WS_PTR2HANDLE(pnew); - } - else pwsi->err = WSAENOBUFS; - } - else pwsi->err = wsaErrno(); - - pwsi->flags &= ~WSI_BLOCKINGCALL; - } - return INVALID_SOCKET; + /* async select the accept()'ed socket */ + WSAAsyncSelect( s, pws->psop->hWnd, pws->psop->uMsg, + pws->flags & ~WS_FD_ACCEPT ); + } + return s; + } + else pwsi->err = WSAENOBUFS; + } + else pwsi->err = wsaErrno(); + } + return INVALID_SOCKET32; } -INT16 WINSOCK_bind(SOCKET16 s, struct sockaddr *name, INT16 namelen) +/*********************************************************************** + * accept() (WINSOCK.1) + */ +SOCKET16 WINAPI WINSOCK_accept16(SOCKET16 s, struct sockaddr* addr, + INT16* addrlen16 ) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + INT32 addrlen32 = *addrlen16; + SOCKET32 retSocket = WINSOCK_accept32( s, addr, &addrlen32 ); + *addrlen16 = (INT16)addrlen32; + return (SOCKET16)retSocket; +} - dprintf_winsock(stddeb, "WS_BIND(%08x): socket %04x, ptr %8x, length %d\n", +/*********************************************************************** + * bind() (WSOCK32.2) + */ +INT32 WINAPI WINSOCK_bind32(SOCKET32 s, struct sockaddr *name, INT32 namelen) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_BIND(%08x): socket %04x, ptr %8x, length %d\n", (unsigned)pwsi, s, (int) name, namelen); #if 0 - dump_sockaddr(name); + dump_sockaddr(name); #endif - if ( _check_ws(pwsi, pws) ) - if (namelen >= sizeof(*name)) - if ( ((struct sockaddr_in *)name)->sin_family == AF_INET ) + if ( _check_ws(pwsi, pws) ) + if ( namelen >= sizeof(*name) ) + if ( ((struct sockaddr_in *)name)->sin_family == AF_INET ) if ( bind(pws->fd, name, namelen) < 0 ) { int loc_errno = errno; @@ -469,34 +551,59 @@ INT16 WINSOCK_bind(SOCKET16 s, struct sockaddr *name, INT16 namelen) default: pwsi->err = wsaErrno(); } } - else return 0; - else pwsi->err = WSAEAFNOSUPPORT; - else pwsi->err = WSAEFAULT; - return SOCKET_ERROR; + else return 0; /* success */ + else pwsi->err = WSAEAFNOSUPPORT; + else pwsi->err = WSAEFAULT; + return SOCKET_ERROR; } -INT16 WINSOCK_closesocket(SOCKET16 s) +/*********************************************************************** + * bind() (WINSOCK.2) + */ +INT16 WINAPI WINSOCK_bind16(SOCKET16 s, struct sockaddr *name, INT16 namelen) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_CLOSE(%08x): socket %08x\n", (unsigned)pwsi, s); - - if( _check_ws(pwsi, pws) ) - { - int fd = pws->fd; - - cancel_async_select(pws); - pws->fd = -1; - pws->flags = (unsigned)pwsi->last_free; - pwsi->last_free = pws - &pwsi->sock[0]; - if (close(fd) == 0) return 0; - pwsi->err = (errno == EBADF) ? WSAENOTSOCK : wsaErrno(); - } - return SOCKET_ERROR; + return (INT16)WINSOCK_bind32( s, name, namelen ); } -INT16 WINSOCK_connect(SOCKET16 s, struct sockaddr *name, INT16 namelen) +/*********************************************************************** + * closesocket() (WSOCK32.3) + */ +INT32 WINAPI WINSOCK_closesocket32(SOCKET32 s) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_CLOSE(%08x): socket %08x\n", (unsigned)pwsi, s); + + if( _check_ws(pwsi, pws) ) + { + int fd = pws->fd; + + if( pws->psop ) WSAAsyncSelect( s, 0, 0, 0 ); + + pws->fd = -1; + pws->flags = (unsigned)pwsi->last_free; + pwsi->last_free = pws - &pwsi->sock[0]; /* add to free list */ + + if( close(fd) == 0 ) + return 0; + pwsi->err = (errno == EBADF) ? WSAENOTSOCK : wsaErrno(); + } + return SOCKET_ERROR; +} + +/*********************************************************************** + * closesocket() (WINSOCK.3) + */ +INT16 WINAPI WINSOCK_closesocket16(SOCKET16 s) +{ + return (INT16)WINSOCK_closesocket32(s); +} + +/*********************************************************************** + * connect() (WSOCK32.4) + */ +INT32 WINAPI WINSOCK_connect32(SOCKET32 s, struct sockaddr *name, INT32 namelen) { ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -511,13 +618,22 @@ INT16 WINSOCK_connect(SOCKET16 s, struct sockaddr *name, INT16 namelen) { if (connect(pws->fd, name, namelen) == 0) { - if( pws->p_aop ) - /* we need to notify handler process if - * connect() succeeded NOT in response to winsock message - */ - notify_client(pws, WS_FD_CONNECTED); - - pws->flags &= ~(WS_FD_INACTIVE | WS_FD_CONNECT); + pws->flags &= ~(WS_FD_INACTIVE | WS_FD_CONNECT); + if( pws->psop && pws->flags & WS_FD_CONNECT ) + { + if( !(pws->flags & WS_FD_CONNECTED) ) + { + if( pws->flags & (WS_FD_READ | WS_FD_CLOSE) ) + EVENT_AddIO( pws->fd, EVENT_IO_READ ); + else + EVENT_DeleteIO( pws->fd, EVENT_IO_READ ); + if( pws->flags & WS_FD_WRITE ) + EVENT_AddIO( pws->fd, EVENT_IO_WRITE ); + else + EVENT_DeleteIO( pws->fd, EVENT_IO_WRITE ); + pws->flags |= WS_FD_CONNECTED; + } + } return 0; } pwsi->err = (errno == EINPROGRESS) ? WSAEWOULDBLOCK : wsaErrno(); @@ -525,77 +641,142 @@ INT16 WINSOCK_connect(SOCKET16 s, struct sockaddr *name, INT16 namelen) return SOCKET_ERROR; } -INT16 WINSOCK_getpeername(SOCKET16 s, struct sockaddr *name, INT16 *namelen) +/*********************************************************************** + * connect() (WINSOCK.4) + */ +INT16 WINAPI WINSOCK_connect16(SOCKET16 s, struct sockaddr *name, INT16 namelen) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + return (INT16)WINSOCK_connect32( s, name, namelen ); +} - dprintf_winsock(stddeb, "WS_GETPEERNAME(%08x): socket: %04x, ptr %8x, ptr %8x\n", +/*********************************************************************** + * getpeername() (WSOCK32.5) + */ +INT32 WINAPI WINSOCK_getpeername32(SOCKET32 s, struct sockaddr *name, + INT32 *namelen) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GETPEERNAME(%08x): socket: %04x, ptr %8x, ptr %8x\n", (unsigned)pwsi, s, (int) name, *namelen); - if( _check_ws(pwsi, pws) ) - { - int namelen32 = *namelen; - if (getpeername(pws->fd, name, &namelen32) == 0) - { + if( _check_ws(pwsi, pws) ) + { + if (getpeername(pws->fd, name, namelen) == 0) + return 0; + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return SOCKET_ERROR; +} + +/*********************************************************************** + * getpeername() (WINSOCK.5) + */ +INT16 WINAPI WINSOCK_getpeername16(SOCKET16 s, struct sockaddr *name, + INT16 *namelen16) +{ + INT32 namelen32 = *namelen16; + INT32 retVal = WINSOCK_getpeername32( s, name, &namelen32 ); + #if 0 - dump_sockaddr(name); + dump_sockaddr(name); #endif - *namelen = (INT16)namelen32; - return 0; - } - pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); - } - return SOCKET_ERROR; + + *namelen16 = namelen32; + return (INT16)retVal; } -INT16 WINSOCK_getsockname(SOCKET16 s, struct sockaddr *name, INT16 *namelen) +/*********************************************************************** + * getsockname() (WSOCK32.6) + */ +INT32 WINAPI WINSOCK_getsockname32(SOCKET32 s, struct sockaddr *name, + INT32 *namelen) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); - dprintf_winsock(stddeb, "WS_GETSOCKNAME(%08x): socket: %04x, ptr %8x, ptr %8x\n", + dprintf_winsock(stddeb, "WS_GETSOCKNAME(%08x): socket: %04x, ptr %8x, ptr %8x\n", (unsigned)pwsi, s, (int) name, (int) *namelen); - if( _check_ws(pwsi, pws) ) - { - int namelen32 = *namelen; - if (getsockname(pws->fd, name, &namelen32) == 0) - { - *namelen = (INT16)namelen32; - return 0; + if( _check_ws(pwsi, pws) ) + { + if (getsockname(pws->fd, name, namelen) == 0) + return 0; + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); } - pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); - } - return SOCKET_ERROR; + return SOCKET_ERROR; } -INT16 WINSOCK_getsockopt(SOCKET16 s, INT16 level, - INT16 optname, char *optval, INT16 *optlen) +/*********************************************************************** + * getsockname() (WINSOCK.6) + */ +INT16 WINAPI WINSOCK_getsockname16(SOCKET16 s, struct sockaddr *name, + INT16 *namelen16) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_GETSOCKOPT(%08x): socket: %04x, opt %d, ptr %8x, ptr %8x\n", - (unsigned)pwsi, s, level, (int) optval, (int) *optlen); - - if( _check_ws(pwsi, pws) ) - { - int optlen32 = *optlen; - - convert_sockopt(&level, &optname); - if (getsockopt(pws->fd, (int) level, optname, optval, &optlen32) == 0 ) - { *optlen = (INT16)optlen32; return 0; } - pwsi->err = (errno == EBADF) ? WSAENOTSOCK : wsaErrno(); - } - return SOCKET_ERROR; + INT32 namelen32 = *namelen16; + INT32 retVal = WINSOCK_getsockname32( s, name, &namelen32 ); + *namelen16 = namelen32; + return (INT16)retVal; } -u_long WINSOCK_htonl(u_long hostlong) { return( htonl(hostlong) ); } -u_short WINSOCK_htons(u_short hostshort) { return( htons(hostshort) ); } -u_long WINSOCK_inet_addr(char *cp) { return( inet_addr(cp) ); } -u_long WINSOCK_ntohl(u_long netlong) { return( ntohl(netlong) ); } -u_short WINSOCK_ntohs(u_short netshort) { return( ntohs(netshort) ); } -SEGPTR WINSOCK_inet_ntoa(struct in_addr in) +/*********************************************************************** + * getsockopt() (WSOCK32.7) + */ +INT32 WINAPI WINSOCK_getsockopt32(SOCKET32 s, INT32 level, + INT32 optname, char *optval, INT32 *optlen) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GETSOCKOPT(%08x): socket: %04x, opt %d, ptr %8x, ptr %8x\n", + (unsigned)pwsi, s, level, (int) optval, (int) *optlen); + if( _check_ws(pwsi, pws) ) + { + convert_sockopt(&level, &optname); + if (getsockopt(pws->fd, (int) level, optname, optval, optlen) == 0 ) + return 0; + pwsi->err = (errno == EBADF) ? WSAENOTSOCK : wsaErrno(); + } + return SOCKET_ERROR; +} + +/*********************************************************************** + * getsockopt() (WINSOCK.7) + */ +INT16 WINAPI WINSOCK_getsockopt16(SOCKET16 s, INT16 level, + INT16 optname, char *optval, INT16 *optlen) +{ + INT32 optlen32 = *optlen; + INT32 retVal = WINSOCK_getsockopt32( s, level, optname, optval, &optlen32 ); + *optlen = optlen32; + return (INT16)retVal; +} + +/*********************************************************************** + * htonl() (WINSOCK.8)(WSOCK32.8) + */ +u_long WINAPI WINSOCK_htonl(u_long hostlong) { return( htonl(hostlong) ); } +/*********************************************************************** + * htons() (WINSOCK.9)(WSOCK32.9) + */ +u_short WINAPI WINSOCK_htons(u_short hostshort) { return( htons(hostshort) ); } +/*********************************************************************** + * inet_addr() (WINSOCK.10) + */ +u_long WINAPI WINSOCK_inet_addr(char *cp) { return( inet_addr(cp) ); } +/*********************************************************************** + * htohl() (WINSOCK.14)(WSOCK32.14) + */ +u_long WINAPI WINSOCK_ntohl(u_long netlong) { return( ntohl(netlong) ); } +/*********************************************************************** + * ntohs() (WINSOCK.15)(WSOCK32.15) + */ +u_short WINAPI WINSOCK_ntohs(u_short netshort) { return( ntohs(netshort) ); } + +/*********************************************************************** + * inet_ntoa() (WINSOCK.11) + */ +SEGPTR WINAPI WINSOCK_inet_ntoa(struct in_addr in) { /* use "buffer for dummies" here because some applications have * propensity to decode addresses in ws_hostent structure without @@ -623,7 +804,10 @@ SEGPTR WINSOCK_inet_ntoa(struct in_addr in) return (SEGPTR)NULL; } -INT16 WINSOCK_ioctlsocket(SOCKET16 s, UINT32 cmd, UINT32 *argp) +/*********************************************************************** + * ioctlsocket() (WSOCK32.12) + */ +INT32 WINAPI WINSOCK_ioctlsocket32(SOCKET32 s, UINT32 cmd, UINT32 *argp) { ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -642,8 +826,9 @@ INT16 WINSOCK_ioctlsocket(SOCKET16 s, UINT32 cmd, UINT32 *argp) case WS_FIONBIO: newcmd=FIONBIO; - if( pws->p_aop && *argp == 0 ) + if( pws->psop && *argp == 0 ) { + /* AsyncSelect()'ed sockets are always nonblocking */ pwsi->err = WSAEINVAL; return SOCKET_ERROR; } @@ -668,81 +853,141 @@ INT16 WINSOCK_ioctlsocket(SOCKET16 s, UINT32 cmd, UINT32 *argp) return SOCKET_ERROR; } -INT16 WINSOCK_listen(SOCKET16 s, INT16 backlog) +/*********************************************************************** + * ioctlsocket() (WINSOCK.12) + */ +INT16 WINAPI WINSOCK_ioctlsocket16(SOCKET16 s, UINT32 cmd, UINT32 *argp) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + return (INT16)WINSOCK_ioctlsocket32( s, cmd, argp ); +} - dprintf_winsock(stddeb, "WS_LISTEN(%08x): socket %04x, backlog %d\n", - (unsigned)pwsi, s, backlog); - if( _check_ws(pwsi, pws) ) - { - if( !pws->p_aop ) + +/*********************************************************************** + * listen() (WSOCK32.13) + */ +INT32 WINAPI WINSOCK_listen32(SOCKET32 s, INT32 backlog) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_LISTEN(%08x): socket %04x, backlog %d\n", + (unsigned)pwsi, s, backlog); + if( _check_ws(pwsi, pws) ) { - int fd_flags = fcntl(pws->fd, F_GETFL, 0); - if( !(fd_flags & O_NONBLOCK) ) pws->flags |= WS_FD_ACCEPT; - } - else notify_client(pws, WS_FD_ACCEPT); + if( !pws->psop ) + { + int fd_flags = fcntl(pws->fd, F_GETFL, 0); + if( !(fd_flags & O_NONBLOCK) ) pws->flags |= WS_FD_ACCEPT; + } - if (listen(pws->fd, backlog) == 0) return 0; - pwsi->err = wsaErrno(); - } - return SOCKET_ERROR; + if (listen(pws->fd, backlog) == 0) return 0; + pwsi->err = wsaErrno(); + } + else if( pwsi ) pwsi->err = WSAENOTSOCK; + return SOCKET_ERROR; } -INT16 WINSOCK_recv(SOCKET16 s, char *buf, INT16 len, INT16 flags) +/*********************************************************************** + * listen() (WINSOCK.13) + */ +INT16 WINAPI WINSOCK_listen16(SOCKET16 s, INT16 backlog) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_RECV(%08x): socket %04x, buf %8x, len %d, flags %d", - (unsigned)pwsi, s, (unsigned)buf, len, flags); - if( _check_ws(pwsi, pws) ) - { - int length; - if ((length = recv(pws->fd, buf, len, flags)) >= 0) - { - dprintf_winsock(stddeb, " -> %i bytes\n", length); - notify_client(pws, WS_FD_READ); - return (INT16)length; - } - pwsi->err = wsaErrno(); - } - dprintf_winsock(stddeb, " -> ERROR\n"); - return SOCKET_ERROR; + return (INT16)WINSOCK_listen32( s, backlog ); } -INT16 WINSOCK_recvfrom(SOCKET16 s, char *buf, INT16 len, INT16 flags, - struct sockaddr *from, INT16 *fromlen16) + +/*********************************************************************** + * recv() (WSOCK32.16) + */ +INT32 WINAPI WINSOCK_recv32(SOCKET32 s, char *buf, INT32 len, INT32 flags) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); - dprintf_winsock(stddeb, "WS_RECVFROM(%08x): socket %04x, ptr %08x, len %d, flags %d\n", + dprintf_winsock(stddeb, "WS_RECV(%08x): socket %04x, buf %8x, len %d, flags %d", (unsigned)pwsi, s, (unsigned)buf, len, flags); - if( _check_ws(pwsi, pws) ) - { - int length, fromlen32 = *fromlen16; + if( _check_ws(pwsi, pws) ) + { + INT32 length; + if ((length = recv(pws->fd, buf, len, flags)) >= 0) + { + dprintf_winsock(stddeb, " -> %i bytes\n", length); - if ((length = recvfrom(pws->fd, buf, len, flags, from, &fromlen32)) >= 0) - { - *fromlen16 = fromlen32; - notify_client(pws, WS_FD_READ); - return (INT16)length; + if( pws->psop && (pws->flags & (WS_FD_READ | WS_FD_CLOSE)) ) + EVENT_AddIO( pws->fd, EVENT_IO_READ ); /* reenabler */ + + return length; + } + pwsi->err = wsaErrno(); } - pwsi->err = wsaErrno(); - } - return SOCKET_ERROR; + else if( pwsi ) pwsi->err = WSAENOTSOCK; + dprintf_winsock(stddeb, " -> ERROR\n"); + return SOCKET_ERROR; } -INT16 WINSOCK_select(INT16 nfds, ws_fd_set *ws_readfds, - ws_fd_set *ws_writefds, - ws_fd_set *ws_exceptfds, struct timeval *timeout) +/*********************************************************************** + * recv() (WINSOCK.16) + */ +INT16 WINAPI WINSOCK_recv16(SOCKET16 s, char *buf, INT16 len, INT16 flags) +{ + return (INT16)WINSOCK_recv32( s, buf, len, flags ); +} + + +/*********************************************************************** + * recvfrom() (WSOCK32.17) + */ +INT32 WINAPI WINSOCK_recvfrom32(SOCKET32 s, char *buf, INT32 len, INT32 flags, + struct sockaddr *from, INT32 *fromlen32) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_RECVFROM(%08x): socket %04x, ptr %08x, len %d, flags %d", + (unsigned)pwsi, s, (unsigned)buf, len, flags); + if( _check_ws(pwsi, pws) ) + { + int length; + + if ((length = recvfrom(pws->fd, buf, len, flags, from, fromlen32)) >= 0) + { + dprintf_winsock(stddeb, " -> %i bytes\n", length); + + if( pws->psop && (pws->flags & (WS_FD_READ | WS_FD_CLOSE)) ) + EVENT_AddIO( pws->fd, EVENT_IO_READ ); /* reenabler */ + + return (INT16)length; + } + pwsi->err = wsaErrno(); + } + else if( pwsi ) pwsi->err = WSAENOTSOCK; + dprintf_winsock(stddeb, " -> ERROR\n"); + return SOCKET_ERROR; +} + +/*********************************************************************** + * recvfrom() (WINSOCK.17) + */ +INT16 WINAPI WINSOCK_recvfrom16(SOCKET16 s, char *buf, INT16 len, INT16 flags, + struct sockaddr *from, INT16 *fromlen16) +{ + INT32 fromlen32 = *fromlen16; + INT32 retVal = WINSOCK_recvfrom32( s, buf, len, flags, from, &fromlen32 ); + *fromlen16 = fromlen32; + return (INT16)retVal; +} + +/*********************************************************************** + * select() (WINSOCK.18) + */ +INT16 WINAPI WINSOCK_select16(INT16 nfds, ws_fd_set *ws_readfds, + ws_fd_set *ws_writefds, ws_fd_set *ws_exceptfds, + struct timeval *timeout) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); dprintf_winsock(stddeb, "WS_SELECT(%08x): nfds %d (ignored), read %8x, write %8x, excp %8x\n", - (unsigned) pwsi, nfds, (unsigned) ws_readfds, (unsigned) ws_writefds, (unsigned) ws_exceptfds); + (unsigned) pwsi, nfds, (unsigned) ws_readfds, (unsigned) ws_writefds, (unsigned) ws_exceptfds); if( pwsi ) { @@ -760,7 +1005,23 @@ INT16 WINSOCK_select(INT16 nfds, ws_fd_set *ws_readfds, { fd_set_update(pwsi, &readfds, ws_readfds, &errorfds); fd_set_update(pwsi, &writefds, ws_writefds, &errorfds); - fd_set_update_except(pwsi, &exceptfds, ws_exceptfds, &errorfds); + + /* update exception set (see "weirdness" comment in the + * beginning of the file). */ + + if (ws_exceptfds) + { + int i, j, count = ws_exceptfds->fd_count; + + for (i = j = 0; i < count; i++) + { + ws_socket *pws = (ws_socket *)WS_HANDLE2PTR(ws_exceptfds->fd_array[i]); + if( _check_ws(pwsi, pws) && + (FD_ISSET(pws->fd, &exceptfds) || FD_ISSET(pws->fd, &errorfds)) ) + ws_exceptfds->fd_array[j++] = ws_exceptfds->fd_array[i]; + } + ws_exceptfds->fd_count = j; + } } return highfd; } @@ -769,95 +1030,191 @@ INT16 WINSOCK_select(INT16 nfds, ws_fd_set *ws_readfds, return SOCKET_ERROR; } -INT16 WINSOCK_send(SOCKET16 s, char *buf, INT16 len, INT16 flags) +/*********************************************************************** + * select() (WSOCK32.18) + */ +INT32 WINAPI WINSOCK_select32(INT32 nfds, ws_fd_set *ws_readfds, + ws_fd_set *ws_writefds, ws_fd_set *ws_exceptfds, + struct timeval *timeout) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + /* struct timeval is the same for both 32- and 16-bit code */ + return WINSOCK_select16( (INT16)nfds, ws_readfds, ws_writefds, ws_exceptfds, timeout ); +} - dprintf_winsock(stddeb, "WS_SEND(%08x): socket %04x, ptr %08x, length %d, flags %d\n", + +/*********************************************************************** + * send() (WSOCK32.19) + */ +INT32 WINAPI WINSOCK_send32(SOCKET32 s, char *buf, INT32 len, INT32 flags) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_SEND(%08x): socket %04x, ptr %08x, length %d, flags %d\n", (unsigned)pwsi, s, (unsigned) buf, len, flags); - if( _check_ws(pwsi, pws) ) - { - int length; - if ((length = send(pws->fd, buf, len, flags)) < 0 ) - { - length = SOCKET_ERROR; + if( _check_ws(pwsi, pws) ) + { + int length; + + if ((length = send(pws->fd, buf, len, flags)) < 0 ) + { + pwsi->err = wsaErrno(); + if( pwsi->err == WSAEWOULDBLOCK && + pws->psop && pws->flags & WS_FD_WRITE ) + EVENT_AddIO( pws->fd, EVENT_IO_WRITE ); /* reenabler */ + } + else return (INT16)length; + } + else if( pwsi ) pwsi->err = WSAENOTSOCK; + return SOCKET_ERROR; +} + +/*********************************************************************** + * send() (WINSOCK.19) + */ +INT16 WINAPI WINSOCK_send16(SOCKET16 s, char *buf, INT16 len, INT16 flags) +{ + return WINSOCK_send32( s, buf, len, flags ); +} + +/*********************************************************************** + * sendto() (WSOCK32.20) + */ +INT32 WINAPI WINSOCK_sendto32(SOCKET32 s, char *buf, INT32 len, INT32 flags, + struct sockaddr *to, INT32 tolen) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_SENDTO(%08x): socket %04x, ptr %08x, length %d, flags %d\n", + (unsigned)pwsi, s, (unsigned) buf, len, flags); + if( _check_ws(pwsi, pws) ) + { + INT32 length; + + if ((length = sendto(pws->fd, buf, len, flags, to, tolen)) < 0 ) + { + pwsi->err = wsaErrno(); + if( pwsi->err == WSAEWOULDBLOCK && + pws->psop && pws->flags & WS_FD_WRITE ) + EVENT_AddIO( pws->fd, EVENT_IO_WRITE ); /* reenabler */ + } + else return length; + } + else if( pwsi ) pwsi->err = WSAENOTSOCK; + return SOCKET_ERROR; +} + +/*********************************************************************** + * sendto() (WINSOCK.20) + */ +INT16 WINAPI WINSOCK_sendto16(SOCKET16 s, char *buf, INT16 len, INT16 flags, + struct sockaddr *to, INT16 tolen) +{ + return (INT16)WINSOCK_sendto32( s, buf, len, flags, to, tolen ); +} + +/*********************************************************************** + * setsockopt() (WSOCK32.21) + */ +INT32 WINAPI WINSOCK_setsockopt32(SOCKET16 s, INT32 level, INT32 optname, + char *optval, INT32 optlen) +{ + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_SETSOCKOPT(%08x): socket %04x, lev %d, opt %d, ptr %08x, len %d\n", + (unsigned)pwsi, s, level, optname, (int) optval, optlen); + if( _check_ws(pwsi, pws) ) + { + convert_sockopt(&level, &optname); + if (setsockopt(pws->fd, level, optname, optval, optlen) == 0) return 0; pwsi->err = wsaErrno(); } - notify_client(pws, WS_FD_WRITE); - return (INT16)length; - } - return SOCKET_ERROR; + else if( pwsi ) pwsi->err = WSAENOTSOCK; + return SOCKET_ERROR; } -INT16 WINSOCK_sendto(SOCKET16 s, char *buf, INT16 len, INT16 flags, - struct sockaddr *to, INT16 tolen) +/*********************************************************************** + * setsockopt() (WINSOCK.21) + */ +INT16 WINAPI WINSOCK_setsockopt16(SOCKET16 s, INT16 level, INT16 optname, + char *optval, INT16 optlen) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_SENDTO(%08x): socket %04x, ptr %08x, length %d, flags %d\n", - (unsigned)pwsi, s, (unsigned) buf, len, flags); - if( _check_ws(pwsi, pws) ) - { - int length; - - if ((length = sendto(pws->fd, buf, len, flags, to, tolen)) < 0 ) - { - length = SOCKET_ERROR; - pwsi->err = wsaErrno(); - } - notify_client(pws, WS_FD_WRITE); - return (INT16)length; - } - return SOCKET_ERROR; -} - -INT16 WINSOCK_setsockopt(SOCKET16 s, INT16 level, INT16 optname, - char *optval, INT16 optlen) -{ - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_SETSOCKOPT(%08x): socket %04x, level %d, opt %d, ptr %08x, len %d\n", - (unsigned)pwsi, s, level, optname, (int) optval, optlen); - if( _check_ws(pwsi, pws) ) - { - int linger32[2]; - convert_sockopt(&level, &optname); + INT32 linger32[2]; if( optname == SO_LINGER ) { - INT16* ptr = (INT16*)optval; - linger32[0] = ptr[0]; - linger32[1] = ptr[1]; + INT16* ptr = (INT16*)optval; + linger32[0] = ptr[0]; + linger32[1] = ptr[1]; optval = (char*)&linger32; optlen = sizeof(linger32); } - if (setsockopt(pws->fd, level, optname, optval, optlen) == 0) return 0; - pwsi->err = wsaErrno(); - } - return SOCKET_ERROR; + return (INT16)WINSOCK_setsockopt32( s, level, optname, optval, optlen ); } -INT16 WINSOCK_shutdown(SOCKET16 s, INT16 how) + +/*********************************************************************** + * shutdown() (WSOCK32.22) + */ +INT32 WINAPI WINSOCK_shutdown32(SOCKET32 s, INT32 how) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); - dprintf_winsock(stddeb, "WS_SHUTDOWN(%08x): socket %04x, how %i\n", - (unsigned)pwsi, s, how ); - if( _check_ws(pwsi, pws) ) - { - pws->flags |= WS_FD_INACTIVE; - cancel_async_select(pws); + dprintf_winsock(stddeb, "WS_SHUTDOWN(%08x): socket %04x, how %i\n", + (unsigned)pwsi, s, how ); + if( _check_ws(pwsi, pws) ) + { + if( pws->psop ) + switch( how ) + { + case 0: /* drop receives */ + if( pws->flags & (WS_FD_READ | WS_FD_CLOSE) ) + EVENT_DeleteIO( pws->fd, EVENT_IO_READ ); + pws->flags &= ~(WS_FD_READ | WS_FD_CLOSE); + break; - if (shutdown(pws->fd, how) == 0) return 0; - pwsi->err = wsaErrno(); - } - return SOCKET_ERROR; + case 1: /* drop sends */ + if( pws->flags & WS_FD_WRITE ) + EVENT_DeleteIO( pws->fd, EVENT_IO_WRITE ); + pws->flags &= ~WS_FD_WRITE; + break; + + case 2: /* drop all */ + default: + WSAAsyncSelect( s, 0, 0, 0 ); + break; + } + + if (shutdown(pws->fd, how) == 0) + { + if( how > 1 ) + { + pws->flags &= ~WS_FD_CONNECTED; + pws->flags |= WS_FD_INACTIVE; + } + return 0; + } + pwsi->err = wsaErrno(); + } + else if( pwsi ) pwsi->err = WSAENOTSOCK; + return SOCKET_ERROR; } -SOCKET16 WINSOCK_socket(INT16 af, INT16 type, INT16 protocol) +/*********************************************************************** + * shutdown() (WINSOCK.22) + */ +INT16 WINAPI WINSOCK_shutdown16(SOCKET16 s, INT16 how) +{ + return (INT16)WINSOCK_shutdown32( s, how ); +} + + +/*********************************************************************** + * socket() (WSOCK32.23) + */ +SOCKET32 WINAPI WINSOCK_socket32(INT32 af, INT32 type, INT32 protocol) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -873,7 +1230,8 @@ SOCKET16 WINSOCK_socket(INT16 af, INT16 type, INT16 protocol) { case AF_INET: case AF_UNSPEC: break; - default: pwsi->err = WSAEAFNOSUPPORT; return INVALID_SOCKET; + default: pwsi->err = WSAEAFNOSUPPORT; + return INVALID_SOCKET32; } /* check the socket type */ @@ -881,13 +1239,14 @@ SOCKET16 WINSOCK_socket(INT16 af, INT16 type, INT16 protocol) { case SOCK_STREAM: case SOCK_DGRAM: - case SOCK_RAW: break; - default: pwsi->err = WSAESOCKTNOSUPPORT; return INVALID_SOCKET; + case SOCK_RAW: break; + default: pwsi->err = WSAESOCKTNOSUPPORT; + return INVALID_SOCKET32; } /* check the protocol type */ if ( protocol < 0 ) /* don't support negative values */ - { pwsi->err = WSAEPROTONOSUPPORT; return INVALID_SOCKET; } + { pwsi->err = WSAEPROTONOSUPPORT; return INVALID_SOCKET32; } if ( af == AF_UNSPEC) /* did they not specify the address family? */ switch(protocol) @@ -896,7 +1255,7 @@ SOCKET16 WINSOCK_socket(INT16 af, INT16 type, INT16 protocol) if (type == SOCK_STREAM) { af = AF_INET; break; } case IPPROTO_UDP: if (type == SOCK_DGRAM) { af = AF_INET; break; } - default: pwsi->err = WSAEPROTOTYPE; return INVALID_SOCKET; + default: pwsi->err = WSAEPROTOTYPE; return INVALID_SOCKET32; } if ((sock = socket(af, type, protocol)) >= 0) @@ -906,11 +1265,10 @@ SOCKET16 WINSOCK_socket(INT16 af, INT16 type, INT16 protocol) dprintf_winsock(stddeb,"\tcreated %04x (handle %i)\n", sock, (UINT16)WS_PTR2HANDLE(pnew)); if( pnew ) return (SOCKET16)WS_PTR2HANDLE(pnew); - { - close(sock); - pwsi->err = WSAENOBUFS; - return INVALID_SOCKET; - } + + close(sock); + pwsi->err = WSAENOBUFS; + return INVALID_SOCKET32; } if (errno == EPERM) /* raw socket denied */ @@ -921,265 +1279,337 @@ SOCKET16 WINSOCK_socket(INT16 af, INT16 type, INT16 protocol) } dprintf_winsock(stddeb, "\t\tfailed!\n"); - return INVALID_SOCKET; + return INVALID_SOCKET32; +} + +/*********************************************************************** + * socket() (WINSOCK.23) + */ +SOCKET16 WINAPI WINSOCK_socket16(INT16 af, INT16 type, INT16 protocol) +{ + return (SOCKET16)WINSOCK_socket32( af, type, protocol ); } -/* ----- database functions +/* ----------------------------------- DNS services * - * Note that ws_...ent structures we return have SEGPTR pointers inside them. + * IMPORTANT: 16-bit API structures have SEGPTR pointers inside them. + * Also, we have to use wsock32 stubs to convert error codes from Unix + * to WSA, hence no direct mapping in if1632/wsock32.spec. + * + * FIXME: Win32 may need "short" h_addrtype and h_length in + * ...ent structures. If so, use WS_dup_...(pwsi, ..., 0) to + * convert. */ static char* NULL_STRING = "NULL"; -/* -struct WIN_hostent * -*/ -SEGPTR WINSOCK_gethostbyaddr(const char *addr, INT16 len, INT16 type) -{ - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - dprintf_winsock(stddeb, "WS_GetHostByAddr(%08x): ptr %8x, len %d, type %d\n", +/*********************************************************************** + * gethostbyaddr() (WINSOCK.51) + * + * +struct WIN_hostent * + */ +SEGPTR WINAPI WINSOCK_gethostbyaddr16(const char *addr, INT16 len, INT16 type) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetHostByAddr16(%08x): ptr %8x, len %d, type %d\n", (unsigned)pwsi, (unsigned) addr, len, type); - if( pwsi ) - { - struct hostent* host; - if( (host = gethostbyaddr(addr, len, type)) != NULL ) - if( WS_dup_he(pwsi, host, WS_DUP_SEGPTR) ) - return SEGPTR_GET(pwsi->buffer); - else pwsi->err = WSAENOBUFS; - else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); - } - return NULL; -} - -/* -struct WIN_hostent * -*/ -SEGPTR WINSOCK_gethostbyname(const char *name) -{ - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_GetHostByName(%08x): %s\n", - (unsigned)pwsi, (name)?name:"NULL"); - if( pwsi ) - { - struct hostent* host; - if( (host = gethostbyname(name)) != NULL ) - if( WS_dup_he(pwsi, host, WS_DUP_SEGPTR) ) - return SEGPTR_GET(pwsi->buffer); - else pwsi->err = WSAENOBUFS; - else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); - } - return NULL; -} - -INT16 WINSOCK_gethostname(char *name, INT16 namelen) -{ - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_GetHostName(%08x): name %s, len %d\n", - (unsigned)pwsi, (name)?name:NULL_STRING, namelen); - if( pwsi ) - { - if (gethostname(name, namelen) == 0) return 0; - pwsi->err = (errno == EINVAL) ? WSAEFAULT : wsaErrno(); - } - return SOCKET_ERROR; -} - -/* -struct WIN_protoent * -*/ -SEGPTR WINSOCK_getprotobyname(char *name) -{ - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_GetProtoByName(%08x): %s\n", - (unsigned)pwsi, (name)?name:NULL_STRING); - if( pwsi ) - { - struct protoent* proto; - if( (proto = getprotobyname(name)) != NULL ) - if( WS_dup_pe(pwsi, proto, WS_DUP_SEGPTR) ) - return SEGPTR_GET(pwsi->buffer); - else pwsi->err = WSAENOBUFS; - else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); - } - return NULL; -} - -/* -struct WIN_protoent * -*/ -SEGPTR WINSOCK_getprotobynumber(INT16 number) -{ - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_GetProtoByNumber(%08x): %i\n", (unsigned)pwsi, number); - - if( pwsi ) - { - struct protoent* proto; - if( (proto = getprotobynumber(number)) != NULL ) - if( WS_dup_pe(pwsi, proto, WS_DUP_SEGPTR) ) - return SEGPTR_GET(pwsi->buffer); - else pwsi->err = WSAENOBUFS; - else pwsi->err = WSANO_DATA; - } - return NULL; -} - -/* -struct WIN_servent * -*/ -SEGPTR WINSOCK_getservbyname(const char *name, const char *proto) -{ - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_GetServByName(%08x): '%s', '%s'\n", - (unsigned)pwsi, (name)?name:NULL_STRING, (proto)?proto:NULL_STRING); - - if( pwsi ) - { - struct servent* serv; - if( (serv = getservbyname(name, proto)) != NULL ) - if( WS_dup_se(pwsi, serv, WS_DUP_SEGPTR) ) - return SEGPTR_GET(pwsi->buffer); - else pwsi->err = WSAENOBUFS; - else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); - } - return NULL; -} - -/* -struct WIN_servent * -*/ -SEGPTR WINSOCK_getservbyport(INT16 port, const char *proto) -{ - LPWSINFO pwsi = wsi_find(GetCurrentTask()); - - dprintf_winsock(stddeb, "WS_GetServByPort(%08x): %i, '%s'\n", - (unsigned)pwsi, (int)port, (proto)?proto:NULL_STRING); - if( pwsi ) - { - struct servent* serv; - if( (serv = getservbyport(port, proto)) != NULL ) - if( WS_dup_se(pwsi, serv, WS_DUP_SEGPTR) ) - return SEGPTR_GET(pwsi->buffer); - else pwsi->err = WSAENOBUFS; - else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); - } - return NULL; -} - - -/* ----------------------------------- Windows sockets extensions -- * - * * - * ----------------------------------------------------------------- */ - -static int aop_control(ws_async_op* p_aop, int flag ) -{ - unsigned lLength; - - read(p_aop->fd[0], &lLength, sizeof(unsigned)); - if( LOWORD(lLength) ) - if( (int)LOWORD(lLength) <= p_aop->buflen ) + if( pwsi ) { - char* buffer = (char*)PTR_SEG_TO_LIN(p_aop->buffer_base); - read(p_aop->fd[0], buffer, LOWORD(lLength)); - switch( p_aop->flags ) - { - case WSMSG_ASYNC_HOSTBYNAME: - case WSMSG_ASYNC_HOSTBYADDR: - fixup_wshe((struct ws_hostent*)buffer, p_aop->buffer_base); break; - case WSMSG_ASYNC_PROTOBYNAME: - case WSMSG_ASYNC_PROTOBYNUM: - fixup_wspe((struct ws_protoent*)buffer, p_aop->buffer_base); break; - case WSMSG_ASYNC_SERVBYNAME: - case WSMSG_ASYNC_SERVBYPORT: - fixup_wsse((struct ws_servent*)buffer, p_aop->buffer_base); break; - default: - if( p_aop->flags ) fprintf(stderr,"Received unknown async request!\n"); - return AOP_CONTROL_REMOVE; - } + struct hostent* host = gethostbyaddr(addr, len, type); + if( host ) + if( WS_dup_he(pwsi, host, WS_DUP_SEGPTR) ) + return SEGPTR_GET(pwsi->buffer); + else + pwsi->err = WSAENOBUFS; + else + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); } - else lLength = ((UINT32)LOWORD(lLength)) | ((unsigned)WSAENOBUFS << 16); - -#if 0 - printf("async op completed: hWnd [%04x], uMsg [%04x], aop [%04x], event [%08x]\n", - p_aop->hWnd, p_aop->uMsg, (HANDLE16)WS_PTR2HANDLE(p_aop), (LPARAM)lLength); -#endif - - PostMessage16(p_aop->hWnd, p_aop->uMsg, (HANDLE16)WS_PTR2HANDLE(p_aop), (LPARAM)lLength); - return AOP_CONTROL_REMOVE; + return (SEGPTR)NULL; } - -static HANDLE16 __WSAsyncDBQuery(LPWSINFO pwsi, HWND16 hWnd, UINT16 uMsg, LPCSTR init, - INT16 len, INT16 type, SEGPTR sbuf, INT16 buflen, UINT32 flag) +/*********************************************************************** + * gethostbyaddr() (WSOCK32.51) + */ +struct hostent* WINAPI WINSOCK_gethostbyaddr32(const char *addr, INT32 len, + INT32 type) { - /* queue 'flag' request and fork off its handler */ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); - async_ctl.ws_aop = (ws_async_op*)WS_ALLOC(sizeof(ws_async_op)); - - if( async_ctl.ws_aop ) - { - HANDLE16 handle = (HANDLE16)WS_PTR2HANDLE(async_ctl.ws_aop); - - if( pipe(async_ctl.ws_aop->fd) == 0 ) - { - async_ctl.init = (char*)init; - async_ctl.lLength = len; - async_ctl.lEvent = type; - - async_ctl.ws_aop->hWnd = hWnd; - async_ctl.ws_aop->uMsg = uMsg; - - async_ctl.ws_aop->buffer_base = sbuf; async_ctl.ws_aop->buflen = buflen; - async_ctl.ws_aop->flags = flag; - async_ctl.ws_aop->aop_control = &aop_control; - WINSOCK_link_async_op( async_ctl.ws_aop ); - - async_ctl.ws_aop->pid = fork(); - if( async_ctl.ws_aop->pid ) - { - close(async_ctl.ws_aop->fd[1]); /* write endpoint */ - - /* Damn, BSD'ish SIGIO doesn't work on pipes/streams - * - * async_io(async_ctl.ws_aop->fd[0], 1); - */ - - dprintf_winsock(stddeb, "\tasync_op = %04x (child %i)\n", - handle, async_ctl.ws_aop->pid); - return handle; - } else - /* child process */ - { - close(async_ctl.ws_aop->fd[0]); /* read endpoint */ - switch(flag) - { - case WSMSG_ASYNC_HOSTBYADDR: - case WSMSG_ASYNC_HOSTBYNAME: - WS_do_async_gethost(pwsi,flag); - case WSMSG_ASYNC_PROTOBYNUM: - case WSMSG_ASYNC_PROTOBYNAME: - WS_do_async_getproto(pwsi,flag); - case WSMSG_ASYNC_SERVBYPORT: - case WSMSG_ASYNC_SERVBYNAME: - WS_do_async_getserv(pwsi,flag); - } - _exit(0); /* skip atexit()'ed cleanup */ - } - } - WS_FREE(async_ctl.ws_aop); - pwsi->err = wsaErrno(); - } else pwsi->err = WSAEWOULDBLOCK; - return 0; + dprintf_winsock(stddeb, "WS_GetHostByAddr32(%08x): ptr %8x, len %d, type %d\n", + (unsigned)pwsi, (unsigned) addr, len, type); + if( pwsi ) + { + struct hostent* host = gethostbyaddr( addr, len, type ); + if( host ) + return host; + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return NULL; } -HANDLE16 WSAAsyncGetHostByAddr(HWND16 hWnd, UINT16 uMsg, LPCSTR addr, +/*********************************************************************** + * gethostbyname() (WINSOCK.52) + * + * +struct WIN_hostent * + */ +SEGPTR WINAPI WINSOCK_gethostbyname16(const char *name) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetHostByName16(%08x): %s\n", + (unsigned)pwsi, (name)?name:"NULL"); + if( pwsi ) + { + struct hostent* host; + if( (host = gethostbyname(name)) != NULL ) + if( WS_dup_he(pwsi, host, WS_DUP_SEGPTR) ) + return SEGPTR_GET(pwsi->buffer); + else pwsi->err = WSAENOBUFS; + else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return (SEGPTR)NULL; +} + +/*********************************************************************** + * gethostbyname() (WSOCK32,52) + */ +struct hostent* WINAPI WINSOCK_gethostbyname32(const char* name) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetHostByName32(%08x): %s\n", + (unsigned)pwsi, (name)?name:"NULL"); + if( pwsi ) + { + struct hostent* host = gethostbyname( name ); + if( host ) + return host; + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return NULL; +} + +/*********************************************************************** + * gethostname() (WSOCK32.57) + */ +INT32 WINAPI WINSOCK_gethostname32(char *name, INT32 namelen) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetHostName(%08x): name %s, len %d\n", + (unsigned)pwsi, (name)?name:NULL_STRING, namelen); + if( pwsi ) + { + if (gethostname(name, namelen) == 0) return 0; + pwsi->err = (errno == EINVAL) ? WSAEFAULT : wsaErrno(); + } + return SOCKET_ERROR; +} + +/*********************************************************************** + * gethostname() (WINSOCK.57) + */ +INT16 WINAPI WINSOCK_gethostname16(char *name, INT16 namelen) +{ + return (INT16)WINSOCK_gethostname32(name, namelen); +} + +/*********************************************************************** + * getprotobyname() (WINSOCK.53) + * + * +struct WIN_protoent * + */ +SEGPTR WINAPI WINSOCK_getprotobyname16(char *name) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetProtoByName16(%08x): %s\n", + (unsigned)pwsi, (name)?name:NULL_STRING); + if( pwsi ) + { + struct protoent* proto; + if( (proto = getprotobyname(name)) != NULL ) + if( WS_dup_pe(pwsi, proto, WS_DUP_SEGPTR) ) + return SEGPTR_GET(pwsi->buffer); + else pwsi->err = WSAENOBUFS; + else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return (SEGPTR)NULL; +} + +/*********************************************************************** + * getprotobyname() (WSOCK32.53) + */ +struct protoent* WINAPI WINSOCK_getprotobyname32(char* name) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetProtoByName32(%08x): %s\n", + (unsigned)pwsi, (name)?name:NULL_STRING); + if( pwsi ) + { + struct protoent* proto; + if( (proto = getprotobyname(name)) != NULL ) + return proto; + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return NULL; +} + + +/*********************************************************************** + * getprotobynumber() (WINSOCK.54) + * + * +struct WIN_protoent * + */ +SEGPTR WINAPI WINSOCK_getprotobynumber16(INT16 number) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetProtoByNumber16(%08x): %i\n", (unsigned)pwsi, number); + + if( pwsi ) + { + struct protoent* proto; + if( (proto = getprotobynumber(number)) != NULL ) + if( WS_dup_pe(pwsi, proto, WS_DUP_SEGPTR) ) + return SEGPTR_GET(pwsi->buffer); + else pwsi->err = WSAENOBUFS; + else pwsi->err = WSANO_DATA; + } + return (SEGPTR)NULL; +} + +/*********************************************************************** + * getprotobynumber() (WSOCK32.54) + */ +struct protoent* WINAPI WINSOCK_getprotobynumber32(INT32 number) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetProtoByNumber32(%08x): %i\n", (unsigned)pwsi, number); + + if( pwsi ) + { + struct protoent* proto; + if( (proto = getprotobynumber(number)) != NULL ) + return proto; + pwsi->err = WSANO_DATA; + } + return NULL; +} + +/*********************************************************************** + * getservbyname() (WINSOCK.55) + * + * +struct WIN_servent * + */ +SEGPTR WINAPI WINSOCK_getservbyname16(const char *name, const char *proto) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetServByName16(%08x): '%s', '%s'\n", + (unsigned)pwsi, (name)?name:NULL_STRING, (proto)?proto:NULL_STRING); + if( pwsi ) + { + struct servent* serv; + if( (serv = getservbyname(name, proto)) != NULL ) + if( WS_dup_se(pwsi, serv, WS_DUP_SEGPTR) ) + return SEGPTR_GET(pwsi->buffer); + else pwsi->err = WSAENOBUFS; + else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return (SEGPTR)NULL; +} + +/*********************************************************************** + * getservbyname() (WSOCK32.55) + */ +struct servent* WINAPI WINSOCK_getservbyname32(const char *name, const char *proto) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetServByName32(%08x): '%s', '%s'\n", + (unsigned)pwsi, (name)?name:NULL_STRING, (proto)?proto:NULL_STRING); + if( pwsi ) + { + struct servent* serv; + if( (serv = getservbyname(name, proto)) != NULL ) + return serv; + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return NULL; +} + +/*********************************************************************** + * getservbyport() (WINSOCK.56) + * + * +struct WIN_servent * + */ +SEGPTR WINAPI WINSOCK_getservbyport16(INT16 port, const char *proto) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetServByPort16(%08x): %i, '%s'\n", + (unsigned)pwsi, (int)port, (proto)?proto:NULL_STRING); + if( pwsi ) + { + struct servent* serv; + if( (serv = getservbyport(port, proto)) != NULL ) + if( WS_dup_se(pwsi, serv, WS_DUP_SEGPTR) ) + return SEGPTR_GET(pwsi->buffer); + else pwsi->err = WSAENOBUFS; + else pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return (SEGPTR)NULL; +} + +/*********************************************************************** + * getservbyport() (WSOCK32.56) + */ +struct servent* WINAPI WINSOCK_getservbyport32(INT32 port, const char *proto) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_GetServByPort32(%08x): %i, '%s'\n", + (unsigned)pwsi, (int)port, (proto)?proto:NULL_STRING); + if( pwsi ) + { + struct servent* serv; + if( (serv = getservbyport(port, proto)) != NULL ) + return serv; + pwsi->err = (h_errno < 0) ? wsaErrno() : wsaHerrno(); + } + return NULL; +} + + +/* ------------------------------------- Windows sockets extensions -- * + * * + * ------------------------------------------------------------------- */ + + +/*********************************************************************** + * Asynchronous DNS services + */ + +/* winsock_dns.c */ +extern HANDLE16 __WSAsyncDBQuery(LPWSINFO pwsi, HWND16 hWnd, UINT16 uMsg, INT16 type, LPCSTR init, + INT16 len, LPCSTR proto, SEGPTR sbuf, INT16 buflen, UINT32 flag); + +/*********************************************************************** + * WSAAsyncGetHostByAddr() (WINSOCK.102) + */ +HANDLE16 WINAPI WSAAsyncGetHostByAddr(HWND16 hWnd, UINT16 uMsg, LPCSTR addr, INT16 len, INT16 type, SEGPTR sbuf, INT16 buflen) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -1188,14 +1618,17 @@ HANDLE16 WSAAsyncGetHostByAddr(HWND16 hWnd, UINT16 uMsg, LPCSTR addr, (unsigned)pwsi, hWnd, uMsg, (unsigned)addr , len ); if( pwsi ) - return __WSAsyncDBQuery(pwsi, hWnd, uMsg, addr, len, - type, sbuf, buflen, WSMSG_ASYNC_HOSTBYADDR ); + return __WSAsyncDBQuery(pwsi, hWnd, uMsg, type, addr, len, + NULL, sbuf, buflen, WSMSG_ASYNC_HOSTBYADDR ); return 0; } -HANDLE16 WSAAsyncGetHostByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, - SEGPTR sbuf, INT16 buflen) +/*********************************************************************** + * WSAAsyncGetHostByName() (WINSOCK.103) + */ +HANDLE16 WINAPI WSAAsyncGetHostByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, + SEGPTR sbuf, INT16 buflen) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -1203,14 +1636,17 @@ HANDLE16 WSAAsyncGetHostByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, (unsigned)pwsi, hWnd, uMsg, (name)?name:NULL_STRING, (int)buflen ); if( pwsi ) - return __WSAsyncDBQuery(pwsi, hWnd, uMsg, name, 0, - 0, sbuf, buflen, WSMSG_ASYNC_HOSTBYNAME ); + return __WSAsyncDBQuery(pwsi, hWnd, uMsg, 0, name, 0, + NULL, sbuf, buflen, WSMSG_ASYNC_HOSTBYNAME ); return 0; } -HANDLE16 WSAAsyncGetProtoByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, - SEGPTR sbuf, INT16 buflen) +/*********************************************************************** + * WSAAsyncGetProtoByName() (WINSOCK.105) + */ +HANDLE16 WINAPI WSAAsyncGetProtoByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, + SEGPTR sbuf, INT16 buflen) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -1218,14 +1654,17 @@ HANDLE16 WSAAsyncGetProtoByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, (unsigned)pwsi, hWnd, uMsg, (name)?name:NULL_STRING ); if( pwsi ) - return __WSAsyncDBQuery(pwsi, hWnd, uMsg, name, 0, - 0, sbuf, buflen, WSMSG_ASYNC_PROTOBYNAME ); + return __WSAsyncDBQuery(pwsi, hWnd, uMsg, 0, name, 0, + NULL, sbuf, buflen, WSMSG_ASYNC_PROTOBYNAME ); return 0; } -HANDLE16 WSAAsyncGetProtoByNumber(HWND16 hWnd, UINT16 uMsg, INT16 number, - SEGPTR sbuf, INT16 buflen) +/*********************************************************************** + * WSAAsyncGetProtoByNumber() (WINSOCK.104) + */ +HANDLE16 WINAPI WSAAsyncGetProtoByNumber(HWND16 hWnd, UINT16 uMsg, INT16 number, + SEGPTR sbuf, INT16 buflen) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -1233,14 +1672,17 @@ HANDLE16 WSAAsyncGetProtoByNumber(HWND16 hWnd, UINT16 uMsg, INT16 number, (unsigned)pwsi, hWnd, uMsg, number ); if( pwsi ) - return __WSAsyncDBQuery(pwsi, hWnd, uMsg, NULL, 0, - number, sbuf, buflen, WSMSG_ASYNC_PROTOBYNUM ); + return __WSAsyncDBQuery(pwsi, hWnd, uMsg, number, NULL, 0, + NULL, sbuf, buflen, WSMSG_ASYNC_PROTOBYNUM ); return 0; } -HANDLE16 WSAAsyncGetServByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, - LPCSTR proto, SEGPTR sbuf, INT16 buflen) +/*********************************************************************** + * WSAAsyncGetServByName() (WINSOCK.107) + */ +HANDLE16 WINAPI WSAAsyncGetServByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, + LPCSTR proto, SEGPTR sbuf, INT16 buflen) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -1248,17 +1690,16 @@ HANDLE16 WSAAsyncGetServByName(HWND16 hWnd, UINT16 uMsg, LPCSTR name, (unsigned)pwsi, hWnd, uMsg, (name)?name:NULL_STRING, (proto)?proto:NULL_STRING ); if( pwsi ) - { - async_ctl.buffer = (char*)proto; - return __WSAsyncDBQuery(pwsi, hWnd, uMsg, name, 0, - 0, sbuf, buflen, WSMSG_ASYNC_SERVBYNAME ); - } + return __WSAsyncDBQuery(pwsi, hWnd, uMsg, 0, name, 0, + proto, sbuf, buflen, WSMSG_ASYNC_SERVBYNAME ); return 0; } - -HANDLE16 WSAAsyncGetServByPort(HWND16 hWnd, UINT16 uMsg, INT16 port, - LPCSTR proto, SEGPTR sbuf, INT16 buflen) +/*********************************************************************** + * WSAAsyncGetServByPort() (WINSOCK.106) + */ +HANDLE16 WINAPI WSAAsyncGetServByPort(HWND16 hWnd, UINT16 uMsg, INT16 port, + LPCSTR proto, SEGPTR sbuf, INT16 buflen) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -1266,170 +1707,315 @@ HANDLE16 WSAAsyncGetServByPort(HWND16 hWnd, UINT16 uMsg, INT16 port, (unsigned)pwsi, hWnd, uMsg, port, (proto)?proto:NULL_STRING ); if( pwsi ) - return __WSAsyncDBQuery(pwsi, hWnd, uMsg, proto, 0, - port, sbuf, buflen, WSMSG_ASYNC_SERVBYPORT ); + return __WSAsyncDBQuery(pwsi, hWnd, uMsg, port, proto, 0, + NULL, sbuf, buflen, WSMSG_ASYNC_SERVBYPORT ); return 0; } -INT16 WSACancelAsyncRequest(HANDLE16 hAsyncTaskHandle) +/*********************************************************************** + * WSACancelAsyncRequest() (WINSOCK.108) + */ +INT16 WINAPI WSACancelAsyncRequest(HANDLE16 hAsyncTaskHandle) { + INT16 retVal = SOCKET_ERROR; LPWSINFO pwsi = wsi_find(GetCurrentTask()); ws_async_op* p_aop = (ws_async_op*)WS_HANDLE2PTR(hAsyncTaskHandle); dprintf_winsock(stddeb, "WS_CancelAsyncRequest(%08x): handle %04x\n", (unsigned)pwsi, hAsyncTaskHandle); if( pwsi ) - if( WINSOCK_check_async_op(p_aop) ) - { - kill(p_aop->pid, SIGKILL); - waitpid(p_aop->pid, NULL, 0); /* just in case */ - close(p_aop->fd[0]); - WINSOCK_unlink_async_op(p_aop); - WS_FREE(p_aop); - return 0; - } - else pwsi->err = WSAEINVAL; - return SOCKET_ERROR; -} - -/* ----- asynchronous select() */ - -int cancel_async_select(ws_socket* pws) -{ - if( pws->p_aop ) { - kill(pws->p_aop->pid, SIGKILL); - waitpid(pws->p_aop->pid, NULL, 0); - WS_FREE(pws->p_aop); - pws->p_aop = NULL; - return 1; - } - return 0; -} - -void _sigusr1_handler_parent(int sig) -{ - /* child process puts MTYPE_CLIENT data packet into the - * 'async_qid' message queue and signals us with SIGUSR1. - * This handler reads the queue and posts 'uMsg' notification - * message. - */ - - ipc_packet ipack; - - signal( SIGUSR1, _sigusr1_handler_parent); - while( msgrcv(async_qid, (struct msgbuf*)&ipack, - MTYPE_CLIENT_SIZE, MTYPE_CLIENT, IPC_NOWAIT) != -1 ) - { - if( ipack.wParam && abs((short)ipack.wParam) < 32768 ) - { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(ipack.wParam); - if( pws->p_aop && abs((char*)_ws_stub - (char*)pws->p_aop) < 32768 ) + SIGNAL_MaskAsyncEvents( TRUE ); /* block SIGIO */ + if( WINSOCK_cancel_async_op(p_aop) ) { - pws->flags &= ~(ipack.lParam); -#if 0 - printf("async event - hWnd %04x, uMsg %04x [%08x]\n", - pws->p_aop->hWnd, pws->p_aop->uMsg, ipack.lParam ); -#endif - PostMessage16(pws->p_aop->hWnd, pws->p_aop->uMsg, - (WPARAM16)ipack.wParam, (LPARAM)ipack.lParam ); + WS_FREE(p_aop); + pwsi->num_async_rq--; + retVal = 0; } - else fprintf(stderr,"AsyncSelect:stray async_op in socket %04x!\n", ipack.wParam); - } - else fprintf(stderr,"AsyncSelect:stray socket at %04x!\n", ipack.wParam); + else pwsi->err = WSAEINVAL; + SIGNAL_MaskAsyncEvents( FALSE ); } + return retVal; } -int notify_client( ws_socket* pws, unsigned flag ) +/*********************************************************************** + * WSAAsyncSelect() (WINSOCK.101) + */ + +static ws_select_op* __ws_select_list = NULL; + +BOOL32 WINSOCK_HandleIO( int* max_fd, int num_pending, fd_set io_set[3] ) { - if( pws->p_aop && ((pws->p_aop->flags & flag) || - (flag == WS_FD_CONNECTED && pws->flags & WS_FD_CONNECT)) ) - { - async_ctl.ip.mtype = MTYPE_PARENT; - async_ctl.ip.lParam = flag; - while( msgsnd(async_qid, (struct msgbuf*)&(async_ctl.ip), - MTYPE_PARENT_SIZE, 0) == -1 ) - { - if( errno == EINTR ) continue; - else - { - perror("AsyncSelect(parent)"); - cancel_async_select(pws); - pws->flags &= WS_FD_INTERNAL; - return 0; - } - } - kill(pws->p_aop->pid, SIGUSR1); - return 1; - } - return 0; -} + /* This function is called by the event dispatcher + * with io_set containing the result of select() */ -INT16 init_async_select(ws_socket* pws, HWND16 hWnd, UINT16 uMsg, UINT32 lEvent) -{ - ws_async_op* p_aop; + ws_select_op* psop = __ws_select_list; + BOOL32 bPost = FALSE; + DWORD dwEvent, dwErrBytes; + int num_posted; - if( cancel_async_select(pws) ) /* delete old async handler if any */ - pws->flags &= WS_FD_INTERNAL; + dprintf_winsock(stddeb,"WINSOCK_HandleIO: %i pending descriptors\n", num_pending ); - if( lEvent == 0 ) return 0; - - /* setup async handler - some data may be redundant */ - - WINSOCK_unblock_io(pws->fd, 1); - if( (p_aop = (ws_async_op*)WS_ALLOC(sizeof(ws_async_op))) ) + for( num_posted = dwEvent = 0 ; psop; psop = psop->next ) { - p_aop->hWnd = hWnd; - p_aop->uMsg = uMsg; - pws->p_aop = p_aop; + unsigned flags = psop->pws->flags; + int fd = psop->pws->fd; + int r, w, e; - async_ctl.lEvent = p_aop->flags = lEvent; - async_ctl.ws_sock = pws; - async_ctl.ip.wParam = (UINT16)WS_PTR2HANDLE(pws); - async_ctl.ip.lParam = 0; + w = 0; + if( (r = FD_ISSET( fd, &io_set[EVENT_IO_READ] )) || + (w = FD_ISSET( fd, &io_set[EVENT_IO_WRITE] )) || + (e = FD_ISSET( fd, &io_set[EVENT_IO_EXCEPT] )) ) + { + /* This code removes WS_FD flags on one-shot events (WS_FD_CLOSE, + * WS_FD_CONNECT), otherwise it clears descriptors in the io_set. + * Reenabling calls turn them back on. + */ - p_aop->pid = fork(); - if( p_aop->pid != -1 ) - if( p_aop->pid == 0 ) WINSOCK_do_async_select(); /* child process */ - else pws->flags |= lEvent; + dprintf_winsock(stddeb,"\tchecking psop = 0x%08x\n", (unsigned) psop ); - signal( SIGUSR1, _sigusr1_handler_parent ); - return 0; /* Wine process */ + num_pending--; + + if( flags & WS_FD_ACCEPT ) + { + /* listening socket */ + + FD_CLR( fd, &io_set[EVENT_IO_WRITE] ); + if( r ) + { + FD_CLR( fd, &io_set[EVENT_IO_READ] ); /* reenabled by the next accept() */ + dwEvent = WSAMAKESELECTREPLY( WS_FD_ACCEPT, 0 ); + bPost = TRUE; + } + else continue; + } + else if( flags & WS_FD_CONNECT ) + { + /* connecting socket */ + + if( w || (w = FD_ISSET( fd, &io_set[EVENT_IO_WRITE] )) ) + { + /* ready to write means that socket is connected */ + + psop->pws->flags |= WS_FD_CONNECTED; + psop->pws->flags &= ~(WS_FD_CONNECT | WS_FD_INACTIVE); + dwEvent = WSAMAKESELECTREPLY( WS_FD_CONNECT, 0 ); + + if( flags & (WS_FD_READ | WS_FD_CLOSE)) + FD_SET( fd, &io_set[EVENT_IO_READ] ); + if( flags & WS_FD_WRITE ) FD_SET( fd, &io_set[EVENT_IO_WRITE] ); + else FD_CLR( fd, &io_set[EVENT_IO_WRITE] ); + bPost = TRUE; + } + else if( r ) + { + /* failure - do read() to get correct errno */ + + if( read( fd, &dwErrBytes, sizeof(dwErrBytes) ) == -1 ) + { + dwEvent = WSAMAKESELECTREPLY( WS_FD_CONNECT, wsaErrno() ); + bPost = TRUE; + } + } + /* otherwise bPost stays FALSE */ + } + else + { + /* connected socket -- + * removed WS_FD_OOB code for now. + */ + + if( flags & WS_FD_WRITE && + (w || (w = FD_ISSET( fd, &io_set[EVENT_IO_WRITE] ))) ) + { + /* this will be reenabled when send() or sendto() fail with + * WSAEWOULDBLOCK */ + + if( PostMessage16( psop->hWnd, psop->uMsg, (WPARAM16)WS_PTR2HANDLE(psop->pws), + (LPARAM)WSAMAKESELECTREPLY( WS_FD_WRITE, 0 ) ) ) + { + FD_CLR( fd, &io_set[EVENT_IO_WRITE] ); + num_posted++; + } + } + + if( r && (flags & (WS_FD_READ | WS_FD_CLOSE)) ) + { + int val = (flags & WS_FD_RAW); + + /* WS_FD_RAW is set by the WSAAsyncSelect() init */ + + bPost = TRUE; + if( !val && ioctl( fd, FIONREAD, (char*)&dwErrBytes) == -1 ) + { + /* weirdness */ + + dwEvent = WSAMAKESELECTREPLY( WS_FD_READ, wsaErrno() ); + } + else if( val || dwErrBytes ) + { + /* got pending data, will be reenabled by recv() or recvfrom() */ + + FD_CLR( fd, &io_set[EVENT_IO_READ] ); + dwEvent = WSAMAKESELECTREPLY( WS_FD_READ, 0 ); + } + else + { + /* 0 bytes to read - connection reset by peer? */ + + do + val = read( fd, (char*)&dwErrBytes, sizeof(dwErrBytes)); + while( errno == EINTR ); + if( errno != EWOULDBLOCK ) + { + switch( val ) + { + case 0: errno = ENETDOWN; /* soft reset, fall through */ + case -1: /* hard reset */ + dwEvent = WSAMAKESELECTREPLY( WS_FD_CLOSE, wsaErrno() ); + break; + + default: bPost = FALSE; + continue; /* FIXME: this is real bad */ + } + } + else { bPost = FALSE; continue; } /* more weirdness */ + + /* this is it, this socket is closed */ + + psop->pws->flags &= ~(WS_FD_READ | WS_FD_CLOSE | WS_FD_WRITE); + FD_CLR( fd, &io_set[EVENT_IO_READ] ); + FD_CLR( fd, &io_set[EVENT_IO_WRITE] ); + + if( *max_fd == (fd + 1) ) (*max_fd)--; + } + } + } + + if( bPost ) + { + PostMessage16( psop->hWnd, psop->uMsg, + (WPARAM16)WS_PTR2HANDLE(psop->pws), (LPARAM)dwEvent ); + bPost = FALSE; + num_posted++; + } + } + if( num_pending <= 0 ) break; } - return SOCKET_ERROR; + + dprintf_winsock(stddeb, "\tdone, %i posted events\n", num_posted ); + return ( num_posted ) ? TRUE : FALSE; } -INT16 WSAAsyncSelect(SOCKET16 s, HWND16 hWnd, UINT16 uMsg, UINT32 lEvent) + +INT16 WINAPI WSAAsyncSelect(SOCKET16 s, HWND16 hWnd, UINT16 uMsg, UINT32 lEvent) { - ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); - LPWSINFO pwsi = wsi_find(GetCurrentTask()); + ws_socket* pws = (ws_socket*)WS_HANDLE2PTR(s); + LPWSINFO pwsi = wsi_find(GetCurrentTask()); - dprintf_winsock(stddeb, "WS_AsyncSelect(%08x): %04x, hWnd %04x, uMsg %04x, event %08x\n", + dprintf_winsock(stddeb, "WS_AsyncSelect(%08x): %04x, hWnd %04x, uMsg %04x, event %08x\n", (unsigned)pwsi, s, hWnd, uMsg, (unsigned)lEvent ); - if( _check_ws(pwsi, pws) ) - if( init_async_select(pws, hWnd, uMsg, lEvent) == 0 ) return 0; - else pwsi->err = WSAENOBUFS; - return SOCKET_ERROR; + if( _check_ws(pwsi, pws) ) + { + ws_select_op* psop; + + if( (psop = pws->psop) ) + { + /* delete previous control struct */ + + if( psop == __ws_select_list ) + __ws_select_list = psop->next; + else + psop->prev->next = psop->next; + if( psop->next ) psop->next->prev = psop->prev; + + if( pws->flags & (WS_FD_ACCEPT | WS_FD_CONNECT | WS_FD_READ | WS_FD_CLOSE) ) + EVENT_DeleteIO( pws->fd, EVENT_IO_READ ); + if( pws->flags & (WS_FD_CONNECT | WS_FD_WRITE) ) + EVENT_DeleteIO( pws->fd, EVENT_IO_WRITE ); + + dprintf_winsock(stddeb,"\tremoving psop = 0x%08x\n", (unsigned) psop ); + + WS_FREE( pws->psop ); + pws->flags &= ~(WS_FD_RAW | WS_FD_ACCEPT | WS_FD_CONNECT | + WS_FD_READ | WS_FD_WRITE | WS_FD_CLOSE); + pws->psop = NULL; + } + + if( lEvent ) + { + psop = (ws_select_op*)WS_ALLOC(sizeof(ws_select_op)); + if( psop ) + { + int sock_type, bytes = sizeof(int); + + WINSOCK_unblock_io( pws->fd, TRUE ); + + psop->prev = NULL; + psop->next = __ws_select_list; + if( __ws_select_list ) + __ws_select_list->prev = psop; + __ws_select_list = psop; + + psop->pws = pws; + psop->hWnd = hWnd; + psop->uMsg = uMsg; + + pws->psop = psop; + pws->flags |= (0x0000FFFF &lEvent); + getsockopt(pws->fd, SOL_SOCKET, SO_TYPE, &sock_type, &bytes); + if( sock_type == SOCK_RAW ) pws->flags |= WS_FD_RAW; + + if( lEvent & (WS_FD_ACCEPT | WS_FD_CONNECT | WS_FD_READ | WS_FD_CLOSE) ) + EVENT_AddIO( pws->fd, EVENT_IO_READ ); + if( lEvent & (WS_FD_CONNECT | WS_FD_WRITE) ) + EVENT_AddIO( pws->fd, EVENT_IO_WRITE ); + + /* TODO: handle WS_FD_ACCEPT right away if the socket is readable */ + + dprintf_winsock(stddeb,"\tcreating psop = 0x%08x\n", (unsigned)psop ); + + return 0; /* success */ + } + else pwsi->err = WSAENOBUFS; + } + else return 0; + } + else if( pwsi ) pwsi->err = WSAEINVAL; + return SOCKET_ERROR; } -/* ----- miscellaneous */ -INT16 __WSAFDIsSet(SOCKET16 fd, ws_fd_set *set) +/*********************************************************************** + * __WSAFDIsSet() (WINSOCK.151) + */ +INT16 WINAPI __WSAFDIsSet16(SOCKET16 s, ws_fd_set *set) { int i = set->fd_count; - dprintf_winsock(stddeb, "__WSAFDIsSet(%d,%8lx)\n",fd,(unsigned long)set); + dprintf_winsock(stddeb, "__WSAFDIsSet(%d,%8lx)\n", s,(unsigned long)set); while (i--) - if (set->fd_array[i] == fd) return 1; + if (set->fd_array[i] == s) return 1; return 0; } -BOOL16 WSAIsBlocking(void) +/*********************************************************************** + * __WSAFDIsSet() (WSOCK32.151) + */ +INT32 WINAPI __WSAFDIsSet32(SOCKET32 s, ws_fd_set *set) +{ + return __WSAFDIsSet16( (SOCKET16)s, set ); +} + +/*********************************************************************** + * WSAIsBlocking() (WINSOCK.114)(WSOCK32.114) + */ +BOOL32 WINAPI WSAIsBlocking(void) { /* By default WinSock should set all its sockets to non-blocking mode * and poll in PeekMessage loop when processing "blocking" ones. This - * function * is supposed to tell if program is in this loop. Our + * function is supposed to tell if program is in this loop. Our * blocking calls are truly blocking so we always return FALSE. * * Note: It is allowed to call this function without prior WSAStartup(). @@ -1439,7 +2025,10 @@ BOOL16 WSAIsBlocking(void) return FALSE; } -INT16 WSACancelBlockingCall(void) +/*********************************************************************** + * WSACancelBlockingCall() (WINSOCK.113)(WSOCK32.113) + */ +INT32 WINAPI WSACancelBlockingCall(void) { LPWSINFO pwsi = wsi_find(GetCurrentTask()); @@ -1449,45 +2038,82 @@ INT16 WSACancelBlockingCall(void) return SOCKET_ERROR; } -FARPROC16 WSASetBlockingHook16(FARPROC16 lpBlockFunc) + +/*********************************************************************** + * WSASetBlockingHook16() (WINSOCK.109) + */ +FARPROC16 WINAPI WSASetBlockingHook16(FARPROC16 lpBlockFunc) { FARPROC16 prev; LPWSINFO pwsi = wsi_find(GetCurrentTask()); dprintf_winsock(stddeb, "WS_SetBlockingHook16(%08x): hook %08x\n", (unsigned)pwsi, (unsigned) lpBlockFunc); - if( pwsi ) { - prev = pwsi->blocking_hook; - pwsi->blocking_hook = lpBlockFunc; + prev = (FARPROC16)pwsi->blocking_hook; + pwsi->blocking_hook = (DWORD)lpBlockFunc; + pwsi->flags &= ~WSI_BLOCKINGHOOK32; return prev; } return 0; } -FARPROC32 WSASetBlockingHook32(FARPROC32 lpBlockFunc) -{ - fprintf( stderr, "WSASetBlockingHook32(%p): empty stub\n", lpBlockFunc ); - return NULL; -} -INT16 WSAUnhookBlockingHook16(void) +/*********************************************************************** + * WSASetBlockingHook32() + */ +FARPROC32 WINAPI WSASetBlockingHook32(FARPROC32 lpBlockFunc) { + FARPROC32 prev; LPWSINFO pwsi = wsi_find(GetCurrentTask()); - dprintf_winsock(stddeb, "WS_UnhookBlockingHook(%08x)\n", (unsigned)pwsi); - if( pwsi ) return (INT16)(INT32)(pwsi->blocking_hook = (FARPROC16)NULL); - return SOCKET_ERROR; -} - -INT32 WSAUnhookBlockingHook32(void) -{ - fprintf( stderr, "WSAUnhookBlockingHook32(): empty stub\n"); + dprintf_winsock(stddeb, "WS_SetBlockingHook32(%08x): hook %08x\n", + (unsigned)pwsi, (unsigned) lpBlockFunc); + if( pwsi ) { + prev = (FARPROC32)pwsi->blocking_hook; + pwsi->blocking_hook = (DWORD)lpBlockFunc; + pwsi->flags |= WSI_BLOCKINGHOOK32; + return prev; + } return NULL; } -VOID -WsControl(DWORD x1,DWORD x2,LPDWORD x3,LPDWORD x4,LPDWORD x5,LPDWORD x6) + +/*********************************************************************** + * WSAUnhookBlockingHook16() (WINSOCK.110) + */ +INT16 WINAPI WSAUnhookBlockingHook16(void) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_UnhookBlockingHook16(%08x)\n", (unsigned)pwsi); + if( pwsi ) return (INT16)(pwsi->blocking_hook = 0); + return SOCKET_ERROR; +} + + +/*********************************************************************** + * WSAUnhookBlockingHook32() + */ +INT32 WINAPI WSAUnhookBlockingHook32(void) +{ + LPWSINFO pwsi = wsi_find(GetCurrentTask()); + + dprintf_winsock(stddeb, "WS_UnhookBlockingHook32(%08x)\n", (unsigned)pwsi); + if( pwsi ) + { + pwsi->blocking_hook = 0; + pwsi->flags &= ~WSI_BLOCKINGHOOK32; + return 0; + } + return SOCKET_ERROR; +} + +/*********************************************************************** + * WsControl() + */ +VOID WINAPI WsControl(DWORD x1,DWORD x2,LPDWORD x3,LPDWORD x4, + LPDWORD x5,LPDWORD x6) { fprintf(stdnimp,"WsControl(%lx,%lx,%p,%p,%p,%p)\n", x1,x2,x3,x4,x5,x6 @@ -1548,8 +2174,8 @@ int WS_dup_he(LPWSINFO pwsi, struct hostent* p_he, int flag) { /* Duplicate hostent structure and flatten data (with its pointers) * into pwsi->buffer. Internal pointers can be linear, SEGPTR, or - * relative to 0 depending on "flag" value. Return data size (also - * in the pwsi->buflen). + * relative to pwsi->buffer depending on "flag" value. Returns size + * of the data copied (also in the pwsi->buflen). */ int size = hostent_size(p_he); @@ -1561,14 +2187,14 @@ int WS_dup_he(LPWSINFO pwsi, struct hostent* p_he, int flag) p = pwsi->buffer; p_base = (flag & WS_DUP_OFFSET) ? NULL : ((flag & WS_DUP_SEGPTR) ? (char*)SEGPTR_GET(p) : p); - p += (flag & WS_DUP_SEGPTR) ? sizeof(struct ws_hostent) : sizeof(struct hostent); + p += (flag & WS_DUP_NATIVE) ? sizeof(struct hostent) : sizeof(struct ws_hostent); p_name = p; strcpy(p, p_he->h_name); p += strlen(p) + 1; p_aliases = p; p += list_dup(p_he->h_aliases, p, p_base + (p - pwsi->buffer), 0); p_addr = p; list_dup(p_he->h_addr_list, p, p_base + (p - pwsi->buffer), p_he->h_length); - if( !(flag & WS_DUP_SEGPTR) ) + if( flag & WS_DUP_NATIVE ) { struct hostent* p_to = (struct hostent*)pwsi->buffer; p_to->h_addrtype = p_he->h_addrtype; p_to->h_length = p_he->h_length; p_to->h_name = p_base + (p_name - pwsi->buffer); @@ -1587,22 +2213,6 @@ int WS_dup_he(LPWSINFO pwsi, struct hostent* p_he, int flag) return size; } -void fixup_wshe(struct ws_hostent* p_wshe, SEGPTR base) -{ - /* add 'base' to ws_hostent pointers to convert them from offsets */ - - int i; - unsigned* p_aliases,*p_addr; - - p_aliases = (unsigned*)((char*)p_wshe + (unsigned)p_wshe->h_aliases); - p_addr = (unsigned*)((char*)p_wshe + (unsigned)p_wshe->h_addr_list); - ((unsigned)(p_wshe->h_name)) += (unsigned)base; - ((unsigned)(p_wshe->h_aliases)) += (unsigned)base; - ((unsigned)(p_wshe->h_addr_list)) += (unsigned)base; - for(i=0;p_aliases[i];i++) p_aliases[i] += (unsigned)base; - for(i=0;p_addr[i];i++) p_addr[i] += (unsigned)base; -} - /* ----- protoent */ static int protoent_size(struct protoent* p_pe) @@ -1626,12 +2236,12 @@ int WS_dup_pe(LPWSINFO pwsi, struct protoent* p_pe, int flag) p = pwsi->buffer; p_base = (flag & WS_DUP_OFFSET) ? NULL : ((flag & WS_DUP_SEGPTR) ? (char*)SEGPTR_GET(p) : p); - p += (flag & WS_DUP_SEGPTR)? sizeof(struct ws_protoent) : sizeof(struct protoent); + p += (flag & WS_DUP_NATIVE)? sizeof(struct protoent) : sizeof(struct ws_protoent); p_name = p; strcpy(p, p_pe->p_name); p += strlen(p) + 1; p_aliases = p; list_dup(p_pe->p_aliases, p, p_base + (p - pwsi->buffer), 0); - if( !(flag & WS_DUP_NATIVE) ) + if( flag & WS_DUP_NATIVE ) { struct protoent* p_to = (struct protoent*)pwsi->buffer; p_to->p_proto = p_pe->p_proto; p_to->p_name = p_base + (p_name - pwsi->buffer); @@ -1646,15 +2256,6 @@ int WS_dup_pe(LPWSINFO pwsi, struct protoent* p_pe, int flag) return size; } -void fixup_wspe(struct ws_protoent* p_wspe, SEGPTR base) -{ - int i; - unsigned* p_aliases = (unsigned*)((char*)p_wspe + (unsigned)p_wspe->p_aliases); - ((unsigned)(p_wspe->p_name)) += (unsigned)base; - ((unsigned)(p_wspe->p_aliases)) += (unsigned)base; - for(i=0;p_aliases[i];i++) p_aliases[i] += (unsigned)base; -} - /* ----- servent */ static int servent_size(struct servent* p_se) @@ -1678,7 +2279,7 @@ int WS_dup_se(LPWSINFO pwsi, struct servent* p_se, int flag) p = pwsi->buffer; p_base = (flag & WS_DUP_OFFSET) ? NULL : ((flag & WS_DUP_SEGPTR) ? (char*)SEGPTR_GET(p) : p); - p += (flag & WS_DUP_SEGPTR)? sizeof(struct ws_servent) : sizeof(struct servent); + p += (flag & WS_DUP_NATIVE)? sizeof(struct servent) : sizeof(struct ws_servent); p_name = p; strcpy(p, p_se->s_name); p += strlen(p) + 1; p_proto = p; @@ -1686,7 +2287,7 @@ int WS_dup_se(LPWSINFO pwsi, struct servent* p_se, int flag) p_aliases = p; list_dup(p_se->s_aliases, p, p_base + (p - pwsi->buffer), 0); - if( !(flag & WS_DUP_SEGPTR) ) + if( flag & WS_DUP_NATIVE ) { struct servent* p_to = (struct servent*)pwsi->buffer; p_to->s_port = p_se->s_port; p_to->s_name = p_base + (p_name - pwsi->buffer); @@ -1703,16 +2304,6 @@ int WS_dup_se(LPWSINFO pwsi, struct servent* p_se, int flag) return size; } -void fixup_wsse(struct ws_servent* p_wsse, SEGPTR base) -{ - int i; - unsigned* p_aliases = (unsigned*)((char*)p_wsse + (unsigned)p_wsse->s_aliases); - ((unsigned)(p_wsse->s_name)) += (unsigned)base; - ((p_wsse->s_proto)) += (unsigned)base; - ((p_wsse->s_aliases)) += (unsigned)base; - for(i=0;p_aliases[i];i++) p_aliases[i] += (unsigned)base; -} - /* ----------------------------------- error handling */ UINT16 wsaErrno(void) diff --git a/misc/winsock_async.c b/misc/winsock_async.c deleted file mode 100644 index 5cd03821789..00000000000 --- a/misc/winsock_async.c +++ /dev/null @@ -1,515 +0,0 @@ -/* - * asynchronous winsock services - * - * (C) 1996 Alex Korobka. - * - * FIXME: telftp16 (ftp part) stalls on AsyncSelect with FD_ACCEPT. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef __EMX__ -#include -#include -#endif -#ifdef __svr4__ -#include -#include -#endif - -extern int h_errno; - -#include "windows.h" -#include "winsock.h" -#include "debug.h" - -#ifndef FASYNC -#define FASYNC FIOASYNC -#endif - -#define __WS_ASYNC_DEBUG 0 - -static int __async_io_max_fd = 0; -static fd_set __async_io_fdset; -static ws_async_op* __async_op_list = NULL; - -extern ws_async_ctl async_ctl; -extern int async_qid; - -fd_set fd_read, fd_write, fd_excp; - -/* ----------------------------------- async/non-blocking I/O */ - -int WINSOCK_async_io(int fd, int async) -{ - int fd_flags; - -#ifndef __EMX__ - fcntl(fd, F_SETOWN, getpid()); -#endif - - fd_flags = fcntl(fd, F_GETFL, 0); - if (fcntl(fd, F_SETFL, (async)? fd_flags | FASYNC - : fd_flags & ~FASYNC ) != -1) return 0; - return -1; -} - -int WINSOCK_unblock_io(int fd, int noblock) -{ - int fd_flags; - - fd_flags = fcntl(fd, F_GETFL, 0); - if (fcntl(fd, F_SETFL, (noblock)? fd_flags | O_NONBLOCK - : fd_flags & ~O_NONBLOCK ) != -1) return 0; - return -1; -} - -int WINSOCK_check_async_op(ws_async_op* p_aop) -{ - ws_async_op* p = __async_op_list; - while( p ) if( p == p_aop ) return 1; - else p = p->next; - return 0; -} - -void WINSOCK_cancel_async_op(HTASK16 hTask) -{ - ws_async_op* p = __async_op_list; - while( p ) - if(hTask == GetWindowTask16(p->hWnd)) - p->flags = 0; -} - -void WINSOCK_link_async_op(ws_async_op* p_aop) -{ - if( __async_op_list ) __async_op_list->prev = p_aop; - else FD_ZERO(&__async_io_fdset); - - p_aop->next = __async_op_list; - p_aop->prev = NULL; - __async_op_list = p_aop; - - FD_SET(p_aop->fd[0], &__async_io_fdset); - if( p_aop->fd[0] > __async_io_max_fd ) - __async_io_max_fd = p_aop->fd[0]; -} - -void WINSOCK_unlink_async_op(ws_async_op* p_aop) -{ - if( p_aop == __async_op_list ) __async_op_list = p_aop->next; - else - { p_aop->prev->next = p_aop->next; - if( p_aop->next ) p_aop->next->prev = p_aop->prev; } - FD_CLR(p_aop->fd[0], &__async_io_fdset); - if( p_aop->fd[0] == __async_io_max_fd ) - __async_io_max_fd--; -} - -/* ----------------------------------- SIGIO handler - - * - * link_async_op/unlink_async_op allow to install generic - * async IO handlers (provided that aop_control function is defined). - * - * Note: AsyncGetXbyY expilicitly raise it. - */ - -void WINSOCK_sigio(int signal) -{ - struct timeval timeout; - fd_set check_set; - ws_async_op* p_aop; - - check_set = __async_io_fdset; - memset(&timeout, 0, sizeof(timeout)); - - while( select(__async_io_max_fd + 1, - &check_set, NULL, NULL, &timeout) > 0) - { - for( p_aop = __async_op_list; - p_aop ; p_aop = p_aop->next ) - if( FD_ISSET(p_aop->fd[0], &check_set) ) - if( p_aop->aop_control(p_aop, AOP_IO) == AOP_CONTROL_REMOVE ) - { - if( p_aop->pid ) - { - kill(p_aop->pid, SIGKILL); - waitpid(p_aop->pid, NULL, WNOHANG); - } - WINSOCK_unlink_async_op( p_aop ); - } - check_set = __async_io_fdset; - } -} - -/* ----------------------------------- child process IPC */ - -static void _sigusr1_handler_child(int sig) -{ - /* read message queue to decide which - * async_ctl parameters to update - * - * Note: we don't want to have SA_RESTART on this signal - * handler, otherwise select() won't notice changed fd sets. - */ - - signal( SIGUSR1, _sigusr1_handler_child ); - while( msgrcv(async_qid, (struct msgbuf*)&async_ctl.ip, - MTYPE_PARENT_SIZE, MTYPE_PARENT, IPC_NOWAIT) != -1 ) - { - /* only ip.lParam is updated */ -#if __WS_ASYNC_DEBUG - printf("handler - event %08x\n", async_ctl.ip.lParam ); -#endif - - switch( async_ctl.ip.lParam ) - { - /* These are events we are notified of. - */ - - case WS_FD_CONNECTED: async_ctl.lEvent &= ~WS_FD_CONNECT; - FD_SET(async_ctl.ws_sock->fd, &fd_read); - FD_SET(async_ctl.ws_sock->fd, &fd_write); - break; - - case WS_FD_ACCEPT: async_ctl.ws_sock->flags |= WS_FD_ACCEPT; - FD_SET(async_ctl.ws_sock->fd, &fd_read); - FD_SET(async_ctl.ws_sock->fd, &fd_write); - break; - case WS_FD_OOB: async_ctl.lEvent |= WS_FD_OOB; - FD_SET(async_ctl.ws_sock->fd, &fd_excp); - break; - case WS_FD_READ: async_ctl.lEvent |= WS_FD_READ; - FD_SET(async_ctl.ws_sock->fd, &fd_read); - break; - case WS_FD_WRITE: async_ctl.lEvent |= WS_FD_WRITE; - FD_SET(async_ctl.ws_sock->fd, &fd_write); - break; - default: - } - } -} - -static int notify_parent( unsigned flag ) -{ - if( flag & WSMSG_ASYNC_SELECT ) - { - async_ctl.ip.mtype = MTYPE_CLIENT; - while( msgsnd(async_qid, (struct msgbuf*)&(async_ctl.ip), - MTYPE_CLIENT_SIZE, 0) == -1 ) - { - if( errno == EINTR ) continue; -#ifdef EIDRM - else if( errno == EIDRM ) _exit(0); -#endif - else - { - perror("AsyncSelect(child)"); - return 0; - } - } - kill(getppid(), SIGUSR1); - -#if __WS_ASYNC_DEBUG - printf("handler - notify [%08x]\n", async_ctl.ip.lParam); -#endif - } - else /* use half-duplex pipe to handle variable length packets */ - { - write(async_ctl.ws_aop->fd[1], &async_ctl.lLength, sizeof(unsigned) ); - write(async_ctl.ws_aop->fd[1], async_ctl.buffer, async_ctl.lLength ); -#ifndef __EMX__ - kill(getppid(), SIGIO); /* simulate async I/O */ -#endif -#if __WS_ASYNC_DEBUG - printf("handler - notify aop [%d, buf %d]\n", async_ctl.lLength, async_ctl.ws_aop->buflen); -#endif - pause(); - } - return 1; -} - -/* ----------------------------------- async select */ - -static void setup_fd_sets() -{ - FD_ZERO(&fd_read); FD_ZERO(&fd_write); FD_ZERO(&fd_excp); - - if( async_ctl.lEvent & WS_FD_OOB) - FD_SET(async_ctl.ws_sock->fd, &fd_excp); - if( async_ctl.lEvent & (WS_FD_ACCEPT | WS_FD_READ | - WS_FD_CONNECT | WS_FD_CLOSE) ) - FD_SET(async_ctl.ws_sock->fd, &fd_read); - if( async_ctl.lEvent & (WS_FD_WRITE | WS_FD_CONNECT) ) - FD_SET(async_ctl.ws_sock->fd, &fd_write); -} - -static void setup_sig_sets(sigset_t* sig_block) -{ - sigemptyset(sig_block); - sigaddset(sig_block, SIGUSR1); - sigprocmask( SIG_BLOCK, sig_block, NULL); - signal( SIGUSR1, _sigusr1_handler_child ); -} - -void WINSOCK_do_async_select() -{ - sigset_t sig_block; - int sock_type, bytes; - - getsockopt(async_ctl.ws_sock->fd, SOL_SOCKET, SO_TYPE, &sock_type, &bytes); - setup_sig_sets(&sig_block); - setup_fd_sets(); - - while(1) - { - int val; - - if( sock_type != SOCK_STREAM ) - async_ctl.lEvent &= ~(WS_FD_ACCEPT | WS_FD_CONNECT); - sigprocmask( SIG_UNBLOCK, &sig_block, NULL); - -#if __WS_ASYNC_DEBUG - printf("select(2)[%i,%i,%i]... ", - FD_ISSET(async_ctl.ws_sock->fd, &fd_read), - FD_ISSET(async_ctl.ws_sock->fd, &fd_write), - FD_ISSET(async_ctl.ws_sock->fd, &fd_excp)); -#endif - if( (val = select(async_ctl.ws_sock->fd + 1, - &fd_read, &fd_write, &fd_excp, NULL)) == -1 ) - if( errno == EINTR ) continue; -#if __WS_ASYNC_DEBUG - printf("got %i events\n", val); -#endif - -#if __WS_ASYNC_DEBUG - if( FD_ISSET(async_ctl.ws_sock->fd, &fd_read) ) - printf("handler - read is READY! [%08x]\n", async_ctl.lEvent & (WS_FD_READ | WS_FD_CLOSE)); -#endif - - sigprocmask( SIG_BLOCK, &sig_block, NULL); - async_ctl.ip.lParam = 0; - if( async_ctl.ws_sock->flags & WS_FD_ACCEPT ) - { - /* listening socket */ - - FD_CLR(async_ctl.ws_sock->fd, &fd_read); - FD_CLR(async_ctl.ws_sock->fd, &fd_write); - - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_ACCEPT, 0 ); - notify_parent( WSMSG_ASYNC_SELECT ); - continue; - } - else /* I/O socket */ - { - if( async_ctl.lEvent & WS_FD_CONNECT ) - { - if( FD_ISSET(async_ctl.ws_sock->fd, &fd_write) ) - { - /* success - reinit fd sets to start I/O */ - - if( async_ctl.lEvent & (WS_FD_READ | WS_FD_CLOSE)) - FD_SET(async_ctl.ws_sock->fd, &fd_read); - else FD_CLR(async_ctl.ws_sock->fd, &fd_read); - if( async_ctl.lEvent & WS_FD_WRITE ) - FD_SET(async_ctl.ws_sock->fd, &fd_write); - else FD_CLR(async_ctl.ws_sock->fd, &fd_write); - - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_CONNECT, 0 ); - async_ctl.lEvent &= ~WS_FD_CONNECT; /* one-shot */ - } - else if( FD_ISSET(async_ctl.ws_sock->fd, &fd_read) ) - { - /* failure - do read() to get correct errno */ - - if( read(async_ctl.ws_sock->fd, &bytes, 4) == -1 ) - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_CONNECT, wsaErrno() ); - else continue; - } else continue; /* OOB?? */ - - notify_parent( WSMSG_ASYNC_SELECT ); - } - else /* connected socket */ - { - - if( async_ctl.lEvent & WS_FD_OOB ) - if( FD_ISSET(async_ctl.ws_sock->fd, &fd_excp) ) - { - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_OOB, 0 ); - async_ctl.lEvent &= ~WS_FD_OOB; - FD_CLR(async_ctl.ws_sock->fd, &fd_excp); - notify_parent( WSMSG_ASYNC_SELECT ); - } - else FD_SET(async_ctl.ws_sock->fd, &fd_excp); - - if( async_ctl.lEvent & WS_FD_WRITE ) - if( FD_ISSET( async_ctl.ws_sock->fd, &fd_write ) ) - { - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_WRITE, 0 ); - async_ctl.lEvent &= ~WS_FD_WRITE; - FD_CLR(async_ctl.ws_sock->fd, &fd_write); - notify_parent( WSMSG_ASYNC_SELECT ); - } - else FD_SET(async_ctl.ws_sock->fd, &fd_write); - - if( async_ctl.lEvent & (WS_FD_READ | WS_FD_CLOSE) ) - if( FD_ISSET(async_ctl.ws_sock->fd, &fd_read) ) - { - int ok = 0; - - if( sock_type == SOCK_RAW ) ok = 1; - else if( ioctl( async_ctl.ws_sock->fd, FIONREAD, (char*)&bytes) == -1 ) - { - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_READ, wsaErrno() ); - FD_CLR( async_ctl.ws_sock->fd, &fd_read ); - bytes = 0; - } - - if( bytes || ok ) /* got data */ - { -#if __WS_ASYNC_DEBUG - if( ok ) printf("\traw/datagram read pending\n"); - else printf("\t%i bytes pending\n", bytes ); -#endif - if( async_ctl.lEvent & WS_FD_READ ) - { - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_READ, 0 ); - async_ctl.lEvent &= ~WS_FD_READ; - if( !(async_ctl.lEvent & WS_FD_CLOSE) ) - FD_CLR( async_ctl.ws_sock->fd, &fd_read ); - } - else if( !(async_ctl.lEvent & (WS_FD_WRITE | WS_FD_OOB)) ) - { - sigprocmask( SIG_UNBLOCK, &sig_block, NULL); - pause(); - sigprocmask( SIG_BLOCK, &sig_block, NULL); - } - else continue; - } - else /* 0 bytes to read */ - { - val = read( async_ctl.ws_sock->fd, (char*)&bytes, 4); - if( errno == EWOULDBLOCK || errno == EINTR ) - { -#if __WS_ASYNC_DEBUG - printf("\twould block..\n"); -#endif - continue; - } - switch( val ) - { - case 0: errno = ENETDOWN; /* ENETDOWN */ - case -1: /* ECONNRESET */ - async_ctl.ip.lParam = WSAMAKESELECTREPLY( WS_FD_CLOSE, wsaErrno() ); - break; - default: continue; - } - async_ctl.lEvent &= ~(WS_FD_CLOSE | WS_FD_READ); /* one-shot */ - FD_ZERO(&fd_read); FD_ZERO(&fd_write); - } - - notify_parent( WSMSG_ASYNC_SELECT ); - } - else FD_SET(async_ctl.ws_sock->fd, &fd_read); - - } /* connected socket */ - } /* I/O socket */ - } /* while */ -} - - -/* ----------------------------------- getXbyY requests */ - -static void _async_fail() -{ - async_ctl.lLength = - (h_errno < 0) ? (unsigned)WSAMAKEASYNCREPLY( 0, wsaErrno() ) - : (unsigned)WSAMAKEASYNCREPLY( 0, wsaHerrno() ); - write(async_ctl.ws_aop->fd[1], &async_ctl.lLength, sizeof(unsigned) ); -#ifndef __EMX__ - kill(getppid(), SIGIO); /* simulate async I/O */ -#endif - pause(); -} - -void dump_ws_hostent_offset(struct ws_hostent* wshe) -{ - int i; - char* base = (char*)wshe; - unsigned* ptr; - - printf("h_name = %08x\t[%s]\n", (unsigned)wshe->h_name, base + (unsigned)wshe->h_name); - printf("h_aliases = %08x\t[%08x]\n", (unsigned)wshe->h_aliases, - (unsigned)(base + (unsigned)wshe->h_aliases)); - ptr = (unsigned*)(base + (unsigned)wshe->h_aliases); - for(i = 0; ptr[i]; i++ ) - { - printf("%i - %08x ", i + 1, ptr[i]); - printf(" [%s]\n", ((char*)base) + ptr[i]); - } - printf("h_length = %i\n", wshe->h_length); -} - -void WS_do_async_gethost(LPWSINFO pwsi, unsigned flag ) -{ - int size = 0; - struct hostent* p_he; - - close(async_ctl.ws_aop->fd[0]); - p_he = (flag & WSMSG_ASYNC_HOSTBYNAME) - ? gethostbyname(async_ctl.init) - : gethostbyaddr(async_ctl.init, - async_ctl.lLength, async_ctl.lEvent); - if( p_he ) size = WS_dup_he(pwsi, p_he, WS_DUP_SEGPTR | WS_DUP_OFFSET ); - if( size ) - { - async_ctl.buffer = pwsi->buffer; - async_ctl.lLength = (unsigned)WSAMAKEASYNCREPLY( (UINT16)size, 0 ); - notify_parent( flag ); - } - else _async_fail(); -} - -void WS_do_async_getproto(LPWSINFO pwsi, unsigned flag ) -{ - int size = 0; - struct protoent* p_pe; - - close(async_ctl.ws_aop->fd[0]); - p_pe = (flag & WSMSG_ASYNC_PROTOBYNAME) - ? getprotobyname(async_ctl.init) - : getprotobynumber(async_ctl.lEvent); - if( p_pe ) size = WS_dup_pe(pwsi, p_pe, WS_DUP_SEGPTR | WS_DUP_OFFSET ); - if( size ) - { - async_ctl.buffer = pwsi->buffer; - async_ctl.lLength = (unsigned)WSAMAKEASYNCREPLY( (UINT16)size, 0 ); - notify_parent( flag ); - } - else _async_fail(); -} - -void WS_do_async_getserv(LPWSINFO pwsi, unsigned flag ) -{ - int size = 0; - struct servent* p_se; - - close(async_ctl.ws_aop->fd[0]); - p_se = (flag & WSMSG_ASYNC_SERVBYNAME) - ? getservbyname(async_ctl.init, async_ctl.buffer) - : getservbyport(async_ctl.lEvent, async_ctl.init); - if( p_se ) size = WS_dup_se(pwsi, p_se, WS_DUP_SEGPTR | WS_DUP_OFFSET ); - if( size ) - { - async_ctl.buffer = pwsi->buffer; - async_ctl.lLength = (unsigned)WSAMAKEASYNCREPLY( (UINT16)size, 0 ); - notify_parent( flag ); - } - else _async_fail(); -} - diff --git a/misc/winsock_dns.c b/misc/winsock_dns.c new file mode 100644 index 00000000000..8042489d6fc --- /dev/null +++ b/misc/winsock_dns.c @@ -0,0 +1,530 @@ +/* + * asynchronous DNS services + * + * (C) 1996,1997 Alex Korobka. + * + * TODO: Fork dns lookup helper during the startup (with a pipe + * for communication) and make it fork for a database request + * instead of forking the main process (i.e. something like + * Netscape 4.0). + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef __EMX__ +#include +#include +#endif +#ifdef __svr4__ +#include +#include +#endif + +extern int h_errno; + +#include "windows.h" +#include "heap.h" +#include "ldt.h" +#include "message.h" +#include "miscemu.h" +#include "winsock.h" +#include "debug.h" + +#ifndef FASYNC +#define FASYNC FIOASYNC +#endif + +#define __WS_ASYNC_DEBUG 0 + +typedef struct /* async DNS op control struct */ +{ + ws_async_op* ws_aop; + char* buffer; + int type; + union + { + char* init; + char* name; + char* addr; + } rq; + unsigned ilength; +} ws_async_ctl; + +extern HANDLE16 __ws_gethandle( void* ptr ); +extern void* __ws_memalloc( int size ); +extern void __ws_memfree( void* ptr ); + +/* NOTE: ws_async_op list is traversed inside the SIGIO handler! */ + +static int __async_io_max_fd = 0; +static fd_set __async_io_fdset; +static ws_async_op* __async_op_list = NULL; + +static void fixup_wshe(struct ws_hostent* p_wshe, SEGPTR base); +static void fixup_wspe(struct ws_protoent* p_wspe, SEGPTR base); +static void fixup_wsse(struct ws_servent* p_wsse, SEGPTR base); + +extern void EVENT_AddIO( int fd, unsigned flag ); +extern void EVENT_DeleteIO( int fd, unsigned flag ); + +/* ----------------------------------- async/non-blocking I/O */ + +int WINSOCK_async_io(int fd, int async) +{ + int fd_flags; + +#ifndef __EMX__ + fcntl(fd, F_SETOWN, getpid()); +#endif + + fd_flags = fcntl(fd, F_GETFL, 0); + if (fcntl(fd, F_SETFL, (async)? fd_flags | FASYNC + : fd_flags & ~FASYNC ) != -1) return 0; + return -1; +} + +int WINSOCK_unblock_io(int fd, int noblock) +{ + int fd_flags; + + fd_flags = fcntl(fd, F_GETFL, 0); + if (fcntl(fd, F_SETFL, (noblock)? fd_flags | O_NONBLOCK + : fd_flags & ~O_NONBLOCK ) != -1) return 0; + return -1; +} + +int WINSOCK_check_async_op(ws_async_op* p_aop) +{ + ws_async_op* p = __async_op_list; + while( p ) if( p == p_aop ) return 1; + else p = p->next; + return 0; +} + +int WINSOCK_cancel_async_op(ws_async_op* p_aop) +{ + /* SIGIO unsafe! */ + + if( WINSOCK_check_async_op(p_aop) ) + { + if( !(p_aop->flags & WSMSG_DEAD_AOP) ) + { + kill(p_aop->pid, SIGKILL); + waitpid(p_aop->pid, NULL, 0); /* just in case */ + close(p_aop->fd[0]); + } + WINSOCK_unlink_async_op(p_aop); + EVENT_DeleteIO( p_aop->fd[0], EVENT_IO_READ ); + p_aop->flags = 0; + p_aop->hWnd = p_aop->uMsg = 0; + return 1; + } + return 0; +} + +void WINSOCK_cancel_task_aops(HTASK16 hTask, void (*__opfree)(void*)) +{ + /* SIGIO safe, hTask == 0 cancels all outstanding async ops */ + + int num = 0; + ws_async_op* p, *next; + + dprintf_winsock(stddeb,"\tcancelling async DNS requests... "); + + SIGNAL_MaskAsyncEvents( TRUE ); + next = __async_op_list; + while( (p = next) ) + { + HTASK16 hWndTask = GetWindowTask16(p->hWnd); + + next = p->next; + if(!hTask || !hWndTask || (hTask == hWndTask)) + { + WINSOCK_cancel_async_op(p); + if( __opfree ) __opfree(p); + num++; + } + } + SIGNAL_MaskAsyncEvents( FALSE ); + dprintf_winsock(stddeb,"%i total\n", num ); +} + +void WINSOCK_link_async_op(ws_async_op* p_aop) +{ + /* SIGIO safe */ + + p_aop->prev = NULL; + SIGNAL_MaskAsyncEvents( TRUE ); + if( __async_op_list ) + { + ws_async_op* p = __async_op_list; + __async_op_list->prev = p_aop; + + /* traverse the list and reap dead ops */ + while( p ) + { + if( p->flags & WSMSG_DEAD_AOP ) + { + ws_async_op* dead = p; + + dprintf_winsock(stddeb,"\treaping dead aop [%08x]\n", (unsigned)p ); + + p = p->next; + WINSOCK_unlink_async_op( dead ); + __ws_memfree( dead ); + continue; + } + p = p->next; + } + } + else FD_ZERO(&__async_io_fdset); + p_aop->next = __async_op_list; + __async_op_list = p_aop; + SIGNAL_MaskAsyncEvents( FALSE ); + + FD_SET(p_aop->fd[0], &__async_io_fdset); + if( p_aop->fd[0] > __async_io_max_fd ) + __async_io_max_fd = p_aop->fd[0]; +} + +void WINSOCK_unlink_async_op(ws_async_op* p_aop) +{ + /* SIGIO unsafe! */ + + if( p_aop == __async_op_list ) __async_op_list = p_aop->next; + else + p_aop->prev->next = p_aop->next; + if( p_aop->next ) p_aop->next->prev = p_aop->prev; + + FD_CLR(p_aop->fd[0], &__async_io_fdset); + if( p_aop->fd[0] == __async_io_max_fd ) + __async_io_max_fd--; +} + +/* ----------------------------------- SIGIO handler - + * + * link_async_op/unlink_async_op allow to install generic + * async IO handlers (provided that aop_control function is defined). + * + * Note: AsyncGetXbyY expilicitly raise it. + */ + +void WINSOCK_sigio(int signal) +{ + struct timeval timeout; + fd_set check_set; + ws_async_op* p_aop; + + check_set = __async_io_fdset; + memset(&timeout, 0, sizeof(timeout)); + + while( select(__async_io_max_fd + 1, + &check_set, NULL, NULL, &timeout) > 0) + { + for( p_aop = __async_op_list; + p_aop ; p_aop = p_aop->next ) + if( FD_ISSET(p_aop->fd[0], &check_set) ) + if( p_aop->aop_control(p_aop, AOP_IO) == AOP_CONTROL_REMOVE ) + { + p_aop->flags = WSMSG_DEAD_AOP; /* can't free inside the signal */ + close(p_aop->fd[0]); + FD_CLR(p_aop->fd[0],&__async_io_fdset); + if( p_aop->fd[0] == __async_io_max_fd ) + __async_io_max_fd = p_aop->fd[0]; + if( p_aop->pid ) + { + kill(p_aop->pid, SIGKILL); + waitpid(p_aop->pid, NULL, WNOHANG); + p_aop->pid = 0; + } + } + check_set = __async_io_fdset; + } +} + +/* ----------------------------------- getXbyY requests */ + +static ws_async_ctl async_ctl; /* child process control struct */ + +static int aop_control(ws_async_op* p_aop, int flag ) +{ + unsigned lLength; + + /* success: LOWORD(lLength) has the length of the struct + * to read. + * failure: LOWORD(lLength) is zero, HIWORD(lLength) contains + * the error code. + */ + + read(p_aop->fd[0], &lLength, sizeof(unsigned)); + if( LOWORD(lLength) ) + { + if( (int)LOWORD(lLength) <= p_aop->buflen ) + { + char* buffer = (char*)PTR_SEG_TO_LIN(p_aop->buffer_base); + read(p_aop->fd[0], buffer, LOWORD(lLength)); + switch( p_aop->flags ) + { + case WSMSG_ASYNC_HOSTBYNAME: + case WSMSG_ASYNC_HOSTBYADDR: + fixup_wshe((struct ws_hostent*)buffer, p_aop->buffer_base); break; + case WSMSG_ASYNC_PROTOBYNAME: + case WSMSG_ASYNC_PROTOBYNUM: + fixup_wspe((struct ws_protoent*)buffer, p_aop->buffer_base); break; + case WSMSG_ASYNC_SERVBYNAME: + case WSMSG_ASYNC_SERVBYPORT: + fixup_wsse((struct ws_servent*)buffer, p_aop->buffer_base); break; + default: + if( p_aop->flags ) fprintf(stderr,"Received unknown async request!\n"); + return AOP_CONTROL_REMOVE; + } + } + else lLength = ((UINT32)LOWORD(lLength)) | ((unsigned)WSAENOBUFS << 16); + } /* failure */ + +#if __WS_ASYNC_DEBUG + printf("DNS aop completed: hWnd [%04x], uMsg [%04x], aop [%04x], event [%08x]\n", + p_aop->hWnd, p_aop->uMsg, __ws_gethandle(p_aop), (LPARAM)lLength); +#endif + + /* FIXME: update num_async_rq */ + EVENT_DeleteIO( p_aop->fd[0], EVENT_IO_READ ); + PostMessage16( p_aop->hWnd, p_aop->uMsg, __ws_gethandle(p_aop), (LPARAM)lLength ); + + return AOP_CONTROL_REMOVE; /* one-shot request */ +} + + +HANDLE16 __WSAsyncDBQuery(LPWSINFO pwsi, HWND16 hWnd, UINT16 uMsg, INT16 type, LPSTR init, + INT16 len, LPSTR proto, SEGPTR sbuf, INT16 buflen, UINT32 flag) +{ + /* queue 'flag' request and fork off its handler */ + + async_ctl.ws_aop = (ws_async_op*)__ws_memalloc(sizeof(ws_async_op)); + + if( async_ctl.ws_aop ) + { + HANDLE16 handle = __ws_gethandle(async_ctl.ws_aop); + + if( pipe(async_ctl.ws_aop->fd) == 0 ) + { + async_ctl.rq.init = (char*)init; + async_ctl.ilength = len; + async_ctl.buffer = proto; + async_ctl.type = type; + + async_ctl.ws_aop->hWnd = hWnd; + async_ctl.ws_aop->uMsg = uMsg; + async_ctl.ws_aop->buffer_base = sbuf; async_ctl.ws_aop->buflen = buflen; + async_ctl.ws_aop->flags = flag; + async_ctl.ws_aop->aop_control = &aop_control; + + WINSOCK_link_async_op( async_ctl.ws_aop ); + + async_ctl.ws_aop->pid = fork(); + if( async_ctl.ws_aop->pid ) + { + close(async_ctl.ws_aop->fd[1]); /* write endpoint */ + dprintf_winsock(stddeb, "\tasync_op = %04x (child %i)\n", + handle, async_ctl.ws_aop->pid); + if( async_ctl.ws_aop->pid > 0 ) + { + EVENT_AddIO( async_ctl.ws_aop->fd[0], EVENT_IO_READ ); + pwsi->num_async_rq++; + return __ws_gethandle(async_ctl.ws_aop); + } + + /* fork() failed */ + close(async_ctl.ws_aop->fd[0]); + pwsi->err = WSAEWOULDBLOCK; + } + else + { + /* child process */ + + close(async_ctl.ws_aop->fd[0]); /* read endpoint */ + switch( flag ) + { + case WSMSG_ASYNC_HOSTBYADDR: + case WSMSG_ASYNC_HOSTBYNAME: + WS_do_async_gethost(pwsi, flag); + break; + case WSMSG_ASYNC_PROTOBYNUM: + case WSMSG_ASYNC_PROTOBYNAME: + WS_do_async_getproto(pwsi, flag); + break; + case WSMSG_ASYNC_SERVBYPORT: + case WSMSG_ASYNC_SERVBYNAME: + WS_do_async_getserv(pwsi, flag); + break; + } + _exit(0); /* skip atexit()'ed cleanup */ + } + } + else pwsi->err = wsaErrno(); /* failed to create pipe */ + + __ws_memfree((void*)async_ctl.ws_aop); + } else pwsi->err = WSAEWOULDBLOCK; + return 0; +} + +static int _async_notify() +{ + /* use half-duplex pipe to send variable length packets + * to the parent process */ + + write(async_ctl.ws_aop->fd[1], &async_ctl.ilength, sizeof(unsigned)); + write(async_ctl.ws_aop->fd[1], async_ctl.buffer, async_ctl.ilength ); + +#ifndef __EMX__ + kill(getppid(), SIGIO); /* simulate async I/O */ +#endif + +#if __WS_ASYNC_DEBUG + printf("handler - notify aop [%d, buf %d]\n", async_ctl.ilength, async_ctl.ws_aop->buflen); +#endif + return 1; +} + +static void _async_fail() +{ + /* write a DWORD with error code (low word is zero) */ + + async_ctl.ilength = + (h_errno < 0) ? (unsigned)WSAMAKEASYNCREPLY( 0, wsaErrno() ) + : (unsigned)WSAMAKEASYNCREPLY( 0, wsaHerrno() ); + write(async_ctl.ws_aop->fd[1], &async_ctl.ilength, sizeof(unsigned) ); +#ifndef __EMX__ + kill(getppid(), SIGIO); /* simulate async I/O */ +#endif + +#if __WS_ASYNC_DEBUG + printf("handler - failed aop [%d, buf %d]\n", async_ctl.ilength, async_ctl.ws_aop->buflen); +#endif +} + +void dump_ws_hostent_offset(struct ws_hostent* wshe) +{ + int i; + char* base = (char*)wshe; + unsigned* ptr; + + printf("h_name = %08x\t[%s]\n", (unsigned)wshe->h_name, base + (unsigned)wshe->h_name); + printf("h_aliases = %08x\t[%08x]\n", (unsigned)wshe->h_aliases, + (unsigned)(base + (unsigned)wshe->h_aliases)); + ptr = (unsigned*)(base + (unsigned)wshe->h_aliases); + for(i = 0; ptr[i]; i++ ) + { + printf("%i - %08x ", i + 1, ptr[i]); + printf(" [%s]\n", ((char*)base) + ptr[i]); + } + printf("h_length = %i\n", wshe->h_length); +} + +void WS_do_async_gethost(LPWSINFO pwsi, unsigned flag ) +{ + int size = 0; + struct hostent* p_he; + + close(async_ctl.ws_aop->fd[0]); + + dprintf_winsock(stddeb,"DNS: getting hostent for [%s]\n", async_ctl.rq.name ); + + p_he = (flag & WSMSG_ASYNC_HOSTBYNAME) + ? gethostbyname(async_ctl.rq.name) + : gethostbyaddr(async_ctl.rq.name, + async_ctl.ilength, async_ctl.type); + dprintf_winsock(stddeb,"DNS: done!\n"); + + if( p_he ) size = WS_dup_he(pwsi, p_he, WS_DUP_SEGPTR | WS_DUP_OFFSET ); + if( size ) + { + async_ctl.buffer = pwsi->buffer; + async_ctl.ilength = (unsigned)WSAMAKEASYNCREPLY( (UINT16)size, 0 ); + _async_notify( flag ); + } + else _async_fail(); +} + +void WS_do_async_getproto(LPWSINFO pwsi, unsigned flag ) +{ + int size = 0; + struct protoent* p_pe; + + close(async_ctl.ws_aop->fd[0]); + p_pe = (flag & WSMSG_ASYNC_PROTOBYNAME) + ? getprotobyname(async_ctl.rq.name) + : getprotobynumber(async_ctl.type); + if( p_pe ) size = WS_dup_pe(pwsi, p_pe, WS_DUP_SEGPTR | WS_DUP_OFFSET ); + if( size ) + { + async_ctl.buffer = pwsi->buffer; + async_ctl.ilength = (unsigned)WSAMAKEASYNCREPLY( (UINT16)size, 0 ); + _async_notify( flag ); + } + else _async_fail(); +} + +void WS_do_async_getserv(LPWSINFO pwsi, unsigned flag ) +{ + int size = 0; + struct servent* p_se; + + close(async_ctl.ws_aop->fd[0]); + p_se = (flag & WSMSG_ASYNC_SERVBYNAME) + ? getservbyname(async_ctl.rq.name, async_ctl.buffer) + : getservbyport(async_ctl.type, async_ctl.buffer); + if( p_se ) size = WS_dup_se(pwsi, p_se, WS_DUP_SEGPTR | WS_DUP_OFFSET ); + if( size ) + { + async_ctl.buffer = pwsi->buffer; + async_ctl.ilength = (unsigned)WSAMAKEASYNCREPLY( (UINT16)size, 0 ); + _async_notify( flag ); + } + else _async_fail(); +} + +/* ----------------------------------- helper functions */ + +void fixup_wshe(struct ws_hostent* p_wshe, SEGPTR base) +{ + /* add 'base' to ws_hostent pointers to convert them from offsets */ + + int i; + unsigned* p_aliases,*p_addr; + + p_aliases = (unsigned*)((char*)p_wshe + (unsigned)p_wshe->h_aliases); + p_addr = (unsigned*)((char*)p_wshe + (unsigned)p_wshe->h_addr_list); + ((unsigned)(p_wshe->h_name)) += (unsigned)base; + ((unsigned)(p_wshe->h_aliases)) += (unsigned)base; + ((unsigned)(p_wshe->h_addr_list)) += (unsigned)base; + for(i=0;p_aliases[i];i++) p_aliases[i] += (unsigned)base; + for(i=0;p_addr[i];i++) p_addr[i] += (unsigned)base; +} + +void fixup_wspe(struct ws_protoent* p_wspe, SEGPTR base) +{ + int i; + unsigned* p_aliases = (unsigned*)((char*)p_wspe + (unsigned)p_wspe->p_aliases); + ((unsigned)(p_wspe->p_name)) += (unsigned)base; + ((unsigned)(p_wspe->p_aliases)) += (unsigned)base; + for(i=0;p_aliases[i];i++) p_aliases[i] += (unsigned)base; +} + +void fixup_wsse(struct ws_servent* p_wsse, SEGPTR base) +{ + int i; + unsigned* p_aliases = (unsigned*)((char*)p_wsse + (unsigned)p_wsse->s_aliases); + ((unsigned)(p_wsse->s_name)) += (unsigned)base; + ((p_wsse->s_proto)) += (unsigned)base; + ((p_wsse->s_aliases)) += (unsigned)base; + for(i=0;p_aliases[i];i++) p_aliases[i] += (unsigned)base; +} + diff --git a/misc/wsprintf.c b/misc/wsprintf.c index 9cfbc57bbff..f347fd516cf 100644 --- a/misc/wsprintf.c +++ b/misc/wsprintf.c @@ -230,7 +230,8 @@ static UINT32 WPRINTF_GetLen( WPRINTF_FORMAT *format, LPCVOID arg, /*********************************************************************** * wvsnprintf16 (Not a Windows API) */ -INT16 wvsnprintf16( LPSTR buffer, UINT16 maxlen, LPCSTR spec, LPCVOID args ) +INT16 WINAPI wvsnprintf16( LPSTR buffer, UINT16 maxlen, LPCSTR spec, + LPCVOID args ) { WPRINTF_FORMAT format; LPSTR p = buffer; @@ -329,7 +330,8 @@ INT16 wvsnprintf16( LPSTR buffer, UINT16 maxlen, LPCSTR spec, LPCVOID args ) /*********************************************************************** * wvsnprintf32A (Not a Windows API) */ -INT32 wvsnprintf32A( LPSTR buffer, UINT32 maxlen, LPCSTR spec, LPCVOID args ) +INT32 WINAPI wvsnprintf32A( LPSTR buffer, UINT32 maxlen, LPCSTR spec, + LPCVOID args ) { WPRINTF_FORMAT format; LPSTR p = buffer; @@ -397,7 +399,8 @@ INT32 wvsnprintf32A( LPSTR buffer, UINT32 maxlen, LPCSTR spec, LPCVOID args ) /*********************************************************************** * wvsnprintf32W (Not a Windows API) */ -INT32 wvsnprintf32W( LPWSTR buffer, UINT32 maxlen, LPCWSTR spec, LPCVOID args ) +INT32 WINAPI wvsnprintf32W( LPWSTR buffer, UINT32 maxlen, LPCWSTR spec, + LPCVOID args ) { WPRINTF_FORMAT format; LPWSTR p = buffer; @@ -464,7 +467,7 @@ INT32 wvsnprintf32W( LPWSTR buffer, UINT32 maxlen, LPCWSTR spec, LPCVOID args ) /*********************************************************************** * wvsprintf16 (USER.421) */ -INT16 wvsprintf16( LPSTR buffer, LPCSTR spec, LPCVOID args ) +INT16 WINAPI wvsprintf16( LPSTR buffer, LPCSTR spec, LPCVOID args ) { return wvsnprintf16( buffer, 0xffff, spec, args ); } @@ -473,7 +476,7 @@ INT16 wvsprintf16( LPSTR buffer, LPCSTR spec, LPCVOID args ) /*********************************************************************** * wvsprintf32A (USER32.586) */ -INT32 wvsprintf32A( LPSTR buffer, LPCSTR spec, LPCVOID args ) +INT32 WINAPI wvsprintf32A( LPSTR buffer, LPCSTR spec, LPCVOID args ) { return wvsnprintf32A( buffer, 0xffffffff, spec, args ); } @@ -482,7 +485,7 @@ INT32 wvsprintf32A( LPSTR buffer, LPCSTR spec, LPCVOID args ) /*********************************************************************** * wvsprintf32W (USER32.587) */ -INT32 wvsprintf32W( LPWSTR buffer, LPCWSTR spec, LPCVOID args ) +INT32 WINAPI wvsprintf32W( LPWSTR buffer, LPCWSTR spec, LPCVOID args ) { return wvsnprintf32W( buffer, 0xffffffff, spec, args ); } @@ -492,7 +495,7 @@ INT32 wvsprintf32W( LPWSTR buffer, LPCWSTR spec, LPCVOID args ) * wsprintf16 (USER.420) */ /* Winelib version */ -INT16 wsprintf16( LPSTR buffer, LPCSTR spec, ... ) +INT16 WINAPIV wsprintf16( LPSTR buffer, LPCSTR spec, ... ) { va_list valist; INT16 res; @@ -505,7 +508,7 @@ INT16 wsprintf16( LPSTR buffer, LPCSTR spec, ... ) } /* Emulator version */ -INT16 WIN16_wsprintf16(void) +INT16 WINAPIV WIN16_wsprintf16(void) { SEGPTR *win_stack = (SEGPTR *)CURRENT_STACK16->args; LPSTR buffer = (LPSTR)PTR_SEG_TO_LIN(win_stack[0]); @@ -519,7 +522,7 @@ INT16 WIN16_wsprintf16(void) * wsprintf32A (USER32.584) */ /* Winelib version */ -INT32 wsprintf32A( LPSTR buffer, LPCSTR spec, ... ) +INT32 WINAPIV wsprintf32A( LPSTR buffer, LPCSTR spec, ... ) { va_list valist; INT32 res; @@ -531,7 +534,7 @@ INT32 wsprintf32A( LPSTR buffer, LPCSTR spec, ... ) } /* Emulator version */ -INT32 WIN32_wsprintf32A( DWORD *args ) +INT32 WINAPIV WIN32_wsprintf32A( DWORD *args ) { return wvsprintf32A( (LPSTR)args[0], (LPCSTR)args[1], (LPCVOID)&args[2] ); } @@ -541,7 +544,7 @@ INT32 WIN32_wsprintf32A( DWORD *args ) * wsprintf32W (USER32.585) */ /* Winelib version */ -INT32 wsprintf32W( LPWSTR buffer, LPCWSTR spec, ... ) +INT32 WINAPIV wsprintf32W( LPWSTR buffer, LPCWSTR spec, ... ) { va_list valist; INT32 res; @@ -553,7 +556,7 @@ INT32 wsprintf32W( LPWSTR buffer, LPCWSTR spec, ... ) } /* Emulator version */ -INT32 WIN32_wsprintf32W( DWORD *args ) +INT32 WINAPIV WIN32_wsprintf32W( DWORD *args ) { return wvsprintf32W( (LPWSTR)args[0], (LPCWSTR)args[1], (LPCVOID)&args[2]); } diff --git a/miscemu/emulate.c b/miscemu/emulate.c index eee31e0d3bb..6e5ec585be1 100644 --- a/miscemu/emulate.c +++ b/miscemu/emulate.c @@ -28,7 +28,7 @@ struct Win87EmInfoStruct */ /* FIXME: Only skeletal implementation for now */ -void WIN87_fpmath( CONTEXT *context ) +void WINAPI WIN87_fpmath( CONTEXT *context ) { dprintf_int(stddeb, "_fpmath: (cs:eip=%x:%lx es=%x bx=%04x ax=%04x dx==%04x)\n", (WORD)CS_reg(context), EIP_reg(context), @@ -107,21 +107,20 @@ void WIN87_fpmath( CONTEXT *context ) } -void -WIN87_WinEm87Info(struct Win87EmInfoStruct *pWIS, int cbWin87EmInfoStruct) +void WINAPI WIN87_WinEm87Info(struct Win87EmInfoStruct *pWIS, + int cbWin87EmInfoStruct) { dprintf_int(stddeb, "__WinEm87Info(%p,%d)\n",pWIS,cbWin87EmInfoStruct); } -void -WIN87_WinEm87Restore(void *pWin87EmSaveArea, int cbWin87EmSaveArea) +void WINAPI WIN87_WinEm87Restore(void *pWin87EmSaveArea, + int cbWin87EmSaveArea) { dprintf_int(stddeb, "__WinEm87Restore(%p,%d)\n", pWin87EmSaveArea,cbWin87EmSaveArea); } -void -WIN87_WinEm87Save(void *pWin87EmSaveArea, int cbWin87EmSaveArea) +void WINAPI WIN87_WinEm87Save(void *pWin87EmSaveArea, int cbWin87EmSaveArea) { dprintf_int(stddeb, "__WinEm87Save(%p,%d)\n", pWin87EmSaveArea,cbWin87EmSaveArea); diff --git a/miscemu/instr.c b/miscemu/instr.c index 931cfe83cc7..9e414c4ede8 100644 --- a/miscemu/instr.c +++ b/miscemu/instr.c @@ -8,7 +8,7 @@ #include "windows.h" #include "ldt.h" #include "miscemu.h" -#include "sigcontext.h" +#include "sig_context.h" #define STACK_sig(context) \ diff --git a/msdos/dpmi.c b/msdos/dpmi.c index 05404ceb81e..ae7a85297e1 100644 --- a/msdos/dpmi.c +++ b/msdos/dpmi.c @@ -52,7 +52,7 @@ extern void do_mscdex( CONTEXT *context ); * * Handler for int 31h (DPMI). */ -void INT_Int31Handler( CONTEXT *context ) +void WINAPI INT_Int31Handler( CONTEXT *context ) { DWORD dw; BYTE *ptr; diff --git a/msdos/int10.c b/msdos/int10.c index bb99f8e4b2e..e73d5bd7d89 100644 --- a/msdos/int10.c +++ b/msdos/int10.c @@ -15,7 +15,7 @@ * * Handler for int 10h (video). */ -void INT_Int10Handler( CONTEXT *context ) +void WINAPI INT_Int10Handler( CONTEXT *context ) { switch(AH_reg(context)) { diff --git a/msdos/int11.c b/msdos/int11.c index 88b3041e37e..c66f20c13f8 100644 --- a/msdos/int11.c +++ b/msdos/int11.c @@ -15,7 +15,7 @@ * * Handler for int 11h (get equipment list). */ -void INT_Int11Handler( CONTEXT *context ) +void WINAPI INT_Int11Handler( CONTEXT *context ) { int diskdrives = 0; int parallelports = 0; diff --git a/msdos/int12.c b/msdos/int12.c index cff7f52848e..79429bd9d42 100644 --- a/msdos/int12.c +++ b/msdos/int12.c @@ -9,7 +9,7 @@ * * Handler for int 12h (get memory size). */ -void INT_Int12Handler( CONTEXT *context ) +void WINAPI INT_Int12Handler( CONTEXT *context ) { AX_reg(context) = 640; } diff --git a/msdos/int13.c b/msdos/int13.c index 9213897691a..eb9560c7735 100644 --- a/msdos/int13.c +++ b/msdos/int13.c @@ -15,7 +15,7 @@ * * Handler for int 13h (disk I/O). */ -void INT_Int13Handler( CONTEXT *context ) +void WINAPI INT_Int13Handler( CONTEXT *context ) { switch(AH_reg(context)) { diff --git a/msdos/int1a.c b/msdos/int1a.c index ddc52ef294c..1e8157aa74e 100644 --- a/msdos/int1a.c +++ b/msdos/int1a.c @@ -44,7 +44,7 @@ DWORD INT1A_GetTicksSinceMidnight(void) * * Handler for int 1ah (date and time). */ -void INT_Int1aHandler( CONTEXT *context ) +void WINAPI INT_Int1aHandler( CONTEXT *context ) { time_t ltime; DWORD ticks; diff --git a/msdos/int21.c b/msdos/int21.c index 46b0004ed59..d01e61f269c 100644 --- a/msdos/int21.c +++ b/msdos/int21.c @@ -95,14 +95,14 @@ static BOOL32 INT21_CreateHeap(void) return TRUE; } -BYTE *GetCurrentDTA(void) +static BYTE *GetCurrentDTA(void) { TDB *pTask = (TDB *)GlobalLock16( GetCurrentTask() ); return (BYTE *)PTR_SEG_TO_LIN( pTask->dta ); } -void ChopOffWhiteSpace(char *string) +static void ChopOffWhiteSpace(char *string) { int length; @@ -324,7 +324,7 @@ static BOOL32 INT21_CreateFile( CONTEXT *context ) } -void OpenExistingFile( CONTEXT *context ) +static void OpenExistingFile( CONTEXT *context ) { AX_reg(context) = _lopen16( PTR_SEG_OFF_TO_LIN(DS_reg(context),DX_reg(context)), AL_reg(context) ); @@ -880,7 +880,7 @@ extern void LOCAL_PrintHeap (WORD ds); /*********************************************************************** * DOS3Call (KERNEL.102) */ -void DOS3Call( CONTEXT *context ) +void WINAPI DOS3Call( CONTEXT *context ) { BOOL32 bSetDOSExtendedError = FALSE; @@ -1044,7 +1044,7 @@ void DOS3Call( CONTEXT *context ) break; case 0x30: /* GET DOS VERSION */ - AX_reg(context) = DOSVERSION; + AX_reg(context) = HIWORD(GetVersion16()); BX_reg(context) = 0x0012; /* 0x123456 is Wine's serial # */ CX_reg(context) = 0x3456; break; @@ -1077,7 +1077,7 @@ void DOS3Call( CONTEXT *context ) break; case 0x06: /* GET TRUE VERSION NUMBER */ - BX_reg(context) = DOSVERSION; + BX_reg(context) = HIWORD(GetVersion16()); DX_reg(context) = 0x00; break; diff --git a/msdos/int25.c b/msdos/int25.c index 7073bd8a391..8e9960961a4 100644 --- a/msdos/int25.c +++ b/msdos/int25.c @@ -18,7 +18,7 @@ * * Handler for int 25h (absolute disk read). */ -void INT_Int25Handler( CONTEXT *context ) +void WINAPI INT_Int25Handler( CONTEXT *context ) { BYTE *dataptr = PTR_SEG_OFF_TO_LIN( DS_reg(context), BX_reg(context) ); DWORD begin, length; diff --git a/msdos/int26.c b/msdos/int26.c index 09ee5261b16..4a58a5c9586 100644 --- a/msdos/int26.c +++ b/msdos/int26.c @@ -17,7 +17,7 @@ * * Handler for int 26h (absolute disk read). */ -void INT_Int26Handler( CONTEXT *context ) +void WINAPI INT_Int26Handler( CONTEXT *context ) { BYTE *dataptr = PTR_SEG_OFF_TO_LIN( DS_reg(context), BX_reg(context) ); DWORD begin, length; diff --git a/msdos/int2a.c b/msdos/int2a.c index 02e37d89bc8..35b6c2283ed 100644 --- a/msdos/int2a.c +++ b/msdos/int2a.c @@ -15,7 +15,7 @@ * * Handler for int 2ah (network). */ -void INT_Int2aHandler( CONTEXT *context ) +void WINAPI INT_Int2aHandler( CONTEXT *context ) { switch(AH_reg(context)) { diff --git a/msdos/int2f.c b/msdos/int2f.c index d8dbae1b337..b43e3b254da 100644 --- a/msdos/int2f.c +++ b/msdos/int2f.c @@ -11,7 +11,6 @@ #include "msdos.h" #include "miscemu.h" #include "module.h" -#include "options.h" #include "stddebug.h" /* #define DEBUG_INT */ #include "debug.h" @@ -27,7 +26,7 @@ void do_mscdex( CONTEXT *context ); * * Handler for int 2fh (multiplex). */ -void INT_Int2fHandler( CONTEXT *context ) +void WINAPI INT_Int2fHandler( CONTEXT *context ) { switch(AH_reg(context)) { @@ -76,13 +75,15 @@ static void do_int2f_16( CONTEXT *context ) switch(AL_reg(context)) { case 0x00: /* Windows enhanced mode installation check */ - AX_reg(context) = (Options.mode == MODE_ENHANCED) ? WINVERSION : 0; + AX_reg(context) = (GetWinFlags() & WF_ENHANCED) ? + LOWORD(GetVersion16()) : 0; break; case 0x0a: /* Get Windows version and type */ AX_reg(context) = 0; - BX_reg(context) = (WINVERSION >> 8) | ((WINVERSION << 8) & 0xff00); - CX_reg(context) = (Options.mode == MODE_ENHANCED) ? 3 : 2; + BX_reg(context) = (LOWORD(GetVersion16()) << 8) | + (LOWORD(GetVersion16()) >> 8); + CX_reg(context) = (GetWinFlags() & WF_ENHANCED) ? 3 : 2; break; case 0x80: /* Release time-slice */ diff --git a/msdos/int4b.c b/msdos/int4b.c index 4f4e8c5f7c6..615754782df 100644 --- a/msdos/int4b.c +++ b/msdos/int4b.c @@ -8,7 +8,7 @@ * INT_Int4bHandler * */ -void INT_Int4bHandler( CONTEXT *context ) +void WINAPI INT_Int4bHandler( CONTEXT *context ) { switch(AH_reg(context)) { diff --git a/msdos/int5c.c b/msdos/int5c.c index ab220593613..6a17e8af37a 100644 --- a/msdos/int5c.c +++ b/msdos/int5c.c @@ -15,7 +15,7 @@ * * Also handler for interrupt 5c. */ -void NetBIOSCall( CONTEXT *context ) +void WINAPI NetBIOSCall( CONTEXT *context ) { BYTE* ptr; ptr = (BYTE*) PTR_SEG_OFF_TO_LIN(ES_reg(context),BX_reg(context)); diff --git a/msdos/vxd.c b/msdos/vxd.c index a56c1e5e59c..dc51e7952af 100644 --- a/msdos/vxd.c +++ b/msdos/vxd.c @@ -21,20 +21,29 @@ CX_reg(context), DX_reg(context), SI_reg(context), \ DI_reg(context), (WORD)DS_reg(context), (WORD)ES_reg(context) ) + +static WORD VXD_WinVersion(void) +{ + WORD version = GetVersion16(); + return (version >> 8) | (version << 8); +} + /*********************************************************************** * VXD_PageFile */ -void VXD_PageFile( CONTEXT *context ) +void WINAPI VXD_PageFile( CONTEXT *context ) { + unsigned service = AX_reg(context); + /* taken from Ralf Brown's Interrupt List */ - dprintf_vxd(stddeb,"VxD PageFile called ...\n"); + dprintf_vxd(stddeb,"VxD: [%04x] PageFile\n", (UINT16)service ); - switch(AX_reg(context)) + switch(service) { case 0x00: /* get version, is this windows version? */ dprintf_vxd(stddeb,"VxD PageFile: returning version\n"); - AX_reg(context) = (WINVERSION >> 8) | ((WINVERSION << 8) & 0xff00); + AX_reg(context) = VXD_WinVersion(); RESET_CFLAG(context); break; @@ -69,15 +78,17 @@ void VXD_PageFile( CONTEXT *context ) /*********************************************************************** * VXD_Shell */ -void VXD_Shell( CONTEXT *context ) +void WINAPI VXD_Shell( CONTEXT *context ) { - dprintf_vxd(stddeb,"VxD Shell called ...\n"); + unsigned service = DX_reg(context); - switch (DX_reg(context)) /* Ralf Brown says EDX, but I use DX instead */ + dprintf_vxd(stddeb,"VxD: [%04x] Shell\n", (UINT16)service); + + switch (service) /* Ralf Brown says EDX, but I use DX instead */ { case 0x0000: dprintf_vxd(stddeb,"VxD Shell: returning version\n"); - AX_reg(context) = (WINVERSION >> 8) | ((WINVERSION << 8) & 0xff00); + AX_reg(context) = VXD_WinVersion(); EBX_reg(context) = 1; /* system VM Handle */ break; @@ -127,15 +138,17 @@ void VXD_Shell( CONTEXT *context ) /*********************************************************************** * VXD_Comm */ -void VXD_Comm( CONTEXT *context ) +void WINAPI VXD_Comm( CONTEXT *context ) { - dprintf_vxd(stddeb,"VxD Comm called ...\n"); + unsigned service = AX_reg(context); - switch (AX_reg(context)) + dprintf_vxd(stddeb,"VxD: [%04x] Comm\n", (UINT16)service); + + switch (service) { case 0x0000: /* get version */ dprintf_vxd(stddeb,"VxD Comm: returning version\n"); - AX_reg(context) = (WINVERSION >> 8) | ((WINVERSION << 8) & 0xff00); + AX_reg(context) = VXD_WinVersion(); RESET_CFLAG(context); break; @@ -146,3 +159,37 @@ void VXD_Comm( CONTEXT *context ) VXD_BARF( context, "comm" ); } } + +/*********************************************************************** + * VXD_Timer + */ +void VXD_Timer( CONTEXT *context ) +{ + unsigned service = AX_reg(context); + + dprintf_vxd(stddeb,"VxD: [%04x] Virtual Timer\n", (UINT16)service); + + switch(service) + { + case 0x0000: /* version */ + AX_reg(context) = VXD_WinVersion(); + RESET_CFLAG(context); + break; + + case 0x0100: /* clock tick time, in 840nsecs */ + EAX_reg(context) = GetTickCount(); + + EDX_reg(context) = EAX_reg(context) >> 22; + EAX_reg(context) <<= 10; /* not very precise */ + break; + + case 0x0101: /* current Windows time, msecs */ + case 0x0102: /* current VM time, msecs */ + EAX_reg(context) = GetTickCount(); + break; + + default: + VXD_BARF( context, "VTD" ); + } +} + diff --git a/multimedia/joystick.c b/multimedia/joystick.c index 4e643e2cf72..cdd65abf5b5 100644 --- a/multimedia/joystick.c +++ b/multimedia/joystick.c @@ -111,7 +111,7 @@ void JoySendMessages(void) /************************************************************************** * JoyGetNumDevs [MMSYSTEM.101] */ -WORD JoyGetNumDevs(void) +WORD WINAPI JoyGetNumDevs(void) { int joy; WORD joy_cnt = 0; @@ -130,7 +130,7 @@ WORD joy_cnt = 0; /************************************************************************** * JoyGetDevCaps [MMSYSTEM.102] */ -WORD JoyGetDevCaps(WORD wID, LPJOYCAPS lpCaps, WORD wSize) +WORD WINAPI JoyGetDevCaps(WORD wID, LPJOYCAPS lpCaps, WORD wSize) { dprintf_mmsys(stderr, "JoyGetDevCaps(%04X, %p, %d);\n", wID, lpCaps, wSize); @@ -138,7 +138,7 @@ WORD JoyGetDevCaps(WORD wID, LPJOYCAPS lpCaps, WORD wSize) if (JoyOpenDriver(wID) == TRUE) { lpCaps->wMid = MM_MICROSOFT; lpCaps->wPid = MM_PC_JOYSTICK; - strcpy(lpCaps->szPname, "WineJoy\0"); /* joystick product name */ + strcpy(lpCaps->szPname, "WineJoy"); /* joystick product name */ lpCaps->wXmin = 0; /* FIXME */ lpCaps->wXmax = 0xffff; lpCaps->wYmin = 0; @@ -159,7 +159,7 @@ WORD JoyGetDevCaps(WORD wID, LPJOYCAPS lpCaps, WORD wSize) /************************************************************************** * JoyGetPos [MMSYSTEM.103] */ -WORD JoyGetPos(WORD wID, LPJOYINFO lpInfo) +WORD WINAPI JoyGetPos(WORD wID, LPJOYINFO lpInfo) { struct js_status js; @@ -184,7 +184,7 @@ WORD JoyGetPos(WORD wID, LPJOYINFO lpInfo) /************************************************************************** * JoyGetThreshold [MMSYSTEM.104] */ -WORD JoyGetThreshold(WORD wID, LPWORD lpThreshold) +WORD WINAPI JoyGetThreshold(WORD wID, LPWORD lpThreshold) { dprintf_mmsys(stderr, "JoyGetThreshold(%04X, %p);\n", wID, lpThreshold); if (wID > 3) return JOYERR_PARMS; @@ -195,7 +195,7 @@ WORD JoyGetThreshold(WORD wID, LPWORD lpThreshold) /************************************************************************** * JoyReleaseCapture [MMSYSTEM.105] */ -WORD JoyReleaseCapture(WORD wID) +WORD WINAPI JoyReleaseCapture(WORD wID) { dprintf_mmsys(stderr, "JoyReleaseCapture(%04X);\n", wID); JoyCaptured = FALSE; @@ -208,7 +208,7 @@ WORD JoyReleaseCapture(WORD wID) /************************************************************************** * JoySetCapture [MMSYSTEM.106] */ -WORD JoySetCapture(HWND16 hWnd, WORD wID, WORD wPeriod, BOOL16 bChanged) +WORD WINAPI JoySetCapture(HWND16 hWnd, WORD wID, WORD wPeriod, BOOL16 bChanged) { dprintf_mmsys(stderr, "JoySetCapture(%04X, %04X, %d, %d);\n", @@ -227,7 +227,7 @@ WORD JoySetCapture(HWND16 hWnd, WORD wID, WORD wPeriod, BOOL16 bChanged) /************************************************************************** * JoySetThreshold [MMSYSTEM.107] */ -WORD JoySetThreshold(WORD wID, WORD wThreshold) +WORD WINAPI JoySetThreshold(WORD wID, WORD wThreshold) { dprintf_mmsys(stderr, "JoySetThreshold(%04X, %d);\n", wID, wThreshold); @@ -239,7 +239,7 @@ WORD JoySetThreshold(WORD wID, WORD wThreshold) /************************************************************************** * JoySetCalibration [MMSYSTEM.109] */ -WORD JoySetCalibration(WORD wID) +WORD WINAPI JoySetCalibration(WORD wID) { fprintf(stderr, "EMPTY STUB !!! JoySetCalibration(%04X);\n", wID); return JOYERR_NOCANDO; diff --git a/multimedia/mcistring.c b/multimedia/mcistring.c index 1624ee383df..f97ca493f37 100644 --- a/multimedia/mcistring.c +++ b/multimedia/mcistring.c @@ -42,8 +42,8 @@ extern UINT16 MMSYSTEM_FirstDevID(void); extern UINT16 MMSYSTEM_NextDevID(UINT16 wDevID); extern BOOL32 MMSYSTEM_DevIDValid(UINT16 wDevID); -LONG DrvDefDriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, - DWORD dwParam1, DWORD dwParam2); +LONG WINAPI DrvDefDriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, + DWORD dwParam1, DWORD dwParam2); LONG WAVE_DriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, DWORD dwParam1, DWORD dwParam2); @@ -2107,8 +2107,8 @@ struct _MCISTR_cmdtable { /* FIXME: "all" is a valid devicetype and we should access all devices if * it is used. (imagine "close all"). Not implemented yet. */ -DWORD mciSendString (LPCSTR lpstrCommand, LPSTR lpstrReturnString, - UINT16 uReturnLength, HWND16 hwndCallback) +DWORD WINAPI mciSendString (LPCSTR lpstrCommand, LPSTR lpstrReturnString, + UINT16 uReturnLength, HWND16 hwndCallback) { char *cmd,*dev,*args,**keywords,*filename; WORD uDevTyp=0,wDevID=0; diff --git a/multimedia/midi.c b/multimedia/midi.c index 7384f8de8e2..939281936bf 100644 --- a/multimedia/midi.c +++ b/multimedia/midi.c @@ -1089,7 +1089,7 @@ static DWORD modGetDevCaps(WORD wDevID, LPMIDIOUTCAPS lpCaps, DWORD dwSize) lpCaps->wMid = 0x00FF; /* Manufac ID */ lpCaps->wPid = 0x0001; /* Product ID */ lpCaps->vDriverVersion = 0x001; /* Product Version */ - strcpy(lpCaps->szPname, "Linux MIDIOUT Driver version 0.01"); + strcpy(lpCaps->szPname, "Linux MIDIOUT Driver v0.01"); /* FIXME Values are the same as I get with Borland TC 4.5 */ diff --git a/multimedia/mmsystem.c b/multimedia/mmsystem.c index b4f6cf962ad..b13221f9232 100644 --- a/multimedia/mmsystem.c +++ b/multimedia/mmsystem.c @@ -39,8 +39,8 @@ MCI_OPEN_PARMS mciOpenDrv[MAXMCIDRIVERS]; UINT16 midiGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); UINT16 waveGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize); -LONG DrvDefDriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, - DWORD dwParam1, DWORD dwParam2); +LONG WINAPI DrvDefDriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, + DWORD dwParam1, DWORD dwParam2); LONG WAVE_DriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, DWORD dwParam1, DWORD dwParam2); @@ -98,8 +98,8 @@ BOOL32 MMSYSTEM_DevIDValid(UINT16 wDevID) { /************************************************************************** * MMSYSTEM_WEP [MMSYSTEM.1] */ -int MMSYSTEM_WEP(HINSTANCE16 hInstance, WORD wDataSeg, - WORD cbHeapSize, LPSTR lpCmdLine) +int WINAPI MMSYSTEM_WEP(HINSTANCE16 hInstance, WORD wDataSeg, + WORD cbHeapSize, LPSTR lpCmdLine) { fprintf(stderr, "STUB: Unloading MMSystem DLL ... hInst=%04X \n", hInstance); return(TRUE); @@ -108,7 +108,7 @@ int MMSYSTEM_WEP(HINSTANCE16 hInstance, WORD wDataSeg, /************************************************************************** * sndPlaySound [MMSYSTEM.2] */ -BOOL16 sndPlaySound(LPCSTR lpszSoundName, UINT16 uFlags) +BOOL16 WINAPI sndPlaySound(LPCSTR lpszSoundName, UINT16 uFlags) { BOOL16 bRet = FALSE; HMMIO16 hmmio; @@ -251,7 +251,7 @@ BOOL16 sndPlaySound(LPCSTR lpszSoundName, UINT16 uFlags) /************************************************************************** * mmsystemGetVersion [MMSYSTEM.5] */ -WORD mmsystemGetVersion() +WORD WINAPI mmsystemGetVersion() { dprintf_mmsys(stddeb, "mmsystemGetVersion // 0.4.0 ...?... :-) !\n"); return 0x0040; @@ -260,8 +260,8 @@ WORD mmsystemGetVersion() /************************************************************************** * DriverProc [MMSYSTEM.6] */ -LRESULT DriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, - DWORD dwParam1, DWORD dwParam2) +LRESULT WINAPI DriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, + DWORD dwParam1, DWORD dwParam2) { return DrvDefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } @@ -269,8 +269,8 @@ LRESULT DriverProc(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, /************************************************************************** * DriverCallback [MMSYSTEM.31] */ -BOOL16 DriverCallback(DWORD dwCallBack, UINT16 uFlags, HANDLE16 hDev, - WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2) +BOOL16 WINAPI DriverCallback(DWORD dwCallBack, UINT16 uFlags, HANDLE16 hDev, + WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2) { LPWAVEOPENDESC lpDesc; @@ -303,7 +303,7 @@ BOOL16 DriverCallback(DWORD dwCallBack, UINT16 uFlags, HANDLE16 hDev, /************************************************************************** * auxGetNumDevs [MMSYSTEM.350] */ -UINT16 auxGetNumDevs() +UINT16 WINAPI auxGetNumDevs() { UINT16 count = 0; dprintf_mmsys(stddeb, "auxGetNumDevs !\n"); @@ -315,7 +315,7 @@ UINT16 auxGetNumDevs() /************************************************************************** * auxGetDevCaps [MMSYSTEM.351] */ -UINT16 auxGetDevCaps(UINT16 uDeviceID, AUXCAPS * lpCaps, UINT16 uSize) +UINT16 WINAPI auxGetDevCaps(UINT16 uDeviceID, AUXCAPS * lpCaps, UINT16 uSize) { dprintf_mmsys(stddeb, "auxGetDevCaps(%04X, %p, %d) !\n", uDeviceID, lpCaps, uSize); @@ -326,7 +326,7 @@ UINT16 auxGetDevCaps(UINT16 uDeviceID, AUXCAPS * lpCaps, UINT16 uSize) /************************************************************************** * auxGetVolume [MMSYSTEM.352] */ -UINT16 auxGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) +UINT16 WINAPI auxGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) { dprintf_mmsys(stddeb, "auxGetVolume(%04X, %p) !\n", uDeviceID, lpdwVolume); return auxMessage(uDeviceID, AUXDM_GETVOLUME, 0L, (DWORD)lpdwVolume, 0L); @@ -335,7 +335,7 @@ UINT16 auxGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) /************************************************************************** * auxSetVolume [MMSYSTEM.353] */ -UINT16 auxSetVolume(UINT16 uDeviceID, DWORD dwVolume) +UINT16 WINAPI auxSetVolume(UINT16 uDeviceID, DWORD dwVolume) { dprintf_mmsys(stddeb, "auxSetVolume(%04X, %08lX) !\n", uDeviceID, dwVolume); return auxMessage(uDeviceID, AUXDM_SETVOLUME, 0L, dwVolume, 0L); @@ -344,7 +344,7 @@ UINT16 auxSetVolume(UINT16 uDeviceID, DWORD dwVolume) /************************************************************************** * auxOutMessage [MMSYSTEM.354] */ -DWORD auxOutMessage(UINT16 uDeviceID, UINT16 uMessage, DWORD dw1, DWORD dw2) +DWORD WINAPI auxOutMessage(UINT16 uDeviceID, UINT16 uMessage, DWORD dw1, DWORD dw2) { dprintf_mmsys(stddeb, "auxOutMessage(%04X, %04X, %08lX, %08lX)\n", uDeviceID, uMessage, dw1, dw2); @@ -354,7 +354,7 @@ DWORD auxOutMessage(UINT16 uDeviceID, UINT16 uMessage, DWORD dw1, DWORD dw2) /************************************************************************** * mciGetErrorString [MMSYSTEM.706] */ -BOOL16 mciGetErrorString (DWORD wError, LPSTR lpstrBuffer, UINT16 uLength) +BOOL16 WINAPI mciGetErrorString (DWORD wError, LPSTR lpstrBuffer, UINT16 uLength) { LPSTR msgptr; dprintf_mmsys(stddeb, "mciGetErrorString(%08lX, %p, %d);\n", wError, lpstrBuffer, uLength); @@ -630,7 +630,7 @@ msg# 543 : tmsf /************************************************************************** * mciDriverNotify [MMSYSTEM.711] */ -BOOL16 mciDriverNotify(HWND16 hWndCallBack, UINT16 wDevID, UINT16 wStatus) +BOOL16 WINAPI mciDriverNotify(HWND16 hWndCallBack, UINT16 wDevID, UINT16 wStatus) { dprintf_mmsys(stddeb, "mciDriverNotify(%04X, %u, %04X)\n", hWndCallBack, wDevID, wStatus); if (!IsWindow32(hWndCallBack)) return FALSE; @@ -935,7 +935,8 @@ static const char *_mciCommandToString(UINT16 wMsg) /************************************************************************** * mciSendCommand [MMSYSTEM.701] */ -DWORD mciSendCommand(UINT16 wDevID, UINT16 wMsg, DWORD dwParam1, DWORD dwParam2) +DWORD WINAPI mciSendCommand(UINT16 wDevID, UINT16 wMsg, DWORD dwParam1, + DWORD dwParam2) { HDRVR16 hDrv = 0; dprintf_mci(stddeb, "mciSendCommand(%04X, %s, %08lX, %08lX)\n", @@ -977,7 +978,7 @@ DWORD mciSendCommand(UINT16 wDevID, UINT16 wMsg, DWORD dwParam1, DWORD dwParam2) /************************************************************************** * mciGetDeviceID [MMSYSTEM.703] */ -UINT16 mciGetDeviceID (LPCSTR lpstrName) +UINT16 WINAPI mciGetDeviceID (LPCSTR lpstrName) { UINT16 wDevID; @@ -1007,8 +1008,8 @@ UINT16 mciGetDeviceID (LPCSTR lpstrName) /************************************************************************** * mciSetYieldProc [MMSYSTEM.714] */ -BOOL16 mciSetYieldProc (UINT16 uDeviceID, - YIELDPROC fpYieldProc, DWORD dwYieldData) +BOOL16 WINAPI mciSetYieldProc (UINT16 uDeviceID, + YIELDPROC fpYieldProc, DWORD dwYieldData) { return FALSE; } @@ -1016,7 +1017,7 @@ BOOL16 mciSetYieldProc (UINT16 uDeviceID, /************************************************************************** * mciGetDeviceIDFromElementID [MMSYSTEM.715] */ -UINT16 mciGetDeviceIDFromElementID(DWORD dwElementID, LPCSTR lpstrType) +UINT16 WINAPI mciGetDeviceIDFromElementID(DWORD dwElementID, LPCSTR lpstrType) { return 0; } @@ -1024,7 +1025,7 @@ UINT16 mciGetDeviceIDFromElementID(DWORD dwElementID, LPCSTR lpstrType) /************************************************************************** * mciGetYieldProc [MMSYSTEM.716] */ -YIELDPROC mciGetYieldProc(UINT16 uDeviceID, DWORD * lpdwYieldData) +YIELDPROC WINAPI mciGetYieldProc(UINT16 uDeviceID, DWORD * lpdwYieldData) { return NULL; } @@ -1032,7 +1033,7 @@ YIELDPROC mciGetYieldProc(UINT16 uDeviceID, DWORD * lpdwYieldData) /************************************************************************** * mciGetCreatorTask [MMSYSTEM.717] */ -HTASK16 mciGetCreatorTask(UINT16 uDeviceID) +HTASK16 WINAPI mciGetCreatorTask(UINT16 uDeviceID) { return 0; } @@ -1040,7 +1041,7 @@ HTASK16 mciGetCreatorTask(UINT16 uDeviceID) /************************************************************************** * midiOutGetNumDevs [MMSYSTEM.201] */ -UINT16 midiOutGetNumDevs(void) +UINT16 WINAPI midiOutGetNumDevs(void) { UINT16 count = 0; dprintf_mmsys(stddeb, "midiOutGetNumDevs\n"); @@ -1052,7 +1053,7 @@ UINT16 midiOutGetNumDevs(void) /************************************************************************** * midiOutGetDevCaps [MMSYSTEM.202] */ -UINT16 midiOutGetDevCaps(UINT16 uDeviceID, MIDIOUTCAPS * lpCaps, UINT16 uSize) +UINT16 WINAPI midiOutGetDevCaps(UINT16 uDeviceID, MIDIOUTCAPS * lpCaps, UINT16 uSize) { dprintf_mmsys(stddeb, "midiOutGetDevCaps\n"); return modMessage(uDeviceID,MODM_GETDEVCAPS,0,(DWORD)lpCaps,uSize); @@ -1061,7 +1062,7 @@ UINT16 midiOutGetDevCaps(UINT16 uDeviceID, MIDIOUTCAPS * lpCaps, UINT16 uSize) /************************************************************************** * midiOutGetErrorText [MMSYSTEM.203] */ -UINT16 midiOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) +UINT16 WINAPI midiOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) { dprintf_mmsys(stddeb, "midiOutGetErrorText\n"); return midiGetErrorText(uError, lpText, uSize); @@ -1071,7 +1072,7 @@ UINT16 midiOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) /************************************************************************** * midiGetErrorText [internal] */ -UINT16 midiGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) +UINT16 WINAPI midiGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) { LPSTR msgptr; if ((lpText == NULL) || (uSize < 1)) return(FALSE); @@ -1116,8 +1117,8 @@ msg# 343 : There are no MIDI devices installed on the system. Use the Drivers op /************************************************************************** * midiOutOpen [MMSYSTEM.204] */ -UINT16 midiOutOpen(HMIDIOUT16 * lphMidiOut, UINT16 uDeviceID, - DWORD dwCallback, DWORD dwInstance, DWORD dwFlags) +UINT16 WINAPI midiOutOpen(HMIDIOUT16 * lphMidiOut, UINT16 uDeviceID, + DWORD dwCallback, DWORD dwInstance, DWORD dwFlags) { HMIDI16 hMidiOut; LPMIDIOPENDESC lpDesc; @@ -1154,7 +1155,7 @@ UINT16 midiOutOpen(HMIDIOUT16 * lphMidiOut, UINT16 uDeviceID, /************************************************************************** * midiOutClose [MMSYSTEM.205] */ -UINT16 midiOutClose(HMIDIOUT16 hMidiOut) +UINT16 WINAPI midiOutClose(HMIDIOUT16 hMidiOut) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiOutClose(%04X)\n", hMidiOut); @@ -1166,8 +1167,8 @@ UINT16 midiOutClose(HMIDIOUT16 hMidiOut) /************************************************************************** * midiOutPrepareHeader [MMSYSTEM.206] */ -UINT16 midiOutPrepareHeader(HMIDIOUT16 hMidiOut, - MIDIHDR * lpMidiOutHdr, UINT16 uSize) +UINT16 WINAPI midiOutPrepareHeader(HMIDIOUT16 hMidiOut, + MIDIHDR * lpMidiOutHdr, UINT16 uSize) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiOutPrepareHeader(%04X, %p, %d)\n", @@ -1181,8 +1182,8 @@ UINT16 midiOutPrepareHeader(HMIDIOUT16 hMidiOut, /************************************************************************** * midiOutUnprepareHeader [MMSYSTEM.207] */ -UINT16 midiOutUnprepareHeader(HMIDIOUT16 hMidiOut, - MIDIHDR * lpMidiOutHdr, UINT16 uSize) +UINT16 WINAPI midiOutUnprepareHeader(HMIDIOUT16 hMidiOut, + MIDIHDR * lpMidiOutHdr, UINT16 uSize) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiOutUnprepareHeader(%04X, %p, %d)\n", @@ -1196,7 +1197,7 @@ UINT16 midiOutUnprepareHeader(HMIDIOUT16 hMidiOut, /************************************************************************** * midiOutShortMsg [MMSYSTEM.208] */ -UINT16 midiOutShortMsg(HMIDIOUT16 hMidiOut, DWORD dwMsg) +UINT16 WINAPI midiOutShortMsg(HMIDIOUT16 hMidiOut, DWORD dwMsg) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiOutShortMsg(%04X, %08lX)\n", hMidiOut, dwMsg); @@ -1208,8 +1209,8 @@ UINT16 midiOutShortMsg(HMIDIOUT16 hMidiOut, DWORD dwMsg) /************************************************************************** * midiOutLongMsg [MMSYSTEM.209] */ -UINT16 midiOutLongMsg(HMIDIOUT16 hMidiOut, - MIDIHDR * lpMidiOutHdr, UINT16 uSize) +UINT16 WINAPI midiOutLongMsg(HMIDIOUT16 hMidiOut, + MIDIHDR * lpMidiOutHdr, UINT16 uSize) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiOutLongMsg(%04X, %p, %d)\n", @@ -1223,7 +1224,7 @@ UINT16 midiOutLongMsg(HMIDIOUT16 hMidiOut, /************************************************************************** * midiOutReset [MMSYSTEM.210] */ -UINT16 midiOutReset(HMIDIOUT16 hMidiOut) +UINT16 WINAPI midiOutReset(HMIDIOUT16 hMidiOut) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiOutReset(%04X)\n", hMidiOut); @@ -1235,7 +1236,7 @@ UINT16 midiOutReset(HMIDIOUT16 hMidiOut) /************************************************************************** * midiOutGetVolume [MMSYSTEM.211] */ -UINT16 midiOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) +UINT16 WINAPI midiOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) { dprintf_mmsys(stddeb, "midiOutGetVolume(%04X, %p);\n", uDeviceID, lpdwVolume); return modMessage(uDeviceID, MODM_GETVOLUME, 0L, (DWORD)lpdwVolume, 0L); @@ -1245,7 +1246,7 @@ UINT16 midiOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) /************************************************************************** * midiOutSetVolume [MMSYSTEM.212] */ -UINT16 midiOutSetVolume(UINT16 uDeviceID, DWORD dwVolume) +UINT16 WINAPI midiOutSetVolume(UINT16 uDeviceID, DWORD dwVolume) { dprintf_mmsys(stddeb, "midiOutSetVolume(%04X, %08lX);\n", uDeviceID, dwVolume); return modMessage(uDeviceID, MODM_SETVOLUME, 0L, dwVolume, 0L); @@ -1255,8 +1256,8 @@ UINT16 midiOutSetVolume(UINT16 uDeviceID, DWORD dwVolume) /************************************************************************** * midiOutCachePatches [MMSYSTEM.213] */ -UINT16 midiOutCachePatches(HMIDIOUT16 hMidiOut, - UINT16 uBank, WORD * lpwPatchArray, UINT16 uFlags) +UINT16 WINAPI midiOutCachePatches(HMIDIOUT16 hMidiOut, UINT16 uBank, + WORD * lpwPatchArray, UINT16 uFlags) { /* not really necessary to support this */ fprintf(stdnimp, "midiOutCachePatches: not supported yet\n"); @@ -1266,8 +1267,8 @@ UINT16 midiOutCachePatches(HMIDIOUT16 hMidiOut, /************************************************************************** * midiOutCacheDrumPatches [MMSYSTEM.214] */ -UINT16 midiOutCacheDrumPatches(HMIDIOUT16 hMidiOut, - UINT16 uPatch, WORD * lpwKeyArray, UINT16 uFlags) +UINT16 WINAPI midiOutCacheDrumPatches(HMIDIOUT16 hMidiOut, UINT16 uPatch, + WORD * lpwKeyArray, UINT16 uFlags) { fprintf(stdnimp, "midiOutCacheDrumPatchesi: not supported yet\n"); return MMSYSERR_NOTSUPPORTED; @@ -1276,7 +1277,7 @@ UINT16 midiOutCacheDrumPatches(HMIDIOUT16 hMidiOut, /************************************************************************** * midiOutGetID [MMSYSTEM.215] */ -UINT16 midiOutGetID(HMIDIOUT16 hMidiOut, UINT16 * lpuDeviceID) +UINT16 WINAPI midiOutGetID(HMIDIOUT16 hMidiOut, UINT16 * lpuDeviceID) { dprintf_mmsys(stddeb, "midiOutGetID\n"); return 0; @@ -1285,8 +1286,8 @@ UINT16 midiOutGetID(HMIDIOUT16 hMidiOut, UINT16 * lpuDeviceID) /************************************************************************** * midiOutMessage [MMSYSTEM.216] */ -DWORD midiOutMessage(HMIDIOUT16 hMidiOut, UINT16 uMessage, - DWORD dwParam1, DWORD dwParam2) +DWORD WINAPI midiOutMessage(HMIDIOUT16 hMidiOut, UINT16 uMessage, + DWORD dwParam1, DWORD dwParam2) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiOutMessage(%04X, %04X, %08lX, %08lX)\n", @@ -1300,7 +1301,7 @@ DWORD midiOutMessage(HMIDIOUT16 hMidiOut, UINT16 uMessage, /************************************************************************** * midiInGetNumDevs [MMSYSTEM.301] */ -UINT16 midiInGetNumDevs(void) +UINT16 WINAPI midiInGetNumDevs(void) { UINT16 count = 0; dprintf_mmsys(stddeb, "midiInGetNumDevs\n"); @@ -1312,8 +1313,8 @@ UINT16 midiInGetNumDevs(void) /************************************************************************** * midiInGetDevCaps [MMSYSTEM.302] */ -UINT16 midiInGetDevCaps(UINT16 uDeviceID, - LPMIDIINCAPS lpCaps, UINT16 uSize) +UINT16 WINAPI midiInGetDevCaps(UINT16 uDeviceID, + LPMIDIINCAPS lpCaps, UINT16 uSize) { dprintf_mmsys(stddeb, "midiInGetDevCaps\n"); return midMessage(uDeviceID,MIDM_GETDEVCAPS,0,(DWORD)lpCaps,uSize);; @@ -1322,7 +1323,7 @@ UINT16 midiInGetDevCaps(UINT16 uDeviceID, /************************************************************************** * midiInGetErrorText [MMSYSTEM.303] */ -UINT16 midiInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) +UINT16 WINAPI midiInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) { dprintf_mmsys(stddeb, "midiInGetErrorText\n"); return (midiGetErrorText(uError, lpText, uSize)); @@ -1331,8 +1332,8 @@ UINT16 midiInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) /************************************************************************** * midiInOpen [MMSYSTEM.304] */ -UINT16 midiInOpen(HMIDIIN16 * lphMidiIn, UINT16 uDeviceID, - DWORD dwCallback, DWORD dwInstance, DWORD dwFlags) +UINT16 WINAPI midiInOpen(HMIDIIN16 * lphMidiIn, UINT16 uDeviceID, + DWORD dwCallback, DWORD dwInstance, DWORD dwFlags) { HMIDI16 hMidiIn; LPMIDIOPENDESC lpDesc; @@ -1369,7 +1370,7 @@ UINT16 midiInOpen(HMIDIIN16 * lphMidiIn, UINT16 uDeviceID, /************************************************************************** * midiInClose [MMSYSTEM.305] */ -UINT16 midiInClose(HMIDIIN16 hMidiIn) +UINT16 WINAPI midiInClose(HMIDIIN16 hMidiIn) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiInClose(%04X)\n", hMidiIn); @@ -1381,8 +1382,8 @@ UINT16 midiInClose(HMIDIIN16 hMidiIn) /************************************************************************** * midiInPrepareHeader [MMSYSTEM.306] */ -UINT16 midiInPrepareHeader(HMIDIIN16 hMidiIn, - MIDIHDR * lpMidiInHdr, UINT16 uSize) +UINT16 WINAPI midiInPrepareHeader(HMIDIIN16 hMidiIn, + MIDIHDR * lpMidiInHdr, UINT16 uSize) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiInPrepareHeader(%04X, %p, %d)\n", @@ -1396,8 +1397,8 @@ UINT16 midiInPrepareHeader(HMIDIIN16 hMidiIn, /************************************************************************** * midiInUnprepareHeader [MMSYSTEM.307] */ -UINT16 midiInUnprepareHeader(HMIDIIN16 hMidiIn, - MIDIHDR * lpMidiInHdr, UINT16 uSize) +UINT16 WINAPI midiInUnprepareHeader(HMIDIIN16 hMidiIn, + MIDIHDR * lpMidiInHdr, UINT16 uSize) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiInUnprepareHeader(%04X, %p, %d)\n", @@ -1411,8 +1412,8 @@ UINT16 midiInUnprepareHeader(HMIDIIN16 hMidiIn, /************************************************************************** * midiInAddBuffer [MMSYSTEM.308] */ -UINT16 midiInAddBuffer(HMIDIIN16 hMidiIn, - MIDIHDR * lpMidiInHdr, UINT16 uSize) +UINT16 WINAPI midiInAddBuffer(HMIDIIN16 hMidiIn, + MIDIHDR * lpMidiInHdr, UINT16 uSize) { dprintf_mmsys(stddeb, "midiInAddBuffer\n"); return 0; @@ -1421,7 +1422,7 @@ UINT16 midiInAddBuffer(HMIDIIN16 hMidiIn, /************************************************************************** * midiInStart [MMSYSTEM.309] */ -UINT16 midiInStart(HMIDIIN16 hMidiIn) +UINT16 WINAPI midiInStart(HMIDIIN16 hMidiIn) { dprintf_mmsys(stddeb, "midiInStart\n"); return 0; @@ -1430,7 +1431,7 @@ UINT16 midiInStart(HMIDIIN16 hMidiIn) /************************************************************************** * midiInStop [MMSYSTEM.310] */ -UINT16 midiInStop(HMIDIIN16 hMidiIn) +UINT16 WINAPI midiInStop(HMIDIIN16 hMidiIn) { dprintf_mmsys(stddeb, "midiInStop\n"); return 0; @@ -1439,7 +1440,7 @@ UINT16 midiInStop(HMIDIIN16 hMidiIn) /************************************************************************** * midiInReset [MMSYSTEM.311] */ -UINT16 midiInReset(HMIDIIN16 hMidiIn) +UINT16 WINAPI midiInReset(HMIDIIN16 hMidiIn) { dprintf_mmsys(stddeb, "midiInReset\n"); return 0; @@ -1448,7 +1449,7 @@ UINT16 midiInReset(HMIDIIN16 hMidiIn) /************************************************************************** * midiInGetID [MMSYSTEM.312] */ -UINT16 midiInGetID(HMIDIIN16 hMidiIn, UINT16 * lpuDeviceID) +UINT16 WINAPI midiInGetID(HMIDIIN16 hMidiIn, UINT16 * lpuDeviceID) { dprintf_mmsys(stddeb, "midiInGetID\n"); return 0; @@ -1457,8 +1458,8 @@ UINT16 midiInGetID(HMIDIIN16 hMidiIn, UINT16 * lpuDeviceID) /************************************************************************** * midiInMessage [MMSYSTEM.313] */ -DWORD midiInMessage(HMIDIIN16 hMidiIn, UINT16 uMessage, - DWORD dwParam1, DWORD dwParam2) +DWORD WINAPI midiInMessage(HMIDIIN16 hMidiIn, UINT16 uMessage, + DWORD dwParam1, DWORD dwParam2) { LPMIDIOPENDESC lpDesc; dprintf_mmsys(stddeb, "midiInMessage(%04X, %04X, %08lX, %08lX)\n", @@ -1472,7 +1473,7 @@ DWORD midiInMessage(HMIDIIN16 hMidiIn, UINT16 uMessage, /************************************************************************** * waveOutGetNumDevs [MMSYSTEM.401] */ -UINT16 waveOutGetNumDevs() +UINT16 WINAPI waveOutGetNumDevs() { UINT16 count = 0; dprintf_mmsys(stddeb, "waveOutGetNumDevs\n"); @@ -1484,7 +1485,8 @@ UINT16 waveOutGetNumDevs() /************************************************************************** * waveOutGetDevCaps [MMSYSTEM.402] */ -UINT16 waveOutGetDevCaps(UINT16 uDeviceID, WAVEOUTCAPS * lpCaps, UINT16 uSize) +UINT16 WINAPI waveOutGetDevCaps(UINT16 uDeviceID, WAVEOUTCAPS * lpCaps, + UINT16 uSize) { if (uDeviceID > waveOutGetNumDevs() - 1) return MMSYSERR_BADDEVICEID; if (uDeviceID == (UINT16)WAVE_MAPPER) return MMSYSERR_BADDEVICEID; /* FIXME: do we have a wave mapper ? */ @@ -1495,7 +1497,7 @@ UINT16 waveOutGetDevCaps(UINT16 uDeviceID, WAVEOUTCAPS * lpCaps, UINT16 uSize) /************************************************************************** * waveOutGetErrorText [MMSYSTEM.403] */ -UINT16 waveOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) +UINT16 WINAPI waveOutGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) { dprintf_mmsys(stddeb, "waveOutGetErrorText\n"); return(waveGetErrorText(uError, lpText, uSize)); @@ -1571,8 +1573,9 @@ UINT16 waveGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) /************************************************************************** * waveOutOpen [MMSYSTEM.404] */ -UINT16 waveOutOpen(HWAVEOUT16 * lphWaveOut, UINT16 uDeviceID, - const LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags) +UINT16 WINAPI waveOutOpen(HWAVEOUT16 * lphWaveOut, UINT16 uDeviceID, + const LPWAVEFORMAT lpFormat, DWORD dwCallback, + DWORD dwInstance, DWORD dwFlags) { HWAVEOUT16 hWaveOut; LPWAVEOPENDESC lpDesc; @@ -1621,7 +1624,7 @@ UINT16 waveOutOpen(HWAVEOUT16 * lphWaveOut, UINT16 uDeviceID, /************************************************************************** * waveOutClose [MMSYSTEM.405] */ -UINT16 waveOutClose(HWAVEOUT16 hWaveOut) +UINT16 WINAPI waveOutClose(HWAVEOUT16 hWaveOut) { LPWAVEOPENDESC lpDesc; @@ -1634,8 +1637,8 @@ UINT16 waveOutClose(HWAVEOUT16 hWaveOut) /************************************************************************** * waveOutPrepareHeader [MMSYSTEM.406] */ -UINT16 waveOutPrepareHeader(HWAVEOUT16 hWaveOut, - WAVEHDR * lpWaveOutHdr, UINT16 uSize) +UINT16 WINAPI waveOutPrepareHeader(HWAVEOUT16 hWaveOut, + WAVEHDR * lpWaveOutHdr, UINT16 uSize) { LPWAVEOPENDESC lpDesc; @@ -1650,8 +1653,8 @@ UINT16 waveOutPrepareHeader(HWAVEOUT16 hWaveOut, /************************************************************************** * waveOutUnprepareHeader [MMSYSTEM.407] */ -UINT16 waveOutUnprepareHeader(HWAVEOUT16 hWaveOut, - WAVEHDR * lpWaveOutHdr, UINT16 uSize) +UINT16 WINAPI waveOutUnprepareHeader(HWAVEOUT16 hWaveOut, + WAVEHDR * lpWaveOutHdr, UINT16 uSize) { LPWAVEOPENDESC lpDesc; @@ -1666,7 +1669,8 @@ UINT16 waveOutUnprepareHeader(HWAVEOUT16 hWaveOut, /************************************************************************** * waveOutWrite [MMSYSTEM.408] */ -UINT16 waveOutWrite(HWAVEOUT16 hWaveOut, WAVEHDR * lpWaveOutHdr, UINT16 uSize) +UINT16 WINAPI waveOutWrite(HWAVEOUT16 hWaveOut, WAVEHDR * lpWaveOutHdr, + UINT16 uSize) { LPWAVEOPENDESC lpDesc; @@ -1680,7 +1684,7 @@ UINT16 waveOutWrite(HWAVEOUT16 hWaveOut, WAVEHDR * lpWaveOutHdr, UINT16 uSize) /************************************************************************** * waveOutPause [MMSYSTEM.409] */ -UINT16 waveOutPause(HWAVEOUT16 hWaveOut) +UINT16 WINAPI waveOutPause(HWAVEOUT16 hWaveOut) { LPWAVEOPENDESC lpDesc; @@ -1693,7 +1697,7 @@ UINT16 waveOutPause(HWAVEOUT16 hWaveOut) /************************************************************************** * waveOutRestart [MMSYSTEM.410] */ -UINT16 waveOutRestart(HWAVEOUT16 hWaveOut) +UINT16 WINAPI waveOutRestart(HWAVEOUT16 hWaveOut) { LPWAVEOPENDESC lpDesc; @@ -1706,7 +1710,7 @@ UINT16 waveOutRestart(HWAVEOUT16 hWaveOut) /************************************************************************** * waveOutReset [MMSYSTEM.411] */ -UINT16 waveOutReset(HWAVEOUT16 hWaveOut) +UINT16 WINAPI waveOutReset(HWAVEOUT16 hWaveOut) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutReset(%04X)\n", hWaveOut); @@ -1718,7 +1722,8 @@ UINT16 waveOutReset(HWAVEOUT16 hWaveOut) /************************************************************************** * waveOutGetPosition [MMSYSTEM.412] */ -UINT16 waveOutGetPosition(HWAVEOUT16 hWaveOut, MMTIME * lpTime, UINT16 uSize) +UINT16 WINAPI waveOutGetPosition(HWAVEOUT16 hWaveOut, MMTIME * lpTime, + UINT16 uSize) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutGetPosition(%04X, %p, %u);\n", hWaveOut, lpTime, uSize); @@ -1731,7 +1736,7 @@ UINT16 waveOutGetPosition(HWAVEOUT16 hWaveOut, MMTIME * lpTime, UINT16 uSize) /************************************************************************** * waveOutGetPitch [MMSYSTEM.413] */ -UINT16 waveOutGetPitch(HWAVEOUT16 hWaveOut, DWORD * lpdwPitch) +UINT16 WINAPI waveOutGetPitch(HWAVEOUT16 hWaveOut, DWORD * lpdwPitch) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutGetPitch(%04X, %p);\n", hWaveOut, lpdwPitch); @@ -1744,7 +1749,7 @@ UINT16 waveOutGetPitch(HWAVEOUT16 hWaveOut, DWORD * lpdwPitch) /************************************************************************** * waveOutSetPitch [MMSYSTEM.414] */ -UINT16 waveOutSetPitch(HWAVEOUT16 hWaveOut, DWORD dwPitch) +UINT16 WINAPI waveOutSetPitch(HWAVEOUT16 hWaveOut, DWORD dwPitch) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutSetPitch(%04X, %08lX);\n", hWaveOut, dwPitch); @@ -1756,7 +1761,7 @@ UINT16 waveOutSetPitch(HWAVEOUT16 hWaveOut, DWORD dwPitch) /************************************************************************** * waveOutGetVolume [MMSYSTEM.415] */ -UINT16 waveOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) +UINT16 WINAPI waveOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) { dprintf_mmsys(stddeb, "waveOutGetVolume(%04X, %p);\n", uDeviceID, lpdwVolume); return wodMessage(uDeviceID, WODM_GETVOLUME, 0L, (DWORD)lpdwVolume, 0L); @@ -1765,7 +1770,7 @@ UINT16 waveOutGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume) /************************************************************************** * waveOutSetVolume [MMSYSTEM.416] */ -UINT16 waveOutSetVolume(UINT16 uDeviceID, DWORD dwVolume) +UINT16 WINAPI waveOutSetVolume(UINT16 uDeviceID, DWORD dwVolume) { dprintf_mmsys(stddeb, "waveOutSetVolume(%04X, %08lX);\n", uDeviceID, dwVolume); return wodMessage(uDeviceID, WODM_SETVOLUME, 0L, dwVolume, 0L); @@ -1774,7 +1779,7 @@ UINT16 waveOutSetVolume(UINT16 uDeviceID, DWORD dwVolume) /************************************************************************** * waveOutGetPlaybackRate [MMSYSTEM.417] */ -UINT16 waveOutGetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD * lpdwRate) +UINT16 WINAPI waveOutGetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD * lpdwRate) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutGetPlaybackRate(%04X, %p);\n", hWaveOut, lpdwRate); @@ -1787,7 +1792,7 @@ UINT16 waveOutGetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD * lpdwRate) /************************************************************************** * waveOutSetPlaybackRate [MMSYSTEM.418] */ -UINT16 waveOutSetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD dwRate) +UINT16 WINAPI waveOutSetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD dwRate) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutSetPlaybackRate(%04X, %08lX);\n", hWaveOut, dwRate); @@ -1800,7 +1805,7 @@ UINT16 waveOutSetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD dwRate) /************************************************************************** * waveOutBreakLoop [MMSYSTEM.419] */ -UINT16 waveOutBreakLoop(HWAVEOUT16 hWaveOut) +UINT16 WINAPI waveOutBreakLoop(HWAVEOUT16 hWaveOut) { dprintf_mmsys(stddeb, "waveOutBreakLoop(%04X)\n", hWaveOut); return MMSYSERR_INVALHANDLE; @@ -1809,7 +1814,7 @@ UINT16 waveOutBreakLoop(HWAVEOUT16 hWaveOut) /************************************************************************** * waveOutGetID [MMSYSTEM.420] */ -UINT16 waveOutGetID(HWAVEOUT16 hWaveOut, UINT16 * lpuDeviceID) +UINT16 WINAPI waveOutGetID(HWAVEOUT16 hWaveOut, UINT16 * lpuDeviceID) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutGetID(%04X, %p);\n", hWaveOut, lpuDeviceID); @@ -1823,8 +1828,8 @@ UINT16 waveOutGetID(HWAVEOUT16 hWaveOut, UINT16 * lpuDeviceID) /************************************************************************** * waveOutMessage [MMSYSTEM.421] */ -DWORD waveOutMessage(HWAVEOUT16 hWaveOut, UINT16 uMessage, - DWORD dwParam1, DWORD dwParam2) +DWORD WINAPI waveOutMessage(HWAVEOUT16 hWaveOut, UINT16 uMessage, + DWORD dwParam1, DWORD dwParam2) { LPWAVEOPENDESC lpDesc; dprintf_mmsys(stddeb, "waveOutMessage(%04X, %04X, %08lX, %08lX)\n", @@ -1837,7 +1842,7 @@ DWORD waveOutMessage(HWAVEOUT16 hWaveOut, UINT16 uMessage, /************************************************************************** * waveInGetNumDevs [MMSYSTEM.501] */ -UINT16 waveInGetNumDevs() +UINT16 WINAPI waveInGetNumDevs() { UINT16 count = 0; dprintf_mmsys(stddeb, "waveInGetNumDevs\n"); @@ -1850,7 +1855,7 @@ UINT16 waveInGetNumDevs() /************************************************************************** * waveInGetDevCaps [MMSYSTEM.502] */ -UINT16 waveInGetDevCaps(UINT16 uDeviceID, WAVEINCAPS * lpCaps, UINT16 uSize) +UINT16 WINAPI waveInGetDevCaps(UINT16 uDeviceID, WAVEINCAPS * lpCaps, UINT16 uSize) { dprintf_mmsys(stddeb, "waveInGetDevCaps\n"); return widMessage(uDeviceID, WIDM_GETDEVCAPS, 0L, (DWORD)lpCaps, uSize); @@ -1860,7 +1865,7 @@ UINT16 waveInGetDevCaps(UINT16 uDeviceID, WAVEINCAPS * lpCaps, UINT16 uSize) /************************************************************************** * waveInGetErrorText [MMSYSTEM.503] */ -UINT16 waveInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) +UINT16 WINAPI waveInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) { dprintf_mmsys(stddeb, "waveInGetErrorText\n"); return(waveGetErrorText(uError, lpText, uSize)); @@ -1870,8 +1875,9 @@ UINT16 waveInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize) /************************************************************************** * waveInOpen [MMSYSTEM.504] */ -UINT16 waveInOpen(HWAVEIN16 * lphWaveIn, UINT16 uDeviceID, - const LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags) +UINT16 WINAPI waveInOpen(HWAVEIN16 * lphWaveIn, UINT16 uDeviceID, + const LPWAVEFORMAT lpFormat, DWORD dwCallback, + DWORD dwInstance, DWORD dwFlags) { HWAVEIN16 hWaveIn; LPWAVEOPENDESC lpDesc; @@ -1918,7 +1924,7 @@ UINT16 waveInOpen(HWAVEIN16 * lphWaveIn, UINT16 uDeviceID, /************************************************************************** * waveInClose [MMSYSTEM.505] */ -UINT16 waveInClose(HWAVEIN16 hWaveIn) +UINT16 WINAPI waveInClose(HWAVEIN16 hWaveIn) { LPWAVEOPENDESC lpDesc; @@ -1932,8 +1938,8 @@ UINT16 waveInClose(HWAVEIN16 hWaveIn) /************************************************************************** * waveInPrepareHeader [MMSYSTEM.506] */ -UINT16 waveInPrepareHeader(HWAVEIN16 hWaveIn, - WAVEHDR * lpWaveInHdr, UINT16 uSize) +UINT16 WINAPI waveInPrepareHeader(HWAVEIN16 hWaveIn, + WAVEHDR * lpWaveInHdr, UINT16 uSize) { LPWAVEOPENDESC lpDesc; LPWAVEHDR lp32WaveInHdr; @@ -1956,8 +1962,8 @@ UINT16 waveInPrepareHeader(HWAVEIN16 hWaveIn, /************************************************************************** * waveInUnprepareHeader [MMSYSTEM.507] */ -UINT16 waveInUnprepareHeader(HWAVEIN16 hWaveIn, - WAVEHDR * lpWaveInHdr, UINT16 uSize) +UINT16 WINAPI waveInUnprepareHeader(HWAVEIN16 hWaveIn, + WAVEHDR * lpWaveInHdr, UINT16 uSize) { LPWAVEOPENDESC lpDesc; LPWAVEHDR lp32WaveInHdr; @@ -1979,8 +1985,8 @@ UINT16 waveInUnprepareHeader(HWAVEIN16 hWaveIn, /************************************************************************** * waveInAddBuffer [MMSYSTEM.508] */ -UINT16 waveInAddBuffer(HWAVEIN16 hWaveIn, - WAVEHDR * lpWaveInHdr, UINT16 uSize) +UINT16 WINAPI waveInAddBuffer(HWAVEIN16 hWaveIn, + WAVEHDR * lpWaveInHdr, UINT16 uSize) { LPWAVEOPENDESC lpDesc; LPWAVEHDR lp32WaveInHdr; @@ -2002,7 +2008,7 @@ UINT16 waveInAddBuffer(HWAVEIN16 hWaveIn, /************************************************************************** * waveInStart [MMSYSTEM.509] */ -UINT16 waveInStart(HWAVEIN16 hWaveIn) +UINT16 WINAPI waveInStart(HWAVEIN16 hWaveIn) { LPWAVEOPENDESC lpDesc; @@ -2016,7 +2022,7 @@ UINT16 waveInStart(HWAVEIN16 hWaveIn) /************************************************************************** * waveInStop [MMSYSTEM.510] */ -UINT16 waveInStop(HWAVEIN16 hWaveIn) +UINT16 WINAPI waveInStop(HWAVEIN16 hWaveIn) { LPWAVEOPENDESC lpDesc; @@ -2030,7 +2036,7 @@ UINT16 waveInStop(HWAVEIN16 hWaveIn) /************************************************************************** * waveInReset [MMSYSTEM.511] */ -UINT16 waveInReset(HWAVEIN16 hWaveIn) +UINT16 WINAPI waveInReset(HWAVEIN16 hWaveIn) { LPWAVEOPENDESC lpDesc; @@ -2044,7 +2050,8 @@ UINT16 waveInReset(HWAVEIN16 hWaveIn) /************************************************************************** * waveInGetPosition [MMSYSTEM.512] */ -UINT16 waveInGetPosition(HWAVEIN16 hWaveIn, MMTIME * lpTime, UINT16 uSize) +UINT16 WINAPI waveInGetPosition(HWAVEIN16 hWaveIn, MMTIME * lpTime, + UINT16 uSize) { LPWAVEOPENDESC lpDesc; @@ -2059,7 +2066,7 @@ UINT16 waveInGetPosition(HWAVEIN16 hWaveIn, MMTIME * lpTime, UINT16 uSize) /************************************************************************** * waveInGetID [MMSYSTEM.513] */ -UINT16 waveInGetID(HWAVEIN16 hWaveIn, UINT16 * lpuDeviceID) +UINT16 WINAPI waveInGetID(HWAVEIN16 hWaveIn, UINT16 * lpuDeviceID) { LPWAVEOPENDESC lpDesc; @@ -2075,8 +2082,8 @@ UINT16 waveInGetID(HWAVEIN16 hWaveIn, UINT16 * lpuDeviceID) /************************************************************************** * waveInMessage [MMSYSTEM.514] */ -DWORD waveInMessage(HWAVEIN16 hWaveIn, UINT16 uMessage, - DWORD dwParam1, DWORD dwParam2) +DWORD WINAPI waveInMessage(HWAVEIN16 hWaveIn, UINT16 uMessage, + DWORD dwParam1, DWORD dwParam2) { LPWAVEOPENDESC lpDesc; @@ -2091,7 +2098,8 @@ DWORD waveInMessage(HWAVEIN16 hWaveIn, UINT16 uMessage, /************************************************************************** * mmioOpen [MMSYSTEM.1210] */ -HMMIO16 mmioOpen(LPSTR szFileName, MMIOINFO * lpmmioinfo, DWORD dwOpenFlags) +HMMIO16 WINAPI mmioOpen(LPSTR szFileName, MMIOINFO * lpmmioinfo, + DWORD dwOpenFlags) { HFILE32 hFile; HMMIO16 hmmio; @@ -2121,7 +2129,7 @@ HMMIO16 mmioOpen(LPSTR szFileName, MMIOINFO * lpmmioinfo, DWORD dwOpenFlags) /************************************************************************** * mmioClose [MMSYSTEM.1211] */ -UINT16 mmioClose(HMMIO16 hmmio, UINT16 uFlags) +UINT16 WINAPI mmioClose(HMMIO16 hmmio, UINT16 uFlags) { LPMMIOINFO lpmminfo; dprintf_mmio(stddeb, "mmioClose(%04X, %04X);\n", hmmio, uFlags); @@ -2138,7 +2146,7 @@ UINT16 mmioClose(HMMIO16 hmmio, UINT16 uFlags) /************************************************************************** * mmioRead [MMSYSTEM.1212] */ -LONG mmioRead(HMMIO16 hmmio, HPSTR pch, LONG cch) +LONG WINAPI mmioRead(HMMIO16 hmmio, HPSTR pch, LONG cch) { LONG count; LPMMIOINFO lpmminfo; @@ -2156,7 +2164,7 @@ LONG mmioRead(HMMIO16 hmmio, HPSTR pch, LONG cch) /************************************************************************** * mmioWrite [MMSYSTEM.1213] */ -LONG mmioWrite(HMMIO16 hmmio, HPCSTR pch, LONG cch) +LONG WINAPI mmioWrite(HMMIO16 hmmio, HPCSTR pch, LONG cch) { LONG count; LPMMIOINFO lpmminfo; @@ -2171,7 +2179,7 @@ LONG mmioWrite(HMMIO16 hmmio, HPCSTR pch, LONG cch) /************************************************************************** * mmioSeek [MMSYSTEM.1214] */ -LONG mmioSeek(HMMIO16 hmmio, LONG lOffset, int iOrigin) +LONG WINAPI mmioSeek(HMMIO16 hmmio, LONG lOffset, int iOrigin) { int count; LPMMIOINFO lpmminfo; @@ -2189,7 +2197,7 @@ LONG mmioSeek(HMMIO16 hmmio, LONG lOffset, int iOrigin) /************************************************************************** * mmioGetInfo [MMSYSTEM.1215] */ -UINT16 mmioGetInfo(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags) +UINT16 WINAPI mmioGetInfo(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags) { LPMMIOINFO lpmminfo; dprintf_mmio(stddeb, "mmioGetInfo\n"); @@ -2203,7 +2211,7 @@ UINT16 mmioGetInfo(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags) /************************************************************************** * mmioSetInfo [MMSYSTEM.1216] */ -UINT16 mmioSetInfo(HMMIO16 hmmio, const MMIOINFO * lpmmioinfo, UINT16 uFlags) +UINT16 WINAPI mmioSetInfo(HMMIO16 hmmio, const MMIOINFO * lpmmioinfo, UINT16 uFlags) { LPMMIOINFO lpmminfo; dprintf_mmio(stddeb, "mmioSetInfo\n"); @@ -2216,8 +2224,8 @@ UINT16 mmioSetInfo(HMMIO16 hmmio, const MMIOINFO * lpmmioinfo, UINT16 uFlags) /************************************************************************** * mmioSetBuffer [MMSYSTEM.1217] */ -UINT16 mmioSetBuffer(HMMIO16 hmmio, LPSTR pchBuffer, - LONG cchBuffer, UINT16 uFlags) +UINT16 WINAPI mmioSetBuffer(HMMIO16 hmmio, LPSTR pchBuffer, + LONG cchBuffer, UINT16 uFlags) { dprintf_mmio(stddeb, "mmioSetBuffer // empty stub \n"); return 0; @@ -2226,7 +2234,7 @@ UINT16 mmioSetBuffer(HMMIO16 hmmio, LPSTR pchBuffer, /************************************************************************** * mmioFlush [MMSYSTEM.1218] */ -UINT16 mmioFlush(HMMIO16 hmmio, UINT16 uFlags) +UINT16 WINAPI mmioFlush(HMMIO16 hmmio, UINT16 uFlags) { LPMMIOINFO lpmminfo; dprintf_mmio(stddeb, "mmioFlush(%04X, %04X)\n", hmmio, uFlags); @@ -2239,7 +2247,7 @@ UINT16 mmioFlush(HMMIO16 hmmio, UINT16 uFlags) /************************************************************************** * mmioAdvance [MMSYSTEM.1219] */ -UINT16 mmioAdvance(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags) +UINT16 WINAPI mmioAdvance(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags) { int count = 0; LPMMIOINFO lpmminfo; @@ -2263,7 +2271,7 @@ UINT16 mmioAdvance(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags) /************************************************************************** * mmioStringToFOURCC [MMSYSTEM.1220] */ -FOURCC mmioStringToFOURCC(LPCSTR sz, UINT16 uFlags) +FOURCC WINAPI mmioStringToFOURCC(LPCSTR sz, UINT16 uFlags) { dprintf_mmio(stddeb, "mmioStringToFOURCC // empty stub \n"); return 0; @@ -2272,8 +2280,8 @@ FOURCC mmioStringToFOURCC(LPCSTR sz, UINT16 uFlags) /************************************************************************** * mmioInstallIOProc [MMSYSTEM.1221] */ -LPMMIOPROC mmioInstallIOProc(FOURCC fccIOProc, - LPMMIOPROC pIOProc, DWORD dwFlags) +LPMMIOPROC WINAPI mmioInstallIOProc(FOURCC fccIOProc, + LPMMIOPROC pIOProc, DWORD dwFlags) { dprintf_mmio(stddeb, "mmioInstallIOProc // empty stub \n"); return 0; @@ -2282,8 +2290,8 @@ LPMMIOPROC mmioInstallIOProc(FOURCC fccIOProc, /************************************************************************** * mmioSendMessage [MMSYSTEM.1222] */ -LRESULT mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage, - LPARAM lParam1, LPARAM lParam2) +LRESULT WINAPI mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage, + LPARAM lParam1, LPARAM lParam2) { dprintf_mmio(stddeb, "mmioSendMessage // empty stub \n"); return 0; @@ -2292,8 +2300,8 @@ LRESULT mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage, /************************************************************************** * mmioDescend [MMSYSTEM.1223] */ -UINT16 mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck, - const MMCKINFO * lpckParent, UINT16 uFlags) +UINT16 WINAPI mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck, + const MMCKINFO * lpckParent, UINT16 uFlags) { DWORD dwfcc, dwOldPos; LPMMIOINFO lpmminfo; @@ -2367,7 +2375,7 @@ UINT16 mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck, /************************************************************************** * mmioAscend [MMSYSTEM.1224] */ -UINT16 mmioAscend(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags) +UINT16 WINAPI mmioAscend(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags) { dprintf_mmio(stddeb, "mmioAscend // empty stub !\n"); return 0; @@ -2376,7 +2384,7 @@ UINT16 mmioAscend(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags) /************************************************************************** * mmioCreateChunk [MMSYSTEM.1225] */ -UINT16 mmioCreateChunk(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags) +UINT16 WINAPI mmioCreateChunk(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags) { dprintf_mmio(stddeb, "mmioCreateChunk // empty stub \n"); return 0; @@ -2386,8 +2394,8 @@ UINT16 mmioCreateChunk(HMMIO16 hmmio, MMCKINFO * lpck, UINT16 uFlags) /************************************************************************** * mmioRename [MMSYSTEM.1226] */ -UINT16 mmioRename(LPCSTR szFileName, LPCSTR szNewFileName, - MMIOINFO * lpmmioinfo, DWORD dwRenameFlags) +UINT16 WINAPI mmioRename(LPCSTR szFileName, LPCSTR szNewFileName, + MMIOINFO * lpmmioinfo, DWORD dwRenameFlags) { dprintf_mmio(stddeb, "mmioRename('%s', '%s', %p, %08lX); // empty stub \n", szFileName, szNewFileName, lpmmioinfo, dwRenameFlags); @@ -2397,7 +2405,7 @@ UINT16 mmioRename(LPCSTR szFileName, LPCSTR szNewFileName, /************************************************************************** * DrvOpen [MMSYSTEM.1100] */ -HDRVR16 DrvOpen(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam) +HDRVR16 WINAPI DrvOpen(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam) { dprintf_mmsys(stddeb, "DrvOpen('%s', '%s', %08lX);\n", lpDriverName, lpSectionName, lParam); @@ -2408,7 +2416,7 @@ HDRVR16 DrvOpen(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam) /************************************************************************** * DrvClose [MMSYSTEM.1101] */ -LRESULT DrvClose(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2) +LRESULT WINAPI DrvClose(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2) { dprintf_mmsys(stddeb, "DrvClose(%04X, %08lX, %08lX);\n", hDrvr, lParam1, lParam2); return CloseDriver(hDrvr, lParam1, lParam2); @@ -2418,7 +2426,8 @@ LRESULT DrvClose(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2) /************************************************************************** * DrvSendMessage [MMSYSTEM.1102] */ -LRESULT DrvSendMessage(HDRVR16 hDriver, WORD msg, LPARAM lParam1, LPARAM lParam2) +LRESULT WINAPI DrvSendMessage(HDRVR16 hDriver, WORD msg, LPARAM lParam1, + LPARAM lParam2) { DWORD dwDriverID = 0; dprintf_mmsys(stddeb, "DrvSendMessage(%04X, %04X, %08lX, %08lX);\n", @@ -2429,7 +2438,7 @@ LRESULT DrvSendMessage(HDRVR16 hDriver, WORD msg, LPARAM lParam1, LPARAM lParam2 /************************************************************************** * DrvGetModuleHandle [MMSYSTEM.1103] */ -HANDLE16 DrvGetModuleHandle(HDRVR16 hDrvr) +HANDLE16 WINAPI DrvGetModuleHandle(HDRVR16 hDrvr) { dprintf_mmsys(stddeb, "DrvGetModuleHandle(%04X);\n", hDrvr); return 0; @@ -2439,8 +2448,8 @@ HANDLE16 DrvGetModuleHandle(HDRVR16 hDrvr) /************************************************************************** * DrvDefDriverProc [MMSYSTEM.1104] */ -LRESULT DrvDefDriverProc(DWORD dwDriverID, HDRVR16 hDriv, WORD wMsg, - DWORD dwParam1, DWORD dwParam2) +LRESULT WINAPI DrvDefDriverProc(DWORD dwDriverID, HDRVR16 hDriv, WORD wMsg, + DWORD dwParam1, DWORD dwParam2) { return DefDriverProc(dwDriverID, hDriv, wMsg, dwParam1, dwParam2); } diff --git a/multimedia/time.c b/multimedia/time.c index d8c59170417..6242f857440 100644 --- a/multimedia/time.c +++ b/multimedia/time.c @@ -114,7 +114,7 @@ static void StartMMTime() /************************************************************************** * timeGetSystemTime [MMSYSTEM.601] */ -WORD timeGetSystemTime(LPMMTIME lpTime, WORD wSize) +WORD WINAPI timeGetSystemTime(LPMMTIME lpTime, WORD wSize) { dprintf_mmsys(stddeb, "timeGetSystemTime(%p, %u);\n", lpTime, wSize); if (!mmTimeStarted) @@ -127,8 +127,8 @@ WORD timeGetSystemTime(LPMMTIME lpTime, WORD wSize) /************************************************************************** * timeSetEvent [MMSYSTEM.602] */ -WORD timeSetEvent(WORD wDelay, WORD wResol, LPTIMECALLBACK lpFunc, - DWORD dwUser, WORD wFlags) +WORD WINAPI timeSetEvent(WORD wDelay, WORD wResol, LPTIMECALLBACK lpFunc, + DWORD dwUser, WORD wFlags) { WORD wNewID = 0; LPTIMERENTRY lpNewTimer; @@ -171,7 +171,7 @@ WORD timeSetEvent(WORD wDelay, WORD wResol, LPTIMECALLBACK lpFunc, /************************************************************************** * timeKillEvent [MMSYSTEM.603] */ -WORD timeKillEvent(WORD wID) +WORD WINAPI timeKillEvent(WORD wID) { LPTIMERENTRY lpTimer = lpTimerList; while (lpTimer != NULL) { @@ -193,7 +193,7 @@ WORD timeKillEvent(WORD wID) /************************************************************************** * timeGetDevCaps [MMSYSTEM.604] */ -WORD timeGetDevCaps(LPTIMECAPS lpCaps, WORD wSize) +WORD WINAPI timeGetDevCaps(LPTIMECAPS lpCaps, WORD wSize) { dprintf_mmtime(stddeb, "timeGetDevCaps(%p, %u) !\n", lpCaps, wSize); if (!mmTimeStarted) @@ -206,7 +206,7 @@ WORD timeGetDevCaps(LPTIMECAPS lpCaps, WORD wSize) /************************************************************************** * timeBeginPeriod [MMSYSTEM.605] */ -WORD timeBeginPeriod(WORD wPeriod) +WORD WINAPI timeBeginPeriod(WORD wPeriod) { dprintf_mmtime(stddeb, "timeBeginPeriod(%u) !\n", wPeriod); if (!mmTimeStarted) @@ -219,7 +219,7 @@ WORD timeBeginPeriod(WORD wPeriod) /************************************************************************** * timeEndPeriod [MMSYSTEM.606] */ -WORD timeEndPeriod(WORD wPeriod) +WORD WINAPI timeEndPeriod(WORD wPeriod) { dprintf_mmtime(stddeb, "timeEndPeriod(%u) !\n", wPeriod); if (wPeriod < MMSYSTIME_MININTERVAL || wPeriod > MMSYSTIME_MAXINTERVAL) @@ -230,7 +230,7 @@ WORD timeEndPeriod(WORD wPeriod) /************************************************************************** * timeGetTime [MMSYSTEM.607] */ -DWORD timeGetTime() +DWORD WINAPI timeGetTime() { dprintf_mmtime(stddeb, "timeGetTime(); !\n"); if (!mmTimeStarted) diff --git a/objects/bitmap.c b/objects/bitmap.c index fdb59d24f24..6fe7a98539b 100644 --- a/objects/bitmap.c +++ b/objects/bitmap.c @@ -29,11 +29,32 @@ GC BITMAP_monoGC = 0, BITMAP_colorGC = 0; extern void CLIPPING_UpdateGCRegion( DC * dc ); /* objects/clipping.c */ +/*********************************************************************** + * XPutImage_wrapper + * + * Wrapper to call XPutImage with CALL_LARGE_STACK. + */ + +struct XPutImage_descr +{ + BITMAPOBJ *bmp; + XImage *image; + INT32 width; + INT32 height; +}; + +static int XPutImage_wrapper( const struct XPutImage_descr *descr ) +{ + return XPutImage( display, descr->bmp->pixmap, BITMAP_GC(descr->bmp), + descr->image, 0, 0, 0, 0, descr->width, descr->height ); +} + + /*********************************************************************** * CreateBitmap16 (GDI.48) */ -HBITMAP16 CreateBitmap16( INT16 width, INT16 height, UINT16 planes, - UINT16 bpp, LPCVOID bits ) +HBITMAP16 WINAPI CreateBitmap16( INT16 width, INT16 height, UINT16 planes, + UINT16 bpp, LPCVOID bits ) { return CreateBitmap32( width, height, planes, bpp, bits ); } @@ -42,8 +63,8 @@ HBITMAP16 CreateBitmap16( INT16 width, INT16 height, UINT16 planes, /*********************************************************************** * CreateBitmap32 (GDI32.25) */ -HBITMAP32 CreateBitmap32( INT32 width, INT32 height, UINT32 planes, - UINT32 bpp, LPCVOID bits ) +HBITMAP32 WINAPI CreateBitmap32( INT32 width, INT32 height, UINT32 planes, + UINT32 bpp, LPCVOID bits ) { BITMAPOBJ * bmpObjPtr; HBITMAP32 hbitmap; @@ -63,7 +84,7 @@ HBITMAP32 CreateBitmap32( INT32 width, INT32 height, UINT32 planes, /* Create the BITMAPOBJ */ hbitmap = GDI_AllocObject( sizeof(BITMAPOBJ), BITMAP_MAGIC ); if (!hbitmap) return 0; - bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_LIN_ADDR( hbitmap ); + bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_LOCK( hbitmap ); bmpObjPtr->size.cx = 0; bmpObjPtr->size.cy = 0; @@ -85,6 +106,7 @@ HBITMAP32 CreateBitmap32( INT32 width, INT32 height, UINT32 planes, else if (bits) /* Set bitmap bits */ SetBitmapBits32( hbitmap, height * bmpObjPtr->bitmap.bmWidthBytes, bits ); + GDI_HEAP_UNLOCK( hbitmap ); return hbitmap; } @@ -92,7 +114,7 @@ HBITMAP32 CreateBitmap32( INT32 width, INT32 height, UINT32 planes, /*********************************************************************** * CreateCompatibleBitmap16 (GDI.51) */ -HBITMAP16 CreateCompatibleBitmap16( HDC16 hdc, INT16 width, INT16 height ) +HBITMAP16 WINAPI CreateCompatibleBitmap16(HDC16 hdc, INT16 width, INT16 height) { return CreateCompatibleBitmap32( hdc, width, height ); } @@ -101,7 +123,7 @@ HBITMAP16 CreateCompatibleBitmap16( HDC16 hdc, INT16 width, INT16 height ) /*********************************************************************** * CreateCompatibleBitmap32 (GDI32.30) */ -HBITMAP32 CreateCompatibleBitmap32( HDC32 hdc, INT32 width, INT32 height ) +HBITMAP32 WINAPI CreateCompatibleBitmap32(HDC32 hdc, INT32 width, INT32 height) { HBITMAP32 hbmpRet = 0; DC *dc; @@ -118,7 +140,7 @@ HBITMAP32 CreateCompatibleBitmap32( HDC32 hdc, INT32 width, INT32 height ) /*********************************************************************** * CreateBitmapIndirect16 (GDI.49) */ -HBITMAP16 CreateBitmapIndirect16( const BITMAP16 * bmp ) +HBITMAP16 WINAPI CreateBitmapIndirect16( const BITMAP16 * bmp ) { return CreateBitmap16( bmp->bmWidth, bmp->bmHeight, bmp->bmPlanes, bmp->bmBitsPixel, PTR_SEG_TO_LIN( bmp->bmBits ) ); @@ -128,17 +150,29 @@ HBITMAP16 CreateBitmapIndirect16( const BITMAP16 * bmp ) /*********************************************************************** * CreateBitmapIndirect32 (GDI32.26) */ -HBITMAP32 CreateBitmapIndirect32( const BITMAP32 * bmp ) +HBITMAP32 WINAPI CreateBitmapIndirect32( const BITMAP32 * bmp ) { return CreateBitmap32( bmp->bmWidth, bmp->bmHeight, bmp->bmPlanes, bmp->bmBitsPixel, bmp->bmBits ); } +/*********************************************************************** + * BITMAP_GetXImage + * + * Get an X image for a bitmap. For use with CALL_LARGE_STACK. + */ +XImage *BITMAP_GetXImage( const BITMAPOBJ *bmp ) +{ + return XGetImage( display, bmp->pixmap, 0, 0, bmp->bitmap.bmWidth, + bmp->bitmap.bmHeight, AllPlanes, ZPixmap ); +} + + /*********************************************************************** * GetBitmapBits16 (GDI.74) */ -LONG GetBitmapBits16( HBITMAP16 hbitmap, LONG count, LPVOID buffer ) +LONG WINAPI GetBitmapBits16( HBITMAP16 hbitmap, LONG count, LPVOID buffer ) { return GetBitmapBits32( hbitmap, count, buffer ); } @@ -147,12 +181,12 @@ LONG GetBitmapBits16( HBITMAP16 hbitmap, LONG count, LPVOID buffer ) /*********************************************************************** * GetBitmapBits32 (GDI32.143) */ -LONG GetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPVOID buffer ) +LONG WINAPI GetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPVOID buffer ) { BITMAPOBJ * bmp; - LONG height,widthbytes; + LONG height, old_height; XImage * image; - LPBYTE tmpbuffer,tbuf; + LPBYTE tbuf; int h,w,pad; /* KLUDGE! */ @@ -169,7 +203,11 @@ LONG GetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPVOID buffer ) dprintf_bitmap(stddeb, "GetBitmapBits: %dx%d %d colors %p fetched height: %ld\n", bmp->bitmap.bmWidth, bmp->bitmap.bmHeight, 1 << bmp->bitmap.bmBitsPixel, buffer, height ); - if (!height) return 0; + if (!height) + { + GDI_HEAP_UNLOCK( hbitmap ); + return 0; + } switch (bmp->bitmap.bmBitsPixel) { case 1: @@ -198,19 +236,16 @@ LONG GetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPVOID buffer ) fprintf(stderr,"GetBitMapBits32: unknown depth %d, please report.\n", bmp->bitmap.bmBitsPixel ); + GDI_HEAP_UNLOCK( hbitmap ); return 0; } - widthbytes = DIB_GetXImageWidthBytes(bmp->bitmap.bmWidth,bmp->bitmap.bmBitsPixel); - tmpbuffer = (LPBYTE)xmalloc(widthbytes*height); - image = XCreateImage( display, DefaultVisualOfScreen(screen), - bmp->bitmap.bmBitsPixel, ZPixmap, 0, tmpbuffer, - bmp->bitmap.bmWidth,height,32,widthbytes - ); - - CallTo32_LargeStack( (int(*)())XGetSubImage, 11, - display, bmp->pixmap, 0, 0, bmp->bitmap.bmWidth, - height, AllPlanes, ZPixmap, image, 0, 0 ); + /* Hack: change the bitmap height temporarily to avoid */ + /* getting unnecessary bitmap rows. */ + old_height = bmp->bitmap.bmHeight; + bmp->bitmap.bmHeight = height; + image = (XImage *)CALL_LARGE_STACK( BITMAP_GetXImage, bmp ); + bmp->bitmap.bmHeight = old_height; /* copy XImage to 16 bit padded image buffer with real bitsperpixel */ @@ -277,7 +312,8 @@ LONG GetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPVOID buffer ) tbuf += pad; } } - XDestroyImage( image ); /* frees tbuffer too */ + XDestroyImage( image ); + GDI_HEAP_UNLOCK( hbitmap ); return height * bmp->bitmap.bmWidthBytes; } @@ -285,7 +321,7 @@ LONG GetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPVOID buffer ) /*********************************************************************** * SetBitmapBits16 (GDI.106) */ -LONG SetBitmapBits16( HBITMAP16 hbitmap, LONG count, LPCVOID buffer ) +LONG WINAPI SetBitmapBits16( HBITMAP16 hbitmap, LONG count, LPCVOID buffer ) { return SetBitmapBits32( hbitmap, count, buffer ); } @@ -294,8 +330,9 @@ LONG SetBitmapBits16( HBITMAP16 hbitmap, LONG count, LPCVOID buffer ) /*********************************************************************** * SetBitmapBits32 (GDI32.303) */ -LONG SetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPCVOID buffer ) +LONG WINAPI SetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPCVOID buffer ) { + struct XPutImage_descr descr; BITMAPOBJ * bmp; LONG height; XImage * image; @@ -317,8 +354,12 @@ LONG SetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPCVOID buffer ) /* Only set entire lines */ height = count / bmp->bitmap.bmWidthBytes; if (height > bmp->bitmap.bmHeight) height = bmp->bitmap.bmHeight; - if (!height) return 0; - + if (!height) + { + GDI_HEAP_UNLOCK( hbitmap ); + return 0; + } + switch (bmp->bitmap.bmBitsPixel) { case 1: if (!(bmp->bitmap.bmWidth & 15)) @@ -416,10 +457,14 @@ LONG SetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPCVOID buffer ) break; } - CallTo32_LargeStack( XPutImage, 10, - display, bmp->pixmap, BITMAP_GC(bmp), image, 0, 0, - 0, 0, bmp->bitmap.bmWidth, height ); + descr.bmp = bmp; + descr.image = image; + descr.width = bmp->bitmap.bmWidth; + descr.height = height; + CALL_LARGE_STACK( XPutImage_wrapper, &descr ); + XDestroyImage( image ); /* frees tmpbuffer too */ + GDI_HEAP_UNLOCK( hbitmap ); return height * bmp->bitmap.bmWidthBytes; } @@ -429,10 +474,9 @@ LONG SetBitmapBits32( HBITMAP32 hbitmap, LONG count, LPCVOID buffer ) * defines in windows.h */ -HANDLE32 LoadImage32A( - HINSTANCE32 hinst,LPCSTR name,UINT32 type,INT32 desiredx, - INT32 desiredy,UINT32 loadflags -) { +HANDLE32 WINAPI LoadImage32A( HINSTANCE32 hinst, LPCSTR name, UINT32 type, + INT32 desiredx, INT32 desiredy, UINT32 loadflags) +{ if (HIWORD(name)) { dprintf_resource(stddeb,"LoadImage32A(0x%04x,%s,%d,%d,%d,0x%08x)\n", hinst,name,type,desiredx,desiredy,loadflags @@ -459,8 +503,8 @@ HANDLE32 LoadImage32A( * FIXME: implementation still lacks nearly all features, see LR_* * defines in windows.h */ -HANDLE32 CopyImage32( HANDLE32 hnd, UINT32 type, INT32 desiredx, - INT32 desiredy, UINT32 flags ) +HANDLE32 WINAPI CopyImage32( HANDLE32 hnd, UINT32 type, INT32 desiredx, + INT32 desiredy, UINT32 flags ) { switch (type) { @@ -478,7 +522,7 @@ HANDLE32 CopyImage32( HANDLE32 hnd, UINT32 type, INT32 desiredx, /********************************************************************** * LoadBitmap16 (USER.175) */ -HBITMAP16 LoadBitmap16( HINSTANCE16 instance, SEGPTR name ) +HBITMAP16 WINAPI LoadBitmap16( HINSTANCE16 instance, SEGPTR name ) { HBITMAP32 hbitmap = 0; HDC32 hdc; @@ -520,7 +564,7 @@ HBITMAP16 LoadBitmap16( HINSTANCE16 instance, SEGPTR name ) /********************************************************************** * LoadBitmap32W (USER32.357) */ -HBITMAP32 LoadBitmap32W( HINSTANCE32 instance, LPCWSTR name ) +HBITMAP32 WINAPI LoadBitmap32W( HINSTANCE32 instance, LPCWSTR name ) { HBITMAP32 hbitmap = 0; HDC32 hdc; @@ -553,7 +597,7 @@ HBITMAP32 LoadBitmap32W( HINSTANCE32 instance, LPCWSTR name ) /********************************************************************** * LoadBitmap32A (USER32.356) */ -HBITMAP32 LoadBitmap32A( HINSTANCE32 instance, LPCSTR name ) +HBITMAP32 WINAPI LoadBitmap32A( HINSTANCE32 instance, LPCSTR name ) { HBITMAP32 res; if (!HIWORD(name)) res = LoadBitmap32W( instance, (LPWSTR)name ); @@ -629,7 +673,8 @@ INT32 BITMAP_GetObject32( BITMAPOBJ * bmp, INT32 count, LPVOID buffer ) /*********************************************************************** * CreateDiscardableBitmap16 (GDI.156) */ -HBITMAP16 CreateDiscardableBitmap16( HDC16 hdc, INT16 width, INT16 height ) +HBITMAP16 WINAPI CreateDiscardableBitmap16( HDC16 hdc, INT16 width, + INT16 height ) { return CreateCompatibleBitmap16( hdc, width, height ); } @@ -638,7 +683,8 @@ HBITMAP16 CreateDiscardableBitmap16( HDC16 hdc, INT16 width, INT16 height ) /*********************************************************************** * CreateDiscardableBitmap32 (GDI32.38) */ -HBITMAP32 CreateDiscardableBitmap32( HDC32 hdc, INT32 width, INT32 height ) +HBITMAP32 WINAPI CreateDiscardableBitmap32( HDC32 hdc, INT32 width, + INT32 height ) { return CreateCompatibleBitmap32( hdc, width, height ); } @@ -647,11 +693,12 @@ HBITMAP32 CreateDiscardableBitmap32( HDC32 hdc, INT32 width, INT32 height ) /*********************************************************************** * GetBitmapDimensionEx16 (GDI.468) */ -BOOL16 GetBitmapDimensionEx16( HBITMAP16 hbitmap, LPSIZE16 size ) +BOOL16 WINAPI GetBitmapDimensionEx16( HBITMAP16 hbitmap, LPSIZE16 size ) { BITMAPOBJ * bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC ); if (!bmp) return FALSE; *size = bmp->size; + GDI_HEAP_UNLOCK( hbitmap ); return TRUE; } @@ -659,12 +706,13 @@ BOOL16 GetBitmapDimensionEx16( HBITMAP16 hbitmap, LPSIZE16 size ) /*********************************************************************** * GetBitmapDimensionEx32 (GDI32.144) */ -BOOL32 GetBitmapDimensionEx32( HBITMAP32 hbitmap, LPSIZE32 size ) +BOOL32 WINAPI GetBitmapDimensionEx32( HBITMAP32 hbitmap, LPSIZE32 size ) { BITMAPOBJ * bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC ); if (!bmp) return FALSE; size->cx = (INT32)bmp->size.cx; size->cy = (INT32)bmp->size.cy; + GDI_HEAP_UNLOCK( hbitmap ); return TRUE; } @@ -672,7 +720,7 @@ BOOL32 GetBitmapDimensionEx32( HBITMAP32 hbitmap, LPSIZE32 size ) /*********************************************************************** * GetBitmapDimension (GDI.162) */ -DWORD GetBitmapDimension( HBITMAP16 hbitmap ) +DWORD WINAPI GetBitmapDimension( HBITMAP16 hbitmap ) { SIZE16 size; if (!GetBitmapDimensionEx16( hbitmap, &size )) return 0; @@ -683,14 +731,15 @@ DWORD GetBitmapDimension( HBITMAP16 hbitmap ) /*********************************************************************** * SetBitmapDimensionEx16 (GDI.478) */ -BOOL16 SetBitmapDimensionEx16( HBITMAP16 hbitmap, INT16 x, INT16 y, - LPSIZE16 prevSize ) +BOOL16 WINAPI SetBitmapDimensionEx16( HBITMAP16 hbitmap, INT16 x, INT16 y, + LPSIZE16 prevSize ) { BITMAPOBJ * bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC ); if (!bmp) return FALSE; if (prevSize) *prevSize = bmp->size; bmp->size.cx = x; bmp->size.cy = y; + GDI_HEAP_UNLOCK( hbitmap ); return TRUE; } @@ -698,14 +747,15 @@ BOOL16 SetBitmapDimensionEx16( HBITMAP16 hbitmap, INT16 x, INT16 y, /*********************************************************************** * SetBitmapDimensionEx32 (GDI32.304) */ -BOOL32 SetBitmapDimensionEx32( HBITMAP32 hbitmap, INT32 x, INT32 y, - LPSIZE32 prevSize ) +BOOL32 WINAPI SetBitmapDimensionEx32( HBITMAP32 hbitmap, INT32 x, INT32 y, + LPSIZE32 prevSize ) { BITMAPOBJ * bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC ); if (!bmp) return FALSE; if (prevSize) CONV_SIZE16TO32( &bmp->size, prevSize ); bmp->size.cx = (INT16)x; bmp->size.cy = (INT16)y; + GDI_HEAP_UNLOCK( hbitmap ); return TRUE; } @@ -713,9 +763,10 @@ BOOL32 SetBitmapDimensionEx32( HBITMAP32 hbitmap, INT32 x, INT32 y, /*********************************************************************** * SetBitmapDimension (GDI.163) */ -DWORD SetBitmapDimension( HBITMAP16 hbitmap, INT16 x, INT16 y ) +DWORD WINAPI SetBitmapDimension( HBITMAP16 hbitmap, INT16 x, INT16 y ) { SIZE16 size; if (!SetBitmapDimensionEx16( hbitmap, x, y, &size )) return 0; return MAKELONG( size.cx, size.cy ); } + diff --git a/objects/brush.c b/objects/brush.c index 4a0600582ea..5f216f211c3 100644 --- a/objects/brush.c +++ b/objects/brush.c @@ -16,15 +16,16 @@ /*********************************************************************** * CreateBrushIndirect16 (GDI.50) */ -HBRUSH16 CreateBrushIndirect16( const LOGBRUSH16 * brush ) +HBRUSH16 WINAPI CreateBrushIndirect16( const LOGBRUSH16 * brush ) { BRUSHOBJ * brushPtr; HBRUSH16 hbrush = GDI_AllocObject( sizeof(BRUSHOBJ), BRUSH_MAGIC ); if (!hbrush) return 0; - brushPtr = (BRUSHOBJ *) GDI_HEAP_LIN_ADDR( hbrush ); + brushPtr = (BRUSHOBJ *) GDI_HEAP_LOCK( hbrush ); brushPtr->logbrush.lbStyle = brush->lbStyle; brushPtr->logbrush.lbColor = brush->lbColor; brushPtr->logbrush.lbHatch = brush->lbHatch; + GDI_HEAP_UNLOCK( hbrush ); return hbrush; } @@ -32,15 +33,16 @@ HBRUSH16 CreateBrushIndirect16( const LOGBRUSH16 * brush ) /*********************************************************************** * CreateBrushIndirect32 (GDI32.27) */ -HBRUSH32 CreateBrushIndirect32( const LOGBRUSH32 * brush ) +HBRUSH32 WINAPI CreateBrushIndirect32( const LOGBRUSH32 * brush ) { BRUSHOBJ * brushPtr; HBRUSH32 hbrush = GDI_AllocObject( sizeof(BRUSHOBJ), BRUSH_MAGIC ); if (!hbrush) return 0; - brushPtr = (BRUSHOBJ *) GDI_HEAP_LIN_ADDR( hbrush ); + brushPtr = (BRUSHOBJ *) GDI_HEAP_LOCK( hbrush ); brushPtr->logbrush.lbStyle = brush->lbStyle; brushPtr->logbrush.lbColor = brush->lbColor; brushPtr->logbrush.lbHatch = brush->lbHatch; + GDI_HEAP_UNLOCK( hbrush ); return hbrush; } @@ -48,7 +50,7 @@ HBRUSH32 CreateBrushIndirect32( const LOGBRUSH32 * brush ) /*********************************************************************** * CreateHatchBrush16 (GDI.58) */ -HBRUSH16 CreateHatchBrush16( INT16 style, COLORREF color ) +HBRUSH16 WINAPI CreateHatchBrush16( INT16 style, COLORREF color ) { LOGBRUSH32 logbrush = { BS_HATCHED, color, style }; dprintf_gdi(stddeb, "CreateHatchBrush16: %d %06lx\n", style, color ); @@ -60,7 +62,7 @@ HBRUSH16 CreateHatchBrush16( INT16 style, COLORREF color ) /*********************************************************************** * CreateHatchBrush32 (GDI32.48) */ -HBRUSH32 CreateHatchBrush32( INT32 style, COLORREF color ) +HBRUSH32 WINAPI CreateHatchBrush32( INT32 style, COLORREF color ) { LOGBRUSH32 logbrush = { BS_HATCHED, color, style }; dprintf_gdi(stddeb, "CreateHatchBrush32: %d %06lx\n", style, color ); @@ -72,7 +74,7 @@ HBRUSH32 CreateHatchBrush32( INT32 style, COLORREF color ) /*********************************************************************** * CreatePatternBrush16 (GDI.60) */ -HBRUSH16 CreatePatternBrush16( HBITMAP16 hbitmap ) +HBRUSH16 WINAPI CreatePatternBrush16( HBITMAP16 hbitmap ) { return (HBRUSH16)CreatePatternBrush32( hbitmap ); } @@ -81,7 +83,7 @@ HBRUSH16 CreatePatternBrush16( HBITMAP16 hbitmap ) /*********************************************************************** * CreatePatternBrush32 (GDI32.54) */ -HBRUSH32 CreatePatternBrush32( HBITMAP32 hbitmap ) +HBRUSH32 WINAPI CreatePatternBrush32( HBITMAP32 hbitmap ) { LOGBRUSH32 logbrush = { BS_PATTERN, 0, 0 }; BITMAPOBJ *bmp, *newbmp; @@ -95,9 +97,15 @@ HBRUSH32 CreatePatternBrush32( HBITMAP32 hbitmap ) logbrush.lbHatch = (INT32)CreateBitmapIndirect16( &bmp->bitmap ); newbmp = (BITMAPOBJ *) GDI_GetObjPtr( (HGDIOBJ32)logbrush.lbHatch, BITMAP_MAGIC ); - if (!newbmp) return 0; + if (!newbmp) + { + GDI_HEAP_UNLOCK( hbitmap ); + return 0; + } XCopyArea( display, bmp->pixmap, newbmp->pixmap, BITMAP_GC(bmp), 0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight, 0, 0 ); + GDI_HEAP_UNLOCK( hbitmap ); + GDI_HEAP_UNLOCK( logbrush.lbHatch ); return CreateBrushIndirect32( &logbrush ); } @@ -105,7 +113,7 @@ HBRUSH32 CreatePatternBrush32( HBITMAP32 hbitmap ) /*********************************************************************** * CreateDIBPatternBrush16 (GDI.445) */ -HBRUSH16 CreateDIBPatternBrush16( HGLOBAL16 hbitmap, UINT16 coloruse ) +HBRUSH16 WINAPI CreateDIBPatternBrush16( HGLOBAL16 hbitmap, UINT16 coloruse ) { LOGBRUSH32 logbrush = { BS_DIBPATTERN, coloruse, 0 }; BITMAPINFO *info, *newInfo; @@ -140,7 +148,7 @@ HBRUSH16 CreateDIBPatternBrush16( HGLOBAL16 hbitmap, UINT16 coloruse ) /*********************************************************************** * CreateDIBPatternBrush32 (GDI32.34) */ -HBRUSH32 CreateDIBPatternBrush32( HGLOBAL32 hbitmap, UINT32 coloruse ) +HBRUSH32 WINAPI CreateDIBPatternBrush32( HGLOBAL32 hbitmap, UINT32 coloruse ) { LOGBRUSH32 logbrush = { BS_DIBPATTERN, coloruse, 0 }; BITMAPINFO *info, *newInfo; @@ -175,7 +183,7 @@ HBRUSH32 CreateDIBPatternBrush32( HGLOBAL32 hbitmap, UINT32 coloruse ) /*********************************************************************** * CreateSolidBrush (GDI.66) */ -HBRUSH16 CreateSolidBrush16( COLORREF color ) +HBRUSH16 WINAPI CreateSolidBrush16( COLORREF color ) { LOGBRUSH32 logbrush = { BS_SOLID, color, 0 }; dprintf_gdi(stddeb, "CreateSolidBrush16: %06lx\n", color ); @@ -186,7 +194,7 @@ HBRUSH16 CreateSolidBrush16( COLORREF color ) /*********************************************************************** * CreateSolidBrush32 (GDI32.64) */ -HBRUSH32 CreateSolidBrush32( COLORREF color ) +HBRUSH32 WINAPI CreateSolidBrush32( COLORREF color ) { LOGBRUSH32 logbrush = { BS_SOLID, color, 0 }; dprintf_gdi(stddeb, "CreateSolidBrush32: %06lx\n", color ); @@ -197,7 +205,7 @@ HBRUSH32 CreateSolidBrush32( COLORREF color ) /*********************************************************************** * SetBrushOrg (GDI.148) */ -DWORD SetBrushOrg( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI SetBrushOrg( HDC16 hdc, INT16 x, INT16 y ) { DWORD retval; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -212,7 +220,7 @@ DWORD SetBrushOrg( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * SetBrushOrgEx (GDI32.308) */ -BOOL32 SetBrushOrgEx( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 oldorg ) +BOOL32 WINAPI SetBrushOrgEx( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 oldorg ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -231,7 +239,7 @@ BOOL32 SetBrushOrgEx( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 oldorg ) /*********************************************************************** * GetSysColorBrush16 (USER.281) */ -HBRUSH16 GetSysColorBrush16( INT16 index ) +HBRUSH16 WINAPI GetSysColorBrush16( INT16 index ) { fprintf( stderr, "Unimplemented stub: GetSysColorBrush16(%d)\n", index ); return GetStockObject32(LTGRAY_BRUSH); @@ -241,7 +249,7 @@ HBRUSH16 GetSysColorBrush16( INT16 index ) /*********************************************************************** * GetSysColorBrush32 (USER32.289) */ -HBRUSH32 GetSysColorBrush32( INT32 index) +HBRUSH32 WINAPI GetSysColorBrush32( INT32 index) { fprintf( stderr, "Unimplemented stub: GetSysColorBrush32(%d)\n", index ); return GetStockObject32(LTGRAY_BRUSH); diff --git a/objects/clipping.c b/objects/clipping.c index e801cb02a0f..d417c71e4af 100644 --- a/objects/clipping.c +++ b/objects/clipping.c @@ -51,7 +51,7 @@ void CLIPPING_UpdateGCRegion( DC * dc ) /*********************************************************************** * SelectClipRgn16 (GDI.44) */ -INT16 SelectClipRgn16( HDC16 hdc, HRGN16 hrgn ) +INT16 WINAPI SelectClipRgn16( HDC16 hdc, HRGN16 hrgn ) { return (INT16)SelectClipRgn32( hdc, hrgn ); } @@ -60,7 +60,7 @@ INT16 SelectClipRgn16( HDC16 hdc, HRGN16 hrgn ) /*********************************************************************** * SelectClipRgn32 (GDI32.297) */ -INT32 SelectClipRgn32( HDC32 hdc, HRGN32 hrgn ) +INT32 WINAPI SelectClipRgn32( HDC32 hdc, HRGN32 hrgn ) { INT32 retval; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -81,6 +81,7 @@ INT32 SelectClipRgn32( HDC32 hdc, HRGN32 hrgn ) } CLIPPING_UpdateGCRegion( dc ); + GDI_HEAP_UNLOCK( hdc ); return retval; } @@ -88,7 +89,7 @@ INT32 SelectClipRgn32( HDC32 hdc, HRGN32 hrgn ) /*********************************************************************** * SelectVisRgn (GDI.105) */ -INT16 SelectVisRgn( HDC16 hdc, HRGN16 hrgn ) +INT16 WINAPI SelectVisRgn( HDC16 hdc, HRGN16 hrgn ) { int retval; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -100,6 +101,7 @@ INT16 SelectVisRgn( HDC16 hdc, HRGN16 hrgn ) retval = CombineRgn16( dc->w.hVisRgn, hrgn, 0, RGN_COPY ); CLIPPING_UpdateGCRegion( dc ); + GDI_HEAP_UNLOCK( hdc ); return retval; } @@ -107,7 +109,7 @@ INT16 SelectVisRgn( HDC16 hdc, HRGN16 hrgn ) /*********************************************************************** * OffsetClipRgn16 (GDI.32) */ -INT16 OffsetClipRgn16( HDC16 hdc, INT16 x, INT16 y ) +INT16 WINAPI OffsetClipRgn16( HDC16 hdc, INT16 x, INT16 y ) { return (INT16)OffsetClipRgn32( hdc, x, y ); } @@ -116,7 +118,7 @@ INT16 OffsetClipRgn16( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * OffsetClipRgn32 (GDI32.255) */ -INT32 OffsetClipRgn32( HDC32 hdc, INT32 x, INT32 y ) +INT32 WINAPI OffsetClipRgn32( HDC32 hdc, INT32 x, INT32 y ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) @@ -124,6 +126,7 @@ INT32 OffsetClipRgn32( HDC32 hdc, INT32 x, INT32 y ) dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return ERROR; MF_MetaParam2(dc, META_OFFSETCLIPRGN, x, y); + GDI_HEAP_UNLOCK( hdc ); return NULLREGION; /* ?? */ } @@ -133,16 +136,18 @@ INT32 OffsetClipRgn32( HDC32 hdc, INT32 x, INT32 y ) { INT32 ret = OffsetRgn32( dc->w.hClipRgn, XLPTODP(dc,x), YLPTODP(dc,y)); CLIPPING_UpdateGCRegion( dc ); + GDI_HEAP_UNLOCK( hdc ); return ret; } - else return SIMPLEREGION; /* Clip region == client area */ + GDI_HEAP_UNLOCK( hdc ); + return SIMPLEREGION; /* Clip region == client area */ } /*********************************************************************** * OffsetVisRgn (GDI.102) */ -INT16 OffsetVisRgn( HDC16 hdc, INT16 x, INT16 y ) +INT16 WINAPI OffsetVisRgn( HDC16 hdc, INT16 x, INT16 y ) { INT16 retval; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -150,6 +155,7 @@ INT16 OffsetVisRgn( HDC16 hdc, INT16 x, INT16 y ) dprintf_clipping(stddeb, "OffsetVisRgn: %04x %d,%d\n", hdc, x, y ); retval = OffsetRgn32( dc->w.hVisRgn, x, y ); CLIPPING_UpdateGCRegion( dc ); + GDI_HEAP_UNLOCK( hdc ); return retval; } @@ -194,8 +200,8 @@ INT32 CLIPPING_IntersectClipRect( DC * dc, INT32 left, INT32 top, /*********************************************************************** * ExcludeClipRect16 (GDI.21) */ -INT16 ExcludeClipRect16( HDC16 hdc, INT16 left, INT16 top, - INT16 right, INT16 bottom ) +INT16 WINAPI ExcludeClipRect16( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { return (INT16)ExcludeClipRect32( hdc, left, top, right, bottom ); } @@ -204,15 +210,17 @@ INT16 ExcludeClipRect16( HDC16 hdc, INT16 left, INT16 top, /*********************************************************************** * ExcludeClipRect32 (GDI32.92) */ -INT32 ExcludeClipRect32( HDC32 hdc, INT32 left, INT32 top, - INT32 right, INT32 bottom ) +INT32 WINAPI ExcludeClipRect32( HDC32 hdc, INT32 left, INT32 top, + INT32 right, INT32 bottom ) { + INT32 ret; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) { dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return ERROR; MF_MetaParam4(dc, META_EXCLUDECLIPRECT, left, top, right, bottom); + GDI_HEAP_UNLOCK( hdc ); return NULLREGION; /* ?? */ } @@ -223,15 +231,17 @@ INT32 ExcludeClipRect32( HDC32 hdc, INT32 left, INT32 top, dprintf_clipping(stddeb, "ExcludeClipRect: %04x %dx%d,%dx%d\n", hdc, left, top, right, bottom ); - return CLIPPING_IntersectClipRect( dc, left, top, right, bottom, CLIP_EXCLUDE ); + ret = CLIPPING_IntersectClipRect( dc, left, top, right, bottom, CLIP_EXCLUDE ); + GDI_HEAP_UNLOCK( hdc ); + return ret; } /*********************************************************************** * IntersectClipRect16 (GDI.22) */ -INT16 IntersectClipRect16( HDC16 hdc, INT16 left, INT16 top, - INT16 right, INT16 bottom ) +INT16 WINAPI IntersectClipRect16( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { return (INT16)IntersectClipRect32( hdc, left, top, right, bottom ); } @@ -240,15 +250,17 @@ INT16 IntersectClipRect16( HDC16 hdc, INT16 left, INT16 top, /*********************************************************************** * IntersectClipRect32 (GDI32.245) */ -INT32 IntersectClipRect32( HDC32 hdc, INT32 left, INT32 top, - INT32 right, INT32 bottom ) +INT32 WINAPI IntersectClipRect32( HDC32 hdc, INT32 left, INT32 top, + INT32 right, INT32 bottom ) { + INT32 ret; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) { dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return ERROR; MF_MetaParam4(dc, META_INTERSECTCLIPRECT, left, top, right, bottom); + GDI_HEAP_UNLOCK( hdc ); return NULLREGION; /* ?? */ } @@ -259,7 +271,9 @@ INT32 IntersectClipRect32( HDC32 hdc, INT32 left, INT32 top, dprintf_clipping(stddeb, "IntersectClipRect: %04x %dx%d,%dx%d\n", hdc, left, top, right, bottom ); - return CLIPPING_IntersectClipRect( dc, left, top, right, bottom, CLIP_INTERSECT ); + ret = CLIPPING_IntersectClipRect( dc, left, top, right, bottom, CLIP_INTERSECT ); + GDI_HEAP_UNLOCK( hdc ); + return ret; } @@ -298,6 +312,7 @@ static INT32 CLIPPING_IntersectVisRect( DC * dc, INT32 left, INT32 top, DeleteObject32( dc->w.hVisRgn ); dc->w.hVisRgn = newRgn; CLIPPING_UpdateGCRegion( dc ); + GDI_HEAP_UNLOCK( newRgn ); } else DeleteObject32( newRgn ); return ret; @@ -307,8 +322,8 @@ static INT32 CLIPPING_IntersectVisRect( DC * dc, INT32 left, INT32 top, /*********************************************************************** * ExcludeVisRect (GDI.73) */ -INT16 ExcludeVisRect( HDC16 hdc, INT16 left, INT16 top, - INT16 right, INT16 bottom ) +INT16 WINAPI ExcludeVisRect( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return ERROR; @@ -322,8 +337,8 @@ INT16 ExcludeVisRect( HDC16 hdc, INT16 left, INT16 top, /*********************************************************************** * IntersectVisRect (GDI.98) */ -INT16 IntersectVisRect( HDC16 hdc, INT16 left, INT16 top, - INT16 right, INT16 bottom ) +INT16 WINAPI IntersectVisRect( HDC16 hdc, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return ERROR; @@ -337,7 +352,7 @@ INT16 IntersectVisRect( HDC16 hdc, INT16 left, INT16 top, /*********************************************************************** * PtVisible16 (GDI.103) */ -BOOL16 PtVisible16( HDC16 hdc, INT16 x, INT16 y ) +BOOL16 WINAPI PtVisible16( HDC16 hdc, INT16 x, INT16 y ) { return PtVisible32( hdc, x, y ); } @@ -346,7 +361,7 @@ BOOL16 PtVisible16( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * PtVisible32 (GDI32.279) */ -BOOL32 PtVisible32( HDC32 hdc, INT32 x, INT32 y ) +BOOL32 WINAPI PtVisible32( HDC32 hdc, INT32 x, INT32 y ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return ERROR; @@ -364,7 +379,7 @@ BOOL32 PtVisible32( HDC32 hdc, INT32 x, INT32 y ) /*********************************************************************** * RectVisible16 (GDI.104) */ -BOOL16 RectVisible16( HDC16 hdc, LPRECT16 rect ) +BOOL16 WINAPI RectVisible16( HDC16 hdc, LPRECT16 rect ) { RECT16 tmpRect; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -382,7 +397,7 @@ BOOL16 RectVisible16( HDC16 hdc, LPRECT16 rect ) /*********************************************************************** * RectVisible32 (GDI32.282) */ -BOOL32 RectVisible32( HDC32 hdc, LPRECT32 rect ) +BOOL32 WINAPI RectVisible32( HDC32 hdc, LPRECT32 rect ) { RECT16 rect16; CONV_RECT32TO16( rect, &rect16 ); @@ -393,7 +408,7 @@ BOOL32 RectVisible32( HDC32 hdc, LPRECT32 rect ) /*********************************************************************** * GetClipBox16 (GDI.77) */ -INT16 GetClipBox16( HDC16 hdc, LPRECT16 rect ) +INT16 WINAPI GetClipBox16( HDC16 hdc, LPRECT16 rect ) { int ret; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -407,7 +422,7 @@ INT16 GetClipBox16( HDC16 hdc, LPRECT16 rect ) /*********************************************************************** * GetClipBox32 (GDI32.162) */ -INT32 GetClipBox32( HDC32 hdc, LPRECT32 rect ) +INT32 WINAPI GetClipBox32( HDC32 hdc, LPRECT32 rect ) { INT32 ret; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -421,7 +436,7 @@ INT32 GetClipBox32( HDC32 hdc, LPRECT32 rect ) /*********************************************************************** * GetClipRgn32 (GDI32.163) */ -INT32 GetClipRgn32( HDC32 hdc, HRGN32 hRgn ) +INT32 WINAPI GetClipRgn32( HDC32 hdc, HRGN32 hRgn ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if( dc && hRgn ) @@ -440,7 +455,7 @@ INT32 GetClipRgn32( HDC32 hdc, HRGN32 hRgn ) /*********************************************************************** * SaveVisRgn (GDI.129) */ -HRGN16 SaveVisRgn( HDC16 hdc ) +HRGN16 WINAPI SaveVisRgn( HDC16 hdc ) { HRGN32 copy; RGNOBJ *obj, *copyObj; @@ -456,13 +471,28 @@ HRGN16 SaveVisRgn( HDC16 hdc ) dc->w.flags &= ~DC_DIRTY; if (!(obj = (RGNOBJ *) GDI_GetObjPtr( dc->w.hVisRgn, REGION_MAGIC ))) + { + GDI_HEAP_UNLOCK( hdc ); return 0; - if (!(copy = CreateRectRgn32( 0, 0, 0, 0 ))) return 0; + } + if (!(copy = CreateRectRgn32( 0, 0, 0, 0 ))) + { + GDI_HEAP_UNLOCK( dc->w.hVisRgn ); + GDI_HEAP_UNLOCK( hdc ); + return 0; + } CombineRgn32( copy, dc->w.hVisRgn, 0, RGN_COPY ); if (!(copyObj = (RGNOBJ *) GDI_GetObjPtr( copy, REGION_MAGIC ))) + { + GDI_HEAP_UNLOCK( dc->w.hVisRgn ); + GDI_HEAP_UNLOCK( hdc ); return 0; + } copyObj->header.hNext = obj->header.hNext; obj->header.hNext = copy; + GDI_HEAP_UNLOCK( dc->w.hVisRgn ); + GDI_HEAP_UNLOCK( hdc ); + GDI_HEAP_UNLOCK( copy ); return copy; } @@ -470,20 +500,39 @@ HRGN16 SaveVisRgn( HDC16 hdc ) /*********************************************************************** * RestoreVisRgn (GDI.130) */ -INT16 RestoreVisRgn( HDC16 hdc ) +INT16 WINAPI RestoreVisRgn( HDC16 hdc ) { HRGN32 saved; RGNOBJ *obj, *savedObj; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); - if (!dc || !dc->w.hVisRgn) return ERROR; + if (!dc) return ERROR; + if (!dc->w.hVisRgn) + { + GDI_HEAP_UNLOCK( hdc ); + return ERROR; + } dprintf_clipping(stddeb, "RestoreVisRgn: %04x\n", hdc ); if (!(obj = (RGNOBJ *) GDI_GetObjPtr( dc->w.hVisRgn, REGION_MAGIC ))) + { + GDI_HEAP_UNLOCK( hdc ); return ERROR; - if (!(saved = obj->header.hNext)) return ERROR; + } + if (!(saved = obj->header.hNext)) + { + GDI_HEAP_UNLOCK( dc->w.hVisRgn ); + GDI_HEAP_UNLOCK( hdc ); + return ERROR; + } if (!(savedObj = (RGNOBJ *) GDI_GetObjPtr( saved, REGION_MAGIC ))) - return ERROR; + { + GDI_HEAP_UNLOCK( dc->w.hVisRgn ); + GDI_HEAP_UNLOCK( hdc ); + return ERROR; + } DeleteObject32( dc->w.hVisRgn ); dc->w.hVisRgn = saved; CLIPPING_UpdateGCRegion( dc ); + GDI_HEAP_UNLOCK( hdc ); + GDI_HEAP_UNLOCK( saved ); return savedObj->xrgn ? COMPLEXREGION : NULLREGION; } diff --git a/objects/color.c b/objects/color.c index 7d5c0bdab88..b07b790e99f 100644 --- a/objects/color.c +++ b/objects/color.c @@ -857,6 +857,7 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) WORD index = 0; HPALETTE16 hPal = (dc)? dc->w.hPalette: STOCK_DEFAULT_PALETTE; unsigned char spec_type = color >> 24; + PALETTEOBJ* palPtr = (PALETTEOBJ *) GDI_GetObjPtr( hPal, PALETTE_MAGIC ); if ( cSpace.flags & COLOR_FIXED ) { @@ -866,7 +867,6 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) unsigned long red, green, blue; unsigned idx = 0; - PALETTEOBJ * palPtr = (PALETTEOBJ *) GDI_GetObjPtr( hPal, PALETTE_MAGIC ); switch(spec_type) { @@ -876,7 +876,11 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) palPtr->logpalette.palNumEntries, NULL, color, FALSE); - if( palPtr->mapping ) return palPtr->mapping[idx]; + if( palPtr->mapping ) + { + GDI_HEAP_UNLOCK( hPal ); + return palPtr->mapping[idx]; + } color = *(COLORREF*)(palPtr->logpalette.palPalEntry + idx); break; @@ -886,11 +890,15 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) if( (idx = color & 0xffff) >= palPtr->logpalette.palNumEntries) { fprintf(stderr, "\tRGB(%lx) : idx %d is out of bounds, assuming black\n", color, idx); + GDI_HEAP_UNLOCK( hPal ); return 0; } - if( palPtr->mapping ) return palPtr->mapping[idx]; - + if( palPtr->mapping ) + { + GDI_HEAP_UNLOCK( hPal ); + return palPtr->mapping[idx]; + } color = *(COLORREF*)(palPtr->logpalette.palPalEntry + idx); break; @@ -900,8 +908,12 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) case 0: /* RGB */ if( dc && (dc->w.bitsPerPixel == 1) ) + { + GDI_HEAP_UNLOCK( hPal ); return (((color >> 16) & 0xff) + ((color >> 8) & 0xff) + (color & 0xff) > 255*3/2) ? 1 : 0; + } + } red = GetRValue(color); green = GetGValue(color); blue = GetBValue(color); @@ -909,6 +921,7 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) if (COLOR_Graymax) { /* grayscale only; return scaled value */ + GDI_HEAP_UNLOCK( hPal ); return ( (red * 30 + green * 69 + blue * 11) * COLOR_Graymax) / 25500; } else @@ -918,12 +931,12 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) if (COLOR_Greenmax != 255) green = (green * COLOR_Greenmax) / 255; if (COLOR_Bluemax != 255) blue = (blue * COLOR_Bluemax) / 255; + GDI_HEAP_UNLOCK( hPal ); return (red << COLOR_Redshift) | (green << COLOR_Greenshift) | (blue << COLOR_Blueshift); } } else { - PALETTEOBJ* palPtr = (PALETTEOBJ *) GDI_GetObjPtr( hPal, PALETTE_MAGIC); /* palPtr can be NULL when DC is being destroyed */ @@ -939,8 +952,11 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) case 0: /* RGB */ if( dc && (dc->w.bitsPerPixel == 1) ) + { + GDI_HEAP_UNLOCK( hPal ); return (((color >> 16) & 0xff) + ((color >> 8) & 0xff) + (color & 0xff) > 255*3/2) ? 1 : 0; + } index = COLOR_PaletteLookupPixel( COLOR_sysPal, 256, COLOR_PaletteToPixel, color, FALSE); @@ -968,6 +984,7 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) } } + GDI_HEAP_UNLOCK( hPal ); return index; } @@ -977,12 +994,11 @@ int COLOR_ToPhysical( DC *dc, COLORREF color ) * Set the color-mapping table for selected palette. * Return number of entries which mapping has changed. */ -int COLOR_SetMapping( PALETTEOBJ* palPtr, BOOL32 mapOnly ) +int COLOR_SetMapping( PALETTEOBJ* palPtr, UINT32 uStart, UINT32 uNum, BOOL32 mapOnly ) { - int i, index; char flag; int prevMapping = (palPtr->mapping) ? 1 : 0; - int iRemapped = 0; + int index, iRemapped = 0; /* reset dynamic system palette entries */ @@ -994,15 +1010,15 @@ int COLOR_SetMapping( PALETTEOBJ* palPtr, BOOL32 mapOnly ) palPtr->mapping = (int*)xrealloc(palPtr->mapping, sizeof(int)* palPtr->logpalette.palNumEntries); - for( i = 0; i < palPtr->logpalette.palNumEntries; i++ ) + for( uNum += uStart; uStart < uNum; uStart++ ) { index = -1; flag = PC_SYS_USED; - switch( palPtr->logpalette.palPalEntry[i].peFlags & 0x07 ) + switch( palPtr->logpalette.palPalEntry[uStart].peFlags & 0x07 ) { case PC_EXPLICIT: /* palette entries are indices into system palette */ - index = *(WORD*)(palPtr->logpalette.palPalEntry + i); + index = *(WORD*)(palPtr->logpalette.palPalEntry + uStart); if( index > 255 || (index >= COLOR_gapStart && index <= COLOR_gapEnd) ) { fprintf(stderr,"PC_EXPLICIT: idx %d out of system palette, assuming black.\n", index); @@ -1016,7 +1032,7 @@ int COLOR_SetMapping( PALETTEOBJ* palPtr, BOOL32 mapOnly ) /* fall through */ default: /* try to collapse identical colors */ index = COLOR_PaletteLookupExactIndex(COLOR_sysPal, 256, - *(COLORREF*)(palPtr->logpalette.palPalEntry + i)); + *(COLORREF*)(palPtr->logpalette.palPalEntry + uStart)); /* fall through */ case PC_NOCOLLAPSE: if( index < 0 ) @@ -1028,13 +1044,13 @@ int COLOR_SetMapping( PALETTEOBJ* palPtr, BOOL32 mapOnly ) COLOR_firstFree = COLOR_freeList[index]; color.pixel = (COLOR_PaletteToPixel) ? COLOR_PaletteToPixel[index] : index; - color.red = palPtr->logpalette.palPalEntry[i].peRed << 8; - color.green = palPtr->logpalette.palPalEntry[i].peGreen << 8; - color.blue = palPtr->logpalette.palPalEntry[i].peBlue << 8; + color.red = palPtr->logpalette.palPalEntry[uStart].peRed << 8; + color.green = palPtr->logpalette.palPalEntry[uStart].peGreen << 8; + color.blue = palPtr->logpalette.palPalEntry[uStart].peBlue << 8; color.flags = DoRed | DoGreen | DoBlue; XStoreColor(display, cSpace.colorMap, &color); - COLOR_sysPal[index] = palPtr->logpalette.palPalEntry[i]; + COLOR_sysPal[index] = palPtr->logpalette.palPalEntry[uStart]; COLOR_sysPal[index].peFlags = flag; COLOR_freeList[index] = 0; @@ -1044,27 +1060,28 @@ int COLOR_SetMapping( PALETTEOBJ* palPtr, BOOL32 mapOnly ) else if ( cSpace.flags & COLOR_VIRTUAL ) { index = COLOR_ToPhysical( NULL, 0x00ffffff & - *(COLORREF*)(palPtr->logpalette.palPalEntry + i)); + *(COLORREF*)(palPtr->logpalette.palPalEntry + uStart)); break; } /* we have to map to existing entry in the system palette */ index = COLOR_PaletteLookupPixel(COLOR_sysPal, 256, NULL, - *(COLORREF*)(palPtr->logpalette.palPalEntry + i), TRUE); + *(COLORREF*)(palPtr->logpalette.palPalEntry + uStart), TRUE); } - palPtr->logpalette.palPalEntry[i].peFlags |= PC_SYS_USED; + palPtr->logpalette.palPalEntry[uStart].peFlags |= PC_SYS_USED; if( COLOR_PaletteToPixel ) index = COLOR_PaletteToPixel[index]; break; } - if( !prevMapping || palPtr->mapping[i] != index ) iRemapped++; - palPtr->mapping[i] = index; + if( !prevMapping || palPtr->mapping[uStart] != index ) iRemapped++; + palPtr->mapping[uStart] = index; - dprintf_palette(stddeb,"\tentry %i (%lx) -> pixel %i\n", i, - *(COLORREF*)(palPtr->logpalette.palPalEntry + i), index); + dprintf_palette(stddeb,"\tentry %i (%lx) -> pixel %i\n", uStart, + *(COLORREF*)(palPtr->logpalette.palPalEntry + uStart), index); } return iRemapped; } + diff --git a/objects/cursoricon.c b/objects/cursoricon.c index e8a9537b529..317f1634072 100644 --- a/objects/cursoricon.c +++ b/objects/cursoricon.c @@ -522,7 +522,7 @@ HCURSOR16 CURSORICON_IconToCursor(HICON16 hIcon, BOOL32 bSemiTransparent) /*********************************************************************** * LoadCursor16 (USER.173) */ -HCURSOR16 LoadCursor16( HINSTANCE16 hInstance, SEGPTR name ) +HCURSOR16 WINAPI LoadCursor16( HINSTANCE16 hInstance, SEGPTR name ) { if (HIWORD(name)) dprintf_cursor( stddeb, "LoadCursor16: %04x '%s'\n", @@ -539,7 +539,7 @@ HCURSOR16 LoadCursor16( HINSTANCE16 hInstance, SEGPTR name ) /*********************************************************************** * LoadIcon16 (USER.174) */ -HICON16 LoadIcon16( HINSTANCE16 hInstance, SEGPTR name ) +HICON16 WINAPI LoadIcon16( HINSTANCE16 hInstance, SEGPTR name ) { if (HIWORD(name)) dprintf_icon( stddeb, "LoadIcon: %04x '%s'\n", @@ -557,9 +557,10 @@ HICON16 LoadIcon16( HINSTANCE16 hInstance, SEGPTR name ) /*********************************************************************** * CreateCursor16 (USER.406) */ -HCURSOR16 CreateCursor16(HINSTANCE16 hInstance, INT16 xHotSpot, INT16 yHotSpot, - INT16 nWidth, INT16 nHeight, - LPCVOID lpANDbits, LPCVOID lpXORbits ) +HCURSOR16 WINAPI CreateCursor16( HINSTANCE16 hInstance, + INT16 xHotSpot, INT16 yHotSpot, + INT16 nWidth, INT16 nHeight, + LPCVOID lpANDbits, LPCVOID lpXORbits ) { CURSORICONINFO info = { { xHotSpot, yHotSpot }, nWidth, nHeight, 0, 1, 1 }; @@ -572,9 +573,10 @@ HCURSOR16 CreateCursor16(HINSTANCE16 hInstance, INT16 xHotSpot, INT16 yHotSpot, /*********************************************************************** * CreateCursor32 (USER32.66) */ -HCURSOR32 CreateCursor32(HINSTANCE32 hInstance, INT32 xHotSpot, INT32 yHotSpot, - INT32 nWidth, INT32 nHeight, - LPCVOID lpANDbits, LPCVOID lpXORbits ) +HCURSOR32 WINAPI CreateCursor32( HINSTANCE32 hInstance, + INT32 xHotSpot, INT32 yHotSpot, + INT32 nWidth, INT32 nHeight, + LPCVOID lpANDbits, LPCVOID lpXORbits ) { CURSORICONINFO info = { { xHotSpot, yHotSpot }, nWidth, nHeight, 0, 1, 1 }; @@ -587,9 +589,9 @@ HCURSOR32 CreateCursor32(HINSTANCE32 hInstance, INT32 xHotSpot, INT32 yHotSpot, /*********************************************************************** * CreateIcon16 (USER.407) */ -HICON16 CreateIcon16( HINSTANCE16 hInstance, INT16 nWidth, INT16 nHeight, - BYTE bPlanes, BYTE bBitsPixel, - LPCVOID lpANDbits, LPCVOID lpXORbits ) +HICON16 WINAPI CreateIcon16( HINSTANCE16 hInstance, INT16 nWidth, + INT16 nHeight, BYTE bPlanes, BYTE bBitsPixel, + LPCVOID lpANDbits, LPCVOID lpXORbits ) { CURSORICONINFO info = { { 0, 0 }, nWidth, nHeight, 0, bPlanes, bBitsPixel}; @@ -602,9 +604,9 @@ HICON16 CreateIcon16( HINSTANCE16 hInstance, INT16 nWidth, INT16 nHeight, /*********************************************************************** * CreateIcon32 (USER32.74) */ -HICON32 CreateIcon32( HINSTANCE32 hInstance, INT32 nWidth, INT32 nHeight, - BYTE bPlanes, BYTE bBitsPixel, - LPCVOID lpANDbits, LPCVOID lpXORbits ) +HICON32 WINAPI CreateIcon32( HINSTANCE32 hInstance, INT32 nWidth, + INT32 nHeight, BYTE bPlanes, BYTE bBitsPixel, + LPCVOID lpANDbits, LPCVOID lpXORbits ) { CURSORICONINFO info = { { 0, 0 }, nWidth, nHeight, 0, bPlanes, bBitsPixel}; @@ -617,8 +619,10 @@ HICON32 CreateIcon32( HINSTANCE32 hInstance, INT32 nWidth, INT32 nHeight, /*********************************************************************** * CreateCursorIconIndirect (USER.408) */ -HGLOBAL16 CreateCursorIconIndirect(HINSTANCE16 hInstance, CURSORICONINFO *info, - LPCVOID lpANDbits, LPCVOID lpXORbits ) +HGLOBAL16 WINAPI CreateCursorIconIndirect( HINSTANCE16 hInstance, + CURSORICONINFO *info, + LPCVOID lpANDbits, + LPCVOID lpXORbits ) { HGLOBAL16 handle; char *ptr; @@ -644,7 +648,7 @@ HGLOBAL16 CreateCursorIconIndirect(HINSTANCE16 hInstance, CURSORICONINFO *info, /*********************************************************************** * CopyIcon16 (USER.368) */ -HICON16 CopyIcon16( HINSTANCE16 hInstance, HICON16 hIcon ) +HICON16 WINAPI CopyIcon16( HINSTANCE16 hInstance, HICON16 hIcon ) { dprintf_icon( stddeb, "CopyIcon16: %04x %04x\n", hInstance, hIcon ); return CURSORICON_Copy( hInstance, hIcon ); @@ -654,7 +658,7 @@ HICON16 CopyIcon16( HINSTANCE16 hInstance, HICON16 hIcon ) /*********************************************************************** * CopyIcon32 (USER32.59) */ -HICON32 CopyIcon32( HICON32 hIcon ) +HICON32 WINAPI CopyIcon32( HICON32 hIcon ) { dprintf_icon( stddeb, "CopyIcon32: %04x\n", hIcon ); return CURSORICON_Copy( 0, hIcon ); @@ -664,7 +668,7 @@ HICON32 CopyIcon32( HICON32 hIcon ) /*********************************************************************** * CopyCursor16 (USER.369) */ -HCURSOR16 CopyCursor16( HINSTANCE16 hInstance, HCURSOR16 hCursor ) +HCURSOR16 WINAPI CopyCursor16( HINSTANCE16 hInstance, HCURSOR16 hCursor ) { dprintf_cursor( stddeb, "CopyCursor16: %04x %04x\n", hInstance, hCursor ); return CURSORICON_Copy( hInstance, hCursor ); @@ -674,7 +678,7 @@ HCURSOR16 CopyCursor16( HINSTANCE16 hInstance, HCURSOR16 hCursor ) /*********************************************************************** * DestroyIcon16 (USER.457) */ -BOOL16 DestroyIcon16( HICON16 hIcon ) +BOOL16 WINAPI DestroyIcon16( HICON16 hIcon ) { return DestroyIcon32( hIcon ); } @@ -683,7 +687,7 @@ BOOL16 DestroyIcon16( HICON16 hIcon ) /*********************************************************************** * DestroyIcon32 (USER32.132) */ -BOOL32 DestroyIcon32( HICON32 hIcon ) +BOOL32 WINAPI DestroyIcon32( HICON32 hIcon ) { dprintf_icon( stddeb, "DestroyIcon: %04x\n", hIcon ); /* FIXME: should check for OEM icon here */ @@ -694,7 +698,7 @@ BOOL32 DestroyIcon32( HICON32 hIcon ) /*********************************************************************** * DestroyCursor16 (USER.458) */ -BOOL16 DestroyCursor16( HCURSOR16 hCursor ) +BOOL16 WINAPI DestroyCursor16( HCURSOR16 hCursor ) { return DestroyCursor32( hCursor ); } @@ -703,7 +707,7 @@ BOOL16 DestroyCursor16( HCURSOR16 hCursor ) /*********************************************************************** * DestroyCursor32 (USER32.131) */ -BOOL32 DestroyCursor32( HCURSOR32 hCursor ) +BOOL32 WINAPI DestroyCursor32( HCURSOR32 hCursor ) { dprintf_cursor( stddeb, "DestroyCursor: %04x\n", hCursor ); /* FIXME: should check for OEM cursor here */ @@ -714,7 +718,7 @@ BOOL32 DestroyCursor32( HCURSOR32 hCursor ) /*********************************************************************** * DrawIcon16 (USER.84) */ -BOOL16 DrawIcon16( HDC16 hdc, INT16 x, INT16 y, HICON16 hIcon ) +BOOL16 WINAPI DrawIcon16( HDC16 hdc, INT16 x, INT16 y, HICON16 hIcon ) { return DrawIcon32( hdc, x, y, hIcon ); } @@ -723,7 +727,7 @@ BOOL16 DrawIcon16( HDC16 hdc, INT16 x, INT16 y, HICON16 hIcon ) /*********************************************************************** * DrawIcon32 (USER32.158) */ -BOOL32 DrawIcon32( HDC32 hdc, INT32 x, INT32 y, HICON32 hIcon ) +BOOL32 WINAPI DrawIcon32( HDC32 hdc, INT32 x, INT32 y, HICON32 hIcon ) { CURSORICONINFO *ptr; HDC32 hMemDC; @@ -761,8 +765,8 @@ BOOL32 DrawIcon32( HDC32 hdc, INT32 x, INT32 y, HICON32 hIcon ) /*********************************************************************** * DumpIcon (USER.459) */ -DWORD DumpIcon( SEGPTR pInfo, WORD *lpLen, - SEGPTR *lpXorBits, SEGPTR *lpAndBits ) +DWORD WINAPI DumpIcon( SEGPTR pInfo, WORD *lpLen, + SEGPTR *lpXorBits, SEGPTR *lpAndBits ) { CURSORICONINFO *info = PTR_SEG_TO_LIN( pInfo ); int sizeAnd, sizeXor; @@ -833,9 +837,8 @@ static BOOL32 CURSORICON_SetCursor( HCURSOR16 hCursor ) image->bitmap_unit = 16; _XInitImageFuncPtrs(image); if (pixmapAll) - CallTo32_LargeStack( XPutImage, 10, - display, pixmapAll, BITMAP_monoGC, image, - 0, 0, 0, 0, ptr->nWidth, ptr->nHeight*2 ); + XPutImage( display, pixmapAll, BITMAP_monoGC, image, + 0, 0, 0, 0, ptr->nWidth, ptr->nHeight * 2 ); image->data = NULL; XDestroyImage( image ); } @@ -925,7 +928,7 @@ static BOOL32 CURSORICON_SetCursor( HCURSOR16 hCursor ) /*********************************************************************** * SetCursor16 (USER.69) */ -HCURSOR16 SetCursor16( HCURSOR16 hCursor ) +HCURSOR16 WINAPI SetCursor16( HCURSOR16 hCursor ) { return (HCURSOR16)SetCursor32( hCursor ); } @@ -934,7 +937,7 @@ HCURSOR16 SetCursor16( HCURSOR16 hCursor ) /*********************************************************************** * SetCursor32 (USER32.471) */ -HCURSOR32 SetCursor32( HCURSOR32 hCursor ) +HCURSOR32 WINAPI SetCursor32( HCURSOR32 hCursor ) { HCURSOR32 hOldCursor; @@ -943,7 +946,8 @@ HCURSOR32 SetCursor32( HCURSOR32 hCursor ) hOldCursor = hActiveCursor; hActiveCursor = hCursor; /* Change the cursor shape only if it is visible */ - if (CURSOR_ShowCount >= 0) CURSORICON_SetCursor( hActiveCursor ); + if (CURSOR_ShowCount >= 0) + CALL_LARGE_STACK( CURSORICON_SetCursor, hActiveCursor ); return hOldCursor; } @@ -951,7 +955,7 @@ HCURSOR32 SetCursor32( HCURSOR32 hCursor ) /*********************************************************************** * SetCursorPos16 (USER.70) */ -void SetCursorPos16( INT16 x, INT16 y ) +void WINAPI SetCursorPos16( INT16 x, INT16 y ) { SetCursorPos32( x, y ); } @@ -960,7 +964,7 @@ void SetCursorPos16( INT16 x, INT16 y ) /*********************************************************************** * SetCursorPos32 (USER32.473) */ -BOOL32 SetCursorPos32( INT32 x, INT32 y ) +BOOL32 WINAPI SetCursorPos32( INT32 x, INT32 y ) { dprintf_cursor( stddeb, "SetCursorPos: x=%d y=%d\n", x, y ); XWarpPointer( display, rootWindow, rootWindow, 0, 0, 0, 0, x, y ); @@ -971,7 +975,7 @@ BOOL32 SetCursorPos32( INT32 x, INT32 y ) /*********************************************************************** * ShowCursor16 (USER.71) */ -INT16 ShowCursor16( BOOL16 bShow ) +INT16 WINAPI ShowCursor16( BOOL16 bShow ) { return ShowCursor32( bShow ); } @@ -980,20 +984,20 @@ INT16 ShowCursor16( BOOL16 bShow ) /*********************************************************************** * ShowCursor32 (USER32.529) */ -INT32 ShowCursor32( BOOL32 bShow ) +INT32 WINAPI ShowCursor32( BOOL32 bShow ) { dprintf_cursor( stddeb, "ShowCursor: %d, count=%d\n", bShow, CURSOR_ShowCount ); if (bShow) { - if (++CURSOR_ShowCount == 0) - CURSORICON_SetCursor( hActiveCursor ); /* Show it */ + if (++CURSOR_ShowCount == 0) /* Show it */ + CALL_LARGE_STACK( CURSORICON_SetCursor, hActiveCursor ); } else { - if (--CURSOR_ShowCount == -1) - CURSORICON_SetCursor( 0 ); /* Hide it */ + if (--CURSOR_ShowCount == -1) /* Hide it */ + CALL_LARGE_STACK( CURSORICON_SetCursor, 0 ); } return CURSOR_ShowCount; } @@ -1002,7 +1006,7 @@ INT32 ShowCursor32( BOOL32 bShow ) /*********************************************************************** * GetCursor16 (USER.247) */ -HCURSOR16 GetCursor16(void) +HCURSOR16 WINAPI GetCursor16(void) { return hActiveCursor; } @@ -1011,7 +1015,7 @@ HCURSOR16 GetCursor16(void) /*********************************************************************** * GetCursor32 (USER32.226) */ -HCURSOR32 GetCursor32(void) +HCURSOR32 WINAPI GetCursor32(void) { return hActiveCursor; } @@ -1020,7 +1024,7 @@ HCURSOR32 GetCursor32(void) /*********************************************************************** * ClipCursor16 (USER.16) */ -BOOL16 ClipCursor16( const RECT16 *rect ) +BOOL16 WINAPI ClipCursor16( const RECT16 *rect ) { if (!rect) SetRectEmpty32( &CURSOR_ClipRect ); else CONV_RECT16TO32( rect, &CURSOR_ClipRect ); @@ -1031,7 +1035,7 @@ BOOL16 ClipCursor16( const RECT16 *rect ) /*********************************************************************** * ClipCursor32 (USER32.52) */ -BOOL32 ClipCursor32( const RECT32 *rect ) +BOOL32 WINAPI ClipCursor32( const RECT32 *rect ) { if (!rect) SetRectEmpty32( &CURSOR_ClipRect ); else CopyRect32( &CURSOR_ClipRect, rect ); @@ -1042,7 +1046,7 @@ BOOL32 ClipCursor32( const RECT32 *rect ) /*********************************************************************** * GetCursorPos16 (USER.17) */ -void GetCursorPos16( POINT16 *pt ) +void WINAPI GetCursorPos16( POINT16 *pt ) { Window root, child; int rootX, rootY, childX, childY; @@ -1064,7 +1068,7 @@ void GetCursorPos16( POINT16 *pt ) /*********************************************************************** * GetCursorPos32 (USER32.228) */ -void GetCursorPos32( POINT32 *pt ) +void WINAPI GetCursorPos32( POINT32 *pt ) { POINT16 pt16; GetCursorPos16( &pt16 ); @@ -1075,7 +1079,7 @@ void GetCursorPos32( POINT32 *pt ) /*********************************************************************** * GetClipCursor16 (USER.309) */ -void GetClipCursor16( RECT16 *rect ) +void WINAPI GetClipCursor16( RECT16 *rect ) { if (rect) CONV_RECT32TO16( &CURSOR_ClipRect, rect ); } @@ -1084,7 +1088,7 @@ void GetClipCursor16( RECT16 *rect ) /*********************************************************************** * GetClipCursor32 (USER32.220) */ -void GetClipCursor32( RECT32 *rect ) +void WINAPI GetClipCursor32( RECT32 *rect ) { if (rect) CopyRect32( rect, &CURSOR_ClipRect ); } @@ -1093,7 +1097,7 @@ void GetClipCursor32( RECT32 *rect ) /********************************************************************** * GetIconID (USER.455) */ -WORD GetIconID( HGLOBAL16 hResource, DWORD resType ) +WORD WINAPI GetIconID( HGLOBAL16 hResource, DWORD resType ) { CURSORICONDIR *lpDir = (CURSORICONDIR *)GlobalLock16(hResource); /* LockResource16(hResource); */ @@ -1132,7 +1136,7 @@ WORD GetIconID( HGLOBAL16 hResource, DWORD resType ) /********************************************************************** * LoadIconHandler (USER.456) */ -HICON16 LoadIconHandler( HGLOBAL16 hResource, BOOL16 bNew ) +HICON16 WINAPI LoadIconHandler( HGLOBAL16 hResource, BOOL16 bNew ) { dprintf_cursor(stddeb,"LoadIconHandler: hRes=%04x\n",hResource); diff --git a/objects/dc.c b/objects/dc.c index 0210fc386b1..77d3996a9cb 100644 --- a/objects/dc.c +++ b/objects/dc.c @@ -141,7 +141,7 @@ DC *DC_AllocDC( const DC_FUNCTIONS *funcs ) DC *dc; if (!(hdc = GDI_AllocObject( sizeof(DC), DC_MAGIC ))) return NULL; - dc = (DC *) GDI_HEAP_LIN_ADDR( hdc ); + dc = (DC *) GDI_HEAP_LOCK( hdc ); dc->hSelf = hdc; dc->funcs = funcs; @@ -163,15 +163,17 @@ DC *DC_AllocDC( const DC_FUNCTIONS *funcs ) } + /*********************************************************************** * DC_GetDCPtr */ DC *DC_GetDCPtr( HDC32 hdc ) { - GDIOBJHDR *ptr = (GDIOBJHDR *)GDI_HEAP_LIN_ADDR( hdc ); + GDIOBJHDR *ptr = (GDIOBJHDR *)GDI_HEAP_LOCK( hdc ); if (!ptr) return NULL; if ((ptr->wMagic == DC_MAGIC) || (ptr->wMagic == METAFILE_DC_MAGIC)) return (DC *)ptr; + GDI_HEAP_UNLOCK( hdc ); return NULL; } @@ -380,14 +382,18 @@ BOOL32 DC_SetupGCForText( DC * dc ) /*********************************************************************** * GetDCState (GDI.179) */ -HDC16 GetDCState( HDC16 hdc ) +HDC16 WINAPI GetDCState( HDC16 hdc ) { DC * newdc, * dc; HGDIOBJ16 handle; if (!(dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ))) return 0; - if (!(handle = GDI_AllocObject( sizeof(DC), DC_MAGIC ))) return 0; - newdc = (DC *) GDI_HEAP_LIN_ADDR( handle ); + if (!(handle = GDI_AllocObject( sizeof(DC), DC_MAGIC ))) + { + GDI_HEAP_UNLOCK( hdc ); + return 0; + } + newdc = (DC *) GDI_HEAP_LOCK( handle ); dprintf_dc(stddeb, "GetDCState(%04x): returning %04x\n", hdc, handle ); @@ -446,6 +452,8 @@ HDC16 GetDCState( HDC16 hdc ) } else newdc->w.hClipRgn = 0; + GDI_HEAP_UNLOCK( handle ); + GDI_HEAP_UNLOCK( hdc ); return handle; } @@ -453,13 +461,22 @@ HDC16 GetDCState( HDC16 hdc ) /*********************************************************************** * SetDCState (GDI.180) */ -void SetDCState( HDC16 hdc, HDC16 hdcs ) +void WINAPI SetDCState( HDC16 hdc, HDC16 hdcs ) { DC *dc, *dcs; if (!(dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ))) return; - if (!(dcs = (DC *) GDI_GetObjPtr( hdcs, DC_MAGIC ))) return; - if (!dcs->w.flags & DC_SAVED) return; + if (!(dcs = (DC *) GDI_GetObjPtr( hdcs, DC_MAGIC ))) + { + GDI_HEAP_UNLOCK( hdc ); + return; + } + if (!dcs->w.flags & DC_SAVED) + { + GDI_HEAP_UNLOCK( hdc ); + GDI_HEAP_UNLOCK( hdcs ); + return; + } dprintf_dc(stddeb, "SetDCState: %04x %04x\n", hdc, hdcs ); dc->w.flags = dcs->w.flags & ~DC_SAVED; @@ -506,13 +523,15 @@ void SetDCState( HDC16 hdc, HDC16 hdcs ) SelectObject32( hdc, dcs->w.hFont ); SelectObject32( hdc, dcs->w.hPen ); GDISelectPalette( hdc, dcs->w.hPalette, FALSE ); + GDI_HEAP_UNLOCK( hdc ); + GDI_HEAP_UNLOCK( hdcs ); } /*********************************************************************** * SaveDC16 (GDI.30) */ -INT16 SaveDC16( HDC16 hdc ) +INT16 WINAPI SaveDC16( HDC16 hdc ) { return (INT16)SaveDC32( hdc ); } @@ -521,10 +540,11 @@ INT16 SaveDC16( HDC16 hdc ) /*********************************************************************** * SaveDC32 (GDI32.292) */ -INT32 SaveDC32( HDC32 hdc ) +INT32 WINAPI SaveDC32( HDC32 hdc ) { HDC32 hdcs; DC * dc, * dcs; + INT32 ret; dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) @@ -532,21 +552,29 @@ INT32 SaveDC32( HDC32 hdc ) dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return 0; MF_MetaParam0(dc, META_SAVEDC); + GDI_HEAP_UNLOCK( hdc ); return 1; /* ?? */ } - if (!(hdcs = GetDCState( hdc ))) return 0; - dcs = (DC *) GDI_HEAP_LIN_ADDR( hdcs ); + if (!(hdcs = GetDCState( hdc ))) + { + GDI_HEAP_UNLOCK( hdc ); + return 0; + } + dcs = (DC *) GDI_HEAP_LOCK( hdcs ); dcs->header.hNext = dc->header.hNext; dc->header.hNext = hdcs; dprintf_dc(stddeb, "SaveDC(%04x): returning %d\n", hdc, dc->saveLevel+1 ); - return ++dc->saveLevel; + ret = ++dc->saveLevel; + GDI_HEAP_UNLOCK( hdcs ); + GDI_HEAP_UNLOCK( hdc ); + return ret; } /*********************************************************************** * RestoreDC16 (GDI.39) */ -BOOL16 RestoreDC16( HDC16 hdc, INT16 level ) +BOOL16 WINAPI RestoreDC16( HDC16 hdc, INT16 level ) { return RestoreDC32( hdc, level ); } @@ -555,7 +583,7 @@ BOOL16 RestoreDC16( HDC16 hdc, INT16 level ) /*********************************************************************** * RestoreDC32 (GDI32.290) */ -BOOL32 RestoreDC32( HDC32 hdc, INT32 level ) +BOOL32 WINAPI RestoreDC32( HDC32 hdc, INT32 level ) { DC * dc, * dcs; @@ -565,21 +593,35 @@ BOOL32 RestoreDC32( HDC32 hdc, INT32 level ) { dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return FALSE; - if (level != -1) return FALSE; + if (level != -1) + { + GDI_HEAP_UNLOCK( hdc ); + return FALSE; + } MF_MetaParam1(dc, META_RESTOREDC, level); + GDI_HEAP_UNLOCK( hdc ); return TRUE; } if (level == -1) level = dc->saveLevel; - if ((level < 1) || (level > dc->saveLevel)) return FALSE; + if ((level < 1) || (level > dc->saveLevel)) + { + GDI_HEAP_UNLOCK( hdc ); + return FALSE; + } while (dc->saveLevel >= level) { HDC16 hdcs = dc->header.hNext; - if (!(dcs = (DC *) GDI_GetObjPtr( hdcs, DC_MAGIC ))) return FALSE; + if (!(dcs = (DC *) GDI_GetObjPtr( hdcs, DC_MAGIC ))) + { + GDI_HEAP_UNLOCK( hdc ); + return FALSE; + } dc->header.hNext = dcs->header.hNext; if (--dc->saveLevel < level) SetDCState( hdc, hdcs ); DeleteDC32( hdcs ); } + GDI_HEAP_UNLOCK( hdc ); return TRUE; } @@ -587,8 +629,8 @@ BOOL32 RestoreDC32( HDC32 hdc, INT32 level ) /*********************************************************************** * CreateDC16 (GDI.53) */ -HDC16 CreateDC16( LPCSTR driver, LPCSTR device, LPCSTR output, - const DEVMODE16 *initData ) +HDC16 WINAPI CreateDC16( LPCSTR driver, LPCSTR device, LPCSTR output, + const DEVMODE16 *initData ) { DC * dc; const DC_FUNCTIONS *funcs; @@ -609,6 +651,7 @@ HDC16 CreateDC16( LPCSTR driver, LPCSTR device, LPCSTR output, } DC_InitDC( dc ); + GDI_HEAP_UNLOCK( dc->hSelf ); return dc->hSelf; } @@ -616,8 +659,8 @@ HDC16 CreateDC16( LPCSTR driver, LPCSTR device, LPCSTR output, /*********************************************************************** * CreateDC32A (GDI32.) */ -HDC32 CreateDC32A( LPCSTR driver, LPCSTR device, LPCSTR output, - const DEVMODE32A *initData ) +HDC32 WINAPI CreateDC32A( LPCSTR driver, LPCSTR device, LPCSTR output, + const DEVMODE32A *initData ) { return CreateDC16( driver, device, output, (const DEVMODE16 *)initData ); } @@ -626,8 +669,8 @@ HDC32 CreateDC32A( LPCSTR driver, LPCSTR device, LPCSTR output, /*********************************************************************** * CreateDC32W (GDI32.) */ -HDC32 CreateDC32W( LPCWSTR driver, LPCWSTR device, LPCWSTR output, - const DEVMODE32W *initData ) +HDC32 WINAPI CreateDC32W( LPCWSTR driver, LPCWSTR device, LPCWSTR output, + const DEVMODE32W *initData ) { LPSTR driverA = HEAP_strdupWtoA( GetProcessHeap(), 0, driver ); LPSTR deviceA = HEAP_strdupWtoA( GetProcessHeap(), 0, device ); @@ -644,8 +687,8 @@ HDC32 CreateDC32W( LPCWSTR driver, LPCWSTR device, LPCWSTR output, /*********************************************************************** * CreateIC16 (GDI.153) */ -HDC16 CreateIC16( LPCSTR driver, LPCSTR device, LPCSTR output, - const DEVMODE16* initData ) +HDC16 WINAPI CreateIC16( LPCSTR driver, LPCSTR device, LPCSTR output, + const DEVMODE16* initData ) { /* Nothing special yet for ICs */ return CreateDC16( driver, device, output, initData ); @@ -655,8 +698,8 @@ HDC16 CreateIC16( LPCSTR driver, LPCSTR device, LPCSTR output, /*********************************************************************** * CreateIC32A (GDI32.49) */ -HDC32 CreateIC32A( LPCSTR driver, LPCSTR device, LPCSTR output, - const DEVMODE32A* initData ) +HDC32 WINAPI CreateIC32A( LPCSTR driver, LPCSTR device, LPCSTR output, + const DEVMODE32A* initData ) { /* Nothing special yet for ICs */ return CreateDC32A( driver, device, output, initData ); @@ -666,8 +709,8 @@ HDC32 CreateIC32A( LPCSTR driver, LPCSTR device, LPCSTR output, /*********************************************************************** * CreateIC32W (GDI32.50) */ -HDC32 CreateIC32W( LPCWSTR driver, LPCWSTR device, LPCWSTR output, - const DEVMODE32W* initData ) +HDC32 WINAPI CreateIC32W( LPCWSTR driver, LPCWSTR device, LPCWSTR output, + const DEVMODE32W* initData ) { /* Nothing special yet for ICs */ return CreateDC32W( driver, device, output, initData ); @@ -677,7 +720,7 @@ HDC32 CreateIC32W( LPCWSTR driver, LPCWSTR device, LPCWSTR output, /*********************************************************************** * CreateCompatibleDC16 (GDI.52) */ -HDC16 CreateCompatibleDC16( HDC16 hdc ) +HDC16 WINAPI CreateCompatibleDC16( HDC16 hdc ) { return (HDC16)CreateCompatibleDC32( hdc ); } @@ -686,7 +729,7 @@ HDC16 CreateCompatibleDC16( HDC16 hdc ) /*********************************************************************** * CreateCompatibleDC32 (GDI32.31) */ -HDC32 CreateCompatibleDC32( HDC32 hdc ) +HDC32 WINAPI CreateCompatibleDC32( HDC32 hdc ) { DC *dc, *origDC; HBITMAP32 hbitmap; @@ -722,6 +765,7 @@ HDC32 CreateCompatibleDC32( HDC32 hdc ) } DC_InitDC( dc ); + GDI_HEAP_UNLOCK( dc->hSelf ); return dc->hSelf; } @@ -729,7 +773,7 @@ HDC32 CreateCompatibleDC32( HDC32 hdc ) /*********************************************************************** * DeleteDC16 (GDI.68) */ -BOOL16 DeleteDC16( HDC16 hdc ) +BOOL16 WINAPI DeleteDC16( HDC16 hdc ) { return DeleteDC32( hdc ); } @@ -738,7 +782,7 @@ BOOL16 DeleteDC16( HDC16 hdc ) /*********************************************************************** * DeleteDC32 (GDI32.67) */ -BOOL32 DeleteDC32( HDC32 hdc ) +BOOL32 WINAPI DeleteDC32( HDC32 hdc ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return FALSE; @@ -775,7 +819,7 @@ BOOL32 DeleteDC32( HDC32 hdc ) /*********************************************************************** * ResetDC16 (GDI.376) */ -HDC16 ResetDC16( HDC16 hdc, const DEVMODE16 *devmode ) +HDC16 WINAPI ResetDC16( HDC16 hdc, const DEVMODE16 *devmode ) { fprintf( stderr, "ResetDC16: empty stub!\n" ); return hdc; @@ -785,7 +829,7 @@ HDC16 ResetDC16( HDC16 hdc, const DEVMODE16 *devmode ) /*********************************************************************** * ResetDC32A (GDI32.287) */ -HDC32 ResetDC32A( HDC32 hdc, const DEVMODE32A *devmode ) +HDC32 WINAPI ResetDC32A( HDC32 hdc, const DEVMODE32A *devmode ) { fprintf( stderr, "ResetDC32A: empty stub!\n" ); return hdc; @@ -795,7 +839,7 @@ HDC32 ResetDC32A( HDC32 hdc, const DEVMODE32A *devmode ) /*********************************************************************** * ResetDC32W (GDI32.288) */ -HDC32 ResetDC32W( HDC32 hdc, const DEVMODE32W *devmode ) +HDC32 WINAPI ResetDC32W( HDC32 hdc, const DEVMODE32W *devmode ) { fprintf( stderr, "ResetDC32A: empty stub!\n" ); return hdc; @@ -805,7 +849,7 @@ HDC32 ResetDC32W( HDC32 hdc, const DEVMODE32W *devmode ) /*********************************************************************** * GetDeviceCaps16 (GDI.80) */ -INT16 GetDeviceCaps16( HDC16 hdc, INT16 cap ) +INT16 WINAPI GetDeviceCaps16( HDC16 hdc, INT16 cap ) { return GetDeviceCaps32( hdc, cap ); } @@ -814,23 +858,31 @@ INT16 GetDeviceCaps16( HDC16 hdc, INT16 cap ) /*********************************************************************** * GetDeviceCaps32 (GDI32.171) */ -INT32 GetDeviceCaps32( HDC32 hdc, INT32 cap ) +INT32 WINAPI GetDeviceCaps32( HDC32 hdc, INT32 cap ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); + INT32 ret; + if (!dc) return 0; - if ((cap < 0) || (cap > sizeof(DeviceCaps)-sizeof(WORD))) return 0; + if ((cap < 0) || (cap > sizeof(DeviceCaps)-sizeof(WORD))) + { + GDI_HEAP_UNLOCK( hdc ); + return 0; + } dprintf_dc(stddeb, "GetDeviceCaps(%04x,%d): returning %d\n", hdc, cap, *(WORD *)(((char *)dc->w.devCaps) + cap) ); - return *(WORD *)(((char *)dc->w.devCaps) + cap); + ret = *(WORD *)(((char *)dc->w.devCaps) + cap); + GDI_HEAP_UNLOCK( hdc ); + return ret; } /*********************************************************************** * SetBkColor16 (GDI.1) */ -COLORREF SetBkColor16( HDC16 hdc, COLORREF color ) +COLORREF WINAPI SetBkColor16( HDC16 hdc, COLORREF color ) { return SetBkColor32( hdc, color ); } @@ -839,7 +891,7 @@ COLORREF SetBkColor16( HDC16 hdc, COLORREF color ) /*********************************************************************** * SetBkColor32 (GDI32.305) */ -COLORREF SetBkColor32( HDC32 hdc, COLORREF color ) +COLORREF WINAPI SetBkColor32( HDC32 hdc, COLORREF color ) { COLORREF oldColor; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -848,12 +900,14 @@ COLORREF SetBkColor32( HDC32 hdc, COLORREF color ) dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return 0x80000000; MF_MetaParam2(dc, META_SETBKCOLOR, HIWORD(color), LOWORD(color)); + GDI_HEAP_UNLOCK( hdc ); return 0; /* ?? */ } oldColor = dc->w.backgroundColor; dc->w.backgroundColor = color; dc->w.backgroundPixel = COLOR_ToPhysical( dc, color ); + GDI_HEAP_UNLOCK( hdc ); return oldColor; } @@ -861,7 +915,7 @@ COLORREF SetBkColor32( HDC32 hdc, COLORREF color ) /*********************************************************************** * SetTextColor16 (GDI.9) */ -COLORREF SetTextColor16( HDC16 hdc, COLORREF color ) +COLORREF WINAPI SetTextColor16( HDC16 hdc, COLORREF color ) { return SetTextColor32( hdc, color ); } @@ -870,7 +924,7 @@ COLORREF SetTextColor16( HDC16 hdc, COLORREF color ) /*********************************************************************** * SetTextColor32 (GDI32.338) */ -COLORREF SetTextColor32( HDC32 hdc, COLORREF color ) +COLORREF WINAPI SetTextColor32( HDC32 hdc, COLORREF color ) { COLORREF oldColor; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -879,12 +933,14 @@ COLORREF SetTextColor32( HDC32 hdc, COLORREF color ) dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return 0x80000000; MF_MetaParam2(dc, META_SETTEXTCOLOR, HIWORD(color), LOWORD(color)); + GDI_HEAP_UNLOCK( hdc ); return 0; /* ?? */ } oldColor = dc->w.textColor; dc->w.textColor = color; dc->w.textPixel = COLOR_ToPhysical( dc, color ); + GDI_HEAP_UNLOCK( hdc ); return oldColor; } @@ -892,7 +948,7 @@ COLORREF SetTextColor32( HDC32 hdc, COLORREF color ) /*********************************************************************** * SetTextAlign16 (GDI.346) */ -UINT16 SetTextAlign16( HDC16 hdc, UINT16 textAlign ) +UINT16 WINAPI SetTextAlign16( HDC16 hdc, UINT16 textAlign ) { return SetTextAlign32( hdc, textAlign ); } @@ -901,7 +957,7 @@ UINT16 SetTextAlign16( HDC16 hdc, UINT16 textAlign ) /*********************************************************************** * SetTextAlign32 (GDI32.336) */ -UINT32 SetTextAlign32( HDC32 hdc, UINT32 textAlign ) +UINT32 WINAPI SetTextAlign32( HDC32 hdc, UINT32 textAlign ) { UINT32 prevAlign; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -909,10 +965,12 @@ UINT32 SetTextAlign32( HDC32 hdc, UINT32 textAlign ) { if (!(dc = (DC *)GDI_GetObjPtr( hdc, METAFILE_DC_MAGIC ))) return 0; MF_MetaParam1( dc, META_SETTEXTALIGN, textAlign ); + GDI_HEAP_UNLOCK( hdc ); return 1; } prevAlign = dc->w.textAlign; dc->w.textAlign = textAlign; + GDI_HEAP_UNLOCK( hdc ); return prevAlign; } @@ -920,10 +978,11 @@ UINT32 SetTextAlign32( HDC32 hdc, UINT32 textAlign ) /*********************************************************************** * GetDCOrgEx (GDI32.168) */ -BOOL32 GetDCOrgEx( HDC32 hDC, LPPOINT32 lpp ) +BOOL32 WINAPI GetDCOrgEx( HDC32 hDC, LPPOINT32 lpp ) { - DC * dc = (DC *) GDI_GetObjPtr( hDC, DC_MAGIC ); - if (!dc || !lpp) return FALSE; + DC * dc; + if (!lpp) return FALSE; + if (!(dc = (DC *) GDI_GetObjPtr( hDC, DC_MAGIC ))) return FALSE; if (!(dc->w.flags & DC_MEMORY)) { @@ -935,6 +994,7 @@ BOOL32 GetDCOrgEx( HDC32 hDC, LPPOINT32 lpp ) } else lpp->x = lpp->y = 0; lpp->x += dc->w.DCOrgX; lpp->y += dc->w.DCOrgY; + GDI_HEAP_UNLOCK( hDC ); return TRUE; } @@ -942,7 +1002,7 @@ BOOL32 GetDCOrgEx( HDC32 hDC, LPPOINT32 lpp ) /*********************************************************************** * GetDCOrg (GDI.79) */ -DWORD GetDCOrg( HDC16 hdc ) +DWORD WINAPI GetDCOrg( HDC16 hdc ) { POINT32 pt; if( GetDCOrgEx( hdc, &pt) ) @@ -954,7 +1014,7 @@ DWORD GetDCOrg( HDC16 hdc ) /*********************************************************************** * SetDCOrg (GDI.117) */ -DWORD SetDCOrg( HDC16 hdc, INT16 x, INT16 y ) +DWORD WINAPI SetDCOrg( HDC16 hdc, INT16 x, INT16 y ) { DWORD prevOrg; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -962,6 +1022,7 @@ DWORD SetDCOrg( HDC16 hdc, INT16 x, INT16 y ) prevOrg = dc->w.DCOrgX | (dc->w.DCOrgY << 16); dc->w.DCOrgX = x; dc->w.DCOrgY = y; + GDI_HEAP_UNLOCK( hdc ); return prevOrg; } @@ -969,7 +1030,7 @@ DWORD SetDCOrg( HDC16 hdc, INT16 x, INT16 y ) /*********************************************************************** * SetDCHook (GDI.190) */ -BOOL16 SetDCHook( HDC16 hdc, FARPROC16 hookProc, DWORD dwHookData ) +BOOL16 WINAPI SetDCHook( HDC16 hdc, FARPROC16 hookProc, DWORD dwHookData ) { DC *dc = (DC *)GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -979,6 +1040,7 @@ BOOL16 SetDCHook( HDC16 hdc, FARPROC16 hookProc, DWORD dwHookData ) if (!dc) return FALSE; dc->hookProc = hookProc; dc->dwHookData = dwHookData; + GDI_HEAP_UNLOCK( hdc ); return TRUE; } @@ -986,11 +1048,12 @@ BOOL16 SetDCHook( HDC16 hdc, FARPROC16 hookProc, DWORD dwHookData ) /*********************************************************************** * GetDCHook (GDI.191) */ -DWORD GetDCHook( HDC16 hdc, FARPROC16 *phookProc ) +DWORD WINAPI GetDCHook( HDC16 hdc, FARPROC16 *phookProc ) { DC *dc = (DC *)GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return 0; *phookProc = dc->hookProc; + GDI_HEAP_UNLOCK( hdc ); return dc->dwHookData; } @@ -998,7 +1061,7 @@ DWORD GetDCHook( HDC16 hdc, FARPROC16 *phookProc ) /*********************************************************************** * SetHookFlags (GDI.192) */ -WORD SetHookFlags(HDC16 hDC, WORD flags) +WORD WINAPI SetHookFlags(HDC16 hDC, WORD flags) { DC* dc = (DC*)GDI_GetObjPtr( hDC, DC_MAGIC ); @@ -1016,6 +1079,7 @@ WORD SetHookFlags(HDC16 hDC, WORD flags) dc->w.flags |= DC_DIRTY; else if( flags & DCHF_VALIDATEVISRGN || !flags ) dc->w.flags &= ~DC_DIRTY; + GDI_HEAP_UNLOCK( hDC ); return wRet; } return 0; diff --git a/objects/dcvalues.c b/objects/dcvalues.c index 9ea8221ebaa..df7de094cff 100644 --- a/objects/dcvalues.c +++ b/objects/dcvalues.c @@ -10,7 +10,7 @@ #define DC_GET_VAL_16( func_type, func_name, dc_field ) \ -func_type func_name( HDC16 hdc ) \ +func_type WINAPI func_name( HDC16 hdc ) \ { \ DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \ if (!dc) return 0; \ @@ -18,7 +18,7 @@ func_type func_name( HDC16 hdc ) \ } #define DC_GET_VAL_32( func_type, func_name, dc_field ) \ -func_type func_name( HDC32 hdc ) \ +func_type WINAPI func_name( HDC32 hdc ) \ { \ DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \ if (!dc) return 0; \ @@ -26,7 +26,7 @@ func_type func_name( HDC32 hdc ) \ } #define DC_GET_X_Y( func_type, func_name, ret_x, ret_y ) \ -func_type func_name( HDC16 hdc ) \ +func_type WINAPI func_name( HDC16 hdc ) \ { \ DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \ if (!dc) return 0; \ @@ -34,7 +34,7 @@ func_type func_name( HDC16 hdc ) \ } #define DC_GET_VAL_EX( func_name, ret_x, ret_y ) \ -BOOL16 func_name##16( HDC16 hdc, LPPOINT16 pt ) \ +BOOL16 WINAPI func_name##16( HDC16 hdc, LPPOINT16 pt ) \ { \ DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \ if (!dc) return FALSE; \ @@ -43,7 +43,7 @@ BOOL16 func_name##16( HDC16 hdc, LPPOINT16 pt ) \ return TRUE; \ } \ \ -BOOL32 func_name##32( HDC32 hdc, LPPOINT32 pt ) \ +BOOL32 WINAPI func_name##32( HDC32 hdc, LPPOINT32 pt ) \ { \ DC * dc = (DC *) GDI_GetObjPtr( (HDC16)hdc, DC_MAGIC ); \ if (!dc) return FALSE; \ @@ -53,7 +53,7 @@ BOOL32 func_name##32( HDC32 hdc, LPPOINT32 pt ) \ } #define DC_SET_MODE_16( func_name, dc_field, min_val, max_val, meta_func ) \ -INT16 func_name( HDC16 hdc, INT16 mode ) \ +INT16 WINAPI func_name( HDC16 hdc, INT16 mode ) \ { \ INT16 prevMode; \ DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \ @@ -70,7 +70,7 @@ INT16 func_name( HDC16 hdc, INT16 mode ) \ } #define DC_SET_MODE_32( func_name, dc_field, min_val, max_val, meta_func ) \ -INT32 func_name( HDC32 hdc, INT32 mode ) \ +INT32 WINAPI func_name( HDC32 hdc, INT32 mode ) \ { \ INT32 prevMode; \ DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \ diff --git a/objects/dib.c b/objects/dib.c index 433cf71aeb5..9746225152a 100644 --- a/objects/dib.c +++ b/objects/dib.c @@ -18,8 +18,31 @@ extern void CLIPPING_UpdateGCRegion(DC* ); -static int bitmapDepthTable[] = { 8, 1, 32, 16, 24, 15, 4, 0 }; -static int ximageDepthTable[] = { 0, 0, 0, 0, 0, 0, 0 }; +static int bitmapDepthTable[] = { 8, 1, 32, 16, 24, 15, 4, 0 }; +static int ximageDepthTable[] = { 0, 0, 0, 0, 0, 0, 0 }; + + +/* This structure holds the arguments for DIB_SetImageBits() */ +typedef struct +{ + DC *dc; + LPCVOID bits; + DWORD lines; + DWORD infoWidth; + WORD depth; + WORD infoBpp; + const BITMAPINFO *info; + WORD coloruse; + Drawable drawable; + GC gc; + int xSrc; + int ySrc; + int xDest; + int yDest; + int width; + int height; +} DIB_SETIMAGEBITS_DESCR; + /*********************************************************************** * DIB_Init @@ -152,7 +175,7 @@ static int DIB_GetBitmapInfo( const BITMAPINFOHEADER *header, DWORD *width, * for a 24-bit deep bitmap. */ static int *DIB_BuildColorMap( DC *dc, WORD coloruse, WORD depth, - BITMAPINFO *info ) + const BITMAPINFO *info ) { int i, colors; BOOL32 isInfo; @@ -217,18 +240,20 @@ static int *DIB_BuildColorMap( DC *dc, WORD coloruse, WORD depth, * * SetDIBits for a 1-bit deep DIB. */ -static void DIB_SetImageBits_1( DWORD lines, BYTE *bits, DWORD width, +static void DIB_SetImageBits_1( DWORD lines, const BYTE *srcbits, + DWORD srcwidth, DWORD dstwidth, int *colors, XImage *bmpImage ) { DWORD i, x; - BYTE pad, pix; + BYTE pix; + const BYTE *bits = srcbits; - if (!(width & 31)) pad = 0; - else pad = ((32 - (width & 31)) + 7) / 8; + /* 32 bit aligned */ + DWORD linebytes = ((srcwidth + 31) & ~31) / 8; while (lines--) { - for (i = width/8, x = 0; (i > 0); i--) + for (i = dstwidth/8, x = 0; (i > 0); i--) { pix = *bits++; XPutPixel( bmpImage, x++, lines, colors[pix >> 7] ); @@ -241,7 +266,7 @@ static void DIB_SetImageBits_1( DWORD lines, BYTE *bits, DWORD width, XPutPixel( bmpImage, x++, lines, colors[pix & 1] ); } pix = *bits; - switch(width & 7) + switch(dstwidth & 7) { case 7: XPutPixel( bmpImage, x++, lines, colors[pix >> 7] ); pix <<= 1; case 6: XPutPixel( bmpImage, x++, lines, colors[pix >> 7] ); pix <<= 1; @@ -251,7 +276,8 @@ static void DIB_SetImageBits_1( DWORD lines, BYTE *bits, DWORD width, case 2: XPutPixel( bmpImage, x++, lines, colors[pix >> 7] ); pix <<= 1; case 1: XPutPixel( bmpImage, x++, lines, colors[pix >> 7] ); } - bits += pad; + srcbits += linebytes; + bits = srcbits; } } @@ -261,25 +287,27 @@ static void DIB_SetImageBits_1( DWORD lines, BYTE *bits, DWORD width, * * SetDIBits for a 4-bit deep DIB. */ -static void DIB_SetImageBits_4( DWORD lines, BYTE *bits, DWORD width, +static void DIB_SetImageBits_4( DWORD lines, const BYTE *srcbits, + DWORD srcwidth, DWORD dstwidth, int *colors, XImage *bmpImage ) { DWORD i, x; - BYTE pad; - - if (!(width & 7)) pad = 0; - else pad = ((8 - (width & 7)) + 1) / 2; + const BYTE *bits = srcbits; + + /* 32 bit aligned */ + DWORD linebytes = ((srcwidth+7)&~7)/2; while (lines--) { - for (i = width/2, x = 0; i > 0; i--) + for (i = srcwidth/2, x = 0; i > 0; i--) { BYTE pix = *bits++; XPutPixel( bmpImage, x++, lines, colors[pix >> 4] ); XPutPixel( bmpImage, x++, lines, colors[pix & 0x0f] ); } - if (width & 1) XPutPixel( bmpImage, x, lines, colors[*bits >> 4] ); - bits += pad; + if (srcwidth & 1) XPutPixel( bmpImage, x, lines, colors[*bits >> 4] ); + srcbits += linebytes; + bits = srcbits; } } @@ -295,11 +323,11 @@ static void DIB_SetImageBits_4( DWORD lines, BYTE *bits, DWORD width, * * SetDIBits for a 4-bit deep compressed DIB. */ -static void DIB_SetImageBits_RLE4( DWORD lines, BYTE *bits, DWORD width, - int *colors, XImage *bmpImage ) +static void DIB_SetImageBits_RLE4( DWORD lines, const BYTE *bits, DWORD width, + DWORD dstwidth, int *colors, XImage *bmpImage ) { int x = 0, c, length; - BYTE *begin = bits; + const BYTE *begin = bits; lines--; while ((int)lines >= 0) @@ -355,17 +383,22 @@ static void DIB_SetImageBits_RLE4( DWORD lines, BYTE *bits, DWORD width, * * SetDIBits for an 8-bit deep DIB. */ -static void DIB_SetImageBits_8( DWORD lines, BYTE *bits, DWORD width, +static void DIB_SetImageBits_8( DWORD lines, const BYTE *srcbits, + DWORD srcwidth, DWORD dstwidth, int *colors, XImage *bmpImage ) { DWORD x; - BYTE pad = (4 - (width & 3)) & 3; + const BYTE *bits = srcbits; + + /* align to 32 bit */ + DWORD linebytes = (srcwidth + 3) & ~3; while (lines--) { - for (x = 0; x < width; x++) + for (x = 0; x < dstwidth; x++) XPutPixel( bmpImage, x, lines, colors[*bits++] ); - bits += pad; + srcbits += linebytes; + bits = srcbits; } } @@ -400,12 +433,12 @@ enum Rle8_EscapeCodes RleDelta = 2 /* Delta */ }; -static void DIB_SetImageBits_RLE8( DWORD lines, BYTE *bits, DWORD width, - int *colors, XImage *bmpImage ) +static void DIB_SetImageBits_RLE8( DWORD lines, const BYTE *bits, DWORD width, + DWORD dstwidth, int *colors, XImage *bmpImage ) { int x; /* X-positon on each line. Increases. */ int line; /* Line #. Starts at lines-1, decreases */ - BYTE *pIn = bits; /* Pointer to current position in bits */ + const BYTE *pIn = bits; /* Pointer to current position in bits */ BYTE length; /* The length pf a run */ BYTE color_index; /* index into colors[] as read from bits */ BYTE escape_code; /* See enum Rle8_EscapeCodes.*/ @@ -553,21 +586,25 @@ static void DIB_SetImageBits_RLE8( DWORD lines, BYTE *bits, DWORD width, * * SetDIBits for a 24-bit deep DIB. */ -static void DIB_SetImageBits_24( DWORD lines, BYTE *bits, DWORD width, +static void DIB_SetImageBits_24( DWORD lines, const BYTE *srcbits, + DWORD srcwidth, DWORD dstwidth, DC *dc, XImage *bmpImage ) { DWORD x; - BYTE pad = (4 - ((width*3) & 3)) & 3; + const BYTE *bits = srcbits; + + /* align to 32 bit */ + DWORD linebytes = (srcwidth * 3 + 3) & ~3; /* "bits" order is reversed for some reason */ while (lines--) { - for (x = 0; x < width; x++, bits += 3) + for (x = 0; x < dstwidth; x++, bits += 3) XPutPixel( bmpImage, x, lines, COLOR_ToPhysical(dc, RGB(bits[2],bits[1],bits[0])) ); - bits += pad; + bits = (srcbits += linebytes); } } @@ -578,70 +615,68 @@ static void DIB_SetImageBits_24( DWORD lines, BYTE *bits, DWORD width, * Transfer the bits to an X image. * Helper function for SetDIBits() and SetDIBitsToDevice(). */ -static int DIB_SetImageBits( DC *dc, DWORD lines, WORD depth, LPSTR bits, - DWORD infoWidth, WORD infoBpp, - BITMAPINFO *info, WORD coloruse, - Drawable drawable, GC gc, int xSrc, int ySrc, - int xDest, int yDest, int width, int height ) +static int DIB_SetImageBits( const DIB_SETIMAGEBITS_DESCR *descr ) { int *colorMapping; XImage *bmpImage; DWORD compression = 0; - if (info->bmiHeader.biSize == sizeof(BITMAPINFOHEADER)) - compression = info->bmiHeader.biCompression; + if (descr->info->bmiHeader.biSize == sizeof(BITMAPINFOHEADER)) + compression = descr->info->bmiHeader.biCompression; /* Build the color mapping table */ - if (infoBpp > 8) { - colorMapping = NULL; - } else { - if (!(colorMapping = DIB_BuildColorMap( dc, coloruse, depth, info ))) - return 0; - } + if (descr->infoBpp > 8) colorMapping = NULL; + else if (!(colorMapping = DIB_BuildColorMap( descr->dc, descr->coloruse, + descr->depth, descr->info ))) + return 0; - if( dc->w.flags & DC_DIRTY ) CLIPPING_UpdateGCRegion(dc); + if( descr->dc->w.flags & DC_DIRTY ) CLIPPING_UpdateGCRegion(descr->dc); /* Transfer the pixels */ - XCREATEIMAGE(bmpImage, infoWidth, lines, depth ); + XCREATEIMAGE(bmpImage, descr->infoWidth, descr->lines, descr->depth ); - switch(infoBpp) + switch(descr->infoBpp) { case 1: - DIB_SetImageBits_1( lines, bits, infoWidth, - colorMapping, bmpImage ); + DIB_SetImageBits_1( descr->lines, descr->bits, descr->infoWidth, + descr->width, colorMapping, bmpImage ); break; case 4: - if (compression) DIB_SetImageBits_RLE4( lines, bits, infoWidth, + if (compression) DIB_SetImageBits_RLE4( descr->lines, descr->bits, + descr->infoWidth, descr->width, colorMapping, bmpImage ); - else DIB_SetImageBits_4( lines, bits, infoWidth, - colorMapping, bmpImage ); + else DIB_SetImageBits_4( descr->lines, descr->bits, descr->infoWidth, + descr->width, colorMapping, bmpImage ); break; case 8: - if (compression) DIB_SetImageBits_RLE8( lines, bits, infoWidth, + if (compression) DIB_SetImageBits_RLE8( descr->lines, descr->bits, + descr->infoWidth, descr->width, colorMapping, bmpImage ); - else DIB_SetImageBits_8( lines, bits, infoWidth, - colorMapping, bmpImage ); + else DIB_SetImageBits_8( descr->lines, descr->bits, descr->infoWidth, + descr->width, colorMapping, bmpImage ); break; case 24: - DIB_SetImageBits_24( lines, bits, infoWidth, dc, bmpImage ); + DIB_SetImageBits_24( descr->lines, descr->bits, descr->infoWidth, + descr->width, descr->dc, bmpImage ); break; default: - fprintf( stderr, "Invalid depth %d for SetDIBits!\n", infoBpp ); + fprintf( stderr, "Invalid depth %d for SetDIBits!\n", descr->infoBpp ); break; } if (colorMapping) free(colorMapping); - XPutImage( display, drawable, gc, bmpImage, xSrc, ySrc, - xDest, yDest, width, height ); + XPutImage( display, descr->drawable, descr->gc, bmpImage, + descr->xSrc, descr->ySrc, descr->xDest, descr->yDest, + descr->width, descr->height ); XDestroyImage( bmpImage ); - return lines; + return descr->lines; } /*********************************************************************** * StretchDIBits16 (GDI.439) */ -INT16 StretchDIBits16( HDC16 hdc, INT16 xDst, INT16 yDst, INT16 widthDst, +INT16 WINAPI StretchDIBits16(HDC16 hdc, INT16 xDst, INT16 yDst, INT16 widthDst, INT16 heightDst, INT16 xSrc, INT16 ySrc, INT16 widthSrc, INT16 heightSrc, const VOID *bits, const BITMAPINFO *info, UINT16 wUsage, DWORD dwRop ) @@ -655,7 +690,7 @@ INT16 StretchDIBits16( HDC16 hdc, INT16 xDst, INT16 yDst, INT16 widthDst, /*********************************************************************** * StretchDIBits32 (GDI32.351) */ -INT32 StretchDIBits32( HDC32 hdc, INT32 xDst, INT32 yDst, INT32 widthDst, +INT32 WINAPI StretchDIBits32(HDC32 hdc, INT32 xDst, INT32 yDst, INT32 widthDst, INT32 heightDst, INT32 xSrc, INT32 ySrc, INT32 widthSrc, INT32 heightSrc, const void *bits, const BITMAPINFO *info, UINT32 wUsage, DWORD dwRop ) @@ -679,9 +714,9 @@ INT32 StretchDIBits32( HDC32 hdc, INT32 xDst, INT32 yDst, INT32 widthDst, /*********************************************************************** * SetDIBits16 (GDI.440) */ -INT16 SetDIBits16( HDC16 hdc, HBITMAP16 hbitmap, UINT16 startscan, - UINT16 lines, LPCVOID bits, const BITMAPINFO *info, - UINT16 coloruse ) +INT16 WINAPI SetDIBits16( HDC16 hdc, HBITMAP16 hbitmap, UINT16 startscan, + UINT16 lines, LPCVOID bits, const BITMAPINFO *info, + UINT16 coloruse ) { return SetDIBits32( hdc, hbitmap, startscan, lines, bits, info, coloruse ); } @@ -690,43 +725,68 @@ INT16 SetDIBits16( HDC16 hdc, HBITMAP16 hbitmap, UINT16 startscan, /*********************************************************************** * SetDIBits32 (GDI32.312) */ -INT32 SetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, - UINT32 lines, LPCVOID bits, const BITMAPINFO *info, - UINT32 coloruse ) +INT32 WINAPI SetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, + UINT32 lines, LPCVOID bits, const BITMAPINFO *info, + UINT32 coloruse ) { - DC * dc; + DIB_SETIMAGEBITS_DESCR descr; BITMAPOBJ * bmp; - DWORD width, height; - WORD bpp; + DWORD height; + INT32 result; /* Check parameters */ - dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); - if (!dc) + descr.dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); + if (!descr.dc) { - dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); - if (!dc) return 0; + descr.dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); + if (!descr.dc) return 0; } if (!(bmp = (BITMAPOBJ *)GDI_GetObjPtr( hbitmap, BITMAP_MAGIC ))) - return 0; - if (DIB_GetBitmapInfo( &info->bmiHeader, &width, &height, &bpp ) == -1) + { + GDI_HEAP_UNLOCK( hdc ); return 0; - if (!lines || (startscan >= (WORD)height)) return 0; + } + if (DIB_GetBitmapInfo( &info->bmiHeader, &descr.infoWidth, &height, + &descr.infoBpp ) == -1) + { + GDI_HEAP_UNLOCK( hbitmap ); + GDI_HEAP_UNLOCK( hdc ); + return 0; + } + if (!lines || (startscan >= height)) + { + GDI_HEAP_UNLOCK( hbitmap ); + GDI_HEAP_UNLOCK( hdc ); + return 0; + } if (startscan + lines > height) lines = height - startscan; - return CallTo32_LargeStack( (int(*)())DIB_SetImageBits, 16, - dc, lines, bmp->bitmap.bmBitsPixel, - bits, width, bpp, info, - coloruse, bmp->pixmap, BITMAP_GC(bmp), 0, 0, 0, - height - startscan - lines, - bmp->bitmap.bmWidth, lines ); + descr.bits = bits; + descr.lines = lines; + descr.depth = bmp->bitmap.bmBitsPixel; + descr.info = info; + descr.coloruse = coloruse; + descr.drawable = bmp->pixmap; + descr.gc = BITMAP_GC(bmp); + descr.xSrc = 0; + descr.ySrc = 0; + descr.xDest = 0; + descr.yDest = height - startscan - lines; + descr.width = bmp->bitmap.bmWidth; + descr.height = lines; + + result = CALL_LARGE_STACK( DIB_SetImageBits, &descr ); + GDI_HEAP_UNLOCK( hdc ); + GDI_HEAP_UNLOCK( hbitmap ); + return result; } /*********************************************************************** * SetDIBitsToDevice16 (GDI.443) */ -INT16 SetDIBitsToDevice16( HDC16 hdc, INT16 xDest, INT16 yDest, INT16 cx, +INT16 WINAPI SetDIBitsToDevice16(HDC16 hdc, INT16 xDest, INT16 yDest, INT16 cx, INT16 cy, INT16 xSrc, INT16 ySrc, UINT16 startscan, UINT16 lines, LPCVOID bits, const BITMAPINFO *info, UINT16 coloruse ) @@ -739,14 +799,14 @@ INT16 SetDIBitsToDevice16( HDC16 hdc, INT16 xDest, INT16 yDest, INT16 cx, /*********************************************************************** * SetDIBitsToDevice32 (GDI32.313) */ -INT32 SetDIBitsToDevice32( HDC32 hdc, INT32 xDest, INT32 yDest, DWORD cx, +INT32 WINAPI SetDIBitsToDevice32(HDC32 hdc, INT32 xDest, INT32 yDest, DWORD cx, DWORD cy, INT32 xSrc, INT32 ySrc, UINT32 startscan, UINT32 lines, LPCVOID bits, const BITMAPINFO *info, UINT32 coloruse ) { + DIB_SETIMAGEBITS_DESCR descr; DC * dc; DWORD width, height; - WORD bpp; /* Check parameters */ @@ -756,7 +816,8 @@ INT32 SetDIBitsToDevice32( HDC32 hdc, INT32 xDest, INT32 yDest, DWORD cx, dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); if (!dc) return 0; } - if (DIB_GetBitmapInfo( &info->bmiHeader, &width, &height, &bpp ) == -1) + if (DIB_GetBitmapInfo( &info->bmiHeader, &width, + &height, &descr.infoBpp ) == -1) return 0; if (!lines || (startscan >= height)) return 0; if (startscan + lines > height) lines = height - startscan; @@ -769,14 +830,24 @@ INT32 SetDIBitsToDevice32( HDC32 hdc, INT32 xDest, INT32 yDest, DWORD cx, DC_SetupGCForText( dc ); /* To have the correct colors */ XSetFunction( display, dc->u.x.gc, DC_XROPfunction[dc->w.ROPmode-1] ); - return CallTo32_LargeStack( (int(*)())DIB_SetImageBits, 16, - dc, lines, dc->w.bitsPerPixel, bits, width, - bpp, info, coloruse, - dc->u.x.drawable, dc->u.x.gc, - xSrc, ySrc - startscan, - dc->w.DCOrgX + XLPTODP( dc, xDest ), - dc->w.DCOrgY + YLPTODP( dc, yDest ), - cx, cy ); + + descr.dc = dc; + descr.bits = bits; + descr.lines = lines; + descr.infoWidth = width; + descr.depth = dc->w.bitsPerPixel; + descr.info = info; + descr.coloruse = coloruse; + descr.drawable = dc->u.x.drawable; + descr.gc = dc->u.x.gc; + descr.xSrc = xSrc; + descr.ySrc = ySrc - startscan; + descr.xDest = dc->w.DCOrgX + XLPTODP( dc, xDest ); + descr.yDest = dc->w.DCOrgY + YLPTODP( dc, yDest ); + descr.width = cx; + descr.height = cy; + + return CALL_LARGE_STACK( DIB_SetImageBits, &descr ); } @@ -784,9 +855,9 @@ INT32 SetDIBitsToDevice32( HDC32 hdc, INT32 xDest, INT32 yDest, DWORD cx, /*********************************************************************** * GetDIBits16 (GDI.441) */ -INT16 GetDIBits16( HDC16 hdc, HBITMAP16 hbitmap, UINT16 startscan, - UINT16 lines, LPSTR bits, BITMAPINFO * info, - UINT16 coloruse ) +INT16 WINAPI GetDIBits16( HDC16 hdc, HBITMAP16 hbitmap, UINT16 startscan, + UINT16 lines, LPSTR bits, BITMAPINFO * info, + UINT16 coloruse ) { return GetDIBits32( hdc, hbitmap, startscan, lines, bits, info, coloruse ); } @@ -797,9 +868,9 @@ INT16 GetDIBits16( HDC16 hdc, HBITMAP16 hbitmap, UINT16 startscan, * * http://www.microsoft.com/msdn/sdk/platforms/doc/sdk/win32/func/src/f30_14.htm */ -INT32 GetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, - UINT32 lines, LPSTR bits, BITMAPINFO * info, - UINT32 coloruse ) +INT32 WINAPI GetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, + UINT32 lines, LPSTR bits, BITMAPINFO * info, + UINT32 coloruse ) { DC * dc; BITMAPOBJ * bmp; @@ -818,7 +889,10 @@ INT32 GetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, if (!(bmp = (BITMAPOBJ *)GDI_GetObjPtr( hbitmap, BITMAP_MAGIC ))) return 0; if (!(palette = (PALETTEOBJ*)GDI_GetObjPtr( dc->w.hPalette, PALETTE_MAGIC ))) - return 0; + { + GDI_HEAP_UNLOCK( hbitmap ); + return 0; + } /* Transfer color info */ @@ -851,7 +925,11 @@ INT32 GetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, if( lines > info->bmiHeader.biHeight ) lines = info->bmiHeader.biHeight; yend = startscan + lines; if( startscan >= bmp->bitmap.bmHeight ) - return FALSE; + { + GDI_HEAP_UNLOCK( hbitmap ); + GDI_HEAP_UNLOCK( dc->w.hPalette ); + return FALSE; + } if( yend > bmp->bitmap.bmHeight ) yend = bmp->bitmap.bmHeight; /* adjust scanline width */ @@ -861,12 +939,11 @@ INT32 GetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, { /* bitmap is wider than DIB, copy only a part */ - pad = 0; xend = info->bmiHeader.biWidth; + pad = 0; + xend = info->bmiHeader.biWidth; } - bmpImage = (XImage *)CallTo32_LargeStack( (int (*)())XGetImage, 8, - display, bmp->pixmap, 0, 0, bmp->bitmap.bmWidth, - bmp->bitmap.bmHeight, AllPlanes, ZPixmap ); + bmpImage = (XImage *)CALL_LARGE_STACK( BITMAP_GetXImage, bmp ); switch( info->bmiHeader.biBitCount ) { @@ -965,6 +1042,8 @@ INT32 GetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, info->bmiHeader.biCompression = 0; } + GDI_HEAP_UNLOCK( hbitmap ); + GDI_HEAP_UNLOCK( dc->w.hPalette ); return lines; } @@ -972,7 +1051,7 @@ INT32 GetDIBits32( HDC32 hdc, HBITMAP32 hbitmap, UINT32 startscan, /*********************************************************************** * CreateDIBitmap16 (GDI.442) */ -HBITMAP16 CreateDIBitmap16( HDC16 hdc, const BITMAPINFOHEADER * header, +HBITMAP16 WINAPI CreateDIBitmap16( HDC16 hdc, const BITMAPINFOHEADER * header, DWORD init, LPCVOID bits, const BITMAPINFO * data, UINT16 coloruse ) { @@ -983,7 +1062,7 @@ HBITMAP16 CreateDIBitmap16( HDC16 hdc, const BITMAPINFOHEADER * header, /*********************************************************************** * CreateDIBitmap32 (GDI32.37) */ -HBITMAP32 CreateDIBitmap32( HDC32 hdc, const BITMAPINFOHEADER *header, +HBITMAP32 WINAPI CreateDIBitmap32( HDC32 hdc, const BITMAPINFOHEADER *header, DWORD init, LPCVOID bits, const BITMAPINFO *data, UINT32 coloruse ) { diff --git a/objects/font.c b/objects/font.c index 75dcf63bc41..216962f701d 100644 --- a/objects/font.c +++ b/objects/font.c @@ -177,7 +177,7 @@ void FONT_TextMetric32Ato32W( LPTEXTMETRIC32A ptm32A, LPTEXTMETRIC32W ptm32W ) /*********************************************************************** * CreateFontIndirect16 (GDI.57) */ -HFONT16 CreateFontIndirect16( const LOGFONT16 *font ) +HFONT16 WINAPI CreateFontIndirect16( const LOGFONT16 *font ) { HFONT16 hFont = 0; @@ -187,7 +187,7 @@ HFONT16 CreateFontIndirect16( const LOGFONT16 *font ) if( hFont ) { FONTOBJ* fontPtr; - fontPtr = (FONTOBJ *) GDI_HEAP_LIN_ADDR( hFont ); + fontPtr = (FONTOBJ *) GDI_HEAP_LOCK( hFont ); memcpy( &fontPtr->logfont, font, sizeof(LOGFONT16) ); dprintf_font(stddeb,"CreateFontIndirect(%i %i) '%s' %s %s => %04x\n", @@ -196,6 +196,7 @@ HFONT16 CreateFontIndirect16( const LOGFONT16 *font ) font->lfWeight > 400 ? "Bold" : "", font->lfItalic ? "Italic" : "", hFont); + GDI_HEAP_UNLOCK( hFont ); } } else fprintf(stderr,"CreateFontIndirect(NULL) => NULL\n"); @@ -206,7 +207,7 @@ HFONT16 CreateFontIndirect16( const LOGFONT16 *font ) /*********************************************************************** * CreateFontIndirect32A (GDI32.44) */ -HFONT32 CreateFontIndirect32A( const LOGFONT32A *font ) +HFONT32 WINAPI CreateFontIndirect32A( const LOGFONT32A *font ) { LOGFONT16 font16; @@ -217,7 +218,7 @@ HFONT32 CreateFontIndirect32A( const LOGFONT32A *font ) /*********************************************************************** * CreateFontIndirect32W (GDI32.45) */ -HFONT32 CreateFontIndirect32W( const LOGFONT32W *font ) +HFONT32 WINAPI CreateFontIndirect32W( const LOGFONT32W *font ) { LOGFONT16 font16; @@ -228,10 +229,11 @@ HFONT32 CreateFontIndirect32W( const LOGFONT32W *font ) /*********************************************************************** * CreateFont16 (GDI.56) */ -HFONT16 CreateFont16( INT16 height, INT16 width, INT16 esc, INT16 orient, - INT16 weight, BYTE italic, BYTE underline, - BYTE strikeout, BYTE charset, BYTE outpres, - BYTE clippres, BYTE quality, BYTE pitch, LPCSTR name ) +HFONT16 WINAPI CreateFont16(INT16 height, INT16 width, INT16 esc, INT16 orient, + INT16 weight, BYTE italic, BYTE underline, + BYTE strikeout, BYTE charset, BYTE outpres, + BYTE clippres, BYTE quality, BYTE pitch, + LPCSTR name ) { LOGFONT16 logfont = { height, width, esc, orient, weight, italic, underline, strikeout, charset, outpres, clippres, quality, pitch, }; @@ -247,10 +249,11 @@ HFONT16 CreateFont16( INT16 height, INT16 width, INT16 esc, INT16 orient, /************************************************************************* * CreateFont32A (GDI32.43) */ -HFONT32 CreateFont32A( INT32 height, INT32 width, INT32 esc, INT32 orient, - INT32 weight, DWORD italic, DWORD underline, - DWORD strikeout, DWORD charset, DWORD outpres, - DWORD clippres, DWORD quality, DWORD pitch, LPCSTR name) +HFONT32 WINAPI CreateFont32A( INT32 height, INT32 width, INT32 esc, + INT32 orient, INT32 weight, DWORD italic, + DWORD underline, DWORD strikeout, DWORD charset, + DWORD outpres, DWORD clippres, DWORD quality, + DWORD pitch, LPCSTR name ) { return (HFONT32)CreateFont16( height, width, esc, orient, weight, italic, underline, strikeout, charset, outpres, @@ -260,11 +263,11 @@ HFONT32 CreateFont32A( INT32 height, INT32 width, INT32 esc, INT32 orient, /************************************************************************* * CreateFont32W (GDI32.46) */ -HFONT32 CreateFont32W( INT32 height, INT32 width, INT32 esc, INT32 orient, - INT32 weight, DWORD italic, DWORD underline, - DWORD strikeout, DWORD charset, DWORD outpres, - DWORD clippres, DWORD quality, DWORD pitch, - LPCWSTR name ) +HFONT32 WINAPI CreateFont32W( INT32 height, INT32 width, INT32 esc, + INT32 orient, INT32 weight, DWORD italic, + DWORD underline, DWORD strikeout, DWORD charset, + DWORD outpres, DWORD clippres, DWORD quality, + DWORD pitch, LPCWSTR name ) { LPSTR namea = HEAP_strdupWtoA( GetProcessHeap(), 0, name ); HFONT32 ret = (HFONT32)CreateFont16( height, width, esc, orient, weight, @@ -358,7 +361,9 @@ static INT32 FONT_EnumInstance32( LPENUMLOGFONT16 plf, /*********************************************************************** * EnumFontFamiliesEx16 (GDI.613) */ -INT16 EnumFontFamiliesEx16( HDC16 hDC, LPLOGFONT16 plf, FONTENUMPROCEX16 efproc, LPARAM lParam, DWORD dwFlags) +INT16 WINAPI EnumFontFamiliesEx16( HDC16 hDC, LPLOGFONT16 plf, + FONTENUMPROCEX16 efproc, LPARAM lParam, + DWORD dwFlags) { INT16 retVal = 0; DC* dc = (DC*) GDI_GetObjPtr( hDC, DC_MAGIC ); @@ -419,8 +424,9 @@ static INT32 FONT_EnumFontFamiliesEx32( HDC32 hDC, LPLOGFONT32W plf, FONTENUMPRO /*********************************************************************** * EnumFontFamiliesEx32W (GDI32.82) */ -INT32 EnumFontFamiliesEx32W( HDC32 hDC, LPLOGFONT32W plf, FONTENUMPROCEX32W efproc, - LPARAM lParam, DWORD dwFlags ) +INT32 WINAPI EnumFontFamiliesEx32W( HDC32 hDC, LPLOGFONT32W plf, + FONTENUMPROCEX32W efproc, + LPARAM lParam, DWORD dwFlags ) { return FONT_EnumFontFamiliesEx32( hDC, plf, (FONTENUMPROC32W)efproc, lParam, ENUM_UNICODE ); @@ -429,8 +435,9 @@ INT32 EnumFontFamiliesEx32W( HDC32 hDC, LPLOGFONT32W plf, FONTENUMPROCEX32W efpr /*********************************************************************** * EnumFontFamiliesEx32A (GDI32.81) */ -INT32 EnumFontFamiliesEx32A( HDC32 hDC, LPLOGFONT32A plf, FONTENUMPROCEX32A efproc, - LPARAM lParam, DWORD dwFlags) +INT32 WINAPI EnumFontFamiliesEx32A( HDC32 hDC, LPLOGFONT32A plf, + FONTENUMPROCEX32A efproc, + LPARAM lParam, DWORD dwFlags) { return FONT_EnumFontFamiliesEx32( hDC, (LPLOGFONT32W)plf, (FONTENUMPROC32W)efproc, lParam, 0); @@ -439,7 +446,8 @@ INT32 EnumFontFamiliesEx32A( HDC32 hDC, LPLOGFONT32A plf, FONTENUMPROCEX32A efpr /*********************************************************************** * EnumFontFamilies16 (GDI.330) */ -INT16 EnumFontFamilies16( HDC16 hDC, LPCSTR lpFamily, FONTENUMPROC16 efproc, LPARAM lpData ) +INT16 WINAPI EnumFontFamilies16( HDC16 hDC, LPCSTR lpFamily, + FONTENUMPROC16 efproc, LPARAM lpData ) { LOGFONT16 lf; @@ -453,7 +461,8 @@ INT16 EnumFontFamilies16( HDC16 hDC, LPCSTR lpFamily, FONTENUMPROC16 efproc, LPA /*********************************************************************** * EnumFontFamilies32A (GDI32.80) */ -INT32 EnumFontFamilies32A( HDC32 hDC, LPCSTR lpFamily, FONTENUMPROC32A efproc, LPARAM lpData ) +INT32 WINAPI EnumFontFamilies32A( HDC32 hDC, LPCSTR lpFamily, + FONTENUMPROC32A efproc, LPARAM lpData ) { LOGFONT32A lf; @@ -468,7 +477,8 @@ INT32 EnumFontFamilies32A( HDC32 hDC, LPCSTR lpFamily, FONTENUMPROC32A efproc, L /*********************************************************************** * EnumFontFamilies32W (GDI32.83) */ -INT32 EnumFontFamilies32W( HDC32 hDC, LPCWSTR lpFamily, FONTENUMPROC32W efproc, LPARAM lpData ) +INT32 WINAPI EnumFontFamilies32W( HDC32 hDC, LPCWSTR lpFamily, + FONTENUMPROC32W efproc, LPARAM lpData ) { LOGFONT32W lf; @@ -482,7 +492,8 @@ INT32 EnumFontFamilies32W( HDC32 hDC, LPCWSTR lpFamily, FONTENUMPROC32W efproc, /*********************************************************************** * EnumFonts16 (GDI.70) */ -INT16 EnumFonts16( HDC16 hDC, LPCSTR lpName, FONTENUMPROC16 efproc, LPARAM lpData ) +INT16 WINAPI EnumFonts16( HDC16 hDC, LPCSTR lpName, FONTENUMPROC16 efproc, + LPARAM lpData ) { return EnumFontFamilies16( hDC, lpName, (FONTENUMPROCEX16)efproc, lpData ); } @@ -490,7 +501,8 @@ INT16 EnumFonts16( HDC16 hDC, LPCSTR lpName, FONTENUMPROC16 efproc, LPARAM lpDat /*********************************************************************** * EnumFonts32A (GDI32.84) */ -INT32 EnumFonts32A( HDC32 hDC, LPCSTR lpName, FONTENUMPROC32A efproc, LPARAM lpData ) +INT32 WINAPI EnumFonts32A( HDC32 hDC, LPCSTR lpName, FONTENUMPROC32A efproc, + LPARAM lpData ) { return EnumFontFamilies32A( hDC, lpName, efproc, lpData ); } @@ -498,7 +510,8 @@ INT32 EnumFonts32A( HDC32 hDC, LPCSTR lpName, FONTENUMPROC32A efproc, LPARAM lpD /*********************************************************************** * EnumFonts32W (GDI32.85) */ -INT32 EnumFonts32W( HDC32 hDC, LPCWSTR lpName, FONTENUMPROC32W efproc, LPARAM lpData ) +INT32 WINAPI EnumFonts32W( HDC32 hDC, LPCWSTR lpName, FONTENUMPROC32W efproc, + LPARAM lpData ) { return EnumFontFamilies32W( hDC, lpName, efproc, lpData ); } @@ -507,7 +520,7 @@ INT32 EnumFonts32W( HDC32 hDC, LPCWSTR lpName, FONTENUMPROC32W efproc, LPARAM lp /*********************************************************************** * GetTextCharacterExtra16 (GDI.89) */ -INT16 GetTextCharacterExtra16( HDC16 hdc ) +INT16 WINAPI GetTextCharacterExtra16( HDC16 hdc ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return 0; @@ -519,7 +532,7 @@ INT16 GetTextCharacterExtra16( HDC16 hdc ) /*********************************************************************** * GetTextCharacterExtra32 (GDI32.225) */ -INT32 GetTextCharacterExtra32( HDC32 hdc ) +INT32 WINAPI GetTextCharacterExtra32( HDC32 hdc ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return 0; @@ -531,7 +544,7 @@ INT32 GetTextCharacterExtra32( HDC32 hdc ) /*********************************************************************** * SetTextCharacterExtra16 (GDI.8) */ -INT16 SetTextCharacterExtra16( HDC16 hdc, INT16 extra ) +INT16 WINAPI SetTextCharacterExtra16( HDC16 hdc, INT16 extra ) { return (INT16)SetTextCharacterExtra32( hdc, extra ); } @@ -540,7 +553,7 @@ INT16 SetTextCharacterExtra16( HDC16 hdc, INT16 extra ) /*********************************************************************** * SetTextCharacterExtra32 (GDI32.337) */ -INT32 SetTextCharacterExtra32( HDC32 hdc, INT32 extra ) +INT32 WINAPI SetTextCharacterExtra32( HDC32 hdc, INT32 extra ) { INT32 prev; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -555,7 +568,7 @@ INT32 SetTextCharacterExtra32( HDC32 hdc, INT32 extra ) /*********************************************************************** * SetTextJustification16 (GDI.10) */ -INT16 SetTextJustification16( HDC16 hdc, INT16 extra, INT16 breaks ) +INT16 WINAPI SetTextJustification16( HDC16 hdc, INT16 extra, INT16 breaks ) { return SetTextJustification32( hdc, extra, breaks ); } @@ -564,7 +577,7 @@ INT16 SetTextJustification16( HDC16 hdc, INT16 extra, INT16 breaks ) /*********************************************************************** * SetTextJustification32 (GDI32.339) */ -BOOL32 SetTextJustification32( HDC32 hdc, INT32 extra, INT32 breaks ) +BOOL32 WINAPI SetTextJustification32( HDC32 hdc, INT32 extra, INT32 breaks ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) return 0; @@ -590,7 +603,7 @@ BOOL32 SetTextJustification32( HDC32 hdc, INT32 extra, INT32 breaks ) /*********************************************************************** * GetTextFace16 (GDI.92) */ -INT16 GetTextFace16( HDC16 hdc, INT16 count, LPSTR name ) +INT16 WINAPI GetTextFace16( HDC16 hdc, INT16 count, LPSTR name ) { return GetTextFace32A(hdc,count,name); } @@ -598,7 +611,7 @@ INT16 GetTextFace16( HDC16 hdc, INT16 count, LPSTR name ) /*********************************************************************** * GetTextFace32A (GDI32.234) */ -INT32 GetTextFace32A( HDC32 hdc, INT32 count, LPSTR name ) +INT32 WINAPI GetTextFace32A( HDC32 hdc, INT32 count, LPSTR name ) { FONTOBJ *font; @@ -607,13 +620,14 @@ INT32 GetTextFace32A( HDC32 hdc, INT32 count, LPSTR name ) if (!(font = (FONTOBJ *) GDI_GetObjPtr( dc->w.hFont, FONT_MAGIC ))) return 0; lstrcpyn32A( name, font->logfont.lfFaceName, count ); + GDI_HEAP_UNLOCK( dc->w.hFont ); return strlen(name); } /*********************************************************************** * GetTextFace32W (GDI32.235) */ -INT32 GetTextFace32W( HDC32 hdc, INT32 count, LPWSTR name ) +INT32 WINAPI GetTextFace32W( HDC32 hdc, INT32 count, LPWSTR name ) { LPSTR nameA = HeapAlloc( GetProcessHeap(), 0, count ); INT32 res = GetTextFace32A(hdc,count,nameA); @@ -626,7 +640,7 @@ INT32 GetTextFace32W( HDC32 hdc, INT32 count, LPWSTR name ) /*********************************************************************** * GetTextExtent (GDI.91) */ -DWORD GetTextExtent( HDC16 hdc, LPCSTR str, INT16 count ) +DWORD WINAPI GetTextExtent( HDC16 hdc, LPCSTR str, INT16 count ) { SIZE16 size; if (!GetTextExtentPoint16( hdc, str, count, &size )) return 0; @@ -641,7 +655,8 @@ DWORD GetTextExtent( HDC16 hdc, LPCSTR str, INT16 count ) * Original Windows versions of GetTextExtentPoint{A,W} have documented * bugs. */ -BOOL16 GetTextExtentPoint16( HDC16 hdc, LPCSTR str, INT16 count, LPSIZE16 size) +BOOL16 WINAPI GetTextExtentPoint16( HDC16 hdc, LPCSTR str, INT16 count, + LPSIZE16 size ) { SIZE32 size32; BOOL32 ret = GetTextExtentPoint32A( hdc, str, count, &size32 ); @@ -653,8 +668,8 @@ BOOL16 GetTextExtentPoint16( HDC16 hdc, LPCSTR str, INT16 count, LPSIZE16 size) /*********************************************************************** * GetTextExtentPoint32A (GDI32.230) */ -BOOL32 GetTextExtentPoint32A( HDC32 hdc, LPCSTR str, INT32 count, - LPSIZE32 size ) +BOOL32 WINAPI GetTextExtentPoint32A( HDC32 hdc, LPCSTR str, INT32 count, + LPSIZE32 size ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) @@ -676,8 +691,8 @@ BOOL32 GetTextExtentPoint32A( HDC32 hdc, LPCSTR str, INT32 count, /*********************************************************************** * GetTextExtentPoint32W (GDI32.231) */ -BOOL32 GetTextExtentPoint32W( HDC32 hdc, LPCWSTR str, INT32 count, - LPSIZE32 size ) +BOOL32 WINAPI GetTextExtentPoint32W( HDC32 hdc, LPCWSTR str, INT32 count, + LPSIZE32 size ) { LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, str ); BOOL32 ret = GetTextExtentPoint32A( hdc, p, count, size ); @@ -689,8 +704,8 @@ BOOL32 GetTextExtentPoint32W( HDC32 hdc, LPCWSTR str, INT32 count, /*********************************************************************** * GetTextExtentPoint32ABuggy (GDI32.232) */ -BOOL32 GetTextExtentPoint32ABuggy( HDC32 hdc, LPCSTR str, INT32 count, - LPSIZE32 size ) +BOOL32 WINAPI GetTextExtentPoint32ABuggy( HDC32 hdc, LPCSTR str, INT32 count, + LPSIZE32 size ) { dprintf_font( stddeb, "GetTextExtentPoint32ABuggy: not bug compatible.\n"); return GetTextExtentPoint32A( hdc, str, count, size ); @@ -699,8 +714,8 @@ BOOL32 GetTextExtentPoint32ABuggy( HDC32 hdc, LPCSTR str, INT32 count, /*********************************************************************** * GetTextExtentPoint32WBuggy (GDI32.233) */ -BOOL32 GetTextExtentPoint32WBuggy( HDC32 hdc, LPCWSTR str, INT32 count, - LPSIZE32 size ) +BOOL32 WINAPI GetTextExtentPoint32WBuggy( HDC32 hdc, LPCWSTR str, INT32 count, + LPSIZE32 size ) { dprintf_font( stddeb, "GetTextExtentPoint32WBuggy: not bug compatible.\n"); return GetTextExtentPoint32W( hdc, str, count, size ); @@ -710,9 +725,9 @@ BOOL32 GetTextExtentPoint32WBuggy( HDC32 hdc, LPCWSTR str, INT32 count, /*********************************************************************** * GetTextExtentExPoint32A (GDI32.228) */ -BOOL32 GetTextExtentExPoint32A( HDC32 hdc, LPCSTR str, INT32 count, - INT32 maxExt,LPINT32 lpnFit, LPINT32 alpDx, - LPSIZE32 size ) +BOOL32 WINAPI GetTextExtentExPoint32A( HDC32 hdc, LPCSTR str, INT32 count, + INT32 maxExt, LPINT32 lpnFit, + LPINT32 alpDx, LPSIZE32 size ) { int index, nFit, extent; SIZE32 tSize; @@ -752,9 +767,9 @@ BOOL32 GetTextExtentExPoint32A( HDC32 hdc, LPCSTR str, INT32 count, * GetTextExtentExPoint32W (GDI32.229) */ -BOOL32 GetTextExtentExPoint32W( HDC32 hdc, LPCWSTR str, INT32 count, - INT32 maxExt, LPINT32 lpnFit, LPINT32 alpDx, - LPSIZE32 size ) +BOOL32 WINAPI GetTextExtentExPoint32W( HDC32 hdc, LPCWSTR str, INT32 count, + INT32 maxExt, LPINT32 lpnFit, + LPINT32 alpDx, LPSIZE32 size ) { LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, str ); BOOL32 ret = GetTextExtentExPoint32A( hdc, p, count, maxExt, @@ -766,7 +781,7 @@ BOOL32 GetTextExtentExPoint32W( HDC32 hdc, LPCWSTR str, INT32 count, /*********************************************************************** * GetTextMetrics16 (GDI.93) */ -BOOL16 GetTextMetrics16( HDC16 hdc, TEXTMETRIC16 *metrics ) +BOOL16 WINAPI GetTextMetrics16( HDC16 hdc, TEXTMETRIC16 *metrics ) { TEXTMETRIC32A tm32; @@ -779,7 +794,7 @@ BOOL16 GetTextMetrics16( HDC16 hdc, TEXTMETRIC16 *metrics ) /*********************************************************************** * GetTextMetrics32A (GDI32.236) */ -BOOL32 GetTextMetrics32A( HDC32 hdc, TEXTMETRIC32A *metrics ) +BOOL32 WINAPI GetTextMetrics32A( HDC32 hdc, TEXTMETRIC32A *metrics ) { DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) @@ -791,8 +806,26 @@ BOOL32 GetTextMetrics32A( HDC32 hdc, TEXTMETRIC32A *metrics ) if (!dc->funcs->pGetTextMetrics || !dc->funcs->pGetTextMetrics( dc,metrics )) return FALSE; + /* map them from device to logic coordinatesystem before returning. + * FIXME: should this be in the device driver? + */ +#define WDPTOLP(x) ((x<0)? \ + (-abs((x)*dc->wndExtX/dc->vportExtX)): \ + (abs((x)*dc->wndExtX/dc->vportExtX))) +#define HDPTOLP(y) ((y<0)? \ + (-abs((y)*dc->wndExtY/dc->vportExtY)): \ + (abs((y)*dc->wndExtY/dc->vportExtY))) + + metrics->tmHeight = HDPTOLP(metrics->tmHeight); + metrics->tmAscent = HDPTOLP(metrics->tmAscent); + metrics->tmDescent = HDPTOLP(metrics->tmDescent); + metrics->tmInternalLeading = HDPTOLP(metrics->tmInternalLeading); + metrics->tmExternalLeading = HDPTOLP(metrics->tmExternalLeading); + metrics->tmAveCharWidth = WDPTOLP(metrics->tmAveCharWidth); + metrics->tmMaxCharWidth = WDPTOLP(metrics->tmMaxCharWidth); + metrics->tmOverhang = WDPTOLP(metrics->tmOverhang); - dprintf_font(stdnimp,"text metrics: + dprintf_font(stddeb,"text metrics: Weight = %03i\t FirstChar = %03i\t AveCharWidth = %i Italic = % 3i\t LastChar = %03i\t\t MaxCharWidth = %i UnderLined = %01i\t DefaultChar = %03i\t Overhang = %i @@ -819,7 +852,7 @@ BOOL32 GetTextMetrics32A( HDC32 hdc, TEXTMETRIC32A *metrics ) /*********************************************************************** * GetTextMetrics32W (GDI32.237) */ -BOOL32 GetTextMetrics32W( HDC32 hdc, TEXTMETRIC32W *metrics ) +BOOL32 WINAPI GetTextMetrics32W( HDC32 hdc, TEXTMETRIC32W *metrics ) { TEXTMETRIC32A tm; if (!GetTextMetrics32A( (HDC16)hdc, &tm )) return FALSE; @@ -831,8 +864,8 @@ BOOL32 GetTextMetrics32W( HDC32 hdc, TEXTMETRIC32W *metrics ) /*********************************************************************** * GetCharWidth16 (GDI.350) */ -BOOL16 GetCharWidth16( HDC16 hdc, UINT16 firstChar, UINT16 lastChar, - LPINT16 buffer ) +BOOL16 WINAPI GetCharWidth16( HDC16 hdc, UINT16 firstChar, UINT16 lastChar, + LPINT16 buffer ) { BOOL32 retVal = FALSE; @@ -867,8 +900,8 @@ BOOL16 GetCharWidth16( HDC16 hdc, UINT16 firstChar, UINT16 lastChar, /*********************************************************************** * GetCharWidth32A (GDI32.155) */ -BOOL32 GetCharWidth32A( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, - LPINT32 buffer ) +BOOL32 WINAPI GetCharWidth32A( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, + LPINT32 buffer ) { UINT32 i, extra; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); @@ -895,8 +928,8 @@ BOOL32 GetCharWidth32A( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, /*********************************************************************** * GetCharWidth32W (GDI32.158) */ -BOOL32 GetCharWidth32W( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, - LPINT32 buffer ) +BOOL32 WINAPI GetCharWidth32W( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, + LPINT32 buffer ) { return GetCharWidth32A( hdc, firstChar, lastChar, buffer ); } @@ -908,7 +941,7 @@ BOOL32 GetCharWidth32W( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, * * SetMapperFlags16 (GDI.349) */ -DWORD SetMapperFlags16( HDC16 hDC, DWORD dwFlag ) +DWORD WINAPI SetMapperFlags16( HDC16 hDC, DWORD dwFlag ) { return SetMapperFlags32( hDC, dwFlag ); } @@ -917,19 +950,30 @@ DWORD SetMapperFlags16( HDC16 hDC, DWORD dwFlag ) /*********************************************************************** * SetMapperFlags32 (GDI32.322) */ -DWORD SetMapperFlags32( HDC32 hDC, DWORD dwFlag ) +DWORD WINAPI SetMapperFlags32( HDC32 hDC, DWORD dwFlag ) { dprintf_font(stdnimp,"SetmapperFlags(%04x, %08lX) // Empty Stub !\n", hDC, dwFlag); return 0L; } +/*********************************************************************** + * GetAspectRatioFilterEx16 (GDI.486) + */ +BOOL16 GetAspectRatioFilterEx16( HDC16 hdc, LPVOID pAspectRatio ) +{ + dprintf_font(stdnimp, + "GetAspectRatioFilterEx(%04x, %p): // Empty Stub !\n", + hdc, pAspectRatio); + return FALSE; +} + /*********************************************************************** * GetCharABCWidths16 (GDI.307) */ -BOOL16 GetCharABCWidths16( HDC16 hdc, UINT16 firstChar, UINT16 lastChar, - LPABC16 abc ) +BOOL16 WINAPI GetCharABCWidths16( HDC16 hdc, UINT16 firstChar, UINT16 lastChar, + LPABC16 abc ) { ABC32 abc32; if (!GetCharABCWidths32A( hdc, firstChar, lastChar, &abc32 )) return FALSE; @@ -943,8 +987,8 @@ BOOL16 GetCharABCWidths16( HDC16 hdc, UINT16 firstChar, UINT16 lastChar, /*********************************************************************** * GetCharABCWidths32A (GDI32.149) */ -BOOL32 GetCharABCWidths32A( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, - LPABC32 abc ) +BOOL32 WINAPI GetCharABCWidths32A(HDC32 hdc, UINT32 firstChar, UINT32 lastChar, + LPABC32 abc ) { /* No TrueType fonts in Wine so far */ fprintf( stdnimp, "STUB: GetCharABCWidths(%04x,%04x,%04x,%p)\n", @@ -956,8 +1000,8 @@ BOOL32 GetCharABCWidths32A( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, /*********************************************************************** * GetCharABCWidths32W (GDI32.152) */ -BOOL32 GetCharABCWidths32W( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, - LPABC32 abc ) +BOOL32 WINAPI GetCharABCWidths32W(HDC32 hdc, UINT32 firstChar, UINT32 lastChar, + LPABC32 abc ) { return GetCharABCWidths32A( hdc, firstChar, lastChar, abc ); } @@ -966,9 +1010,9 @@ BOOL32 GetCharABCWidths32W( HDC32 hdc, UINT32 firstChar, UINT32 lastChar, /*********************************************************************** * GetGlyphOutline16 (GDI.309) */ -DWORD GetGlyphOutline16( HDC16 hdc, UINT16 uChar, UINT16 fuFormat, - LPGLYPHMETRICS16 lpgm, DWORD cbBuffer, - LPVOID lpBuffer, const MAT2 *lpmat2 ) +DWORD WINAPI GetGlyphOutline16( HDC16 hdc, UINT16 uChar, UINT16 fuFormat, + LPGLYPHMETRICS16 lpgm, DWORD cbBuffer, + LPVOID lpBuffer, const MAT2 *lpmat2 ) { fprintf( stdnimp,"GetGlyphOutLine16(%04x, '%c', %04x, %p, %ld, %p, %p) // - empty stub!\n", hdc, uChar, fuFormat, lpgm, cbBuffer, lpBuffer, lpmat2 ); @@ -979,9 +1023,9 @@ DWORD GetGlyphOutline16( HDC16 hdc, UINT16 uChar, UINT16 fuFormat, /*********************************************************************** * GetGlyphOutline32A (GDI32.186) */ -DWORD GetGlyphOutline32A( HDC32 hdc, UINT32 uChar, UINT32 fuFormat, - LPGLYPHMETRICS32 lpgm, DWORD cbBuffer, - LPVOID lpBuffer, const MAT2 *lpmat2 ) +DWORD WINAPI GetGlyphOutline32A( HDC32 hdc, UINT32 uChar, UINT32 fuFormat, + LPGLYPHMETRICS32 lpgm, DWORD cbBuffer, + LPVOID lpBuffer, const MAT2 *lpmat2 ) { fprintf( stdnimp,"GetGlyphOutLine32A(%04x, '%c', %04x, %p, %ld, %p, %p) // - empty stub!\n", hdc, uChar, fuFormat, lpgm, cbBuffer, lpBuffer, lpmat2 ); @@ -991,9 +1035,9 @@ DWORD GetGlyphOutline32A( HDC32 hdc, UINT32 uChar, UINT32 fuFormat, /*********************************************************************** * GetGlyphOutline32W (GDI32.187) */ -DWORD GetGlyphOutline32W( HDC32 hdc, UINT32 uChar, UINT32 fuFormat, - LPGLYPHMETRICS32 lpgm, DWORD cbBuffer, - LPVOID lpBuffer, const MAT2 *lpmat2 ) +DWORD WINAPI GetGlyphOutline32W( HDC32 hdc, UINT32 uChar, UINT32 fuFormat, + LPGLYPHMETRICS32 lpgm, DWORD cbBuffer, + LPVOID lpBuffer, const MAT2 *lpmat2 ) { fprintf( stdnimp,"GetGlyphOutLine32W(%04x, '%c', %04x, %p, %ld, %p, %p) // - empty stub!\n", hdc, uChar, fuFormat, lpgm, cbBuffer, lpBuffer, lpmat2 ); @@ -1003,8 +1047,9 @@ DWORD GetGlyphOutline32W( HDC32 hdc, UINT32 uChar, UINT32 fuFormat, /*********************************************************************** * CreateScalableFontResource16 (GDI.310) */ -BOOL16 CreateScalableFontResource16( UINT16 fHidden, LPCSTR lpszResourceFile, - LPCSTR fontFile, LPCSTR path ) +BOOL16 WINAPI CreateScalableFontResource16( UINT16 fHidden, + LPCSTR lpszResourceFile, + LPCSTR fontFile, LPCSTR path ) { return CreateScalableFontResource32A( fHidden, lpszResourceFile, fontFile, path ); @@ -1013,9 +1058,10 @@ BOOL16 CreateScalableFontResource16( UINT16 fHidden, LPCSTR lpszResourceFile, /*********************************************************************** * CreateScalableFontResource32A (GDI32.62) */ -BOOL32 CreateScalableFontResource32A( DWORD fHidden, LPCSTR lpszResourceFile, - LPCSTR lpszFontFile, - LPCSTR lpszCurrentPath ) +BOOL32 WINAPI CreateScalableFontResource32A( DWORD fHidden, + LPCSTR lpszResourceFile, + LPCSTR lpszFontFile, + LPCSTR lpszCurrentPath ) { /* fHidden=1 - only visible for the calling app, read-only, not * enumbered with EnumFonts/EnumFontFamilies @@ -1029,9 +1075,10 @@ BOOL32 CreateScalableFontResource32A( DWORD fHidden, LPCSTR lpszResourceFile, /*********************************************************************** * CreateScalableFontResource32W (GDI32.63) */ -BOOL32 CreateScalableFontResource32W( DWORD fHidden, LPCWSTR lpszResourceFile, - LPCWSTR lpszFontFile, - LPCWSTR lpszCurrentPath ) +BOOL32 WINAPI CreateScalableFontResource32W( DWORD fHidden, + LPCWSTR lpszResourceFile, + LPCWSTR lpszFontFile, + LPCWSTR lpszCurrentPath ) { fprintf(stdnimp,"CreateScalableFontResource32W(%ld,%p,%p,%p) // empty stub\n", fHidden, lpszResourceFile, lpszFontFile, lpszCurrentPath ); @@ -1042,7 +1089,7 @@ BOOL32 CreateScalableFontResource32W( DWORD fHidden, LPCWSTR lpszResourceFile, /************************************************************************* * GetRasterizerCaps16 (GDI.313) */ -BOOL16 GetRasterizerCaps16( LPRASTERIZER_STATUS lprs, UINT16 cbNumBytes ) +BOOL16 WINAPI GetRasterizerCaps16( LPRASTERIZER_STATUS lprs, UINT16 cbNumBytes) { return GetRasterizerCaps32( lprs, cbNumBytes ); } @@ -1051,7 +1098,7 @@ BOOL16 GetRasterizerCaps16( LPRASTERIZER_STATUS lprs, UINT16 cbNumBytes ) /************************************************************************* * GetRasterizerCaps32 (GDI32.216) */ -BOOL32 GetRasterizerCaps32( LPRASTERIZER_STATUS lprs, UINT32 cbNumBytes ) +BOOL32 WINAPI GetRasterizerCaps32( LPRASTERIZER_STATUS lprs, UINT32 cbNumBytes) { RASTERIZER_STATUS rs; @@ -1065,8 +1112,8 @@ BOOL32 GetRasterizerCaps32( LPRASTERIZER_STATUS lprs, UINT32 cbNumBytes ) /************************************************************************* * GetKerningPairs16 (GDI.332) */ -INT16 GetKerningPairs16( HDC16 hDC, INT16 cPairs, - LPKERNINGPAIR16 lpKerningPairs ) +INT16 WINAPI GetKerningPairs16( HDC16 hDC, INT16 cPairs, + LPKERNINGPAIR16 lpKerningPairs ) { /* At this time kerning is ignored (set to 0) */ int i; @@ -1080,8 +1127,8 @@ INT16 GetKerningPairs16( HDC16 hDC, INT16 cPairs, /************************************************************************* * GetKerningPairs32A (GDI32.192) */ -DWORD GetKerningPairs32A( HDC32 hDC, DWORD cPairs, - LPKERNINGPAIR32 lpKerningPairs ) +DWORD WINAPI GetKerningPairs32A( HDC32 hDC, DWORD cPairs, + LPKERNINGPAIR32 lpKerningPairs ) { int i; fprintf(stdnimp,"GetKerningPairs32: almost empty stub!\n"); @@ -1093,9 +1140,16 @@ DWORD GetKerningPairs32A( HDC32 hDC, DWORD cPairs, /************************************************************************* * GetKerningPairs32W (GDI32.193) */ -DWORD GetKerningPairs32W( HDC32 hDC, DWORD cPairs, - LPKERNINGPAIR32 lpKerningPairs ) +DWORD WINAPI GetKerningPairs32W( HDC32 hDC, DWORD cPairs, + LPKERNINGPAIR32 lpKerningPairs ) { return GetKerningPairs32A( hDC, cPairs, lpKerningPairs ); } +BOOL32 WINAPI TranslateCharSetInfo(LPDWORD lpSrc,LPCHARSETINFO lpCs,DWORD dwFlags) { + fprintf(stderr,"TranslateCharSetInfo(%p,%p,0x%08lx), stub.\n", + lpSrc,lpCs,dwFlags + ); + return TRUE; +} + diff --git a/objects/gdiobj.c b/objects/gdiobj.c index 3d594353d40..6c802456402 100644 --- a/objects/gdiobj.c +++ b/objects/gdiobj.c @@ -231,11 +231,13 @@ BOOL32 GDI_Init(void) { /* Create default palette */ + /* DR well *this* palette can't be moveable (?) */ + HPALETTE16 hpalette = PALETTE_Init(); if( hpalette ) { - StockObjects[DEFAULT_PALETTE] = (GDIOBJHDR *)GDI_HEAP_LIN_ADDR( hpalette ); + StockObjects[DEFAULT_PALETTE] = (GDIOBJHDR *)GDI_HEAP_LOCK( hpalette ); return TRUE; } } @@ -250,12 +252,17 @@ HGDIOBJ16 GDI_AllocObject( WORD size, WORD magic ) { static DWORD count = 0; GDIOBJHDR * obj; - HGDIOBJ16 handle = GDI_HEAP_ALLOC( size ); + HGDIOBJ16 handle; + if ( magic == DC_MAGIC || magic == METAFILE_DC_MAGIC ) + handle = GDI_HEAP_ALLOC( size ); + else + handle = GDI_HEAP_ALLOC_MOVEABLE( size ); if (!handle) return 0; - obj = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( handle ); + obj = (GDIOBJHDR *) GDI_HEAP_LOCK( handle ); obj->hNext = 0; obj->wMagic = magic; obj->dwCount = ++count; + GDI_HEAP_UNLOCK( handle ); return handle; } @@ -271,10 +278,10 @@ BOOL32 GDI_FreeObject( HGDIOBJ16 handle ) if ((handle >= FIRST_STOCK_HANDLE) && (handle <= LAST_STOCK_HANDLE)) return TRUE; - object = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( handle ); + object = (GDIOBJHDR *) GDI_HEAP_LOCK( handle ); if (!object) return FALSE; object->wMagic = 0; /* Mark it as invalid */ - + /* Free object */ GDI_HEAP_FREE( handle ); @@ -286,6 +293,8 @@ BOOL32 GDI_FreeObject( HGDIOBJ16 handle ) * * Return a pointer to the GDI object associated to the handle. * Return NULL if the object has the wrong magic number. + * Movable GDI objects are locked in memory: it is up to the caller to unlock + * it after the caller is done with the pointer. */ GDIOBJHDR * GDI_GetObjPtr( HGDIOBJ16 handle, WORD magic ) { @@ -294,9 +303,13 @@ GDIOBJHDR * GDI_GetObjPtr( HGDIOBJ16 handle, WORD magic ) if ((handle >= FIRST_STOCK_HANDLE) && (handle <= LAST_STOCK_HANDLE)) ptr = StockObjects[handle - FIRST_STOCK_HANDLE]; else - ptr = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( handle ); + ptr = (GDIOBJHDR *) GDI_HEAP_LOCK( handle ); if (!ptr) return NULL; - if ((magic != MAGIC_DONTCARE) && (ptr->wMagic != magic)) return NULL; + if ((magic != MAGIC_DONTCARE) && (ptr->wMagic != magic)) + { + GDI_HEAP_UNLOCK( handle ); + return NULL; + } return ptr; } @@ -304,7 +317,7 @@ GDIOBJHDR * GDI_GetObjPtr( HGDIOBJ16 handle, WORD magic ) /*********************************************************************** * DeleteObject16 (GDI.69) */ -BOOL16 DeleteObject16( HGDIOBJ16 obj ) +BOOL16 WINAPI DeleteObject16( HGDIOBJ16 obj ) { return DeleteObject32( obj ); } @@ -313,12 +326,15 @@ BOOL16 DeleteObject16( HGDIOBJ16 obj ) /*********************************************************************** * DeleteObject32 (GDI32.70) */ -BOOL32 DeleteObject32( HGDIOBJ32 obj ) +BOOL32 WINAPI DeleteObject32( HGDIOBJ32 obj ) { /* Check if object is valid */ - GDIOBJHDR * header = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( obj ); - if (!header || HIWORD(obj)) return FALSE; + GDIOBJHDR * header; + if (HIWORD(obj)) return FALSE; + if ((obj >= FIRST_STOCK_HANDLE) && (obj <= LAST_STOCK_HANDLE)) + return TRUE; + if (!(header = (GDIOBJHDR *) GDI_HEAP_LOCK( obj ))) return FALSE; dprintf_gdi(stddeb, "DeleteObject: %04x\n", obj ); @@ -340,7 +356,7 @@ BOOL32 DeleteObject32( HGDIOBJ32 obj ) /*********************************************************************** * GetStockObject16 (GDI.87) */ -HGDIOBJ16 GetStockObject16( INT16 obj ) +HGDIOBJ16 WINAPI GetStockObject16( INT16 obj ) { return (HGDIOBJ16)GetStockObject32( obj ); } @@ -349,7 +365,7 @@ HGDIOBJ16 GetStockObject16( INT16 obj ) /*********************************************************************** * GetStockObject32 (GDI32.220) */ -HGDIOBJ32 GetStockObject32( INT32 obj ) +HGDIOBJ32 WINAPI GetStockObject32( INT32 obj ) { if ((obj < 0) || (obj >= NB_STOCK_OBJECTS)) return 0; if (!StockObjects[obj]) return 0; @@ -362,73 +378,86 @@ HGDIOBJ32 GetStockObject32( INT32 obj ) /*********************************************************************** * GetObject16 (GDI.82) */ -INT16 GetObject16( HANDLE16 handle, INT16 count, LPVOID buffer ) +INT16 WINAPI GetObject16( HANDLE16 handle, INT16 count, LPVOID buffer ) { GDIOBJHDR * ptr = NULL; + INT16 result = 0; dprintf_gdi(stddeb, "GetObject16: %04x %d %p\n", handle, count, buffer ); if (!count) return 0; if ((handle >= FIRST_STOCK_HANDLE) && (handle <= LAST_STOCK_HANDLE)) ptr = StockObjects[handle - FIRST_STOCK_HANDLE]; else - ptr = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( handle ); + ptr = (GDIOBJHDR *) GDI_HEAP_LOCK( handle ); if (!ptr) return 0; switch(ptr->wMagic) - { + { case PEN_MAGIC: - return PEN_GetObject16( (PENOBJ *)ptr, count, buffer ); + result = PEN_GetObject16( (PENOBJ *)ptr, count, buffer ); + break; case BRUSH_MAGIC: - return BRUSH_GetObject16( (BRUSHOBJ *)ptr, count, buffer ); + result = BRUSH_GetObject16( (BRUSHOBJ *)ptr, count, buffer ); + break; case BITMAP_MAGIC: - return BITMAP_GetObject16( (BITMAPOBJ *)ptr, count, buffer ); + result = BITMAP_GetObject16( (BITMAPOBJ *)ptr, count, buffer ); + break; case FONT_MAGIC: - return FONT_GetObject16( (FONTOBJ *)ptr, count, buffer ); + result = FONT_GetObject16( (FONTOBJ *)ptr, count, buffer ); + break; case PALETTE_MAGIC: - return PALETTE_GetObject( (PALETTEOBJ *)ptr, count, buffer ); - } - return 0; + result = PALETTE_GetObject( (PALETTEOBJ *)ptr, count, buffer ); + break; + } + GDI_HEAP_UNLOCK( handle ); + return result; } /*********************************************************************** * GetObject32A (GDI32.204) */ -INT32 GetObject32A( HANDLE32 handle, INT32 count, LPVOID buffer ) +INT32 WINAPI GetObject32A( HANDLE32 handle, INT32 count, LPVOID buffer ) { GDIOBJHDR * ptr = NULL; + INT32 result = 0; dprintf_gdi(stddeb, "GetObject32A: %08x %d %p\n", handle, count, buffer ); if (!count) return 0; if ((handle >= FIRST_STOCK_HANDLE) && (handle <= LAST_STOCK_HANDLE)) ptr = StockObjects[handle - FIRST_STOCK_HANDLE]; else - ptr = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( handle ); + ptr = (GDIOBJHDR *) GDI_HEAP_LOCK( handle ); if (!ptr) return 0; switch(ptr->wMagic) { case PEN_MAGIC: - return PEN_GetObject32( (PENOBJ *)ptr, count, buffer ); + result = PEN_GetObject32( (PENOBJ *)ptr, count, buffer ); + break; case BRUSH_MAGIC: - return BRUSH_GetObject32( (BRUSHOBJ *)ptr, count, buffer ); + result = BRUSH_GetObject32( (BRUSHOBJ *)ptr, count, buffer ); + break; case BITMAP_MAGIC: - return BITMAP_GetObject32( (BITMAPOBJ *)ptr, count, buffer ); + result = BITMAP_GetObject32( (BITMAPOBJ *)ptr, count, buffer ); + break; case FONT_MAGIC: - return FONT_GetObject32A( (FONTOBJ *)ptr, count, buffer ); + result = FONT_GetObject32A( (FONTOBJ *)ptr, count, buffer ); + break; case PALETTE_MAGIC: fprintf( stderr, "GetObject32: magic %04x not implemented\n", ptr->wMagic ); break; } - return 0; + GDI_HEAP_UNLOCK( handle ); + return result; } /*********************************************************************** * GetObject32W (GDI32.206) */ -INT32 GetObject32W( HANDLE32 handle, INT32 count, LPVOID buffer ) +INT32 WINAPI GetObject32W( HANDLE32 handle, INT32 count, LPVOID buffer ) { return GetObject32A( handle, count, buffer ); } @@ -437,7 +466,7 @@ INT32 GetObject32W( HANDLE32 handle, INT32 count, LPVOID buffer ) /*********************************************************************** * SelectObject16 (GDI.45) */ -HGDIOBJ16 SelectObject16( HDC16 hdc, HGDIOBJ16 handle ) +HGDIOBJ16 WINAPI SelectObject16( HDC16 hdc, HGDIOBJ16 handle ) { return (HGDIOBJ16)SelectObject32( hdc, handle ); } @@ -446,7 +475,7 @@ HGDIOBJ16 SelectObject16( HDC16 hdc, HGDIOBJ16 handle ) /*********************************************************************** * SelectObject32 (GDI32.299) */ -HGDIOBJ32 SelectObject32( HDC32 hdc, HGDIOBJ32 handle ) +HGDIOBJ32 WINAPI SelectObject32( HDC32 hdc, HGDIOBJ32 handle ) { DC * dc = DC_GetDCPtr( hdc ); if (!dc || !dc->funcs->pSelectObject) return 0; @@ -458,7 +487,7 @@ HGDIOBJ32 SelectObject32( HDC32 hdc, HGDIOBJ32 handle ) /*********************************************************************** * UnrealizeObject16 (GDI.150) */ -BOOL16 UnrealizeObject16( HGDIOBJ16 obj ) +BOOL16 WINAPI UnrealizeObject16( HGDIOBJ16 obj ) { return UnrealizeObject32( obj ); } @@ -467,11 +496,12 @@ BOOL16 UnrealizeObject16( HGDIOBJ16 obj ) /*********************************************************************** * UnrealizeObject (GDI32.358) */ -BOOL32 UnrealizeObject32( HGDIOBJ32 obj ) +BOOL32 WINAPI UnrealizeObject32( HGDIOBJ32 obj ) { - /* Check if object is valid */ + BOOL32 result = TRUE; + /* Check if object is valid */ - GDIOBJHDR * header = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( obj ); + GDIOBJHDR * header = (GDIOBJHDR *) GDI_HEAP_LOCK( obj ); if (!header) return FALSE; dprintf_gdi( stddeb, "UnrealizeObject: %04x\n", obj ); @@ -481,21 +511,23 @@ BOOL32 UnrealizeObject32( HGDIOBJ32 obj ) switch(header->wMagic) { case PALETTE_MAGIC: - return PALETTE_UnrealizeObject( obj, (PALETTEOBJ *)header ); + result = PALETTE_UnrealizeObject( obj, (PALETTEOBJ *)header ); + break; case BRUSH_MAGIC: /* Windows resets the brush origin. We don't need to. */ break; } - return TRUE; + GDI_HEAP_UNLOCK( obj ); + return result; } /*********************************************************************** * EnumObjects16 (GDI.71) */ -INT16 EnumObjects16( HDC16 hdc, INT16 nObjType, GOBJENUMPROC16 lpEnumFunc, - LPARAM lParam ) +INT16 WINAPI EnumObjects16( HDC16 hdc, INT16 nObjType, + GOBJENUMPROC16 lpEnumFunc, LPARAM lParam ) { /* Solid colors to enumerate */ static const COLORREF solid_colors[] = @@ -573,8 +605,8 @@ INT16 EnumObjects16( HDC16 hdc, INT16 nObjType, GOBJENUMPROC16 lpEnumFunc, /*********************************************************************** * EnumObjects32 (GDI32.89) */ -INT32 EnumObjects32( HDC32 hdc, INT32 nObjType, GOBJENUMPROC32 lpEnumFunc, - LPARAM lParam ) +INT32 WINAPI EnumObjects32( HDC32 hdc, INT32 nObjType, + GOBJENUMPROC32 lpEnumFunc, LPARAM lParam ) { /* Solid colors to enumerate */ static const COLORREF solid_colors[] = @@ -648,12 +680,19 @@ INT32 EnumObjects32( HDC32 hdc, INT32 nObjType, GOBJENUMPROC32 lpEnumFunc, /*********************************************************************** * IsGDIObject (GDI.462) + * + * returns type of object if valid (W95 system programming secrets p. 264-5) */ -BOOL16 IsGDIObject( HGDIOBJ16 handle ) +BOOL16 WINAPI IsGDIObject( HGDIOBJ16 handle ) { - GDIOBJHDR *object = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( handle ); + GDIOBJHDR *object = (GDIOBJHDR *) GDI_HEAP_LOCK( handle ); if (object) - return (object->wMagic>=PEN_MAGIC && object->wMagic<= METAFILE_DC_MAGIC); + { + UINT16 magic = object->wMagic; + GDI_HEAP_UNLOCK( handle ); + if (magic >= PEN_MAGIC && magic <= METAFILE_DC_MAGIC) + return magic - PEN_MAGIC + 1; + } return FALSE; } @@ -661,7 +700,7 @@ BOOL16 IsGDIObject( HGDIOBJ16 handle ) /*********************************************************************** * MulDiv16 (GDI.128) */ -INT16 MulDiv16( INT16 foo, INT16 bar, INT16 baz ) +INT16 WINAPI MulDiv16( INT16 foo, INT16 bar, INT16 baz ) { INT32 ret; if (!baz) return -32768; @@ -674,7 +713,7 @@ INT16 MulDiv16( INT16 foo, INT16 bar, INT16 baz ) /*********************************************************************** * MulDiv32 (KERNEL32.391) */ -INT32 MulDiv32( INT32 foo, INT32 bar, INT32 baz ) +INT32 WINAPI MulDiv32( INT32 foo, INT32 bar, INT32 baz ) { #ifdef __GNUC__ long long ret; diff --git a/objects/linedda.c b/objects/linedda.c index d0cf871a033..7297860366d 100644 --- a/objects/linedda.c +++ b/objects/linedda.c @@ -11,8 +11,8 @@ /********************************************************************** * LineDDA16 (GDI.100) */ -void LineDDA16( INT16 nXStart, INT16 nYStart, INT16 nXEnd, INT16 nYEnd, - LINEDDAPROC16 callback, LPARAM lParam ) +void WINAPI LineDDA16( INT16 nXStart, INT16 nYStart, INT16 nXEnd, INT16 nYEnd, + LINEDDAPROC16 callback, LPARAM lParam ) { LineDDA32( nXStart, nYStart, nXEnd, nYEnd, (LINEDDAPROC32)callback, lParam ); @@ -22,8 +22,8 @@ void LineDDA16( INT16 nXStart, INT16 nYStart, INT16 nXEnd, INT16 nYEnd, /********************************************************************** * LineDDA32 (GDI32.248) */ -BOOL32 LineDDA32( INT32 nXStart, INT32 nYStart, INT32 nXEnd, INT32 nYEnd, - LINEDDAPROC32 callback, LPARAM lParam ) +BOOL32 WINAPI LineDDA32(INT32 nXStart, INT32 nYStart, INT32 nXEnd, INT32 nYEnd, + LINEDDAPROC32 callback, LPARAM lParam ) { INT32 xadd = 1, yadd = 1; INT32 err,erradd; diff --git a/objects/metafile.c b/objects/metafile.c index 87e0b34494c..ad8622aff48 100644 --- a/objects/metafile.c +++ b/objects/metafile.c @@ -57,7 +57,7 @@ static int MF_AddHandleDC( DC *dc ) /****************************************************************** * GetMetafile16 (GDI.124) */ -HMETAFILE16 GetMetaFile16( LPCSTR lpFilename ) +HMETAFILE16 WINAPI GetMetaFile16( LPCSTR lpFilename ) { return GetMetaFile32A( lpFilename ); } @@ -66,7 +66,7 @@ HMETAFILE16 GetMetaFile16( LPCSTR lpFilename ) /****************************************************************** * GetMetafile32A (GDI32.197) */ -HMETAFILE32 GetMetaFile32A( LPCSTR lpFilename ) +HMETAFILE32 WINAPI GetMetaFile32A( LPCSTR lpFilename ) { HMETAFILE16 hmf; METAHEADER *mh; @@ -137,7 +137,7 @@ HMETAFILE32 GetMetaFile32A( LPCSTR lpFilename ) /****************************************************************** * GetMetafile32W (GDI32.199) */ -HMETAFILE32 GetMetaFile32W( LPCWSTR lpFilename ) +HMETAFILE32 WINAPI GetMetaFile32W( LPCWSTR lpFilename ) { LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, lpFilename ); HMETAFILE32 ret = GetMetaFile32A( p ); @@ -150,7 +150,7 @@ HMETAFILE32 GetMetaFile32W( LPCWSTR lpFilename ) * CopyMetaFile16 (GDI.151) */ -HMETAFILE16 CopyMetaFile16( HMETAFILE16 hSrcMetaFile, LPCSTR lpFilename ) +HMETAFILE16 WINAPI CopyMetaFile16( HMETAFILE16 hSrcMetaFile, LPCSTR lpFilename ) { return CopyMetaFile32A( hSrcMetaFile, lpFilename ); } @@ -159,7 +159,7 @@ HMETAFILE16 CopyMetaFile16( HMETAFILE16 hSrcMetaFile, LPCSTR lpFilename ) /****************************************************************** * CopyMetaFile32A (GDI32.23) */ -HMETAFILE32 CopyMetaFile32A( HMETAFILE32 hSrcMetaFile, LPCSTR lpFilename ) +HMETAFILE32 WINAPI CopyMetaFile32A(HMETAFILE32 hSrcMetaFile, LPCSTR lpFilename) { HMETAFILE16 handle = 0; METAHEADER *mh; @@ -201,7 +201,8 @@ HMETAFILE32 CopyMetaFile32A( HMETAFILE32 hSrcMetaFile, LPCSTR lpFilename ) /****************************************************************** * CopyMetaFile32W (GDI32.24) */ -HMETAFILE32 CopyMetaFile32W( HMETAFILE32 hSrcMetaFile, LPCWSTR lpFilename ) +HMETAFILE32 WINAPI CopyMetaFile32W( HMETAFILE32 hSrcMetaFile, + LPCWSTR lpFilename ) { LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, lpFilename ); HMETAFILE32 ret = CopyMetaFile32A( hSrcMetaFile, p ); @@ -215,7 +216,7 @@ HMETAFILE32 CopyMetaFile32W( HMETAFILE32 hSrcMetaFile, LPCWSTR lpFilename ) * (This is not exactly what windows does, see "Undoc Win") */ -BOOL16 IsValidMetaFile(HMETAFILE16 hmf) +BOOL16 WINAPI IsValidMetaFile(HMETAFILE16 hmf) { BOOL16 resu=FALSE; METAHEADER *mh = (METAHEADER *)GlobalLock16(hmf); @@ -234,7 +235,7 @@ BOOL16 IsValidMetaFile(HMETAFILE16 hmf) /****************************************************************** * PlayMetafile16 (GDI.123) */ -BOOL16 PlayMetaFile16( HDC16 hdc, HMETAFILE16 hmf ) +BOOL16 WINAPI PlayMetaFile16( HDC16 hdc, HMETAFILE16 hmf ) { return PlayMetaFile32( hdc, hmf ); } @@ -243,7 +244,7 @@ BOOL16 PlayMetaFile16( HDC16 hdc, HMETAFILE16 hmf ) /****************************************************************** * PlayMetafile32 (GDI32.265) */ -BOOL32 PlayMetaFile32( HDC32 hdc, HMETAFILE32 hmf ) +BOOL32 WINAPI PlayMetaFile32( HDC32 hdc, HMETAFILE32 hmf ) { METAHEADER *mh = (METAHEADER *)GlobalLock16(hmf); METARECORD *mr; @@ -262,7 +263,7 @@ BOOL32 PlayMetaFile32( HDC32 hdc, HMETAFILE32 hmf ) hPen = dc->w.hPen; hBrush = dc->w.hBrush; hFont = dc->w.hFont; - + GDI_HEAP_UNLOCK(hdc); /* create the handle table */ hHT = GlobalAlloc16(GMEM_MOVEABLE|GMEM_ZEROINIT, sizeof(HANDLETABLE16) * mh->mtNoObjects); @@ -299,8 +300,8 @@ BOOL32 PlayMetaFile32( HDC32 hdc, HMETAFILE32 hmf ) * EnumMetaFile16 (GDI.175) * Niels de carpentier, april 1996 */ -BOOL16 EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf, MFENUMPROC16 lpEnumFunc, - LPARAM lpData ) +BOOL16 WINAPI EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf, + MFENUMPROC16 lpEnumFunc, LPARAM lpData ) { METAHEADER *mh = (METAHEADER *)GlobalLock16(hmf); METARECORD *mr; @@ -321,7 +322,8 @@ BOOL16 EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf, MFENUMPROC16 lpEnumFunc, hPen = dc->w.hPen; hBrush = dc->w.hBrush; hFont = dc->w.hFont; - + GDI_HEAP_UNLOCK(hdc); + /* create the handle table */ hHT = GlobalAlloc16(GMEM_MOVEABLE | GMEM_ZEROINIT, @@ -365,8 +367,8 @@ BOOL16 EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf, MFENUMPROC16 lpEnumFunc, /****************************************************************** * PlayMetaFileRecord16 (GDI.176) */ -void PlayMetaFileRecord16( HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr, - UINT16 nHandles ) +void WINAPI PlayMetaFileRecord16( HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr, + UINT16 nHandles ) { short s1; HANDLE16 hndl; @@ -818,7 +820,7 @@ void PlayMetaFileRecord16( HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr, * Trade in a meta file object handle for a handle to the meta file memory */ -HGLOBAL16 GetMetaFileBits(HMETAFILE16 hmf) +HGLOBAL16 WINAPI GetMetaFileBits(HMETAFILE16 hmf) { dprintf_metafile(stddeb,"GetMetaFileBits: hMem out: %04x\n", hmf); @@ -830,7 +832,7 @@ HGLOBAL16 GetMetaFileBits(HMETAFILE16 hmf) * * Trade in a meta file memory handle for a handle to a meta file object */ -HMETAFILE16 SetMetaFileBits( HGLOBAL16 hMem ) +HMETAFILE16 WINAPI SetMetaFileBits( HGLOBAL16 hMem ) { dprintf_metafile(stddeb,"SetMetaFileBits: hmf out: %04x\n", hMem); @@ -840,7 +842,7 @@ HMETAFILE16 SetMetaFileBits( HGLOBAL16 hMem ) /****************************************************************** * SetMetaFileBitsBetter (GDI.196) */ -HMETAFILE16 SetMetaFileBitsBetter( HMETAFILE16 hMeta ) +HMETAFILE16 WINAPI SetMetaFileBitsBetter( HMETAFILE16 hMeta ) { if( IsValidMetaFile( hMeta ) ) return (HMETAFILE16)GlobalReAlloc16( hMeta, 0, @@ -1044,7 +1046,10 @@ BOOL32 MF_CreatePatternBrush(DC *dc, HBRUSH16 hBrush, LOGBRUSH16 *logbrush) len = sizeof(METARECORD) + sizeof(BITMAPINFOHEADER) + (bmp->bitmap.bmHeight * bmp->bitmap.bmWidthBytes) + 6; if (!(hmr = GlobalAlloc16(GMEM_MOVEABLE, len))) + { + GDI_HEAP_UNLOCK((HGDIOBJ16)logbrush->lbHatch); return FALSE; + } mr = (METARECORD *)GlobalLock16(hmr); memset(mr, 0, len); mr->rdFunction = META_DIBCREATEPATTERNBRUSH; @@ -1060,6 +1065,7 @@ BOOL32 MF_CreatePatternBrush(DC *dc, HBRUSH16 hBrush, LOGBRUSH16 *logbrush) memcpy(mr->rdParam + (sizeof(BITMAPINFOHEADER) / 2) + 4, PTR_SEG_TO_LIN(bmp->bitmap.bmBits), bmp->bitmap.bmHeight * bmp->bitmap.bmWidthBytes); + GDI_HEAP_UNLOCK(logbrush->lbHatch); break; case BS_DIBPATTERN: diff --git a/objects/oembitmap.c b/objects/oembitmap.c index 514cb78dace..2a3cb2d6857 100644 --- a/objects/oembitmap.c +++ b/objects/oembitmap.c @@ -249,6 +249,17 @@ static XpmColorSymbol OBM_BlackAndWhite[2] = static XpmColorSymbol *OBM_Colors = NULL; +/* This structure holds the arguments for OBM_CreateBitmaps() */ +typedef struct +{ + char **data; /* In: bitmap data */ + BOOL32 color; /* In: color or monochrome */ + BOOL32 need_mask; /* In: do we need a mask? */ + HBITMAP16 bitmap; /* Out: resulting bitmap */ + HBITMAP16 mask; /* Out: resulting mask (if needed) */ + POINT32 hotspot; /* Out: bitmap hotspot */ +} OBM_BITMAP_DESCR; + /*********************************************************************** * OBM_InitColorSymbols @@ -293,7 +304,7 @@ static HBITMAP16 OBM_MakeBitmap( WORD width, WORD height, hbitmap = GDI_AllocObject( sizeof(BITMAPOBJ), BITMAP_MAGIC ); if (!hbitmap) return 0; - bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_LIN_ADDR( hbitmap ); + bmpObjPtr = (BITMAPOBJ *) GDI_HEAP_LOCK( hbitmap ); bmpObjPtr->size.cx = width; bmpObjPtr->size.cy = height; bmpObjPtr->pixmap = pixmap; @@ -304,6 +315,7 @@ static HBITMAP16 OBM_MakeBitmap( WORD width, WORD height, bmpObjPtr->bitmap.bmPlanes = 1; bmpObjPtr->bitmap.bmBitsPixel = bpp; bmpObjPtr->bitmap.bmBits = NULL; + GDI_HEAP_UNLOCK( hbitmap ); return hbitmap; } @@ -313,8 +325,7 @@ static HBITMAP16 OBM_MakeBitmap( WORD width, WORD height, * * Create the 2 bitmaps from XPM data. */ -static BOOL32 OBM_CreateBitmaps( char **data, BOOL32 color, HBITMAP16 *hBitmap, - HBITMAP16 *hBitmapMask, POINT32 *hotspot ) +static BOOL32 OBM_CreateBitmaps( OBM_BITMAP_DESCR *descr ) { Pixmap pixmap, pixmask; XpmAttributes *attrs; @@ -323,11 +334,11 @@ static BOOL32 OBM_CreateBitmaps( char **data, BOOL32 color, HBITMAP16 *hBitmap, attrs = (XpmAttributes *)xmalloc( XpmAttributesSize() ); attrs->valuemask = XpmColormap | XpmDepth | XpmColorSymbols |XpmHotspot; attrs->colormap = COLOR_GetColormap(); - attrs->depth = color ? screenDepth : 1; + attrs->depth = descr->color ? screenDepth : 1; attrs->colorsymbols = (attrs->depth > 1) ? OBM_Colors : OBM_BlackAndWhite; attrs->numsymbols = (attrs->depth > 1) ? NB_COLOR_SYMBOLS : 2; - err = XpmCreatePixmapFromData( display, rootWindow, data, + err = XpmCreatePixmapFromData( display, rootWindow, descr->data, &pixmap, &pixmask, attrs ); if (err != XpmSuccess) @@ -335,22 +346,20 @@ static BOOL32 OBM_CreateBitmaps( char **data, BOOL32 color, HBITMAP16 *hBitmap, free( attrs ); return FALSE; } - if (hotspot) - { - hotspot->x = attrs->x_hotspot; - hotspot->y = attrs->y_hotspot; - } - *hBitmap = OBM_MakeBitmap( attrs->width, attrs->height, - attrs->depth, pixmap ); - if (hBitmapMask) *hBitmapMask = OBM_MakeBitmap(attrs->width, attrs->height, - 1, pixmask ); + descr->hotspot.x = attrs->x_hotspot; + descr->hotspot.y = attrs->y_hotspot; + descr->bitmap = OBM_MakeBitmap( attrs->width, attrs->height, + attrs->depth, pixmap ); + if (descr->need_mask) + descr->mask = OBM_MakeBitmap( attrs->width, attrs->height, + 1, pixmask ); free( attrs ); - if (!*hBitmap) + if (!descr->bitmap) { if (pixmap) XFreePixmap( display, pixmap ); if (pixmask) XFreePixmap( display, pixmask ); - if (*hBitmap) GDI_FreeObject( *hBitmap ); - if (hBitmapMask && *hBitmapMask) GDI_FreeObject( *hBitmapMask ); + if (descr->bitmap) GDI_FreeObject( descr->bitmap ); + if (descr->need_mask && descr->mask) GDI_FreeObject( descr->mask ); return FALSE; } else return TRUE; @@ -362,22 +371,23 @@ static BOOL32 OBM_CreateBitmaps( char **data, BOOL32 color, HBITMAP16 *hBitmap, */ HBITMAP16 OBM_LoadBitmap( WORD id ) { - HBITMAP16 hbitmap; + OBM_BITMAP_DESCR descr; if ((id < OBM_FIRST) || (id > OBM_LAST)) return 0; id -= OBM_FIRST; if (!OBM_InitColorSymbols()) return 0; - - if (!CallTo32_LargeStack( (int(*)())OBM_CreateBitmaps, 5, - OBM_Pixmaps_Data[id].data, - OBM_Pixmaps_Data[id].color, - &hbitmap, NULL, NULL )) + + descr.data = OBM_Pixmaps_Data[id].data; + descr.color = OBM_Pixmaps_Data[id].color; + descr.need_mask = FALSE; + + if (!CALL_LARGE_STACK( OBM_CreateBitmaps, &descr )) { fprintf( stderr, "Error creating OEM bitmap %d\n", OBM_FIRST+id ); return 0; } - return hbitmap; + return descr.bitmap; } @@ -386,11 +396,10 @@ HBITMAP16 OBM_LoadBitmap( WORD id ) */ HGLOBAL16 OBM_LoadCursorIcon( WORD id, BOOL32 fCursor ) { + OBM_BITMAP_DESCR descr; HGLOBAL16 handle; CURSORICONINFO *pInfo; BITMAPOBJ *bmpXor, *bmpAnd; - HBITMAP16 hXorBits, hAndBits; - POINT32 hotspot; int sizeXor, sizeAnd; if (fCursor) @@ -412,37 +421,39 @@ HGLOBAL16 OBM_LoadCursorIcon( WORD id, BOOL32 fCursor ) if (!OBM_InitColorSymbols()) return 0; - if (!CallTo32_LargeStack( (int(*)())OBM_CreateBitmaps, 5, - fCursor ? OBM_Cursors_Data[id] : OBM_Icons_Data[id], - !fCursor, &hXorBits, &hAndBits, &hotspot )) + descr.data = fCursor ? OBM_Cursors_Data[id] : OBM_Icons_Data[id]; + descr.color = !fCursor; + descr.need_mask = TRUE; + + if (!CALL_LARGE_STACK( OBM_CreateBitmaps, &descr )) { fprintf( stderr, "Error creating OEM cursor/icon %d\n", id ); return 0; } - bmpXor = (BITMAPOBJ *) GDI_GetObjPtr( hXorBits, BITMAP_MAGIC ); - bmpAnd = (BITMAPOBJ *) GDI_GetObjPtr( hAndBits, BITMAP_MAGIC ); + bmpXor = (BITMAPOBJ *) GDI_GetObjPtr( descr.bitmap, BITMAP_MAGIC ); + bmpAnd = (BITMAPOBJ *) GDI_GetObjPtr( descr.mask, BITMAP_MAGIC ); sizeXor = bmpXor->bitmap.bmHeight * bmpXor->bitmap.bmWidthBytes; sizeAnd = bmpXor->bitmap.bmHeight * BITMAP_WIDTH_BYTES( bmpXor->bitmap.bmWidth, 1 ); if (!(handle = GlobalAlloc16( GMEM_MOVEABLE, sizeof(CURSORICONINFO) + sizeXor + sizeAnd))) { - DeleteObject32( hXorBits ); - DeleteObject32( hAndBits ); + DeleteObject32( descr.bitmap ); + DeleteObject32( descr.mask ); return 0; } pInfo = (CURSORICONINFO *)GlobalLock16( handle ); - pInfo->ptHotSpot.x = hotspot.x; - pInfo->ptHotSpot.y = hotspot.y; + pInfo->ptHotSpot.x = descr.hotspot.x; + pInfo->ptHotSpot.y = descr.hotspot.y; pInfo->nWidth = bmpXor->bitmap.bmWidth; pInfo->nHeight = bmpXor->bitmap.bmHeight; pInfo->nWidthBytes = bmpXor->bitmap.bmWidthBytes; pInfo->bPlanes = bmpXor->bitmap.bmPlanes; pInfo->bBitsPerPixel = bmpXor->bitmap.bmBitsPixel; - if (hAndBits) + if (descr.mask) { /* Invert the mask */ @@ -466,12 +477,12 @@ HGLOBAL16 OBM_LoadCursorIcon( WORD id, BOOL32 fCursor ) } } - if (hAndBits) GetBitmapBits32( hAndBits, sizeAnd, (char *)(pInfo + 1) ); + if (descr.mask) GetBitmapBits32( descr.mask, sizeAnd, (char *)(pInfo + 1)); else memset( (char *)(pInfo + 1), 0xff, sizeAnd ); - GetBitmapBits32( hXorBits, sizeXor, (char *)(pInfo + 1) + sizeAnd ); + GetBitmapBits32( descr.bitmap, sizeXor, (char *)(pInfo + 1) + sizeAnd ); - DeleteObject32( hXorBits ); - DeleteObject32( hAndBits ); + DeleteObject32( descr.bitmap ); + DeleteObject32( descr.mask ); if (fCursor) OBM_Cursors[id] = handle; return handle; diff --git a/objects/palette.c b/objects/palette.c index 74207b8a252..004942554ec 100644 --- a/objects/palette.c +++ b/objects/palette.c @@ -64,6 +64,8 @@ HPALETTE16 PALETTE_Init(void) palObj->mapping = xmalloc( sizeof(int) * 20 ); + GDI_HEAP_UNLOCK( hpalette ); + free( palPtr ); return hpalette; } @@ -82,7 +84,7 @@ void PALETTE_ValidateFlags(PALETTEENTRY* lpPalE, int size) /*********************************************************************** * CreatePalette16 (GDI.360) */ -HPALETTE16 CreatePalette16( const LOGPALETTE* palette ) +HPALETTE16 WINAPI CreatePalette16( const LOGPALETTE* palette ) { return CreatePalette32( palette ); } @@ -91,7 +93,7 @@ HPALETTE16 CreatePalette16( const LOGPALETTE* palette ) /*********************************************************************** * CreatePalette32 (GDI32.53) */ -HPALETTE32 CreatePalette32( const LOGPALETTE* palette ) +HPALETTE32 WINAPI CreatePalette32( const LOGPALETTE* palette ) { PALETTEOBJ * palettePtr; HPALETTE32 hpalette; @@ -103,11 +105,12 @@ HPALETTE32 CreatePalette32( const LOGPALETTE* palette ) hpalette = GDI_AllocObject( size + sizeof(int*) +sizeof(GDIOBJHDR) , PALETTE_MAGIC ); if (!hpalette) return 0; - palettePtr = (PALETTEOBJ *) GDI_HEAP_LIN_ADDR( hpalette ); + palettePtr = (PALETTEOBJ *) GDI_HEAP_LOCK( hpalette ); memcpy( &palettePtr->logpalette, palette, size ); PALETTE_ValidateFlags(palettePtr->logpalette.palPalEntry, palettePtr->logpalette.palNumEntries); palettePtr->mapping = NULL; + GDI_HEAP_UNLOCK( hpalette ); dprintf_palette(stddeb,"returning %04x\n", hpalette); return hpalette; @@ -117,8 +120,8 @@ HPALETTE32 CreatePalette32( const LOGPALETTE* palette ) /*********************************************************************** * GetPaletteEntries16 (GDI.363) */ -UINT16 GetPaletteEntries16( HPALETTE16 hpalette, UINT16 start, UINT16 count, - LPPALETTEENTRY entries ) +UINT16 WINAPI GetPaletteEntries16( HPALETTE16 hpalette, UINT16 start, + UINT16 count, LPPALETTEENTRY entries ) { return GetPaletteEntries32( hpalette, start, count, entries ); } @@ -127,8 +130,8 @@ UINT16 GetPaletteEntries16( HPALETTE16 hpalette, UINT16 start, UINT16 count, /*********************************************************************** * GetPaletteEntries32 (GDI32.209) */ -UINT32 GetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, UINT32 count, - LPPALETTEENTRY entries ) +UINT32 WINAPI GetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, + UINT32 count, LPPALETTEENTRY entries ) { PALETTEOBJ * palPtr; INT32 numEntries; @@ -140,13 +143,18 @@ UINT32 GetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, UINT32 count, if (!palPtr) return 0; numEntries = palPtr->logpalette.palNumEntries; - if (start >= numEntries) return 0; + if (start >= numEntries) + { + GDI_HEAP_UNLOCK( hpalette ); + return 0; + } if (start+count > numEntries) count = numEntries - start; memcpy( entries, &palPtr->logpalette.palPalEntry[start], count * sizeof(PALETTEENTRY) ); for( numEntries = 0; numEntries < count ; numEntries++ ) if (entries[numEntries].peFlags & 0xF0) entries[numEntries].peFlags = 0; + GDI_HEAP_UNLOCK( hpalette ); return count; } @@ -154,8 +162,8 @@ UINT32 GetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, UINT32 count, /*********************************************************************** * SetPaletteEntries16 (GDI.364) */ -UINT16 SetPaletteEntries16( HPALETTE16 hpalette, UINT16 start, UINT16 count, - LPPALETTEENTRY entries ) +UINT16 WINAPI SetPaletteEntries16( HPALETTE16 hpalette, UINT16 start, + UINT16 count, LPPALETTEENTRY entries ) { return SetPaletteEntries32( hpalette, start, count, entries ); } @@ -164,8 +172,8 @@ UINT16 SetPaletteEntries16( HPALETTE16 hpalette, UINT16 start, UINT16 count, /*********************************************************************** * SetPaletteEntries32 (GDI32.326) */ -UINT32 SetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, UINT32 count, - LPPALETTEENTRY entries ) +UINT32 WINAPI SetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, + UINT32 count, LPPALETTEENTRY entries ) { PALETTEOBJ * palPtr; INT32 numEntries; @@ -177,7 +185,11 @@ UINT32 SetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, UINT32 count, if (!palPtr) return 0; numEntries = palPtr->logpalette.palNumEntries; - if (start >= numEntries) return 0; + if (start >= numEntries) + { + GDI_HEAP_UNLOCK( hpalette ); + return 0; + } if (start+count > numEntries) count = numEntries - start; memcpy( &palPtr->logpalette.palPalEntry[start], entries, count * sizeof(PALETTEENTRY) ); @@ -185,7 +197,7 @@ UINT32 SetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, UINT32 count, palPtr->logpalette.palNumEntries); free(palPtr->mapping); palPtr->mapping = NULL; - + GDI_HEAP_UNLOCK( hpalette ); return count; } @@ -193,7 +205,7 @@ UINT32 SetPaletteEntries32( HPALETTE32 hpalette, UINT32 start, UINT32 count, /*********************************************************************** * ResizePalette16 (GDI.368) */ -BOOL16 ResizePalette16( HPALETTE16 hPal, UINT16 cEntries ) +BOOL16 WINAPI ResizePalette16( HPALETTE16 hPal, UINT16 cEntries ) { return ResizePalette32( hPal, cEntries ); } @@ -202,7 +214,7 @@ BOOL16 ResizePalette16( HPALETTE16 hPal, UINT16 cEntries ) /*********************************************************************** * ResizePalette32 (GDI32.289) */ -BOOL32 ResizePalette32( HPALETTE32 hPal, UINT32 cEntries ) +BOOL32 WINAPI ResizePalette32( HPALETTE32 hPal, UINT32 cEntries ) { PALETTEOBJ * palPtr = (PALETTEOBJ *) GDI_GetObjPtr( hPal, PALETTE_MAGIC ); UINT32 cPrevEnt, prevVer; @@ -219,7 +231,9 @@ BOOL32 ResizePalette32( HPALETTE32 hPal, UINT32 cEntries ) sizeof(int*) + sizeof(GDIOBJHDR); size += sizeof(int*) + sizeof(GDIOBJHDR); mapping = palPtr->mapping; - + + GDI_HEAP_UNLOCK( hPal ); + hPal = GDI_HEAP_REALLOC( hPal, size ); palPtr = (PALETTEOBJ *) GDI_GetObjPtr( hPal, PALETTE_MAGIC ); if( !palPtr ) return FALSE; @@ -236,6 +250,7 @@ BOOL32 ResizePalette32( HPALETTE32 hPal, UINT32 cEntries ) } palPtr->logpalette.palNumEntries = cEntries; palPtr->logpalette.palVersion = prevVer; + GDI_HEAP_UNLOCK( hPal ); return TRUE; } @@ -243,28 +258,47 @@ BOOL32 ResizePalette32( HPALETTE32 hPal, UINT32 cEntries ) /*********************************************************************** * AnimatePalette16 (GDI.367) */ -BOOL16 AnimatePalette16( HPALETTE16 hPal, UINT16 StartIndex, UINT16 NumEntries, - LPPALETTEENTRY PaletteColors ) +void WINAPI AnimatePalette16( HPALETTE16 hPal, UINT16 StartIndex, + UINT16 NumEntries, LPPALETTEENTRY PaletteColors) { - return AnimatePalette32( hPal, StartIndex, NumEntries, PaletteColors ); + AnimatePalette32( hPal, StartIndex, NumEntries, PaletteColors ); } /*********************************************************************** * AnimatePalette32 (GDI32.6) + * + * FIXME: should use existing mapping when animating a primary palette */ -BOOL32 AnimatePalette32( HPALETTE32 hPal, UINT32 StartIndex, UINT32 NumEntries, - LPPALETTEENTRY PaletteColors ) +BOOL32 WINAPI AnimatePalette32( HPALETTE32 hPal, UINT32 StartIndex, + UINT32 NumEntries, LPPALETTEENTRY PaletteColors) { - fprintf(stdnimp,"AnimatePalette: empty stub! \n"); - return TRUE; + dprintf_palette(stddeb, "AnimatePalette: %04x (%i - %i)", hPal, + StartIndex, StartIndex + NumEntries ); + + if( hPal != STOCK_DEFAULT_PALETTE ) + { + PALETTEOBJ* palPtr = (PALETTEOBJ *)GDI_GetObjPtr(hPal, PALETTE_MAGIC); + + if( (StartIndex + NumEntries) < palPtr->logpalette.palNumEntries ) + { + UINT32 u; + for( u = 0; u < NumEntries; u++ ) + palPtr->logpalette.palPalEntry[u + StartIndex] = PaletteColors[u]; + COLOR_SetMapping(palPtr, StartIndex, NumEntries, + hPal != hPrimaryPalette ); + GDI_HEAP_UNLOCK( hPal ); + return TRUE; + } + } + return FALSE; } /*********************************************************************** * SetSystemPaletteUse16 (GDI.373) */ -UINT16 SetSystemPaletteUse16( HDC16 hdc, UINT16 use ) +UINT16 WINAPI SetSystemPaletteUse16( HDC16 hdc, UINT16 use ) { return SetSystemPaletteUse32( hdc, use ); } @@ -273,7 +307,7 @@ UINT16 SetSystemPaletteUse16( HDC16 hdc, UINT16 use ) /*********************************************************************** * SetSystemPaletteUse32 (GDI32.335) */ -UINT32 SetSystemPaletteUse32( HDC32 hdc, UINT32 use ) +UINT32 WINAPI SetSystemPaletteUse32( HDC32 hdc, UINT32 use ) { UINT32 old = SystemPaletteUse; fprintf( stdnimp,"SetSystemPaletteUse(%04x,%04x) // empty stub !!!\n", @@ -286,7 +320,7 @@ UINT32 SetSystemPaletteUse32( HDC32 hdc, UINT32 use ) /*********************************************************************** * GetSystemPaletteUse16 (GDI.374) */ -UINT16 GetSystemPaletteUse16( HDC16 hdc ) +UINT16 WINAPI GetSystemPaletteUse16( HDC16 hdc ) { return SystemPaletteUse; } @@ -295,7 +329,7 @@ UINT16 GetSystemPaletteUse16( HDC16 hdc ) /*********************************************************************** * GetSystemPaletteUse32 (GDI32.223) */ -UINT32 GetSystemPaletteUse32( HDC32 hdc ) +UINT32 WINAPI GetSystemPaletteUse32( HDC32 hdc ) { return SystemPaletteUse; } @@ -304,8 +338,8 @@ UINT32 GetSystemPaletteUse32( HDC32 hdc ) /*********************************************************************** * GetSystemPaletteEntries16 (GDI.375) */ -UINT16 GetSystemPaletteEntries16( HDC16 hdc, UINT16 start, UINT16 count, - LPPALETTEENTRY entries ) +UINT16 WINAPI GetSystemPaletteEntries16( HDC16 hdc, UINT16 start, UINT16 count, + LPPALETTEENTRY entries ) { return GetSystemPaletteEntries32( hdc, start, count, entries ); } @@ -314,8 +348,8 @@ UINT16 GetSystemPaletteEntries16( HDC16 hdc, UINT16 start, UINT16 count, /*********************************************************************** * GetSystemPaletteEntries32 (GDI32.222) */ -UINT32 GetSystemPaletteEntries32( HDC32 hdc, UINT32 start, UINT32 count, - LPPALETTEENTRY entries ) +UINT32 WINAPI GetSystemPaletteEntries32( HDC32 hdc, UINT32 start, UINT32 count, + LPPALETTEENTRY entries ) { UINT32 i; DC *dc; @@ -323,7 +357,11 @@ UINT32 GetSystemPaletteEntries32( HDC32 hdc, UINT32 start, UINT32 count, dprintf_palette(stddeb,"GetSystemPaletteEntries: hdc = %04x, cound = %i", hdc, count ); if (!(dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ))) return 0; - if (start >= dc->w.devCaps->sizePalette) return 0; + if (start >= dc->w.devCaps->sizePalette) + { + GDI_HEAP_UNLOCK( hdc ); + return 0; + } if (start+count >= dc->w.devCaps->sizePalette) count = dc->w.devCaps->sizePalette - start; for (i = 0; i < count; i++) @@ -333,6 +371,7 @@ UINT32 GetSystemPaletteEntries32( HDC32 hdc, UINT32 start, UINT32 count, dprintf_palette( stddeb,"\tidx(%02x) -> RGB(%08lx)\n", start + i, *(COLORREF*)(entries + i) ); } + GDI_HEAP_UNLOCK( hdc ); return count; } @@ -340,7 +379,7 @@ UINT32 GetSystemPaletteEntries32( HDC32 hdc, UINT32 start, UINT32 count, /*********************************************************************** * GetNearestPaletteIndex16 (GDI.370) */ -UINT16 GetNearestPaletteIndex16( HPALETTE16 hpalette, COLORREF color ) +UINT16 WINAPI GetNearestPaletteIndex16( HPALETTE16 hpalette, COLORREF color ) { return GetNearestPaletteIndex32( hpalette, color ); } @@ -349,7 +388,7 @@ UINT16 GetNearestPaletteIndex16( HPALETTE16 hpalette, COLORREF color ) /*********************************************************************** * GetNearestPaletteIndex32 (GDI32.203) */ -UINT32 GetNearestPaletteIndex32( HPALETTE32 hpalette, COLORREF color ) +UINT32 WINAPI GetNearestPaletteIndex32( HPALETTE32 hpalette, COLORREF color ) { PALETTEOBJ* palObj = (PALETTEOBJ*)GDI_GetObjPtr( hpalette, PALETTE_MAGIC ); UINT32 index = 0; @@ -361,6 +400,7 @@ UINT32 GetNearestPaletteIndex32( HPALETTE32 hpalette, COLORREF color ) dprintf_palette(stddeb,"GetNearestPaletteIndex(%04x,%06lx): returning %d\n", hpalette, color, index ); + GDI_HEAP_UNLOCK( hpalette ); return index; } @@ -368,7 +408,7 @@ UINT32 GetNearestPaletteIndex32( HPALETTE32 hpalette, COLORREF color ) /*********************************************************************** * GetNearestColor16 (GDI.154) */ -COLORREF GetNearestColor16( HDC16 hdc, COLORREF color ) +COLORREF WINAPI GetNearestColor16( HDC16 hdc, COLORREF color ) { return GetNearestColor32( hdc, color ); } @@ -377,7 +417,7 @@ COLORREF GetNearestColor16( HDC16 hdc, COLORREF color ) /*********************************************************************** * GetNearestColor32 (GDI32.202) */ -COLORREF GetNearestColor32( HDC32 hdc, COLORREF color ) +COLORREF WINAPI GetNearestColor32( HDC32 hdc, COLORREF color ) { COLORREF nearest = 0xFADECAFE; DC *dc; @@ -391,10 +431,12 @@ COLORREF GetNearestColor32( HDC32 hdc, COLORREF color ) nearest = COLOR_LookupNearestColor( palObj->logpalette.palPalEntry, palObj->logpalette.palNumEntries, color ); + GDI_HEAP_UNLOCK( dc->w.hPalette ); } dprintf_palette(stddeb,"GetNearestColor(%06lx): returning %06lx\n", color, nearest ); + GDI_HEAP_UNLOCK( hdc ); return nearest; } @@ -431,6 +473,7 @@ BOOL32 PALETTE_UnrealizeObject( HPALETTE16 hpalette, PALETTEOBJ *palette ) BOOL32 PALETTE_DeleteObject( HPALETTE16 hpalette, PALETTEOBJ *palette ) { free( palette->mapping ); + if (hLastRealizedPalette == hpalette) hLastRealizedPalette = 0; return GDI_FreeObject( hpalette ); } @@ -438,7 +481,7 @@ BOOL32 PALETTE_DeleteObject( HPALETTE16 hpalette, PALETTEOBJ *palette ) /*********************************************************************** * GDISelectPalette (GDI.361) */ -HPALETTE16 GDISelectPalette( HDC16 hdc, HPALETTE16 hpal, WORD wBkg) +HPALETTE16 WINAPI GDISelectPalette( HDC16 hdc, HPALETTE16 hpal, WORD wBkg) { HPALETTE16 prev; DC *dc; @@ -453,6 +496,7 @@ HPALETTE16 GDISelectPalette( HDC16 hdc, HPALETTE16 hpal, WORD wBkg) } prev = dc->w.hPalette; dc->w.hPalette = hpal; + GDI_HEAP_UNLOCK( hdc ); if (!wBkg) hPrimaryPalette = hpal; return prev; } @@ -461,7 +505,7 @@ HPALETTE16 GDISelectPalette( HDC16 hdc, HPALETTE16 hpal, WORD wBkg) /*********************************************************************** * GDIRealizePalette (GDI.362) */ -UINT16 GDIRealizePalette( HDC16 hdc ) +UINT16 WINAPI GDIRealizePalette( HDC16 hdc ) { PALETTEOBJ* palPtr; int realized = 0; @@ -481,12 +525,16 @@ UINT16 GDIRealizePalette( HDC16 hdc ) palPtr = (PALETTEOBJ *) GDI_GetObjPtr( dc->w.hPalette, PALETTE_MAGIC ); - realized = COLOR_SetMapping(palPtr, dc->w.hPalette != hPrimaryPalette - || dc->w.hPalette == STOCK_DEFAULT_PALETTE ); + realized = COLOR_SetMapping(palPtr,0,palPtr->logpalette.palNumEntries, + (dc->w.hPalette != hPrimaryPalette) || + (dc->w.hPalette == STOCK_DEFAULT_PALETTE)); + GDI_HEAP_UNLOCK( dc->w.hPalette ); hLastRealizedPalette = dc->w.hPalette; } - else dprintf_palette(stddeb, " skipping "); + else dprintf_palette(stddeb, " skipping (hLastRealizedPalette = %04x) ", + hLastRealizedPalette); + GDI_HEAP_UNLOCK( hdc ); dprintf_palette(stdnimp, " realized %i colors\n", realized ); return (UINT16)realized; } @@ -495,7 +543,7 @@ UINT16 GDIRealizePalette( HDC16 hdc ) /*********************************************************************** * RealizeDefaultPalette (GDI.365) */ -UINT16 RealizeDefaultPalette( HDC16 hdc ) +UINT16 WINAPI RealizeDefaultPalette( HDC16 hdc ) { DC *dc; PALETTEOBJ* palPtr; @@ -510,7 +558,11 @@ UINT16 RealizeDefaultPalette( HDC16 hdc ) if (!dc) return 0; } - if ( dc->w.flags & DC_MEMORY ) return 0; + if ( dc->w.flags & DC_MEMORY ) + { + GDI_HEAP_UNLOCK( hdc ); + return 0; + } hPrimaryPalette = STOCK_DEFAULT_PALETTE; hLastRealizedPalette = STOCK_DEFAULT_PALETTE; @@ -533,18 +585,23 @@ UINT16 RealizeDefaultPalette( HDC16 hdc ) /*********************************************************************** * IsDCCurrentPalette (GDI.412) */ -BOOL16 IsDCCurrentPalette(HDC16 hDC) +BOOL16 WINAPI IsDCCurrentPalette(HDC16 hDC) { DC* dc = (DC *)GDI_GetObjPtr( hDC, DC_MAGIC ); - return (dc)?(dc->w.hPalette == hPrimaryPalette):FALSE; + if (dc) + { + GDI_HEAP_UNLOCK( hDC ); + return dc->w.hPalette == hPrimaryPalette; + } + return FALSE; } /*********************************************************************** * SelectPalette16 (USER.282) */ -HPALETTE16 SelectPalette16( HDC16 hDC, HPALETTE16 hPal, - BOOL16 bForceBackground ) +HPALETTE16 WINAPI SelectPalette16( HDC16 hDC, HPALETTE16 hPal, + BOOL16 bForceBackground ) { return SelectPalette32( hDC, hPal, bForceBackground ); } @@ -553,8 +610,8 @@ HPALETTE16 SelectPalette16( HDC16 hDC, HPALETTE16 hPal, /*********************************************************************** * SelectPalette32 (GDI32.300) */ -HPALETTE32 SelectPalette32( HDC32 hDC, HPALETTE32 hPal, - BOOL32 bForceBackground ) +HPALETTE32 WINAPI SelectPalette32( HDC32 hDC, HPALETTE32 hPal, + BOOL32 bForceBackground ) { WORD wBkgPalette = 1; PALETTEOBJ* lpt = (PALETTEOBJ*) GDI_GetObjPtr( hPal, PALETTE_MAGIC ); @@ -565,6 +622,7 @@ HPALETTE32 SelectPalette32( HDC32 hDC, HPALETTE32 hPal, dprintf_palette(stddeb," entries = %d\n", lpt->logpalette.palNumEntries); + GDI_HEAP_UNLOCK( hPal ); if( hPal != STOCK_DEFAULT_PALETTE ) { @@ -584,7 +642,7 @@ HPALETTE32 SelectPalette32( HDC32 hDC, HPALETTE32 hPal, /*********************************************************************** * RealizePalette16 (USER.283) */ -UINT16 RealizePalette16( HDC16 hDC ) +UINT16 WINAPI RealizePalette16( HDC16 hDC ) { return RealizePalette32( hDC ); } @@ -593,7 +651,7 @@ UINT16 RealizePalette16( HDC16 hDC ) /*********************************************************************** * RealizePalette32 (GDI32.280) */ -UINT32 RealizePalette32( HDC32 hDC ) +UINT32 WINAPI RealizePalette32( HDC32 hDC ) { UINT32 realized = GDIRealizePalette( hDC ); @@ -615,7 +673,7 @@ UINT32 RealizePalette32( HDC32 hDC ) /********************************************************************** * UpdateColors16 (GDI.366) */ -INT16 UpdateColors16( HDC16 hDC ) +INT16 WINAPI UpdateColors16( HDC16 hDC ) { HWND32 hWnd = WindowFromDC32( hDC ); @@ -631,7 +689,7 @@ INT16 UpdateColors16( HDC16 hDC ) /********************************************************************** * UpdateColors32 (GDI32.359) */ -BOOL32 UpdateColors32( HDC32 hDC ) +BOOL32 WINAPI UpdateColors32( HDC32 hDC ) { UpdateColors16( hDC ); return TRUE; diff --git a/objects/pen.c b/objects/pen.c index f33b791eeb3..c2c63adbbdc 100644 --- a/objects/pen.c +++ b/objects/pen.c @@ -15,7 +15,7 @@ /*********************************************************************** * CreatePen16 (GDI.61) */ -HPEN16 CreatePen16( INT16 style, INT16 width, COLORREF color ) +HPEN16 WINAPI CreatePen16( INT16 style, INT16 width, COLORREF color ) { LOGPEN32 logpen = { style, { width, 0 }, color }; dprintf_gdi(stddeb, "CreatePen16: %d %d %06lx\n", style, width, color ); @@ -26,7 +26,7 @@ HPEN16 CreatePen16( INT16 style, INT16 width, COLORREF color ) /*********************************************************************** * CreatePen32 (GDI32.55) */ -HPEN32 CreatePen32( INT32 style, INT32 width, COLORREF color ) +HPEN32 WINAPI CreatePen32( INT32 style, INT32 width, COLORREF color ) { LOGPEN32 logpen = { style, { width, 0 }, color }; dprintf_gdi(stddeb, "CreatePen32: %d %d %06lx\n", style, width, color ); @@ -37,7 +37,7 @@ HPEN32 CreatePen32( INT32 style, INT32 width, COLORREF color ) /*********************************************************************** * CreatePenIndirect16 (GDI.62) */ -HPEN16 CreatePenIndirect16( const LOGPEN16 * pen ) +HPEN16 WINAPI CreatePenIndirect16( const LOGPEN16 * pen ) { PENOBJ * penPtr; HPEN16 hpen; @@ -45,10 +45,11 @@ HPEN16 CreatePenIndirect16( const LOGPEN16 * pen ) if (pen->lopnStyle > PS_INSIDEFRAME) return 0; hpen = GDI_AllocObject( sizeof(PENOBJ), PEN_MAGIC ); if (!hpen) return 0; - penPtr = (PENOBJ *)GDI_HEAP_LIN_ADDR( hpen ); + penPtr = (PENOBJ *)GDI_HEAP_LOCK( hpen ); penPtr->logpen.lopnStyle = pen->lopnStyle; penPtr->logpen.lopnColor = pen->lopnColor; CONV_POINT16TO32( &pen->lopnWidth, &penPtr->logpen.lopnWidth ); + GDI_HEAP_UNLOCK( hpen ); return hpen; } @@ -56,7 +57,7 @@ HPEN16 CreatePenIndirect16( const LOGPEN16 * pen ) /*********************************************************************** * CreatePenIndirect32 (GDI32.56) */ -HPEN32 CreatePenIndirect32( const LOGPEN32 * pen ) +HPEN32 WINAPI CreatePenIndirect32( const LOGPEN32 * pen ) { PENOBJ * penPtr; HPEN32 hpen; @@ -64,10 +65,11 @@ HPEN32 CreatePenIndirect32( const LOGPEN32 * pen ) if (pen->lopnStyle > PS_INSIDEFRAME) return 0; hpen = GDI_AllocObject( sizeof(PENOBJ), PEN_MAGIC ); if (!hpen) return 0; - penPtr = (PENOBJ *)GDI_HEAP_LIN_ADDR( hpen ); + penPtr = (PENOBJ *)GDI_HEAP_LOCK( hpen ); penPtr->logpen.lopnStyle = pen->lopnStyle; penPtr->logpen.lopnWidth = pen->lopnWidth; penPtr->logpen.lopnColor = pen->lopnColor; + GDI_HEAP_UNLOCK( hpen ); return hpen; } diff --git a/objects/region.c b/objects/region.c index 9148e6d4613..a8e86e80425 100644 --- a/objects/region.c +++ b/objects/region.c @@ -27,7 +27,7 @@ BOOL32 REGION_DeleteObject( HRGN32 hrgn, RGNOBJ * obj ) /*********************************************************************** * OffsetRgn16 (GDI.101) */ -INT16 OffsetRgn16( HRGN16 hrgn, INT16 x, INT16 y ) +INT16 WINAPI OffsetRgn16( HRGN16 hrgn, INT16 x, INT16 y ) { return OffsetRgn32( hrgn, x, y ); } @@ -36,13 +36,18 @@ INT16 OffsetRgn16( HRGN16 hrgn, INT16 x, INT16 y ) /*********************************************************************** * OffsetRgn32 (GDI32.256) */ -INT32 OffsetRgn32( HRGN32 hrgn, INT32 x, INT32 y ) +INT32 WINAPI OffsetRgn32( HRGN32 hrgn, INT32 x, INT32 y ) { RGNOBJ * obj = (RGNOBJ *) GDI_GetObjPtr( hrgn, REGION_MAGIC ); if (!obj) return ERROR; dprintf_region(stddeb, "OffsetRgn: %04x %d,%d\n", hrgn, x, y ); - if (!obj->xrgn) return NULLREGION; + if (!obj->xrgn) + { + GDI_HEAP_UNLOCK( hrgn ); + return NULLREGION; + } XOffsetRegion( obj->xrgn, x, y ); + GDI_HEAP_UNLOCK( hrgn ); return COMPLEXREGION; } @@ -50,7 +55,7 @@ INT32 OffsetRgn32( HRGN32 hrgn, INT32 x, INT32 y ) /*********************************************************************** * GetRgnBox16 (GDI.134) */ -INT16 GetRgnBox16( HRGN16 hrgn, LPRECT16 rect ) +INT16 WINAPI GetRgnBox16( HRGN16 hrgn, LPRECT16 rect ) { RGNOBJ * obj = (RGNOBJ *) GDI_GetObjPtr( hrgn, REGION_MAGIC ); if (!obj) return ERROR; @@ -58,12 +63,14 @@ INT16 GetRgnBox16( HRGN16 hrgn, LPRECT16 rect ) if (!obj->xrgn) { SetRectEmpty16( rect ); + GDI_HEAP_UNLOCK( hrgn ); return NULLREGION; } else { XRectangle xrect; XClipBox( obj->xrgn, &xrect ); + GDI_HEAP_UNLOCK(hrgn); SetRect16( rect, xrect.x, xrect.y, xrect.x + xrect.width, xrect.y + xrect.height); return COMPLEXREGION; @@ -74,7 +81,7 @@ INT16 GetRgnBox16( HRGN16 hrgn, LPRECT16 rect ) /*********************************************************************** * GetRgnBox32 (GDI32.219) */ -INT32 GetRgnBox32( HRGN32 hrgn, LPRECT32 rect ) +INT32 WINAPI GetRgnBox32( HRGN32 hrgn, LPRECT32 rect ) { RECT16 r; INT16 ret = GetRgnBox16( hrgn, &r ); @@ -86,7 +93,7 @@ INT32 GetRgnBox32( HRGN32 hrgn, LPRECT32 rect ) /*********************************************************************** * CreateRectRgn16 (GDI.64) */ -HRGN16 CreateRectRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom ) +HRGN16 WINAPI CreateRectRgn16(INT16 left, INT16 top, INT16 right, INT16 bottom) { return (HRGN16)CreateRectRgn32( left, top, right, bottom ); } @@ -95,13 +102,13 @@ HRGN16 CreateRectRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom ) /*********************************************************************** * CreateRectRgn32 (GDI32.59) */ -HRGN32 CreateRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom ) +HRGN32 WINAPI CreateRectRgn32(INT32 left, INT32 top, INT32 right, INT32 bottom) { HRGN32 hrgn; RGNOBJ *obj; if (!(hrgn = GDI_AllocObject( sizeof(RGNOBJ), REGION_MAGIC ))) return 0; - obj = (RGNOBJ *) GDI_HEAP_LIN_ADDR( hrgn ); + obj = (RGNOBJ *) GDI_HEAP_LOCK( hrgn ); if ((right > left) && (bottom > top)) { XRectangle rect = { left, top, right - left, bottom - top }; @@ -115,6 +122,7 @@ HRGN32 CreateRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom ) else obj->xrgn = 0; dprintf_region( stddeb, "CreateRectRgn(%d,%d-%d,%d): returning %04x\n", left, top, right, bottom, hrgn ); + GDI_HEAP_UNLOCK( hrgn ); return hrgn; } @@ -122,7 +130,7 @@ HRGN32 CreateRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom ) /*********************************************************************** * CreateRectRgnIndirect16 (GDI.65) */ -HRGN16 CreateRectRgnIndirect16( const RECT16* rect ) +HRGN16 WINAPI CreateRectRgnIndirect16( const RECT16* rect ) { return CreateRectRgn32( rect->left, rect->top, rect->right, rect->bottom ); } @@ -131,7 +139,7 @@ HRGN16 CreateRectRgnIndirect16( const RECT16* rect ) /*********************************************************************** * CreateRectRgnIndirect32 (GDI32.60) */ -HRGN32 CreateRectRgnIndirect32( const RECT32* rect ) +HRGN32 WINAPI CreateRectRgnIndirect32( const RECT32* rect ) { return CreateRectRgn32( rect->left, rect->top, rect->right, rect->bottom ); } @@ -140,8 +148,8 @@ HRGN32 CreateRectRgnIndirect32( const RECT32* rect ) /*********************************************************************** * SetRectRgn16 (GDI.172) */ -VOID SetRectRgn16( HRGN16 hrgn, INT16 left, INT16 top, - INT16 right, INT16 bottom ) +VOID WINAPI SetRectRgn16( HRGN16 hrgn, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { SetRectRgn32( hrgn, left, top, right, bottom ); } @@ -150,8 +158,8 @@ VOID SetRectRgn16( HRGN16 hrgn, INT16 left, INT16 top, /*********************************************************************** * SetRectRgn32 (GDI32.332) */ -VOID SetRectRgn32( HRGN32 hrgn, INT32 left, INT32 top, - INT32 right, INT32 bottom ) +VOID WINAPI SetRectRgn32( HRGN32 hrgn, INT32 left, INT32 top, + INT32 right, INT32 bottom ) { RGNOBJ * obj; @@ -167,14 +175,16 @@ VOID SetRectRgn32( HRGN32 hrgn, INT32 left, INT32 top, XUnionRectWithRegion( &rect, obj->xrgn, obj->xrgn ); } else obj->xrgn = 0; + GDI_HEAP_UNLOCK( hrgn ); } /*********************************************************************** * CreateRoundRectRgn16 (GDI.444) */ -HRGN16 CreateRoundRectRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom, - INT16 ellipse_width, INT16 ellipse_height ) +HRGN16 WINAPI CreateRoundRectRgn16( INT16 left, INT16 top, + INT16 right, INT16 bottom, + INT16 ellipse_width, INT16 ellipse_height ) { return (HRGN16)CreateRoundRectRgn32( left, top, right, bottom, ellipse_width, ellipse_height ); @@ -184,8 +194,9 @@ HRGN16 CreateRoundRectRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom, /*********************************************************************** * CreateRoundRectRgn32 (GDI32.61) */ -HRGN32 CreateRoundRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom, - INT32 ellipse_width, INT32 ellipse_height ) +HRGN32 WINAPI CreateRoundRectRgn32( INT32 left, INT32 top, + INT32 right, INT32 bottom, + INT32 ellipse_width, INT32 ellipse_height ) { RGNOBJ * obj; HRGN32 hrgn; @@ -201,7 +212,7 @@ HRGN32 CreateRoundRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom, /* Create region */ if (!(hrgn = GDI_AllocObject( sizeof(RGNOBJ), REGION_MAGIC ))) return 0; - obj = (RGNOBJ *) GDI_HEAP_LIN_ADDR( hrgn ); + obj = (RGNOBJ *) GDI_HEAP_LOCK( hrgn ); obj->xrgn = XCreateRegion(); dprintf_region(stddeb,"CreateRoundRectRgn(%d,%d-%d,%d %dx%d): return=%04x\n", left, top, right, bottom, ellipse_width, ellipse_height, hrgn ); @@ -273,6 +284,7 @@ HRGN32 CreateRoundRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom, rect.height = bottom - top + 1; XUnionRectWithRegion( &rect, obj->xrgn, obj->xrgn ); } + GDI_HEAP_UNLOCK( hrgn ); return hrgn; } @@ -280,7 +292,8 @@ HRGN32 CreateRoundRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom, /*********************************************************************** * CreateEllipticRgn16 (GDI.54) */ -HRGN16 CreateEllipticRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom ) +HRGN16 WINAPI CreateEllipticRgn16( INT16 left, INT16 top, + INT16 right, INT16 bottom ) { return (HRGN16)CreateRoundRectRgn32( left, top, right, bottom, right-left, bottom-top ); @@ -290,7 +303,8 @@ HRGN16 CreateEllipticRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom ) /*********************************************************************** * CreateEllipticRgn32 (GDI32.39) */ -HRGN32 CreateEllipticRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom ) +HRGN32 WINAPI CreateEllipticRgn32( INT32 left, INT32 top, + INT32 right, INT32 bottom ) { return CreateRoundRectRgn32( left, top, right, bottom, right-left, bottom-top ); @@ -300,7 +314,7 @@ HRGN32 CreateEllipticRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom ) /*********************************************************************** * CreateEllipticRgnIndirect16 (GDI.55) */ -HRGN16 CreateEllipticRgnIndirect16( const RECT16 *rect ) +HRGN16 WINAPI CreateEllipticRgnIndirect16( const RECT16 *rect ) { return CreateRoundRectRgn32( rect->left, rect->top, rect->right, rect->bottom, rect->right - rect->left, @@ -311,7 +325,7 @@ HRGN16 CreateEllipticRgnIndirect16( const RECT16 *rect ) /*********************************************************************** * CreateEllipticRgnIndirect32 (GDI32.40) */ -HRGN32 CreateEllipticRgnIndirect32( const RECT32 *rect ) +HRGN32 WINAPI CreateEllipticRgnIndirect32( const RECT32 *rect ) { return CreateRoundRectRgn32( rect->left, rect->top, rect->right, rect->bottom, rect->right - rect->left, @@ -322,7 +336,8 @@ HRGN32 CreateEllipticRgnIndirect32( const RECT32 *rect ) /*********************************************************************** * CreatePolygonRgn16 (GDI.63) */ -HRGN16 CreatePolygonRgn16( const POINT16 * points, INT16 count, INT16 mode ) +HRGN16 WINAPI CreatePolygonRgn16( const POINT16 * points, INT16 count, + INT16 mode ) { return CreatePolyPolygonRgn16( points, &count, 1, mode ); } @@ -331,8 +346,9 @@ HRGN16 CreatePolygonRgn16( const POINT16 * points, INT16 count, INT16 mode ) /*********************************************************************** * CreatePolyPolygonRgn16 (GDI.451) */ -HRGN16 CreatePolyPolygonRgn16( const POINT16 * points, const INT16 * count, - INT16 nbpolygons, INT16 mode ) +HRGN16 WINAPI CreatePolyPolygonRgn16( const POINT16 * points, + const INT16 * count, + INT16 nbpolygons, INT16 mode ) { int i,nrofpts; LPINT32 count32; @@ -360,7 +376,8 @@ HRGN16 CreatePolyPolygonRgn16( const POINT16 * points, const INT16 * count, /*********************************************************************** * CreatePolygonRgn32 (GDI32.58) */ -HRGN32 CreatePolygonRgn32( const POINT32 *points, INT32 count, INT32 mode ) +HRGN32 WINAPI CreatePolygonRgn32( const POINT32 *points, INT32 count, + INT32 mode ) { return CreatePolyPolygonRgn32( points, &count, 1, mode ); } @@ -369,8 +386,9 @@ HRGN32 CreatePolygonRgn32( const POINT32 *points, INT32 count, INT32 mode ) /*********************************************************************** * CreatePolyPolygonRgn32 (GDI32.57) */ -HRGN32 CreatePolyPolygonRgn32( const POINT32 * points, const INT32 * count, - INT32 nbpolygons, INT32 mode ) +HRGN32 WINAPI CreatePolyPolygonRgn32( const POINT32 * points, + const INT32 * count, + INT32 nbpolygons, INT32 mode ) { RGNOBJ * obj; HRGN32 hrgn; @@ -395,7 +413,7 @@ HRGN32 CreatePolyPolygonRgn32( const POINT32 * points, const INT32 * count, HeapFree( GetProcessHeap(), 0, xpoints ); return 0; } - obj = (RGNOBJ *) GDI_HEAP_LIN_ADDR( hrgn ); + obj = (RGNOBJ *) GDI_HEAP_LOCK( hrgn ); obj->xrgn = 0; dprintf_region(stddeb, "CreatePolyPolygonRgn: %d polygons, returning %04x\n", nbpolygons, hrgn ); @@ -430,6 +448,7 @@ HRGN32 CreatePolyPolygonRgn32( const POINT32 * points, const INT32 * count, } HeapFree( GetProcessHeap(), 0, xpoints ); + GDI_HEAP_UNLOCK( hrgn ); return hrgn; } @@ -437,7 +456,7 @@ HRGN32 CreatePolyPolygonRgn32( const POINT32 * points, const INT32 * count, /*********************************************************************** * PtInRegion16 (GDI.161) */ -BOOL16 PtInRegion16( HRGN16 hrgn, INT16 x, INT16 y ) +BOOL16 WINAPI PtInRegion16( HRGN16 hrgn, INT16 x, INT16 y ) { return PtInRegion32( hrgn, x, y ); } @@ -446,50 +465,59 @@ BOOL16 PtInRegion16( HRGN16 hrgn, INT16 x, INT16 y ) /*********************************************************************** * PtInRegion32 (GDI32.278) */ -BOOL32 PtInRegion32( HRGN32 hrgn, INT32 x, INT32 y ) +BOOL32 WINAPI PtInRegion32( HRGN32 hrgn, INT32 x, INT32 y ) { RGNOBJ * obj; + BOOL32 result; if (!(obj = (RGNOBJ *) GDI_GetObjPtr( hrgn, REGION_MAGIC ))) return FALSE; - if (!obj->xrgn) return FALSE; - return XPointInRegion( obj->xrgn, x, y ); + if (!obj->xrgn) result = FALSE; + else result = XPointInRegion( obj->xrgn, x, y ); + GDI_HEAP_UNLOCK( hrgn ); + return result; } /*********************************************************************** * RectInRegion16 (GDI.181) */ -BOOL16 RectInRegion16( HRGN16 hrgn, const RECT16 *rect ) +BOOL16 WINAPI RectInRegion16( HRGN16 hrgn, const RECT16 *rect ) { RGNOBJ * obj; - + BOOL16 result; + if (!(obj = (RGNOBJ *) GDI_GetObjPtr( hrgn, REGION_MAGIC ))) return FALSE; - if (!obj->xrgn) return FALSE; - return (XRectInRegion( obj->xrgn, rect->left, rect->top, + if (!obj->xrgn) result = FALSE; + else result = (XRectInRegion( obj->xrgn, rect->left, rect->top, rect->right-rect->left, rect->bottom-rect->top ) != RectangleOut); + GDI_HEAP_UNLOCK( hrgn ); + return result; } /*********************************************************************** * RectInRegion32 (GDI32.281) */ -BOOL32 RectInRegion32( HRGN32 hrgn, const RECT32 *rect ) +BOOL32 WINAPI RectInRegion32( HRGN32 hrgn, const RECT32 *rect ) { RGNOBJ * obj; + BOOL32 result; if (!(obj = (RGNOBJ *) GDI_GetObjPtr( hrgn, REGION_MAGIC ))) return FALSE; - if (!obj->xrgn) return FALSE; - return (XRectInRegion( obj->xrgn, rect->left, rect->top, + if (!obj->xrgn) result = FALSE; + else result = (XRectInRegion( obj->xrgn, rect->left, rect->top, rect->right-rect->left, rect->bottom-rect->top ) != RectangleOut); + GDI_HEAP_UNLOCK( hrgn ); + return result; } /*********************************************************************** * EqualRgn16 (GDI.72) */ -BOOL16 EqualRgn16( HRGN16 rgn1, HRGN16 rgn2 ) +BOOL16 WINAPI EqualRgn16( HRGN16 rgn1, HRGN16 rgn2 ) { return EqualRgn32( rgn1, rgn2 ); } @@ -498,13 +526,22 @@ BOOL16 EqualRgn16( HRGN16 rgn1, HRGN16 rgn2 ) /*********************************************************************** * EqualRgn32 (GDI32.90) */ -BOOL32 EqualRgn32( HRGN32 rgn1, HRGN32 rgn2 ) +BOOL32 WINAPI EqualRgn32( HRGN32 rgn1, HRGN32 rgn2 ) { RGNOBJ *obj1, *obj2; + BOOL32 result; + if (!(obj1 = (RGNOBJ *) GDI_GetObjPtr( rgn1, REGION_MAGIC ))) return FALSE; - if (!(obj2 = (RGNOBJ *) GDI_GetObjPtr( rgn2, REGION_MAGIC ))) return FALSE; - if (!obj1->xrgn || !obj2->xrgn) return (!obj1->xrgn && !obj2->xrgn); - return XEqualRegion( obj1->xrgn, obj2->xrgn ); + if (!(obj2 = (RGNOBJ *) GDI_GetObjPtr( rgn2, REGION_MAGIC ))) + { + GDI_HEAP_UNLOCK( rgn1 ); + return FALSE; + } + if (!obj1->xrgn || !obj2->xrgn) result = (!obj1->xrgn && !obj2->xrgn); + else result = XEqualRegion( obj1->xrgn, obj2->xrgn ); + GDI_HEAP_UNLOCK( rgn1 ); + GDI_HEAP_UNLOCK( rgn2 ); + return result; } @@ -558,6 +595,7 @@ BOOL32 REGION_UnionRectWithRgn( HRGN32 hRgn, const RECT32 *rc ) else ret = COMPLEXREGION; XUnionRectWithRegion( &rect, rgnObj->xrgn, rgnObj->xrgn ); + GDI_HEAP_UNLOCK( hRgn ); } return ret; } @@ -575,13 +613,20 @@ BOOL32 REGION_FrameRgn( HRGN32 hDest, HRGN32 hSrc, INT32 x, INT32 y ) destObj = (RGNOBJ*) GDI_GetObjPtr( hDest, REGION_MAGIC ); srcObj = (RGNOBJ*) GDI_GetObjPtr( hSrc, REGION_MAGIC ); - if (!srcObj->xrgn) return FALSE; + if (!srcObj->xrgn) + { + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc ); + return FALSE; + } REGION_CopyRegion( srcObj, destObj ); XShrinkRegion( destObj->xrgn, -x, -y ); result = XCreateRegion(); XSubtractRegion( destObj->xrgn, srcObj->xrgn, result ); XDestroyRegion( destObj->xrgn ); destObj->xrgn = result; + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc ); return TRUE; } @@ -589,7 +634,7 @@ BOOL32 REGION_FrameRgn( HRGN32 hDest, HRGN32 hSrc, INT32 x, INT32 y ) /*********************************************************************** * CombineRgn16 (GDI.451) */ -INT16 CombineRgn16( HRGN16 hDest, HRGN16 hSrc1, HRGN16 hSrc2, INT16 mode ) +INT16 WINAPI CombineRgn16(HRGN16 hDest, HRGN16 hSrc1, HRGN16 hSrc2, INT16 mode) { return (INT16)CombineRgn32( hDest, hSrc1, hSrc2, mode ); } @@ -600,10 +645,11 @@ INT16 CombineRgn16( HRGN16 hDest, HRGN16 hSrc1, HRGN16 hSrc2, INT16 mode ) * * Note: The behavior is correct even if src and dest regions are the same. */ -INT32 CombineRgn32( HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode ) +INT32 WINAPI CombineRgn32(HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode) { RGNOBJ *destObj, *src1Obj, *src2Obj; Region destrgn; + INT32 result; dprintf_region(stddeb, "CombineRgn: %04x,%04x -> %04x mode=%x\n", hSrc1, hSrc2, hDest, mode ); @@ -611,12 +657,24 @@ INT32 CombineRgn32( HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode ) if (!(destObj = (RGNOBJ *) GDI_GetObjPtr( hDest, REGION_MAGIC ))) return ERROR; if (!(src1Obj = (RGNOBJ *) GDI_GetObjPtr( hSrc1, REGION_MAGIC ))) + { + GDI_HEAP_UNLOCK( hDest ); return ERROR; - if (mode == RGN_COPY) return REGION_CopyRegion( src1Obj, destObj ); + } + if (mode == RGN_COPY) + { + result = REGION_CopyRegion( src1Obj, destObj ); + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + return result; + } if (!(src2Obj = (RGNOBJ *) GDI_GetObjPtr( hSrc2, REGION_MAGIC ))) - return ERROR; - + { + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + return ERROR; + } /* Some optimizations for null regions */ if (!src1Obj->xrgn || !src2Obj->xrgn) @@ -625,26 +683,48 @@ INT32 CombineRgn32( HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode ) { case RGN_DIFF: if (src1Obj->xrgn) - return REGION_CopyRegion( src1Obj, destObj ); + { + result = REGION_CopyRegion( src1Obj, destObj ); + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); + return result; + } /* else fall through */ case RGN_AND: if (destObj->xrgn) XDestroyRegion( destObj->xrgn ); destObj->xrgn = 0; + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); return NULLREGION; case RGN_OR: case RGN_XOR: if (src1Obj->xrgn) - return REGION_CopyRegion( src1Obj, destObj ); + result = REGION_CopyRegion( src1Obj, destObj ); else - return REGION_CopyRegion( src2Obj, destObj ); + result = REGION_CopyRegion( src2Obj, destObj ); + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); + return result; default: + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); return ERROR; } } /* Perform the operation with the two X regions */ - if (!(destrgn = XCreateRegion())) return ERROR; + if (!(destrgn = XCreateRegion())) + { + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); + return ERROR; + } switch(mode) { case RGN_AND: @@ -661,6 +741,9 @@ INT32 CombineRgn32( HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode ) break; default: XDestroyRegion( destrgn ); + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); return ERROR; } if (destObj->xrgn) XDestroyRegion( destObj->xrgn ); @@ -669,7 +752,13 @@ INT32 CombineRgn32( HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode ) { XDestroyRegion( destObj->xrgn ); destObj->xrgn = 0; + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); return NULLREGION; } + GDI_HEAP_UNLOCK( hDest ); + GDI_HEAP_UNLOCK( hSrc1 ); + GDI_HEAP_UNLOCK( hSrc2 ); return COMPLEXREGION; } diff --git a/objects/text.c b/objects/text.c index 176ddd665b1..1b4683023a3 100644 --- a/objects/text.c +++ b/objects/text.c @@ -182,8 +182,8 @@ static const char *TEXT_NextLine( HDC16 hdc, const char *str, int *count, /*********************************************************************** * DrawText16 (USER.85) */ -INT16 DrawText16( HDC16 hdc, LPCSTR str, INT16 i_count, - LPRECT16 rect, UINT16 flags ) +INT16 WINAPI DrawText16( HDC16 hdc, LPCSTR str, INT16 i_count, + LPRECT16 rect, UINT16 flags ) { SIZE16 size; const char *strPtr; @@ -285,8 +285,8 @@ INT16 DrawText16( HDC16 hdc, LPCSTR str, INT16 i_count, /*********************************************************************** * DrawText32A (USER32.163) */ -INT32 DrawText32A( HDC32 hdc, LPCSTR str, INT32 count, - LPRECT32 rect, UINT32 flags ) +INT32 WINAPI DrawText32A( HDC32 hdc, LPCSTR str, INT32 count, + LPRECT32 rect, UINT32 flags ) { RECT16 rect16; INT16 ret; @@ -303,8 +303,8 @@ INT32 DrawText32A( HDC32 hdc, LPCSTR str, INT32 count, /*********************************************************************** * DrawText32W (USER32.166) */ -INT32 DrawText32W( HDC32 hdc, LPCWSTR str, INT32 count, - LPRECT32 rect, UINT32 flags ) +INT32 WINAPI DrawText32W( HDC32 hdc, LPCWSTR str, INT32 count, + LPRECT32 rect, UINT32 flags ) { LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, str ); INT32 ret = DrawText32A( hdc, p, count, rect, flags ); @@ -316,9 +316,9 @@ INT32 DrawText32W( HDC32 hdc, LPCWSTR str, INT32 count, /*********************************************************************** * ExtTextOut16 (GDI.351) */ -BOOL16 ExtTextOut16( HDC16 hdc, INT16 x, INT16 y, UINT16 flags, - const RECT16 *lprect, LPCSTR str, UINT16 count, - const INT16 *lpDx ) +BOOL16 WINAPI ExtTextOut16( HDC16 hdc, INT16 x, INT16 y, UINT16 flags, + const RECT16 *lprect, LPCSTR str, UINT16 count, + const INT16 *lpDx ) { BOOL32 ret; int i; @@ -338,9 +338,9 @@ BOOL16 ExtTextOut16( HDC16 hdc, INT16 x, INT16 y, UINT16 flags, /*********************************************************************** * ExtTextOut32A (GDI32.98) */ -BOOL32 ExtTextOut32A( HDC32 hdc, INT32 x, INT32 y, UINT32 flags, - const RECT32 *lprect, LPCSTR str, UINT32 count, - const INT32 *lpDx ) +BOOL32 WINAPI ExtTextOut32A( HDC32 hdc, INT32 x, INT32 y, UINT32 flags, + const RECT32 *lprect, LPCSTR str, UINT32 count, + const INT32 *lpDx ) { DC * dc = DC_GetDCPtr( hdc ); return dc && dc->funcs->pExtTextOut && @@ -351,9 +351,9 @@ BOOL32 ExtTextOut32A( HDC32 hdc, INT32 x, INT32 y, UINT32 flags, /*********************************************************************** * ExtTextOut32W (GDI32.99) */ -BOOL32 ExtTextOut32W( HDC32 hdc, INT32 x, INT32 y, UINT32 flags, - const RECT32 *lprect, LPCWSTR str, UINT32 count, - const INT32 *lpDx ) +BOOL32 WINAPI ExtTextOut32W( HDC32 hdc, INT32 x, INT32 y, UINT32 flags, + const RECT32 *lprect, LPCWSTR str, UINT32 count, + const INT32 *lpDx ) { LPSTR p = HEAP_strdupWtoA( GetProcessHeap(), 0, str ); INT32 ret = ExtTextOut32A( hdc, x, y, flags, lprect, p, count, lpDx ); @@ -365,7 +365,7 @@ BOOL32 ExtTextOut32W( HDC32 hdc, INT32 x, INT32 y, UINT32 flags, /*********************************************************************** * TextOut16 (GDI.33) */ -BOOL16 TextOut16( HDC16 hdc, INT16 x, INT16 y, LPCSTR str, INT16 count ) +BOOL16 WINAPI TextOut16( HDC16 hdc, INT16 x, INT16 y, LPCSTR str, INT16 count ) { return ExtTextOut16( hdc, x, y, 0, NULL, str, count, NULL ); } @@ -374,7 +374,7 @@ BOOL16 TextOut16( HDC16 hdc, INT16 x, INT16 y, LPCSTR str, INT16 count ) /*********************************************************************** * TextOut32A (GDI32.355) */ -BOOL32 TextOut32A( HDC32 hdc, INT32 x, INT32 y, LPCSTR str, INT32 count ) +BOOL32 WINAPI TextOut32A( HDC32 hdc, INT32 x, INT32 y, LPCSTR str, INT32 count ) { return ExtTextOut32A( hdc, x, y, 0, NULL, str, count, NULL ); } @@ -383,7 +383,7 @@ BOOL32 TextOut32A( HDC32 hdc, INT32 x, INT32 y, LPCSTR str, INT32 count ) /*********************************************************************** * TextOut32W (GDI32.356) */ -BOOL32 TextOut32W( HDC32 hdc, INT32 x, INT32 y, LPCWSTR str, INT32 count ) +BOOL32 WINAPI TextOut32W(HDC32 hdc, INT32 x, INT32 y, LPCWSTR str, INT32 count) { return ExtTextOut32W( hdc, x, y, 0, NULL, str, count, NULL ); } @@ -392,9 +392,9 @@ BOOL32 TextOut32W( HDC32 hdc, INT32 x, INT32 y, LPCWSTR str, INT32 count ) /*********************************************************************** * GrayString16 (USER.185) */ -BOOL16 GrayString16( HDC16 hdc, HBRUSH16 hbr, GRAYSTRINGPROC16 gsprc, - LPARAM lParam, INT16 cch, INT16 x, INT16 y, - INT16 cx, INT16 cy ) +BOOL16 WINAPI GrayString16( HDC16 hdc, HBRUSH16 hbr, GRAYSTRINGPROC16 gsprc, + LPARAM lParam, INT16 cch, INT16 x, INT16 y, + INT16 cx, INT16 cy ) { BOOL16 ret; COLORREF current_color; @@ -411,9 +411,9 @@ BOOL16 GrayString16( HDC16 hdc, HBRUSH16 hbr, GRAYSTRINGPROC16 gsprc, /*********************************************************************** * GrayString32A (USER32.314) */ -BOOL32 GrayString32A( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 gsprc, - LPARAM lParam, INT32 cch, INT32 x, INT32 y, - INT32 cx, INT32 cy ) +BOOL32 WINAPI GrayString32A( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 gsprc, + LPARAM lParam, INT32 cch, INT32 x, INT32 y, + INT32 cx, INT32 cy ) { BOOL32 ret; COLORREF current_color; @@ -430,9 +430,9 @@ BOOL32 GrayString32A( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 gsprc, /*********************************************************************** * GrayString32W (USER32.315) */ -BOOL32 GrayString32W( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 gsprc, - LPARAM lParam, INT32 cch, INT32 x, INT32 y, - INT32 cx, INT32 cy ) +BOOL32 WINAPI GrayString32W( HDC32 hdc, HBRUSH32 hbr, GRAYSTRINGPROC32 gsprc, + LPARAM lParam, INT32 cch, INT32 x, INT32 y, + INT32 cx, INT32 cy ) { BOOL32 ret; COLORREF current_color; @@ -523,8 +523,9 @@ LONG TEXT_TabbedTextOut( HDC32 hdc, INT32 x, INT32 y, LPCSTR lpstr, /*********************************************************************** * TabbedTextOut16 (USER.196) */ -LONG TabbedTextOut16( HDC16 hdc, INT16 x, INT16 y, LPCSTR lpstr, INT16 count, - INT16 cTabStops, const INT16 *lpTabPos, INT16 nTabOrg ) +LONG WINAPI TabbedTextOut16( HDC16 hdc, INT16 x, INT16 y, LPCSTR lpstr, + INT16 count, INT16 cTabStops, + const INT16 *lpTabPos, INT16 nTabOrg ) { dprintf_text( stddeb, "TabbedTextOut16: %04x %d,%d '%.*s' %d\n", hdc, x, y, count, lpstr, count ); @@ -536,8 +537,9 @@ LONG TabbedTextOut16( HDC16 hdc, INT16 x, INT16 y, LPCSTR lpstr, INT16 count, /*********************************************************************** * TabbedTextOut32A (USER32.541) */ -LONG TabbedTextOut32A( HDC32 hdc, INT32 x, INT32 y, LPCSTR lpstr, INT32 count, - INT32 cTabStops, const INT32 *lpTabPos, INT32 nTabOrg ) +LONG WINAPI TabbedTextOut32A( HDC32 hdc, INT32 x, INT32 y, LPCSTR lpstr, + INT32 count, INT32 cTabStops, + const INT32 *lpTabPos, INT32 nTabOrg ) { dprintf_text( stddeb, "TabbedTextOut32A: %04x %d,%d '%.*s' %d\n", hdc, x, y, count, lpstr, count ); @@ -549,8 +551,9 @@ LONG TabbedTextOut32A( HDC32 hdc, INT32 x, INT32 y, LPCSTR lpstr, INT32 count, /*********************************************************************** * TabbedTextOut32W (USER32.542) */ -LONG TabbedTextOut32W( HDC32 hdc, INT32 x, INT32 y, LPCWSTR str, INT32 count, - INT32 cTabStops, const INT32 *lpTabPos, INT32 nTabOrg ) +LONG WINAPI TabbedTextOut32W( HDC32 hdc, INT32 x, INT32 y, LPCWSTR str, + INT32 count, INT32 cTabStops, + const INT32 *lpTabPos, INT32 nTabOrg ) { LONG ret; LPSTR p = HEAP_xalloc( GetProcessHeap(), 0, count + 1 ); @@ -565,8 +568,8 @@ LONG TabbedTextOut32W( HDC32 hdc, INT32 x, INT32 y, LPCWSTR str, INT32 count, /*********************************************************************** * GetTabbedTextExtent16 (USER.197) */ -DWORD GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count, - INT16 cTabStops, const INT16 *lpTabPos ) +DWORD WINAPI GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count, + INT16 cTabStops, const INT16 *lpTabPos ) { dprintf_text( stddeb, "GetTabbedTextExtent: %04x '%.*s' %d\n", hdc, count, lpstr, count ); @@ -578,8 +581,8 @@ DWORD GetTabbedTextExtent16( HDC16 hdc, LPCSTR lpstr, INT16 count, /*********************************************************************** * GetTabbedTextExtent32A (USER32.292) */ -DWORD GetTabbedTextExtent32A( HDC32 hdc, LPCSTR lpstr, INT32 count, - INT32 cTabStops, const INT32 *lpTabPos ) +DWORD WINAPI GetTabbedTextExtent32A( HDC32 hdc, LPCSTR lpstr, INT32 count, + INT32 cTabStops, const INT32 *lpTabPos ) { dprintf_text( stddeb, "GetTabbedTextExtent: %04x '%.*s' %d\n", hdc, count, lpstr, count ); @@ -591,8 +594,8 @@ DWORD GetTabbedTextExtent32A( HDC32 hdc, LPCSTR lpstr, INT32 count, /*********************************************************************** * GetTabbedTextExtent32W (USER32.293) */ -DWORD GetTabbedTextExtent32W( HDC32 hdc, LPCWSTR lpstr, INT32 count, - INT32 cTabStops, const INT32 *lpTabPos ) +DWORD WINAPI GetTabbedTextExtent32W( HDC32 hdc, LPCWSTR lpstr, INT32 count, + INT32 cTabStops, const INT32 *lpTabPos ) { LONG ret; LPSTR p = HEAP_xalloc( GetProcessHeap(), 0, count + 1 ); @@ -605,11 +608,13 @@ DWORD GetTabbedTextExtent32W( HDC32 hdc, LPCWSTR lpstr, INT32 count, /*********************************************************************** * GetTextCharset (USER32.226) (USER.612) */ -INT32 GetTextCharset32(HDC32 hdc) { +INT32 WINAPI GetTextCharset32(HDC32 hdc) +{ fprintf(stdnimp,"GetTextCharset(0x%x)\n",hdc); return DEFAULT_CHARSET; /* FIXME */ } -INT16 GetTextCharset16(HDC16 hdc) { +INT16 WINAPI GetTextCharset16(HDC16 hdc) +{ return GetTextCharset32(hdc); } diff --git a/scheduler/process.c b/scheduler/process.c index 05fa39dde7a..28195620962 100644 --- a/scheduler/process.c +++ b/scheduler/process.c @@ -219,7 +219,7 @@ BOOL32 PROCESS_SetObjPtr( HANDLE32 handle, K32OBJ *ptr, DWORD flags ) /********************************************************************* * CloseHandle (KERNEL32.23) */ -BOOL32 CloseHandle( HANDLE32 handle ) +BOOL32 WINAPI CloseHandle( HANDLE32 handle ) { BOOL32 ret = FALSE; K32OBJ *ptr = NULL; @@ -350,7 +350,7 @@ void PROCESS_Destroy( K32OBJ *ptr ) /*********************************************************************** * ExitProcess (KERNEL32.100) */ -void ExitProcess( DWORD status ) +void WINAPI ExitProcess( DWORD status ) { TASK_KillCurrentTask( status ); } @@ -359,7 +359,7 @@ void ExitProcess( DWORD status ) /*********************************************************************** * GetCurrentProcess (KERNEL32.198) */ -HANDLE32 GetCurrentProcess(void) +HANDLE32 WINAPI GetCurrentProcess(void) { return 0x7fffffff; } @@ -368,7 +368,7 @@ HANDLE32 GetCurrentProcess(void) /*********************************************************************** * GetCurrentProcessId (KERNEL32.199) */ -DWORD GetCurrentProcessId(void) +DWORD WINAPI GetCurrentProcessId(void) { return (DWORD)pCurrentProcess; } @@ -377,7 +377,7 @@ DWORD GetCurrentProcessId(void) /*********************************************************************** * GetEnvironmentStrings32A (KERNEL32.210) (KERNEL32.211) */ -LPSTR GetEnvironmentStrings32A(void) +LPSTR WINAPI GetEnvironmentStrings32A(void) { assert( pCurrentProcess ); return pCurrentProcess->env_db->environ; @@ -387,7 +387,7 @@ LPSTR GetEnvironmentStrings32A(void) /*********************************************************************** * GetEnvironmentStrings32W (KERNEL32.212) */ -LPWSTR GetEnvironmentStrings32W(void) +LPWSTR WINAPI GetEnvironmentStrings32W(void) { INT32 size; LPWSTR ret, pW; @@ -414,7 +414,7 @@ LPWSTR GetEnvironmentStrings32W(void) /*********************************************************************** * FreeEnvironmentStrings32A (KERNEL32.141) */ -BOOL32 FreeEnvironmentStrings32A( LPSTR ptr ) +BOOL32 WINAPI FreeEnvironmentStrings32A( LPSTR ptr ) { assert( pCurrentProcess ); if (ptr != pCurrentProcess->env_db->environ) @@ -429,7 +429,7 @@ BOOL32 FreeEnvironmentStrings32A( LPSTR ptr ) /*********************************************************************** * FreeEnvironmentStrings32W (KERNEL32.142) */ -BOOL32 FreeEnvironmentStrings32W( LPWSTR ptr ) +BOOL32 WINAPI FreeEnvironmentStrings32W( LPWSTR ptr ) { assert( pCurrentProcess ); return HeapFree( GetProcessHeap(), 0, ptr ); @@ -439,7 +439,7 @@ BOOL32 FreeEnvironmentStrings32W( LPWSTR ptr ) /*********************************************************************** * GetEnvironmentVariable32A (KERNEL32.213) */ -DWORD GetEnvironmentVariable32A( LPCSTR name, LPSTR value, DWORD size ) +DWORD WINAPI GetEnvironmentVariable32A( LPCSTR name, LPSTR value, DWORD size ) { LPSTR p; INT32 len, res; @@ -470,7 +470,7 @@ not_found: /*********************************************************************** * GetEnvironmentVariable32W (KERNEL32.214) */ -DWORD GetEnvironmentVariable32W( LPCWSTR nameW, LPWSTR valW, DWORD size ) +DWORD WINAPI GetEnvironmentVariable32W( LPCWSTR nameW, LPWSTR valW, DWORD size) { LPSTR name = HEAP_strdupWtoA( GetProcessHeap(), 0, nameW ); LPSTR val = HeapAlloc( GetProcessHeap(), 0, size ); @@ -485,7 +485,7 @@ DWORD GetEnvironmentVariable32W( LPCWSTR nameW, LPWSTR valW, DWORD size ) /*********************************************************************** * SetEnvironmentVariable32A (KERNEL32.484) */ -BOOL32 SetEnvironmentVariable32A( LPCSTR name, LPCSTR value ) +BOOL32 WINAPI SetEnvironmentVariable32A( LPCSTR name, LPCSTR value ) { INT32 size, len, res; LPSTR p, env, new_env; @@ -535,7 +535,7 @@ BOOL32 SetEnvironmentVariable32A( LPCSTR name, LPCSTR value ) /*********************************************************************** * SetEnvironmentVariable32W (KERNEL32.485) */ -BOOL32 SetEnvironmentVariable32W( LPCWSTR name, LPCWSTR value ) +BOOL32 WINAPI SetEnvironmentVariable32W( LPCWSTR name, LPCWSTR value ) { LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name ); LPSTR valueA = HEAP_strdupWtoA( GetProcessHeap(), 0, value ); @@ -549,7 +549,8 @@ BOOL32 SetEnvironmentVariable32W( LPCWSTR name, LPCWSTR value ) /*********************************************************************** * ExpandEnvironmentVariablesA (KERNEL32.103) */ -DWORD ExpandEnvironmentStrings32A( LPCSTR src, LPSTR dst, DWORD len) { +DWORD WINAPI ExpandEnvironmentStrings32A( LPCSTR src, LPSTR dst, DWORD len) +{ LPCSTR s; LPSTR d; HANDLE32 heap = GetProcessHeap(); @@ -622,7 +623,8 @@ DWORD ExpandEnvironmentStrings32A( LPCSTR src, LPSTR dst, DWORD len) { /*********************************************************************** * ExpandEnvironmentVariablesA (KERNEL32.104) */ -DWORD ExpandEnvironmentStrings32W( LPCWSTR src, LPWSTR dst, DWORD len) { +DWORD WINAPI ExpandEnvironmentStrings32W( LPCWSTR src, LPWSTR dst, DWORD len) +{ HANDLE32 heap = GetProcessHeap(); LPSTR srcA = HEAP_strdupWtoA(heap,0,src); LPSTR dstA = HeapAlloc(heap,0,len); @@ -637,7 +639,7 @@ DWORD ExpandEnvironmentStrings32W( LPCWSTR src, LPWSTR dst, DWORD len) { /*********************************************************************** * GetProcessHeap (KERNEL32.259) */ -HANDLE32 GetProcessHeap(void) +HANDLE32 WINAPI GetProcessHeap(void) { if (!pCurrentProcess) return SystemHeap; /* For the boot-up code */ return pCurrentProcess->heap; @@ -647,7 +649,7 @@ HANDLE32 GetProcessHeap(void) /*********************************************************************** * GetThreadLocale (KERNEL32.295) */ -LCID GetThreadLocale(void) +LCID WINAPI GetThreadLocale(void) { return pCurrentProcess->locale; } @@ -656,7 +658,7 @@ LCID GetThreadLocale(void) /*********************************************************************** * SetPriorityClass (KERNEL32.503) */ -BOOL32 SetPriorityClass( HANDLE32 hprocess, DWORD priorityclass ) +BOOL32 WINAPI SetPriorityClass( HANDLE32 hprocess, DWORD priorityclass ) { PDB32 *pdb; @@ -688,7 +690,7 @@ BOOL32 SetPriorityClass( HANDLE32 hprocess, DWORD priorityclass ) /*********************************************************************** * GetPriorityClass (KERNEL32.250) */ -DWORD GetPriorityClass(HANDLE32 hprocess) +DWORD WINAPI GetPriorityClass(HANDLE32 hprocess) { PDB32 *pdb; DWORD ret; @@ -726,7 +728,7 @@ DWORD GetPriorityClass(HANDLE32 hprocess) * FIXME: These should be allocated when a console is created, or inherited * from the parent. */ -HANDLE32 GetStdHandle( DWORD std_handle ) +HANDLE32 WINAPI GetStdHandle( DWORD std_handle ) { HFILE32 hFile; int fd; @@ -771,7 +773,7 @@ HANDLE32 GetStdHandle( DWORD std_handle ) /*********************************************************************** * SetStdHandle (KERNEL32.506) */ -BOOL32 SetStdHandle( DWORD std_handle, HANDLE32 handle ) +BOOL32 WINAPI SetStdHandle( DWORD std_handle, HANDLE32 handle ) { assert( pCurrentProcess ); switch(std_handle) @@ -793,8 +795,8 @@ BOOL32 SetStdHandle( DWORD std_handle, HANDLE32 handle ) /*********************************************************************** * GetProcessVersion (KERNEL32) */ -DWORD -GetProcessVersion(DWORD processid) { +DWORD WINAPI GetProcessVersion(DWORD processid) +{ PDB32 *process; TDB *pTask; @@ -808,3 +810,65 @@ GetProcessVersion(DWORD processid) { return 0; return (pTask->version&0xff) | (((pTask->version >>8) & 0xff)<<16); } + +/*********************************************************************** + * SetProcessWorkingSetSize (KERNEL32) + */ +BOOL32 WINAPI SetProcessWorkingSetSize(HANDLE32 hProcess,DWORD minset, + DWORD maxset) +{ + fprintf(stderr,"SetProcessWorkingSetSize(0x%08x,%ld,%ld), STUB!\n", + hProcess,minset,maxset + ); + return TRUE; +} + +/*********************************************************************** + * GetProcessWorkingSetSize (KERNEL32) + */ +BOOL32 WINAPI GetProcessWorkingSetSize(HANDLE32 hProcess,LPDWORD minset, + LPDWORD maxset) +{ + fprintf(stderr,"SetProcessWorkingSetSize(0x%08x,%p,%p), STUB!\n", + hProcess,minset,maxset + ); + /* 32 MB working set size */ + if (minset) *minset = 32*1024*1024; + if (maxset) *maxset = 32*1024*1024; + return TRUE; +} + +/*********************************************************************** + * SetProcessShutdownParameters (KERNEL32) + */ +BOOL32 WINAPI SetProcessShutdownParameters(DWORD level,DWORD flags) +{ + fprintf(stderr,"SetProcessShutdownParameters(%ld,0x%08lx), STUB!\n", + level,flags + ); + return TRUE; +} + +/*********************************************************************** + * ReadProcessMemory (KERNEL32) + * FIXME: check this, if we ever run win32 binaries in different addressspaces + * ... and add a sizecheck + */ +BOOL32 WINAPI ReadProcessMemory( HANDLE32 hProcess, LPCVOID lpBaseAddress, + LPVOID lpBuffer, DWORD nSize, + LPDWORD lpNumberOfBytesRead ) +{ + memcpy(lpBuffer,lpBaseAddress,nSize); + if (lpNumberOfBytesRead) *lpNumberOfBytesRead = nSize; + return TRUE; +} + +/*********************************************************************** + * ConvertToGlobalHandle (KERNEL32) + * FIXME: this is not correctly implemented... + */ +HANDLE32 WINAPI ConvertToGlobalHandle(HANDLE32 h) +{ + fprintf(stderr,"ConvertToGlobalHandle(%d),stub!\n",h); + return h; +} diff --git a/scheduler/thread.c b/scheduler/thread.c index 22f78f65f0c..7d1bbe2feeb 100644 --- a/scheduler/thread.c +++ b/scheduler/thread.c @@ -12,6 +12,8 @@ #include "selectors.h" #include "miscemu.h" #include "winnt.h" +#include "debug.h" +#include "stddebug.h" THDB *pCurrentThread = NULL; @@ -114,9 +116,9 @@ void THREAD_Destroy( K32OBJ *ptr ) * * The only thing missing here is actually getting the thread to run ;-) */ -HANDLE32 CreateThread( LPSECURITY_ATTRIBUTES attribs, DWORD stack, - LPTHREAD_START_ROUTINE start, LPVOID param, - DWORD flags, LPDWORD id ) +HANDLE32 WINAPI CreateThread( LPSECURITY_ATTRIBUTES attribs, DWORD stack, + LPTHREAD_START_ROUTINE start, LPVOID param, + DWORD flags, LPDWORD id ) { HANDLE32 handle; THDB *thread = THREAD_Create( pCurrentProcess, stack, start ); @@ -136,7 +138,7 @@ HANDLE32 CreateThread( LPSECURITY_ATTRIBUTES attribs, DWORD stack, /*********************************************************************** * GetCurrentThread (KERNEL32.200) */ -HANDLE32 GetCurrentThread(void) +HANDLE32 WINAPI GetCurrentThread(void) { return 0xFFFFFFFE; } @@ -146,7 +148,7 @@ HANDLE32 GetCurrentThread(void) * GetCurrentThreadId (KERNEL32.201) * Returns crypted (xor'ed) pointer to THDB in Win95. */ -DWORD GetCurrentThreadId(void) +DWORD WINAPI GetCurrentThreadId(void) { /* FIXME: should probably use %fs register here */ assert( pCurrentThread ); @@ -157,7 +159,7 @@ DWORD GetCurrentThreadId(void) /********************************************************************** * GetLastError (KERNEL.148) (KERNEL32.227) */ -DWORD GetLastError(void) +DWORD WINAPI GetLastError(void) { THDB *thread = (THDB *)GetCurrentThreadId(); return thread->last_error; @@ -167,7 +169,7 @@ DWORD GetLastError(void) /********************************************************************** * SetLastError (KERNEL.147) (KERNEL32.497) */ -void SetLastError( DWORD error ) +void WINAPI SetLastError( DWORD error ) { THDB *thread; if (!pCurrentThread) return; /* FIXME */ @@ -179,7 +181,7 @@ void SetLastError( DWORD error ) /********************************************************************** * SetLastErrorEx (USER32.484) */ -void SetLastErrorEx( DWORD error, DWORD type ) +void WINAPI SetLastErrorEx( DWORD error, DWORD type ) { /* FIXME: what about 'type'? */ SetLastError( error ); @@ -189,7 +191,7 @@ void SetLastErrorEx( DWORD error, DWORD type ) /********************************************************************** * TlsAlloc (KERNEL32.530) */ -DWORD TlsAlloc(void) +DWORD WINAPI TlsAlloc(void) { DWORD i, mask, ret = 0; THDB *thread = (THDB *)GetCurrentThreadId(); @@ -216,7 +218,7 @@ DWORD TlsAlloc(void) /********************************************************************** * TlsFree (KERNEL32.531) */ -BOOL32 TlsFree( DWORD index ) +BOOL32 WINAPI TlsFree( DWORD index ) { DWORD mask; THDB *thread = (THDB *)GetCurrentThreadId(); @@ -246,7 +248,7 @@ BOOL32 TlsFree( DWORD index ) /********************************************************************** * TlsGetValue (KERNEL32.532) */ -LPVOID TlsGetValue( DWORD index ) +LPVOID WINAPI TlsGetValue( DWORD index ) { THDB *thread = (THDB *)GetCurrentThreadId(); if (index >= 64) @@ -262,7 +264,7 @@ LPVOID TlsGetValue( DWORD index ) /********************************************************************** * TlsSetValue (KERNEL32.533) */ -BOOL32 TlsSetValue( DWORD index, LPVOID value ) +BOOL32 WINAPI TlsSetValue( DWORD index, LPVOID value ) { THDB *thread = (THDB *)GetCurrentThreadId(); if (index >= 64) @@ -278,7 +280,7 @@ BOOL32 TlsSetValue( DWORD index, LPVOID value ) /*********************************************************************** * GetThreadContext (KERNEL32.294) */ -BOOL32 GetThreadContext( HANDLE32 handle, CONTEXT *context ) +BOOL32 WINAPI GetThreadContext( HANDLE32 handle, CONTEXT *context ) { THDB *thread = (THDB*)PROCESS_GetObjPtr( handle, K32OBJ_THREAD ); if (!thread) return FALSE; @@ -291,7 +293,7 @@ BOOL32 GetThreadContext( HANDLE32 handle, CONTEXT *context ) /********************************************************************** * NtCurrentTeb (NTDLL.89) */ -void NtCurrentTeb( CONTEXT *context ) +void WINAPI NtCurrentTeb( CONTEXT *context ) { EAX_reg(context) = GetSelectorBase( FS_reg(context) ); } @@ -300,7 +302,7 @@ void NtCurrentTeb( CONTEXT *context ) /********************************************************************** * GetThreadPriority (KERNEL32.296) */ -INT32 GetThreadPriority(HANDLE32 hthread) +INT32 WINAPI GetThreadPriority(HANDLE32 hthread) { THDB *thread; INT32 ret; @@ -315,7 +317,7 @@ INT32 GetThreadPriority(HANDLE32 hthread) /********************************************************************** * SetThreadPriority (KERNEL32.514) */ -BOOL32 SetThreadPriority(HANDLE32 hthread,INT32 priority) +BOOL32 WINAPI SetThreadPriority(HANDLE32 hthread,INT32 priority) { THDB *thread; @@ -324,3 +326,12 @@ BOOL32 SetThreadPriority(HANDLE32 hthread,INT32 priority) K32OBJ_DecCount( &thread->header ); return TRUE; } + +/********************************************************************** + * TerminateThread (KERNEL32) + */ +BOOL32 WINAPI TerminateThread(DWORD threadid,DWORD exitcode) +{ + fprintf(stdnimp,"TerminateThread(0x%08lx,%ld), STUB!\n",threadid,exitcode); + return TRUE; +} diff --git a/tools/build.c b/tools/build.c index 6ab1a55fa26..327a8e8f533 100644 --- a/tools/build.c +++ b/tools/build.c @@ -1327,13 +1327,11 @@ static int BuildSpecFile( FILE *outfile, char *specname ) * functions that need a large stack, like X bitmaps functions. * * The generated function has the following prototype: - * int CallTo32_LargeStack( int (*func)(), int nbargs, ... ) + * int CALLTO32_LargeStack( int (*func)(), void *arg ); * * Stack layout: * ... ... - * (ebp+20) arg2 - * (ebp+16) arg1 - * (ebp+12) nbargs + * (ebp+12) arg * (ebp+8) func * (ebp+4) ret addr * (ebp) ebp @@ -1344,22 +1342,16 @@ static void BuildCall32LargeStack( FILE *outfile ) fprintf( outfile, "\n\t.align 4\n" ); #ifdef USE_STABS - fprintf( outfile, ".stabs \"CallTo32_LargeStack:F1\",36,0,0," PREFIX "CallTo32_LargeStack\n"); + fprintf( outfile, ".stabs \"CALLTO32_LargeStack:F1\",36,0,0," PREFIX "CALLTO32_LargeStack\n"); #endif - fprintf( outfile, "\t.globl " PREFIX "CallTo32_LargeStack\n" ); - fprintf( outfile, PREFIX "CallTo32_LargeStack:\n" ); + fprintf( outfile, "\t.globl " PREFIX "CALLTO32_LargeStack\n" ); + fprintf( outfile, PREFIX "CALLTO32_LargeStack:\n" ); /* Entry code */ fprintf( outfile, "\tpushl %%ebp\n" ); fprintf( outfile, "\tmovl %%esp,%%ebp\n" ); - /* Save registers */ - - fprintf( outfile, "\tpushl %%ecx\n" ); - fprintf( outfile, "\tpushl %%esi\n" ); - fprintf( outfile, "\tpushl %%edi\n" ); - /* Retrieve the original 32-bit stack pointer and switch to it if any */ fprintf( outfile, "\tmovl " PREFIX "IF1632_Original32_esp, %%eax\n" ); @@ -1368,33 +1360,14 @@ static void BuildCall32LargeStack( FILE *outfile ) fprintf( outfile, "\tmovl %%eax,%%esp\n" ); fprintf( outfile, "no_orig_esp:\n" ); - /* Transfer the arguments */ - - fprintf( outfile, "\tmovl 12(%%ebp),%%ecx\n" ); - fprintf( outfile, "\torl %%ecx,%%ecx\n" ); - fprintf( outfile, "\tje no_args\n" ); - fprintf( outfile, "\tleal 16(%%ebp),%%esi\n" ); - fprintf( outfile, "\tshll $2,%%ecx\n" ); - fprintf( outfile, "\tsubl %%ecx,%%esp\n" ); - fprintf( outfile, "\tmovl %%esp,%%edi\n" ); - fprintf( outfile, "\tshrl $2,%%ecx\n" ); - fprintf( outfile, "\tcld\n" ); - fprintf( outfile, "\trep; movsl\n" ); - fprintf( outfile, "no_args:\n" ); - - /* Call the function */ + /* Transfer the argument and call the function */ + fprintf( outfile, "\tpushl 12(%%ebp)\n" ); fprintf( outfile, "\tcall 8(%%ebp)\n" ); - /* Switch back to the normal stack */ - - fprintf( outfile, "\tleal -12(%%ebp),%%esp\n" ); - /* Restore registers and return */ - fprintf( outfile, "\tpopl %%edi\n" ); - fprintf( outfile, "\tpopl %%esi\n" ); - fprintf( outfile, "\tpopl %%ecx\n" ); + fprintf( outfile, "\tmovl %%ebp,%%esp\n" ); fprintf( outfile, "\tpopl %%ebp\n" ); fprintf( outfile, "\tret\n" ); } @@ -2197,6 +2170,19 @@ static void BuildCallFrom32Func( FILE *outfile, const char *profile ) fprintf( outfile, "\t.globl " PREFIX "CallFrom32_%s\n", profile ); fprintf( outfile, PREFIX "CallFrom32_%s:\n", profile ); +#if 0 + fprintf( outfile, "\tleal 8(%%esp),%%ebp\n" ); + fprintf( outfile, "\tpushl $%d\n", /* Nb args */ + reg_func ? args | 0x80000000 : args); + fprintf( outfile, "\tpushl %%ebp\n" ); + fprintf( outfile, "\tcall " PREFIX "RELAY_DebugCallFrom32\n" ); + fprintf( outfile, "\tadd $8, %%esp\n" ); + fprintf( outfile, "\tpopl %%eax\n" ); + fprintf( outfile, "\tpopl %%eax\n" ); + fprintf( outfile, "\tpopl %%ebp\n" ); + fprintf( outfile, "\tjmp %%eax\n" ); +#endif + /* Entry code */ fprintf( outfile, "\tleal 8(%%esp),%%ebp\n" ); @@ -2373,10 +2359,6 @@ static int BuildCallFrom16( FILE *outfile, char * outname, int argc, char *argv[ fprintf( outfile, "Code_Start:\n\n" ); #endif - /* Build the 32-bit large stack callback */ - - BuildCall32LargeStack( outfile ); - /* Build the callback functions */ for (i = 2; i < argc; i++) BuildCallFrom16Func( outfile, argv[i] ); @@ -2538,6 +2520,10 @@ static int BuildCallTo32( FILE *outfile, char * outname, fprintf( outfile, "Code_Start:\n\n" ); #endif + /* Build the 32-bit large stack callback */ + + BuildCall32LargeStack( outfile ); + /* Build the callback functions */ for (i = 2; i < argc; i++) BuildCallTo32Func( outfile, atoi(argv[i]) ); diff --git a/tools/fnt2bdf.c b/tools/fnt2bdf.c index 679511681c2..d994a996636 100644 --- a/tools/fnt2bdf.c +++ b/tools/fnt2bdf.c @@ -350,12 +350,12 @@ int l_ascent = return_data_value(dfShort, cpe_font_struct->hdr.dfAscent); case ANSI_CHARSET: fputs("ansi-0\n", fs); break; case GREEK_CHARSET: fputs("cp125-3\n", fs); break; - case TURKISH_CHARSET: fputs("iso8859-9", fs); break; - case HEBREW_CHARSET: fputs("cp125-5", fs); break; - case ARABIC_CHARSET: fputs("cp125-6", fs); break; - case BALTIC_CHARSET: fputs("cp125-7", fs); break; - case RUSSIAN_CHARSET: fputs("cp125-1", fs); break; - case EE_CHARSET: fputs("iso8859-2", fs); break; + case TURKISH_CHARSET: fputs("cp125-4\n", fs); break; + case HEBREW_CHARSET: fputs("cp125-5\n", fs); break; + case ARABIC_CHARSET: fputs("cp125-6\n", fs); break; + case BALTIC_CHARSET: fputs("cp125-7\n", fs); break; + case RUSSIAN_CHARSET: fputs("cp125-1\n", fs); break; + case EE_CHARSET: fputs("cp125-0\n", fs); break; case SYMBOL_CHARSET: fputs("misc-fontspecific\n", fs); break; case SHIFTJIS_CHARSET: fputs("jisx0208.1983-0\n", fs); break; case DEFAULT_CHARSET: fputs("iso8859-1\n", fs); break; diff --git a/win32/advapi.c b/win32/advapi.c index 9bb1ca796d6..d6c25c0a3bb 100644 --- a/win32/advapi.c +++ b/win32/advapi.c @@ -16,8 +16,7 @@ /*********************************************************************** * StartServiceCtrlDispatcherA [ADVAPI32.196] */ -BOOL32 -StartServiceCtrlDispatcher32A(LPSERVICE_TABLE_ENTRY32A servent) +BOOL32 WINAPI StartServiceCtrlDispatcher32A(LPSERVICE_TABLE_ENTRY32A servent) { fprintf(stderr,"StartServiceCtrlDispatcherA(%p (%s)), STUB.\n", servent, @@ -29,8 +28,7 @@ StartServiceCtrlDispatcher32A(LPSERVICE_TABLE_ENTRY32A servent) /*********************************************************************** * StartServiceCtrlDispatcherW [ADVAPI32.197] */ -BOOL32 -StartServiceCtrlDispatcher32W(LPSERVICE_TABLE_ENTRY32W servent) +BOOL32 WINAPI StartServiceCtrlDispatcher32W(LPSERVICE_TABLE_ENTRY32W servent) { char buffer[200]; @@ -46,8 +44,8 @@ StartServiceCtrlDispatcher32W(LPSERVICE_TABLE_ENTRY32W servent) /*********************************************************************** * OpenProcessToken [ADVAPI32.197] */ -BOOL32 -OpenProcessToken(HANDLE32 process,DWORD desiredaccess,HANDLE32 *thandle) +BOOL32 WINAPI OpenProcessToken(HANDLE32 process,DWORD desiredaccess, + HANDLE32 *thandle) { fprintf(stdnimp,"OpenProcessToken(%08x,%08lx,%p),stub!\n", process,desiredaccess,thandle @@ -58,10 +56,9 @@ OpenProcessToken(HANDLE32 process,DWORD desiredaccess,HANDLE32 *thandle) /*********************************************************************** * OpenThreadToken [ADVAPI32.114] */ -BOOL32 -OpenThreadToken( - HANDLE32 thread,DWORD desiredaccess,BOOL32 openasself,HANDLE32 *thandle -) { +BOOL32 WINAPI OpenThreadToken( HANDLE32 thread,DWORD desiredaccess, + BOOL32 openasself,HANDLE32 *thandle ) +{ fprintf(stdnimp,"OpenThreadToken(%08x,%08lx,%d,%p),stub!\n", thread,desiredaccess,openasself,thandle ); @@ -71,16 +68,14 @@ OpenThreadToken( /*********************************************************************** * LookupPrivilegeValueA [ADVAPI32.90] */ -BOOL32 -LookupPrivilegeValue32A(LPCSTR system,LPCSTR name,LPVOID bla) +BOOL32 WINAPI LookupPrivilegeValue32A(LPCSTR system,LPCSTR name,LPVOID bla) { fprintf(stdnimp,"LookupPrivilegeValue32A(%s,%s,%p),stub\n", system,name,bla ); return TRUE; } -BOOL32 -AdjustTokenPrivileges(HANDLE32 TokenHandle,BOOL32 DisableAllPrivileges, +BOOL32 WINAPI AdjustTokenPrivileges(HANDLE32 TokenHandle,BOOL32 DisableAllPrivileges, LPVOID NewState,DWORD BufferLength,LPVOID PreviousState, LPDWORD ReturnLength ) { @@ -90,27 +85,24 @@ AdjustTokenPrivileges(HANDLE32 TokenHandle,BOOL32 DisableAllPrivileges, /*********************************************************************** * GetTokenInformation [ADVAPI32.66] */ -BOOL32 -GetTokenInformation( +BOOL32 WINAPI GetTokenInformation( HANDLE32 token,/*TOKEN_INFORMATION_CLASS*/ DWORD tokeninfoclass,LPVOID tokeninfo, DWORD tokeninfolength,LPDWORD retlen ) { - fprintf(stderr,"GetTokenInformation(%08lx,%d,%p,%ld,%p)\n", + fprintf(stderr,"GetTokenInformation(%08x,%ld,%p,%ld,%p)\n", token,tokeninfoclass,tokeninfo,tokeninfolength,retlen ); return TRUE; } /*SC_HANDLE*/ -DWORD -OpenSCManagerA(LPCSTR machine,LPCSTR dbname,DWORD desiredaccess) +DWORD WINAPI OpenSCManagerA(LPCSTR machine,LPCSTR dbname,DWORD desiredaccess) { fprintf(stderr,"OpenSCManagerA(%s,%s,%08lx)\n",machine,dbname,desiredaccess); return 0; } -DWORD -OpenSCManagerW(LPCWSTR machine,LPCWSTR dbname,DWORD desiredaccess) +DWORD WINAPI OpenSCManagerW(LPCWSTR machine,LPCWSTR dbname,DWORD desiredaccess) { LPSTR machineA = HEAP_strdupWtoA(GetProcessHeap(),0,machine); LPSTR dbnameA = HEAP_strdupWtoA(GetProcessHeap(),0,dbname); @@ -120,8 +112,7 @@ OpenSCManagerW(LPCWSTR machine,LPCWSTR dbname,DWORD desiredaccess) return 0; } -BOOL32 -AllocateLocallyUniqueId(LPLUID lpluid) { +BOOL32 WINAPI AllocateLocallyUniqueId(LPLUID lpluid) { lpluid->LowPart = time(NULL); lpluid->HighPart = 0; return TRUE; diff --git a/win32/code_page.c b/win32/code_page.c index 508172bd160..7a10618610d 100644 --- a/win32/code_page.c +++ b/win32/code_page.c @@ -17,7 +17,7 @@ /*********************************************************************** * GetACP (KERNEL32.148) */ -UINT32 GetACP(void) +UINT32 WINAPI GetACP(void) { return 1252; /* Windows 3.1 ISO Latin */ } @@ -25,7 +25,7 @@ UINT32 GetACP(void) /*********************************************************************** * GetCPInfo (KERNEL32.154) */ -BOOL32 GetCPInfo( UINT32 codepage, LPCPINFO cpinfo ) +BOOL32 WINAPI GetCPInfo( UINT32 codepage, LPCPINFO cpinfo ) { cpinfo->DefaultChar[0] = '?'; switch (codepage) @@ -61,7 +61,7 @@ BOOL32 GetCPInfo( UINT32 codepage, LPCPINFO cpinfo ) /*********************************************************************** * GetOEMCP (KERNEL32.248) */ -UINT32 GetOEMCP(void) +UINT32 WINAPI GetOEMCP(void) { return 437; /* MS-DOS United States */ } @@ -69,7 +69,7 @@ UINT32 GetOEMCP(void) /*********************************************************************** * IsValidCodePage (KERNEL32.360) */ -BOOL32 IsValidCodePage(UINT32 CodePage) +BOOL32 WINAPI IsValidCodePage(UINT32 CodePage) { switch ( CodePage ) { @@ -85,14 +85,20 @@ BOOL32 IsValidCodePage(UINT32 CodePage) /*********************************************************************** * MultiByteToWideChar (KERNEL32.392) */ -int MultiByteToWideChar(UINT32 page, DWORD flags, char *src, int srclen, - WCHAR *dst, int dstlen) +int WINAPI MultiByteToWideChar(UINT32 page, DWORD flags, char *src, int srclen, + WCHAR *dst, int dstlen) { - return (srclen==-1) ? strlen(src) * 2: srclen*2; + if (srclen == -1) + srclen = lstrlen32A(src); + if (!dst) + return srclen*2; + + lstrcpynAtoW(dst,src,srclen); /* FIXME */ + return srclen*2; } -int WideCharToMultiByte(UINT32 page, DWORD flags, WCHAR *src, int srclen, - char *dst, int dstlen, char* defchar, BOOL32 *used) +int WINAPI WideCharToMultiByte(UINT32 page, DWORD flags, WCHAR *src, int srclen, + char *dst, int dstlen, char* defchar, BOOL32 *used) { int count = 0; int dont_copy= (dstlen==0); @@ -133,7 +139,7 @@ int WideCharToMultiByte(UINT32 page, DWORD flags, WCHAR *src, int srclen, /*********************************************************************** * IsDBCSLeadByteEx (KERNEL32.359) */ -BOOL32 IsDBCSLeadByteEx( UINT32 codepage, BYTE testchar ) +BOOL32 WINAPI IsDBCSLeadByteEx( UINT32 codepage, BYTE testchar ) { CPINFO cpinfo; int i; @@ -153,7 +159,7 @@ BOOL32 IsDBCSLeadByteEx( UINT32 codepage, BYTE testchar ) /*********************************************************************** * IsDBCSLeadByte16 (KERNEL.207) */ -BOOL16 IsDBCSLeadByte16( BYTE testchar ) +BOOL16 WINAPI IsDBCSLeadByte16( BYTE testchar ) { return IsDBCSLeadByteEx(GetACP(), testchar); } @@ -162,7 +168,7 @@ BOOL16 IsDBCSLeadByte16( BYTE testchar ) /*********************************************************************** * IsDBCSLeadByte32 (KERNEL32.358) */ -BOOL32 IsDBCSLeadByte32( BYTE testchar ) +BOOL32 WINAPI IsDBCSLeadByte32( BYTE testchar ) { return IsDBCSLeadByteEx(GetACP(), testchar); } @@ -171,8 +177,8 @@ BOOL32 IsDBCSLeadByte32( BYTE testchar ) /*********************************************************************** * EnumSystemCodePages32A (KERNEL32.92) */ -BOOL32 -EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A lpfnCodePageEnum,DWORD flags) { +BOOL32 WINAPI EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A lpfnCodePageEnum,DWORD flags) +{ dprintf_win32(stddeb,"EnumSystemCodePages32A(%p,%08lx)\n", lpfnCodePageEnum,flags ); @@ -183,8 +189,8 @@ EnumSystemCodePages32A(CODEPAGE_ENUMPROC32A lpfnCodePageEnum,DWORD flags) { /*********************************************************************** * EnumSystemCodePages32W (KERNEL32.93) */ -BOOL32 -EnumSystemCodePages32W( CODEPAGE_ENUMPROC32W lpfnCodePageEnum, DWORD flags) +BOOL32 WINAPI EnumSystemCodePages32W( CODEPAGE_ENUMPROC32W lpfnCodePageEnum, + DWORD flags) { WCHAR *cp; dprintf_win32(stddeb,"EnumSystemCodePages32W(%p,%08lx)\n", diff --git a/win32/console.c b/win32/console.c index e8e506daaf0..872ac73b10b 100644 --- a/win32/console.c +++ b/win32/console.c @@ -26,7 +26,7 @@ static CONSOLE_SCREEN_BUFFER_INFO dummyinfo = /*********************************************************************** * SetConsoleCtrlHandler (KERNEL32.459) */ -BOOL32 SetConsoleCtrlHandler(HANDLER_ROUTINE * func, BOOL32 a) +BOOL32 WINAPI SetConsoleCtrlHandler(HANDLER_ROUTINE * func, BOOL32 a) { return 0; } @@ -34,8 +34,8 @@ BOOL32 SetConsoleCtrlHandler(HANDLER_ROUTINE * func, BOOL32 a) /*********************************************************************** * GetConsoleScreenBufferInfo (KERNEL32.190) */ -BOOL32 GetConsoleScreenBufferInfo( HANDLE32 hConsoleOutput, - LPCONSOLE_SCREEN_BUFFER_INFO csbi ) +BOOL32 WINAPI GetConsoleScreenBufferInfo( HANDLE32 hConsoleOutput, + LPCONSOLE_SCREEN_BUFFER_INFO csbi ) { csbi->dwSize.x = 80; csbi->dwSize.y = 24; @@ -54,7 +54,7 @@ BOOL32 GetConsoleScreenBufferInfo( HANDLE32 hConsoleOutput, /*********************************************************************** * GetLargestConsoleWindowSize (KERNEL32.226) */ -DWORD GetLargestConsoleWindowSize( HANDLE32 hConsoleOutput ) +DWORD WINAPI GetLargestConsoleWindowSize( HANDLE32 hConsoleOutput ) { return (DWORD)MAKELONG(dummyinfo.dwMaximumWindowSize.x,dummyinfo.dwMaximumWindowSize.y); } @@ -62,7 +62,7 @@ DWORD GetLargestConsoleWindowSize( HANDLE32 hConsoleOutput ) /*********************************************************************** * GetConsoleCP (KERNEL32.226) */ -UINT32 GetConsoleCP(VOID) +UINT32 WINAPI GetConsoleCP(VOID) { return GetACP(); } @@ -70,7 +70,7 @@ UINT32 GetConsoleCP(VOID) /*********************************************************************** * GetConsoleOutputCP (KERNEL32.189) */ -UINT32 GetConsoleOutputCP(VOID) +UINT32 WINAPI GetConsoleOutputCP(VOID) { return GetConsoleCP(); } @@ -78,7 +78,7 @@ UINT32 GetConsoleOutputCP(VOID) /*********************************************************************** * GetConsoleMode (KERNEL32.188) */ -BOOL32 GetConsoleMode(HANDLE32 hcon,LPDWORD mode) +BOOL32 WINAPI GetConsoleMode(HANDLE32 hcon,LPDWORD mode) { *mode = ENABLE_PROCESSED_INPUT | ENABLE_LINE_INPUT | @@ -91,7 +91,7 @@ BOOL32 GetConsoleMode(HANDLE32 hcon,LPDWORD mode) /*********************************************************************** * SetConsoleMode (KERNEL32.188) */ -BOOL32 SetConsoleMode(HANDLE32 hcon,DWORD mode) +BOOL32 WINAPI SetConsoleMode(HANDLE32 hcon,DWORD mode) { fprintf(stdnimp,"SetConsoleMode(%08x,%08lx)\n",hcon,mode); return TRUE; @@ -100,7 +100,7 @@ BOOL32 SetConsoleMode(HANDLE32 hcon,DWORD mode) /*********************************************************************** * GetConsoleTitleA (KERNEL32.191) */ -DWORD GetConsoleTitle32A(LPSTR title,DWORD size) +DWORD WINAPI GetConsoleTitle32A(LPSTR title,DWORD size) { lstrcpyn32A(title,"Console",size); return strlen("Console"); @@ -109,7 +109,7 @@ DWORD GetConsoleTitle32A(LPSTR title,DWORD size) /*********************************************************************** * GetConsoleTitleW (KERNEL32.192) */ -DWORD GetConsoleTitle32W(LPWSTR title,DWORD size) +DWORD WINAPI GetConsoleTitle32W(LPWSTR title,DWORD size) { lstrcpynAtoW(title,"Console",size); return strlen("Console"); @@ -118,12 +118,11 @@ DWORD GetConsoleTitle32W(LPWSTR title,DWORD size) /*********************************************************************** * WriteConsoleA (KERNEL32.567) */ -BOOL32 WriteConsole32A( - HANDLE32 hConsoleOutput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToWrite, - LPDWORD lpNumberOfCharsWritten, - LPVOID lpReserved ) +BOOL32 WINAPI WriteConsole32A( HANDLE32 hConsoleOutput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved ) { LPSTR buf = (LPSTR)xmalloc(nNumberOfCharsToWrite+1); @@ -138,12 +137,11 @@ BOOL32 WriteConsole32A( /*********************************************************************** * WriteConsoleW (KERNEL32.577) */ -BOOL32 WriteConsole32W( - HANDLE32 hConsoleOutput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToWrite, - LPDWORD lpNumberOfCharsWritten, - LPVOID lpReserved ) +BOOL32 WINAPI WriteConsole32W( HANDLE32 hConsoleOutput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved ) { LPSTR buf = (LPSTR)xmalloc(2*nNumberOfCharsToWrite+1); @@ -158,12 +156,11 @@ BOOL32 WriteConsole32W( /*********************************************************************** * ReadConsoleA (KERNEL32.419) */ -BOOL32 ReadConsole32A( - HANDLE32 hConsoleInput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToRead, - LPDWORD lpNumberOfCharsRead, - LPVOID lpReserved ) +BOOL32 WINAPI ReadConsole32A( HANDLE32 hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved ) { fgets(lpBuffer,nNumberOfCharsToRead,stdin); *lpNumberOfCharsRead = strlen(lpBuffer); @@ -173,12 +170,11 @@ BOOL32 ReadConsole32A( /*********************************************************************** * ReadConsoleW (KERNEL32.427) */ -BOOL32 ReadConsole32W( - HANDLE32 hConsoleInput, - LPVOID lpBuffer, - DWORD nNumberOfCharsToRead, - LPDWORD lpNumberOfCharsRead, - LPVOID lpReserved ) +BOOL32 WINAPI ReadConsole32W( HANDLE32 hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + LPVOID lpReserved ) { LPSTR buf = (LPSTR)xmalloc(nNumberOfCharsToRead); @@ -191,7 +187,7 @@ BOOL32 ReadConsole32W( /*********************************************************************** * SetConsoleTitle32A (KERNEL32.476) */ -BOOL32 SetConsoleTitle32A(LPCSTR title) +BOOL32 WINAPI SetConsoleTitle32A(LPCSTR title) { fprintf(stderr,"SetConsoleTitle(%s)\n",title); return TRUE; @@ -200,7 +196,7 @@ BOOL32 SetConsoleTitle32A(LPCSTR title) /*********************************************************************** * SetConsoleTitle32W (KERNEL32.477) */ -BOOL32 SetConsoleTitle32W( LPCWSTR title ) +BOOL32 WINAPI SetConsoleTitle32W( LPCWSTR title ) { LPSTR titleA = HEAP_strdupWtoA( GetProcessHeap(), 0, title ); fprintf(stderr,"SetConsoleTitle(%s)\n",titleA); @@ -211,13 +207,13 @@ BOOL32 SetConsoleTitle32W( LPCWSTR title ) /*********************************************************************** * FlushConsoleInputBuffer (KERNEL32.132) */ -BOOL32 FlushConsoleInputBuffer(HANDLE32 hConsoleInput){ +BOOL32 WINAPI FlushConsoleInputBuffer(HANDLE32 hConsoleInput){ fprintf(stderr,"FlushConsoleInputBuffer(%d)\n",hConsoleInput); return TRUE; } -BOOL32 -SetConsoleCursorPosition(HANDLE32 hcons,COORD c) { +BOOL32 WINAPI SetConsoleCursorPosition(HANDLE32 hcons,COORD c) +{ /* x are columns, y rows */ if (!c.y) { fprintf(stderr,"\r"); @@ -232,8 +228,8 @@ SetConsoleCursorPosition(HANDLE32 hcons,COORD c) { /*********************************************************************** * GetNumberOfConsoleInputEvents (KERNEL32.246) */ -BOOL32 -GetNumberOfConsoleInputEvents(HANDLE32 hcon,LPDWORD nrofevents) { +BOOL32 WINAPI GetNumberOfConsoleInputEvents(HANDLE32 hcon,LPDWORD nrofevents) +{ *nrofevents = 1; return TRUE; } diff --git a/win32/cursoricon32.c b/win32/cursoricon32.c index 4ce417e8606..b5516630e95 100644 --- a/win32/cursoricon32.c +++ b/win32/cursoricon32.c @@ -461,7 +461,7 @@ static HGLOBAL32 CURSORICON32_Load( HINSTANCE32 hInstance, LPCWSTR name, /*********************************************************************** * LoadCursorW (USER32.361) */ -HCURSOR32 LoadCursor32W(HINSTANCE32 hInstance,LPCWSTR name) +HCURSOR32 WINAPI LoadCursor32W(HINSTANCE32 hInstance,LPCWSTR name) { return CURSORICON32_Load( hInstance, name, SYSMETRICS_CXCURSOR, SYSMETRICS_CYCURSOR, 1, TRUE); @@ -470,7 +470,7 @@ HCURSOR32 LoadCursor32W(HINSTANCE32 hInstance,LPCWSTR name) /*********************************************************************** * LoadCursorA (USER32.358) */ -HCURSOR32 LoadCursor32A(HINSTANCE32 hInstance,LPCSTR name) +HCURSOR32 WINAPI LoadCursor32A(HINSTANCE32 hInstance,LPCSTR name) { HCURSOR32 res=0; if(!HIWORD(name)) @@ -488,7 +488,7 @@ HCURSOR32 LoadCursor32A(HINSTANCE32 hInstance,LPCSTR name) /*********************************************************************** * LoadIconW (USER32.363) */ -HICON32 LoadIcon32W(HINSTANCE32 hInstance,LPCWSTR name) +HICON32 WINAPI LoadIcon32W(HINSTANCE32 hInstance,LPCWSTR name) { return CURSORICON32_Load( hInstance, name, SYSMETRICS_CXICON, SYSMETRICS_CYICON, @@ -498,7 +498,7 @@ HICON32 LoadIcon32W(HINSTANCE32 hInstance,LPCWSTR name) /*********************************************************************** * LoadIconA (USER32.362) */ -HICON32 LoadIcon32A(HINSTANCE32 hInstance,LPCSTR name) +HICON32 WINAPI LoadIcon32A(HINSTANCE32 hInstance,LPCSTR name) { HICON32 res=0; if(!HIWORD(name)) diff --git a/win32/environment.c b/win32/environment.c index 248076569f9..cbe6259caa5 100644 --- a/win32/environment.c +++ b/win32/environment.c @@ -18,7 +18,7 @@ /*********************************************************************** * GetCommandLineA (KERNEL32.161) */ -LPCSTR GetCommandLine32A(void) +LPCSTR WINAPI GetCommandLine32A(void) { static char buffer[256]; char *cp; @@ -39,7 +39,7 @@ LPCSTR GetCommandLine32A(void) /*********************************************************************** * GetCommandLineW (KERNEL32.162) */ -LPCWSTR GetCommandLine32W(void) +LPCWSTR WINAPI GetCommandLine32W(void) { static WCHAR buffer[256]; @@ -51,7 +51,7 @@ LPCWSTR GetCommandLine32W(void) /*********************************************************************** * GetSystemPowerStatus (KERNEL32.621) */ -BOOL32 GetSystemPowerStatus(LPSYSTEM_POWER_STATUS sps_ptr) +BOOL32 WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS sps_ptr) { return FALSE; /* no power management support */ } @@ -60,7 +60,8 @@ BOOL32 GetSystemPowerStatus(LPSYSTEM_POWER_STATUS sps_ptr) /*********************************************************************** * SetSystemPowerState (KERNEL32.630) */ -BOOL32 SetSystemPowerState(BOOL32 suspend_or_hibernate, BOOL32 force_flag) +BOOL32 WINAPI SetSystemPowerState(BOOL32 suspend_or_hibernate, + BOOL32 force_flag) { /* suspend_or_hibernate flag: w95 does not support this feature anyway */ diff --git a/win32/except.c b/win32/except.c index 90a28fb7360..4fbcd9d1b52 100644 --- a/win32/except.c +++ b/win32/except.c @@ -45,6 +45,24 @@ #define TEB_EXCEPTION_FRAME(pcontext) \ ((PEXCEPTION_FRAME)((TEB *)GET_SEL_BASE((pcontext)->SegFs))->except) +/******************************************************************* + * _local_unwind2 (CRTDLL) + */ +void WINAPI CRTDLL__local_unwind2(PEXCEPTION_FRAME endframe,DWORD nr, + PCONTEXT pcontext) +{ + fprintf(stderr,"CRTDLL__local_unwind2(%p,%ld)\n",endframe,nr); + return; +} + +/******************************************************************* + * _global_unwind2 (CRTDLL) + */ +void WINAPI CRTDLL__global_unwind2(PEXCEPTION_FRAME endframe,PCONTEXT pcontext) +{ + RtlUnwind(endframe,NULL/*should point to the return;*/,NULL,0,pcontext); + return; +} /******************************************************************* * RtlUnwind (KERNEL32.443) @@ -52,9 +70,9 @@ * This function is undocumented. This is the general idea of * RtlUnwind, though. Note that error handling is not yet implemented. */ -void RtlUnwind( PEXCEPTION_FRAME pEndFrame, LPVOID unusedEip, - PEXCEPTION_RECORD pRecord, DWORD returnEax, - PCONTEXT pcontext /* Wine additional parameter */ ) +void WINAPI RtlUnwind( PEXCEPTION_FRAME pEndFrame, LPVOID unusedEip, + PEXCEPTION_RECORD pRecord, DWORD returnEax, + PCONTEXT pcontext /* Wine additional parameter */ ) { EXCEPTION_RECORD record; DWORD dispatch; @@ -94,9 +112,13 @@ void RtlUnwind( PEXCEPTION_FRAME pEndFrame, LPVOID unusedEip, dprintf_win32(stddeb,"exception handler returns 0x%x, dispatch=0x%x\n", retval, (int) dispatch); - if (retval == ExceptionCollidedUnwind) + if ( (retval == ExceptionCollidedUnwind) && + (TEB_EXCEPTION_FRAME(pcontext) != (LPVOID)dispatch) + ) TEB_EXCEPTION_FRAME(pcontext) = (LPVOID)dispatch; - else if (TEB_EXCEPTION_FRAME(pcontext) != pEndFrame) + else if ( (TEB_EXCEPTION_FRAME(pcontext) != pEndFrame) && + (TEB_EXCEPTION_FRAME(pcontext) != TEB_EXCEPTION_FRAME(pcontext)->Prev) + ) TEB_EXCEPTION_FRAME(pcontext) = TEB_EXCEPTION_FRAME(pcontext)->Prev; else break; @@ -107,11 +129,11 @@ void RtlUnwind( PEXCEPTION_FRAME pEndFrame, LPVOID unusedEip, /******************************************************************* * RaiseException (KERNEL32.418) */ -void RaiseException(DWORD dwExceptionCode, - DWORD dwExceptionFlags, - DWORD cArguments, - const LPDWORD lpArguments, - PCONTEXT pcontext /* Wine additional parameter */ ) +void WINAPI RaiseException(DWORD dwExceptionCode, + DWORD dwExceptionFlags, + DWORD cArguments, + const LPDWORD lpArguments, + PCONTEXT pcontext /* Wine additional parameter */ ) { PEXCEPTION_FRAME pframe; EXCEPTION_RECORD record; @@ -162,7 +184,7 @@ void RaiseException(DWORD dwExceptionCode, /******************************************************************* * UnhandledExceptionFilter (KERNEL32.537) */ -DWORD UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers) +DWORD WINAPI UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers) { char message[80]; @@ -187,7 +209,7 @@ DWORD UnhandledExceptionFilter(PEXCEPTION_POINTERS epointers) /************************************************************* * SetUnhandledExceptionFilter (KERNEL32.516) */ -LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter( +LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter ) { LPTOP_LEVEL_EXCEPTION_FILTER old = pCurrentProcess->top_filter; diff --git a/win32/file.c b/win32/file.c index 170c91a39ea..79b75c64903 100644 --- a/win32/file.c +++ b/win32/file.c @@ -33,8 +33,8 @@ static int TranslateAccessFlags(DWORD access_flags); /*********************************************************************** * WriteFile (KERNEL32.578) */ -BOOL32 WriteFile(HFILE32 hFile, LPVOID lpBuffer, DWORD numberOfBytesToWrite, - LPDWORD numberOfBytesWritten, LPOVERLAPPED lpOverlapped) +BOOL32 WINAPI WriteFile(HFILE32 hFile, LPVOID lpBuffer, DWORD numberOfBytesToWrite, + LPDWORD numberOfBytesWritten, LPOVERLAPPED lpOverlapped) { LONG res; @@ -51,8 +51,8 @@ BOOL32 WriteFile(HFILE32 hFile, LPVOID lpBuffer, DWORD numberOfBytesToWrite, /*********************************************************************** * ReadFile (KERNEL32.428) */ -BOOL32 ReadFile(HFILE32 hFile, LPVOID lpBuffer, DWORD numtoread, - LPDWORD numread, LPOVERLAPPED lpOverlapped) +BOOL32 WINAPI ReadFile(HFILE32 hFile, LPVOID lpBuffer, DWORD numtoread, + LPDWORD numread, LPOVERLAPPED lpOverlapped) { int actual_read; @@ -74,9 +74,9 @@ BOOL32 ReadFile(HFILE32 hFile, LPVOID lpBuffer, DWORD numtoread, * Doesn't support character devices, pipes, template files, or a * lot of the 'attributes' flags yet. */ -HFILE32 CreateFile32A(LPCSTR filename, DWORD access, DWORD sharing, - LPSECURITY_ATTRIBUTES security, DWORD creation, - DWORD attributes, HANDLE32 template) +HFILE32 WINAPI CreateFile32A(LPCSTR filename, DWORD access, DWORD sharing, + LPSECURITY_ATTRIBUTES security, DWORD creation, + DWORD attributes, HANDLE32 template) { int access_flags, create_flags; @@ -115,9 +115,9 @@ HFILE32 CreateFile32A(LPCSTR filename, DWORD access, DWORD sharing, /************************************************************************* * CreateFile32W (KERNEL32.48) */ -HFILE32 CreateFile32W(LPCWSTR filename, DWORD access, DWORD sharing, - LPSECURITY_ATTRIBUTES security, DWORD creation, - DWORD attributes, HANDLE32 template) +HFILE32 WINAPI CreateFile32W(LPCWSTR filename, DWORD access, DWORD sharing, + LPSECURITY_ATTRIBUTES security, DWORD creation, + DWORD attributes, HANDLE32 template) { LPSTR afn = HEAP_strdupWtoA( GetProcessHeap(), 0, filename ); HFILE32 res = CreateFile32A( afn, access, sharing, security, creation, @@ -182,7 +182,7 @@ static int TranslateCreationFlags(DWORD create_flags) /************************************************************************** * SetFileAttributes16 (KERNEL.421) */ -BOOL16 SetFileAttributes16( LPCSTR lpFileName, DWORD attributes ) +BOOL16 WINAPI SetFileAttributes16( LPCSTR lpFileName, DWORD attributes ) { return SetFileAttributes32A( lpFileName, attributes ); } @@ -191,7 +191,7 @@ BOOL16 SetFileAttributes16( LPCSTR lpFileName, DWORD attributes ) /************************************************************************** * SetFileAttributes32A (KERNEL32.490) */ -BOOL32 SetFileAttributes32A(LPCSTR lpFileName, DWORD attributes) +BOOL32 WINAPI SetFileAttributes32A(LPCSTR lpFileName, DWORD attributes) { struct stat buf; DOS_FULL_NAME full_name; @@ -221,10 +221,11 @@ BOOL32 SetFileAttributes32A(LPCSTR lpFileName, DWORD attributes) return TRUE; } + /************************************************************************** * SetFileAttributes32W (KERNEL32.491) */ -BOOL32 SetFileAttributes32W(LPCWSTR lpFileName, DWORD attributes) +BOOL32 WINAPI SetFileAttributes32W(LPCWSTR lpFileName, DWORD attributes) { LPSTR afn = HEAP_strdupWtoA( GetProcessHeap(), 0, lpFileName ); BOOL32 res = SetFileAttributes32A( afn, attributes ); @@ -232,17 +233,29 @@ BOOL32 SetFileAttributes32W(LPCWSTR lpFileName, DWORD attributes) return res; } -VOID SetFileApisToOEM() + +/************************************************************************** + * SetFileApisToOEM (KERNEL32.645) + */ +VOID WINAPI SetFileApisToOEM(void) { fprintf(stdnimp,"SetFileApisToOEM(),stub!\n"); } -VOID SetFileApisToANSI() + +/************************************************************************** + * SetFileApisToANSI (KERNEL32.644) + */ +VOID WINAPI SetFileApisToANSI(void) { fprintf(stdnimp,"SetFileApisToANSI(),stub!\n"); } -BOOL32 AreFileApisANSI() + +/************************************************************************** + * AreFileApisANSI (KERNEL32.105) + */ +BOOL32 WINAPI AreFileApisANSI(void) { fprintf(stdnimp,"AreFileApisANSI(),stub!\n"); return TRUE; diff --git a/win32/init.c b/win32/init.c index ddd5799eab3..80a8191784f 100644 --- a/win32/init.c +++ b/win32/init.c @@ -21,7 +21,7 @@ /*********************************************************************** * GetModuleHandle (KERNEL32.237) */ -HMODULE32 WIN32_GetModuleHandleA(char *module) +HMODULE32 WINAPI WIN32_GetModuleHandleA(char *module) { HMODULE32 hModule; @@ -37,7 +37,7 @@ all calls to e.g. CreateWindowEx. */ return hModule; } -HMODULE32 WIN32_GetModuleHandleW(LPCWSTR module) +HMODULE32 WINAPI WIN32_GetModuleHandleW(LPCWSTR module) { HMODULE32 hModule; LPSTR modulea = HEAP_strdupWtoA( GetProcessHeap(), 0, module ); @@ -50,7 +50,7 @@ HMODULE32 WIN32_GetModuleHandleW(LPCWSTR module) /*********************************************************************** * GetStartupInfoA (KERNEL32.273) */ -VOID GetStartupInfo32A(LPSTARTUPINFO32A lpStartupInfo) +VOID WINAPI GetStartupInfo32A(LPSTARTUPINFO32A lpStartupInfo) { lpStartupInfo->cb = sizeof(STARTUPINFO32A); lpStartupInfo->lpReserved = ""; @@ -67,7 +67,7 @@ VOID GetStartupInfo32A(LPSTARTUPINFO32A lpStartupInfo) /*********************************************************************** * GetStartupInfoW (KERNEL32.274) */ -VOID GetStartupInfo32W(LPSTARTUPINFO32W lpStartupInfo) +VOID WINAPI GetStartupInfo32W(LPSTARTUPINFO32W lpStartupInfo) { lpStartupInfo->cb = sizeof(STARTUPINFO32W); lpStartupInfo->lpReserved = HEAP_strdupAtoW(GetProcessHeap(),0,""); @@ -84,8 +84,8 @@ VOID GetStartupInfo32W(LPSTARTUPINFO32W lpStartupInfo) /*********************************************************************** * GetComputerNameA (KERNEL32.165) */ -BOOL32 -GetComputerName32A(LPSTR name,LPDWORD size) { +BOOL32 WINAPI GetComputerName32A(LPSTR name,LPDWORD size) +{ if (-1==gethostname(name,*size)) return FALSE; *size = lstrlen32A(name); @@ -95,8 +95,8 @@ GetComputerName32A(LPSTR name,LPDWORD size) { /*********************************************************************** * GetComputerNameW (KERNEL32.166) */ -BOOL32 -GetComputerName32W(LPWSTR name,LPDWORD size) { +BOOL32 WINAPI GetComputerName32W(LPWSTR name,LPDWORD size) +{ LPSTR nameA = (LPSTR)xmalloc(*size); if (!GetComputerName32A(nameA,size)) { @@ -112,7 +112,7 @@ GetComputerName32W(LPWSTR name,LPDWORD size) { /*********************************************************************** * GetUserNameA [ADVAPI32.67] */ -BOOL32 GetUserName32A(LPSTR lpszName, LPDWORD lpSize) +BOOL32 WINAPI GetUserName32A(LPSTR lpszName, LPDWORD lpSize) { size_t len; char *name; @@ -131,7 +131,7 @@ BOOL32 GetUserName32A(LPSTR lpszName, LPDWORD lpSize) /*********************************************************************** * GetUserNameW [ADVAPI32.68] */ -BOOL32 GetUserName32W(LPWSTR lpszName, LPDWORD lpSize) +BOOL32 WINAPI GetUserName32W(LPWSTR lpszName, LPDWORD lpSize) { LPSTR name = (LPSTR)xmalloc(*lpSize); DWORD size = *lpSize; diff --git a/win32/newfns.c b/win32/newfns.c index b53a5036adf..f8477fce3b9 100644 --- a/win32/newfns.c +++ b/win32/newfns.c @@ -16,8 +16,8 @@ at a later date. */ /**************************************************************************** * QueryPerformanceCounter (KERNEL32.415) */ -BOOL32 -QueryPerformanceCounter(LPLARGE_INTEGER counter) { +BOOL32 WINAPI QueryPerformanceCounter(LPLARGE_INTEGER counter) +{ /* FIXME: don't know what are good values */ counter->LowPart = 1; counter->HighPart = 0; @@ -28,8 +28,8 @@ QueryPerformanceCounter(LPLARGE_INTEGER counter) { * DisableThreadLibraryCalls (KERNEL32.74) * Don't call DllEntryPoint for DLL_THREAD_{ATTACH,DETACH} if set. */ -BOOL32 -DisableThreadLibraryCalls(HMODULE32 hModule) { +BOOL32 WINAPI DisableThreadLibraryCalls(HMODULE32 hModule) +{ fprintf(stdnimp, "DisableThreadLibraryCalls Stub called!\n"); return TRUE; } diff --git a/win32/ordinals.c b/win32/ordinals.c index a617b0c34d1..28f098ffdd5 100644 --- a/win32/ordinals.c +++ b/win32/ordinals.c @@ -1,5 +1,5 @@ /* - * Win32 ordinal only exported functions + * Win32 ordinal only exported functions that can't be stuffed somehwere else. * * Copyright 1997 Marcus Meissner */ @@ -19,57 +19,35 @@ extern THDB *pCurrentThread; extern PDB32 *pCurrentProcess; +static CRITICAL_SECTION Win16Mutex; + +/*********************************************** + * GetPWinLock (KERNEL32) + * Return the infamous Win16Mutex. + */ +VOID WINAPI GetPWinLock(CRITICAL_SECTION **lock) +{ + fprintf(stderr,"GetPWinlock(%p)\n",lock); + *lock = &Win16Mutex; +} + /********************************************************************** * _KERNEL32_88 */ -DWORD -WOW32_1(DWORD x,DWORD y) { +DWORD WINAPI WOW32_1(DWORD x,DWORD y) +{ fprintf(stderr,"WOW32_1(0x%08lx,0x%08lx), stub!\n",x,y); return 0; } -/********************************************************************** - * WOWGetVDMPointer (KERNEL32.55) - * Get linear from segmented pointer. (MSDN lib) - */ -LPVOID -WOWGetVDMPointer(DWORD vp,DWORD nrofbytes,BOOL32 protected) { - /* FIXME: add size check too */ - fprintf(stdnimp,"WOWGetVDMPointer(%08lx,%ld,%d)\n",vp,nrofbytes,protected); - if (protected) - return PTR_SEG_TO_LIN(vp); - else - return DOSMEM_MapRealToLinear(vp); -} - -/********************************************************************** - * WOWGetVDMPointerFix (KERNEL32.55) - * Dito, but fix heapsegment (MSDN lib) - */ -LPVOID -WOWGetVDMPointerFix(DWORD vp,DWORD nrofbytes,BOOL32 protected) { - /* FIXME: fix heapsegment */ - fprintf(stdnimp,"WOWGetVDMPointerFix(%08lx,%ld,%d)\n",vp,nrofbytes,protected); - return WOWGetVDMPointer(vp,nrofbytes,protected); -} - -/********************************************************************** - * WOWGetVDMPointerUnFix (KERNEL32.56) - */ -void -WOWGetVDMPointerUnfix(DWORD vp) { - fprintf(stdnimp,"WOWGetVDMPointerUnfix(%08lx), STUB\n",vp); - /* FIXME: unfix heapsegment */ -} - /*********************************************************************** * _KERNEL32_18 (KERNEL32.18) * 'Of course you cannot directly access Windows internal structures' */ -DWORD -_KERNEL32_18(DWORD processid,DWORD action) { +DWORD WINAPI _KERNEL32_18(DWORD processid,DWORD action) +{ PDB32 *process; TDB *pTask; @@ -141,290 +119,13 @@ _KERNEL32_18(DWORD processid,DWORD action) { /* shouldn't come here */ } -/*********************************************************************** - * _KERNEL32_52 (KERNEL32.52) - * FIXME: what does it really do? - */ -VOID -_KERNEL32_52(DWORD arg1,CONTEXT *regs) { - fprintf(stderr,"_KERNE32_52(arg1=%08lx,%08lx)\n",arg1,EDI_reg(regs)); - - EAX_reg(regs) = (DWORD)WIN32_GetProcAddress16(EDI_reg(regs),"ThkBuf"); - - fprintf(stderr," GetProcAddress16(\"ThkBuf\") returns %08lx\n", - EAX_reg(regs) - ); -} - -/*********************************************************************** - * GetPWinLock (KERNEL32) FIXME - * get mutex? critical section for 16 bit mode? - */ -VOID -GetPWinLock(CRITICAL_SECTION **lock) { - static CRITICAL_SECTION plock; - fprintf(stderr,"GetPWinlock(%p)\n",lock); - *lock = &plock; -} - -/*********************************************************************** - * _KERNEL32_43 (KERNEL32.42) - * A thunkbuffer link routine - * The thunkbuf looks like: - * - * 00: DWORD length ? don't know exactly - * 04: SEGPTR ptr ? where does it point to? - * The pointer ptr is written into the first DWORD of 'thunk'. - * (probably correct implemented) - */ -BOOL32 -_KERNEL32_43(LPDWORD thunk,LPCSTR thkbuf,DWORD len,LPCSTR dll16,LPCSTR dll32) { - HINSTANCE16 hmod; - LPDWORD addr; - SEGPTR segaddr; - - fprintf(stderr,"_KERNEL32_43(%p,%s,0x%08lx,%s,%s)\n",thunk,thkbuf,len,dll16,dll32); - - hmod = LoadLibrary16(dll16); - if (hmod<32) { - fprintf(stderr,"->failed to load 16bit DLL %s, error %d\n",dll16,hmod); - return NULL; - } - segaddr = (DWORD)WIN32_GetProcAddress16(hmod,(LPSTR)thkbuf); - if (!segaddr) { - fprintf(stderr,"->no %s exported from %s!\n",thkbuf,dll16); - return NULL; - } - addr = (LPDWORD)PTR_SEG_TO_LIN(segaddr); - if (addr[0] != len) { - fprintf(stderr,"->thkbuf length mismatch? %ld vs %ld\n",len,addr[0]); - return NULL; - } - if (!addr[1]) - return 0; - *(DWORD*)thunk = addr[1]; - return addr[1]; -} - -/*********************************************************************** - * _KERNEL32_45 (KERNEL32.44) - * FIXME: not sure what it does - */ -VOID -_KERNEL32_45(DWORD x,CONTEXT *context) { - fprintf(stderr,"_KERNEL32_45(0x%08lx,%%eax=0x%08lx,%%cx=0x%04lx,%%edx=0x%08lx)\n", - x,(DWORD)EAX_reg(context),(DWORD)CX_reg(context),(DWORD)EDX_reg(context) - ); -} - -/*********************************************************************** - * (KERNEL32.40) - * A thunk setup routine. - * Expects a pointer to a preinitialized thunkbuffer in the first argument - * looking like: - * 00..03: unknown (some pointer to the 16bit struct?) - * 04: EB1E jmp +0x20 - * - * 06..23: unknown (space for replacement code, check .90) - * - * 24:>E8xxxxxxxx call <32bitoffset xxxxxxxx> - * 29: 58 pop eax - * 2A: 2D2500xxxx and eax,0x2500xxxx - * 2F: BAxxxxxxxx mov edx,xxxxxxxx - * 34: 68yyyyyyyy push KERNEL32.90 - * 39: C3 ret - * - * 3A: EB1E jmp +0x20 - * 3E ... 59: unknown (space for replacement code?) - * 5A: E8xxxxxxxx call <32bitoffset xxxxxxxx> - * 5F: 5A pop edx - * 60: 81EA25xxxxxx sub edx, 0x25xxxxxx - * 66: 52 push edx - * 67: 68xxxxxxxx push xxxxxxxx - * 6C: 68yyyyyyyy push KERNEL32.89 - * 71: C3 ret - * 72: end? - * This function checks if the code is there, and replaces the yyyyyyyy entries - * by the functionpointers. - * The thunkbuf looks like: - * - * 00: DWORD length ? don't know exactly - * 04: SEGPTR ptr ? where does it point to? - * The segpointer ptr is written into the first DWORD of 'thunk'. - * (probably correct implemented) - */ - -LPVOID -_KERNEL32_41(LPBYTE thunk,LPCSTR thkbuf,DWORD len,LPCSTR dll16,LPCSTR dll32) { - HMODULE32 hkrnl32 = WIN32_GetModuleHandleA("KERNEL32"); - HMODULE16 hmod; - LPDWORD addr,addr2; - DWORD segaddr; - - fprintf(stderr,"KERNEL32_41(%p,%s,%ld,%s,%s)\n", - thunk,thkbuf,len,dll16,dll32 - ); - - /* FIXME: add checks for valid code ... */ - /* write pointers to kernel32.89 and kernel32.90 (+ordinal base of 1) */ - *(DWORD*)(thunk+0x35) = (DWORD)GetProcAddress32(hkrnl32,(LPSTR)91); - *(DWORD*)(thunk+0x6D) = (DWORD)GetProcAddress32(hkrnl32,(LPSTR)90); - - - hmod = LoadLibrary16(dll16); - if (hmod<32) { - fprintf(stderr,"->failed to load 16bit DLL %s, error %d\n",dll16,hmod); - return NULL; - } - segaddr = (DWORD)WIN32_GetProcAddress16(hmod,(LPSTR)thkbuf); - if (!segaddr) { - fprintf(stderr,"->no %s exported from %s!\n",thkbuf,dll16); - return NULL; - } - addr = (LPDWORD)PTR_SEG_TO_LIN(segaddr); - if (addr[0] != len) { - fprintf(stderr,"->thkbuf length mismatch? %ld vs %ld\n",len,addr[0]); - return NULL; - } - addr2 = PTR_SEG_TO_LIN(addr[1]); - if (HIWORD(addr2)) - *(DWORD*)thunk = (DWORD)addr2; - return addr2; -} /*********************************************************************** * (KERNEL32.33) * Returns some internal value.... probably the default environment database? */ -DWORD -_KERNEL32_34() { +DWORD WINAPI _KERNEL32_34() +{ fprintf(stderr,"KERNEL32_34(), STUB returning 0\n"); return 0; } - -/*********************************************************************** - * (KERNEL32.90) - * Thunk priming? function - * Rewrites the first part of the thunk to use the QT_Thunk interface. - * Replaces offset 4 ... 24 by: - * - * 33C9 xor ecx, ecx - * 8A4DFC mov cl , [ebp-04] - * 8B148Dxxxxxxxx mov edx, [4*ecx + (EAX+EDX)] - * B8yyyyyyyy mov eax, QT_Thunk - * FFE0 jmp eax - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * CC int 03 - * and jumps to the start of that code. - * (ok) - */ -VOID -_KERNEL32_91(CONTEXT *context) { - LPBYTE x; - - fprintf(stderr,"_KERNEL32_91(eax=0x%08lx,edx=0x%08lx)\n", - EAX_reg(context),EDX_reg(context) - ); - x = (LPBYTE)EAX_reg(context); - *x++ = 0x33;*x++=0xC9; /* xor ecx,ecx */ - *x++ = 0x8A;*x++=0x4D;*x++=0xFC; /* mov cl,[ebp-04] */ - *x++ = 0x8B;*x++=0x14;*x++=0x8D;*(DWORD*)x= EAX_reg(context)+EDX_reg(context); - x+=4; /* mov edx, [4*ecx + (EAX+EDX) */ - *x++ = 0xB8; *(DWORD*)x = (DWORD)GetProcAddress32(WIN32_GetModuleHandleA("KERNEL32"),"QT_Thunk"); - x+=4; /* mov eax , QT_Thunk */ - *x++ = 0xFF; *x++ = 0xE0; /* jmp eax */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - *x++ = 0xCC; /* int 03 */ - EIP_reg(context) = EAX_reg(context); -} - -/*********************************************************************** - * (KERNEL32.45) - * Another thunkbuf link routine. - * The start of the thunkbuf looks like this: - * 00: DWORD length - * 04: SEGPTR address for thunkbuffer pointer - */ -VOID -_KERNEL32_46(LPBYTE thunk,LPSTR thkbuf,DWORD len,LPSTR dll16,LPSTR dll32) { - LPDWORD addr; - HMODULE16 hmod; - SEGPTR segaddr; - - fprintf(stderr,"KERNEL32_46(%p,%s,%lx,%s,%s)\n", - thunk,thkbuf,len,dll16,dll32 - ); - hmod = LoadLibrary16(dll16); - if (hmod < 32) { - fprintf(stderr,"->couldn't load %s, error %d\n",dll16,hmod); - return; - } - segaddr = (SEGPTR)WIN32_GetProcAddress16(hmod,thkbuf); - if (!segaddr) { - fprintf(stderr,"-> haven't found %s in %s!\n",thkbuf,dll16); - return; - } - addr = (LPDWORD)PTR_SEG_TO_LIN(segaddr); - if (addr[0] != len) { - fprintf(stderr,"-> length of thkbuf differs from expected length! (%ld vs %ld)\n",addr[0],len); - return; - } - *(DWORD*)PTR_SEG_TO_LIN(addr[1]) = (DWORD)thunk; -} - -/********************************************************************** - * _KERNEL32_87 - * Check if thunking is initialized (ss selector set up etc.) - */ -BOOL32 _KERNEL32_87() { - fprintf(stderr,"KERNEL32_87 stub, returning TRUE\n"); - return TRUE; -} - -/********************************************************************** - * _KERNEL32_88 - * One of the real thunking functions - * Probably implemented totally wrong. - */ -BOOL32 _KERNEL32_88(DWORD nr,DWORD flags,LPVOID fun,DWORD *hmm) { - fprintf(stderr,"KERNEL32_88(%ld,0x%08lx,%p,%p) stub, returning TRUE\n", - nr,flags,fun,hmm - ); -#ifndef WINELIB - switch (nr) { - case 0: CallTo32_0(fun); - break; - case 4: CallTo32_1(fun,hmm[0]); - break; - case 8: CallTo32_2(fun,hmm[0],hmm[1]); - break; - default: - fprintf(stderr," unsupported nr of arguments, %ld\n",nr); - break; - - } -#endif - return TRUE; -} diff --git a/win32/process.c b/win32/process.c index deb34dde1fc..ff4f2c5bc98 100644 --- a/win32/process.c +++ b/win32/process.c @@ -37,7 +37,7 @@ typedef struct { /*********************************************************************** * CreateMutexA (KERNEL32.52) */ -HANDLE32 CreateMutex32A(SECURITY_ATTRIBUTES *sa,BOOL32 on,LPCSTR name) +HANDLE32 WINAPI CreateMutex32A(SECURITY_ATTRIBUTES *sa,BOOL32 on,LPCSTR name) { K32MUTEX *mut; HANDLE32 handle; @@ -71,7 +71,7 @@ HANDLE32 CreateMutex32A(SECURITY_ATTRIBUTES *sa,BOOL32 on,LPCSTR name) /*********************************************************************** * CreateMutexW (KERNEL32.53) */ -HANDLE32 CreateMutex32W(SECURITY_ATTRIBUTES *sa, BOOL32 on, LPCWSTR a) +HANDLE32 WINAPI CreateMutex32W(SECURITY_ATTRIBUTES *sa, BOOL32 on, LPCWSTR a) { LPSTR name = a?HEAP_strdupWtoA(GetProcessHeap(),0,a):NULL; HANDLE32 ret; @@ -84,9 +84,9 @@ HANDLE32 CreateMutex32W(SECURITY_ATTRIBUTES *sa, BOOL32 on, LPCWSTR a) /*********************************************************************** * CreateSemaphoreA (KERNEL32.60) */ -HANDLE32 CreateSemaphore32A( - LPSECURITY_ATTRIBUTES sa,LONG initial,LONG max,LPCSTR name -) { +HANDLE32 WINAPI CreateSemaphore32A( LPSECURITY_ATTRIBUTES sa, + LONG initial,LONG max,LPCSTR name ) +{ K32SEMAPHORE *sem; HANDLE32 handle; K32OBJ *obj = K32OBJ_FindName( name ); @@ -119,7 +119,7 @@ HANDLE32 CreateSemaphore32A( /*********************************************************************** * CreateSemaphoreW (KERNEL32.61) */ -HANDLE32 CreateSemaphore32W(SECURITY_ATTRIBUTES *sa,LONG initial,LONG max,LPCWSTR a) +HANDLE32 WINAPI CreateSemaphore32W(SECURITY_ATTRIBUTES *sa,LONG initial,LONG max,LPCWSTR a) { LPSTR name =a?HEAP_strdupWtoA(GetProcessHeap(),0,a):NULL; HANDLE32 ret; @@ -133,7 +133,7 @@ HANDLE32 CreateSemaphore32W(SECURITY_ATTRIBUTES *sa,LONG initial,LONG max,LPCWST /*********************************************************************** * OpenSemaphoreA (KERNEL32.403) */ -HANDLE32 OpenSemaphore32A(DWORD desired,BOOL32 inherit,LPCSTR name) +HANDLE32 WINAPI OpenSemaphore32A(DWORD desired,BOOL32 inherit,LPCSTR name) { K32OBJ *obj = K32OBJ_FindName( name ); @@ -149,7 +149,7 @@ HANDLE32 OpenSemaphore32A(DWORD desired,BOOL32 inherit,LPCSTR name) /*********************************************************************** * OpenSemaphoreA (KERNEL32.404) */ -HANDLE32 OpenSemaphore32W(DWORD desired,BOOL32 inherit,LPCWSTR name) +HANDLE32 WINAPI OpenSemaphore32W(DWORD desired,BOOL32 inherit,LPCWSTR name) { LPSTR nameA = name?HEAP_strdupWtoA(GetProcessHeap(),0,name):NULL; HANDLE32 ret = OpenSemaphore32A(desired,inherit,nameA); @@ -161,7 +161,8 @@ HANDLE32 OpenSemaphore32W(DWORD desired,BOOL32 inherit,LPCWSTR name) /*********************************************************************** * ReleaseSemaphore (KERNEL32.403) */ -BOOL32 ReleaseSemaphore(HANDLE32 hSemaphore,LONG lReleaseCount,LPLONG lpPreviousCount) { +BOOL32 WINAPI ReleaseSemaphore(HANDLE32 hSemaphore,LONG lReleaseCount,LPLONG lpPreviousCount) +{ K32SEMAPHORE *sem; sem = (K32SEMAPHORE*)PROCESS_GetObjPtr(hSemaphore,K32OBJ_SEMAPHORE); @@ -183,7 +184,7 @@ BOOL32 ReleaseSemaphore(HANDLE32 hSemaphore,LONG lReleaseCount,LPLONG lpPrevious /*********************************************************************** * OpenMutexA (KERNEL32.399) */ -HANDLE32 OpenMutex32A(DWORD desiredaccess, BOOL32 inherithandle, LPCSTR name) +HANDLE32 WINAPI OpenMutex32A(DWORD desiredaccess, BOOL32 inherithandle, LPCSTR name) { K32OBJ *obj = K32OBJ_FindName( name ); @@ -199,7 +200,8 @@ HANDLE32 OpenMutex32A(DWORD desiredaccess, BOOL32 inherithandle, LPCSTR name) /*********************************************************************** * OpenMutexW (KERNEL32.400) */ -HANDLE32 OpenMutex32W(DWORD desiredaccess, BOOL32 inherithandle, LPCWSTR name) +HANDLE32 WINAPI OpenMutex32W(DWORD desiredaccess, BOOL32 inherithandle, + LPCWSTR name) { LPSTR nameA=name?HEAP_strdupWtoA(GetProcessHeap(),0,name):NULL; HANDLE32 ret = OpenMutex32A(desiredaccess,inherithandle,nameA); @@ -211,7 +213,7 @@ HANDLE32 OpenMutex32W(DWORD desiredaccess, BOOL32 inherithandle, LPCWSTR name) /*********************************************************************** * ReleaseMutex (KERNEL32.435) */ -BOOL32 ReleaseMutex (HANDLE32 h) +BOOL32 WINAPI ReleaseMutex (HANDLE32 h) { K32MUTEX *mut = (K32MUTEX*)PROCESS_GetObjPtr(h,K32OBJ_MUTEX); @@ -233,7 +235,8 @@ BOOL32 ReleaseMutex (HANDLE32 h) /*********************************************************************** * CreateEventA (KERNEL32.43) */ -HANDLE32 CreateEvent32A(SECURITY_ATTRIBUTES *sa,BOOL32 au,BOOL32 on,LPCSTR name) +HANDLE32 WINAPI CreateEvent32A(SECURITY_ATTRIBUTES *sa,BOOL32 au,BOOL32 on, + LPCSTR name) { K32EVENT *evt; HANDLE32 handle; @@ -263,7 +266,8 @@ HANDLE32 CreateEvent32A(SECURITY_ATTRIBUTES *sa,BOOL32 au,BOOL32 on,LPCSTR name) /*********************************************************************** * CreateEventW (KERNEL32.43) */ -HANDLE32 CreateEvent32W(SECURITY_ATTRIBUTES *sa, BOOL32 au, BOOL32 on,LPCWSTR name) +HANDLE32 WINAPI CreateEvent32W(SECURITY_ATTRIBUTES *sa, BOOL32 au, + BOOL32 on,LPCWSTR name) { LPSTR nameA=name?HEAP_strdupWtoA(GetProcessHeap(),0,name):NULL; HANDLE32 ret = CreateEvent32A(sa,au,on,nameA); @@ -275,7 +279,8 @@ HANDLE32 CreateEvent32W(SECURITY_ATTRIBUTES *sa, BOOL32 au, BOOL32 on,LPCWSTR na /*********************************************************************** * OpenEventA (KERNEL32.394) */ -HANDLE32 OpenEvent32A(DWORD desiredaccess,BOOL32 inherithandle,LPCSTR name) { +HANDLE32 WINAPI OpenEvent32A(DWORD desiredaccess,BOOL32 inherithandle,LPCSTR name) +{ K32OBJ *obj = K32OBJ_FindName( name ); if (obj) { @@ -290,7 +295,8 @@ HANDLE32 OpenEvent32A(DWORD desiredaccess,BOOL32 inherithandle,LPCSTR name) { /*********************************************************************** * OpenEventW (KERNEL32.395) */ -HANDLE32 OpenEvent32W(DWORD desiredaccess,BOOL32 inherithandle,LPCWSTR name) { +HANDLE32 WINAPI OpenEvent32W(DWORD desiredaccess,BOOL32 inherithandle,LPCWSTR name) +{ LPSTR nameA = name?HEAP_strdupWtoA(GetProcessHeap(),0,name):NULL; HANDLE32 ret = OpenEvent32A(desiredaccess,inherithandle,nameA); @@ -301,7 +307,7 @@ HANDLE32 OpenEvent32W(DWORD desiredaccess,BOOL32 inherithandle,LPCWSTR name) { /*********************************************************************** * SetEvent (KERNEL32.487) */ -BOOL32 SetEvent (HANDLE32 h) +BOOL32 WINAPI SetEvent (HANDLE32 h) { fprintf(stderr,"SetEvent(%d) stub\n",h); return 0; @@ -309,7 +315,7 @@ BOOL32 SetEvent (HANDLE32 h) /*********************************************************************** * ResetEvent (KERNEL32.439) */ -BOOL32 ResetEvent (HANDLE32 h) +BOOL32 WINAPI ResetEvent (HANDLE32 h) { fprintf(stderr,"ResetEvent(%d) stub\n",h); return 0; @@ -318,16 +324,26 @@ BOOL32 ResetEvent (HANDLE32 h) /*********************************************************************** * WaitForSingleObject (KERNEL32.561) */ -DWORD WaitForSingleObject(HANDLE32 h, DWORD timeout) +DWORD WINAPI WaitForSingleObject(HANDLE32 h, DWORD timeout) { fprintf(stderr,"WaitForSingleObject(%d,%ld) stub\n",h,timeout); return 0; } +/*********************************************************************** + * WaitForSingleObjectEx (KERNEL32) + */ +DWORD WINAPI WaitForSingleObjectEx(HANDLE32 h,DWORD timeout,BOOL32 bAlertable) +{ + fprintf(stderr,"WaitForSingleObjectEx(%d,%ld,%d) stub\n",h,timeout,bAlertable); + return 0; +} + + /*********************************************************************** * WaitForMultipleObjects (USER32.399) */ -DWORD MsgWaitForMultipleObjects( +DWORD WINAPI MsgWaitForMultipleObjects( DWORD nCount,HANDLE32 *pHandles,BOOL32 fWaitAll,DWORD dwMilliseconds, DWORD dwWakeMask ) { @@ -341,20 +357,25 @@ DWORD MsgWaitForMultipleObjects( /*********************************************************************** * DuplicateHandle (KERNEL32.78) */ -BOOL32 DuplicateHandle(HANDLE32 a, HANDLE32 b, HANDLE32 c, HANDLE32 * d, DWORD e, BOOL32 f, DWORD g) +BOOL32 WINAPI DuplicateHandle(HANDLE32 a, HANDLE32 b, HANDLE32 c, HANDLE32 * d, DWORD e, BOOL32 f, DWORD g) { fprintf(stderr,"DuplicateHandle(%d,%d,%d,%p,%ld,%d,%ld) stub\n",a,b,c,d,e,f,g); *d = b; return TRUE; } +HINSTANCE32 WINAPI LoadLibraryEx32A(LPCSTR libname,HFILE32 hfile,DWORD flags) +{ + fprintf(stderr,"LoadLibraryEx32A(%s,%d,0x%08lx)\n",libname,hfile,flags); + return LoadLibrary32A(libname); +} /*********************************************************************** * LoadLibraryA (KERNEL32.365) * copied from LoadLibrary * This does not currently support built-in libraries */ -HINSTANCE32 LoadLibrary32A(LPCSTR libname) +HINSTANCE32 WINAPI LoadLibrary32A(LPCSTR libname) { HINSTANCE32 handle; dprintf_module( stddeb, "LoadLibrary: (%08x) %s\n", (int)libname, libname); @@ -376,7 +397,7 @@ HINSTANCE32 LoadLibrary32A(LPCSTR libname) /*********************************************************************** * LoadLibrary32W (KERNEL32.368) */ -HINSTANCE32 LoadLibrary32W(LPCWSTR libnameW) +HINSTANCE32 WINAPI LoadLibrary32W(LPCWSTR libnameW) { LPSTR libnameA = HEAP_strdupWtoA( GetProcessHeap(), 0, libnameW ); HINSTANCE32 ret = LoadLibrary32A( libnameA ); @@ -387,7 +408,7 @@ HINSTANCE32 LoadLibrary32W(LPCWSTR libnameW) /*********************************************************************** * FreeLibrary */ -BOOL32 FreeLibrary32(HINSTANCE32 hLibModule) +BOOL32 WINAPI FreeLibrary32(HINSTANCE32 hLibModule) { fprintf(stderr,"FreeLibrary: empty stub\n"); return TRUE; @@ -396,8 +417,9 @@ BOOL32 FreeLibrary32(HINSTANCE32 hLibModule) /********************************************************************** * GetProcessAffinityMask */ -BOOL32 GetProcessAffinityMask(HANDLE32 hProcess, LPDWORD lpProcessAffinityMask, - LPDWORD lpSystemAffinityMask) +BOOL32 WINAPI GetProcessAffinityMask(HANDLE32 hProcess, + LPDWORD lpProcessAffinityMask, + LPDWORD lpSystemAffinityMask) { dprintf_task(stddeb,"GetProcessAffinityMask(%x,%lx,%lx)\n", hProcess,(lpProcessAffinityMask?*lpProcessAffinityMask:0), @@ -415,7 +437,7 @@ BOOL32 GetProcessAffinityMask(HANDLE32 hProcess, LPDWORD lpProcessAffinityMask, * SetThreadAffinityMask * Works now like the Windows95 (no MP support) version */ -BOOL32 SetThreadAffinityMask(HANDLE32 hThread, DWORD dwThreadAffinityMask) +BOOL32 WINAPI SetThreadAffinityMask(HANDLE32 hThread, DWORD dwThreadAffinityMask) { THDB *thdb = (THDB*)PROCESS_GetObjPtr(hThread,K32OBJ_THREAD); @@ -430,8 +452,7 @@ BOOL32 SetThreadAffinityMask(HANDLE32 hThread, DWORD dwThreadAffinityMask) return TRUE; } -BOOL32 -CreateProcess32A( +BOOL32 WINAPI CreateProcess32A( LPCSTR appname,LPSTR cmdline,LPSECURITY_ATTRIBUTES processattributes, LPSECURITY_ATTRIBUTES threadattributes,BOOL32 inherithandles, DWORD creationflags,LPVOID env,LPCSTR curdir, @@ -444,8 +465,7 @@ CreateProcess32A( return TRUE; } -BOOL32 -ContinueDebugEvent(DWORD pid,DWORD tid,DWORD contstatus) { +BOOL32 WINAPI ContinueDebugEvent(DWORD pid,DWORD tid,DWORD contstatus) { fprintf(stderr,"ContinueDebugEvent(%ld,%ld,%ld), stub\n",pid,tid,contstatus); return TRUE; } @@ -455,8 +475,7 @@ ContinueDebugEvent(DWORD pid,DWORD tid,DWORD contstatus) { * * FIXME: implement this better ... */ -BOOL32 -GetProcessTimes( +BOOL32 WINAPI GetProcessTimes( HANDLE32 hprocess,LPFILETIME lpCreationTime,LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime ) { diff --git a/win32/security.c b/win32/security.c index f8e9afa3622..4f7ef473f72 100644 --- a/win32/security.c +++ b/win32/security.c @@ -8,23 +8,23 @@ #include "stddebug.h" #include "debug.h" -BOOL32 IsValidSid (LPSID pSid); -BOOL32 EqualSid (LPSID pSid1, LPSID pSid2); -BOOL32 EqualPrefixSid (LPSID pSid1, LPSID pSid2); -DWORD GetSidLengthRequired (BYTE nSubAuthorityCount); -BOOL32 AllocateAndInitializeSid (LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, LPSID *pSid); -VOID *FreeSid(LPSID pSid); -BOOL32 InitializeSid (LPSID pSid, LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount); -LPSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority (LPSID pSid); -DWORD *GetSidSubAuthority (LPSID pSid, DWORD nSubAuthority); -BYTE *GetSidSubAuthorityCount (LPSID pSid); -DWORD GetLengthSid (LPSID pSid); -BOOL32 CopySid (DWORD nDestinationSidLength, LPSID pDestinationSid, LPSID pSourceSid); +BOOL32 WINAPI IsValidSid (LPSID pSid); +BOOL32 WINAPI EqualSid (LPSID pSid1, LPSID pSid2); +BOOL32 WINAPI EqualPrefixSid (LPSID pSid1, LPSID pSid2); +DWORD WINAPI GetSidLengthRequired (BYTE nSubAuthorityCount); +BOOL32 WINAPI AllocateAndInitializeSid(LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, LPSID *pSid); +VOID* WINAPI FreeSid(LPSID pSid); +BOOL32 WINAPI InitializeSid (LPSID pSid, LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount); +LPSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(LPSID pSid); +DWORD* WINAPI GetSidSubAuthority(LPSID pSid, DWORD nSubAuthority); +BYTE* WINAPI GetSidSubAuthorityCount(LPSID pSid); +DWORD WINAPI GetLengthSid(LPSID pSid); +BOOL32 WINAPI CopySid(DWORD nDestinationSidLength, LPSID pDestinationSid, LPSID pSourceSid); /*********************************************************************** * IsValidSid (ADVAPI.80) */ -BOOL32 IsValidSid (LPSID pSid) { +BOOL32 WINAPI IsValidSid (LPSID pSid) { if (!pSid || pSid->Revision != SID_REVISION) return FALSE; @@ -34,7 +34,7 @@ BOOL32 IsValidSid (LPSID pSid) { /*********************************************************************** * EqualSid (ADVAPI.40) */ -BOOL32 EqualSid (LPSID pSid1, LPSID pSid2) { +BOOL32 WINAPI EqualSid (LPSID pSid1, LPSID pSid2) { if (!IsValidSid(pSid1) || !IsValidSid(pSid2)) return FALSE; @@ -50,7 +50,7 @@ BOOL32 EqualSid (LPSID pSid1, LPSID pSid2) { /*********************************************************************** * EqualPrefixSid (ADVAPI.39) */ -BOOL32 EqualPrefixSid (LPSID pSid1, LPSID pSid2) { +BOOL32 WINAPI EqualPrefixSid (LPSID pSid1, LPSID pSid2) { if (!IsValidSid(pSid1) || !IsValidSid(pSid2)) return FALSE; @@ -67,14 +67,14 @@ BOOL32 EqualPrefixSid (LPSID pSid1, LPSID pSid2) { /*********************************************************************** * GetSidLengthRequired (ADVAPI.63) */ -DWORD GetSidLengthRequired (BYTE nSubAuthorityCount) { +DWORD WINAPI GetSidLengthRequired (BYTE nSubAuthorityCount) { return sizeof (SID) + (nSubAuthorityCount - 1 * sizeof (DWORD)); } /*********************************************************************** * AllocateAndInitializeSid (ADVAPI.11) */ -BOOL32 AllocateAndInitializeSid (LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, +BOOL32 WINAPI AllocateAndInitializeSid(LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, @@ -112,7 +112,7 @@ BOOL32 AllocateAndInitializeSid (LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority /*********************************************************************** * FreeSid (ADVAPI.42) */ -VOID *FreeSid(LPSID pSid) { +VOID* WINAPI FreeSid(LPSID pSid) { free(pSid); return NULL; } @@ -120,8 +120,9 @@ VOID *FreeSid(LPSID pSid) { /*********************************************************************** * InitializeSid (ADVAPI.74) */ -BOOL32 InitializeSid (LPSID pSid, LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, - BYTE nSubAuthorityCount) { +BOOL32 WINAPI InitializeSid (LPSID pSid, LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, + BYTE nSubAuthorityCount) +{ int i; pSid->Revision = SID_REVISION; @@ -139,36 +140,41 @@ BOOL32 InitializeSid (LPSID pSid, LPSID_IDENTIFIER_AUTHORITY pIdentifierAuthorit /*********************************************************************** * GetSidIdentifierAuthority (ADVAPI.62) */ -LPSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority (LPSID pSid) { +LPSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority (LPSID pSid) +{ return &pSid->IdentifierAuthority; } /*********************************************************************** * GetSidSubAuthority (ADVAPI.64) */ -DWORD *GetSidSubAuthority (LPSID pSid, DWORD nSubAuthority) { +DWORD * WINAPI GetSidSubAuthority (LPSID pSid, DWORD nSubAuthority) +{ return &pSid->SubAuthority[nSubAuthority]; } /*********************************************************************** * GetSidSubAuthorityCount (ADVAPI.65) */ -BYTE *GetSidSubAuthorityCount (LPSID pSid) { +BYTE * WINAPI GetSidSubAuthorityCount (LPSID pSid) +{ return &pSid->SubAuthorityCount; } /*********************************************************************** * GetLengthSid (ADVAPI.48) */ -DWORD GetLengthSid (LPSID pSid) { +DWORD WINAPI GetLengthSid (LPSID pSid) +{ return GetSidLengthRequired(*GetSidSubAuthorityCount(pSid)); } /*********************************************************************** * CopySid (ADVAPI.24) */ -BOOL32 CopySid (DWORD nDestinationSidLength, LPSID pDestinationSid, - LPSID pSourceSid) { +BOOL32 WINAPI CopySid (DWORD nDestinationSidLength, LPSID pDestinationSid, + LPSID pSourceSid) +{ if (!IsValidSid(pSourceSid)) return FALSE; diff --git a/win32/thread.c b/win32/thread.c index 93153a09f4a..4d4da7483a6 100644 --- a/win32/thread.c +++ b/win32/thread.c @@ -38,7 +38,7 @@ * The returned number need not be equal to the result!!!! * ************************************************************************/ -LONG InterlockedIncrement(LPLONG lpAddend) +LONG WINAPI InterlockedIncrement(LPLONG lpAddend) { #if defined(__i386__)&&defined(__GNUC__) long ret; @@ -78,7 +78,7 @@ LONG InterlockedIncrement(LPLONG lpAddend) * The returned number need not be equal to the result!!!! * ************************************************************************/ -LONG InterlockedDecrement(LPLONG lpAddend) +LONG WINAPI InterlockedDecrement(LPLONG lpAddend) { #if defined(__i386__)&&defined(__GNUC__) LONG ret; @@ -111,7 +111,7 @@ LONG InterlockedDecrement(LPLONG lpAddend) * InterlockedExchange [KERNEL32] * ************************************************************************/ -LONG InterlockedExchange(LPLONG target, LONG value) +LONG WINAPI InterlockedExchange(LPLONG target, LONG value) { #if defined(__i386__)&&defined(__GNUC__) LONG ret; @@ -145,7 +145,7 @@ LONG InterlockedExchange(LPLONG target, LONG value) * InitializeCriticalSection [KERNEL32] * ************************************************************************/ -void InitializeCriticalSection(CRITICAL_SECTION *pcritical) +void WINAPI InitializeCriticalSection(CRITICAL_SECTION *pcritical) { pcritical->LockCount=-1; pcritical->RecursionCount=0; @@ -158,7 +158,7 @@ void InitializeCriticalSection(CRITICAL_SECTION *pcritical) * DeleteCriticalSection [KERNEL32] * ************************************************************************/ -void DeleteCriticalSection(CRITICAL_SECTION *pcritical) +void WINAPI DeleteCriticalSection(CRITICAL_SECTION *pcritical) { semctl((int) pcritical->LockSemaphore,0,IPC_RMID,(union semun)NULL); pcritical->Reserved=-1; @@ -168,7 +168,7 @@ void DeleteCriticalSection(CRITICAL_SECTION *pcritical) * EnterCriticalSection [KERNEL32] * ************************************************************************/ -void EnterCriticalSection (CRITICAL_SECTION *pcritical) +void WINAPI EnterCriticalSection (CRITICAL_SECTION *pcritical) { if( InterlockedIncrement(&(pcritical->LockCount))) { @@ -195,7 +195,7 @@ void EnterCriticalSection (CRITICAL_SECTION *pcritical) * TryEnterCriticalSection [KERNEL32] * ************************************************************************/ -BOOL32 TryEnterCriticalSection (CRITICAL_SECTION *pcritical) +BOOL32 WINAPI TryEnterCriticalSection (CRITICAL_SECTION *pcritical) { if( InterlockedIncrement(&(pcritical->LockCount))) { @@ -215,7 +215,7 @@ BOOL32 TryEnterCriticalSection (CRITICAL_SECTION *pcritical) * LeaveCriticalSection [KERNEL32] * ************************************************************************/ -void LeaveCriticalSection (CRITICAL_SECTION *pcritical) +void WINAPI LeaveCriticalSection(CRITICAL_SECTION *pcritical) { /* do we actually own this critical section ??? */ if( pcritical->OwningThread!= (HANDLE32) GetCurrentThreadId()) @@ -245,7 +245,7 @@ void LeaveCriticalSection (CRITICAL_SECTION *pcritical) * ReinitializeCriticalSection [KERNEL32] * ************************************************************************/ -void ReinitializeCriticalSection(CRITICAL_SECTION *lpCrit) +void WINAPI ReinitializeCriticalSection(CRITICAL_SECTION *lpCrit) { /* hmm ?????? */ } @@ -254,7 +254,7 @@ void ReinitializeCriticalSection(CRITICAL_SECTION *lpCrit) * MakeCriticalSectionGlobal [KERNEL32] * ************************************************************************/ -void MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit) +void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit) { /* nothing (SysV Semaphores are already global) */ return; diff --git a/win32/time.c b/win32/time.c index 4994190b399..67c3cb56309 100644 --- a/win32/time.c +++ b/win32/time.c @@ -16,7 +16,7 @@ /*********************************************************************** * GetLocalTime (KERNEL32.228) */ -VOID GetLocalTime(LPSYSTEMTIME systime) +VOID WINAPI GetLocalTime(LPSYSTEMTIME systime) { time_t local_time; struct tm *local_tm; @@ -39,7 +39,7 @@ VOID GetLocalTime(LPSYSTEMTIME systime) /*********************************************************************** * GetSystemTime (KERNEL32.285) */ -VOID GetSystemTime(LPSYSTEMTIME systime) +VOID WINAPI GetSystemTime(LPSYSTEMTIME systime) { time_t local_time; struct tm *local_tm; @@ -63,7 +63,7 @@ VOID GetSystemTime(LPSYSTEMTIME systime) /*********************************************************************** * SetSystemTime (KERNEL32.507) */ -BOOL32 SetSystemTime(const SYSTEMTIME *systime) +BOOL32 WINAPI SetSystemTime(const SYSTEMTIME *systime) { struct timeval tv; struct timezone tz; @@ -99,7 +99,7 @@ BOOL32 SetSystemTime(const SYSTEMTIME *systime) /*********************************************************************** * GetTimeZoneInformation (KERNEL32.302) */ -DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION tzinfo) +DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION tzinfo) { time_t gmt, lt; @@ -118,7 +118,7 @@ DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION tzinfo) /*********************************************************************** * SetTimeZoneInformation (KERNEL32.515) */ -BOOL32 SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION tzinfo) +BOOL32 WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION tzinfo) { struct timezone tz; @@ -135,7 +135,7 @@ BOOL32 SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION tzinfo) /*********************************************************************** * Sleep (KERNEL32.523) */ -VOID Sleep(DWORD cMilliseconds) +VOID WINAPI Sleep(DWORD cMilliseconds) { if(cMilliseconds == INFINITE32) while(1) sleep(1000); /* Spin forever */ diff --git a/win32/user32.c b/win32/user32.c index 5a1192ab58b..3080596caec 100644 --- a/win32/user32.c +++ b/win32/user32.c @@ -22,7 +22,7 @@ /*********************************************************************** * GetMessage32A (USER32.269) */ -BOOL32 GetMessage32A(MSG32* lpmsg,HWND32 hwnd,UINT32 min,UINT32 max) +BOOL32 WINAPI GetMessage32A(MSG32* lpmsg,HWND32 hwnd,UINT32 min,UINT32 max) { BOOL32 ret; MSG16 *msg = SEGPTR_NEW(MSG16); @@ -37,7 +37,7 @@ BOOL32 GetMessage32A(MSG32* lpmsg,HWND32 hwnd,UINT32 min,UINT32 max) /*********************************************************************** * GetMessage32W (USER32.273) */ -BOOL32 GetMessage32W(MSG32* lpmsg,HWND32 hwnd,UINT32 min,UINT32 max) +BOOL32 WINAPI GetMessage32W(MSG32* lpmsg,HWND32 hwnd,UINT32 min,UINT32 max) { BOOL32 ret; MSG16 *msg = SEGPTR_NEW(MSG16); @@ -52,8 +52,8 @@ BOOL32 GetMessage32W(MSG32* lpmsg,HWND32 hwnd,UINT32 min,UINT32 max) /*********************************************************************** * PeekMessageA */ -BOOL32 PeekMessage32A( LPMSG32 lpmsg, HWND32 hwnd, - UINT32 min,UINT32 max,UINT32 wRemoveMsg) +BOOL32 WINAPI PeekMessage32A( LPMSG32 lpmsg, HWND32 hwnd, + UINT32 min,UINT32 max,UINT32 wRemoveMsg) { MSG16 msg; BOOL32 ret; @@ -66,8 +66,8 @@ BOOL32 PeekMessage32A( LPMSG32 lpmsg, HWND32 hwnd, /*********************************************************************** * PeekMessageW */ -BOOL32 PeekMessage32W( LPMSG32 lpmsg, HWND32 hwnd, - UINT32 min,UINT32 max,UINT32 wRemoveMsg) +BOOL32 WINAPI PeekMessage32W( LPMSG32 lpmsg, HWND32 hwnd, + UINT32 min,UINT32 max,UINT32 wRemoveMsg) { /* FIXME: Should perform Unicode translation on specific messages */ return PeekMessage32A(lpmsg,hwnd,min,max,wRemoveMsg); diff --git a/windows/caret.c b/windows/caret.c index 00de7ff24f3..315ce72bbaa 100644 --- a/windows/caret.c +++ b/windows/caret.c @@ -65,7 +65,8 @@ static void CARET_DisplayCaret( DISPLAY_CARET status ) /* So now it's always a toggle */ Caret.on = !Caret.on; - if (!(hdc = GetDCEx32( Caret.hwnd, 0, DCX_USESTYLE | DCX_CACHE ))) return; + /* do not use DCX_CACHE here, for x,y,width,height are in logical units */ + if (!(hdc = GetDCEx32( Caret.hwnd, 0, DCX_USESTYLE /*| DCX_CACHE*/ ))) return; hPrevBrush = SelectObject32( hdc, Caret.hBrush ); PatBlt32( hdc, Caret.x, Caret.y, Caret.width, Caret.height, PATINVERT ); SelectObject32( hdc, hPrevBrush ); @@ -125,7 +126,8 @@ static void CARET_KillTimer(void) /***************************************************************** * CreateCaret16 (USER.163) */ -void CreateCaret16( HWND16 hwnd, HBITMAP16 bitmap, INT16 width, INT16 height ) +void WINAPI CreateCaret16( HWND16 hwnd, HBITMAP16 bitmap, + INT16 width, INT16 height ) { CreateCaret32( hwnd, bitmap, width, height ); } @@ -133,8 +135,8 @@ void CreateCaret16( HWND16 hwnd, HBITMAP16 bitmap, INT16 width, INT16 height ) /***************************************************************** * CreateCaret32 (USER32.65) */ -BOOL32 CreateCaret32( HWND32 hwnd, HBITMAP32 bitmap, - INT32 width, INT32 height ) +BOOL32 WINAPI CreateCaret32( HWND32 hwnd, HBITMAP32 bitmap, + INT32 width, INT32 height ) { dprintf_caret(stddeb,"CreateCaret: hwnd=%04x\n", hwnd); @@ -175,7 +177,7 @@ BOOL32 CreateCaret32( HWND32 hwnd, HBITMAP32 bitmap, /***************************************************************** * DestroyCaret16 (USER.164) */ -void DestroyCaret16(void) +void WINAPI DestroyCaret16(void) { DestroyCaret32(); } @@ -184,7 +186,7 @@ void DestroyCaret16(void) /***************************************************************** * DestroyCaret32 (USER32.130) */ -BOOL32 DestroyCaret32(void) +BOOL32 WINAPI DestroyCaret32(void) { if (!Caret.hwnd) return FALSE; @@ -202,7 +204,7 @@ BOOL32 DestroyCaret32(void) /***************************************************************** * SetCaretPos16 (USER.165) */ -void SetCaretPos16( INT16 x, INT16 y ) +void WINAPI SetCaretPos16( INT16 x, INT16 y ) { SetCaretPos32( x, y ); } @@ -211,7 +213,7 @@ void SetCaretPos16( INT16 x, INT16 y ) /***************************************************************** * SetCaretPos32 (USER32.465) */ -BOOL32 SetCaretPos32( INT32 x, INT32 y) +BOOL32 WINAPI SetCaretPos32( INT32 x, INT32 y) { if (!Caret.hwnd) return FALSE; if ((x == Caret.x) && (y == Caret.y)) return TRUE; @@ -234,7 +236,7 @@ BOOL32 SetCaretPos32( INT32 x, INT32 y) /***************************************************************** * HideCaret16 (USER.166) */ -void HideCaret16( HWND16 hwnd ) +void WINAPI HideCaret16( HWND16 hwnd ) { HideCaret32( hwnd ); } @@ -243,7 +245,7 @@ void HideCaret16( HWND16 hwnd ) /***************************************************************** * HideCaret32 (USER32.316) */ -BOOL32 HideCaret32( HWND32 hwnd ) +BOOL32 WINAPI HideCaret32( HWND32 hwnd ) { if (!Caret.hwnd) return FALSE; if (hwnd && (Caret.hwnd != hwnd)) return FALSE; @@ -261,7 +263,7 @@ BOOL32 HideCaret32( HWND32 hwnd ) /***************************************************************** * ShowCaret16 (USER.167) */ -void ShowCaret16( HWND16 hwnd ) +void WINAPI ShowCaret16( HWND16 hwnd ) { ShowCaret32( hwnd ); } @@ -270,7 +272,7 @@ void ShowCaret16( HWND16 hwnd ) /***************************************************************** * ShowCaret32 (USER32.528) */ -BOOL32 ShowCaret32( HWND32 hwnd ) +BOOL32 WINAPI ShowCaret32( HWND32 hwnd ) { if (!Caret.hwnd) return FALSE; if (hwnd && (Caret.hwnd != hwnd)) return FALSE; @@ -294,7 +296,7 @@ BOOL32 ShowCaret32( HWND32 hwnd ) /***************************************************************** * SetCaretBlinkTime16 (USER.168) */ -void SetCaretBlinkTime16( UINT16 msecs ) +void WINAPI SetCaretBlinkTime16( UINT16 msecs ) { SetCaretBlinkTime32( msecs ); } @@ -302,7 +304,7 @@ void SetCaretBlinkTime16( UINT16 msecs ) /***************************************************************** * SetCaretBlinkTime32 (USER32.464) */ -BOOL32 SetCaretBlinkTime32( UINT32 msecs ) +BOOL32 WINAPI SetCaretBlinkTime32( UINT32 msecs ) { if (!Caret.hwnd) return FALSE; @@ -318,7 +320,7 @@ BOOL32 SetCaretBlinkTime32( UINT32 msecs ) /***************************************************************** * GetCaretBlinkTime16 (USER.169) */ -UINT16 GetCaretBlinkTime16(void) +UINT16 WINAPI GetCaretBlinkTime16(void) { return (UINT16)GetCaretBlinkTime32(); } @@ -327,7 +329,7 @@ UINT16 GetCaretBlinkTime16(void) /***************************************************************** * GetCaretBlinkTime32 (USER32.208) */ -UINT32 GetCaretBlinkTime32(void) +UINT32 WINAPI GetCaretBlinkTime32(void) { return Caret.timeout; } @@ -336,7 +338,7 @@ UINT32 GetCaretBlinkTime32(void) /***************************************************************** * GetCaretPos16 (USER.183) */ -VOID GetCaretPos16( LPPOINT16 pt ) +VOID WINAPI GetCaretPos16( LPPOINT16 pt ) { if (!Caret.hwnd || !pt) return; @@ -350,7 +352,7 @@ VOID GetCaretPos16( LPPOINT16 pt ) /***************************************************************** * GetCaretPos32 (USER32.209) */ -BOOL32 GetCaretPos32( LPPOINT32 pt ) +BOOL32 WINAPI GetCaretPos32( LPPOINT32 pt ) { if (!Caret.hwnd || !pt) return FALSE; pt->x = Caret.x; diff --git a/windows/class.c b/windows/class.c index 4cc7eb686f0..e6422e939ae 100644 --- a/windows/class.c +++ b/windows/class.c @@ -304,7 +304,7 @@ static CLASS *CLASS_RegisterClass( ATOM atom, HINSTANCE32 hInstance, /*********************************************************************** * RegisterClass16 (USER.57) */ -ATOM RegisterClass16( const WNDCLASS16 *wc ) +ATOM WINAPI RegisterClass16( const WNDCLASS16 *wc ) { ATOM atom; CLASS *classPtr; @@ -342,7 +342,7 @@ bg=%04x style=%08x clsExt=%d winExt=%d class=%p name='%s'\n", /*********************************************************************** * RegisterClass32A (USER32.426) */ -ATOM RegisterClass32A( const WNDCLASS32A* wc ) +ATOM WINAPI RegisterClass32A( const WNDCLASS32A* wc ) { ATOM atom; CLASS *classPtr; @@ -379,7 +379,7 @@ hinst=%04x bg=%04x style=%08x clsExt=%d winExt=%d class=%p name='%s'\n", /*********************************************************************** * RegisterClass32W (USER32.429) */ -ATOM RegisterClass32W( const WNDCLASS32W* wc ) +ATOM WINAPI RegisterClass32W( const WNDCLASS32W* wc ) { ATOM atom; CLASS *classPtr; @@ -414,7 +414,7 @@ ATOM RegisterClass32W( const WNDCLASS32W* wc ) /*********************************************************************** * RegisterClassEx16 (USER.397) */ -ATOM RegisterClassEx16( const WNDCLASSEX16 *wc ) +ATOM WINAPI RegisterClassEx16( const WNDCLASSEX16 *wc ) { ATOM atom; CLASS *classPtr; @@ -449,7 +449,7 @@ ATOM RegisterClassEx16( const WNDCLASSEX16 *wc ) /*********************************************************************** * RegisterClassEx32A (USER32.427) */ -ATOM RegisterClassEx32A( const WNDCLASSEX32A* wc ) +ATOM WINAPI RegisterClassEx32A( const WNDCLASSEX32A* wc ) { ATOM atom; CLASS *classPtr; @@ -484,7 +484,7 @@ ATOM RegisterClassEx32A( const WNDCLASSEX32A* wc ) /*********************************************************************** * RegisterClassEx32W (USER32.428) */ -ATOM RegisterClassEx32W( const WNDCLASSEX32W* wc ) +ATOM WINAPI RegisterClassEx32W( const WNDCLASSEX32W* wc ) { ATOM atom; CLASS *classPtr; @@ -519,7 +519,7 @@ ATOM RegisterClassEx32W( const WNDCLASSEX32W* wc ) /*********************************************************************** * UnregisterClass16 (USER.403) */ -BOOL16 UnregisterClass16( SEGPTR className, HINSTANCE16 hInstance ) +BOOL16 WINAPI UnregisterClass16( SEGPTR className, HINSTANCE16 hInstance ) { CLASS *classPtr; ATOM atom; @@ -535,7 +535,7 @@ BOOL16 UnregisterClass16( SEGPTR className, HINSTANCE16 hInstance ) /*********************************************************************** * UnregisterClass32A (USER32.562) */ -BOOL32 UnregisterClass32A( LPCSTR className, HINSTANCE32 hInstance ) +BOOL32 WINAPI UnregisterClass32A( LPCSTR className, HINSTANCE32 hInstance ) { CLASS *classPtr; ATOM atom; @@ -551,7 +551,7 @@ BOOL32 UnregisterClass32A( LPCSTR className, HINSTANCE32 hInstance ) /*********************************************************************** * UnregisterClass32W (USER32.563) */ -BOOL32 UnregisterClass32W( LPCWSTR className, HINSTANCE32 hInstance ) +BOOL32 WINAPI UnregisterClass32W( LPCWSTR className, HINSTANCE32 hInstance ) { CLASS *classPtr; ATOM atom; @@ -567,7 +567,7 @@ BOOL32 UnregisterClass32W( LPCWSTR className, HINSTANCE32 hInstance ) /*********************************************************************** * GetClassWord16 (USER.129) */ -WORD GetClassWord16( HWND16 hwnd, INT16 offset ) +WORD WINAPI GetClassWord16( HWND16 hwnd, INT16 offset ) { return GetClassWord32( hwnd, offset ); } @@ -576,7 +576,7 @@ WORD GetClassWord16( HWND16 hwnd, INT16 offset ) /*********************************************************************** * GetClassWord32 (USER32.218) */ -WORD GetClassWord32( HWND32 hwnd, INT32 offset ) +WORD WINAPI GetClassWord32( HWND32 hwnd, INT32 offset ) { WND * wndPtr; @@ -607,7 +607,7 @@ WORD GetClassWord32( HWND32 hwnd, INT32 offset ) /*********************************************************************** * GetClassLong16 (USER.131) */ -LONG GetClassLong16( HWND16 hwnd, INT16 offset ) +LONG WINAPI GetClassLong16( HWND16 hwnd, INT16 offset ) { WND *wndPtr; LONG ret; @@ -629,7 +629,7 @@ LONG GetClassLong16( HWND16 hwnd, INT16 offset ) /*********************************************************************** * GetClassLong32A (USER32.214) */ -LONG GetClassLong32A( HWND32 hwnd, INT32 offset ) +LONG WINAPI GetClassLong32A( HWND32 hwnd, INT32 offset ) { WND * wndPtr; @@ -663,7 +663,7 @@ LONG GetClassLong32A( HWND32 hwnd, INT32 offset ) /*********************************************************************** * GetClassLong32W (USER32.215) */ -LONG GetClassLong32W( HWND32 hwnd, INT32 offset ) +LONG WINAPI GetClassLong32W( HWND32 hwnd, INT32 offset ) { WND * wndPtr; @@ -684,7 +684,7 @@ LONG GetClassLong32W( HWND32 hwnd, INT32 offset ) /*********************************************************************** * SetClassWord16 (USER.130) */ -WORD SetClassWord16( HWND16 hwnd, INT16 offset, WORD newval ) +WORD WINAPI SetClassWord16( HWND16 hwnd, INT16 offset, WORD newval ) { return SetClassWord32( hwnd, offset, newval ); } @@ -693,7 +693,7 @@ WORD SetClassWord16( HWND16 hwnd, INT16 offset, WORD newval ) /*********************************************************************** * SetClassWord32 (USER32.468) */ -WORD SetClassWord32( HWND32 hwnd, INT32 offset, WORD newval ) +WORD WINAPI SetClassWord32( HWND32 hwnd, INT32 offset, WORD newval ) { WND * wndPtr; WORD retval = 0; @@ -737,7 +737,7 @@ WORD SetClassWord32( HWND32 hwnd, INT32 offset, WORD newval ) /*********************************************************************** * SetClassLong16 (USER.132) */ -LONG SetClassLong16( HWND16 hwnd, INT16 offset, LONG newval ) +LONG WINAPI SetClassLong16( HWND16 hwnd, INT16 offset, LONG newval ) { WND *wndPtr; LONG retval; @@ -761,7 +761,7 @@ LONG SetClassLong16( HWND16 hwnd, INT16 offset, LONG newval ) /*********************************************************************** * SetClassLong32A (USER32.466) */ -LONG SetClassLong32A( HWND32 hwnd, INT32 offset, LONG newval ) +LONG WINAPI SetClassLong32A( HWND32 hwnd, INT32 offset, LONG newval ) { WND * wndPtr; LONG retval = 0; @@ -813,7 +813,7 @@ LONG SetClassLong32A( HWND32 hwnd, INT32 offset, LONG newval ) /*********************************************************************** * SetClassLong32W (USER32.467) */ -LONG SetClassLong32W( HWND32 hwnd, INT32 offset, LONG newval ) +LONG WINAPI SetClassLong32W( HWND32 hwnd, INT32 offset, LONG newval ) { WND *wndPtr; LONG retval; @@ -839,7 +839,7 @@ LONG SetClassLong32W( HWND32 hwnd, INT32 offset, LONG newval ) /*********************************************************************** * GetClassName16 (USER.58) */ -INT16 GetClassName16( HWND16 hwnd, LPSTR buffer, INT16 count ) +INT16 WINAPI GetClassName16( HWND16 hwnd, LPSTR buffer, INT16 count ) { WND *wndPtr; if (!(wndPtr = WIN_FindWndPtr(hwnd))) return 0; @@ -850,7 +850,7 @@ INT16 GetClassName16( HWND16 hwnd, LPSTR buffer, INT16 count ) /*********************************************************************** * GetClassName32A (USER32.216) */ -INT32 GetClassName32A( HWND32 hwnd, LPSTR buffer, INT32 count ) +INT32 WINAPI GetClassName32A( HWND32 hwnd, LPSTR buffer, INT32 count ) { WND *wndPtr; if (!(wndPtr = WIN_FindWndPtr(hwnd))) return 0; @@ -861,7 +861,7 @@ INT32 GetClassName32A( HWND32 hwnd, LPSTR buffer, INT32 count ) /*********************************************************************** * GetClassName32W (USER32.217) */ -INT32 GetClassName32W( HWND32 hwnd, LPWSTR buffer, INT32 count ) +INT32 WINAPI GetClassName32W( HWND32 hwnd, LPWSTR buffer, INT32 count ) { WND *wndPtr; if (!(wndPtr = WIN_FindWndPtr(hwnd))) return 0; @@ -872,15 +872,19 @@ INT32 GetClassName32W( HWND32 hwnd, LPWSTR buffer, INT32 count ) /*********************************************************************** * GetClassInfo16 (USER.404) */ -BOOL16 GetClassInfo16( HINSTANCE16 hInstance, SEGPTR name, WNDCLASS16 *wc ) +BOOL16 WINAPI GetClassInfo16( HINSTANCE16 hInstance, SEGPTR name, + WNDCLASS16 *wc ) { ATOM atom; CLASS *classPtr; hInstance = GetExePtr( hInstance ); if (!(atom = GlobalFindAtom16( name )) || - !(classPtr = CLASS_FindClassByAtom( atom, hInstance )) || - (hInstance != classPtr->hInstance)) return FALSE; + !(classPtr = CLASS_FindClassByAtom( atom, hInstance ))) + return FALSE; + if ((hInstance != classPtr->hInstance) && + !(classPtr->style & CS_GLOBALCLASS)) /*BWCC likes to pass hInstance=0*/ + return FALSE; wc->style = (UINT16)classPtr->style; wc->lpfnWndProc = WINPROC_GetProc( classPtr->winproc, WIN_PROC_16 ); wc->cbClsExtra = (INT16)classPtr->cbClsExtra; @@ -900,7 +904,8 @@ BOOL16 GetClassInfo16( HINSTANCE16 hInstance, SEGPTR name, WNDCLASS16 *wc ) /*********************************************************************** * GetClassInfo32A (USER32.210) */ -BOOL32 GetClassInfo32A( HINSTANCE32 hInstance, LPCSTR name, WNDCLASS32A *wc ) +BOOL32 WINAPI GetClassInfo32A( HINSTANCE32 hInstance, LPCSTR name, + WNDCLASS32A *wc ) { ATOM atom; CLASS *classPtr; @@ -929,7 +934,8 @@ BOOL32 GetClassInfo32A( HINSTANCE32 hInstance, LPCSTR name, WNDCLASS32A *wc ) /*********************************************************************** * GetClassInfo32W (USER32.213) */ -BOOL32 GetClassInfo32W( HINSTANCE32 hInstance, LPCWSTR name, WNDCLASS32W *wc ) +BOOL32 WINAPI GetClassInfo32W( HINSTANCE32 hInstance, LPCWSTR name, + WNDCLASS32W *wc ) { ATOM atom; CLASS *classPtr; @@ -961,7 +967,8 @@ BOOL32 GetClassInfo32W( HINSTANCE32 hInstance, LPCWSTR name, WNDCLASS32W *wc ) * FIXME: this is just a guess, I have no idea if GetClassInfoEx() is the * same in Win16 as in Win32. --AJ */ -BOOL16 GetClassInfoEx16( HINSTANCE16 hInstance, SEGPTR name, WNDCLASSEX16 *wc ) +BOOL16 WINAPI GetClassInfoEx16( HINSTANCE16 hInstance, SEGPTR name, + WNDCLASSEX16 *wc ) { ATOM atom; CLASS *classPtr; @@ -990,8 +997,8 @@ BOOL16 GetClassInfoEx16( HINSTANCE16 hInstance, SEGPTR name, WNDCLASSEX16 *wc ) /*********************************************************************** * GetClassInfoEx32A (USER32.211) */ -BOOL32 GetClassInfoEx32A( HINSTANCE32 hInstance, LPCSTR name, - WNDCLASSEX32A *wc ) +BOOL32 WINAPI GetClassInfoEx32A( HINSTANCE32 hInstance, LPCSTR name, + WNDCLASSEX32A *wc ) { ATOM atom; CLASS *classPtr; @@ -1019,8 +1026,8 @@ BOOL32 GetClassInfoEx32A( HINSTANCE32 hInstance, LPCSTR name, /*********************************************************************** * GetClassInfoEx32W (USER32.212) */ -BOOL32 GetClassInfoEx32W( HINSTANCE32 hInstance, LPCWSTR name, - WNDCLASSEX32W *wc ) +BOOL32 WINAPI GetClassInfoEx32W( HINSTANCE32 hInstance, LPCWSTR name, + WNDCLASSEX32W *wc ) { ATOM atom; CLASS *classPtr; @@ -1048,7 +1055,7 @@ BOOL32 GetClassInfoEx32W( HINSTANCE32 hInstance, LPCWSTR name, /*********************************************************************** * ClassFirst (TOOLHELP.69) */ -BOOL16 ClassFirst( CLASSENTRY *pClassEntry ) +BOOL16 WINAPI ClassFirst( CLASSENTRY *pClassEntry ) { pClassEntry->wNext = 1; return ClassNext( pClassEntry ); @@ -1058,7 +1065,7 @@ BOOL16 ClassFirst( CLASSENTRY *pClassEntry ) /*********************************************************************** * ClassNext (TOOLHELP.70) */ -BOOL16 ClassNext( CLASSENTRY *pClassEntry ) +BOOL16 WINAPI ClassNext( CLASSENTRY *pClassEntry ) { int i; CLASS *class = firstClass; diff --git a/windows/clipboard.c b/windows/clipboard.c index ce261c0b81f..d51dbd4a486 100644 --- a/windows/clipboard.c +++ b/windows/clipboard.c @@ -178,7 +178,7 @@ static BOOL32 CLIPBOARD_RequestXSelection() selectionWait=True; while(selectionWait) - EVENT_WaitXEvent( TRUE, FALSE ); + EVENT_WaitNetEvent( TRUE, FALSE ); /* we treat Unix text as CF_OEMTEXT */ dprintf_clipboard(stddeb,"\tgot CF_OEMTEXT = %i\n", @@ -212,7 +212,7 @@ BOOL32 CLIPBOARD_IsPresent(WORD wFormat) /************************************************************************** * OpenClipboard16 (USER.137) */ -BOOL16 OpenClipboard16( HWND16 hWnd ) +BOOL16 WINAPI OpenClipboard16( HWND16 hWnd ) { return OpenClipboard32( hWnd ); } @@ -221,7 +221,7 @@ BOOL16 OpenClipboard16( HWND16 hWnd ) /************************************************************************** * OpenClipboard32 (USER32.406) */ -BOOL32 OpenClipboard32( HWND32 hWnd ) +BOOL32 WINAPI OpenClipboard32( HWND32 hWnd ) { BOOL32 bRet = FALSE; dprintf_clipboard(stddeb,"OpenClipboard(%04x) = ", hWnd); @@ -241,7 +241,7 @@ BOOL32 OpenClipboard32( HWND32 hWnd ) /************************************************************************** * CloseClipboard16 (USER.138) */ -BOOL16 CloseClipboard16(void) +BOOL16 WINAPI CloseClipboard16(void) { return CloseClipboard32(); } @@ -250,7 +250,7 @@ BOOL16 CloseClipboard16(void) /************************************************************************** * CloseClipboard32 (USER32.53) */ -BOOL32 CloseClipboard32(void) +BOOL32 WINAPI CloseClipboard32(void) { dprintf_clipboard(stddeb,"CloseClipboard(); !\n"); @@ -266,7 +266,7 @@ BOOL32 CloseClipboard32(void) /************************************************************************** * EmptyClipboard16 (USER.139) */ -BOOL16 EmptyClipboard16(void) +BOOL16 WINAPI EmptyClipboard16(void) { return EmptyClipboard32(); } @@ -275,7 +275,7 @@ BOOL16 EmptyClipboard16(void) /************************************************************************** * EmptyClipboard32 (USER32.168) */ -BOOL32 EmptyClipboard32(void) +BOOL32 WINAPI EmptyClipboard32(void) { LPCLIPFORMAT lpFormat = ClipFormats; @@ -316,7 +316,7 @@ BOOL32 EmptyClipboard32(void) /************************************************************************** * GetClipboardOwner16 (USER.140) */ -HWND16 GetClipboardOwner16(void) +HWND16 WINAPI GetClipboardOwner16(void) { return hWndClipOwner; } @@ -325,7 +325,7 @@ HWND16 GetClipboardOwner16(void) /************************************************************************** * GetClipboardOwner32 (USER32.224) */ -HWND32 GetClipboardOwner32(void) +HWND32 WINAPI GetClipboardOwner32(void) { return hWndClipOwner; } @@ -334,7 +334,7 @@ HWND32 GetClipboardOwner32(void) /************************************************************************** * SetClipboardData16 (USER.141) */ -HANDLE16 SetClipboardData16( UINT16 wFormat, HANDLE16 hData ) +HANDLE16 WINAPI SetClipboardData16( UINT16 wFormat, HANDLE16 hData ) { LPCLIPFORMAT lpFormat = ClipFormats; Window owner; @@ -391,7 +391,7 @@ HANDLE16 SetClipboardData16( UINT16 wFormat, HANDLE16 hData ) /************************************************************************** * SetClipboardData32 (USER32.469) */ -HANDLE32 SetClipboardData32( UINT32 wFormat, HANDLE32 hData ) +HANDLE32 WINAPI SetClipboardData32( UINT32 wFormat, HANDLE32 hData ) { fprintf( stderr, "SetClipboardData: empty stub\n" ); return 0; @@ -450,7 +450,7 @@ static BOOL32 CLIPBOARD_RenderText(LPCLIPFORMAT lpTarget, LPCLIPFORMAT lpSource) /************************************************************************** * GetClipboardData16 (USER.142) */ -HANDLE16 GetClipboardData16( UINT16 wFormat ) +HANDLE16 WINAPI GetClipboardData16( UINT16 wFormat ) { LPCLIPFORMAT lpRender = ClipFormats; LPCLIPFORMAT lpUpdate = NULL; @@ -499,7 +499,7 @@ HANDLE16 GetClipboardData16( UINT16 wFormat ) /************************************************************************** * GetClipboardData32 (USER32.221) */ -HANDLE32 GetClipboardData32( UINT32 wFormat ) +HANDLE32 WINAPI GetClipboardData32( UINT32 wFormat ) { fprintf( stderr, "GetClipboardData32: empty stub\n" ); return 0; @@ -508,7 +508,7 @@ HANDLE32 GetClipboardData32( UINT32 wFormat ) /************************************************************************** * CountClipboardFormats16 (USER.143) */ -INT16 CountClipboardFormats16(void) +INT16 WINAPI CountClipboardFormats16(void) { return CountClipboardFormats32(); } @@ -517,7 +517,7 @@ INT16 CountClipboardFormats16(void) /************************************************************************** * CountClipboardFormats32 (USER32.62) */ -INT32 CountClipboardFormats32(void) +INT32 WINAPI CountClipboardFormats32(void) { INT32 FormatCount = 0; LPCLIPFORMAT lpFormat = ClipFormats; @@ -548,7 +548,7 @@ INT32 CountClipboardFormats32(void) /************************************************************************** * EnumClipboardFormats16 (USER.144) */ -UINT16 EnumClipboardFormats16( UINT16 wFormat ) +UINT16 WINAPI EnumClipboardFormats16( UINT16 wFormat ) { return EnumClipboardFormats32( wFormat ); } @@ -557,7 +557,7 @@ UINT16 EnumClipboardFormats16( UINT16 wFormat ) /************************************************************************** * EnumClipboardFormats32 (USER32.178) */ -UINT32 EnumClipboardFormats32( UINT32 wFormat ) +UINT32 WINAPI EnumClipboardFormats32( UINT32 wFormat ) { LPCLIPFORMAT lpFormat = ClipFormats; @@ -600,7 +600,7 @@ UINT32 EnumClipboardFormats32( UINT32 wFormat ) /************************************************************************** * RegisterClipboardFormat16 (USER.145) */ -UINT16 RegisterClipboardFormat16( LPCSTR FormatName ) +UINT16 WINAPI RegisterClipboardFormat16( LPCSTR FormatName ) { LPCLIPFORMAT lpNewFormat; LPCLIPFORMAT lpFormat = ClipFormats; @@ -646,7 +646,7 @@ UINT16 RegisterClipboardFormat16( LPCSTR FormatName ) /************************************************************************** * RegisterClipboardFormat32A (USER32.430) */ -UINT32 RegisterClipboardFormat32A( LPCSTR formatName ) +UINT32 WINAPI RegisterClipboardFormat32A( LPCSTR formatName ) { return RegisterClipboardFormat16( formatName ); } @@ -655,7 +655,7 @@ UINT32 RegisterClipboardFormat32A( LPCSTR formatName ) /************************************************************************** * RegisterClipboardFormat32W (USER32.431) */ -UINT32 RegisterClipboardFormat32W( LPCWSTR formatName ) +UINT32 WINAPI RegisterClipboardFormat32W( LPCWSTR formatName ) { LPSTR aFormat = HEAP_strdupWtoA( GetProcessHeap(), 0, formatName ); UINT32 ret = RegisterClipboardFormat32A( aFormat ); @@ -666,7 +666,7 @@ UINT32 RegisterClipboardFormat32W( LPCWSTR formatName ) /************************************************************************** * GetClipboardFormatName16 (USER.146) */ -INT16 GetClipboardFormatName16( UINT16 wFormat, LPSTR retStr, INT16 maxlen ) +INT16 WINAPI GetClipboardFormatName16( UINT16 wFormat, LPSTR retStr, INT16 maxlen ) { return GetClipboardFormatName32A( wFormat, retStr, maxlen ); } @@ -675,7 +675,7 @@ INT16 GetClipboardFormatName16( UINT16 wFormat, LPSTR retStr, INT16 maxlen ) /************************************************************************** * GetClipboardFormatName32A (USER32.222) */ -INT32 GetClipboardFormatName32A( UINT32 wFormat, LPSTR retStr, INT32 maxlen ) +INT32 WINAPI GetClipboardFormatName32A( UINT32 wFormat, LPSTR retStr, INT32 maxlen ) { LPCLIPFORMAT lpFormat = ClipFormats; @@ -702,7 +702,7 @@ INT32 GetClipboardFormatName32A( UINT32 wFormat, LPSTR retStr, INT32 maxlen ) /************************************************************************** * GetClipboardFormatName32W (USER32.223) */ -INT32 GetClipboardFormatName32W( UINT32 wFormat, LPWSTR retStr, INT32 maxlen ) +INT32 WINAPI GetClipboardFormatName32W( UINT32 wFormat, LPWSTR retStr, INT32 maxlen ) { LPSTR p = HEAP_xalloc( GetProcessHeap(), 0, maxlen ); INT32 ret = GetClipboardFormatName32A( wFormat, p, maxlen ); @@ -715,7 +715,7 @@ INT32 GetClipboardFormatName32W( UINT32 wFormat, LPWSTR retStr, INT32 maxlen ) /************************************************************************** * SetClipboardViewer16 (USER.147) */ -HWND16 SetClipboardViewer16( HWND16 hWnd ) +HWND16 WINAPI SetClipboardViewer16( HWND16 hWnd ) { return SetClipboardViewer32( hWnd ); } @@ -724,11 +724,11 @@ HWND16 SetClipboardViewer16( HWND16 hWnd ) /************************************************************************** * SetClipboardViewer32 (USER32.470) */ -HWND32 SetClipboardViewer32( HWND32 hWnd ) +HWND32 WINAPI SetClipboardViewer32( HWND32 hWnd ) { HWND32 hwndPrev = hWndViewer; - dprintf_clipboard(stddeb,"SetClipboardViewer(%04x)\n", hWnd); + dprintf_clipboard(stddeb,"SetClipboardViewer(%04x): returning %04x\n", hWnd, hwndPrev); hWndViewer = hWnd; return hwndPrev; @@ -738,7 +738,7 @@ HWND32 SetClipboardViewer32( HWND32 hWnd ) /************************************************************************** * GetClipboardViewer16 (USER.148) */ -HWND16 GetClipboardViewer16(void) +HWND16 WINAPI GetClipboardViewer16(void) { return hWndViewer; } @@ -747,7 +747,7 @@ HWND16 GetClipboardViewer16(void) /************************************************************************** * GetClipboardViewer32 (USER32.225) */ -HWND32 GetClipboardViewer32(void) +HWND32 WINAPI GetClipboardViewer32(void) { return hWndViewer; } @@ -756,7 +756,7 @@ HWND32 GetClipboardViewer32(void) /************************************************************************** * ChangeClipboardChain16 (USER.149) */ -BOOL16 ChangeClipboardChain16(HWND16 hWnd, HWND16 hWndNext) +BOOL16 WINAPI ChangeClipboardChain16(HWND16 hWnd, HWND16 hWndNext) { return ChangeClipboardChain32(hWnd,hWndNext); } @@ -764,7 +764,7 @@ BOOL16 ChangeClipboardChain16(HWND16 hWnd, HWND16 hWndNext) /************************************************************************** * ChangeClipboardChain32 (USER32.21) */ -BOOL32 ChangeClipboardChain32(HWND32 hWnd, HWND32 hWndNext) +BOOL32 WINAPI ChangeClipboardChain32(HWND32 hWnd, HWND32 hWndNext) { BOOL32 bRet = 0; @@ -786,7 +786,7 @@ BOOL32 ChangeClipboardChain32(HWND32 hWnd, HWND32 hWndNext) /************************************************************************** * IsClipboardFormatAvailable16 (USER.193) */ -BOOL16 IsClipboardFormatAvailable16( UINT16 wFormat ) +BOOL16 WINAPI IsClipboardFormatAvailable16( UINT16 wFormat ) { return IsClipboardFormatAvailable32( wFormat ); } @@ -795,7 +795,7 @@ BOOL16 IsClipboardFormatAvailable16( UINT16 wFormat ) /************************************************************************** * IsClipboardFormatAvailable32 (USER32.339) */ -BOOL32 IsClipboardFormatAvailable32( UINT32 wFormat ) +BOOL32 WINAPI IsClipboardFormatAvailable32( UINT32 wFormat ) { dprintf_clipboard(stddeb,"IsClipboardFormatAvailable(%04X) !\n", wFormat); @@ -809,7 +809,7 @@ BOOL32 IsClipboardFormatAvailable32( UINT32 wFormat ) /************************************************************************** * GetOpenClipboardWindow16 (USER.248) */ -HWND16 GetOpenClipboardWindow16(void) +HWND16 WINAPI GetOpenClipboardWindow16(void) { return hWndClipWindow; } @@ -818,7 +818,7 @@ HWND16 GetOpenClipboardWindow16(void) /************************************************************************** * GetOpenClipboardWindow32 (USER32.276) */ -HWND32 GetOpenClipboardWindow32(void) +HWND32 WINAPI GetOpenClipboardWindow32(void) { return hWndClipWindow; } @@ -827,7 +827,7 @@ HWND32 GetOpenClipboardWindow32(void) /************************************************************************** * GetPriorityClipboardFormat16 (USER.402) */ -INT16 GetPriorityClipboardFormat16( UINT16 *lpPriorityList, INT16 nCount) +INT16 WINAPI GetPriorityClipboardFormat16( UINT16 *lpPriorityList, INT16 nCount) { fprintf( stderr, "GetPriorityClipboardFormat16(%p, %d): stub\n", lpPriorityList, nCount ); @@ -838,7 +838,7 @@ INT16 GetPriorityClipboardFormat16( UINT16 *lpPriorityList, INT16 nCount) /************************************************************************** * GetPriorityClipboardFormat32 (USER32 */ -INT32 GetPriorityClipboardFormat32( UINT32 *lpPriorityList, INT32 nCount ) +INT32 WINAPI GetPriorityClipboardFormat32( UINT32 *lpPriorityList, INT32 nCount ) { fprintf( stderr, "GetPriorityClipboardFormat32(%p, %d): stub\n", lpPriorityList, nCount ); diff --git a/windows/dce.c b/windows/dce.c index 5e925f6b7ec..d54654c8d3f 100644 --- a/windows/dce.c +++ b/windows/dce.c @@ -95,7 +95,7 @@ void DCE_FreeDCE( DCE *dce ) /********************************************************************** * WindowFromDC16 (USER32.580) */ -HWND16 WindowFromDC16( HDC16 hDC ) +HWND16 WINAPI WindowFromDC16( HDC16 hDC ) { return (HWND16)WindowFromDC32( hDC ); } @@ -104,7 +104,7 @@ HWND16 WindowFromDC16( HDC16 hDC ) /********************************************************************** * WindowFromDC32 (USER32.580) */ -HWND32 WindowFromDC32( HDC32 hDC ) +HWND32 WINAPI WindowFromDC32( HDC32 hDC ) { DCE *dce = firstDCE; while (dce && (dce->hDC != hDC)) dce = dce->next; @@ -417,7 +417,7 @@ INT16 DCE_ExcludeRgn( HDC32 hDC, WND* wnd, HRGN32 hRgn ) /*********************************************************************** * GetDCEx16 (USER.359) */ -HDC16 GetDCEx16( HWND16 hwnd, HRGN16 hrgnClip, DWORD flags ) +HDC16 WINAPI GetDCEx16( HWND16 hwnd, HRGN16 hrgnClip, DWORD flags ) { return (HDC16)GetDCEx32( hwnd, hrgnClip, flags ); } @@ -428,7 +428,7 @@ HDC16 GetDCEx16( HWND16 hwnd, HRGN16 hrgnClip, DWORD flags ) * * Unimplemented flags: DCX_LOCKWINDOWUPDATE */ -HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags ) +HDC32 WINAPI GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags ) { HRGN32 hrgnVisible; HDC32 hdc = 0; @@ -583,7 +583,7 @@ HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags ) /*********************************************************************** * GetDC16 (USER.66) */ -HDC16 GetDC16( HWND16 hwnd ) +HDC16 WINAPI GetDC16( HWND16 hwnd ) { return (HDC16)GetDC32( hwnd ); } @@ -592,7 +592,7 @@ HDC16 GetDC16( HWND16 hwnd ) /*********************************************************************** * GetDC32 (USER32.229) */ -HDC32 GetDC32( HWND32 hwnd ) +HDC32 WINAPI GetDC32( HWND32 hwnd ) { if (!hwnd) return GetDCEx32( GetDesktopWindow32(), 0, DCX_CACHE | DCX_WINDOW ); @@ -603,7 +603,7 @@ HDC32 GetDC32( HWND32 hwnd ) /*********************************************************************** * GetWindowDC16 (USER.67) */ -HDC16 GetWindowDC16( HWND16 hwnd ) +HDC16 WINAPI GetWindowDC16( HWND16 hwnd ) { if (!hwnd) hwnd = GetDesktopWindow16(); return GetDCEx16( hwnd, 0, DCX_USESTYLE | DCX_WINDOW ); @@ -613,7 +613,7 @@ HDC16 GetWindowDC16( HWND16 hwnd ) /*********************************************************************** * GetWindowDC32 (USER32.) */ -HDC32 GetWindowDC32( HWND32 hwnd ) +HDC32 WINAPI GetWindowDC32( HWND32 hwnd ) { if (!hwnd) hwnd = GetDesktopWindow32(); return GetDCEx32( hwnd, 0, DCX_USESTYLE | DCX_WINDOW ); @@ -623,7 +623,7 @@ HDC32 GetWindowDC32( HWND32 hwnd ) /*********************************************************************** * ReleaseDC16 (USER.68) */ -INT16 ReleaseDC16( HWND16 hwnd, HDC16 hdc ) +INT16 WINAPI ReleaseDC16( HWND16 hwnd, HDC16 hdc ) { return (INT32)ReleaseDC32( hwnd, hdc ); } @@ -632,7 +632,7 @@ INT16 ReleaseDC16( HWND16 hwnd, HDC16 hdc ) /*********************************************************************** * ReleaseDC32 (USER32.439) */ -INT32 ReleaseDC32( HWND32 hwnd, HDC32 hdc ) +INT32 WINAPI ReleaseDC32( HWND32 hwnd, HDC32 hdc ) { DCE * dce = firstDCE; @@ -674,7 +674,7 @@ INT32 ReleaseDC32( HWND32 hwnd, HDC32 hdc ) * * See "Undoc. Windows" for hints (DC, SetDCHook, SetHookFlags).. */ -BOOL16 DCHook( HDC16 hDC, WORD code, DWORD data, LPARAM lParam ) +BOOL16 WINAPI DCHook( HDC16 hDC, WORD code, DWORD data, LPARAM lParam ) { HRGN32 hVisRgn; DCE *dce = firstDCE;; @@ -729,7 +729,7 @@ BOOL16 DCHook( HDC16 hDC, WORD code, DWORD data, LPARAM lParam ) /*********************************************************************** * LockWindowUpdate16 (USER.294) */ -BOOL16 LockWindowUpdate16( HWND16 hwnd ) +BOOL16 WINAPI LockWindowUpdate16( HWND16 hwnd ) { return LockWindowUpdate32( hwnd ); } @@ -738,7 +738,7 @@ BOOL16 LockWindowUpdate16( HWND16 hwnd ) /*********************************************************************** * LockWindowUpdate32 (USER32.377) */ -BOOL32 LockWindowUpdate32( HWND32 hwnd ) +BOOL32 WINAPI LockWindowUpdate32( HWND32 hwnd ) { /* FIXME? DCX_LOCKWINDOWUPDATE is unimplemented */ return TRUE; diff --git a/windows/defdlg.c b/windows/defdlg.c index 3c5c082cfdb..1285d735257 100644 --- a/windows/defdlg.c +++ b/windows/defdlg.c @@ -248,7 +248,8 @@ static LRESULT DEFDLG_Epilog(DIALOGINFO* dlgInfo, UINT32 msg, BOOL16 fResult) /*********************************************************************** * DefDlgProc16 (USER.308) */ -LRESULT DefDlgProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam ) +LRESULT WINAPI DefDlgProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, + LPARAM lParam ) { DIALOGINFO * dlgInfo; BOOL16 result = FALSE; @@ -302,7 +303,8 @@ LRESULT DefDlgProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam ) /*********************************************************************** * DefDlgProc32A (USER32.119) */ -LRESULT DefDlgProc32A( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI DefDlgProc32A( HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { DIALOGINFO * dlgInfo; BOOL16 result = FALSE; @@ -356,7 +358,8 @@ LRESULT DefDlgProc32A( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) /*********************************************************************** * DefDlgProc32W (USER32.120) */ -LRESULT DefDlgProc32W( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI DefDlgProc32W( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, + LPARAM lParam ) { DIALOGINFO * dlgInfo; BOOL16 result = FALSE; diff --git a/windows/defwnd.c b/windows/defwnd.c index 7b59447d1eb..a5b5af4a6cb 100644 --- a/windows/defwnd.c +++ b/windows/defwnd.c @@ -359,8 +359,8 @@ static LRESULT DEFWND_DefWinProc( WND *wndPtr, UINT32 msg, WPARAM32 wParam, /*********************************************************************** * DefWindowProc16 (USER.107) */ -LRESULT DefWindowProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, - LPARAM lParam ) +LRESULT WINAPI DefWindowProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, + LPARAM lParam ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); LRESULT result = 0; @@ -426,8 +426,8 @@ LRESULT DefWindowProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, /*********************************************************************** * DefWindowProc32A (USER32.125) */ -LRESULT DefWindowProc32A( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ) +LRESULT WINAPI DefWindowProc32A( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, + LPARAM lParam ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); LRESULT result = 0; @@ -487,8 +487,8 @@ LRESULT DefWindowProc32A( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, /*********************************************************************** * DefWindowProc32W (USER32.126) */ -LRESULT DefWindowProc32W( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, - LPARAM lParam ) +LRESULT WINAPI DefWindowProc32W( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, + LPARAM lParam ) { LRESULT result; diff --git a/windows/dialog.c b/windows/dialog.c index 8b2f58048f4..21ef5b087e7 100644 --- a/windows/dialog.c +++ b/windows/dialog.c @@ -618,8 +618,8 @@ HWND32 DIALOG_CreateIndirect( HINSTANCE32 hInst, LPCSTR dlgTemplate, /*********************************************************************** * CreateDialog16 (USER.89) */ -HWND16 CreateDialog16( HINSTANCE16 hInst, SEGPTR dlgTemplate, - HWND16 owner, DLGPROC16 dlgProc ) +HWND16 WINAPI CreateDialog16( HINSTANCE16 hInst, SEGPTR dlgTemplate, + HWND16 owner, DLGPROC16 dlgProc ) { return CreateDialogParam16( hInst, dlgTemplate, owner, dlgProc, 0 ); } @@ -628,8 +628,9 @@ HWND16 CreateDialog16( HINSTANCE16 hInst, SEGPTR dlgTemplate, /*********************************************************************** * CreateDialogParam16 (USER.241) */ -HWND16 CreateDialogParam16( HINSTANCE16 hInst, SEGPTR dlgTemplate, - HWND16 owner, DLGPROC16 dlgProc, LPARAM param ) +HWND16 WINAPI CreateDialogParam16( HINSTANCE16 hInst, SEGPTR dlgTemplate, + HWND16 owner, DLGPROC16 dlgProc, + LPARAM param ) { HWND16 hwnd = 0; HRSRC16 hRsrc; @@ -652,8 +653,9 @@ HWND16 CreateDialogParam16( HINSTANCE16 hInst, SEGPTR dlgTemplate, /*********************************************************************** * CreateDialogParam32A (USER32.72) */ -HWND32 CreateDialogParam32A( HINSTANCE32 hInst, LPCSTR name, - HWND32 owner, DLGPROC32 dlgProc, LPARAM param ) +HWND32 WINAPI CreateDialogParam32A( HINSTANCE32 hInst, LPCSTR name, + HWND32 owner, DLGPROC32 dlgProc, + LPARAM param ) { if (HIWORD(name)) { @@ -669,8 +671,9 @@ HWND32 CreateDialogParam32A( HINSTANCE32 hInst, LPCSTR name, /*********************************************************************** * CreateDialogParam32W (USER32.73) */ -HWND32 CreateDialogParam32W( HINSTANCE32 hInst, LPCWSTR name, - HWND32 owner, DLGPROC32 dlgProc, LPARAM param ) +HWND32 WINAPI CreateDialogParam32W( HINSTANCE32 hInst, LPCWSTR name, + HWND32 owner, DLGPROC32 dlgProc, + LPARAM param ) { HANDLE32 hrsrc = FindResource32W( hInst, name, (LPWSTR)RT_DIALOG ); if (!hrsrc) return 0; @@ -683,8 +686,8 @@ HWND32 CreateDialogParam32W( HINSTANCE32 hInst, LPCWSTR name, /*********************************************************************** * CreateDialogIndirect16 (USER.219) */ -HWND16 CreateDialogIndirect16( HINSTANCE16 hInst, LPCVOID dlgTemplate, - HWND16 owner, DLGPROC16 dlgProc ) +HWND16 WINAPI CreateDialogIndirect16( HINSTANCE16 hInst, LPCVOID dlgTemplate, + HWND16 owner, DLGPROC16 dlgProc ) { return CreateDialogIndirectParam16( hInst, dlgTemplate, owner, dlgProc, 0); } @@ -693,9 +696,10 @@ HWND16 CreateDialogIndirect16( HINSTANCE16 hInst, LPCVOID dlgTemplate, /*********************************************************************** * CreateDialogIndirectParam16 (USER.242) */ -HWND16 CreateDialogIndirectParam16( HINSTANCE16 hInst, LPCVOID dlgTemplate, - HWND16 owner, DLGPROC16 dlgProc, - LPARAM param ) +HWND16 WINAPI CreateDialogIndirectParam16( HINSTANCE16 hInst, + LPCVOID dlgTemplate, + HWND16 owner, DLGPROC16 dlgProc, + LPARAM param ) { return DIALOG_CreateIndirect( hInst, dlgTemplate, FALSE, owner, dlgProc, param, WIN_PROC_16 ); @@ -705,9 +709,10 @@ HWND16 CreateDialogIndirectParam16( HINSTANCE16 hInst, LPCVOID dlgTemplate, /*********************************************************************** * CreateDialogIndirectParam32A (USER32.69) */ -HWND32 CreateDialogIndirectParam32A( HINSTANCE32 hInst, LPCVOID dlgTemplate, - HWND32 owner, DLGPROC32 dlgProc, - LPARAM param ) +HWND32 WINAPI CreateDialogIndirectParam32A( HINSTANCE32 hInst, + LPCVOID dlgTemplate, + HWND32 owner, DLGPROC32 dlgProc, + LPARAM param ) { return DIALOG_CreateIndirect( hInst, dlgTemplate, TRUE, owner, (DLGPROC16)dlgProc, param, WIN_PROC_32A ); @@ -717,9 +722,10 @@ HWND32 CreateDialogIndirectParam32A( HINSTANCE32 hInst, LPCVOID dlgTemplate, /*********************************************************************** * CreateDialogIndirectParam32W (USER32.71) */ -HWND32 CreateDialogIndirectParam32W( HINSTANCE32 hInst, LPCVOID dlgTemplate, - HWND32 owner, DLGPROC32 dlgProc, - LPARAM param ) +HWND32 WINAPI CreateDialogIndirectParam32W( HINSTANCE32 hInst, + LPCVOID dlgTemplate, + HWND32 owner, DLGPROC32 dlgProc, + LPARAM param ) { return DIALOG_CreateIndirect( hInst, dlgTemplate, TRUE, owner, (DLGPROC16)dlgProc, param, WIN_PROC_32W ); @@ -763,8 +769,8 @@ INT32 DIALOG_DoDialogBox( HWND32 hwnd, HWND32 owner ) /*********************************************************************** * DialogBox16 (USER.87) */ -INT16 DialogBox16( HINSTANCE16 hInst, SEGPTR dlgTemplate, - HWND16 owner, DLGPROC16 dlgProc ) +INT16 WINAPI DialogBox16( HINSTANCE16 hInst, SEGPTR dlgTemplate, + HWND16 owner, DLGPROC16 dlgProc ) { return DialogBoxParam16( hInst, dlgTemplate, owner, dlgProc, 0 ); } @@ -773,8 +779,8 @@ INT16 DialogBox16( HINSTANCE16 hInst, SEGPTR dlgTemplate, /*********************************************************************** * DialogBoxParam16 (USER.239) */ -INT16 DialogBoxParam16( HINSTANCE16 hInst, SEGPTR template, - HWND16 owner, DLGPROC16 dlgProc, LPARAM param ) +INT16 WINAPI DialogBoxParam16( HINSTANCE16 hInst, SEGPTR template, + HWND16 owner, DLGPROC16 dlgProc, LPARAM param ) { HWND16 hwnd = CreateDialogParam16( hInst, template, owner, dlgProc, param); if (hwnd) return (INT16)DIALOG_DoDialogBox( hwnd, owner ); @@ -785,8 +791,8 @@ INT16 DialogBoxParam16( HINSTANCE16 hInst, SEGPTR template, /*********************************************************************** * DialogBoxParam32A (USER32.138) */ -INT32 DialogBoxParam32A( HINSTANCE32 hInst, LPCSTR name, - HWND32 owner, DLGPROC32 dlgProc, LPARAM param ) +INT32 WINAPI DialogBoxParam32A( HINSTANCE32 hInst, LPCSTR name, + HWND32 owner, DLGPROC32 dlgProc, LPARAM param ) { HWND32 hwnd = CreateDialogParam32A( hInst, name, owner, dlgProc, param ); if (hwnd) return DIALOG_DoDialogBox( hwnd, owner ); @@ -797,8 +803,8 @@ INT32 DialogBoxParam32A( HINSTANCE32 hInst, LPCSTR name, /*********************************************************************** * DialogBoxParam32W (USER32.139) */ -INT32 DialogBoxParam32W( HINSTANCE32 hInst, LPCWSTR name, - HWND32 owner, DLGPROC32 dlgProc, LPARAM param ) +INT32 WINAPI DialogBoxParam32W( HINSTANCE32 hInst, LPCWSTR name, + HWND32 owner, DLGPROC32 dlgProc, LPARAM param ) { HWND32 hwnd = CreateDialogParam32W( hInst, name, owner, dlgProc, param ); if (hwnd) return DIALOG_DoDialogBox( hwnd, owner ); @@ -809,8 +815,8 @@ INT32 DialogBoxParam32W( HINSTANCE32 hInst, LPCWSTR name, /*********************************************************************** * DialogBoxIndirect16 (USER.218) */ -INT16 DialogBoxIndirect16( HINSTANCE16 hInst, HANDLE16 dlgTemplate, - HWND16 owner, DLGPROC16 dlgProc ) +INT16 WINAPI DialogBoxIndirect16( HINSTANCE16 hInst, HANDLE16 dlgTemplate, + HWND16 owner, DLGPROC16 dlgProc ) { return DialogBoxIndirectParam16( hInst, dlgTemplate, owner, dlgProc, 0 ); } @@ -819,8 +825,9 @@ INT16 DialogBoxIndirect16( HINSTANCE16 hInst, HANDLE16 dlgTemplate, /*********************************************************************** * DialogBoxIndirectParam16 (USER.240) */ -INT16 DialogBoxIndirectParam16( HINSTANCE16 hInst, HANDLE16 dlgTemplate, - HWND16 owner, DLGPROC16 dlgProc, LPARAM param ) +INT16 WINAPI DialogBoxIndirectParam16( HINSTANCE16 hInst, HANDLE16 dlgTemplate, + HWND16 owner, DLGPROC16 dlgProc, + LPARAM param ) { HWND16 hwnd; LPCVOID ptr; @@ -836,8 +843,9 @@ INT16 DialogBoxIndirectParam16( HINSTANCE16 hInst, HANDLE16 dlgTemplate, /*********************************************************************** * DialogBoxIndirectParam32A (USER32.135) */ -INT32 DialogBoxIndirectParam32A( HINSTANCE32 hInstance, LPCVOID template, - HWND32 owner, DLGPROC32 dlgProc, LPARAM param) +INT32 WINAPI DialogBoxIndirectParam32A(HINSTANCE32 hInstance, LPCVOID template, + HWND32 owner, DLGPROC32 dlgProc, + LPARAM param ) { HWND32 hwnd = CreateDialogIndirectParam32A( hInstance, template, owner, dlgProc, param ); @@ -849,8 +857,9 @@ INT32 DialogBoxIndirectParam32A( HINSTANCE32 hInstance, LPCVOID template, /*********************************************************************** * DialogBoxIndirectParam32W (USER32.137) */ -INT32 DialogBoxIndirectParam32W( HINSTANCE32 hInstance, LPCVOID template, - HWND32 owner, DLGPROC32 dlgProc, LPARAM param) +INT32 WINAPI DialogBoxIndirectParam32W(HINSTANCE32 hInstance, LPCVOID template, + HWND32 owner, DLGPROC32 dlgProc, + LPARAM param ) { HWND32 hwnd = CreateDialogIndirectParam32W( hInstance, template, owner, dlgProc, param ); @@ -862,7 +871,7 @@ INT32 DialogBoxIndirectParam32W( HINSTANCE32 hInstance, LPCVOID template, /*********************************************************************** * EndDialog16 (USER32.173) */ -BOOL16 EndDialog16( HWND16 hwnd, INT16 retval ) +BOOL16 WINAPI EndDialog16( HWND16 hwnd, INT16 retval ) { return EndDialog32( hwnd, retval ); } @@ -871,7 +880,7 @@ BOOL16 EndDialog16( HWND16 hwnd, INT16 retval ) /*********************************************************************** * EndDialog32 (USER32.173) */ -BOOL32 EndDialog32( HWND32 hwnd, INT32 retval ) +BOOL32 WINAPI EndDialog32( HWND32 hwnd, INT32 retval ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); DIALOGINFO * dlgInfo = (DIALOGINFO *)wndPtr->wExtra; @@ -998,7 +1007,7 @@ static BOOL32 DIALOG_IsDialogMessage( HWND32 hwnd, HWND32 hwndDlg, /*********************************************************************** * IsDialogMessage16 (USER.90) */ -BOOL16 IsDialogMessage16( HWND16 hwndDlg, LPMSG16 msg ) +BOOL16 WINAPI IsDialogMessage16( HWND16 hwndDlg, LPMSG16 msg ) { BOOL32 ret, translate, dispatch; @@ -1017,7 +1026,7 @@ BOOL16 IsDialogMessage16( HWND16 hwndDlg, LPMSG16 msg ) /*********************************************************************** * IsDialogMessage32A (USER32.341) */ -BOOL32 IsDialogMessage32A( HWND32 hwndDlg, LPMSG32 msg ) +BOOL32 WINAPI IsDialogMessage32A( HWND32 hwndDlg, LPMSG32 msg ) { BOOL32 ret, translate, dispatch; @@ -1036,7 +1045,7 @@ BOOL32 IsDialogMessage32A( HWND32 hwndDlg, LPMSG32 msg ) /*********************************************************************** * IsDialogMessage32W (USER32.342) */ -BOOL32 IsDialogMessage32W( HWND32 hwndDlg, LPMSG32 msg ) +BOOL32 WINAPI IsDialogMessage32W( HWND32 hwndDlg, LPMSG32 msg ) { BOOL32 ret, translate, dispatch; @@ -1055,7 +1064,7 @@ BOOL32 IsDialogMessage32W( HWND32 hwndDlg, LPMSG32 msg ) /**************************************************************** * GetDlgCtrlID16 (USER.277) */ -INT16 GetDlgCtrlID16( HWND16 hwnd ) +INT16 WINAPI GetDlgCtrlID16( HWND16 hwnd ) { WND *wndPtr = WIN_FindWndPtr(hwnd); if (wndPtr) return wndPtr->wIDmenu; @@ -1066,7 +1075,7 @@ INT16 GetDlgCtrlID16( HWND16 hwnd ) /**************************************************************** * GetDlgCtrlID32 (USER32.233) */ -INT32 GetDlgCtrlID32( HWND32 hwnd ) +INT32 WINAPI GetDlgCtrlID32( HWND32 hwnd ) { WND *wndPtr = WIN_FindWndPtr(hwnd); if (wndPtr) return wndPtr->wIDmenu; @@ -1077,7 +1086,7 @@ INT32 GetDlgCtrlID32( HWND32 hwnd ) /*********************************************************************** * GetDlgItem16 (USER.91) */ -HWND16 GetDlgItem16( HWND16 hwndDlg, INT16 id ) +HWND16 WINAPI GetDlgItem16( HWND16 hwndDlg, INT16 id ) { WND *pWnd; @@ -1091,7 +1100,7 @@ HWND16 GetDlgItem16( HWND16 hwndDlg, INT16 id ) /*********************************************************************** * GetDlgItem32 (USER32.234) */ -HWND32 GetDlgItem32( HWND32 hwndDlg, INT32 id ) +HWND32 WINAPI GetDlgItem32( HWND32 hwndDlg, INT32 id ) { WND *pWnd; @@ -1105,8 +1114,8 @@ HWND32 GetDlgItem32( HWND32 hwndDlg, INT32 id ) /******************************************************************* * SendDlgItemMessage16 (USER.101) */ -LRESULT SendDlgItemMessage16( HWND16 hwnd, INT16 id, UINT16 msg, - WPARAM16 wParam, LPARAM lParam ) +LRESULT WINAPI SendDlgItemMessage16( HWND16 hwnd, INT16 id, UINT16 msg, + WPARAM16 wParam, LPARAM lParam ) { HWND16 hwndCtrl = GetDlgItem16( hwnd, id ); if (hwndCtrl) return SendMessage16( hwndCtrl, msg, wParam, lParam ); @@ -1117,8 +1126,8 @@ LRESULT SendDlgItemMessage16( HWND16 hwnd, INT16 id, UINT16 msg, /******************************************************************* * SendDlgItemMessage32A (USER32.451) */ -LRESULT SendDlgItemMessage32A( HWND32 hwnd, INT32 id, UINT32 msg, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI SendDlgItemMessage32A( HWND32 hwnd, INT32 id, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { HWND32 hwndCtrl = GetDlgItem32( hwnd, id ); if (hwndCtrl) return SendMessage32A( hwndCtrl, msg, wParam, lParam ); @@ -1129,8 +1138,8 @@ LRESULT SendDlgItemMessage32A( HWND32 hwnd, INT32 id, UINT32 msg, /******************************************************************* * SendDlgItemMessage32W (USER32.452) */ -LRESULT SendDlgItemMessage32W( HWND32 hwnd, INT32 id, UINT32 msg, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI SendDlgItemMessage32W( HWND32 hwnd, INT32 id, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { HWND32 hwndCtrl = GetDlgItem32( hwnd, id ); if (hwndCtrl) return SendMessage32W( hwndCtrl, msg, wParam, lParam ); @@ -1141,7 +1150,7 @@ LRESULT SendDlgItemMessage32W( HWND32 hwnd, INT32 id, UINT32 msg, /******************************************************************* * SetDlgItemText16 (USER.92) */ -void SetDlgItemText16( HWND16 hwnd, INT16 id, SEGPTR lpString ) +void WINAPI SetDlgItemText16( HWND16 hwnd, INT16 id, SEGPTR lpString ) { SendDlgItemMessage16( hwnd, id, WM_SETTEXT, 0, (LPARAM)lpString ); } @@ -1150,7 +1159,7 @@ void SetDlgItemText16( HWND16 hwnd, INT16 id, SEGPTR lpString ) /******************************************************************* * SetDlgItemText32A (USER32.477) */ -void SetDlgItemText32A( HWND32 hwnd, INT32 id, LPCSTR lpString ) +void WINAPI SetDlgItemText32A( HWND32 hwnd, INT32 id, LPCSTR lpString ) { SendDlgItemMessage32A( hwnd, id, WM_SETTEXT, 0, (LPARAM)lpString ); } @@ -1159,7 +1168,7 @@ void SetDlgItemText32A( HWND32 hwnd, INT32 id, LPCSTR lpString ) /******************************************************************* * SetDlgItemText32W (USER32.478) */ -void SetDlgItemText32W( HWND32 hwnd, INT32 id, LPCWSTR lpString ) +void WINAPI SetDlgItemText32W( HWND32 hwnd, INT32 id, LPCWSTR lpString ) { SendDlgItemMessage32W( hwnd, id, WM_SETTEXT, 0, (LPARAM)lpString ); } @@ -1168,7 +1177,7 @@ void SetDlgItemText32W( HWND32 hwnd, INT32 id, LPCWSTR lpString ) /*********************************************************************** * GetDlgItemText16 (USER.93) */ -INT16 GetDlgItemText16( HWND16 hwnd, INT16 id, SEGPTR str, UINT16 len ) +INT16 WINAPI GetDlgItemText16( HWND16 hwnd, INT16 id, SEGPTR str, UINT16 len ) { return (INT16)SendDlgItemMessage16( hwnd, id, WM_GETTEXT, len, (LPARAM)str ); @@ -1178,7 +1187,7 @@ INT16 GetDlgItemText16( HWND16 hwnd, INT16 id, SEGPTR str, UINT16 len ) /*********************************************************************** * GetDlgItemText32A (USER32.236) */ -INT32 GetDlgItemText32A( HWND32 hwnd, INT32 id, LPSTR str, UINT32 len ) +INT32 WINAPI GetDlgItemText32A( HWND32 hwnd, INT32 id, LPSTR str, UINT32 len ) { return (INT32)SendDlgItemMessage32A( hwnd, id, WM_GETTEXT, len, (LPARAM)str ); @@ -1188,7 +1197,7 @@ INT32 GetDlgItemText32A( HWND32 hwnd, INT32 id, LPSTR str, UINT32 len ) /*********************************************************************** * GetDlgItemText32W (USER32.237) */ -INT32 GetDlgItemText32W( HWND32 hwnd, INT32 id, LPWSTR str, UINT32 len ) +INT32 WINAPI GetDlgItemText32W( HWND32 hwnd, INT32 id, LPWSTR str, UINT32 len ) { return (INT32)SendDlgItemMessage32W( hwnd, id, WM_GETTEXT, len, (LPARAM)str ); @@ -1198,7 +1207,7 @@ INT32 GetDlgItemText32W( HWND32 hwnd, INT32 id, LPWSTR str, UINT32 len ) /******************************************************************* * SetDlgItemInt16 (USER.94) */ -void SetDlgItemInt16( HWND16 hwnd, INT16 id, UINT16 value, BOOL16 fSigned ) +void WINAPI SetDlgItemInt16( HWND16 hwnd, INT16 id, UINT16 value, BOOL16 fSigned ) { return SetDlgItemInt32( hwnd, (UINT32)(UINT16)id, value, fSigned ); } @@ -1207,7 +1216,8 @@ void SetDlgItemInt16( HWND16 hwnd, INT16 id, UINT16 value, BOOL16 fSigned ) /******************************************************************* * SetDlgItemInt32 (USER32.476) */ -void SetDlgItemInt32( HWND32 hwnd, INT32 id, UINT32 value, BOOL32 fSigned ) +void WINAPI SetDlgItemInt32( HWND32 hwnd, INT32 id, UINT32 value, + BOOL32 fSigned ) { char str[20]; @@ -1220,8 +1230,8 @@ void SetDlgItemInt32( HWND32 hwnd, INT32 id, UINT32 value, BOOL32 fSigned ) /*********************************************************************** * GetDlgItemInt16 (USER.95) */ -UINT16 GetDlgItemInt16( HWND16 hwnd, INT16 id, BOOL16 *translated, - BOOL16 fSigned ) +UINT16 WINAPI GetDlgItemInt16( HWND16 hwnd, INT16 id, BOOL16 *translated, + BOOL16 fSigned ) { UINT32 result; BOOL32 ok; @@ -1245,8 +1255,8 @@ UINT16 GetDlgItemInt16( HWND16 hwnd, INT16 id, BOOL16 *translated, /*********************************************************************** * GetDlgItemInt32 (USER32.235) */ -UINT32 GetDlgItemInt32( HWND32 hwnd, INT32 id, BOOL32 *translated, - BOOL32 fSigned ) +UINT32 WINAPI GetDlgItemInt32( HWND32 hwnd, INT32 id, BOOL32 *translated, + BOOL32 fSigned ) { char str[30]; char * endptr; @@ -1278,7 +1288,7 @@ UINT32 GetDlgItemInt32( HWND32 hwnd, INT32 id, BOOL32 *translated, /*********************************************************************** * CheckDlgButton16 (USER.97) */ -BOOL16 CheckDlgButton16( HWND16 hwnd, INT16 id, UINT16 check ) +BOOL16 WINAPI CheckDlgButton16( HWND16 hwnd, INT16 id, UINT16 check ) { SendDlgItemMessage32A( hwnd, id, BM_SETCHECK32, check, 0 ); return TRUE; @@ -1288,7 +1298,7 @@ BOOL16 CheckDlgButton16( HWND16 hwnd, INT16 id, UINT16 check ) /*********************************************************************** * CheckDlgButton32 (USER32.44) */ -BOOL32 CheckDlgButton32( HWND32 hwnd, INT32 id, UINT32 check ) +BOOL32 WINAPI CheckDlgButton32( HWND32 hwnd, INT32 id, UINT32 check ) { SendDlgItemMessage32A( hwnd, id, BM_SETCHECK32, check, 0 ); return TRUE; @@ -1298,7 +1308,7 @@ BOOL32 CheckDlgButton32( HWND32 hwnd, INT32 id, UINT32 check ) /*********************************************************************** * IsDlgButtonChecked16 (USER.98) */ -UINT16 IsDlgButtonChecked16( HWND16 hwnd, UINT16 id ) +UINT16 WINAPI IsDlgButtonChecked16( HWND16 hwnd, UINT16 id ) { return (UINT16)SendDlgItemMessage32A( hwnd, id, BM_GETCHECK32, 0, 0 ); } @@ -1307,7 +1317,7 @@ UINT16 IsDlgButtonChecked16( HWND16 hwnd, UINT16 id ) /*********************************************************************** * IsDlgButtonChecked32 (USER32.343) */ -UINT32 IsDlgButtonChecked32( HWND32 hwnd, UINT32 id ) +UINT32 WINAPI IsDlgButtonChecked32( HWND32 hwnd, UINT32 id ) { return (UINT32)SendDlgItemMessage32A( hwnd, id, BM_GETCHECK32, 0, 0 ); } @@ -1316,8 +1326,8 @@ UINT32 IsDlgButtonChecked32( HWND32 hwnd, UINT32 id ) /*********************************************************************** * CheckRadioButton16 (USER.96) */ -BOOL16 CheckRadioButton16( HWND16 hwndDlg, UINT16 firstID, UINT16 lastID, - UINT16 checkID ) +BOOL16 WINAPI CheckRadioButton16( HWND16 hwndDlg, UINT16 firstID, + UINT16 lastID, UINT16 checkID ) { return CheckRadioButton32( hwndDlg, firstID, lastID, checkID ); } @@ -1326,8 +1336,8 @@ BOOL16 CheckRadioButton16( HWND16 hwndDlg, UINT16 firstID, UINT16 lastID, /*********************************************************************** * CheckRadioButton32 (USER32.47) */ -BOOL32 CheckRadioButton32( HWND32 hwndDlg, UINT32 firstID, UINT32 lastID, - UINT32 checkID ) +BOOL32 WINAPI CheckRadioButton32( HWND32 hwndDlg, UINT32 firstID, + UINT32 lastID, UINT32 checkID ) { WND *pWnd = WIN_FindWndPtr( hwndDlg ); if (!pWnd) return FALSE; @@ -1352,7 +1362,7 @@ BOOL32 CheckRadioButton32( HWND32 hwndDlg, UINT32 firstID, UINT32 lastID, /*********************************************************************** * GetDialogBaseUnits (USER.243) (USER32.232) */ -DWORD GetDialogBaseUnits(void) +DWORD WINAPI GetDialogBaseUnits(void) { return MAKELONG( xBaseUnit, yBaseUnit ); } @@ -1361,7 +1371,7 @@ DWORD GetDialogBaseUnits(void) /*********************************************************************** * MapDialogRect16 (USER.103) */ -void MapDialogRect16( HWND16 hwnd, LPRECT16 rect ) +void WINAPI MapDialogRect16( HWND16 hwnd, LPRECT16 rect ) { DIALOGINFO * dlgInfo; WND * wndPtr = WIN_FindWndPtr( hwnd ); @@ -1377,7 +1387,7 @@ void MapDialogRect16( HWND16 hwnd, LPRECT16 rect ) /*********************************************************************** * MapDialogRect32 (USER32.381) */ -void MapDialogRect32( HWND32 hwnd, LPRECT32 rect ) +void WINAPI MapDialogRect32( HWND32 hwnd, LPRECT32 rect ) { DIALOGINFO * dlgInfo; WND * wndPtr = WIN_FindWndPtr( hwnd ); @@ -1393,7 +1403,8 @@ void MapDialogRect32( HWND32 hwnd, LPRECT32 rect ) /*********************************************************************** * GetNextDlgGroupItem16 (USER.227) */ -HWND16 GetNextDlgGroupItem16(HWND16 hwndDlg, HWND16 hwndCtrl, BOOL16 fPrevious) +HWND16 WINAPI GetNextDlgGroupItem16( HWND16 hwndDlg, HWND16 hwndCtrl, + BOOL16 fPrevious ) { return (HWND16)GetNextDlgGroupItem32( hwndDlg, hwndCtrl, fPrevious ); } @@ -1402,7 +1413,8 @@ HWND16 GetNextDlgGroupItem16(HWND16 hwndDlg, HWND16 hwndCtrl, BOOL16 fPrevious) /*********************************************************************** * GetNextDlgGroupItem32 (USER32.274) */ -HWND32 GetNextDlgGroupItem32(HWND32 hwndDlg, HWND32 hwndCtrl, BOOL32 fPrevious) +HWND32 WINAPI GetNextDlgGroupItem32( HWND32 hwndDlg, HWND32 hwndCtrl, + BOOL32 fPrevious ) { WND *pWnd, *pWndLast, *pWndCtrl, *pWndDlg; @@ -1452,7 +1464,8 @@ HWND32 GetNextDlgGroupItem32(HWND32 hwndDlg, HWND32 hwndCtrl, BOOL32 fPrevious) /*********************************************************************** * GetNextDlgTabItem16 (USER.228) */ -HWND16 GetNextDlgTabItem16( HWND16 hwndDlg, HWND16 hwndCtrl, BOOL16 fPrevious ) +HWND16 WINAPI GetNextDlgTabItem16( HWND16 hwndDlg, HWND16 hwndCtrl, + BOOL16 fPrevious ) { return (HWND16)GetNextDlgTabItem32( hwndDlg, hwndCtrl, fPrevious ); } @@ -1461,7 +1474,8 @@ HWND16 GetNextDlgTabItem16( HWND16 hwndDlg, HWND16 hwndCtrl, BOOL16 fPrevious ) /*********************************************************************** * GetNextDlgTabItem32 (USER32.275) */ -HWND32 GetNextDlgTabItem32( HWND32 hwndDlg, HWND32 hwndCtrl, BOOL32 fPrevious ) +HWND32 WINAPI GetNextDlgTabItem32( HWND32 hwndDlg, HWND32 hwndCtrl, + BOOL32 fPrevious ) { WND *pWnd, *pWndLast, *pWndCtrl, *pWndDlg; @@ -1691,7 +1705,7 @@ static INT32 DIALOG_DlgDirListW( HWND32 hDlg, LPWSTR spec, INT32 idLBox, /********************************************************************** * DlgDirSelect (USER.99) */ -BOOL16 DlgDirSelect( HWND16 hwnd, LPSTR str, INT16 id ) +BOOL16 WINAPI DlgDirSelect( HWND16 hwnd, LPSTR str, INT16 id ) { return DlgDirSelectEx16( hwnd, str, 128, id ); } @@ -1700,7 +1714,7 @@ BOOL16 DlgDirSelect( HWND16 hwnd, LPSTR str, INT16 id ) /********************************************************************** * DlgDirSelectComboBox (USER.194) */ -BOOL16 DlgDirSelectComboBox( HWND16 hwnd, LPSTR str, INT16 id ) +BOOL16 WINAPI DlgDirSelectComboBox( HWND16 hwnd, LPSTR str, INT16 id ) { return DlgDirSelectComboBoxEx16( hwnd, str, 128, id ); } @@ -1709,7 +1723,7 @@ BOOL16 DlgDirSelectComboBox( HWND16 hwnd, LPSTR str, INT16 id ) /********************************************************************** * DlgDirSelectEx16 (USER.422) */ -BOOL16 DlgDirSelectEx16( HWND16 hwnd, LPSTR str, INT16 len, INT16 id ) +BOOL16 WINAPI DlgDirSelectEx16( HWND16 hwnd, LPSTR str, INT16 len, INT16 id ) { return DIALOG_DlgDirSelect( hwnd, str, len, id, FALSE, FALSE, FALSE ); } @@ -1718,7 +1732,7 @@ BOOL16 DlgDirSelectEx16( HWND16 hwnd, LPSTR str, INT16 len, INT16 id ) /********************************************************************** * DlgDirSelectEx32A (USER32.148) */ -BOOL32 DlgDirSelectEx32A( HWND32 hwnd, LPSTR str, INT32 len, INT32 id ) +BOOL32 WINAPI DlgDirSelectEx32A( HWND32 hwnd, LPSTR str, INT32 len, INT32 id ) { return DIALOG_DlgDirSelect( hwnd, str, len, id, TRUE, FALSE, FALSE ); } @@ -1727,7 +1741,7 @@ BOOL32 DlgDirSelectEx32A( HWND32 hwnd, LPSTR str, INT32 len, INT32 id ) /********************************************************************** * DlgDirSelectEx32W (USER32.149) */ -BOOL32 DlgDirSelectEx32W( HWND32 hwnd, LPWSTR str, INT32 len, INT32 id ) +BOOL32 WINAPI DlgDirSelectEx32W( HWND32 hwnd, LPWSTR str, INT32 len, INT32 id ) { return DIALOG_DlgDirSelect( hwnd, (LPSTR)str, len, id, TRUE, TRUE, FALSE ); } @@ -1736,7 +1750,8 @@ BOOL32 DlgDirSelectEx32W( HWND32 hwnd, LPWSTR str, INT32 len, INT32 id ) /********************************************************************** * DlgDirSelectComboBoxEx16 (USER.423) */ -BOOL16 DlgDirSelectComboBoxEx16( HWND16 hwnd, LPSTR str, INT16 len, INT16 id ) +BOOL16 WINAPI DlgDirSelectComboBoxEx16( HWND16 hwnd, LPSTR str, INT16 len, + INT16 id ) { return DIALOG_DlgDirSelect( hwnd, str, len, id, FALSE, FALSE, TRUE ); } @@ -1745,7 +1760,8 @@ BOOL16 DlgDirSelectComboBoxEx16( HWND16 hwnd, LPSTR str, INT16 len, INT16 id ) /********************************************************************** * DlgDirSelectComboBoxEx32A (USER32.146) */ -BOOL32 DlgDirSelectComboBoxEx32A( HWND32 hwnd, LPSTR str, INT32 len, INT32 id ) +BOOL32 WINAPI DlgDirSelectComboBoxEx32A( HWND32 hwnd, LPSTR str, INT32 len, + INT32 id ) { return DIALOG_DlgDirSelect( hwnd, str, len, id, TRUE, FALSE, TRUE ); } @@ -1754,7 +1770,8 @@ BOOL32 DlgDirSelectComboBoxEx32A( HWND32 hwnd, LPSTR str, INT32 len, INT32 id ) /********************************************************************** * DlgDirSelectComboBoxEx32W (USER32.147) */ -BOOL32 DlgDirSelectComboBoxEx32W( HWND32 hwnd, LPWSTR str, INT32 len, INT32 id) +BOOL32 WINAPI DlgDirSelectComboBoxEx32W( HWND32 hwnd, LPWSTR str, INT32 len, + INT32 id) { return DIALOG_DlgDirSelect( hwnd, (LPSTR)str, len, id, TRUE, TRUE, TRUE ); } @@ -1763,8 +1780,8 @@ BOOL32 DlgDirSelectComboBoxEx32W( HWND32 hwnd, LPWSTR str, INT32 len, INT32 id) /********************************************************************** * DlgDirList16 (USER.100) */ -INT16 DlgDirList16( HWND16 hDlg, LPSTR spec, INT16 idLBox, INT16 idStatic, - UINT16 attrib ) +INT16 WINAPI DlgDirList16( HWND16 hDlg, LPSTR spec, INT16 idLBox, + INT16 idStatic, UINT16 attrib ) { return DIALOG_DlgDirList( hDlg, spec, idLBox, idStatic, attrib, FALSE ); } @@ -1773,8 +1790,8 @@ INT16 DlgDirList16( HWND16 hDlg, LPSTR spec, INT16 idLBox, INT16 idStatic, /********************************************************************** * DlgDirList32A (USER32.142) */ -INT32 DlgDirList32A( HWND32 hDlg, LPSTR spec, INT32 idLBox, INT32 idStatic, - UINT32 attrib ) +INT32 WINAPI DlgDirList32A( HWND32 hDlg, LPSTR spec, INT32 idLBox, + INT32 idStatic, UINT32 attrib ) { return DIALOG_DlgDirList( hDlg, spec, idLBox, idStatic, attrib, FALSE ); } @@ -1783,8 +1800,8 @@ INT32 DlgDirList32A( HWND32 hDlg, LPSTR spec, INT32 idLBox, INT32 idStatic, /********************************************************************** * DlgDirList32W (USER32.145) */ -INT32 DlgDirList32W( HWND32 hDlg, LPWSTR spec, INT32 idLBox, INT32 idStatic, - UINT32 attrib ) +INT32 WINAPI DlgDirList32W( HWND32 hDlg, LPWSTR spec, INT32 idLBox, + INT32 idStatic, UINT32 attrib ) { return DIALOG_DlgDirListW( hDlg, spec, idLBox, idStatic, attrib, FALSE ); } @@ -1793,8 +1810,8 @@ INT32 DlgDirList32W( HWND32 hDlg, LPWSTR spec, INT32 idLBox, INT32 idStatic, /********************************************************************** * DlgDirListComboBox16 (USER.195) */ -INT16 DlgDirListComboBox16( HWND16 hDlg, LPSTR spec, INT16 idCBox, - INT16 idStatic, UINT16 attrib ) +INT16 WINAPI DlgDirListComboBox16( HWND16 hDlg, LPSTR spec, INT16 idCBox, + INT16 idStatic, UINT16 attrib ) { return DIALOG_DlgDirList( hDlg, spec, idCBox, idStatic, attrib, TRUE ); } @@ -1803,8 +1820,8 @@ INT16 DlgDirListComboBox16( HWND16 hDlg, LPSTR spec, INT16 idCBox, /********************************************************************** * DlgDirListComboBox32A (USER32.143) */ -INT32 DlgDirListComboBox32A( HWND32 hDlg, LPSTR spec, INT32 idCBox, - INT32 idStatic, UINT32 attrib ) +INT32 WINAPI DlgDirListComboBox32A( HWND32 hDlg, LPSTR spec, INT32 idCBox, + INT32 idStatic, UINT32 attrib ) { return DIALOG_DlgDirList( hDlg, spec, idCBox, idStatic, attrib, TRUE ); } @@ -1813,8 +1830,8 @@ INT32 DlgDirListComboBox32A( HWND32 hDlg, LPSTR spec, INT32 idCBox, /********************************************************************** * DlgDirListComboBox32W (USER32.144) */ -INT32 DlgDirListComboBox32W( HWND32 hDlg, LPWSTR spec, INT32 idCBox, - INT32 idStatic, UINT32 attrib ) +INT32 WINAPI DlgDirListComboBox32W( HWND32 hDlg, LPWSTR spec, INT32 idCBox, + INT32 idStatic, UINT32 attrib ) { return DIALOG_DlgDirListW( hDlg, spec, idCBox, idStatic, attrib, TRUE ); } diff --git a/windows/driver.c b/windows/driver.c index 942ecc8e7b8..2b8df27d9c9 100644 --- a/windows/driver.c +++ b/windows/driver.c @@ -45,8 +45,8 @@ void LoadStartupDrivers(void) /************************************************************************** * SendDriverMessage [USER.251] */ -LRESULT SendDriverMessage(HDRVR16 hDriver, UINT16 msg, LPARAM lParam1, - LPARAM lParam2) +LRESULT WINAPI SendDriverMessage(HDRVR16 hDriver, UINT16 msg, LPARAM lParam1, + LPARAM lParam2) { LPDRIVERITEM lpdrv; LRESULT retval; @@ -73,7 +73,7 @@ LRESULT SendDriverMessage(HDRVR16 hDriver, UINT16 msg, LPARAM lParam1, /************************************************************************** * OpenDriver [USER.252] */ -HDRVR16 OpenDriver(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam) +HDRVR16 WINAPI OpenDriver(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam) { HDRVR16 hDrvr; LPDRIVERITEM lpdrv, lpnewdrv; @@ -154,7 +154,7 @@ HDRVR16 OpenDriver(LPSTR lpDriverName, LPSTR lpSectionName, LPARAM lParam) /************************************************************************** * CloseDriver [USER.253] */ -LRESULT CloseDriver(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2) +LRESULT WINAPI CloseDriver(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2) { LPDRIVERITEM lpdrv; @@ -192,7 +192,7 @@ LRESULT CloseDriver(HDRVR16 hDrvr, LPARAM lParam1, LPARAM lParam2) /************************************************************************** * GetDriverModuleHandle [USER.254] */ -HMODULE16 GetDriverModuleHandle(HDRVR16 hDrvr) +HMODULE16 WINAPI GetDriverModuleHandle(HDRVR16 hDrvr) { LPDRIVERITEM lpdrv; HMODULE16 hModule = 0; @@ -211,8 +211,8 @@ HMODULE16 GetDriverModuleHandle(HDRVR16 hDrvr) /************************************************************************** * DefDriverProc [USER.255] */ -LRESULT DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, - LPARAM lParam1, LPARAM lParam2) +LRESULT WINAPI DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, + LPARAM lParam1, LPARAM lParam2) { switch(wMsg) { @@ -249,7 +249,7 @@ LRESULT DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, /************************************************************************** * GetDriverInfo [USER.256] */ -BOOL16 GetDriverInfo(HDRVR16 hDrvr, LPDRIVERINFOSTRUCT16 lpDrvInfo) +BOOL16 WINAPI GetDriverInfo(HDRVR16 hDrvr, LPDRIVERINFOSTRUCT16 lpDrvInfo) { LPDRIVERITEM lpdrv; @@ -268,7 +268,7 @@ BOOL16 GetDriverInfo(HDRVR16 hDrvr, LPDRIVERINFOSTRUCT16 lpDrvInfo) /************************************************************************** * GetNextDriver [USER.257] */ -HDRVR16 GetNextDriver(HDRVR16 hDrvr, DWORD dwFlags) +HDRVR16 WINAPI GetNextDriver(HDRVR16 hDrvr, DWORD dwFlags) { LPDRIVERITEM lpdrv; HDRVR16 hRetDrv = 0; diff --git a/windows/event.c b/windows/event.c index dc5c2385390..541bd46b4da 100644 --- a/windows/event.c +++ b/windows/event.c @@ -68,6 +68,12 @@ static Atom wmDeleteWindow = None; static Atom dndProtocol = None; static Atom dndSelection = None; +/* EVENT_WaitNetEvent() master fd sets */ + +static fd_set __event_io_set[3]; +static int __event_max_fd = 0; +static int __event_x_connection = 0; + static const char * const event_names[] = { "", "", "KeyPress", "KeyRelease", "ButtonPress", "ButtonRelease", @@ -102,6 +108,38 @@ static void EVENT_EnterNotify( WND *pWnd, XCrossingEvent *event ); extern void FOCUS_SetXFocus( HWND32 ); extern BOOL16 DRAG_QueryUpdate( HWND16, SEGPTR, BOOL32 ); +extern BOOL32 WINSOCK_HandleIO( int* max_fd, int num_pending, fd_set io_set[3] ); + +/*********************************************************************** + * EVENT_Init + * + * Initialize network IO. + */ +BOOL32 EVENT_Init(void) +{ + int i; + for( i = 0; i < 3; i++ ) + FD_ZERO( __event_io_set + i ); + + __event_max_fd = __event_x_connection = ConnectionNumber(display); + FD_SET( __event_x_connection, &__event_io_set[EVENT_IO_READ] ); + __event_max_fd++; + return TRUE; +} + +/*********************************************************************** + * EVENT_AddIO + */ +void EVENT_AddIO( int fd, int io_type ) +{ + FD_SET( fd, &__event_io_set[io_type] ); + if( __event_max_fd <= fd ) __event_max_fd = fd + 1; +} + +void EVENT_DeleteIO( int fd, int io_type ) +{ + FD_CLR( fd, &__event_io_set[io_type] ); +} /*********************************************************************** * EVENT_ProcessEvent @@ -253,13 +291,13 @@ void EVENT_DestroyWindow( WND *pWnd ) } /*********************************************************************** - * EVENT_WaitXEvent + * EVENT_WaitNetEvent * - * Wait for an X event, optionally sleeping until one arrives. + * Wait for a network event, optionally sleeping until one arrives. * Return TRUE if an event is pending, FALSE on timeout or error * (for instance lost connection with the server). */ -BOOL32 EVENT_WaitXEvent( BOOL32 sleep, BOOL32 peek ) +BOOL32 EVENT_WaitNetEvent( BOOL32 sleep, BOOL32 peek ) { XEvent event; LONG maxWait = sleep ? TIMER_GetNextExpiration() : 0; @@ -270,12 +308,11 @@ BOOL32 EVENT_WaitXEvent( BOOL32 sleep, BOOL32 peek ) if ((maxWait != -1) && !XPending(display)) { - fd_set read_set; + int num_pending; struct timeval timeout; - int fd = ConnectionNumber(display); - - FD_ZERO( &read_set ); - FD_SET( fd, &read_set ); + fd_set read_set = __event_io_set[EVENT_IO_READ]; + fd_set write_set = __event_io_set[EVENT_IO_WRITE]; + fd_set except_set = __event_io_set[EVENT_IO_EXCEPT]; timeout.tv_usec = (maxWait % 1000) * 1000; timeout.tv_sec = maxWait / 1000; @@ -291,8 +328,8 @@ BOOL32 EVENT_WaitXEvent( BOOL32 sleep, BOOL32 peek ) } stop_wait_op = STOP_WAIT_X; /* The code up to the next "stop_wait_op = CONT" must be reentrant */ - if (select( fd+1, &read_set, NULL, NULL, &timeout ) != 1 && - !XPending(display)) + num_pending = select( __event_max_fd, &read_set, NULL, NULL, &timeout ); + if ( num_pending == 0 ) { stop_wait_op = CONT; TIMER_ExpireTimers(); @@ -300,7 +337,9 @@ BOOL32 EVENT_WaitXEvent( BOOL32 sleep, BOOL32 peek ) } else stop_wait_op = CONT; #else /* CONFIG_IPC */ - if (select( fd+1, &read_set, NULL, NULL, &timeout ) != 1) + num_pending = select( __event_max_fd, + &read_set, &write_set, &except_set, &timeout ); + if ( num_pending == 0) { /* Timeout or error */ TIMER_ExpireTimers(); @@ -308,9 +347,19 @@ BOOL32 EVENT_WaitXEvent( BOOL32 sleep, BOOL32 peek ) } #endif /* CONFIG_IPC */ + /* Winsock asynchronous services */ + + if( FD_ISSET( __event_x_connection, &read_set) ) + { + num_pending--; + if( num_pending ) + WINSOCK_HandleIO( &__event_max_fd, num_pending, __event_io_set ); + } + else /* no X events */ + return WINSOCK_HandleIO( &__event_max_fd, num_pending, __event_io_set ); } - /* Process the event (and possibly others that occurred in the meantime) */ + /* Process current X event (and possibly others that occurred in the meantime) */ do { @@ -1050,7 +1099,7 @@ INT16 EVENT_GetCaptureInfo() /********************************************************************** * SetCapture16 (USER.18) */ -HWND16 SetCapture16( HWND16 hwnd ) +HWND16 WINAPI SetCapture16( HWND16 hwnd ) { return (HWND16)EVENT_Capture( hwnd, HTCLIENT ); } @@ -1059,7 +1108,7 @@ HWND16 SetCapture16( HWND16 hwnd ) /********************************************************************** * SetCapture32 (USER32.463) */ -HWND32 SetCapture32( HWND32 hwnd ) +HWND32 WINAPI SetCapture32( HWND32 hwnd ) { return EVENT_Capture( hwnd, HTCLIENT ); } @@ -1068,7 +1117,7 @@ HWND32 SetCapture32( HWND32 hwnd ) /********************************************************************** * ReleaseCapture (USER.19) (USER32.438) */ -void ReleaseCapture(void) +void WINAPI ReleaseCapture(void) { dprintf_win(stddeb, "ReleaseCapture() [%04x]\n", captureWnd ); if( captureWnd ) EVENT_Capture( 0, 0 ); @@ -1078,7 +1127,7 @@ void ReleaseCapture(void) /********************************************************************** * GetCapture16 (USER.236) */ -HWND16 GetCapture16(void) +HWND16 WINAPI GetCapture16(void) { return captureWnd; } @@ -1087,7 +1136,7 @@ HWND16 GetCapture16(void) /********************************************************************** * GetCapture32 (USER32.207) */ -HWND32 GetCapture32(void) +HWND32 WINAPI GetCapture32(void) { return captureWnd; } @@ -1096,7 +1145,7 @@ HWND32 GetCapture32(void) /*********************************************************************** * GetMouseEventProc (USER.337) */ -FARPROC16 GetMouseEventProc(void) +FARPROC16 WINAPI GetMouseEventProc(void) { HMODULE16 hmodule = GetModuleHandle16("USER"); return MODULE_GetEntryPoint( hmodule, @@ -1107,7 +1156,7 @@ FARPROC16 GetMouseEventProc(void) /*********************************************************************** * Mouse_Event (USER.299) */ -void Mouse_Event( CONTEXT *context ) +void WINAPI Mouse_Event( CONTEXT *context ) { /* Register values: * AX = mouse event @@ -1147,7 +1196,7 @@ void Mouse_Event( CONTEXT *context ) /********************************************************************** * EnableHardwareInput (USER.331) */ -BOOL16 EnableHardwareInput(BOOL16 bEnable) +BOOL16 WINAPI EnableHardwareInput(BOOL16 bEnable) { BOOL16 bOldState = InputEnabled; dprintf_event(stdnimp,"EnableHardwareInput(%d);\n", bEnable); @@ -1159,7 +1208,7 @@ BOOL16 EnableHardwareInput(BOOL16 bEnable) /*********************************************************************** * SwapMouseButton16 (USER.186) */ -BOOL16 SwapMouseButton16( BOOL16 fSwap ) +BOOL16 WINAPI SwapMouseButton16( BOOL16 fSwap ) { BOOL16 ret = SwappedButtons; SwappedButtons = fSwap; @@ -1170,7 +1219,7 @@ BOOL16 SwapMouseButton16( BOOL16 fSwap ) /*********************************************************************** * SwapMouseButton32 (USER32.536) */ -BOOL32 SwapMouseButton32( BOOL32 fSwap ) +BOOL32 WINAPI SwapMouseButton32( BOOL32 fSwap ) { BOOL32 ret = SwappedButtons; SwappedButtons = fSwap; diff --git a/windows/focus.c b/windows/focus.c index 3c28c8e3833..28aa8471ffe 100644 --- a/windows/focus.c +++ b/windows/focus.c @@ -81,7 +81,7 @@ void FOCUS_SwitchFocus( HWND32 hFocusFrom, HWND32 hFocusTo ) /***************************************************************** * SetFocus16 (USER.22) */ -HWND16 SetFocus16( HWND16 hwnd ) +HWND16 WINAPI SetFocus16( HWND16 hwnd ) { return (HWND16)SetFocus32( hwnd ); } @@ -90,7 +90,7 @@ HWND16 SetFocus16( HWND16 hwnd ) /***************************************************************** * SetFocus32 (USER32.480) */ -HWND32 SetFocus32( HWND32 hwnd ) +HWND32 WINAPI SetFocus32( HWND32 hwnd ) { HWND32 hWndPrevFocus, hwndTop = hwnd; WND *wndPtr = WIN_FindWndPtr( hwnd ); @@ -137,7 +137,7 @@ HWND32 SetFocus32( HWND32 hwnd ) /***************************************************************** * GetFocus16 (USER.23) */ -HWND16 GetFocus16(void) +HWND16 WINAPI GetFocus16(void) { return (HWND16)hwndFocus; } @@ -146,7 +146,7 @@ HWND16 GetFocus16(void) /***************************************************************** * GetFocus32 (USER32.239) */ -HWND32 GetFocus32(void) +HWND32 WINAPI GetFocus32(void) { return hwndFocus; } diff --git a/windows/graphics.c b/windows/graphics.c index a11404b1101..f924a8f6da8 100644 --- a/windows/graphics.c +++ b/windows/graphics.c @@ -108,8 +108,13 @@ BOOL32 GRAPH_DrawBitmap( HDC32 hdc, HBITMAP32 hbitmap, XCopyArea( display, bmp->pixmap, dc->u.x.drawable, dc->u.x.gc, xsrc, ysrc, width, height, xdest, ydest ); } - else return FALSE; + else + { + GDI_HEAP_UNLOCK( hbitmap ); + return FALSE; + } + GDI_HEAP_UNLOCK( hbitmap ); return TRUE; } @@ -234,6 +239,7 @@ BOOL32 GRAPH_SelectClipMask( HDC32 hdc, HBITMAP32 hMonoBitmap, INT32 x, INT32 y) XSetClipMask( display, dc->u.x.gc, (bmp) ? bmp->pixmap : None ); + GDI_HEAP_UNLOCK( hMonoBitmap ); return TRUE; } diff --git a/windows/hook.c b/windows/hook.c index 2b1333d989e..7166bad5d0a 100644 --- a/windows/hook.c +++ b/windows/hook.c @@ -1162,7 +1162,7 @@ void HOOK_FreeQueueHooks( HQUEUE16 hQueue ) /*********************************************************************** * SetWindowsHook16 (USER.121) */ -FARPROC16 SetWindowsHook16( INT16 id, HOOKPROC16 proc ) +FARPROC16 WINAPI SetWindowsHook16( INT16 id, HOOKPROC16 proc ) { HANDLE16 handle; HINSTANCE16 hInst = __winelib ? 0 : FarGetOwner( HIWORD(proc) ); @@ -1186,7 +1186,7 @@ FARPROC16 SetWindowsHook16( INT16 id, HOOKPROC16 proc ) * * FIXME: I don't know if this is correct */ -HHOOK SetWindowsHook32A( INT32 id, HOOKPROC32 proc ) +HHOOK WINAPI SetWindowsHook32A( INT32 id, HOOKPROC32 proc ) { HINSTANCE16 hInst = __winelib ? 0 : FarGetOwner( HIWORD(proc) ); @@ -1203,7 +1203,7 @@ HHOOK SetWindowsHook32A( INT32 id, HOOKPROC32 proc ) * * FIXME: I don't know if this is correct */ -HHOOK SetWindowsHook32W( INT32 id, HOOKPROC32 proc ) +HHOOK WINAPI SetWindowsHook32W( INT32 id, HOOKPROC32 proc ) { HINSTANCE16 hInst = __winelib ? 0 : FarGetOwner( HIWORD(proc) ); @@ -1218,8 +1218,8 @@ HHOOK SetWindowsHook32W( INT32 id, HOOKPROC32 proc ) /*********************************************************************** * SetWindowsHookEx16 (USER.291) */ -HHOOK SetWindowsHookEx16( INT16 id, HOOKPROC16 proc, HINSTANCE16 hInst, - HTASK16 hTask ) +HHOOK WINAPI SetWindowsHookEx16( INT16 id, HOOKPROC16 proc, HINSTANCE16 hInst, + HTASK16 hTask ) { HANDLE16 handle = HOOK_SetHook( id, proc, HOOK_WIN16, hInst, hTask ); return (handle) ? (HHOOK)MAKELONG( handle, HOOK_MAGIC ) : (HHOOK)NULL; @@ -1229,8 +1229,8 @@ HHOOK SetWindowsHookEx16( INT16 id, HOOKPROC16 proc, HINSTANCE16 hInst, /*********************************************************************** * SetWindowsHookEx32A (USER32.525) */ -HHOOK SetWindowsHookEx32A( INT32 id, HOOKPROC32 proc, HINSTANCE32 hInst, - DWORD dwThreadID ) +HHOOK WINAPI SetWindowsHookEx32A( INT32 id, HOOKPROC32 proc, HINSTANCE32 hInst, + DWORD dwThreadID ) { HANDLE16 handle; HTASK16 hTask; @@ -1248,8 +1248,8 @@ HHOOK SetWindowsHookEx32A( INT32 id, HOOKPROC32 proc, HINSTANCE32 hInst, /*********************************************************************** * SetWindowsHookEx32W (USER32.526) */ -HHOOK SetWindowsHookEx32W( INT32 id, HOOKPROC32 proc, HINSTANCE32 hInst, - DWORD dwThreadID ) +HHOOK WINAPI SetWindowsHookEx32W( INT32 id, HOOKPROC32 proc, HINSTANCE32 hInst, + DWORD dwThreadID ) { HANDLE16 handle; HTASK16 hTask; @@ -1267,7 +1267,7 @@ HHOOK SetWindowsHookEx32W( INT32 id, HOOKPROC32 proc, HINSTANCE32 hInst, /*********************************************************************** * UnhookWindowsHook16 (USER.234) */ -BOOL16 UnhookWindowsHook16( INT16 id, HOOKPROC16 proc ) +BOOL16 WINAPI UnhookWindowsHook16( INT16 id, HOOKPROC16 proc ) { HANDLE16 hook = HOOK_GetHook( id , GetTaskQueue(0) ); @@ -1287,7 +1287,7 @@ BOOL16 UnhookWindowsHook16( INT16 id, HOOKPROC16 proc ) /*********************************************************************** * UnhookWindowsHook32 (USER32.556) */ -BOOL32 UnhookWindowsHook32( INT32 id, HOOKPROC32 proc ) +BOOL32 WINAPI UnhookWindowsHook32( INT32 id, HOOKPROC32 proc ) { HANDLE16 hook = HOOK_GetHook( id , GetTaskQueue(0) ); @@ -1307,7 +1307,7 @@ BOOL32 UnhookWindowsHook32( INT32 id, HOOKPROC32 proc ) /*********************************************************************** * UnhookWindowHookEx16 (USER.292) */ -BOOL16 UnhookWindowsHookEx16( HHOOK hhook ) +BOOL16 WINAPI UnhookWindowsHookEx16( HHOOK hhook ) { if (HIWORD(hhook) != HOOK_MAGIC) return FALSE; /* Not a new format hook */ return HOOK_RemoveHook( LOWORD(hhook) ); @@ -1317,7 +1317,7 @@ BOOL16 UnhookWindowsHookEx16( HHOOK hhook ) /*********************************************************************** * UnhookWindowHookEx32 (USER32.557) */ -BOOL32 UnhookWindowsHookEx32( HHOOK hhook ) +BOOL32 WINAPI UnhookWindowsHookEx32( HHOOK hhook ) { return UnhookWindowsHookEx16( hhook ); } @@ -1329,8 +1329,8 @@ BOOL32 UnhookWindowsHookEx32( HHOOK hhook ) * I wouldn't have separated this into 16 and 32 bit versions, but I * need a way to figure out if I need to do a mapping or not. */ -LRESULT CallNextHookEx16( HHOOK hhook, INT16 code, WPARAM16 wParam, - LPARAM lParam ) +LRESULT WINAPI CallNextHookEx16( HHOOK hhook, INT16 code, WPARAM16 wParam, + LPARAM lParam ) { HANDLE16 next; @@ -1346,8 +1346,8 @@ LRESULT CallNextHookEx16( HHOOK hhook, INT16 code, WPARAM16 wParam, * * There aren't ANSI and UNICODE versions of this. */ -LRESULT CallNextHookEx32( HHOOK hhook, INT32 code, WPARAM32 wParam, - LPARAM lParam ) +LRESULT WINAPI CallNextHookEx32( HHOOK hhook, INT32 code, WPARAM32 wParam, + LPARAM lParam ) { HANDLE16 next; INT32 fromtype; /* figure out Ansi/Unicode */ @@ -1369,8 +1369,8 @@ LRESULT CallNextHookEx32( HHOOK hhook, INT32 code, WPARAM32 wParam, /*********************************************************************** * DefHookProc16 (USER.235) */ -LRESULT DefHookProc16( INT16 code, WPARAM16 wParam, LPARAM lParam, - HHOOK *hhook ) +LRESULT WINAPI DefHookProc16( INT16 code, WPARAM16 wParam, LPARAM lParam, + HHOOK *hhook ) { /* Note: the *hhook parameter is never used, since we rely on the * current hook value from the task queue to find the next hook. */ @@ -1384,7 +1384,7 @@ LRESULT DefHookProc16( INT16 code, WPARAM16 wParam, LPARAM lParam, /*********************************************************************** * CallMsgFilter16 (USER.123) */ -BOOL16 CallMsgFilter16( SEGPTR msg, INT16 code ) +BOOL16 WINAPI CallMsgFilter16( SEGPTR msg, INT16 code ) { if (GetSysModalWindow16()) return FALSE; if (HOOK_CallHooks16( WH_SYSMSGFILTER, code, 0, (LPARAM)msg )) return TRUE; @@ -1399,7 +1399,7 @@ BOOL16 CallMsgFilter16( SEGPTR msg, INT16 code ) * FIXME: There are ANSI and UNICODE versions of this, plus an unspecified * version, plus USER (the 16bit one) has a CallMsgFilter32 function. */ -BOOL32 CallMsgFilter32A( LPMSG32 msg, INT32 code ) +BOOL32 WINAPI CallMsgFilter32A( LPMSG32 msg, INT32 code ) { if (GetSysModalWindow16()) return FALSE; /* ??? */ if (HOOK_CallHooks32A( WH_SYSMSGFILTER, code, 0, (LPARAM)msg )) @@ -1411,10 +1411,11 @@ BOOL32 CallMsgFilter32A( LPMSG32 msg, INT32 code ) /*********************************************************************** * CallMsgFilter32W (USER32.15) */ -BOOL32 CallMsgFilter32W( LPMSG32 msg, INT32 code ) +BOOL32 WINAPI CallMsgFilter32W( LPMSG32 msg, INT32 code ) { if (GetSysModalWindow16()) return FALSE; /* ??? */ if (HOOK_CallHooks32W( WH_SYSMSGFILTER, code, 0, (LPARAM)msg )) return TRUE; return HOOK_CallHooks32W( WH_MSGFILTER, code, 0, (LPARAM)msg ); } + diff --git a/windows/keyboard.c b/windows/keyboard.c index c1965ca9f0a..be31d5913d6 100644 --- a/windows/keyboard.c +++ b/windows/keyboard.c @@ -108,7 +108,7 @@ static const int modifier_key[] = /* * Table for vkey to scancode translation - 5/29/97 chrisf@america.com */ -static BYTE vkey2scode[512] = { +static const BYTE vkey2scode[512] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0e,0x0f,0x00,0x00,0x00,0x1c,0x00,0x00, 0x2a,0x1d,0x38,0x00,0x3a,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, 0x39,0x49,0x51,0x4f,0x47,0x4b,0x48,0x4d, 0x50,0x00,0x00,0x00,0x00,0x52,0x53,0x00, @@ -482,7 +482,7 @@ void KEYBOARD_HandleEvent( XKeyEvent *event ) /********************************************************************** * GetKeyState [USER.106] */ -WORD GetKeyState16(INT16 vkey) +WORD WINAPI GetKeyState16(INT16 vkey) { return GetKeyState32(vkey); } @@ -493,7 +493,7 @@ WORD GetKeyState16(INT16 vkey) * keyboard-input message. This function retrieves the state of the key * at the time the input message was generated. (SDK 3.1 Vol 2. p 390) */ -WORD GetKeyState32(INT32 vkey) +WORD WINAPI GetKeyState32(INT32 vkey) { INT32 retval; @@ -524,7 +524,7 @@ WORD GetKeyState32(INT32 vkey) * keyboard-input message. This function retrieves the state of the keyboard * at the time the input message was generated. (SDK 3.1 Vol 2. p 387) */ -VOID GetKeyboardState(LPBYTE lpKeyState) +VOID WINAPI GetKeyboardState(LPBYTE lpKeyState) { dprintf_key(stddeb, "GetKeyboardState()\n"); if (lpKeyState != NULL) { @@ -538,7 +538,7 @@ VOID GetKeyboardState(LPBYTE lpKeyState) /********************************************************************** * SetKeyboardState [USER.223][USER32.483] */ -VOID SetKeyboardState(LPBYTE lpKeyState) +VOID WINAPI SetKeyboardState(LPBYTE lpKeyState) { dprintf_key(stddeb, "SetKeyboardState()\n"); if (lpKeyState != NULL) { @@ -562,7 +562,7 @@ VOID SetKeyboardState(LPBYTE lpKeyState) * mouse or key had been depressed since the last call to * GetAsyncKeyState. */ -WORD GetAsyncKeyState32(INT32 nKey) +WORD WINAPI GetAsyncKeyState32(INT32 nKey) { short retval; @@ -595,7 +595,7 @@ WORD GetAsyncKeyState32(INT32 nKey) /********************************************************************** * GetAsyncKeyState (USER.249) */ -WORD GetAsyncKeyState16(INT16 nKey) +WORD WINAPI GetAsyncKeyState16(INT16 nKey) { return GetAsyncKeyState32(nKey); } @@ -607,7 +607,7 @@ WORD GetAsyncKeyState16(INT16 nKey) * * FIXME: should send some WM_INITMENU or/and WM_INITMENUPOPUP -messages */ -INT32 TranslateAccelerator32(HWND32 hWnd, HACCEL32 hAccel, LPMSG32 msg) +INT32 WINAPI TranslateAccelerator32(HWND32 hWnd, HACCEL32 hAccel, LPMSG32 msg) { MSG16 msg16; @@ -615,7 +615,7 @@ INT32 TranslateAccelerator32(HWND32 hWnd, HACCEL32 hAccel, LPMSG32 msg) return TranslateAccelerator16(hWnd,hAccel,&msg16); } -INT16 TranslateAccelerator16(HWND16 hWnd, HACCEL16 hAccel, LPMSG16 msg) +INT16 WINAPI TranslateAccelerator16(HWND16 hWnd, HACCEL16 hAccel, LPMSG16 msg) { ACCELHEADER *lpAccelTbl; int i; @@ -755,7 +755,7 @@ msg->hwnd=%04x, msg->message=%04x\n", hAccel,hWnd,msg->hwnd,msg->message); /****************************************************************************** * OemKeyScan [KEYBOARD.128][USER32.400] */ -DWORD OemKeyScan(WORD wOemChar) +DWORD WINAPI OemKeyScan(WORD wOemChar) { dprintf_keyboard(stddeb,"*OemKeyScan (%d)\n",wOemChar); @@ -780,7 +780,7 @@ DWORD OemKeyScan(WORD wOemChar) * VkKeyScan '`'(0x60, 96) ... got keycode 00 ... returning 00 */ -WORD VkKeyScan32A(CHAR cChar) +WORD WINAPI VkKeyScan32A(CHAR cChar) { KeyCode keycode; KeySym keysym; @@ -827,7 +827,7 @@ WORD VkKeyScan32A(CHAR cChar) /****************************************************************************** * VkKeyScan [KEYBOARD.129] */ -WORD VkKeyScan16(CHAR cChar) +WORD WINAPI VkKeyScan16(CHAR cChar) { return VkKeyScan32A(cChar); } @@ -835,7 +835,7 @@ WORD VkKeyScan16(CHAR cChar) /****************************************************************************** * VkKeyScanW [USER32.575] */ -WORD VkKeyScan32W(WCHAR cChar) +WORD WINAPI VkKeyScan32W(WCHAR cChar) { return VkKeyScan32A((CHAR)cChar); /* FIXME: check unicode */ } @@ -843,7 +843,7 @@ WORD VkKeyScan32W(WCHAR cChar) /****************************************************************************** * GetKeyboardType [KEYBOARD.130] */ -INT16 GetKeyboardType16(INT16 nTypeFlag) +INT16 WINAPI GetKeyboardType16(INT16 nTypeFlag) { return GetKeyboardType32(nTypeFlag); } @@ -851,7 +851,7 @@ INT16 GetKeyboardType16(INT16 nTypeFlag) /****************************************************************************** * GetKeyboardType [USER32.254] */ -INT32 GetKeyboardType32(INT32 nTypeFlag) +INT32 WINAPI GetKeyboardType32(INT32 nTypeFlag) { dprintf_keyboard(stddeb,"GetKeyboardType(%d)\n",nTypeFlag); switch(nTypeFlag) @@ -875,22 +875,24 @@ INT32 GetKeyboardType32(INT32 nTypeFlag) /****************************************************************************** * MapVirtualKeyA [USER32.382] */ -UINT32 MapVirtualKey32A(UINT32 code, UINT32 maptype) { - return MapVirtualKey16(code,maptype); +UINT32 WINAPI MapVirtualKey32A(UINT32 code, UINT32 maptype) +{ + return MapVirtualKey16(code,maptype); } /****************************************************************************** * MapVirtualKeyA [USER32.384] */ -UINT32 MapVirtualKey32W(UINT32 code, UINT32 maptype) { - return MapVirtualKey16(code,maptype); +UINT32 WINAPI MapVirtualKey32W(UINT32 code, UINT32 maptype) +{ + return MapVirtualKey16(code,maptype); } /****************************************************************************** * MapVirtualKeyA [KEYBOARD.131] * MapVirtualKey translates keycodes from one format to another */ -UINT16 MapVirtualKey16(UINT16 wCode, UINT16 wMapType) +UINT16 WINAPI MapVirtualKey16(UINT16 wCode, UINT16 wMapType) { #define returnMVK(value) { dprintf_keyboard(stddeb,"returning 0x%x.\n",value); return value; } @@ -936,7 +938,7 @@ UINT16 MapVirtualKey16(UINT16 wCode, UINT16 wMapType) /**************************************************************************** * GetKBCodePage16 (KEYBOARD.132) */ -INT16 GetKBCodePage16(void) +INT16 WINAPI GetKBCodePage16(void) { dprintf_keyboard(stddeb,"GetKBCodePage()\n"); return 850; @@ -946,7 +948,7 @@ INT16 GetKBCodePage16(void) /**************************************************************************** * GetKBCodePage32 (USER32.245) */ -UINT32 GetKBCodePage32(void) +UINT32 WINAPI GetKBCodePage32(void) { dprintf_keyboard(stddeb,"GetKbCodePage()\n"); return 850; @@ -956,7 +958,7 @@ UINT32 GetKBCodePage32(void) /**************************************************************************** * GetKeyNameText32W (USER32.247) */ -INT32 GetKeyNameText32W(LONG lParam, LPWSTR lpBuffer, INT32 nSize) +INT32 WINAPI GetKeyNameText32W(LONG lParam, LPWSTR lpBuffer, INT32 nSize) { LPSTR buf = xmalloc(nSize); int res = GetKeyNameText32A(lParam,buf,nSize); @@ -969,7 +971,7 @@ INT32 GetKeyNameText32W(LONG lParam, LPWSTR lpBuffer, INT32 nSize) /**************************************************************************** * GetKeyNameText32A (USER32.246) */ -INT32 GetKeyNameText32A(LONG lParam, LPSTR lpBuffer, INT32 nSize) +INT32 WINAPI GetKeyNameText32A(LONG lParam, LPSTR lpBuffer, INT32 nSize) { return GetKeyNameText16(lParam,lpBuffer,nSize); } @@ -977,7 +979,7 @@ INT32 GetKeyNameText32A(LONG lParam, LPSTR lpBuffer, INT32 nSize) /**************************************************************************** * GetKeyNameText16 (KEYBOARD.133) */ -INT16 GetKeyNameText16(LONG lParam, LPSTR lpBuffer, INT16 nSize) +INT16 WINAPI GetKeyNameText16(LONG lParam, LPSTR lpBuffer, INT16 nSize) { /* int i; */ @@ -1002,8 +1004,8 @@ INT16 GetKeyNameText16(LONG lParam, LPSTR lpBuffer, INT16 nSize) /**************************************************************************** * ToAscii (KEYBOARD.4) */ -INT16 ToAscii16(UINT16 virtKey,UINT16 scanCode, LPBYTE lpKeyState, - LPVOID lpChar, UINT16 flags) +INT16 WINAPI ToAscii16(UINT16 virtKey,UINT16 scanCode, LPBYTE lpKeyState, + LPVOID lpChar, UINT16 flags) { return ToAscii32(virtKey,scanCode,lpKeyState,lpChar,flags); } @@ -1011,10 +1013,9 @@ INT16 ToAscii16(UINT16 virtKey,UINT16 scanCode, LPBYTE lpKeyState, /**************************************************************************** * ToAscii (USER32.545) */ -INT32 ToAscii32( - UINT32 virtKey,UINT32 scanCode,LPBYTE lpKeyState, - LPWORD lpChar,UINT32 flags -) { +INT32 WINAPI ToAscii32( UINT32 virtKey,UINT32 scanCode,LPBYTE lpKeyState, + LPWORD lpChar,UINT32 flags ) +{ XKeyEvent e; KeySym keysym; static XComposeStatus cs; @@ -1178,3 +1179,14 @@ INT32 ToAscii32( ret, *(char*)lpChar); return ret; } + + +/*********************************************************************** + * GetKeyboardLayout (USER32.249) + */ +/*HKL*/ HANDLE32 WINAPI GetKeyboardLayout(DWORD dwLayout) +{ + fprintf(stderr,"GetKeyboardLayout(%ld),STUB!\n",dwLayout); + return 0; +} + diff --git a/windows/mdi.c b/windows/mdi.c index 39c673ed2ce..fe881b96c66 100644 --- a/windows/mdi.c +++ b/windows/mdi.c @@ -615,23 +615,29 @@ static HBITMAP16 CreateMDIMenuBitmap(void) HDC32 hDCSrc = CreateCompatibleDC32(0); HDC32 hDCDest = CreateCompatibleDC32(hDCSrc); HBITMAP16 hbClose = LoadBitmap16(0, MAKEINTRESOURCE(OBM_CLOSE) ); - HBITMAP16 hbCopy,hb_src,hb_dest; + HBITMAP16 hbCopy; + HANDLE16 hobjSrc, hobjDest; - hb_src = SelectObject32(hDCSrc,hbClose); + hobjSrc = SelectObject32(hDCSrc, hbClose); hbCopy = CreateCompatibleBitmap32(hDCSrc,SYSMETRICS_CXSIZE,SYSMETRICS_CYSIZE); - hb_dest = SelectObject32(hDCDest,hbCopy); + hobjDest = SelectObject32(hDCDest, hbCopy); BitBlt32(hDCDest, 0, 0, SYSMETRICS_CXSIZE, SYSMETRICS_CYSIZE, hDCSrc, SYSMETRICS_CXSIZE, 0, SRCCOPY); - - SelectObject32(hDCSrc,hb_src); - SelectObject32(hDCDest,hb_dest); - + + SelectObject32(hDCSrc, hobjSrc); DeleteObject32(hbClose); - - DeleteDC32(hDCDest); DeleteDC32(hDCSrc); + hobjSrc = SelectObject32( hDCDest, GetStockObject32(BLACK_PEN) ); + + MoveToEx32( hDCDest, SYSMETRICS_CXSIZE - 1, 0, NULL ); + LineTo32( hDCDest, SYSMETRICS_CXSIZE - 1, SYSMETRICS_CYSIZE - 1); + + SelectObject32(hDCDest, hobjSrc ); + SelectObject32(hDCDest, hobjDest); + DeleteDC32(hDCDest); + return hbCopy; } @@ -897,7 +903,8 @@ static void MDI_UpdateFrameText( WND *frameWnd, HWND16 hClient, * * This function is the handler for all MDI requests. */ -LRESULT MDIClientWndProc(HWND16 hwnd, UINT16 message, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI MDIClientWndProc(HWND16 hwnd, UINT16 message, WPARAM16 wParam, + LPARAM lParam) { LPCREATESTRUCT16 cs; MDICLIENTINFO *ci; @@ -1090,8 +1097,8 @@ LRESULT MDIClientWndProc(HWND16 hwnd, UINT16 message, WPARAM16 wParam, LPARAM lP /*********************************************************************** * DefFrameProc16 (USER.445) */ -LRESULT DefFrameProc16( HWND16 hwnd, HWND16 hwndMDIClient, UINT16 message, - WPARAM16 wParam, LPARAM lParam ) +LRESULT WINAPI DefFrameProc16( HWND16 hwnd, HWND16 hwndMDIClient, + UINT16 message, WPARAM16 wParam, LPARAM lParam ) { HWND16 childHwnd; MDICLIENTINFO* ci; @@ -1188,8 +1195,8 @@ LRESULT DefFrameProc16( HWND16 hwnd, HWND16 hwndMDIClient, UINT16 message, /*********************************************************************** * DefFrameProc32A (USER32.121) */ -LRESULT DefFrameProc32A( HWND32 hwnd, HWND32 hwndMDIClient, UINT32 message, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI DefFrameProc32A( HWND32 hwnd, HWND32 hwndMDIClient, + UINT32 message, WPARAM32 wParam, LPARAM lParam) { if (hwndMDIClient) { @@ -1228,8 +1235,8 @@ LRESULT DefFrameProc32A( HWND32 hwnd, HWND32 hwndMDIClient, UINT32 message, /*********************************************************************** * DefFrameProc32W (USER32.122) */ -LRESULT DefFrameProc32W( HWND32 hwnd, HWND32 hwndMDIClient, UINT32 message, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI DefFrameProc32W( HWND32 hwnd, HWND32 hwndMDIClient, + UINT32 message, WPARAM32 wParam, LPARAM lParam) { if (hwndMDIClient) { @@ -1265,8 +1272,8 @@ LRESULT DefFrameProc32W( HWND32 hwnd, HWND32 hwndMDIClient, UINT32 message, /*********************************************************************** * DefMDIChildProc16 (USER.447) */ -LRESULT DefMDIChildProc16( HWND16 hwnd, UINT16 message, - WPARAM16 wParam, LPARAM lParam ) +LRESULT WINAPI DefMDIChildProc16( HWND16 hwnd, UINT16 message, + WPARAM16 wParam, LPARAM lParam ) { MDICLIENTINFO *ci; WND *clientWnd; @@ -1411,8 +1418,8 @@ LRESULT DefMDIChildProc16( HWND16 hwnd, UINT16 message, /*********************************************************************** * DefMDIChildProc32A (USER32.123) */ -LRESULT DefMDIChildProc32A( HWND32 hwnd, UINT32 message, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI DefMDIChildProc32A( HWND32 hwnd, UINT32 message, + WPARAM32 wParam, LPARAM lParam ) { MDICLIENTINFO *ci; WND *clientWnd; @@ -1463,8 +1470,8 @@ LRESULT DefMDIChildProc32A( HWND32 hwnd, UINT32 message, /*********************************************************************** * DefMDIChildProc32W (USER32.124) */ -LRESULT DefMDIChildProc32W( HWND32 hwnd, UINT32 message, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI DefMDIChildProc32W( HWND32 hwnd, UINT32 message, + WPARAM32 wParam, LPARAM lParam ) { MDICLIENTINFO *ci; WND *clientWnd; @@ -1509,7 +1516,7 @@ LRESULT DefMDIChildProc32W( HWND32 hwnd, UINT32 message, /********************************************************************** * TranslateMDISysAccel32 (USER32.554) */ -BOOL32 TranslateMDISysAccel32( HWND32 hwndClient, LPMSG32 msg ) +BOOL32 WINAPI TranslateMDISysAccel32( HWND32 hwndClient, LPMSG32 msg ) { MSG16 msg16; @@ -1522,7 +1529,7 @@ BOOL32 TranslateMDISysAccel32( HWND32 hwndClient, LPMSG32 msg ) /********************************************************************** * TranslateMDISysAccel16 (USER.451) */ -BOOL16 TranslateMDISysAccel16( HWND16 hwndClient, LPMSG16 msg ) +BOOL16 WINAPI TranslateMDISysAccel16( HWND16 hwndClient, LPMSG16 msg ) { WND* clientWnd = WIN_FindWndPtr( hwndClient); @@ -1570,7 +1577,7 @@ BOOL16 TranslateMDISysAccel16( HWND16 hwndClient, LPMSG16 msg ) /*********************************************************************** * CalcChildScroll (USER.462) */ -void CalcChildScroll( HWND16 hwnd, WORD scroll ) +void WINAPI CalcChildScroll( HWND16 hwnd, WORD scroll ) { RECT32 childRect, clientRect; INT32 vmin, vmax, hmin, hmax, vpos, hpos; @@ -1620,7 +1627,7 @@ void CalcChildScroll( HWND16 hwnd, WORD scroll ) /*********************************************************************** * ScrollChildren16 (USER.463) */ -void ScrollChildren16(HWND16 hWnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam) +void WINAPI ScrollChildren16(HWND16 hWnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam) { return ScrollChildren32( hWnd, uMsg, wParam, lParam ); } @@ -1629,7 +1636,8 @@ void ScrollChildren16(HWND16 hWnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam) /*********************************************************************** * ScrollChildren32 (USER32.447) */ -void ScrollChildren32(HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, LPARAM lParam) +void WINAPI ScrollChildren32(HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, + LPARAM lParam) { WND *wndPtr = WIN_FindWndPtr(hWnd); INT32 newPos = -1; @@ -1694,8 +1702,10 @@ void ScrollChildren32(HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, LPARAM lParam) SetScrollPos32(hWnd, (uMsg == WM_VSCROLL)?SB_VERT:SB_HORZ , newPos, TRUE); if( uMsg == WM_VSCROLL ) - ScrollWindow32(hWnd ,0 ,curPos - newPos, NULL, NULL); + ScrollWindowEx32(hWnd ,0 ,curPos - newPos, NULL, NULL, 0, NULL, + SW_INVALIDATE | SW_ERASE | SW_SCROLLCHILDREN ); else - ScrollWindow32(hWnd ,curPos - newPos, 0, NULL, NULL); + ScrollWindowEx32(hWnd ,curPos - newPos, 0, NULL, NULL, 0, NULL, + SW_INVALIDATE | SW_ERASE | SW_SCROLLCHILDREN ); } diff --git a/windows/message.c b/windows/message.c index 6bd4f4dd3c2..6d4aa846824 100644 --- a/windows/message.c +++ b/windows/message.c @@ -419,7 +419,7 @@ static BOOL32 MSG_PeekHardwareMsg( MSG16 *msg, HWND16 hwnd, DWORD filter, /* If the queue is empty, attempt to fill it */ if (!sysMsgQueue->msgCount && XPending(display)) - EVENT_WaitXEvent( FALSE, FALSE ); + EVENT_WaitNetEvent( FALSE, FALSE ); for (i = kbd_msg = 0; i < sysMsgQueue->msgCount; i++, pos++) { @@ -515,7 +515,7 @@ static BOOL32 MSG_PeekHardwareMsg( MSG16 *msg, HWND16 hwnd, DWORD filter, /********************************************************************** * SetDoubleClickTime16 (USER.20) */ -void SetDoubleClickTime16( UINT16 interval ) +void WINAPI SetDoubleClickTime16( UINT16 interval ) { SetDoubleClickTime32( interval ); } @@ -524,7 +524,7 @@ void SetDoubleClickTime16( UINT16 interval ) /********************************************************************** * SetDoubleClickTime32 (USER32.479) */ -BOOL32 SetDoubleClickTime32( UINT32 interval ) +BOOL32 WINAPI SetDoubleClickTime32( UINT32 interval ) { doubleClickSpeed = interval ? interval : 500; return TRUE; @@ -534,7 +534,7 @@ BOOL32 SetDoubleClickTime32( UINT32 interval ) /********************************************************************** * GetDoubleClickTime16 (USER.21) */ -UINT16 GetDoubleClickTime16(void) +UINT16 WINAPI GetDoubleClickTime16(void) { return doubleClickSpeed; } @@ -543,7 +543,7 @@ UINT16 GetDoubleClickTime16(void) /********************************************************************** * GetDoubleClickTime32 (USER32.238) */ -UINT32 GetDoubleClickTime32(void) +UINT32 WINAPI GetDoubleClickTime32(void) { return doubleClickSpeed; } @@ -632,7 +632,7 @@ static LRESULT MSG_SendMessage( HQUEUE16 hDestQueue, HWND16 hwnd, UINT16 msg, /*********************************************************************** * ReplyMessage16 (USER.115) */ -void ReplyMessage16( LRESULT result ) +void WINAPI ReplyMessage16( LRESULT result ) { MESSAGEQUEUE *senderQ; MESSAGEQUEUE *queue; @@ -892,8 +892,8 @@ BOOL32 MSG_InternalGetMessage( MSG16 *msg, HWND32 hwnd, HWND32 hwndOwner, /*********************************************************************** * PeekMessage16 (USER.109) */ -BOOL16 PeekMessage16( LPMSG16 msg, HWND16 hwnd, UINT16 first, - UINT16 last, UINT16 flags ) +BOOL16 WINAPI PeekMessage16( LPMSG16 msg, HWND16 hwnd, UINT16 first, + UINT16 last, UINT16 flags ) { return MSG_PeekMessage( msg, hwnd, first, last, flags, TRUE ); } @@ -902,7 +902,7 @@ BOOL16 PeekMessage16( LPMSG16 msg, HWND16 hwnd, UINT16 first, /*********************************************************************** * GetMessage16 (USER.108) */ -BOOL16 GetMessage16( SEGPTR msg, HWND16 hwnd, UINT16 first, UINT16 last ) +BOOL16 WINAPI GetMessage16( SEGPTR msg, HWND16 hwnd, UINT16 first, UINT16 last) { MSG16 *lpmsg = (MSG16 *)PTR_SEG_TO_LIN(msg); MSG_PeekMessage( lpmsg, @@ -918,8 +918,8 @@ BOOL16 GetMessage16( SEGPTR msg, HWND16 hwnd, UINT16 first, UINT16 last ) /*********************************************************************** * PostMessage16 (USER.110) */ -BOOL16 PostMessage16( HWND16 hwnd, UINT16 message, WPARAM16 wParam, - LPARAM lParam ) +BOOL16 WINAPI PostMessage16( HWND16 hwnd, UINT16 message, WPARAM16 wParam, + LPARAM lParam ) { MSG16 msg; WND *wndPtr; @@ -963,8 +963,8 @@ BOOL16 PostMessage16( HWND16 hwnd, UINT16 message, WPARAM16 wParam, /*********************************************************************** * PostMessage32A (USER32.418) */ -BOOL32 PostMessage32A( HWND32 hwnd, UINT32 message, WPARAM32 wParam, - LPARAM lParam ) +BOOL32 WINAPI PostMessage32A( HWND32 hwnd, UINT32 message, WPARAM32 wParam, + LPARAM lParam ) { /* FIXME */ return PostMessage16( hwnd, message, wParam, lParam ); @@ -974,8 +974,8 @@ BOOL32 PostMessage32A( HWND32 hwnd, UINT32 message, WPARAM32 wParam, /*********************************************************************** * PostMessage32W (USER32.419) */ -BOOL32 PostMessage32W( HWND32 hwnd, UINT32 message, WPARAM32 wParam, - LPARAM lParam ) +BOOL32 WINAPI PostMessage32W( HWND32 hwnd, UINT32 message, WPARAM32 wParam, + LPARAM lParam ) { /* FIXME */ return PostMessage16( hwnd, message, wParam, lParam ); @@ -985,8 +985,8 @@ BOOL32 PostMessage32W( HWND32 hwnd, UINT32 message, WPARAM32 wParam, /*********************************************************************** * PostAppMessage16 (USER.116) */ -BOOL16 PostAppMessage16( HTASK16 hTask, UINT16 message, WPARAM16 wParam, - LPARAM lParam ) +BOOL16 WINAPI PostAppMessage16( HTASK16 hTask, UINT16 message, WPARAM16 wParam, + LPARAM lParam ) { MSG16 msg; @@ -1006,7 +1006,8 @@ BOOL16 PostAppMessage16( HTASK16 hTask, UINT16 message, WPARAM16 wParam, /*********************************************************************** * SendMessage16 (USER.111) */ -LRESULT SendMessage16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, LPARAM lParam) +LRESULT WINAPI SendMessage16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam, + LPARAM lParam) { WND * wndPtr; WND **list, **ppWnd; @@ -1103,7 +1104,8 @@ static void MSG_CallWndProcHook32( LPMSG32 pmsg, BOOL32 bUnicode ) /*********************************************************************** * SendMessage32A (USER32.453) */ -LRESULT SendMessage32A(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI SendMessage32A( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, + LPARAM lParam ) { WND * wndPtr; WND **list, **ppWnd; @@ -1153,7 +1155,8 @@ LRESULT SendMessage32A(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) /*********************************************************************** * SendMessage32W (USER32.458) */ -LRESULT SendMessage32W(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) +LRESULT WINAPI SendMessage32W( HWND32 hwnd, UINT32 msg, WPARAM32 wParam, + LPARAM lParam ) { WND * wndPtr; WND **list, **ppWnd; @@ -1202,7 +1205,7 @@ LRESULT SendMessage32W(HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam) /*********************************************************************** * WaitMessage (USER.112) (USER32.577) */ -void WaitMessage( void ) +void WINAPI WaitMessage( void ) { QUEUE_WaitBits( QS_ALLINPUT ); } @@ -1402,7 +1405,7 @@ static BOOL32 MSG_DoTranslateMessage( UINT32 message, HWND32 hwnd, /*********************************************************************** * TranslateMessage16 (USER.113) */ -BOOL16 TranslateMessage16( const MSG16 *msg ) +BOOL16 WINAPI TranslateMessage16( const MSG16 *msg ) { return MSG_DoTranslateMessage( msg->message, msg->hwnd, msg->wParam, msg->lParam ); @@ -1412,7 +1415,7 @@ BOOL16 TranslateMessage16( const MSG16 *msg ) /*********************************************************************** * TranslateMessage32 (USER32.555) */ -BOOL32 TranslateMessage32( const MSG32 *msg ) +BOOL32 WINAPI TranslateMessage32( const MSG32 *msg ) { return MSG_DoTranslateMessage( msg->message, msg->hwnd, msg->wParam, msg->lParam ); @@ -1422,7 +1425,7 @@ BOOL32 TranslateMessage32( const MSG32 *msg ) /*********************************************************************** * DispatchMessage16 (USER.114) */ -LONG DispatchMessage16( const MSG16* msg ) +LONG WINAPI DispatchMessage16( const MSG16* msg ) { WND * wndPtr; LONG retval; @@ -1467,7 +1470,7 @@ LONG DispatchMessage16( const MSG16* msg ) /*********************************************************************** * DispatchMessage32A (USER32.140) */ -LONG DispatchMessage32A( const MSG32* msg ) +LONG WINAPI DispatchMessage32A( const MSG32* msg ) { WND * wndPtr; LONG retval; @@ -1514,7 +1517,7 @@ LONG DispatchMessage32A( const MSG32* msg ) /*********************************************************************** * DispatchMessage32W (USER32.141) */ -LONG DispatchMessage32W( const MSG32* msg ) +LONG WINAPI DispatchMessage32W( const MSG32* msg ) { WND * wndPtr; LONG retval; @@ -1561,7 +1564,7 @@ LONG DispatchMessage32W( const MSG32* msg ) /*********************************************************************** * RegisterWindowMessage16 (USER.118) */ -WORD RegisterWindowMessage16( SEGPTR str ) +WORD WINAPI RegisterWindowMessage16( SEGPTR str ) { dprintf_msg(stddeb, "RegisterWindowMessage16: %08lx\n", (DWORD)str ); return GlobalAddAtom16( str ); @@ -1571,7 +1574,7 @@ WORD RegisterWindowMessage16( SEGPTR str ) /*********************************************************************** * RegisterWindowMessage32A (USER32.436) */ -WORD RegisterWindowMessage32A( LPCSTR str ) +WORD WINAPI RegisterWindowMessage32A( LPCSTR str ) { dprintf_msg(stddeb, "RegisterWindowMessage32A: %s\n", str ); return GlobalAddAtom32A( str ); @@ -1581,7 +1584,7 @@ WORD RegisterWindowMessage32A( LPCSTR str ) /*********************************************************************** * RegisterWindowMessage32W (USER32.437) */ -WORD RegisterWindowMessage32W( LPCWSTR str ) +WORD WINAPI RegisterWindowMessage32W( LPCWSTR str ) { dprintf_msg(stddeb, "RegisterWindowMessage32W: %p\n", str ); return GlobalAddAtom32W( str ); @@ -1591,7 +1594,7 @@ WORD RegisterWindowMessage32W( LPCWSTR str ) /*********************************************************************** * GetTickCount (USER.13) (KERNEL32.299) */ -DWORD GetTickCount(void) +DWORD WINAPI GetTickCount(void) { struct timeval t; gettimeofday( &t, NULL ); @@ -1604,7 +1607,7 @@ DWORD GetTickCount(void) * * (effectively identical to GetTickCount) */ -DWORD GetCurrentTime16(void) +DWORD WINAPI GetCurrentTime16(void) { return GetTickCount(); } @@ -1613,7 +1616,7 @@ DWORD GetCurrentTime16(void) /*********************************************************************** * InSendMessage16 (USER.192) */ -BOOL16 InSendMessage16(void) +BOOL16 WINAPI InSendMessage16(void) { return InSendMessage32(); } @@ -1622,7 +1625,7 @@ BOOL16 InSendMessage16(void) /*********************************************************************** * InSendMessage32 (USER32.319) */ -BOOL32 InSendMessage32(void) +BOOL32 WINAPI InSendMessage32(void) { MESSAGEQUEUE *queue; diff --git a/windows/msgbox.c b/windows/msgbox.c index 27a9793de50..a2cb5bea708 100644 --- a/windows/msgbox.c +++ b/windows/msgbox.c @@ -26,8 +26,8 @@ typedef struct * * Dialog procedure for message boxes. */ -static LRESULT MSGBOX_DlgProc( HWND32 hwnd, UINT32 message, - WPARAM32 wParam, LPARAM lParam ) +static LRESULT CALLBACK MSGBOX_DlgProc( HWND32 hwnd, UINT32 message, + WPARAM32 wParam, LPARAM lParam ) { LPMSGBOX lpmb; RECT32 rect, textrect; @@ -184,7 +184,7 @@ static LRESULT MSGBOX_DlgProc( HWND32 hwnd, UINT32 message, /************************************************************************** * MessageBox16 (USER.1) */ -INT16 MessageBox16( HWND16 hwnd, LPCSTR text, LPCSTR title, UINT16 type ) +INT16 WINAPI MessageBox16( HWND16 hwnd, LPCSTR text, LPCSTR title, UINT16 type) { return MessageBox32A( hwnd, text, title, type ); } @@ -193,7 +193,7 @@ INT16 MessageBox16( HWND16 hwnd, LPCSTR text, LPCSTR title, UINT16 type ) /************************************************************************** * MessageBox32A (USER32.390) */ -INT32 MessageBox32A( HWND32 hWnd, LPCSTR text, LPCSTR title, UINT32 type ) +INT32 WINAPI MessageBox32A(HWND32 hWnd, LPCSTR text, LPCSTR title, UINT32 type) { MSGBOX mbox; @@ -211,7 +211,8 @@ INT32 MessageBox32A( HWND32 hWnd, LPCSTR text, LPCSTR title, UINT32 type ) /************************************************************************** * MessageBox32W (USER32.395) */ -INT32 MessageBox32W( HWND32 hwnd, LPCWSTR text, LPCWSTR title, UINT32 type ) +INT32 WINAPI MessageBox32W( HWND32 hwnd, LPCWSTR text, LPCWSTR title, + UINT32 type ) { LPSTR titleA = HEAP_strdupWtoA( GetProcessHeap(), 0, title ); LPSTR textA = HEAP_strdupWtoA( GetProcessHeap(), 0, text ); @@ -225,8 +226,9 @@ INT32 MessageBox32W( HWND32 hwnd, LPCWSTR text, LPCWSTR title, UINT32 type ) /************************************************************************** * MessageBoxEx32A (USER32.391) */ -INT32 -MessageBoxEx32A(HWND32 hWnd,LPCSTR text,LPCSTR title,UINT32 type,WORD langid) { +INT32 WINAPI MessageBoxEx32A( HWND32 hWnd, LPCSTR text, LPCSTR title, + UINT32 type, WORD langid ) +{ /* ignore language id for now */ return MessageBox32A(hWnd,text,title,type); } @@ -234,8 +236,8 @@ MessageBoxEx32A(HWND32 hWnd,LPCSTR text,LPCSTR title,UINT32 type,WORD langid) { /************************************************************************** * MessageBoxEx32W (USER32.392) */ -INT32 -MessageBoxEx32W(HWND32 hWnd,LPCWSTR text,LPCWSTR title,UINT32 type,WORD langid) +INT32 WINAPI MessageBoxEx32W( HWND32 hWnd, LPCWSTR text, LPCWSTR title, + UINT32 type, WORD langid ) { /* ignore language id for now */ return MessageBox32W(hWnd,text,title,type); @@ -245,7 +247,7 @@ MessageBoxEx32W(HWND32 hWnd,LPCWSTR text,LPCWSTR title,UINT32 type,WORD langid) /************************************************************************** * FatalAppExit16 (KERNEL.137) */ -void FatalAppExit16( UINT16 action, LPCSTR str ) +void WINAPI FatalAppExit16( UINT16 action, LPCSTR str ) { FatalAppExit32A( action, str ); } @@ -254,7 +256,7 @@ void FatalAppExit16( UINT16 action, LPCSTR str ) /************************************************************************** * FatalAppExit32A (KERNEL32.108) */ -void FatalAppExit32A( UINT32 action, LPCSTR str ) +void WINAPI FatalAppExit32A( UINT32 action, LPCSTR str ) { MessageBox32A( 0, str, NULL, MB_SYSTEMMODAL | MB_OK ); TASK_KillCurrentTask(0); @@ -264,7 +266,7 @@ void FatalAppExit32A( UINT32 action, LPCSTR str ) /************************************************************************** * FatalAppExit32W (KERNEL32.109) */ -void FatalAppExit32W( UINT32 action, LPCWSTR str ) +void WINAPI FatalAppExit32W( UINT32 action, LPCWSTR str ) { MessageBox32W( 0, str, NULL, MB_SYSTEMMODAL | MB_OK ); TASK_KillCurrentTask(0); diff --git a/windows/nonclient.c b/windows/nonclient.c index b1ef586f2a9..03f60917312 100644 --- a/windows/nonclient.c +++ b/windows/nonclient.c @@ -164,7 +164,7 @@ static void NC_AdjustRect95( LPRECT16 rect, DWORD style, BOOL32 menu, /*********************************************************************** * AdjustWindowRect16 (USER.102) */ -BOOL16 AdjustWindowRect16( LPRECT16 rect, DWORD style, BOOL16 menu ) +BOOL16 WINAPI AdjustWindowRect16( LPRECT16 rect, DWORD style, BOOL16 menu ) { return AdjustWindowRectEx16( rect, style, menu, 0 ); } @@ -173,7 +173,7 @@ BOOL16 AdjustWindowRect16( LPRECT16 rect, DWORD style, BOOL16 menu ) /*********************************************************************** * AdjustWindowRect32 (USER32.) */ -BOOL32 AdjustWindowRect32( LPRECT32 rect, DWORD style, BOOL32 menu ) +BOOL32 WINAPI AdjustWindowRect32( LPRECT32 rect, DWORD style, BOOL32 menu ) { return AdjustWindowRectEx32( rect, style, menu, 0 ); } @@ -182,8 +182,8 @@ BOOL32 AdjustWindowRect32( LPRECT32 rect, DWORD style, BOOL32 menu ) /*********************************************************************** * AdjustWindowRectEx16 (USER.454) */ -BOOL16 AdjustWindowRectEx16( LPRECT16 rect, DWORD style, - BOOL16 menu, DWORD exStyle ) +BOOL16 WINAPI AdjustWindowRectEx16( LPRECT16 rect, DWORD style, + BOOL16 menu, DWORD exStyle ) { /* Correct the window style */ @@ -209,8 +209,8 @@ BOOL16 AdjustWindowRectEx16( LPRECT16 rect, DWORD style, /*********************************************************************** * AdjustWindowRectEx32 (USER32.) */ -BOOL32 AdjustWindowRectEx32( LPRECT32 rect, DWORD style, - BOOL32 menu, DWORD exStyle ) +BOOL32 WINAPI AdjustWindowRectEx32( LPRECT32 rect, DWORD style, + BOOL32 menu, DWORD exStyle ) { RECT16 rect16; BOOL32 ret; diff --git a/windows/painting.c b/windows/painting.c index 48f0d513c2f..77a37480ca5 100644 --- a/windows/painting.c +++ b/windows/painting.c @@ -92,7 +92,7 @@ void WIN_UpdateNCArea(WND* wnd, BOOL32 bUpdate) /*********************************************************************** * BeginPaint16 (USER.39) */ -HDC16 BeginPaint16( HWND16 hwnd, LPPAINTSTRUCT16 lps ) +HDC16 WINAPI BeginPaint16( HWND16 hwnd, LPPAINTSTRUCT16 lps ) { BOOL32 bIcon; HRGN32 hrgnUpdate; @@ -156,7 +156,7 @@ HDC16 BeginPaint16( HWND16 hwnd, LPPAINTSTRUCT16 lps ) /*********************************************************************** * BeginPaint32 (USER32.9) */ -HDC32 BeginPaint32( HWND32 hwnd, PAINTSTRUCT32 *lps ) +HDC32 WINAPI BeginPaint32( HWND32 hwnd, PAINTSTRUCT32 *lps ) { PAINTSTRUCT16 ps; @@ -176,7 +176,7 @@ HDC32 BeginPaint32( HWND32 hwnd, PAINTSTRUCT32 *lps ) /*********************************************************************** * EndPaint16 (USER.40) */ -BOOL16 EndPaint16( HWND16 hwnd, const PAINTSTRUCT16* lps ) +BOOL16 WINAPI EndPaint16( HWND16 hwnd, const PAINTSTRUCT16* lps ) { ReleaseDC16( hwnd, lps->hdc ); ShowCaret32( hwnd ); @@ -187,7 +187,7 @@ BOOL16 EndPaint16( HWND16 hwnd, const PAINTSTRUCT16* lps ) /*********************************************************************** * EndPaint32 (USER32.175) */ -BOOL32 EndPaint32( HWND32 hwnd, const PAINTSTRUCT32 *lps ) +BOOL32 WINAPI EndPaint32( HWND32 hwnd, const PAINTSTRUCT32 *lps ) { ReleaseDC32( hwnd, lps->hdc ); ShowCaret32( hwnd ); @@ -198,7 +198,7 @@ BOOL32 EndPaint32( HWND32 hwnd, const PAINTSTRUCT32 *lps ) /*********************************************************************** * FillWindow (USER.324) */ -void FillWindow( HWND16 hwndParent, HWND16 hwnd, HDC16 hdc, HBRUSH16 hbrush ) +void WINAPI FillWindow( HWND16 hwndParent, HWND16 hwnd, HDC16 hdc, HBRUSH16 hbrush ) { RECT16 rect; GetClientRect16( hwnd, &rect ); @@ -210,8 +210,8 @@ void FillWindow( HWND16 hwndParent, HWND16 hwnd, HDC16 hdc, HBRUSH16 hbrush ) /*********************************************************************** * PaintRect (USER.325) */ -void PaintRect( HWND16 hwndParent, HWND16 hwnd, HDC16 hdc, - HBRUSH16 hbrush, const RECT16 *rect) +void WINAPI PaintRect( HWND16 hwndParent, HWND16 hwnd, HDC16 hdc, + HBRUSH16 hbrush, const RECT16 *rect) { /* Send WM_CTLCOLOR message if needed */ @@ -229,7 +229,7 @@ void PaintRect( HWND16 hwndParent, HWND16 hwnd, HDC16 hdc, /*********************************************************************** * GetControlBrush (USER.326) */ -HBRUSH16 GetControlBrush( HWND16 hwnd, HDC16 hdc, UINT16 control ) +HBRUSH16 WINAPI GetControlBrush( HWND16 hwnd, HDC16 hdc, UINT16 control ) { return (HBRUSH16)SendMessage32A( GetParent32(hwnd), WM_CTLCOLOR+control, (WPARAM32)hdc, (LPARAM)hwnd ); @@ -462,8 +462,8 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate, /*********************************************************************** * RedrawWindow32 (USER32.425) */ -BOOL32 RedrawWindow32( HWND32 hwnd, const RECT32 *rectUpdate, - HRGN32 hrgnUpdate, UINT32 flags ) +BOOL32 WINAPI RedrawWindow32( HWND32 hwnd, const RECT32 *rectUpdate, + HRGN32 hrgnUpdate, UINT32 flags ) { return PAINT_RedrawWindow( hwnd, rectUpdate, hrgnUpdate, flags, 0 ); } @@ -472,8 +472,8 @@ BOOL32 RedrawWindow32( HWND32 hwnd, const RECT32 *rectUpdate, /*********************************************************************** * RedrawWindow16 (USER.290) */ -BOOL16 RedrawWindow16( HWND16 hwnd, const RECT16 *rectUpdate, - HRGN16 hrgnUpdate, UINT16 flags ) +BOOL16 WINAPI RedrawWindow16( HWND16 hwnd, const RECT16 *rectUpdate, + HRGN16 hrgnUpdate, UINT16 flags ) { if (rectUpdate) { @@ -489,7 +489,7 @@ BOOL16 RedrawWindow16( HWND16 hwnd, const RECT16 *rectUpdate, /*********************************************************************** * UpdateWindow16 (USER.124) */ -void UpdateWindow16( HWND16 hwnd ) +void WINAPI UpdateWindow16( HWND16 hwnd ) { PAINT_RedrawWindow( hwnd, NULL, 0, RDW_UPDATENOW | RDW_NOCHILDREN, 0 ); } @@ -497,7 +497,7 @@ void UpdateWindow16( HWND16 hwnd ) /*********************************************************************** * UpdateWindow32 (USER32.566) */ -void UpdateWindow32( HWND32 hwnd ) +void WINAPI UpdateWindow32( HWND32 hwnd ) { PAINT_RedrawWindow( hwnd, NULL, 0, RDW_UPDATENOW | RDW_NOCHILDREN, 0 ); } @@ -505,7 +505,7 @@ void UpdateWindow32( HWND32 hwnd ) /*********************************************************************** * InvalidateRgn16 (USER.126) */ -void InvalidateRgn16( HWND16 hwnd, HRGN16 hrgn, BOOL16 erase ) +void WINAPI InvalidateRgn16( HWND16 hwnd, HRGN16 hrgn, BOOL16 erase ) { PAINT_RedrawWindow((HWND32)hwnd, NULL, (HRGN32)hrgn, RDW_INVALIDATE | (erase ? RDW_ERASE : 0), 0 ); @@ -515,7 +515,7 @@ void InvalidateRgn16( HWND16 hwnd, HRGN16 hrgn, BOOL16 erase ) /*********************************************************************** * InvalidateRgn32 (USER32.328) */ -void InvalidateRgn32( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase ) +void WINAPI InvalidateRgn32( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase ) { PAINT_RedrawWindow(hwnd, NULL, hrgn, RDW_INVALIDATE | (erase ? RDW_ERASE : 0), 0 ); } @@ -524,7 +524,7 @@ void InvalidateRgn32( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase ) /*********************************************************************** * InvalidateRect16 (USER.125) */ -void InvalidateRect16( HWND16 hwnd, const RECT16 *rect, BOOL16 erase ) +void WINAPI InvalidateRect16( HWND16 hwnd, const RECT16 *rect, BOOL16 erase ) { RedrawWindow16( hwnd, rect, 0, RDW_INVALIDATE | (erase ? RDW_ERASE : 0) ); } @@ -533,7 +533,7 @@ void InvalidateRect16( HWND16 hwnd, const RECT16 *rect, BOOL16 erase ) /*********************************************************************** * InvalidateRect32 (USER32.327) */ -void InvalidateRect32( HWND32 hwnd, const RECT32 *rect, BOOL32 erase ) +void WINAPI InvalidateRect32( HWND32 hwnd, const RECT32 *rect, BOOL32 erase ) { PAINT_RedrawWindow( hwnd, rect, 0, RDW_INVALIDATE | (erase ? RDW_ERASE : 0), 0 ); @@ -543,7 +543,7 @@ void InvalidateRect32( HWND32 hwnd, const RECT32 *rect, BOOL32 erase ) /*********************************************************************** * ValidateRgn16 (USER.128) */ -void ValidateRgn16( HWND16 hwnd, HRGN16 hrgn ) +void WINAPI ValidateRgn16( HWND16 hwnd, HRGN16 hrgn ) { PAINT_RedrawWindow( (HWND32)hwnd, NULL, (HRGN32)hrgn, RDW_VALIDATE | RDW_NOCHILDREN, 0 ); @@ -553,7 +553,7 @@ void ValidateRgn16( HWND16 hwnd, HRGN16 hrgn ) /*********************************************************************** * ValidateRgn32 (USER32.571) */ -void ValidateRgn32( HWND32 hwnd, HRGN32 hrgn ) +void WINAPI ValidateRgn32( HWND32 hwnd, HRGN32 hrgn ) { PAINT_RedrawWindow( hwnd, NULL, hrgn, RDW_VALIDATE | RDW_NOCHILDREN, 0 ); } @@ -562,7 +562,7 @@ void ValidateRgn32( HWND32 hwnd, HRGN32 hrgn ) /*********************************************************************** * ValidateRect16 (USER.127) */ -void ValidateRect16( HWND16 hwnd, const RECT16 *rect ) +void WINAPI ValidateRect16( HWND16 hwnd, const RECT16 *rect ) { RedrawWindow16( hwnd, rect, 0, RDW_VALIDATE | RDW_NOCHILDREN ); } @@ -571,7 +571,7 @@ void ValidateRect16( HWND16 hwnd, const RECT16 *rect ) /*********************************************************************** * ValidateRect32 (USER32.570) */ -void ValidateRect32( HWND32 hwnd, const RECT32 *rect ) +void WINAPI ValidateRect32( HWND32 hwnd, const RECT32 *rect ) { PAINT_RedrawWindow( hwnd, rect, 0, RDW_VALIDATE | RDW_NOCHILDREN, 0 ); } @@ -580,7 +580,7 @@ void ValidateRect32( HWND32 hwnd, const RECT32 *rect ) /*********************************************************************** * GetUpdateRect16 (USER.190) */ -BOOL16 GetUpdateRect16( HWND16 hwnd, LPRECT16 rect, BOOL16 erase ) +BOOL16 WINAPI GetUpdateRect16( HWND16 hwnd, LPRECT16 rect, BOOL16 erase ) { RECT32 r; BOOL16 ret; @@ -595,7 +595,7 @@ BOOL16 GetUpdateRect16( HWND16 hwnd, LPRECT16 rect, BOOL16 erase ) /*********************************************************************** * GetUpdateRect32 (USER32.296) */ -BOOL32 GetUpdateRect32( HWND32 hwnd, LPRECT32 rect, BOOL32 erase ) +BOOL32 WINAPI GetUpdateRect32( HWND32 hwnd, LPRECT32 rect, BOOL32 erase ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr) return FALSE; @@ -618,7 +618,7 @@ BOOL32 GetUpdateRect32( HWND32 hwnd, LPRECT32 rect, BOOL32 erase ) /*********************************************************************** * GetUpdateRgn16 (USER.237) */ -INT16 GetUpdateRgn16( HWND16 hwnd, HRGN16 hrgn, BOOL16 erase ) +INT16 WINAPI GetUpdateRgn16( HWND16 hwnd, HRGN16 hrgn, BOOL16 erase ) { return GetUpdateRgn32( hwnd, hrgn, erase ); } @@ -627,7 +627,7 @@ INT16 GetUpdateRgn16( HWND16 hwnd, HRGN16 hrgn, BOOL16 erase ) /*********************************************************************** * GetUpdateRgn32 (USER32.297) */ -INT32 GetUpdateRgn32( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase ) +INT32 WINAPI GetUpdateRgn32( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase ) { INT32 retval; WND * wndPtr = WIN_FindWndPtr( hwnd ); @@ -647,7 +647,7 @@ INT32 GetUpdateRgn32( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase ) /*********************************************************************** * ExcludeUpdateRgn16 (USER.238) */ -INT16 ExcludeUpdateRgn16( HDC16 hdc, HWND16 hwnd ) +INT16 WINAPI ExcludeUpdateRgn16( HDC16 hdc, HWND16 hwnd ) { return ExcludeUpdateRgn32( hdc, hwnd ); } @@ -656,7 +656,7 @@ INT16 ExcludeUpdateRgn16( HDC16 hdc, HWND16 hwnd ) /*********************************************************************** * ExcludeUpdateRgn32 (USER32.194) */ -INT32 ExcludeUpdateRgn32( HDC32 hdc, HWND32 hwnd ) +INT32 WINAPI ExcludeUpdateRgn32( HDC32 hdc, HWND32 hwnd ) { RECT32 rect; WND * wndPtr; diff --git a/windows/property.c b/windows/property.c index ab6daf48ab0..09eebedb219 100644 --- a/windows/property.c +++ b/windows/property.c @@ -47,7 +47,7 @@ static PROPERTY *PROP_FindProp( HWND32 hwnd, LPCSTR str ) /*********************************************************************** * GetProp16 (USER.25) */ -HANDLE16 GetProp16( HWND16 hwnd, LPCSTR str ) +HANDLE16 WINAPI GetProp16( HWND16 hwnd, LPCSTR str ) { return (HANDLE16)GetProp32A( hwnd, str ); } @@ -56,7 +56,7 @@ HANDLE16 GetProp16( HWND16 hwnd, LPCSTR str ) /*********************************************************************** * GetProp32A (USER32.280) */ -HANDLE32 GetProp32A( HWND32 hwnd, LPCSTR str ) +HANDLE32 WINAPI GetProp32A( HWND32 hwnd, LPCSTR str ) { PROPERTY *prop = PROP_FindProp( hwnd, str ); @@ -74,7 +74,7 @@ HANDLE32 GetProp32A( HWND32 hwnd, LPCSTR str ) /*********************************************************************** * GetProp32W (USER32.281) */ -HANDLE32 GetProp32W( HWND32 hwnd, LPCWSTR str ) +HANDLE32 WINAPI GetProp32W( HWND32 hwnd, LPCWSTR str ) { LPSTR strA; HANDLE32 ret; @@ -90,7 +90,7 @@ HANDLE32 GetProp32W( HWND32 hwnd, LPCWSTR str ) /*********************************************************************** * SetProp16 (USER.26) */ -BOOL16 SetProp16( HWND16 hwnd, LPCSTR str, HANDLE16 handle ) +BOOL16 WINAPI SetProp16( HWND16 hwnd, LPCSTR str, HANDLE16 handle ) { return (BOOL16)SetProp32A( hwnd, str, handle ); } @@ -99,7 +99,7 @@ BOOL16 SetProp16( HWND16 hwnd, LPCSTR str, HANDLE16 handle ) /*********************************************************************** * SetProp32A (USER32.496) */ -BOOL32 SetProp32A( HWND32 hwnd, LPCSTR str, HANDLE32 handle ) +BOOL32 WINAPI SetProp32A( HWND32 hwnd, LPCSTR str, HANDLE32 handle ) { PROPERTY *prop; @@ -131,7 +131,7 @@ BOOL32 SetProp32A( HWND32 hwnd, LPCSTR str, HANDLE32 handle ) /*********************************************************************** * SetProp32W (USER32.497) */ -BOOL32 SetProp32W( HWND32 hwnd, LPCWSTR str, HANDLE32 handle ) +BOOL32 WINAPI SetProp32W( HWND32 hwnd, LPCWSTR str, HANDLE32 handle ) { BOOL32 ret; LPSTR strA; @@ -148,7 +148,7 @@ BOOL32 SetProp32W( HWND32 hwnd, LPCWSTR str, HANDLE32 handle ) /*********************************************************************** * RemoveProp16 (USER.24) */ -HANDLE16 RemoveProp16( HWND16 hwnd, LPCSTR str ) +HANDLE16 WINAPI RemoveProp16( HWND16 hwnd, LPCSTR str ) { return (HANDLE16)RemoveProp32A( hwnd, str ); } @@ -157,7 +157,7 @@ HANDLE16 RemoveProp16( HWND16 hwnd, LPCSTR str ) /*********************************************************************** * RemoveProp32A (USER32.441) */ -HANDLE32 RemoveProp32A( HWND32 hwnd, LPCSTR str ) +HANDLE32 WINAPI RemoveProp32A( HWND32 hwnd, LPCSTR str ) { HANDLE32 handle; PROPERTY **pprop, *prop; @@ -195,7 +195,7 @@ HANDLE32 RemoveProp32A( HWND32 hwnd, LPCSTR str ) /*********************************************************************** * RemoveProp32W (USER32.442) */ -HANDLE32 RemoveProp32W( HWND32 hwnd, LPCWSTR str ) +HANDLE32 WINAPI RemoveProp32W( HWND32 hwnd, LPCWSTR str ) { LPSTR strA; HANDLE32 ret; @@ -231,7 +231,7 @@ void PROPERTY_RemoveWindowProps( WND *pWnd ) /*********************************************************************** * EnumProps16 (USER.27) */ -INT16 EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) +INT16 WINAPI EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) { PROPERTY *prop, *next; WND *pWnd; @@ -257,7 +257,7 @@ INT16 EnumProps16( HWND16 hwnd, PROPENUMPROC16 func ) /*********************************************************************** * EnumProps32A (USER32.185) */ -INT32 EnumProps32A( HWND32 hwnd, PROPENUMPROC32A func ) +INT32 WINAPI EnumProps32A( HWND32 hwnd, PROPENUMPROC32A func ) { return EnumPropsEx32A( hwnd, (PROPENUMPROCEX32A)func, 0 ); } @@ -266,7 +266,7 @@ INT32 EnumProps32A( HWND32 hwnd, PROPENUMPROC32A func ) /*********************************************************************** * EnumProps32W (USER32.188) */ -INT32 EnumProps32W( HWND32 hwnd, PROPENUMPROC32W func ) +INT32 WINAPI EnumProps32W( HWND32 hwnd, PROPENUMPROC32W func ) { return EnumPropsEx32W( hwnd, (PROPENUMPROCEX32W)func, 0 ); } @@ -275,7 +275,7 @@ INT32 EnumProps32W( HWND32 hwnd, PROPENUMPROC32W func ) /*********************************************************************** * EnumPropsEx32A (USER32.186) */ -INT32 EnumPropsEx32A( HWND32 hwnd, PROPENUMPROCEX32A func, LPARAM lParam ) +INT32 WINAPI EnumPropsEx32A(HWND32 hwnd, PROPENUMPROCEX32A func, LPARAM lParam) { PROPERTY *prop, *next; WND *pWnd; @@ -302,7 +302,7 @@ INT32 EnumPropsEx32A( HWND32 hwnd, PROPENUMPROCEX32A func, LPARAM lParam ) /*********************************************************************** * EnumPropsEx32W (USER32.187) */ -INT32 EnumPropsEx32W( HWND32 hwnd, PROPENUMPROCEX32W func, LPARAM lParam ) +INT32 WINAPI EnumPropsEx32W(HWND32 hwnd, PROPENUMPROCEX32W func, LPARAM lParam) { PROPERTY *prop, *next; WND *pWnd; diff --git a/windows/queue.c b/windows/queue.c index 4872a354f1e..a0f50c42937 100644 --- a/windows/queue.c +++ b/windows/queue.c @@ -668,7 +668,7 @@ void QUEUE_DecTimerCount( HQUEUE16 hQueue ) /*********************************************************************** * PostQuitMessage16 (USER.6) */ -void PostQuitMessage16( INT16 exitCode ) +void WINAPI PostQuitMessage16( INT16 exitCode ) { PostQuitMessage32( exitCode ); } @@ -677,7 +677,7 @@ void PostQuitMessage16( INT16 exitCode ) /*********************************************************************** * PostQuitMessage32 (USER32.420) */ -void PostQuitMessage32( INT32 exitCode ) +void WINAPI PostQuitMessage32( INT32 exitCode ) { MESSAGEQUEUE *queue; @@ -690,7 +690,7 @@ void PostQuitMessage32( INT32 exitCode ) /*********************************************************************** * GetWindowTask16 (USER.224) */ -HTASK16 GetWindowTask16( HWND16 hwnd ) +HTASK16 WINAPI GetWindowTask16( HWND16 hwnd ) { WND *wndPtr = WIN_FindWndPtr( hwnd ); @@ -701,7 +701,7 @@ HTASK16 GetWindowTask16( HWND16 hwnd ) /*********************************************************************** * GetWindowThreadProcessId (USER32.312) */ -DWORD GetWindowThreadProcessId( HWND32 hwnd, LPDWORD process ) +DWORD WINAPI GetWindowThreadProcessId( HWND32 hwnd, LPDWORD process ) { HTASK16 htask; TDB *tdb; @@ -725,7 +725,7 @@ DWORD GetWindowThreadProcessId( HWND32 hwnd, LPDWORD process ) /*********************************************************************** * SetMessageQueue16 (USER.266) */ -BOOL16 SetMessageQueue16( INT16 size ) +BOOL16 WINAPI SetMessageQueue16( INT16 size ) { return SetMessageQueue32( size ); } @@ -734,7 +734,7 @@ BOOL16 SetMessageQueue16( INT16 size ) /*********************************************************************** * SetMessageQueue32 (USER32.493) */ -BOOL32 SetMessageQueue32( INT32 size ) +BOOL32 WINAPI SetMessageQueue32( INT32 size ) { HQUEUE16 hQueue, hNewQueue; MESSAGEQUEUE *queuePtr; @@ -781,7 +781,7 @@ BOOL32 SetMessageQueue32( INT32 size ) /*********************************************************************** * GetQueueStatus16 (USER.334) */ -DWORD GetQueueStatus16( UINT16 flags ) +DWORD WINAPI GetQueueStatus16( UINT16 flags ) { MESSAGEQUEUE *queue; DWORD ret; @@ -796,7 +796,7 @@ DWORD GetQueueStatus16( UINT16 flags ) /*********************************************************************** * GetInputState16 (USER.335) */ -BOOL16 GetInputState16(void) +BOOL16 WINAPI GetInputState16(void) { return GetInputState32(); } @@ -805,7 +805,7 @@ BOOL16 GetInputState16(void) /*********************************************************************** * GetInputState32 (USER32.243) */ -BOOL32 GetInputState32(void) +BOOL32 WINAPI GetInputState32(void) { MESSAGEQUEUE *queue; @@ -818,7 +818,7 @@ BOOL32 GetInputState32(void) /*********************************************************************** * GetMessagePos (USER.119) (USER32.271) */ -DWORD GetMessagePos(void) +DWORD WINAPI GetMessagePos(void) { MESSAGEQUEUE *queue; @@ -830,7 +830,7 @@ DWORD GetMessagePos(void) /*********************************************************************** * GetMessageTime (USER.120) (USER32.272) */ -LONG GetMessageTime(void) +LONG WINAPI GetMessageTime(void) { MESSAGEQUEUE *queue; @@ -842,7 +842,7 @@ LONG GetMessageTime(void) /*********************************************************************** * GetMessageExtraInfo (USER.288) (USER32.270) */ -LONG GetMessageExtraInfo(void) +LONG WINAPI GetMessageExtraInfo(void) { MESSAGEQUEUE *queue; diff --git a/windows/rect.c b/windows/rect.c index 61d76c2cc3a..7605666a19e 100644 --- a/windows/rect.c +++ b/windows/rect.c @@ -11,7 +11,8 @@ /*********************************************************************** * SetRect16 (USER.72) */ -void SetRect16(LPRECT16 rect, INT16 left, INT16 top, INT16 right, INT16 bottom) +void WINAPI SetRect16( LPRECT16 rect, INT16 left, INT16 top, + INT16 right, INT16 bottom ) { rect->left = left; rect->right = right; @@ -23,7 +24,8 @@ void SetRect16(LPRECT16 rect, INT16 left, INT16 top, INT16 right, INT16 bottom) /*********************************************************************** * SetRect32 (USER32.498) */ -void SetRect32(LPRECT32 rect, INT32 left, INT32 top, INT32 right, INT32 bottom) +void WINAPI SetRect32( LPRECT32 rect, INT32 left, INT32 top, + INT32 right, INT32 bottom ) { rect->left = left; rect->right = right; @@ -35,7 +37,7 @@ void SetRect32(LPRECT32 rect, INT32 left, INT32 top, INT32 right, INT32 bottom) /*********************************************************************** * SetRectEmpty16 (USER.73) */ -void SetRectEmpty16( LPRECT16 rect ) +void WINAPI SetRectEmpty16( LPRECT16 rect ) { rect->left = rect->right = rect->top = rect->bottom = 0; } @@ -44,7 +46,7 @@ void SetRectEmpty16( LPRECT16 rect ) /*********************************************************************** * SetRectEmpty32 (USER32.499) */ -void SetRectEmpty32( LPRECT32 rect ) +void WINAPI SetRectEmpty32( LPRECT32 rect ) { rect->left = rect->right = rect->top = rect->bottom = 0; } @@ -53,7 +55,7 @@ void SetRectEmpty32( LPRECT32 rect ) /*********************************************************************** * CopyRect16 (USER.74) */ -BOOL16 CopyRect16( RECT16 *dest, const RECT16 *src ) +BOOL16 WINAPI CopyRect16( RECT16 *dest, const RECT16 *src ) { *dest = *src; return TRUE; @@ -63,7 +65,7 @@ BOOL16 CopyRect16( RECT16 *dest, const RECT16 *src ) /*********************************************************************** * CopyRect32 (USER32.61) */ -BOOL32 CopyRect32( RECT32 *dest, const RECT32 *src ) +BOOL32 WINAPI CopyRect32( RECT32 *dest, const RECT32 *src ) { *dest = *src; return TRUE; @@ -73,7 +75,7 @@ BOOL32 CopyRect32( RECT32 *dest, const RECT32 *src ) /*********************************************************************** * IsRectEmpty16 (USER.75) */ -BOOL16 IsRectEmpty16( const RECT16 *rect ) +BOOL16 WINAPI IsRectEmpty16( const RECT16 *rect ) { return ((rect->left == rect->right) || (rect->top == rect->bottom)); } @@ -82,7 +84,7 @@ BOOL16 IsRectEmpty16( const RECT16 *rect ) /*********************************************************************** * IsRectEmpty32 (USER32.346) */ -BOOL32 IsRectEmpty32( const RECT32 *rect ) +BOOL32 WINAPI IsRectEmpty32( const RECT32 *rect ) { return ((rect->left == rect->right) || (rect->top == rect->bottom)); } @@ -91,7 +93,7 @@ BOOL32 IsRectEmpty32( const RECT32 *rect ) /*********************************************************************** * PtInRect16 (USER.76) */ -BOOL16 PtInRect16( const RECT16 *rect, POINT16 pt ) +BOOL16 WINAPI PtInRect16( const RECT16 *rect, POINT16 pt ) { return ((pt.x >= rect->left) && (pt.x < rect->right) && (pt.y >= rect->top) && (pt.y < rect->bottom)); @@ -101,7 +103,7 @@ BOOL16 PtInRect16( const RECT16 *rect, POINT16 pt ) /*********************************************************************** * PtInRect32 (USER32.423) */ -BOOL32 PtInRect32( const RECT32 *rect, POINT32 pt ) +BOOL32 WINAPI PtInRect32( const RECT32 *rect, POINT32 pt ) { return ((pt.x >= rect->left) && (pt.x < rect->right) && (pt.y >= rect->top) && (pt.y < rect->bottom)); @@ -111,7 +113,7 @@ BOOL32 PtInRect32( const RECT32 *rect, POINT32 pt ) /*********************************************************************** * OffsetRect16 (USER.77) */ -void OffsetRect16( LPRECT16 rect, INT16 x, INT16 y ) +void WINAPI OffsetRect16( LPRECT16 rect, INT16 x, INT16 y ) { rect->left += x; rect->right += x; @@ -123,7 +125,7 @@ void OffsetRect16( LPRECT16 rect, INT16 x, INT16 y ) /*********************************************************************** * OffsetRect32 (USER32.405) */ -void OffsetRect32( LPRECT32 rect, INT32 x, INT32 y ) +void WINAPI OffsetRect32( LPRECT32 rect, INT32 x, INT32 y ) { rect->left += x; rect->right += x; @@ -135,7 +137,7 @@ void OffsetRect32( LPRECT32 rect, INT32 x, INT32 y ) /*********************************************************************** * InflateRect16 (USER.78) */ -void InflateRect16( LPRECT16 rect, INT16 x, INT16 y ) +void WINAPI InflateRect16( LPRECT16 rect, INT16 x, INT16 y ) { rect->left -= x; rect->top -= y; @@ -147,7 +149,7 @@ void InflateRect16( LPRECT16 rect, INT16 x, INT16 y ) /*********************************************************************** * InflateRect32 (USER32.320) */ -void InflateRect32( LPRECT32 rect, INT32 x, INT32 y ) +void WINAPI InflateRect32( LPRECT32 rect, INT32 x, INT32 y ) { rect->left -= x; rect->top -= y; @@ -159,7 +161,8 @@ void InflateRect32( LPRECT32 rect, INT32 x, INT32 y ) /*********************************************************************** * IntersectRect16 (USER.79) */ -BOOL16 IntersectRect16( LPRECT16 dest, const RECT16 *src1, const RECT16 *src2 ) +BOOL16 WINAPI IntersectRect16( LPRECT16 dest, const RECT16 *src1, + const RECT16 *src2 ) { if (IsRectEmpty16(src1) || IsRectEmpty16(src2) || (src1->left >= src2->right) || (src2->left >= src1->right) || @@ -179,7 +182,8 @@ BOOL16 IntersectRect16( LPRECT16 dest, const RECT16 *src1, const RECT16 *src2 ) /*********************************************************************** * IntersectRect32 (USER32.326) */ -BOOL32 IntersectRect32( LPRECT32 dest, const RECT32 *src1, const RECT32 *src2 ) +BOOL32 WINAPI IntersectRect32( LPRECT32 dest, const RECT32 *src1, + const RECT32 *src2 ) { if (IsRectEmpty32(src1) || IsRectEmpty32(src2) || (src1->left >= src2->right) || (src2->left >= src1->right) || @@ -199,7 +203,8 @@ BOOL32 IntersectRect32( LPRECT32 dest, const RECT32 *src1, const RECT32 *src2 ) /*********************************************************************** * UnionRect16 (USER.80) */ -BOOL16 UnionRect16( LPRECT16 dest, const RECT16 *src1, const RECT16 *src2 ) +BOOL16 WINAPI UnionRect16( LPRECT16 dest, const RECT16 *src1, + const RECT16 *src2 ) { if (IsRectEmpty16(src1)) { @@ -228,7 +233,8 @@ BOOL16 UnionRect16( LPRECT16 dest, const RECT16 *src1, const RECT16 *src2 ) /*********************************************************************** * UnionRect32 (USER32.558) */ -BOOL32 UnionRect32( LPRECT32 dest, const RECT32 *src1, const RECT32 *src2 ) +BOOL32 WINAPI UnionRect32( LPRECT32 dest, const RECT32 *src1, + const RECT32 *src2 ) { if (IsRectEmpty32(src1)) { @@ -257,7 +263,7 @@ BOOL32 UnionRect32( LPRECT32 dest, const RECT32 *src1, const RECT32 *src2 ) /*********************************************************************** * EqualRect16 (USER.244) */ -BOOL16 EqualRect16( const RECT16* rect1, const RECT16* rect2 ) +BOOL16 WINAPI EqualRect16( const RECT16* rect1, const RECT16* rect2 ) { return ((rect1->left == rect2->left) && (rect1->right == rect2->right) && (rect1->top == rect2->top) && (rect1->bottom == rect2->bottom)); @@ -267,7 +273,7 @@ BOOL16 EqualRect16( const RECT16* rect1, const RECT16* rect2 ) /*********************************************************************** * EqualRect32 (USER32.193) */ -BOOL32 EqualRect32( const RECT32* rect1, const RECT32* rect2 ) +BOOL32 WINAPI EqualRect32( const RECT32* rect1, const RECT32* rect2 ) { return ((rect1->left == rect2->left) && (rect1->right == rect2->right) && (rect1->top == rect2->top) && (rect1->bottom == rect2->bottom)); @@ -277,7 +283,8 @@ BOOL32 EqualRect32( const RECT32* rect1, const RECT32* rect2 ) /*********************************************************************** * SubtractRect16 (USER.373) */ -BOOL16 SubtractRect16( LPRECT16 dest, const RECT16 *src1, const RECT16 *src2 ) +BOOL16 WINAPI SubtractRect16( LPRECT16 dest, const RECT16 *src1, + const RECT16 *src2 ) { RECT16 tmp; @@ -312,7 +319,8 @@ BOOL16 SubtractRect16( LPRECT16 dest, const RECT16 *src1, const RECT16 *src2 ) /*********************************************************************** * SubtractRect32 (USER32.535) */ -BOOL32 SubtractRect32( LPRECT32 dest, const RECT32 *src1, const RECT32 *src2 ) +BOOL32 WINAPI SubtractRect32( LPRECT32 dest, const RECT32 *src1, + const RECT32 *src2 ) { RECT32 tmp; diff --git a/windows/scroll.c b/windows/scroll.c index 85371bfaf91..fdc9f4a0927 100644 --- a/windows/scroll.c +++ b/windows/scroll.c @@ -26,8 +26,8 @@ extern void CLIPPING_UpdateGCRegion(DC* ); /* objects/clipping.c */ /************************************************************************* * ScrollWindow16 (USER.61) */ -void ScrollWindow16( HWND16 hwnd, INT16 dx, INT16 dy, const RECT16 *rect, - const RECT16 *clipRect ) +void WINAPI ScrollWindow16(HWND16 hwnd, INT16 dx, INT16 dy, const RECT16 *rect, + const RECT16 *clipRect ) { RECT32 rect32, clipRect32; @@ -39,9 +39,11 @@ void ScrollWindow16( HWND16 hwnd, INT16 dx, INT16 dy, const RECT16 *rect, /************************************************************************* * ScrollWindow32 (USER32.449) + * + * FIXME: verify clipping region calculations */ -BOOL32 ScrollWindow32( HWND32 hwnd, INT32 dx, INT32 dy, const RECT32 *rect, - const RECT32 *clipRect ) +BOOL32 WINAPI ScrollWindow32( HWND32 hwnd, INT32 dx, INT32 dy, + const RECT32 *rect, const RECT32 *clipRect ) { HDC32 hdc; HRGN32 hrgnUpdate,hrgnClip; @@ -122,8 +124,9 @@ BOOL32 ScrollWindow32( HWND32 hwnd, INT32 dx, INT32 dy, const RECT32 *rect, /************************************************************************* * ScrollDC16 (USER.221) */ -BOOL16 ScrollDC16( HDC16 hdc, INT16 dx, INT16 dy, const RECT16 *rect, - const RECT16 *cliprc, HRGN16 hrgnUpdate, LPRECT16 rcUpdate ) +BOOL16 WINAPI ScrollDC16( HDC16 hdc, INT16 dx, INT16 dy, const RECT16 *rect, + const RECT16 *cliprc, HRGN16 hrgnUpdate, + LPRECT16 rcUpdate ) { RECT32 rect32, clipRect32, rcUpdate32; BOOL16 ret; @@ -143,8 +146,9 @@ BOOL16 ScrollDC16( HDC16 hdc, INT16 dx, INT16 dy, const RECT16 *rect, * Both 'rc' and 'rLClip' are in logical units but update info is * returned in device coordinates. */ -BOOL32 ScrollDC32( HDC32 hdc, INT32 dx, INT32 dy, const RECT32 *rc, - const RECT32 *prLClip, HRGN32 hrgnUpdate, LPRECT32 rcUpdate ) +BOOL32 WINAPI ScrollDC32( HDC32 hdc, INT32 dx, INT32 dy, const RECT32 *rc, + const RECT32 *prLClip, HRGN32 hrgnUpdate, + LPRECT32 rcUpdate ) { RECT32 rDClip, rLClip; HRGN32 hrgnClip = 0; @@ -294,9 +298,10 @@ BOOL32 ScrollDC32( HDC32 hdc, INT32 dx, INT32 dy, const RECT32 *rc, /************************************************************************* * ScrollWindowEx16 (USER.319) */ -INT16 ScrollWindowEx16( HWND16 hwnd, INT16 dx, INT16 dy, const RECT16 *rect, - const RECT16 *clipRect, HRGN16 hrgnUpdate, - LPRECT16 rcUpdate, UINT16 flags ) +INT16 WINAPI ScrollWindowEx16( HWND16 hwnd, INT16 dx, INT16 dy, + const RECT16 *rect, const RECT16 *clipRect, + HRGN16 hrgnUpdate, LPRECT16 rcUpdate, + UINT16 flags ) { RECT32 rect32, clipRect32, rcUpdate32; BOOL16 ret; @@ -313,7 +318,7 @@ INT16 ScrollWindowEx16( HWND16 hwnd, INT16 dx, INT16 dy, const RECT16 *rect, /************************************************************************* * SCROLL_FixCaret */ -BOOL32 SCROLL_FixCaret(HWND32 hWnd, LPRECT32 lprc, UINT32 flags) +static BOOL32 SCROLL_FixCaret(HWND32 hWnd, LPRECT32 lprc, UINT32 flags) { HWND32 hCaret = CARET_GetHwnd(); @@ -341,10 +346,13 @@ BOOL32 SCROLL_FixCaret(HWND32 hWnd, LPRECT32 lprc, UINT32 flags) /************************************************************************* * ScrollWindowEx32 (USER32.450) + * + * NOTE: Use this function instead of ScrollWindow32 */ -INT32 ScrollWindowEx32( HWND32 hwnd, INT32 dx, INT32 dy, const RECT32 *rect, - const RECT32 *clipRect, HRGN32 hrgnUpdate, - LPRECT32 rcUpdate, UINT32 flags ) +INT32 WINAPI ScrollWindowEx32( HWND32 hwnd, INT32 dx, INT32 dy, + const RECT32 *rect, const RECT32 *clipRect, + HRGN32 hrgnUpdate, LPRECT32 rcUpdate, + UINT32 flags ) { INT32 retVal = NULLREGION; BOOL32 bCaret = FALSE, bOwnRgn = TRUE; @@ -390,12 +398,14 @@ rect?rect->left:0, rect?rect->top:0, rect ?rect->right:0, rect ?rect->bottom:0, if( dy > 0 ) dst.y = (src.y = dc->w.DCOrgY + cliprc.top) + dy; else src.y = (dst.y = dc->w.DCOrgY + cliprc.top) - dy; - if( bUpdate ) - XSetGraphicsExposures( display, dc->u.x.gc, True ); + if( bUpdate ) /* handles non-Wine windows hanging over the scrolled area */ + XSetGraphicsExposures( display, dc->u.x.gc, True ); + XSetFunction( display, dc->u.x.gc, GXcopy ); XCopyArea( display, dc->u.x.drawable, dc->u.x.drawable, dc->u.x.gc, src.x, src.y, cliprc.right - cliprc.left - abs(dx), cliprc.bottom - cliprc.top - abs(dy), dst.x, dst.y ); + if( bUpdate ) XSetGraphicsExposures( display, dc->u.x.gc, False ); @@ -434,7 +444,7 @@ rect?rect->left:0, rect?rect->top:0, rect ?rect->right:0, rect ?rect->bottom:0, for( w = wnd->child; w; w = w->next ) { CONV_RECT16TO32( &w->rectWindow, &r ); - if( IntersectRect32(&r, &r, &cliprc) ) + if( !clipRect || IntersectRect32(&r, &r, &cliprc) ) SetWindowPos32(w->hwndSelf, 0, w->rectWindow.left + dx, w->rectWindow.top + dy, 0,0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOREDRAW | @@ -443,8 +453,8 @@ rect?rect->left:0, rect?rect->top:0, rect ?rect->right:0, rect ?rect->bottom:0, } if( flags & (SW_INVALIDATE | SW_ERASE) ) - PAINT_RedrawWindow( hwnd, NULL, hrgnUpdate, RDW_INVALIDATE | RDW_ERASE | - ((flags & SW_ERASE) ? RDW_ERASENOW : 0), 0 ); + PAINT_RedrawWindow( hwnd, NULL, hrgnUpdate, RDW_INVALIDATE | RDW_ERASE | + ((flags & SW_ERASE) ? RDW_ERASENOW : 0) | ((flags & SW_SCROLLCHILDREN) ? RDW_ALLCHILDREN : 0 ), 0 ); if( bCaret ) { diff --git a/windows/syscolor.c b/windows/syscolor.c index 14d06ea6feb..9f86835cf3d 100644 --- a/windows/syscolor.c +++ b/windows/syscolor.c @@ -175,7 +175,7 @@ void SYSCOLOR_Init(void) /************************************************************************* * GetSysColor16 (USER.180) */ -COLORREF GetSysColor16( INT16 nIndex ) +COLORREF WINAPI GetSysColor16( INT16 nIndex ) { return SysColors[nIndex]; } @@ -184,7 +184,7 @@ COLORREF GetSysColor16( INT16 nIndex ) /************************************************************************* * GetSysColor32 (USER32.288) */ -COLORREF GetSysColor32( INT32 nIndex ) +COLORREF WINAPI GetSysColor32( INT32 nIndex ) { return SysColors[nIndex]; } @@ -193,8 +193,8 @@ COLORREF GetSysColor32( INT32 nIndex ) /************************************************************************* * SetSysColors16 (USER.181) */ -VOID SetSysColors16( INT16 nChanges, const INT16 *lpSysColor, - const COLORREF *lpColorValues ) +VOID WINAPI SetSysColors16( INT16 nChanges, const INT16 *lpSysColor, + const COLORREF *lpColorValues ) { int i; @@ -217,8 +217,8 @@ VOID SetSysColors16( INT16 nChanges, const INT16 *lpSysColor, /************************************************************************* * SetSysColors32 (USER32.504) */ -BOOL32 SetSysColors32( INT32 nChanges, const INT32 *lpSysColor, - const COLORREF *lpColorValues ) +BOOL32 WINAPI SetSysColors32( INT32 nChanges, const INT32 *lpSysColor, + const COLORREF *lpColorValues ) { int i; diff --git a/windows/sysmetrics.c b/windows/sysmetrics.c index 525088e03ec..58fd85d844f 100644 --- a/windows/sysmetrics.c +++ b/windows/sysmetrics.c @@ -136,7 +136,7 @@ void SYSMETRICS_Init(void) /*********************************************************************** * GetSystemMetrics16 (USER.179) */ -INT16 GetSystemMetrics16( INT16 index ) +INT16 WINAPI GetSystemMetrics16( INT16 index ) { if ((index < 0) || (index > SM_CMETRICS)) return 0; else return sysMetrics[index]; @@ -146,7 +146,7 @@ INT16 GetSystemMetrics16( INT16 index ) /*********************************************************************** * GetSystemMetrics32 (USER32.291) */ -INT32 GetSystemMetrics32( INT32 index ) +INT32 WINAPI GetSystemMetrics32( INT32 index ) { if ((index < 0) || (index > SM_CMETRICS)) return 0; else return sysMetrics[index]; diff --git a/windows/timer.c b/windows/timer.c index b08e8923998..a28a375f756 100644 --- a/windows/timer.c +++ b/windows/timer.c @@ -301,7 +301,8 @@ static BOOL32 TIMER_KillTimer( HWND32 hwnd, UINT32 id, BOOL32 sys ) /*********************************************************************** * SetTimer16 (USER.10) */ -UINT16 SetTimer16( HWND16 hwnd, UINT16 id, UINT16 timeout, TIMERPROC16 proc ) +UINT16 WINAPI SetTimer16( HWND16 hwnd, UINT16 id, UINT16 timeout, + TIMERPROC16 proc ) { dprintf_timer( stddeb, "SetTimer16: %04x %d %d %08lx\n", hwnd, id, timeout, (LONG)proc ); @@ -313,7 +314,8 @@ UINT16 SetTimer16( HWND16 hwnd, UINT16 id, UINT16 timeout, TIMERPROC16 proc ) /*********************************************************************** * SetTimer32 (USER32.510) */ -UINT32 SetTimer32( HWND32 hwnd, UINT32 id, UINT32 timeout, TIMERPROC32 proc ) +UINT32 WINAPI SetTimer32( HWND32 hwnd, UINT32 id, UINT32 timeout, + TIMERPROC32 proc ) { dprintf_timer( stddeb, "SetTimer32: %04x %d %d %08lx\n", hwnd, id, timeout, (LONG)proc ); @@ -325,8 +327,8 @@ UINT32 SetTimer32( HWND32 hwnd, UINT32 id, UINT32 timeout, TIMERPROC32 proc ) /*********************************************************************** * SetSystemTimer16 (USER.11) */ -UINT16 SetSystemTimer16( HWND16 hwnd, UINT16 id, UINT16 timeout, - TIMERPROC16 proc ) +UINT16 WINAPI SetSystemTimer16( HWND16 hwnd, UINT16 id, UINT16 timeout, + TIMERPROC16 proc ) { dprintf_timer( stddeb, "SetSystemTimer16: %04x %d %d %08lx\n", hwnd, id, timeout, (LONG)proc ); @@ -338,8 +340,8 @@ UINT16 SetSystemTimer16( HWND16 hwnd, UINT16 id, UINT16 timeout, /*********************************************************************** * SetSystemTimer32 (USER32.508) */ -UINT32 SetSystemTimer32( HWND32 hwnd, UINT32 id, UINT32 timeout, - TIMERPROC32 proc ) +UINT32 WINAPI SetSystemTimer32( HWND32 hwnd, UINT32 id, UINT32 timeout, + TIMERPROC32 proc ) { dprintf_timer( stddeb, "SetSystemTimer32: %04x %d %d %08lx\n", hwnd, id, timeout, (LONG)proc ); @@ -351,7 +353,7 @@ UINT32 SetSystemTimer32( HWND32 hwnd, UINT32 id, UINT32 timeout, /*********************************************************************** * KillTimer16 (USER.12) */ -BOOL16 KillTimer16( HWND16 hwnd, UINT16 id ) +BOOL16 WINAPI KillTimer16( HWND16 hwnd, UINT16 id ) { dprintf_timer(stddeb, "KillTimer16: %04x %d\n", hwnd, id ); return TIMER_KillTimer( hwnd, id, FALSE ); @@ -361,7 +363,7 @@ BOOL16 KillTimer16( HWND16 hwnd, UINT16 id ) /*********************************************************************** * KillTimer32 (USER32.353) */ -BOOL32 KillTimer32( HWND32 hwnd, UINT32 id ) +BOOL32 WINAPI KillTimer32( HWND32 hwnd, UINT32 id ) { dprintf_timer(stddeb, "KillTimer32: %04x %d\n", hwnd, id ); return TIMER_KillTimer( hwnd, id, FALSE ); @@ -371,7 +373,7 @@ BOOL32 KillTimer32( HWND32 hwnd, UINT32 id ) /*********************************************************************** * KillSystemTimer16 (USER.182) */ -BOOL16 KillSystemTimer16( HWND16 hwnd, UINT16 id ) +BOOL16 WINAPI KillSystemTimer16( HWND16 hwnd, UINT16 id ) { dprintf_timer( stddeb, "KillSystemTimer16: %04x %d\n", hwnd, id ); return TIMER_KillTimer( hwnd, id, TRUE ); @@ -381,7 +383,7 @@ BOOL16 KillSystemTimer16( HWND16 hwnd, UINT16 id ) /*********************************************************************** * KillSystemTimer32 (USER32.352) */ -BOOL32 KillSystemTimer32( HWND32 hwnd, UINT32 id ) +BOOL32 WINAPI KillSystemTimer32( HWND32 hwnd, UINT32 id ) { dprintf_timer( stddeb, "KillSystemTimer32: %04x %d\n", hwnd, id ); return TIMER_KillTimer( hwnd, id, TRUE ); diff --git a/windows/user.c b/windows/user.c index 44edddf94ab..8c7c9a5e8d4 100644 --- a/windows/user.c +++ b/windows/user.c @@ -28,7 +28,7 @@ extern void QUEUE_FlushMessages(HQUEUE16); /*********************************************************************** * GetFreeSystemResources (USER.284) */ -WORD GetFreeSystemResources( WORD resType ) +WORD WINAPI GetFreeSystemResources( WORD resType ) { int userPercent, gdiPercent; @@ -63,7 +63,7 @@ WORD GetFreeSystemResources( WORD resType ) /*********************************************************************** * SystemHeapInfo (TOOLHELP.71) */ -BOOL16 SystemHeapInfo( SYSHEAPINFO *pHeapInfo ) +BOOL16 WINAPI SystemHeapInfo( SYSHEAPINFO *pHeapInfo ) { pHeapInfo->wUserFreePercent = GetFreeSystemResources( GFSR_USERRESOURCES ); pHeapInfo->wGDIFreePercent = GetFreeSystemResources( GFSR_GDIRESOURCES ); @@ -76,7 +76,7 @@ BOOL16 SystemHeapInfo( SYSHEAPINFO *pHeapInfo ) /*********************************************************************** * TimerCount (TOOLHELP.80) */ -BOOL16 TimerCount( TIMERINFO *pTimerInfo ) +BOOL16 WINAPI TimerCount( TIMERINFO *pTimerInfo ) { /* FIXME * In standard mode, dwmsSinceStart = dwmsThisVM @@ -97,7 +97,7 @@ BOOL16 TimerCount( TIMERINFO *pTimerInfo ) /********************************************************************** * InitApp (USER.5) */ -INT16 InitApp( HINSTANCE16 hInstance ) +INT16 WINAPI InitApp( HINSTANCE16 hInstance ) { int queueSize; @@ -162,7 +162,7 @@ void USER_ExitWindows(void) /*********************************************************************** * ExitWindows16 (USER.7) */ -BOOL16 ExitWindows16( DWORD dwReturnCode, UINT16 wReserved ) +BOOL16 WINAPI ExitWindows16( DWORD dwReturnCode, UINT16 wReserved ) { return ExitWindowsEx( EWX_LOGOFF, 0xffffffff ); } @@ -171,7 +171,7 @@ BOOL16 ExitWindows16( DWORD dwReturnCode, UINT16 wReserved ) /*********************************************************************** * ExitWindowsExec16 (USER.246) */ -BOOL16 ExitWindowsExec16( LPCSTR lpszExe, LPCSTR lpszParams ) +BOOL16 WINAPI ExitWindowsExec16( LPCSTR lpszExe, LPCSTR lpszParams ) { fprintf(stdnimp, "ExitWindowsExec() : Should run the following in DOS-mode :\n\t\"%s %s\"\n", lpszExe, lpszParams); @@ -182,7 +182,7 @@ fprintf(stdnimp, "ExitWindowsExec() : Should run the following in DOS-mode :\n\t /*********************************************************************** * ExitWindowsEx (USER32.195) */ -BOOL32 ExitWindowsEx( UINT32 flags, DWORD reserved ) +BOOL32 WINAPI ExitWindowsEx( UINT32 flags, DWORD reserved ) { int i; BOOL32 result; diff --git a/windows/win.c b/windows/win.c index 3200d5a2095..9f4375bbc10 100644 --- a/windows/win.c +++ b/windows/win.c @@ -97,7 +97,7 @@ void WIN_DumpWindow( HWND32 hwnd ) fprintf( stderr, "Window %04x (%p):\n", hwnd, ptr ); fprintf( stderr, "next=%p child=%p parent=%p owner=%p class=%p '%s'\n" - "inst=%04x taskQ=%04x updRgn=%04x active=%04x dce=%p idmenu=%04x\n" + "inst=%04x taskQ=%04x updRgn=%04x active=%04x dce=%p idmenu=%08x\n" "style=%08lx exstyle=%08lx wndproc=%08x text='%s'\n" "client=%d,%d-%d,%d window=%d,%d-%d,%d" "sysmenu=%04x flags=%04x props=%p vscroll=%p hscroll=%p\n", @@ -544,7 +544,7 @@ static HWND32 WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom, if (!cs->hwndParent || (cs->hwndParent == pWndDesktop->hwndSelf)) wndPtr->owner = NULL; else - wndPtr->owner = WIN_FindWndPtr(WIN_GetTopParent(cs->hwndParent)); + wndPtr->owner = WIN_GetTopParentPtr(WIN_FindWndPtr(cs->hwndParent)); } wndPtr->window = 0; @@ -692,7 +692,7 @@ static HWND32 WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom, /* Set the window menu */ - if ((cs->style & WS_CAPTION) && !(cs->style & WS_CHILD)) + if ((wndPtr->dwStyle & (WS_CAPTION | WS_CHILD)) == WS_CAPTION ) { if (cs->hMenu) SetMenu32(hwnd, cs->hMenu); else @@ -786,10 +786,10 @@ static HWND32 WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom, /*********************************************************************** * CreateWindow16 (USER.41) */ -HWND16 CreateWindow16( LPCSTR className, LPCSTR windowName, - DWORD style, INT16 x, INT16 y, INT16 width, - INT16 height, HWND16 parent, HMENU16 menu, - HINSTANCE16 instance, LPVOID data ) +HWND16 WINAPI CreateWindow16( LPCSTR className, LPCSTR windowName, + DWORD style, INT16 x, INT16 y, INT16 width, + INT16 height, HWND16 parent, HMENU16 menu, + HINSTANCE16 instance, LPVOID data ) { return CreateWindowEx16( 0, className, windowName, style, x, y, width, height, parent, menu, instance, data ); @@ -799,10 +799,11 @@ HWND16 CreateWindow16( LPCSTR className, LPCSTR windowName, /*********************************************************************** * CreateWindowEx16 (USER.452) */ -HWND16 CreateWindowEx16( DWORD exStyle, LPCSTR className, LPCSTR windowName, - DWORD style, INT16 x, INT16 y, INT16 width, - INT16 height, HWND16 parent, HMENU16 menu, - HINSTANCE16 instance, LPVOID data ) +HWND16 WINAPI CreateWindowEx16( DWORD exStyle, LPCSTR className, + LPCSTR windowName, DWORD style, INT16 x, + INT16 y, INT16 width, INT16 height, + HWND16 parent, HMENU16 menu, + HINSTANCE16 instance, LPVOID data ) { ATOM classAtom; CREATESTRUCT32A cs; @@ -841,10 +842,11 @@ HWND16 CreateWindowEx16( DWORD exStyle, LPCSTR className, LPCSTR windowName, /*********************************************************************** * CreateWindowEx32A (USER32.82) */ -HWND32 CreateWindowEx32A( DWORD exStyle, LPCSTR className, LPCSTR windowName, - DWORD style, INT32 x, INT32 y, INT32 width, - INT32 height, HWND32 parent, HMENU32 menu, - HINSTANCE32 instance, LPVOID data ) +HWND32 WINAPI CreateWindowEx32A( DWORD exStyle, LPCSTR className, + LPCSTR windowName, DWORD style, INT32 x, + INT32 y, INT32 width, INT32 height, + HWND32 parent, HMENU32 menu, + HINSTANCE32 instance, LPVOID data ) { ATOM classAtom; CREATESTRUCT32A cs; @@ -880,10 +882,11 @@ HWND32 CreateWindowEx32A( DWORD exStyle, LPCSTR className, LPCSTR windowName, /*********************************************************************** * CreateWindowEx32W (USER32.83) */ -HWND32 CreateWindowEx32W( DWORD exStyle, LPCWSTR className, LPCWSTR windowName, - DWORD style, INT32 x, INT32 y, INT32 width, - INT32 height, HWND32 parent, HMENU32 menu, - HINSTANCE32 instance, LPVOID data ) +HWND32 WINAPI CreateWindowEx32W( DWORD exStyle, LPCWSTR className, + LPCWSTR windowName, DWORD style, INT32 x, + INT32 y, INT32 width, INT32 height, + HWND32 parent, HMENU32 menu, + HINSTANCE32 instance, LPVOID data ) { ATOM classAtom; CREATESTRUCT32W cs; @@ -963,16 +966,18 @@ static void WIN_SendDestroyMsg( WND* pWnd ) /*********************************************************************** - * DestroyWindow (USER.53) + * DestroyWindow16 (USER.53) */ -BOOL16 DestroyWindow16( HWND16 hwnd ) +BOOL16 WINAPI DestroyWindow16( HWND16 hwnd ) { return DestroyWindow32(hwnd); } + + /*********************************************************************** - * DestroyWindow (USER32.134) + * DestroyWindow32 (USER32.134) */ -BOOL32 DestroyWindow32( HWND32 hwnd ) +BOOL32 WINAPI DestroyWindow32( HWND32 hwnd ) { WND * wndPtr; @@ -1060,7 +1065,7 @@ BOOL32 DestroyWindow32( HWND32 hwnd ) /*********************************************************************** * CloseWindow16 (USER.43) */ -BOOL16 CloseWindow16( HWND16 hwnd ) +BOOL16 WINAPI CloseWindow16( HWND16 hwnd ) { return CloseWindow32( hwnd ); } @@ -1069,7 +1074,7 @@ BOOL16 CloseWindow16( HWND16 hwnd ) /*********************************************************************** * CloseWindow32 (USER32.55) */ -BOOL32 CloseWindow32( HWND32 hwnd ) +BOOL32 WINAPI CloseWindow32( HWND32 hwnd ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr || (wndPtr->dwStyle & WS_CHILD)) return FALSE; @@ -1081,7 +1086,7 @@ BOOL32 CloseWindow32( HWND32 hwnd ) /*********************************************************************** * OpenIcon16 (USER.44) */ -BOOL16 OpenIcon16( HWND16 hwnd ) +BOOL16 WINAPI OpenIcon16( HWND16 hwnd ) { return OpenIcon32( hwnd ); } @@ -1090,7 +1095,7 @@ BOOL16 OpenIcon16( HWND16 hwnd ) /*********************************************************************** * OpenIcon32 (USER32.409) */ -BOOL32 OpenIcon32( HWND32 hwnd ) +BOOL32 WINAPI OpenIcon32( HWND32 hwnd ) { if (!IsIconic32( hwnd )) return FALSE; ShowWindow32( hwnd, SW_SHOWNORMAL ); @@ -1158,7 +1163,7 @@ static HWND32 WIN_FindWindow( HWND32 parent, HWND32 child, ATOM className, /*********************************************************************** * FindWindow16 (USER.50) */ -HWND16 FindWindow16( SEGPTR className, LPCSTR title ) +HWND16 WINAPI FindWindow16( SEGPTR className, LPCSTR title ) { return FindWindowEx16( 0, 0, className, title ); } @@ -1167,8 +1172,8 @@ HWND16 FindWindow16( SEGPTR className, LPCSTR title ) /*********************************************************************** * FindWindowEx16 (USER.427) */ -HWND16 FindWindowEx16( HWND16 parent, HWND16 child, - SEGPTR className, LPCSTR title ) +HWND16 WINAPI FindWindowEx16( HWND16 parent, HWND16 child, + SEGPTR className, LPCSTR title ) { ATOM atom = 0; @@ -1189,7 +1194,7 @@ HWND16 FindWindowEx16( HWND16 parent, HWND16 child, /*********************************************************************** * FindWindow32A (USER32.197) */ -HWND32 FindWindow32A( LPCSTR className, LPCSTR title ) +HWND32 WINAPI FindWindow32A( LPCSTR className, LPCSTR title ) { return FindWindowEx32A( 0, 0, className, title ); } @@ -1198,8 +1203,8 @@ HWND32 FindWindow32A( LPCSTR className, LPCSTR title ) /*********************************************************************** * FindWindowEx32A (USER32.198) */ -HWND32 FindWindowEx32A( HWND32 parent, HWND32 child, - LPCSTR className, LPCSTR title ) +HWND32 WINAPI FindWindowEx32A( HWND32 parent, HWND32 child, + LPCSTR className, LPCSTR title ) { ATOM atom = 0; @@ -1216,8 +1221,8 @@ HWND32 FindWindowEx32A( HWND32 parent, HWND32 child, /*********************************************************************** * FindWindowEx32W (USER32.199) */ -HWND32 FindWindowEx32W( HWND32 parent, HWND32 child, - LPCWSTR className, LPCWSTR title ) +HWND32 WINAPI FindWindowEx32W( HWND32 parent, HWND32 child, + LPCWSTR className, LPCWSTR title ) { ATOM atom = 0; char *buffer; @@ -1239,7 +1244,7 @@ HWND32 FindWindowEx32W( HWND32 parent, HWND32 child, /*********************************************************************** * FindWindow32W (USER32.200) */ -HWND32 FindWindow32W( LPCWSTR className, LPCWSTR title ) +HWND32 WINAPI FindWindow32W( LPCWSTR className, LPCWSTR title ) { return FindWindowEx32W( 0, 0, className, title ); } @@ -1257,7 +1262,7 @@ WND *WIN_GetDesktop(void) /********************************************************************** * GetDesktopWindow16 (USER.286) */ -HWND16 GetDesktopWindow16(void) +HWND16 WINAPI GetDesktopWindow16(void) { return (HWND16)pWndDesktop->hwndSelf; } @@ -1266,7 +1271,7 @@ HWND16 GetDesktopWindow16(void) /********************************************************************** * GetDesktopWindow32 (USER32.231) */ -HWND32 GetDesktopWindow32(void) +HWND32 WINAPI GetDesktopWindow32(void) { return pWndDesktop->hwndSelf; } @@ -1278,7 +1283,7 @@ HWND32 GetDesktopWindow32(void) * Exactly the same thing as GetDesktopWindow(), but not documented. * Don't ask me why... */ -HWND16 GetDesktopHwnd(void) +HWND16 WINAPI GetDesktopHwnd(void) { return (HWND16)pWndDesktop->hwndSelf; } @@ -1287,7 +1292,7 @@ HWND16 GetDesktopHwnd(void) /******************************************************************* * EnableWindow16 (USER.34) */ -BOOL16 EnableWindow16( HWND16 hwnd, BOOL16 enable ) +BOOL16 WINAPI EnableWindow16( HWND16 hwnd, BOOL16 enable ) { return EnableWindow32( hwnd, enable ); } @@ -1296,7 +1301,7 @@ BOOL16 EnableWindow16( HWND16 hwnd, BOOL16 enable ) /******************************************************************* * EnableWindow32 (USER32.171) */ -BOOL32 EnableWindow32( HWND32 hwnd, BOOL32 enable ) +BOOL32 WINAPI EnableWindow32( HWND32 hwnd, BOOL32 enable ) { WND *wndPtr; @@ -1326,7 +1331,7 @@ BOOL32 EnableWindow32( HWND32 hwnd, BOOL32 enable ) /*********************************************************************** * IsWindowEnabled16 (USER.35) */ -BOOL16 IsWindowEnabled16(HWND16 hWnd) +BOOL16 WINAPI IsWindowEnabled16(HWND16 hWnd) { return IsWindowEnabled32(hWnd); } @@ -1335,7 +1340,7 @@ BOOL16 IsWindowEnabled16(HWND16 hWnd) /*********************************************************************** * IsWindowEnabled32 (USER32.348) */ -BOOL32 IsWindowEnabled32(HWND32 hWnd) +BOOL32 WINAPI IsWindowEnabled32(HWND32 hWnd) { WND * wndPtr; @@ -1347,7 +1352,7 @@ BOOL32 IsWindowEnabled32(HWND32 hWnd) /*********************************************************************** * IsWindowUnicode (USER32.349) */ -BOOL32 IsWindowUnicode( HWND32 hwnd ) +BOOL32 WINAPI IsWindowUnicode( HWND32 hwnd ) { WND * wndPtr; @@ -1359,7 +1364,7 @@ BOOL32 IsWindowUnicode( HWND32 hwnd ) /********************************************************************** * GetWindowWord16 (USER.133) */ -WORD GetWindowWord16( HWND16 hwnd, INT16 offset ) +WORD WINAPI GetWindowWord16( HWND16 hwnd, INT16 offset ) { return GetWindowWord32( hwnd, offset ); } @@ -1368,7 +1373,7 @@ WORD GetWindowWord16( HWND16 hwnd, INT16 offset ) /********************************************************************** * GetWindowWord32 (USER32.313) */ -WORD GetWindowWord32( HWND32 hwnd, INT32 offset ) +WORD WINAPI GetWindowWord32( HWND32 hwnd, INT32 offset ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr) return 0; @@ -1383,7 +1388,7 @@ WORD GetWindowWord32( HWND32 hwnd, INT32 offset ) } switch(offset) { - case GWW_ID: return wndPtr->wIDmenu; + case GWW_ID: return (WORD)wndPtr->wIDmenu; case GWW_HWNDPARENT: return wndPtr->parent ? wndPtr->parent->hwndSelf : 0; case GWW_HINSTANCE: return (WORD)wndPtr->hInstance; default: @@ -1407,7 +1412,7 @@ HINSTANCE16 WIN_GetWindowInstance( HWND32 hwnd ) /********************************************************************** * SetWindowWord16 (USER.134) */ -WORD SetWindowWord16( HWND16 hwnd, INT16 offset, WORD newval ) +WORD WINAPI SetWindowWord16( HWND16 hwnd, INT16 offset, WORD newval ) { return SetWindowWord32( hwnd, offset, newval ); } @@ -1416,7 +1421,7 @@ WORD SetWindowWord16( HWND16 hwnd, INT16 offset, WORD newval ) /********************************************************************** * SetWindowWord32 (USER32.523) */ -WORD SetWindowWord32( HWND32 hwnd, INT32 offset, WORD newval ) +WORD WINAPI SetWindowWord32( HWND32 hwnd, INT32 offset, WORD newval ) { WORD *ptr, retval; WND * wndPtr = WIN_FindWndPtr( hwnd ); @@ -1473,7 +1478,7 @@ static LONG WIN_GetWindowLong( HWND32 hwnd, INT32 offset, WINDOWPROCTYPE type ) case GWL_USERDATA: return wndPtr->userdata; case GWL_STYLE: return wndPtr->dwStyle; case GWL_EXSTYLE: return wndPtr->dwExStyle; - case GWL_ID: return wndPtr->wIDmenu; + case GWL_ID: return (LONG)wndPtr->wIDmenu; case GWL_WNDPROC: return (LONG)WINPROC_GetProc( wndPtr->winproc, type ); case GWL_HWNDPARENT: return wndPtr->parent ? @@ -1548,7 +1553,7 @@ static LONG WIN_SetWindowLong( HWND32 hwnd, INT32 offset, LONG newval, /********************************************************************** * GetWindowLong16 (USER.135) */ -LONG GetWindowLong16( HWND16 hwnd, INT16 offset ) +LONG WINAPI GetWindowLong16( HWND16 hwnd, INT16 offset ) { return WIN_GetWindowLong( (HWND32)hwnd, offset, WIN_PROC_16 ); } @@ -1557,7 +1562,7 @@ LONG GetWindowLong16( HWND16 hwnd, INT16 offset ) /********************************************************************** * GetWindowLong32A (USER32.304) */ -LONG GetWindowLong32A( HWND32 hwnd, INT32 offset ) +LONG WINAPI GetWindowLong32A( HWND32 hwnd, INT32 offset ) { return WIN_GetWindowLong( hwnd, offset, WIN_PROC_32A ); } @@ -1566,7 +1571,7 @@ LONG GetWindowLong32A( HWND32 hwnd, INT32 offset ) /********************************************************************** * GetWindowLong32W (USER32.305) */ -LONG GetWindowLong32W( HWND32 hwnd, INT32 offset ) +LONG WINAPI GetWindowLong32W( HWND32 hwnd, INT32 offset ) { return WIN_GetWindowLong( hwnd, offset, WIN_PROC_32W ); } @@ -1575,7 +1580,7 @@ LONG GetWindowLong32W( HWND32 hwnd, INT32 offset ) /********************************************************************** * SetWindowLong16 (USER.136) */ -LONG SetWindowLong16( HWND16 hwnd, INT16 offset, LONG newval ) +LONG WINAPI SetWindowLong16( HWND16 hwnd, INT16 offset, LONG newval ) { return WIN_SetWindowLong( hwnd, offset, newval, WIN_PROC_16 ); } @@ -1584,7 +1589,7 @@ LONG SetWindowLong16( HWND16 hwnd, INT16 offset, LONG newval ) /********************************************************************** * SetWindowLong32A (USER32.516) */ -LONG SetWindowLong32A( HWND32 hwnd, INT32 offset, LONG newval ) +LONG WINAPI SetWindowLong32A( HWND32 hwnd, INT32 offset, LONG newval ) { return WIN_SetWindowLong( hwnd, offset, newval, WIN_PROC_32A ); } @@ -1593,7 +1598,7 @@ LONG SetWindowLong32A( HWND32 hwnd, INT32 offset, LONG newval ) /********************************************************************** * SetWindowLong32W (USER32.517) */ -LONG SetWindowLong32W( HWND32 hwnd, INT32 offset, LONG newval ) +LONG WINAPI SetWindowLong32W( HWND32 hwnd, INT32 offset, LONG newval ) { return WIN_SetWindowLong( hwnd, offset, newval, WIN_PROC_32W ); } @@ -1602,7 +1607,7 @@ LONG SetWindowLong32W( HWND32 hwnd, INT32 offset, LONG newval ) /******************************************************************* * GetWindowText16 (USER.36) */ -INT16 GetWindowText16( HWND16 hwnd, SEGPTR lpString, INT16 nMaxCount ) +INT16 WINAPI GetWindowText16( HWND16 hwnd, SEGPTR lpString, INT16 nMaxCount ) { return (INT16)SendMessage16(hwnd, WM_GETTEXT, nMaxCount, (LPARAM)lpString); } @@ -1611,7 +1616,7 @@ INT16 GetWindowText16( HWND16 hwnd, SEGPTR lpString, INT16 nMaxCount ) /******************************************************************* * GetWindowText32A (USER32.308) */ -INT32 GetWindowText32A( HWND32 hwnd, LPSTR lpString, INT32 nMaxCount ) +INT32 WINAPI GetWindowText32A( HWND32 hwnd, LPSTR lpString, INT32 nMaxCount ) { return (INT32)SendMessage32A( hwnd, WM_GETTEXT, nMaxCount, (LPARAM)lpString ); @@ -1621,7 +1626,7 @@ INT32 GetWindowText32A( HWND32 hwnd, LPSTR lpString, INT32 nMaxCount ) /******************************************************************* * GetWindowText32W (USER32.311) */ -INT32 GetWindowText32W( HWND32 hwnd, LPWSTR lpString, INT32 nMaxCount ) +INT32 WINAPI GetWindowText32W( HWND32 hwnd, LPWSTR lpString, INT32 nMaxCount ) { return (INT32)SendMessage32W( hwnd, WM_GETTEXT, nMaxCount, (LPARAM)lpString ); @@ -1631,25 +1636,25 @@ INT32 GetWindowText32W( HWND32 hwnd, LPWSTR lpString, INT32 nMaxCount ) /******************************************************************* * SetWindowText16 (USER.37) */ -void SetWindowText16( HWND16 hwnd, SEGPTR lpString ) +void WINAPI SetWindowText16( HWND16 hwnd, SEGPTR lpString ) { SendMessage16( hwnd, WM_SETTEXT, 0, (LPARAM)lpString ); } /******************************************************************* - * SetWindowText32A (USER32.) + * SetWindowText32A (USER32.521) */ -void SetWindowText32A( HWND32 hwnd, LPCSTR lpString ) +void WINAPI SetWindowText32A( HWND32 hwnd, LPCSTR lpString ) { SendMessage32A( hwnd, WM_SETTEXT, 0, (LPARAM)lpString ); } /******************************************************************* - * SetWindowText32W (USER32.) + * SetWindowText32W (USER32.522) */ -void SetWindowText32W( HWND32 hwnd, LPCWSTR lpString ) +void WINAPI SetWindowText32W( HWND32 hwnd, LPCWSTR lpString ) { SendMessage32W( hwnd, WM_SETTEXT, 0, (LPARAM)lpString ); } @@ -1658,7 +1663,7 @@ void SetWindowText32W( HWND32 hwnd, LPCWSTR lpString ) /******************************************************************* * GetWindowTextLength16 (USER.38) */ -INT16 GetWindowTextLength16( HWND16 hwnd ) +INT16 WINAPI GetWindowTextLength16( HWND16 hwnd ) { return (INT16)SendMessage16( hwnd, WM_GETTEXTLENGTH, 0, 0 ); } @@ -1667,7 +1672,7 @@ INT16 GetWindowTextLength16( HWND16 hwnd ) /******************************************************************* * GetWindowTextLength32A (USER32.309) */ -INT32 GetWindowTextLength32A( HWND32 hwnd ) +INT32 WINAPI GetWindowTextLength32A( HWND32 hwnd ) { return SendMessage32A( hwnd, WM_GETTEXTLENGTH, 0, 0 ); } @@ -1675,7 +1680,7 @@ INT32 GetWindowTextLength32A( HWND32 hwnd ) /******************************************************************* * GetWindowTextLength32W (USER32.309) */ -INT32 GetWindowTextLength32W( HWND32 hwnd ) +INT32 WINAPI GetWindowTextLength32W( HWND32 hwnd ) { return SendMessage32W( hwnd, WM_GETTEXTLENGTH, 0, 0 ); } @@ -1684,7 +1689,7 @@ INT32 GetWindowTextLength32W( HWND32 hwnd ) /******************************************************************* * IsWindow16 (USER.47) */ -BOOL16 IsWindow16( HWND16 hwnd ) +BOOL16 WINAPI IsWindow16( HWND16 hwnd ) { return IsWindow32( hwnd ); } @@ -1693,7 +1698,7 @@ BOOL16 IsWindow16( HWND16 hwnd ) /******************************************************************* * IsWindow32 (USER32.347) */ -BOOL32 IsWindow32( HWND32 hwnd ) +BOOL32 WINAPI IsWindow32( HWND32 hwnd ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); return ((wndPtr != NULL) && (wndPtr->dwMagic == WND_MAGIC)); @@ -1703,7 +1708,7 @@ BOOL32 IsWindow32( HWND32 hwnd ) /***************************************************************** * GetParent16 (USER.46) */ -HWND16 GetParent16( HWND16 hwnd ) +HWND16 WINAPI GetParent16( HWND16 hwnd ) { return (HWND16)GetParent32( hwnd ); } @@ -1712,7 +1717,7 @@ HWND16 GetParent16( HWND16 hwnd ) /***************************************************************** * GetParent32 (USER32.277) */ -HWND32 GetParent32( HWND32 hwnd ) +HWND32 WINAPI GetParent32( HWND32 hwnd ) { WND *wndPtr = WIN_FindWndPtr(hwnd); if (!wndPtr) return 0; @@ -1720,6 +1725,16 @@ HWND32 GetParent32( HWND32 hwnd ) return wndPtr ? wndPtr->hwndSelf : 0; } +/***************************************************************** + * WIN_GetTopParent + * + * Get the top-level parent for a child window. + */ +WND* WIN_GetTopParentPtr( WND* pWnd ) +{ + while( pWnd && (pWnd->dwStyle & WS_CHILD)) pWnd = pWnd->parent; + return pWnd; +} /***************************************************************** * WIN_GetTopParent @@ -1728,8 +1743,7 @@ HWND32 GetParent32( HWND32 hwnd ) */ HWND32 WIN_GetTopParent( HWND32 hwnd ) { - WND *wndPtr = WIN_FindWndPtr( hwnd ); - while (wndPtr && (wndPtr->dwStyle & WS_CHILD)) wndPtr = wndPtr->parent; + WND *wndPtr = WIN_GetTopParentPtr ( WIN_FindWndPtr( hwnd ) ); return wndPtr ? wndPtr->hwndSelf : 0; } @@ -1737,7 +1751,7 @@ HWND32 WIN_GetTopParent( HWND32 hwnd ) /***************************************************************** * SetParent16 (USER.233) */ -HWND16 SetParent16( HWND16 hwndChild, HWND16 hwndNewParent ) +HWND16 WINAPI SetParent16( HWND16 hwndChild, HWND16 hwndNewParent ) { return SetParent32( hwndChild, hwndNewParent ); } @@ -1746,7 +1760,7 @@ HWND16 SetParent16( HWND16 hwndChild, HWND16 hwndNewParent ) /***************************************************************** * SetParent32 (USER32.494) */ -HWND32 SetParent32( HWND32 hwndChild, HWND32 hwndNewParent ) +HWND32 WINAPI SetParent32( HWND32 hwndChild, HWND32 hwndNewParent ) { HWND32 oldParent; @@ -1769,7 +1783,7 @@ HWND32 SetParent32( HWND32 hwndChild, HWND32 hwndNewParent ) /******************************************************************* * IsChild16 (USER.48) */ -BOOL16 IsChild16( HWND16 parent, HWND16 child ) +BOOL16 WINAPI IsChild16( HWND16 parent, HWND16 child ) { return IsChild32(parent,child); } @@ -1778,7 +1792,7 @@ BOOL16 IsChild16( HWND16 parent, HWND16 child ) /******************************************************************* * IsChild32 (USER32.338) */ -BOOL32 IsChild32( HWND32 parent, HWND32 child ) +BOOL32 WINAPI IsChild32( HWND32 parent, HWND32 child ) { WND * wndPtr = WIN_FindWndPtr( child ); while (wndPtr && (wndPtr->dwStyle & WS_CHILD)) @@ -1793,7 +1807,7 @@ BOOL32 IsChild32( HWND32 parent, HWND32 child ) /*********************************************************************** * IsWindowVisible16 (USER.49) */ -BOOL16 IsWindowVisible16( HWND16 hwnd ) +BOOL16 WINAPI IsWindowVisible16( HWND16 hwnd ) { return IsWindowVisible32(hwnd); } @@ -1802,7 +1816,7 @@ BOOL16 IsWindowVisible16( HWND16 hwnd ) /*********************************************************************** * IsWindowVisible32 (USER32.350) */ -BOOL32 IsWindowVisible32( HWND32 hwnd ) +BOOL32 WINAPI IsWindowVisible32( HWND32 hwnd ) { WND *wndPtr = WIN_FindWndPtr( hwnd ); while (wndPtr && (wndPtr->dwStyle & WS_CHILD)) @@ -1836,7 +1850,7 @@ BOOL32 WIN_IsWindowDrawable( WND* wnd, BOOL32 icon ) /******************************************************************* * GetTopWindow16 (USER.229) */ -HWND16 GetTopWindow16( HWND16 hwnd ) +HWND16 WINAPI GetTopWindow16( HWND16 hwnd ) { return GetTopWindow32(hwnd); } @@ -1845,7 +1859,7 @@ HWND16 GetTopWindow16( HWND16 hwnd ) /******************************************************************* * GetTopWindow32 (USER.229) */ -HWND32 GetTopWindow32( HWND32 hwnd ) +HWND32 WINAPI GetTopWindow32( HWND32 hwnd ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); if (wndPtr && wndPtr->child) return wndPtr->child->hwndSelf; @@ -1856,7 +1870,7 @@ HWND32 GetTopWindow32( HWND32 hwnd ) /******************************************************************* * GetWindow16 (USER.262) */ -HWND16 GetWindow16( HWND16 hwnd, WORD rel ) +HWND16 WINAPI GetWindow16( HWND16 hwnd, WORD rel ) { return GetWindow32( hwnd,rel ); } @@ -1865,7 +1879,7 @@ HWND16 GetWindow16( HWND16 hwnd, WORD rel ) /******************************************************************* * GetWindow32 (USER32.301) */ -HWND32 GetWindow32( HWND32 hwnd, WORD rel ) +HWND32 WINAPI GetWindow32( HWND32 hwnd, WORD rel ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr) return 0; @@ -1908,7 +1922,7 @@ HWND32 GetWindow32( HWND32 hwnd, WORD rel ) /******************************************************************* * GetNextWindow16 (USER.230) */ -HWND16 GetNextWindow16( HWND16 hwnd, WORD flag ) +HWND16 WINAPI GetNextWindow16( HWND16 hwnd, WORD flag ) { if ((flag != GW_HWNDNEXT) && (flag != GW_HWNDPREV)) return 0; return GetWindow16( hwnd, flag ); @@ -1917,7 +1931,7 @@ HWND16 GetNextWindow16( HWND16 hwnd, WORD flag ) /******************************************************************* * ShowOwnedPopups16 (USER.265) */ -void ShowOwnedPopups16( HWND16 owner, BOOL16 fShow ) +void WINAPI ShowOwnedPopups16( HWND16 owner, BOOL16 fShow ) { ShowOwnedPopups32( owner, fShow ); } @@ -1926,7 +1940,7 @@ void ShowOwnedPopups16( HWND16 owner, BOOL16 fShow ) /******************************************************************* * ShowOwnedPopups32 (USER32.530) */ -BOOL32 ShowOwnedPopups32( HWND32 owner, BOOL32 fShow ) +BOOL32 WINAPI ShowOwnedPopups32( HWND32 owner, BOOL32 fShow ) { WND *pWnd = pWndDesktop->child; while (pWnd) @@ -1943,7 +1957,7 @@ BOOL32 ShowOwnedPopups32( HWND32 owner, BOOL32 fShow ) /******************************************************************* * GetLastActivePopup16 (USER.287) */ -HWND16 GetLastActivePopup16( HWND16 hwnd ) +HWND16 WINAPI GetLastActivePopup16( HWND16 hwnd ) { return GetLastActivePopup32( hwnd ); } @@ -1951,7 +1965,7 @@ HWND16 GetLastActivePopup16( HWND16 hwnd ) /******************************************************************* * GetLastActivePopup32 (USER32.255) */ -HWND32 GetLastActivePopup32( HWND32 hwnd ) +HWND32 WINAPI GetLastActivePopup32( HWND32 hwnd ) { WND *wndPtr; wndPtr = WIN_FindWndPtr(hwnd); @@ -2016,7 +2030,7 @@ WND **WIN_BuildWinArray( WND *wndPtr, UINT32 bwaFlags, UINT32* pTotal ) /******************************************************************* * EnumWindows16 (USER.54) */ -BOOL16 EnumWindows16( WNDENUMPROC16 lpEnumFunc, LPARAM lParam ) +BOOL16 WINAPI EnumWindows16( WNDENUMPROC16 lpEnumFunc, LPARAM lParam ) { WND **list, **ppWnd; @@ -2042,7 +2056,7 @@ BOOL16 EnumWindows16( WNDENUMPROC16 lpEnumFunc, LPARAM lParam ) /******************************************************************* * EnumWindows32 (USER32.192) */ -BOOL32 EnumWindows32( WNDENUMPROC32 lpEnumFunc, LPARAM lParam ) +BOOL32 WINAPI EnumWindows32( WNDENUMPROC32 lpEnumFunc, LPARAM lParam ) { return (BOOL32)EnumWindows16( (WNDENUMPROC16)lpEnumFunc, lParam ); } @@ -2051,7 +2065,8 @@ BOOL32 EnumWindows32( WNDENUMPROC32 lpEnumFunc, LPARAM lParam ) /********************************************************************** * EnumTaskWindows16 (USER.225) */ -BOOL16 EnumTaskWindows16( HTASK16 hTask, WNDENUMPROC16 func, LPARAM lParam ) +BOOL16 WINAPI EnumTaskWindows16( HTASK16 hTask, WNDENUMPROC16 func, + LPARAM lParam ) { WND **list, **ppWnd; HQUEUE16 hQueue = GetTaskQueue( hTask ); @@ -2078,7 +2093,7 @@ BOOL16 EnumTaskWindows16( HTASK16 hTask, WNDENUMPROC16 func, LPARAM lParam ) /********************************************************************** * EnumThreadWindows (USER32.189) */ -BOOL32 EnumThreadWindows( DWORD id, WNDENUMPROC32 func, LPARAM lParam ) +BOOL32 WINAPI EnumThreadWindows( DWORD id, WNDENUMPROC32 func, LPARAM lParam ) { THDB *tdb = (THDB*)id; @@ -2116,7 +2131,8 @@ static BOOL16 WIN_EnumChildWindows( WND **ppWnd, WNDENUMPROC16 func, /********************************************************************** * EnumChildWindows16 (USER.55) */ -BOOL16 EnumChildWindows16( HWND16 parent, WNDENUMPROC16 func, LPARAM lParam ) +BOOL16 WINAPI EnumChildWindows16( HWND16 parent, WNDENUMPROC16 func, + LPARAM lParam ) { WND **list, *pParent; @@ -2131,7 +2147,8 @@ BOOL16 EnumChildWindows16( HWND16 parent, WNDENUMPROC16 func, LPARAM lParam ) /********************************************************************** * EnumChildWindows32 (USER32.177) */ -BOOL32 EnumChildWindows32( HWND32 parent, WNDENUMPROC32 func, LPARAM lParam ) +BOOL32 WINAPI EnumChildWindows32( HWND32 parent, WNDENUMPROC32 func, + LPARAM lParam ) { return (BOOL32)EnumChildWindows16( (HWND16)parent, (WNDENUMPROC16)func, lParam ); @@ -2141,7 +2158,7 @@ BOOL32 EnumChildWindows32( HWND32 parent, WNDENUMPROC32 func, LPARAM lParam ) /******************************************************************* * AnyPopup16 (USER.52) */ -BOOL16 AnyPopup16(void) +BOOL16 WINAPI AnyPopup16(void) { return AnyPopup32(); } @@ -2150,7 +2167,7 @@ BOOL16 AnyPopup16(void) /******************************************************************* * AnyPopup32 (USER32.3) */ -BOOL32 AnyPopup32(void) +BOOL32 WINAPI AnyPopup32(void) { WND *wndPtr; for (wndPtr = pWndDesktop->child; wndPtr; wndPtr = wndPtr->next) @@ -2162,7 +2179,7 @@ BOOL32 AnyPopup32(void) /******************************************************************* * FlashWindow16 (USER.105) */ -BOOL16 FlashWindow16( HWND16 hWnd, BOOL16 bInvert ) +BOOL16 WINAPI FlashWindow16( HWND16 hWnd, BOOL16 bInvert ) { return FlashWindow32( hWnd, bInvert ); } @@ -2171,7 +2188,7 @@ BOOL16 FlashWindow16( HWND16 hWnd, BOOL16 bInvert ) /******************************************************************* * FlashWindow32 (USER32.201) */ -BOOL32 FlashWindow32( HWND32 hWnd, BOOL32 bInvert ) +BOOL32 WINAPI FlashWindow32( HWND32 hWnd, BOOL32 bInvert ) { WND *wndPtr = WIN_FindWndPtr(hWnd); @@ -2214,7 +2231,7 @@ BOOL32 FlashWindow32( HWND32 hWnd, BOOL32 bInvert ) /******************************************************************* * SetSysModalWindow16 (USER.188) */ -HWND16 SetSysModalWindow16( HWND16 hWnd ) +HWND16 WINAPI SetSysModalWindow16( HWND16 hWnd ) { HWND32 hWndOldModal = hwndSysModal; hwndSysModal = hWnd; @@ -2226,7 +2243,7 @@ HWND16 SetSysModalWindow16( HWND16 hWnd ) /******************************************************************* * GetSysModalWindow16 (USER.52) */ -HWND16 GetSysModalWindow16(void) +HWND16 WINAPI GetSysModalWindow16(void) { return hwndSysModal; } @@ -2307,7 +2324,7 @@ BOOL16 DRAG_QueryUpdate( HWND32 hQueryWnd, SEGPTR spDragInfo, BOOL32 bNoSend ) /******************************************************************* * DragDetect (USER.465) */ -BOOL16 DragDetect16( HWND16 hWnd, POINT16 pt ) +BOOL16 WINAPI DragDetect16( HWND16 hWnd, POINT16 pt ) { POINT32 pt32; CONV_POINT16TO32( &pt, &pt32 ); @@ -2317,7 +2334,7 @@ BOOL16 DragDetect16( HWND16 hWnd, POINT16 pt ) /******************************************************************* * DragDetect32 (USER32.150) */ -BOOL32 DragDetect32( HWND32 hWnd, POINT32 pt ) +BOOL32 WINAPI DragDetect32( HWND32 hWnd, POINT32 pt ) { MSG16 msg; RECT16 rect; @@ -2356,8 +2373,8 @@ BOOL32 DragDetect32( HWND32 hWnd, POINT32 pt ) /****************************************************************************** * DragObject16 (USER.464) */ -DWORD DragObject16( HWND16 hwndScope, HWND16 hWnd, UINT16 wObj, - HANDLE16 hOfStruct, WORD szList, HCURSOR16 hCursor ) +DWORD WINAPI DragObject16( HWND16 hwndScope, HWND16 hWnd, UINT16 wObj, + HANDLE16 hOfStruct, WORD szList, HCURSOR16 hCursor ) { MSG16 msg; LPDRAGINFO lpDragInfo; diff --git a/windows/winhelp.c b/windows/winhelp.c index 49ae2ca1698..856d2d5b011 100644 --- a/windows/winhelp.c +++ b/windows/winhelp.c @@ -14,8 +14,8 @@ /********************************************************************** * WinHelp16 (USER.171) */ -BOOL16 WinHelp16( HWND16 hWnd, LPCSTR lpHelpFile, UINT16 wCommand, - DWORD dwData ) +BOOL16 WINAPI WinHelp16( HWND16 hWnd, LPCSTR lpHelpFile, UINT16 wCommand, + DWORD dwData ) { return WinHelp32A( hWnd, lpHelpFile, wCommand, (DWORD)PTR_SEG_TO_LIN(dwData) ); @@ -25,8 +25,8 @@ BOOL16 WinHelp16( HWND16 hWnd, LPCSTR lpHelpFile, UINT16 wCommand, /********************************************************************** * WinHelp32A (USER32.578) */ -BOOL32 WinHelp32A( HWND32 hWnd, LPCSTR lpHelpFile, UINT32 wCommand, - DWORD dwData ) +BOOL32 WINAPI WinHelp32A( HWND32 hWnd, LPCSTR lpHelpFile, UINT32 wCommand, + DWORD dwData ) { static WORD WM_WINHELP=0; HWND32 hDest; @@ -103,8 +103,8 @@ BOOL32 WinHelp32A( HWND32 hWnd, LPCSTR lpHelpFile, UINT32 wCommand, /********************************************************************** * WinHelp32W (USER32.579) */ -BOOL32 WinHelp32W( HWND32 hWnd, LPCWSTR helpFile, UINT32 command, - DWORD dwData ) +BOOL32 WINAPI WinHelp32W( HWND32 hWnd, LPCWSTR helpFile, UINT32 command, + DWORD dwData ) { LPSTR file = HEAP_strdupWtoA( GetProcessHeap(), 0, helpFile ); BOOL32 ret = WinHelp32A( hWnd, file, command, dwData ); diff --git a/windows/winpos.c b/windows/winpos.c index 472b01138a1..e418e7e2929 100644 --- a/windows/winpos.c +++ b/windows/winpos.c @@ -150,14 +150,14 @@ static POINT16 WINPOS_FindIconPos( WND* wndPtr, POINT16 pt ) /*********************************************************************** * ArrangeIconicWindows16 (USER.170) */ -UINT16 ArrangeIconicWindows16( HWND16 parent) +UINT16 WINAPI ArrangeIconicWindows16( HWND16 parent) { return ArrangeIconicWindows32(parent); } /*********************************************************************** * ArrangeIconicWindows32 (USER32.6) */ -UINT32 ArrangeIconicWindows32( HWND32 parent ) +UINT32 WINAPI ArrangeIconicWindows32( HWND32 parent ) { RECT32 rectParent; HWND32 hwndChild; @@ -196,7 +196,7 @@ UINT32 ArrangeIconicWindows32( HWND32 parent ) /*********************************************************************** * SwitchToThisWindow16 (USER.172) */ -void SwitchToThisWindow16( HWND16 hwnd, BOOL16 restore ) +void WINAPI SwitchToThisWindow16( HWND16 hwnd, BOOL16 restore ) { SwitchToThisWindow32( hwnd, restore ); } @@ -205,7 +205,7 @@ void SwitchToThisWindow16( HWND16 hwnd, BOOL16 restore ) /*********************************************************************** * SwitchToThisWindow32 (USER32.538) */ -void SwitchToThisWindow32( HWND32 hwnd, BOOL32 restore ) +void WINAPI SwitchToThisWindow32( HWND32 hwnd, BOOL32 restore ) { ShowWindow32( hwnd, restore ? SW_RESTORE : SW_SHOWMINIMIZED ); } @@ -214,7 +214,7 @@ void SwitchToThisWindow32( HWND32 hwnd, BOOL32 restore ) /*********************************************************************** * GetWindowRect16 (USER.32) */ -void GetWindowRect16( HWND16 hwnd, LPRECT16 rect ) +void WINAPI GetWindowRect16( HWND16 hwnd, LPRECT16 rect ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr) return; @@ -228,7 +228,7 @@ void GetWindowRect16( HWND16 hwnd, LPRECT16 rect ) /*********************************************************************** * GetWindowRect32 (USER.32) */ -void GetWindowRect32( HWND32 hwnd, LPRECT32 rect ) +void WINAPI GetWindowRect32( HWND32 hwnd, LPRECT32 rect ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr) return; @@ -242,7 +242,7 @@ void GetWindowRect32( HWND32 hwnd, LPRECT32 rect ) /*********************************************************************** * GetClientRect16 (USER.33) */ -void GetClientRect16( HWND16 hwnd, LPRECT16 rect ) +void WINAPI GetClientRect16( HWND16 hwnd, LPRECT16 rect ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); @@ -258,7 +258,7 @@ void GetClientRect16( HWND16 hwnd, LPRECT16 rect ) /*********************************************************************** * GetClientRect32 (USER32.219) */ -void GetClientRect32( HWND32 hwnd, LPRECT32 rect ) +void WINAPI GetClientRect32( HWND32 hwnd, LPRECT32 rect ) { WND * wndPtr = WIN_FindWndPtr( hwnd ); @@ -274,7 +274,7 @@ void GetClientRect32( HWND32 hwnd, LPRECT32 rect ) /******************************************************************* * ClientToScreen16 (USER.28) */ -BOOL16 ClientToScreen16( HWND16 hwnd, LPPOINT16 lppnt ) +BOOL16 WINAPI ClientToScreen16( HWND16 hwnd, LPPOINT16 lppnt ) { MapWindowPoints16( hwnd, 0, lppnt, 1 ); return TRUE; @@ -284,7 +284,7 @@ BOOL16 ClientToScreen16( HWND16 hwnd, LPPOINT16 lppnt ) /******************************************************************* * ClientToScreen32 (USER32.51) */ -BOOL32 ClientToScreen32( HWND32 hwnd, LPPOINT32 lppnt ) +BOOL32 WINAPI ClientToScreen32( HWND32 hwnd, LPPOINT32 lppnt ) { MapWindowPoints32( hwnd, 0, lppnt, 1 ); return TRUE; @@ -294,7 +294,7 @@ BOOL32 ClientToScreen32( HWND32 hwnd, LPPOINT32 lppnt ) /******************************************************************* * ScreenToClient16 (USER.29) */ -void ScreenToClient16( HWND16 hwnd, LPPOINT16 lppnt ) +void WINAPI ScreenToClient16( HWND16 hwnd, LPPOINT16 lppnt ) { MapWindowPoints16( 0, hwnd, lppnt, 1 ); } @@ -303,7 +303,7 @@ void ScreenToClient16( HWND16 hwnd, LPPOINT16 lppnt ) /******************************************************************* * ScreenToClient32 (USER32.446) */ -void ScreenToClient32( HWND32 hwnd, LPPOINT32 lppnt ) +void WINAPI ScreenToClient32( HWND32 hwnd, LPPOINT32 lppnt ) { MapWindowPoints32( 0, hwnd, lppnt, 1 ); } @@ -388,7 +388,7 @@ INT16 WINPOS_WindowFromPoint( WND* wndScope, POINT16 pt, WND **ppWnd ) /******************************************************************* * WindowFromPoint16 (USER.30) */ -HWND16 WindowFromPoint16( POINT16 pt ) +HWND16 WINAPI WindowFromPoint16( POINT16 pt ) { WND *pWnd; WINPOS_WindowFromPoint( WIN_GetDesktop(), pt, &pWnd ); @@ -399,7 +399,7 @@ HWND16 WindowFromPoint16( POINT16 pt ) /******************************************************************* * WindowFromPoint32 (USER32.581) */ -HWND32 WindowFromPoint32( POINT32 pt ) +HWND32 WINAPI WindowFromPoint32( POINT32 pt ) { WND *pWnd; POINT16 pt16; @@ -412,7 +412,7 @@ HWND32 WindowFromPoint32( POINT32 pt ) /******************************************************************* * ChildWindowFromPoint16 (USER.191) */ -HWND16 ChildWindowFromPoint16( HWND16 hwndParent, POINT16 pt ) +HWND16 WINAPI ChildWindowFromPoint16( HWND16 hwndParent, POINT16 pt ) { POINT32 pt32; CONV_POINT16TO32( &pt, &pt32 ); @@ -423,7 +423,7 @@ HWND16 ChildWindowFromPoint16( HWND16 hwndParent, POINT16 pt ) /******************************************************************* * ChildWindowFromPoint32 (USER32.48) */ -HWND32 ChildWindowFromPoint32( HWND32 hwndParent, POINT32 pt ) +HWND32 WINAPI ChildWindowFromPoint32( HWND32 hwndParent, POINT32 pt ) { /* pt is in the client coordinates */ @@ -500,8 +500,8 @@ static void WINPOS_GetWinOffset( HWND32 hwndFrom, HWND32 hwndTo, /******************************************************************* * MapWindowPoints16 (USER.258) */ -void MapWindowPoints16( HWND16 hwndFrom, HWND16 hwndTo, - LPPOINT16 lppt, UINT16 count ) +void WINAPI MapWindowPoints16( HWND16 hwndFrom, HWND16 hwndTo, + LPPOINT16 lppt, UINT16 count ) { POINT32 offset; @@ -518,8 +518,8 @@ void MapWindowPoints16( HWND16 hwndFrom, HWND16 hwndTo, /******************************************************************* * MapWindowPoints32 (USER32.385) */ -void MapWindowPoints32( HWND32 hwndFrom, HWND32 hwndTo, - LPPOINT32 lppt, UINT32 count ) +void WINAPI MapWindowPoints32( HWND32 hwndFrom, HWND32 hwndTo, + LPPOINT32 lppt, UINT32 count ) { POINT32 offset; @@ -536,14 +536,16 @@ void MapWindowPoints32( HWND32 hwndFrom, HWND32 hwndTo, /*********************************************************************** * IsIconic16 (USER.31) */ -BOOL16 IsIconic16(HWND16 hWnd) +BOOL16 WINAPI IsIconic16(HWND16 hWnd) { return IsIconic32(hWnd); } + + /*********************************************************************** * IsIconic32 (USER32.344) */ -BOOL32 IsIconic32(HWND32 hWnd) +BOOL32 WINAPI IsIconic32(HWND32 hWnd) { WND * wndPtr = WIN_FindWndPtr(hWnd); if (wndPtr == NULL) return FALSE; @@ -554,14 +556,16 @@ BOOL32 IsIconic32(HWND32 hWnd) /*********************************************************************** * IsZoomed (USER.272) */ -BOOL16 IsZoomed16(HWND16 hWnd) +BOOL16 WINAPI IsZoomed16(HWND16 hWnd) { return IsZoomed32(hWnd); } + + /*********************************************************************** * IsZoomed (USER32.351) */ -BOOL32 IsZoomed32(HWND32 hWnd) +BOOL32 WINAPI IsZoomed32(HWND32 hWnd) { WND * wndPtr = WIN_FindWndPtr(hWnd); if (wndPtr == NULL) return FALSE; @@ -572,7 +576,7 @@ BOOL32 IsZoomed32(HWND32 hWnd) /******************************************************************* * GetActiveWindow (USER.60) */ -HWND16 GetActiveWindow16(void) +HWND16 WINAPI GetActiveWindow16(void) { return (HWND16)hwndActive; } @@ -580,7 +584,7 @@ HWND16 GetActiveWindow16(void) /******************************************************************* * GetActiveWindow (USER32.204) */ -HWND32 GetActiveWindow32(void) +HWND32 WINAPI GetActiveWindow32(void) { return (HWND32)hwndActive; } @@ -591,22 +595,25 @@ HWND32 GetActiveWindow32(void) */ static BOOL32 WINPOS_CanActivate(WND* pWnd) { - return (pWnd) ? ((!(pWnd->dwStyle & WS_DISABLED) && - pWnd->dwStyle & WS_VISIBLE ) ? TRUE : FALSE) : FALSE; + if( pWnd && ((pWnd->dwStyle & (WS_DISABLED | WS_VISIBLE | WS_CHILD)) + == WS_VISIBLE) ) return TRUE; + return FALSE; } /******************************************************************* - * SetActiveWindow (USER.59) + * SetActiveWindow16 (USER.59) */ -HWND16 SetActiveWindow16( HWND16 hwnd ) +HWND16 WINAPI SetActiveWindow16( HWND16 hwnd ) { return SetActiveWindow32(hwnd); } + + /******************************************************************* - * SetActiveWindow (USER.59) + * SetActiveWindow32 (USER32.462) */ -HWND32 SetActiveWindow32( HWND32 hwnd ) +HWND32 WINAPI SetActiveWindow32( HWND32 hwnd ) { HWND32 prev = hwndActive; WND *wndPtr = WIN_FindWndPtr( hwnd ); @@ -619,35 +626,39 @@ HWND32 SetActiveWindow32( HWND32 hwnd ) /*********************************************************************** - * BringWindowToTop (USER.45) + * BringWindowToTop16 (USER.45) */ -BOOL16 BringWindowToTop16( HWND16 hwnd ) +BOOL16 WINAPI BringWindowToTop16( HWND16 hwnd ) { return BringWindowToTop32(hwnd); } + + /*********************************************************************** - * BringWindowToTop (USER32.10) + * BringWindowToTop32 (USER32.10) */ -BOOL32 BringWindowToTop32( HWND32 hwnd ) +BOOL32 WINAPI BringWindowToTop32( HWND32 hwnd ) { return SetWindowPos32( hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE ); } /*********************************************************************** - * MoveWindow (USER.56) + * MoveWindow16 (USER.56) */ -BOOL16 MoveWindow16( - HWND16 hwnd, INT16 x, INT16 y, INT16 cx, INT16 cy, BOOL16 repaint -) { +BOOL16 WINAPI MoveWindow16( HWND16 hwnd, INT16 x, INT16 y, INT16 cx, INT16 cy, + BOOL16 repaint ) +{ return MoveWindow32(hwnd,x,y,cx,cy,repaint); } + + /*********************************************************************** - * MoveWindow (USER32.398) + * MoveWindow32 (USER32.398) */ -BOOL32 MoveWindow32( - HWND32 hwnd, INT32 x, INT32 y, INT32 cx, INT32 cy, BOOL32 repaint -) { +BOOL32 WINAPI MoveWindow32( HWND32 hwnd, INT32 x, INT32 y, INT32 cx, INT32 cy, + BOOL32 repaint ) +{ int flags = SWP_NOZORDER | SWP_NOACTIVATE; if (!repaint) flags |= SWP_NOREDRAW; dprintf_win(stddeb, "MoveWindow: %04x %d,%d %dx%d %d\n", @@ -900,16 +911,18 @@ UINT16 WINPOS_MinMaximize( WND* wndPtr, UINT16 cmd, LPRECT16 lpRect ) } /*********************************************************************** - * ShowWindow (USER.42) + * ShowWindow16 (USER.42) */ -BOOL16 ShowWindow16( HWND16 hwnd, INT16 cmd ) +BOOL16 WINAPI ShowWindow16( HWND16 hwnd, INT16 cmd ) { return ShowWindow32(hwnd,cmd); } + + /*********************************************************************** - * ShowWindow (USER.42) + * ShowWindow32 (USER.42) */ -BOOL32 ShowWindow32( HWND32 hwnd, INT32 cmd ) +BOOL32 WINAPI ShowWindow32( HWND32 hwnd, INT32 cmd ) { WND* wndPtr = WIN_FindWndPtr( hwnd ); BOOL32 wasVisible, showFlag; @@ -1019,7 +1032,8 @@ BOOL32 ShowWindow32( HWND32 hwnd, INT32 cmd ) /*********************************************************************** * GetInternalWindowPos16 (USER.460) */ -UINT16 GetInternalWindowPos16( HWND16 hwnd, LPRECT16 rectWnd, LPPOINT16 ptIcon) +UINT16 WINAPI GetInternalWindowPos16( HWND16 hwnd, LPRECT16 rectWnd, + LPPOINT16 ptIcon ) { WINDOWPLACEMENT16 wndpl; if (GetWindowPlacement16( hwnd, &wndpl )) @@ -1035,7 +1049,8 @@ UINT16 GetInternalWindowPos16( HWND16 hwnd, LPRECT16 rectWnd, LPPOINT16 ptIcon) /*********************************************************************** * GetInternalWindowPos32 (USER32.244) */ -UINT32 GetInternalWindowPos32( HWND32 hwnd, LPRECT32 rectWnd, LPPOINT32 ptIcon) +UINT32 WINAPI GetInternalWindowPos32( HWND32 hwnd, LPRECT32 rectWnd, + LPPOINT32 ptIcon ) { WINDOWPLACEMENT32 wndpl; if (GetWindowPlacement32( hwnd, &wndpl )) @@ -1050,7 +1065,7 @@ UINT32 GetInternalWindowPos32( HWND32 hwnd, LPRECT32 rectWnd, LPPOINT32 ptIcon) /*********************************************************************** * GetWindowPlacement16 (USER.370) */ -BOOL16 GetWindowPlacement16( HWND16 hwnd, WINDOWPLACEMENT16 *wndpl ) +BOOL16 WINAPI GetWindowPlacement16( HWND16 hwnd, WINDOWPLACEMENT16 *wndpl ) { WND *pWnd = WIN_FindWndPtr( hwnd ); if( pWnd ) @@ -1079,7 +1094,7 @@ BOOL16 GetWindowPlacement16( HWND16 hwnd, WINDOWPLACEMENT16 *wndpl ) /*********************************************************************** * GetWindowPlacement32 (USER32.306) */ -BOOL32 GetWindowPlacement32( HWND32 hwnd, WINDOWPLACEMENT32 *pwpl32 ) +BOOL32 WINAPI GetWindowPlacement32( HWND32 hwnd, WINDOWPLACEMENT32 *pwpl32 ) { if( pwpl32 ) { @@ -1152,15 +1167,16 @@ static BOOL32 WINPOS_SetPlacement( HWND32 hwnd, const WINDOWPLACEMENT16 *wndpl, /*********************************************************************** * SetWindowPlacement16 (USER.371) */ -BOOL16 SetWindowPlacement16( HWND16 hwnd, const WINDOWPLACEMENT16 *wndpl ) +BOOL16 WINAPI SetWindowPlacement16(HWND16 hwnd, const WINDOWPLACEMENT16 *wndpl) { - return WINPOS_SetPlacement( hwnd, wndpl, PLACE_MIN | PLACE_MAX | PLACE_RECT ); + return WINPOS_SetPlacement( hwnd, wndpl, + PLACE_MIN | PLACE_MAX | PLACE_RECT ); } /*********************************************************************** * SetWindowPlacement32 (USER32.518) */ -BOOL32 SetWindowPlacement32( HWND32 hwnd, const WINDOWPLACEMENT32 *pwpl32 ) +BOOL32 WINAPI SetWindowPlacement32( HWND32 hwnd, const WINDOWPLACEMENT32 *pwpl32 ) { if( pwpl32 ) { @@ -1180,8 +1196,8 @@ BOOL32 SetWindowPlacement32( HWND32 hwnd, const WINDOWPLACEMENT32 *pwpl32 ) /*********************************************************************** * SetInternalWindowPos16 (USER.461) */ -void SetInternalWindowPos16( HWND16 hwnd, UINT16 showCmd, - LPRECT16 rect, LPPOINT16 pt ) +void WINAPI SetInternalWindowPos16( HWND16 hwnd, UINT16 showCmd, + LPRECT16 rect, LPPOINT16 pt ) { if( IsWindow16(hwnd) ) { @@ -1211,8 +1227,8 @@ void SetInternalWindowPos16( HWND16 hwnd, UINT16 showCmd, /*********************************************************************** * SetInternalWindowPos32 (USER32.482) */ -void SetInternalWindowPos32( HWND32 hwnd, UINT32 showCmd, - LPRECT32 rect, LPPOINT32 pt ) +void WINAPI SetInternalWindowPos32( HWND32 hwnd, UINT32 showCmd, + LPRECT32 rect, LPPOINT32 pt ) { if( IsWindow32(hwnd) ) { @@ -1270,7 +1286,9 @@ static void WINPOS_ForceXWindowRaise( WND* pWnd ) /******************************************************************* * WINPOS_SetActiveWindow * - * back-end to SetActiveWindow + * SetActiveWindow() back-end. This is the only function that + * can assign active status to a window. It must be called only + * for the top level windows. */ BOOL32 WINPOS_SetActiveWindow( HWND32 hWnd, BOOL32 fMouse, BOOL32 fChangeFocus) { @@ -1282,10 +1300,9 @@ BOOL32 WINPOS_SetActiveWindow( HWND32 hWnd, BOOL32 fMouse, BOOL32 fChangeFocus) /* paranoid checks */ if( hWnd == GetDesktopWindow32() || hWnd == hwndActive ) return 0; -/* if (wndPtr && (GetTaskQueue(0) != wndPtr->hmemTaskQ)) - return 0; - */ - +/* if (wndPtr && (GetTaskQueue(0) != wndPtr->hmemTaskQ)) + * return 0; + */ wndPtr = WIN_FindWndPtr(hWnd); hOldActiveQueue = (pActiveQueue)?pActiveQueue->self : 0; @@ -1432,7 +1449,7 @@ BOOL32 WINPOS_SetActiveWindow( HWND32 hWnd, BOOL32 fMouse, BOOL32 fChangeFocus) /******************************************************************* * WINPOS_ActivateOtherWindow * - * DestroyWindow() helper. pWnd must be a top-level window. + * Activates window other than pWnd. */ BOOL32 WINPOS_ActivateOtherWindow(WND* pWnd) { @@ -1446,29 +1463,27 @@ BOOL32 WINPOS_ActivateOtherWindow(WND* pWnd) ( hwndActive || QUEUE_IsExitingQueue(pWnd->hmemTaskQ)) ) return 0; - if( pWnd->dwStyle & WS_POPUP && - WINPOS_CanActivate( pWnd->owner ) ) pWndTo = pWnd->owner; - else + if( !(pWnd->dwStyle & WS_POPUP) || !(pWnd->owner) || + !WINPOS_CanActivate((pWndTo = WIN_GetTopParentPtr(pWnd->owner))) ) { - WND* pWndPtr = pWnd; + WND* pWndPtr = WIN_GetTopParentPtr(pWnd); - pWndTo = WIN_FindWndPtr(hwndPrevActive); + pWndTo = WIN_FindWndPtr(hwndPrevActive); - while( !WINPOS_CanActivate(pWndTo) ) - { - /* by now owned windows should've been taken care of */ + while( !WINPOS_CanActivate(pWndTo) ) + { + /* by now owned windows should've been taken care of */ - pWndTo = pWndPtr->next; - pWndPtr = pWndTo; - if( !pWndTo ) return 0; - } + pWndTo = pWndPtr->next; + pWndPtr = pWndTo; + if( !pWndTo ) break; + } } - bRet = WINPOS_SetActiveWindow( pWndTo->hwndSelf, FALSE, TRUE ); + bRet = WINPOS_SetActiveWindow( pWndTo ? pWndTo->hwndSelf : 0, FALSE, TRUE ); /* switch desktop queue to current active */ - if( pWndTo->parent == WIN_GetDesktop()) - WIN_GetDesktop()->hmemTaskQ = pWndTo->hmemTaskQ; + if( pWndTo ) WIN_GetDesktop()->hmemTaskQ = pWndTo->hmemTaskQ; hwndPrevActive = 0; return bRet; @@ -1951,8 +1966,8 @@ static void WINPOS_SetXWindowPos( const WINDOWPOS32 *winpos ) /*********************************************************************** * SetWindowPos (USER.232) */ -BOOL16 SetWindowPos16( HWND16 hwnd, HWND16 hwndInsertAfter, INT16 x, INT16 y, - INT16 cx, INT16 cy, WORD flags ) +BOOL16 WINAPI SetWindowPos16( HWND16 hwnd, HWND16 hwndInsertAfter, + INT16 x, INT16 y, INT16 cx, INT16 cy, WORD flags) { return SetWindowPos32(hwnd,(INT32)(INT16)hwndInsertAfter,x,y,cx,cy,flags); } @@ -1960,8 +1975,8 @@ BOOL16 SetWindowPos16( HWND16 hwnd, HWND16 hwndInsertAfter, INT16 x, INT16 y, /*********************************************************************** * SetWindowPos (USER32.519) */ -BOOL32 SetWindowPos32( HWND32 hwnd, HWND32 hwndInsertAfter, INT32 x, INT32 y, - INT32 cx, INT32 cy, WORD flags ) +BOOL32 WINAPI SetWindowPos32( HWND32 hwnd, HWND32 hwndInsertAfter, + INT32 x, INT32 y, INT32 cx, INT32 cy, WORD flags) { WINDOWPOS32 winpos; WND * wndPtr; @@ -2273,17 +2288,7 @@ BOOL32 SetWindowPos32( HWND32 hwnd, HWND32 hwndInsertAfter, INT32 x, INT32 y, if (hwnd == CARET_GetHwnd()) DestroyCaret32(); if (winpos.hwnd == hwndActive) - { - /* Activate previously active window if possible */ - HWND32 newActive = hwndPrevActive; - if (!IsWindow32(newActive) || (newActive == winpos.hwnd)) - { - newActive = GetTopWindow32( GetDesktopWindow32() ); - if (newActive == winpos.hwnd) - newActive = wndPtr->next ? wndPtr->next->hwndSelf : 0; - } - WINPOS_ChangeActiveWindow( newActive, FALSE ); - } + WINPOS_ActivateOtherWindow( wndPtr ); } /* Activate the window */ @@ -2325,7 +2330,7 @@ BOOL32 SetWindowPos32( HWND32 hwnd, HWND32 hwndInsertAfter, INT32 x, INT32 y, /*********************************************************************** * BeginDeferWindowPos16 (USER.259) */ -HDWP16 BeginDeferWindowPos16( INT16 count ) +HDWP16 WINAPI BeginDeferWindowPos16( INT16 count ) { return BeginDeferWindowPos32( count ); } @@ -2334,7 +2339,7 @@ HDWP16 BeginDeferWindowPos16( INT16 count ) /*********************************************************************** * BeginDeferWindowPos32 (USER32.8) */ -HDWP32 BeginDeferWindowPos32( INT32 count ) +HDWP32 WINAPI BeginDeferWindowPos32( INT32 count ) { HDWP32 handle; DWP *pDWP; @@ -2355,8 +2360,9 @@ HDWP32 BeginDeferWindowPos32( INT32 count ) /*********************************************************************** * DeferWindowPos16 (USER.260) */ -HDWP16 DeferWindowPos16( HDWP16 hdwp, HWND16 hwnd, HWND16 hwndAfter, - INT16 x, INT16 y, INT16 cx, INT16 cy, UINT16 flags ) +HDWP16 WINAPI DeferWindowPos16( HDWP16 hdwp, HWND16 hwnd, HWND16 hwndAfter, + INT16 x, INT16 y, INT16 cx, INT16 cy, + UINT16 flags ) { return DeferWindowPos32( hdwp, hwnd, (INT32)(INT16)hwndAfter, x, y, cx, cy, flags ); @@ -2366,8 +2372,9 @@ HDWP16 DeferWindowPos16( HDWP16 hdwp, HWND16 hwnd, HWND16 hwndAfter, /*********************************************************************** * DeferWindowPos32 (USER32.127) */ -HDWP32 DeferWindowPos32( HDWP32 hdwp, HWND32 hwnd, HWND32 hwndAfter, - INT32 x, INT32 y, INT32 cx, INT32 cy, UINT32 flags ) +HDWP32 WINAPI DeferWindowPos32( HDWP32 hdwp, HWND32 hwnd, HWND32 hwndAfter, + INT32 x, INT32 y, INT32 cx, INT32 cy, + UINT32 flags ) { DWP *pDWP; int i; @@ -2439,7 +2446,7 @@ HDWP32 DeferWindowPos32( HDWP32 hdwp, HWND32 hwnd, HWND32 hwndAfter, /*********************************************************************** * EndDeferWindowPos16 (USER.261) */ -BOOL16 EndDeferWindowPos16( HDWP16 hdwp ) +BOOL16 WINAPI EndDeferWindowPos16( HDWP16 hdwp ) { return EndDeferWindowPos32( hdwp ); } @@ -2448,7 +2455,7 @@ BOOL16 EndDeferWindowPos16( HDWP16 hdwp ) /*********************************************************************** * EndDeferWindowPos32 (USER32.172) */ -BOOL32 EndDeferWindowPos32( HDWP32 hdwp ) +BOOL32 WINAPI EndDeferWindowPos32( HDWP32 hdwp ) { DWP *pDWP; WINDOWPOS32 *winpos; @@ -2471,7 +2478,7 @@ BOOL32 EndDeferWindowPos32( HDWP32 hdwp ) /*********************************************************************** * TileChildWindows (USER.199) */ -void TileChildWindows( HWND16 parent, WORD action ) +void WINAPI TileChildWindows( HWND16 parent, WORD action ) { printf("STUB TileChildWindows(%04x, %d)\n", parent, action); } @@ -2479,7 +2486,7 @@ void TileChildWindows( HWND16 parent, WORD action ) /*********************************************************************** * CascageChildWindows (USER.198) */ -void CascadeChildWindows( HWND16 parent, WORD action ) +void WINAPI CascadeChildWindows( HWND16 parent, WORD action ) { printf("STUB CascadeChildWindows(%04x, %d)\n", parent, action); } diff --git a/windows/winproc.c b/windows/winproc.c index 10139e6d4ea..b2a9207b9e9 100644 --- a/windows/winproc.c +++ b/windows/winproc.c @@ -143,6 +143,8 @@ static LRESULT WINPROC_CallWndProc16( WNDPROC16 proc, HWND16 hwnd, UINT16 msg, static LRESULT WINPROC_CallWndProc32( WNDPROC32 proc, HWND32 hwnd, UINT32 msg, WPARAM32 wParam, LPARAM lParam ) { +/* dprintf_relay( stddeb, "CallTo32(wndproc=%p,hwnd=%08x,msg=%08x,wp=%08x,lp=%08lx)\n", + proc, hwnd, msg, wParam, lParam ); */ return proc( hwnd, msg, wParam, lParam ); } @@ -1843,8 +1845,8 @@ static LRESULT WINPROC_CallProc32WTo16( WNDPROC16 func, HWND32 hwnd, /********************************************************************** * CallWindowProc16 (USER.122) */ -LRESULT CallWindowProc16( WNDPROC16 func, HWND16 hwnd, UINT16 msg, - WPARAM16 wParam, LPARAM lParam ) +LRESULT WINAPI CallWindowProc16( WNDPROC16 func, HWND16 hwnd, UINT16 msg, + WPARAM16 wParam, LPARAM lParam ) { LRESULT result; WND *wndPtr; @@ -1899,8 +1901,8 @@ LRESULT CallWindowProc16( WNDPROC16 func, HWND16 hwnd, UINT16 msg, /********************************************************************** * CallWindowProc32A (USER32.17) */ -LRESULT CallWindowProc32A( WNDPROC32 func, HWND32 hwnd, UINT32 msg, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI CallWindowProc32A( WNDPROC32 func, HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { WINDOWPROC *proc = WINPROC_GetPtr( (WNDPROC16)func ); @@ -1936,8 +1938,8 @@ LRESULT CallWindowProc32A( WNDPROC32 func, HWND32 hwnd, UINT32 msg, /********************************************************************** * CallWindowProc32W (USER32.18) */ -LRESULT CallWindowProc32W( WNDPROC32 func, HWND32 hwnd, UINT32 msg, - WPARAM32 wParam, LPARAM lParam ) +LRESULT WINAPI CallWindowProc32W( WNDPROC32 func, HWND32 hwnd, UINT32 msg, + WPARAM32 wParam, LPARAM lParam ) { WINDOWPROC *proc = WINPROC_GetPtr( (WNDPROC16)func ); diff --git a/wine.ini b/wine.ini index af8f3caebb9..8da8b5624db 100644 --- a/wine.ini +++ b/wine.ini @@ -48,10 +48,8 @@ SymbolTableFile=./wine.sym AllocSystemColors=100 [fonts] -;Read documentation/fonts before changing this -Alias0 = MS Sans Serif, -adobe-helvetica- -;Alias1 = Arial, -adobe-helvetica-, subst -;Alias2 = Times New Roman, -adobe-times-, subst +;Read documentation/fonts before adding aliases +Resolution = 96 Default = -adobe-times- [serialports]