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 <dimi@cs.toronto.edu> * [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 <ridgway@routh.UCSD.EDU> * [graphics/*] [objects/*] [include/gdi.h] Made all GDI objects (except DCs) moveable. Mon Aug 18 03:25:30 1997 Alex Korobka <alex@trantor.pharm.sunysb.edu> * [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 <schneidi@informatik.tu-muenchen.de> * [misc/comm.c] A couple of bug fixes. Sun Aug 17 19:29:22 1997 Alexandre Julliard <julliard@lrc.epfl.ch> * [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 <msmeissn@cip.informatik.uni-erlangen.de> * [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 <terra@diku.dk> * [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 <vischne@ibm.net> * [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.
This commit is contained in:
parent
641ee76ace
commit
670cdc45be
18
ANNOUNCE
18
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.
|
||||
|
||||
|
|
3
BUGS
3
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.
|
||||
|
|
125
ChangeLog
125
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 <dimi@cs.toronto.edu>
|
||||
|
||||
* [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 <ridgway@routh.UCSD.EDU>
|
||||
|
||||
* [graphics/*] [objects/*] [include/gdi.h]
|
||||
Made all GDI objects (except DCs) moveable.
|
||||
|
||||
Mon Aug 18 03:25:30 1997 Alex Korobka <alex@trantor.pharm.sunysb.edu>
|
||||
|
||||
* [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 <schneidi@informatik.tu-muenchen.de>
|
||||
|
||||
* [misc/comm.c]
|
||||
A couple of bug fixes.
|
||||
|
||||
Sun Aug 17 19:29:22 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
|
||||
|
||||
* [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 <msmeissn@cip.informatik.uni-erlangen.de>
|
||||
|
||||
* [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 <terra@diku.dk>
|
||||
|
||||
* [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 <vischne@ibm.net>
|
||||
|
||||
* [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 <julliard@lrc.epfl.ch>
|
||||
|
||||
|
|
3
README
3
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
|
||||
|
|
|
@ -16,6 +16,7 @@ C_SRCS = \
|
|||
scroll.c \
|
||||
static.c \
|
||||
status.c \
|
||||
updown.c \
|
||||
widgets.c
|
||||
|
||||
all: $(MODULE).o
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
|
865
controls/menu.c
865
controls/menu.c
File diff suppressed because it is too large
Load Diff
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#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-2<rect->left)
|
||||
pts[2].x = rect->left + 2;
|
||||
if(pts[2].x <= pts[0].x)
|
||||
pts[2].x = pts[0].x - 1;
|
||||
|
||||
if(incr){
|
||||
tmp = pts[2].x;
|
||||
pts[2].x = pts[0].x;
|
||||
pts[0].x = pts[1].x = tmp;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = <file with metrics>
|
||||
|
||||
|
@ -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 = <integer value>
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
129
files/file.c
129
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 )
|
||||
{
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 },
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,47 +1,49 @@
|
|||
#include <stdio.h>
|
||||
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; }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#include "debugger.h"
|
||||
#include "options.h"
|
||||
#include "sigcontext.h"
|
||||
#include "sig_context.h"
|
||||
#include "miscemu.h"
|
||||
|
||||
|
||||
|
|
642
if1632/thunk.c
642
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(<struct>,%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<nr/4;i++)
|
||||
fprintf(stderr,"0x%08lx,",args[3+i]);
|
||||
fprintf(stderr,"])");
|
||||
#ifndef WINELIB
|
||||
switch (nr) {
|
||||
case 0: ret = CallTo32_0(fun);
|
||||
break;
|
||||
case 4: ret = CallTo32_1(fun,args[3]);
|
||||
break;
|
||||
case 8: ret = CallTo32_2(fun,args[3],args[4]);
|
||||
break;
|
||||
case 12: ret = CallTo32_3(fun,args[3],args[4],args[5]);
|
||||
break;
|
||||
case 16: ret = CallTo32_4(fun,args[3],args[4],args[5],args[6]);
|
||||
break;
|
||||
case 20: ret = CallTo32_5(fun,args[3],args[4],args[5],args[6],args[7]);
|
||||
break;
|
||||
case 24: ret = CallTo32_6(fun,args[3],args[4],args[5],args[6],args[7],args[8]);
|
||||
break;
|
||||
case 28: ret = CallTo32_7(fun,args[3],args[4],args[5],args[6],args[7],args[8],args[9]);
|
||||
break;
|
||||
case 32: ret = CallTo32_8(fun,args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10]);
|
||||
break;
|
||||
case 36: ret = CallTo32_9(fun,args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10],args[11]);
|
||||
break;
|
||||
case 40: ret = CallTo32_10(fun,args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10],args[11],args[12]);
|
||||
break;
|
||||
case 44: ret = CallTo32_11(fun,args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10],args[11],args[12],args[13]);
|
||||
break;
|
||||
case 48: ret = CallTo32_12(fun,args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10],args[11],args[12],args[13],args[14]);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr," unsupported nr of arguments, %ld\n",nr);
|
||||
ret = 0;
|
||||
break;
|
||||
|
||||
}
|
||||
#endif
|
||||
fprintf(stderr," returning %ld ...\n",ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* KERNEL_619 (KERNEL)
|
||||
* Seems to store y and z depending on x in some internal lists...
|
||||
*/
|
||||
WORD WINAPI _KERNEL_619(WORD x,DWORD y,DWORD z)
|
||||
{
|
||||
fprintf(stderr,"KERNEL_619(0x%04x,0x%08lx,0x%08lx)\n",x,y,z);
|
||||
return x;
|
||||
}
|
||||
|
|
|
@ -283,7 +283,7 @@ file user.exe
|
|||
276 stub LockMyTask
|
||||
277 pascal16 GetDlgCtrlID(word) GetDlgCtrlID16
|
||||
278 pascal16 GetDesktopHwnd() GetDesktopHwnd
|
||||
279 stub OldSetDeskPattern
|
||||
279 pascal16 OldSetDeskPattern() SetDeskPattern
|
||||
280 pascal16 SetSystemMenu(word word) SetSystemMenu16
|
||||
281 pascal16 GetSysColorBrush(word) GetSysColorBrush16
|
||||
282 pascal16 SelectPalette(word word word) SelectPalette16
|
||||
|
@ -382,12 +382,12 @@ file user.exe
|
|||
431 pascal AnsiUpper(segstr) AnsiUpper16
|
||||
432 pascal AnsiLower(segstr) AnsiLower16
|
||||
433 pascal16 IsCharAlpha(byte) IsCharAlpha16
|
||||
434 pascal16 IsCharAlphanumeric(byte) IsCharAlphanumeric16
|
||||
434 pascal16 IsCharAlphaNumeric(byte) IsCharAlphaNumeric16
|
||||
435 pascal16 IsCharUpper(byte) IsCharUpper16
|
||||
436 pascal16 IsCharLower(byte) IsCharLower16
|
||||
437 pascal16 AnsiUpperBuff(ptr word) AnsiUpperBuff16
|
||||
438 pascal16 AnsiLowerBuff(ptr word) AnsiLowerBuff16
|
||||
441 stub InsertMenuItem
|
||||
441 pascal16 InsertMenuItem(word word word ptr) InsertMenuItem16
|
||||
443 stub GetMenuItemInfo
|
||||
445 pascal DefFrameProc(word word word word long) DefFrameProc16
|
||||
446 stub SetMenuItemInfo
|
||||
|
@ -503,8 +503,8 @@ file user.exe
|
|||
804 stub CHOOSECOLOR_CALLBACK16
|
||||
819 stub PeekMessage32
|
||||
820 stub GetMessage32
|
||||
821 stub TranslateMessage32
|
||||
821 stub IsDialogMessage32
|
||||
821 stub TranslateMessage32
|
||||
#821 stub IsDialogMessage32 # FIXME: two ordinal 821???
|
||||
822 stub DispatchMessage32
|
||||
825 stub PostMessage32
|
||||
826 stub PostThreadMessage32
|
||||
|
|
|
@ -165,7 +165,7 @@ base 1
|
|||
0158 stdcall DrawIcon(long long long long) DrawIcon32
|
||||
0159 stub DrawIconEx
|
||||
0160 stdcall DrawMenuBar(long) DrawMenuBar32
|
||||
0161 stub DrawStateA
|
||||
0161 stdcall DrawStateA(long long ptr long long long long long long long) DrawState32A
|
||||
0162 stub DrawStateW
|
||||
0163 stdcall DrawTextA(long ptr long ptr long) DrawText32A
|
||||
0164 stub DrawTextExA
|
||||
|
@ -253,7 +253,7 @@ base 1
|
|||
0246 stdcall GetKeyNameTextA(long ptr long) GetKeyNameText32A
|
||||
0247 stdcall GetKeyNameTextW(long ptr long) GetKeyNameText32W
|
||||
0248 stdcall GetKeyState(long) GetKeyState32
|
||||
0249 stub GetKeyboardLayout
|
||||
0249 stdcall GetKeyboardLayout(long) GetKeyboardLayout
|
||||
0250 stub GetKeyboardLayoutList
|
||||
0251 stub GetKeyboardLayoutNameA
|
||||
0252 stub GetKeyboardLayoutNameW
|
||||
|
@ -326,8 +326,8 @@ base 1
|
|||
0319 stdcall InSendMessage() InSendMessage32
|
||||
0320 stdcall InflateRect(ptr long long) InflateRect32
|
||||
0321 stdcall InsertMenuA(long long long long ptr) InsertMenu32A
|
||||
0322 stub InsertMenuItemA
|
||||
0323 stub InsertMenuItemW
|
||||
0322 stdcall InsertMenuItemA(long long long ptr) InsertMenuItem32A
|
||||
0323 stdcall InsertMenuItemW(long long long ptr) InsertMenuItem32W
|
||||
0324 stdcall InsertMenuW(long long long long ptr) InsertMenu32W
|
||||
0325 stub InternalGetWindowText
|
||||
0326 stdcall IntersectRect(ptr ptr ptr) IntersectRect32
|
||||
|
@ -492,10 +492,10 @@ base 1
|
|||
0485 stub SetLogonNotifyWindow
|
||||
0486 stdcall SetMenu(long long) SetMenu32
|
||||
0487 stub SetMenuContextHelpId
|
||||
0488 stub SetMenuDefaultItem
|
||||
0488 stdcall SetMenuDefaultItem(long long long) SetMenuDefaultItem32
|
||||
0489 stdcall SetMenuItemBitmaps(long long long long long) SetMenuItemBitmaps32
|
||||
0490 stub SetMenuItemInfoA
|
||||
0491 stub SetMenuItemInfoW
|
||||
0490 stdcall SetMenuItemInfoA(long long long ptr) SetMenuItemInfo32A
|
||||
0491 stdcall SetMenuItemInfoW(long long long ptr) SetMenuItemInfo32W
|
||||
0492 stub SetMessageExtraInfo
|
||||
0493 stdcall SetMessageQueue(long) SetMessageQueue32
|
||||
0494 stdcall SetParent(long long) SetParent32
|
||||
|
|
|
@ -6,36 +6,36 @@
|
|||
name winsock
|
||||
type win16
|
||||
|
||||
1 pascal16 accept(word ptr ptr) WINSOCK_accept
|
||||
2 pascal16 bind(word ptr word) WINSOCK_bind
|
||||
3 pascal16 closesocket(word) WINSOCK_closesocket
|
||||
4 pascal16 connect(word ptr word) WINSOCK_connect
|
||||
5 pascal16 getpeername(word ptr ptr) WINSOCK_getpeername
|
||||
6 pascal16 getsockname(word ptr ptr) WINSOCK_getsockname
|
||||
7 pascal16 getsockopt(word word word ptr ptr) WINSOCK_getsockopt
|
||||
1 pascal16 accept(word ptr ptr) WINSOCK_accept16
|
||||
2 pascal16 bind(word ptr word) WINSOCK_bind16
|
||||
3 pascal16 closesocket(word) WINSOCK_closesocket16
|
||||
4 pascal16 connect(word ptr word) WINSOCK_connect16
|
||||
5 pascal16 getpeername(word ptr ptr) WINSOCK_getpeername16
|
||||
6 pascal16 getsockname(word ptr ptr) WINSOCK_getsockname16
|
||||
7 pascal16 getsockopt(word word word ptr ptr) WINSOCK_getsockopt16
|
||||
8 pascal htonl(long) WINSOCK_htonl
|
||||
9 pascal16 htons(word) WINSOCK_htons
|
||||
10 pascal inet_addr(ptr) WINSOCK_inet_addr
|
||||
11 pascal inet_ntoa(long) WINSOCK_inet_ntoa
|
||||
12 pascal16 ioctlsocket(word long ptr) WINSOCK_ioctlsocket
|
||||
13 pascal16 listen(word word) WINSOCK_listen
|
||||
12 pascal16 ioctlsocket(word long ptr) WINSOCK_ioctlsocket16
|
||||
13 pascal16 listen(word word) WINSOCK_listen16
|
||||
14 pascal ntohl(long) WINSOCK_ntohl
|
||||
15 pascal16 ntohs(word) WINSOCK_ntohs
|
||||
16 pascal16 recv(word ptr word word) WINSOCK_recv
|
||||
17 pascal16 recvfrom(word ptr word word ptr ptr) WINSOCK_recvfrom
|
||||
18 pascal16 select(word ptr ptr ptr ptr) WINSOCK_select
|
||||
19 pascal16 send(word ptr word word) WINSOCK_send
|
||||
20 pascal16 sendto(word ptr word word ptr word) WINSOCK_sendto
|
||||
21 pascal16 setsockopt(word word word ptr word) WINSOCK_setsockopt
|
||||
22 pascal16 shutdown(word word) WINSOCK_shutdown
|
||||
23 pascal16 socket(word word word) WINSOCK_socket
|
||||
51 pascal gethostbyaddr(ptr word word) WINSOCK_gethostbyaddr
|
||||
52 pascal gethostbyname(ptr) WINSOCK_gethostbyname
|
||||
53 pascal getprotobyname(ptr) WINSOCK_getprotobyname
|
||||
54 pascal getprotobynumber(word) WINSOCK_getprotobynumber
|
||||
55 pascal getservbyname(ptr ptr) WINSOCK_getservbyname
|
||||
56 pascal getservbyport(word ptr) WINSOCK_getservbyport
|
||||
57 pascal gethostname(ptr word) WINSOCK_gethostname
|
||||
16 pascal16 recv(word ptr word word) WINSOCK_recv16
|
||||
17 pascal16 recvfrom(word ptr word word ptr ptr) WINSOCK_recvfrom16
|
||||
18 pascal16 select(word ptr ptr ptr ptr) WINSOCK_select16
|
||||
19 pascal16 send(word ptr word word) WINSOCK_send16
|
||||
20 pascal16 sendto(word ptr word word ptr word) WINSOCK_sendto16
|
||||
21 pascal16 setsockopt(word word word ptr word) WINSOCK_setsockopt16
|
||||
22 pascal16 shutdown(word word) WINSOCK_shutdown16
|
||||
23 pascal16 socket(word word word) WINSOCK_socket16
|
||||
51 pascal gethostbyaddr(ptr word word) WINSOCK_gethostbyaddr16
|
||||
52 pascal gethostbyname(ptr) WINSOCK_gethostbyname16
|
||||
53 pascal getprotobyname(ptr) WINSOCK_getprotobyname16
|
||||
54 pascal getprotobynumber(word) WINSOCK_getprotobynumber16
|
||||
55 pascal getservbyname(ptr ptr) WINSOCK_getservbyname16
|
||||
56 pascal getservbyport(word ptr) WINSOCK_getservbyport16
|
||||
57 pascal gethostname(ptr word) WINSOCK_gethostname16
|
||||
101 pascal16 WSAAsyncSelect(word word word long) WSAAsyncSelect
|
||||
102 pascal16 WSAAsyncGetHostByAddr(word word ptr word word segptr word)
|
||||
WSAAsyncGetHostByAddr
|
||||
|
@ -53,9 +53,9 @@ type win16
|
|||
109 pascal16 WSASetBlockingHook(segptr) WSASetBlockingHook16
|
||||
110 pascal16 WSAUnhookBlockingHook() WSAUnhookBlockingHook16
|
||||
111 pascal16 WSAGetLastError() WSAGetLastError
|
||||
112 pascal WSASetLastError(word) WSASetLastError
|
||||
112 pascal WSASetLastError(word) WSASetLastError16
|
||||
113 pascal16 WSACancelBlockingCall() WSACancelBlockingCall
|
||||
114 pascal16 WSAIsBlocking() WSAIsBlocking
|
||||
115 pascal WSAStartup(word ptr) WSAStartup
|
||||
115 pascal WSAStartup(word ptr) WSAStartup16
|
||||
116 pascal WSACleanup() WSACleanup
|
||||
151 pascal16 __WSAFDIsSet(word ptr) __WSAFDIsSet
|
||||
151 pascal16 __WSAFDIsSet(word ptr) __WSAFDIsSet16
|
||||
|
|
|
@ -52,11 +52,11 @@ base 100
|
|||
048 stub DeletePrinterIC
|
||||
049 stub DevQueryPrint
|
||||
050 stub DeviceCapabilities
|
||||
051 stub DeviceCapabilitiesA
|
||||
051 stdcall DeviceCapabilitiesA(ptr ptr long ptr ptr) DeviceCapabilities32A
|
||||
052 stub DeviceCapabilitiesW
|
||||
053 stub DeviceMode
|
||||
054 stub DocumentEvent
|
||||
055 stub DocumentPropertiesA
|
||||
055 stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentProperties32A
|
||||
056 stub DocumentPropertiesW
|
||||
057 stub EXTDEVICEMODE
|
||||
058 stub EndDocPrinter
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
name wprocs
|
||||
type win16
|
||||
|
||||
1 pascal WINPROC_CallProc16To32A(word word word long long) WINPROC_CallProc16To32A
|
||||
10 pascal MDIClientWndProc(word word word long) MDIClientWndProc
|
||||
14 pascal FileOpenDlgProc(word word word long) FileOpenDlgProc
|
||||
15 pascal FileSaveDlgProc(word word word long) FileSaveDlgProc
|
||||
|
@ -11,7 +10,7 @@ type win16
|
|||
19 pascal PrintSetupDlgProc(word word word long) PrintSetupDlgProc
|
||||
20 pascal PrintDlgProc(word word word long) PrintDlgProc
|
||||
24 pascal16 TASK_Reschedule() TASK_Reschedule
|
||||
27 pascal EntryAddrProc(word word) MODULE_GetEntryPoint
|
||||
27 pascal EntryAddrProc(word word) EntryAddrProc
|
||||
28 pascal MyAlloc(word word word) MODULE_AllocateSegment
|
||||
30 pascal FormatCharDlgProc(word word word long) FormatCharDlgProc
|
||||
|
||||
|
@ -279,6 +278,7 @@ type win16
|
|||
#
|
||||
#400+VXD_ID register <VxD handler>() <VxD handler>
|
||||
#
|
||||
405 register VXD_Timer() VXD_Timer
|
||||
414 register VXD_Comm() VXD_Comm
|
||||
#415 register VXD_Printer() VXD_Printer
|
||||
423 register VXD_Shell() VXD_Shell
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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);
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
128
include/ole.h
128
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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 */
|
||||
|
|
5097
include/windows.h
5097
include/windows.h
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue