Release 970305

Sun Mar  2 14:57:37 1997  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [*/*]
	Completed transition to new Win32 types.

	* [tools/build.c]
	Changed CallTo16_regs to take a CONTEXT argument.

	* [memory/virtual.c]
	Rewrote Virtual* functions. Implemented CreateFileMapping and
	OpenFileMapping. Broke MapViewOfFile ;-)

	* [win32/k32obj.c]
	Implemented named objects.

Sun Mar  2 00:33:21 1997  Mikolaj Zalewski <zmikolaj@free.polbox.pl>

	* [misc/ole2nls.c] [resources/sysres_Pl.c]
	Added Polish language support.

Sat Mar  1 13:31:25 1997  David Faure <david.faure@ifhamy.insa-lyon.fr>

	* [windows/keyboard.c]
	Wrote VkKeyScan and tested with Winword. Works ok except for dead
	chars.

Fri Feb 28 09:34:03 1997  John Harvey <john@division.co.uk>

	* [graphics/win16drv/font.c] [graphics/win16drv/init.c]
	  [graphics/win16drv/obects.c]
	Added start of SelectObject call for printer driver. Write should
	now run with the printer driver enabled.

Wed Feb 26 20:03:32 1997  Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>

	* [debugger/*.c]
	Re-added a disassembly command (list serves another functionality
	now).

	* [loader/pe_resource.c]
	Added # support.

	* [misc/ole2nls.c]
	GetStringType* added.

	* [objects/color.c]
	VGA16 fixes.

	* [windows/class.c]
	Look for global widget classes too in GetClassInfo32.

	* [windows/sysmetrics.c] [include/windows.h]
	Added Win32 sysmetrics.

Sat Feb 22 23:56:29 1997  Jukka Iivonen <iivonen@cc.helsinki.fi>

	* [documentation/languages]
	The fourth case updated.

	* [if1632/ntdll.spec]
	Added some is* and to* functions.

Sat Feb 22 23:05:47 1997  Morten Welinder  <terra@diku.dk>

	* [configure.in]
	Add tests for wait4 and waitpid.

	* [loader/signal.c]
	Clean up OS-dependent code.  I hope I got it right, :-)

	* [tools/wineconf]
	Recognise vfat file systems.  Ignore floppy drives specified in
	/etc/fstab.

	* [files/*]
	Fix function names in error messages.

Sat Feb 22 06:15:13 1997  Pablo Saratxaga <srtxg@chanae.stben.be>

	* [windows/keyboard.c] [windows/message.c]
	Support for more latin alphabet dead keys for iso-8859-{1,2,3,4,9}
	characters sets.

Fri Feb 21 20:37:50 1997  Huw D M Davies <h.davies1@physics.oxford.ac.uk>

	* [controls/edit.c]
	Fix incorrect arg order in LOCAL_Alloc() call.

Fri Feb 21 18:19:17 1997  Andrew Taylor  <andrew@riscan.com>

	* [multimedia/mmsystem.c] [multimedia/mcistring.c]
	Fixed bug related to device IDs returned by multimedia
	system.  Implemented mciGetDeviceID.

Sat Feb 15 00:58:19 1997  Jimen Ching  <jching@aloha.com>

	* [debugger/dbg.y]
	Do not dereference invalid expressions.
This commit is contained in:
Alexandre Julliard 1997-03-05 08:22:35 +00:00
parent f0cbfa0c5c
commit 2197901989
202 changed files with 5707 additions and 3084 deletions

View File

@ -1,13 +1,13 @@
This is release 970215 of Wine, the MS Windows emulator. This is still a
This is release 970305 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-970215: (see ChangeLog for details)
- Many more Win32 functions.
- Hungarian language support.
WHAT'S NEW with Wine-970305: (see ChangeLog for details)
- Completed transition to new Win32 types.
- Polish language support.
- Lots of bug fixes.
See the README file in the distribution for installation instructions.
@ -16,10 +16,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-970215.tar.gz
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-970215.tar.gz
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-970215.tar.gz
ftp://aris.com/pub/linux/ALPHA/Wine/development/Wine-970215.tar.gz
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-970305.tar.gz
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-970305.tar.gz
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-970305.tar.gz
ftp://aris.com/pub/linux/ALPHA/Wine/development/Wine-970305.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite.

100
ChangeLog
View File

@ -1,3 +1,103 @@
----------------------------------------------------------------------
Sun Mar 2 14:57:37 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [*/*]
Completed transition to new Win32 types.
* [tools/build.c]
Changed CallTo16_regs to take a CONTEXT argument.
* [memory/virtual.c]
Rewrote Virtual* functions. Implemented CreateFileMapping and
OpenFileMapping. Broke MapViewOfFile ;-)
* [win32/k32obj.c]
Implemented named objects.
Sun Mar 2 00:33:21 1997 Mikolaj Zalewski <zmikolaj@free.polbox.pl>
* [misc/ole2nls.c] [resources/sysres_Pl.c]
Added Polish language support.
Sat Mar 1 13:31:25 1997 David Faure <david.faure@ifhamy.insa-lyon.fr>
* [windows/keyboard.c]
Wrote VkKeyScan and tested with Winword. Works ok except for dead
chars.
Fri Feb 28 09:34:03 1997 John Harvey <john@division.co.uk>
* [graphics/win16drv/font.c] [graphics/win16drv/init.c]
[graphics/win16drv/obects.c]
Added start of SelectObject call for printer driver. Write should
now run with the printer driver enabled.
Wed Feb 26 20:03:32 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [debugger/*.c]
Re-added a disassembly command (list serves another functionality
now).
* [loader/pe_resource.c]
Added # support.
* [misc/ole2nls.c]
GetStringType* added.
* [objects/color.c]
VGA16 fixes.
* [windows/class.c]
Look for global widget classes too in GetClassInfo32.
* [windows/sysmetrics.c] [include/windows.h]
Added Win32 sysmetrics.
Sat Feb 22 23:56:29 1997 Jukka Iivonen <iivonen@cc.helsinki.fi>
* [documentation/languages]
The fourth case updated.
* [if1632/ntdll.spec]
Added some is* and to* functions.
Sat Feb 22 23:05:47 1997 Morten Welinder <terra@diku.dk>
* [configure.in]
Add tests for wait4 and waitpid.
* [loader/signal.c]
Clean up OS-dependent code. I hope I got it right, :-)
* [tools/wineconf]
Recognise vfat file systems. Ignore floppy drives specified in
/etc/fstab.
* [files/*]
Fix function names in error messages.
Sat Feb 22 06:15:13 1997 Pablo Saratxaga <srtxg@chanae.stben.be>
* [windows/keyboard.c] [windows/message.c]
Support for more latin alphabet dead keys for iso-8859-{1,2,3,4,9}
characters sets.
Fri Feb 21 20:37:50 1997 Huw D M Davies <h.davies1@physics.oxford.ac.uk>
* [controls/edit.c]
Fix incorrect arg order in LOCAL_Alloc() call.
Fri Feb 21 18:19:17 1997 Andrew Taylor <andrew@riscan.com>
* [multimedia/mmsystem.c] [multimedia/mcistring.c]
Fixed bug related to device IDs returned by multimedia
system. Implemented mciGetDeviceID.
Sat Feb 15 00:58:19 1997 Jimen Ching <jching@aloha.com>
* [debugger/dbg.y]
Do not dereference invalid expressions.
----------------------------------------------------------------------
Sat Feb 15 11:59:17 1997 Alexandre Julliard <julliard@lrc.epfl.ch>

2
configure vendored
View File

@ -2043,7 +2043,7 @@ echo "$ac_t""$ac_cv_c_dll" 1>&6
fi
for ac_func in memmove tcgetattr usleep
for ac_func in memmove tcgetattr usleep wait4 waitpid
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:2050: checking for $ac_func" >&5

View File

@ -104,7 +104,7 @@ fi
dnl **** Check for functions and header files ****
AC_CHECK_FUNCS(memmove tcgetattr usleep)
AC_CHECK_FUNCS(memmove tcgetattr usleep wait4 waitpid)
AC_HEADER_STAT()
AC_C_CONST()
AC_TYPE_SIZE_T()

View File

@ -303,9 +303,9 @@ static void PB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
PB_PaintGrayOnGray(hDC,infoPtr->hFont,&rc,wndPtr->text);
else
{
SetTextColor( hDC, (wndPtr->dwStyle & WS_DISABLED) ?
GetSysColor32(COLOR_GRAYTEXT) :
GetSysColor32(COLOR_BTNTEXT) );
SetTextColor32( hDC, (wndPtr->dwStyle & WS_DISABLED) ?
GetSysColor32(COLOR_GRAYTEXT) :
GetSysColor32(COLOR_BTNTEXT) );
DrawText32A( hDC, wndPtr->text, -1, &rc,
DT_SINGLELINE | DT_CENTER | DT_VCENTER );
/* do we have the focus? */
@ -338,10 +338,10 @@ static void PB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
void PB_PaintGrayOnGray(HDC32 hDC,HFONT32 hFont,RECT32 *rc,char *text)
{
static int Pattern[] = {0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55};
HBITMAP16 hbm = CreateBitmap(8, 8, 1, 1, Pattern);
static const int Pattern[] = {0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55};
HBITMAP32 hbm = CreateBitmap32( 8, 8, 1, 1, Pattern );
HDC32 hdcMem = CreateCompatibleDC32(hDC);
HBITMAP16 hbmMem;
HBITMAP32 hbmMem;
HBRUSH16 hBr;
RECT32 rect,rc2;
@ -350,7 +350,7 @@ void PB_PaintGrayOnGray(HDC32 hDC,HFONT32 hFont,RECT32 *rc,char *text)
rc2=rect;
rect.left=(rc->right-rect.right)/2; /* for centering text bitmap */
rect.top=(rc->bottom-rect.bottom)/2;
hbmMem = CreateCompatibleBitmap( hDC,rect.right,rect.bottom);
hbmMem = CreateCompatibleBitmap32( hDC,rect.right,rect.bottom );
SelectObject32( hdcMem, hbmMem);
hBr = SelectObject32( hdcMem, CreatePatternBrush32(hbm) );
DeleteObject32( hbm );
@ -417,7 +417,7 @@ static void CB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
if( textlen && action != ODA_SELECT )
{
if (wndPtr->dwStyle & WS_DISABLED)
SetTextColor( hDC, GetSysColor32(COLOR_GRAYTEXT) );
SetTextColor32( hDC, GetSysColor32(COLOR_GRAYTEXT) );
DrawText16( hDC, wndPtr->text, textlen, &rtext,
DT_SINGLELINE | DT_VCENTER );
}
@ -486,7 +486,7 @@ static void GB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
if (!wndPtr->text) return;
if (wndPtr->dwStyle & WS_DISABLED)
SetTextColor( hDC, GetSysColor32(COLOR_GRAYTEXT) );
SetTextColor32( hDC, GetSysColor32(COLOR_GRAYTEXT) );
rc.left += 10;
DrawText16( hDC, wndPtr->text, -1, &rc, DT_SINGLELINE | DT_NOCLIP );
}

View File

@ -38,8 +38,8 @@
#define CBLMM_EDGE 4 /* distance inside box which is same as moving mouse
outside box, to trigger scrolling of CBL */
static BOOL CBCheckSize(HWND16 hwnd);
static BOOL CBLCheckSize(HWND16 hwnd);
static BOOL32 CBCheckSize(HWND16 hwnd);
static BOOL32 CBLCheckSize(HWND16 hwnd);
static HBITMAP16 hComboBit = 0;
static WORD CBitHeight, CBitWidth;
@ -81,7 +81,7 @@ int CreateComboStruct(HWND16 hwnd, LONG style)
return TRUE;
}
void ComboUpdateWindow(HWND16 hwnd, LPHEADLIST lphl, LPHEADCOMBO lphc, BOOL repaint)
void ComboUpdateWindow(HWND16 hwnd, LPHEADLIST lphl, LPHEADCOMBO lphc, BOOL32 repaint)
{
WND *wndPtr = WIN_FindWndPtr(hwnd);
@ -628,7 +628,7 @@ static LRESULT CBShowDropDown(HWND16 hwnd, WPARAM16 wParam, LPARAM lParam)
/***********************************************************************
* CBCheckSize
*/
static BOOL CBCheckSize(HWND16 hwnd)
static BOOL32 CBCheckSize(HWND16 hwnd)
{
LPHEADCOMBO lphc = ComboGetStorageHeader(hwnd);
LPHEADLIST lphl = ComboGetListHeader(hwnd);
@ -711,7 +711,7 @@ static LRESULT CBCommand(HWND16 hwnd, WPARAM16 wParam, LPARAM lParam)
}
break;
case ID_EDIT: /* update LISTBOX window */
id=GetWindowWord(hwnd,GWW_ID);
id = GetWindowWord32(hwnd,GWW_ID);
switch (HIWORD(lParam))
{
case EN_UPDATE:GetWindowText32A(lphc->hWndEdit,buffer,255);
@ -786,7 +786,7 @@ static LRESULT CBGetText(HWND16 hwnd, WPARAM16 wParam, LPARAM lParam)
/***********************************************************************
* ComboWndProc
*/
LRESULT ComboBoxWndProc(HWND16 hwnd, UINT message, WPARAM16 wParam, LPARAM lParam)
LRESULT ComboBoxWndProc(HWND16 hwnd, UINT16 message, WPARAM16 wParam, LPARAM lParam)
{
switch(message) {
case WM_NCCREATE: return CBNCCreate(hwnd, wParam, lParam);
@ -1165,7 +1165,7 @@ static LRESULT CBLVScroll( HWND16 hwnd, WPARAM16 wParam, LPARAM lParam )
/***********************************************************************
* CBLCheckSize
*/
static BOOL CBLCheckSize(HWND16 hwnd)
static BOOL32 CBLCheckSize(HWND16 hwnd)
{
LPHEADCOMBO lphc = ComboGetStorageHeader(hwnd);
LPHEADLIST lphl = ComboGetListHeader(hwnd);
@ -1218,7 +1218,7 @@ static BOOL CBLCheckSize(HWND16 hwnd)
/***********************************************************************
* ComboLBoxWndProc
*/
LRESULT ComboLBoxWndProc(HWND16 hwnd, UINT message, WPARAM16 wParam, LPARAM lParam)
LRESULT ComboLBoxWndProc(HWND16 hwnd, UINT16 message, WPARAM16 wParam, LPARAM lParam)
{
switch(message) {
case WM_CREATE: return CBLCreate(hwnd, wParam, lParam);

View File

@ -4,7 +4,6 @@
* Copyright 1994 Alexandre Julliard
*/
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
#include <stdio.h>
#include <string.h>
#include <unistd.h>
@ -91,8 +90,8 @@ static LRESULT DESKTOP_DoEraseBkgnd( HWND32 hwnd, HDC32 hdc,
(infoPtr->bitmapSize.cy < rect.bottom))))
{
/* Set colors in case pattern is a monochrome bitmap */
SetBkColor( hdc, RGB(0,0,0) );
SetTextColor( hdc, GetSysColor32(COLOR_BACKGROUND) );
SetBkColor32( hdc, RGB(0,0,0) );
SetTextColor32( hdc, GetSysColor32(COLOR_BACKGROUND) );
FillRect32( hdc, &rect, infoPtr->hbrushPattern );
}
@ -243,7 +242,7 @@ BOOL32 DESKTOP_SetPattern( LPCSTR pattern )
int i;
for (i = 0; i < 8; i++) pattern[i] = pat[i] & 0xffff;
hbitmap = CreateBitmap( 8, 8, 1, 1, (LPSTR)pattern );
hbitmap = CreateBitmap32( 8, 8, 1, 1, (LPSTR)pattern );
infoPtr->hbrushPattern = CreatePatternBrush32( hbitmap );
DeleteObject32( hbitmap );
}

View File

@ -13,8 +13,6 @@
*
*/
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -1778,9 +1776,10 @@ static INT32 EDIT_PaintText(WND *wndPtr, HDC32 hdc, INT32 x, INT32 y, INT32 line
return 0;
BkColor = GetBkColor32(hdc);
TextColor = GetTextColor32(hdc);
if (rev) {
SetBkColor(hdc, GetSysColor32(COLOR_HIGHLIGHT));
SetTextColor(hdc, GetSysColor32(COLOR_HIGHLIGHTTEXT));
if (rev)
{
SetBkColor32(hdc, GetSysColor32(COLOR_HIGHLIGHT));
SetTextColor32(hdc, GetSysColor32(COLOR_HIGHLIGHTTEXT));
}
text = EDIT_GetPasswordPointer(wndPtr);
li = (INT32)EDIT_EM_LineIndex(wndPtr, line, 0);
@ -1788,9 +1787,10 @@ static INT32 EDIT_PaintText(WND *wndPtr, HDC32 hdc, INT32 x, INT32 y, INT32 line
ret = (INT32)LOWORD(TabbedTextOut32A(hdc, x, y, text + li + col, count,
es->NumTabStops, es->TabStops, -xoff));
free(text);
if (rev) {
SetBkColor(hdc, BkColor);
SetTextColor(hdc, TextColor);
if (rev)
{
SetBkColor32(hdc, BkColor);
SetTextColor32(hdc, TextColor);
}
return ret;
}
@ -1863,7 +1863,7 @@ static void EDIT_SetSel(WND *wndPtr, INT32 ns, INT32 ne)
if (EDIT_GetRedraw(wndPtr)) {
if (wndPtr->hwndSelf == GetFocus32()) {
pos = EDIT_EM_PosFromChar(wndPtr, ne, 0);
SetCaretPos((INT16)LOWORD(pos), (INT16)HIWORD(pos));
SetCaretPos16((INT16)LOWORD(pos), (INT16)HIWORD(pos));
}
ORDER_INT32(s, ns);
ORDER_INT32(s, ne);
@ -2137,9 +2137,9 @@ static LRESULT EDIT_EM_GetHandle16(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
}
dprintf_edit(stddeb, "edit: EM_GETHANDLE: local heap initialized\n");
}
if (!(newBuf = LOCAL_Alloc(wndPtr->hInstance,
EDIT_WM_GetTextLength(wndPtr, 0, 0) + 1,
LMEM_MOVEABLE))) {
if (!(newBuf = LOCAL_Alloc(wndPtr->hInstance, LMEM_MOVEABLE,
EDIT_WM_GetTextLength(wndPtr, 0, 0) + 1)))
{
fprintf(stderr, "edit: EM_GETHANDLE: could not allocate new 16 bit buffer\n");
return 0;
}
@ -3122,7 +3122,7 @@ static LRESULT EDIT_WM_Copy(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
GlobalUnlock16(hdst);
OpenClipboard32(wndPtr->hwndSelf);
EmptyClipboard32();
SetClipboardData(CF_TEXT, hdst);
SetClipboardData16(CF_TEXT, hdst);
CloseClipboard32();
return -1;
}
@ -3530,7 +3530,7 @@ static LRESULT EDIT_WM_KillFocus(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
INT32 s;
INT32 e;
DestroyCaret();
DestroyCaret32();
if(!(wndPtr->dwStyle & ES_NOHIDESEL)) {
EDIT_EM_GetSel(wndPtr, (WPARAM32)&s, (LPARAM)&e);
EDIT_InvalidateText(wndPtr, s, e);
@ -3688,7 +3688,7 @@ static LRESULT EDIT_WM_Paint(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
oldFont = (HFONT32)SelectObject32(hdc, hFont);
EDIT_SEND_CTLCOLOR(wndPtr, hdc);
if (!IsWindowEnabled32(wndPtr->hwndSelf))
SetTextColor(hdc, GetSysColor32(COLOR_GRAYTEXT));
SetTextColor32(hdc, GetSysColor32(COLOR_GRAYTEXT));
GetClipBox32(hdc, &rcRgn);
for (i = fv ; i <= MIN(fv + vlc, fv + lc - 1) ; i++ ) {
EDIT_GetLineRect(wndPtr, i, 0, -1, &rcLine);
@ -3699,7 +3699,7 @@ static LRESULT EDIT_WM_Paint(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
if (wndPtr->hwndSelf == GetFocus32()) {
EDIT_GetSel(wndPtr, NULL, &e);
pos = EDIT_EM_PosFromChar(wndPtr, e, 0);
SetCaretPos((INT16)LOWORD(pos), (INT16)HIWORD(pos));
SetCaretPos16( (INT16)LOWORD(pos), (INT16)HIWORD(pos) );
}
EndPaint32(wndPtr->hwndSelf, &ps);
return 0;
@ -3717,7 +3717,8 @@ static LRESULT EDIT_WM_Paste(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
LPSTR src;
OpenClipboard32(wndPtr->hwndSelf);
if ((hsrc = GetClipboardData(CF_TEXT))) {
if ((hsrc = GetClipboardData16(CF_TEXT)))
{
src = (LPSTR)GlobalLock16(hsrc);
EDIT_EM_ReplaceSel(wndPtr, (WPARAM32)TRUE, (LPARAM)src);
GlobalUnlock16(hsrc);
@ -3753,7 +3754,7 @@ static LRESULT EDIT_WM_SetFocus(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
INT32 e;
EDIT_GetSel(wndPtr, &s, &e);
CreateCaret(wndPtr->hwndSelf, 0, 2, EDIT_GetLineHeight(wndPtr));
CreateCaret32( wndPtr->hwndSelf, 0, 2, EDIT_GetLineHeight(wndPtr) );
EDIT_SetSel(wndPtr, s, e);
if(!(wndPtr->dwStyle & ES_NOHIDESEL))
EDIT_InvalidateText(wndPtr, s, e);
@ -3791,8 +3792,9 @@ static LRESULT EDIT_WM_SetFont(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
if ((BOOL32)lParam && EDIT_GetRedraw(wndPtr))
InvalidateRect32( wndPtr->hwndSelf, NULL, TRUE );
if (wndPtr->hwndSelf == GetFocus32()) {
DestroyCaret();
CreateCaret(wndPtr->hwndSelf, 0, 2, EDIT_GetLineHeight(wndPtr));
DestroyCaret32();
CreateCaret32( wndPtr->hwndSelf, 0,
2, EDIT_GetLineHeight(wndPtr) );
EDIT_SetSel(wndPtr, s, e);
ShowCaret32(wndPtr->hwndSelf);
}

View File

@ -4,7 +4,6 @@
* Copyright 1996 Alexandre Julliard
*/
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
#include <string.h>
#include <stdio.h>
#include "windows.h"
@ -470,16 +469,16 @@ static void LISTBOX_PaintItem( WND *wnd, LB_DESCR *descr, HDC32 hdc,
}
if (item && item->selected)
{
SetBkColor( hdc, GetSysColor32( COLOR_HIGHLIGHT ) );
SetTextColor( hdc, GetSysColor32( COLOR_HIGHLIGHTTEXT ) );
SetBkColor32( hdc, GetSysColor32( COLOR_HIGHLIGHT ) );
SetTextColor32( hdc, GetSysColor32( COLOR_HIGHLIGHTTEXT ) );
}
else
{
SetBkColor( hdc, GetSysColor32( COLOR_WINDOW ) );
SetBkColor32( hdc, GetSysColor32( COLOR_WINDOW ) );
if (wnd->dwStyle & WS_DISABLED)
SetTextColor( hdc, GetSysColor32( COLOR_GRAYTEXT ) );
SetTextColor32( hdc, GetSysColor32( COLOR_GRAYTEXT ) );
else
SetTextColor( hdc, GetSysColor32( COLOR_WINDOWTEXT ) );
SetTextColor32( hdc, GetSysColor32( COLOR_WINDOWTEXT ) );
}
dprintf_listbox( stddeb, "Listbox %04x: painting %d (%s) action=%02x "
"rect=%d,%d-%d,%d\n",
@ -856,7 +855,7 @@ static LRESULT LISTBOX_Paint( WND *wnd, LB_DESCR *descr, HDC32 hdc )
if (!IS_OWNERDRAW(descr))
{
/* Clear the bottom of the column */
SetBkColor( hdc, GetSysColor32( COLOR_WINDOW ) );
SetBkColor32( hdc, GetSysColor32( COLOR_WINDOW ) );
if (rect.top < descr->height)
{
rect.bottom = descr->height;
@ -881,7 +880,7 @@ static LRESULT LISTBOX_Paint( WND *wnd, LB_DESCR *descr, HDC32 hdc )
if (!IS_OWNERDRAW(descr))
{
/* Clear the remainder of the client area */
SetBkColor( hdc, GetSysColor32( COLOR_WINDOW ) );
SetBkColor32( hdc, GetSysColor32( COLOR_WINDOW ) );
if (rect.top < descr->height)
{
rect.bottom = descr->height;

View File

@ -11,7 +11,6 @@
* This is probably not the meaning this style has in MS-Windows.
*/
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
@ -600,18 +599,18 @@ static void MENU_DrawMenuItem( HWND32 hwnd, HDC32 hdc, MENUITEM *lpitem,
if (lpitem->item_flags & MF_HILITE)
{
if (lpitem->item_flags & MF_GRAYED)
SetTextColor( hdc, GetSysColor32( COLOR_GRAYTEXT ) );
SetTextColor32( hdc, GetSysColor32( COLOR_GRAYTEXT ) );
else
SetTextColor( hdc, GetSysColor32( COLOR_HIGHLIGHTTEXT ) );
SetBkColor( hdc, GetSysColor32( COLOR_HIGHLIGHT ) );
SetTextColor32( hdc, GetSysColor32( COLOR_HIGHLIGHTTEXT ) );
SetBkColor32( hdc, GetSysColor32( COLOR_HIGHLIGHT ) );
}
else
{
if (lpitem->item_flags & MF_GRAYED)
SetTextColor( hdc, GetSysColor32( COLOR_GRAYTEXT ) );
SetTextColor32( hdc, GetSysColor32( COLOR_GRAYTEXT ) );
else
SetTextColor( hdc, GetSysColor32( COLOR_MENUTEXT ) );
SetBkColor( hdc, GetSysColor32( COLOR_MENU ) );
SetTextColor32( hdc, GetSysColor32( COLOR_MENUTEXT ) );
SetBkColor32( hdc, GetSysColor32( COLOR_MENU ) );
}
if (!menuBar)
@ -869,8 +868,8 @@ static BOOL32 MENU_ShowPopup( HWND32 hwndOwner, HMENU32 hmenu, UINT32 id,
/* Display the window */
SetWindowPos32( menu->hWnd, HWND_TOP, 0, 0, 0, 0,
SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE );
UpdateWindow( menu->hWnd );
SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
UpdateWindow32( menu->hWnd );
return TRUE;
}
@ -1310,8 +1309,8 @@ static BOOL32 MENU_ExecFocusedItem( HWND32 hwndOwner, HMENU32 hmenu,
{
if (!(item->item_flags & (MF_GRAYED | MF_DISABLED)))
{
PostMessage( hwndOwner, (menu->wFlags & MF_SYSMENU) ?
WM_SYSCOMMAND : WM_COMMAND, item->item_id, 0 );
PostMessage16( hwndOwner, (menu->wFlags & MF_SYSMENU) ?
WM_SYSCOMMAND : WM_COMMAND, item->item_id, 0 );
return FALSE;
}
else return TRUE;
@ -1473,7 +1472,7 @@ static LRESULT MENU_DoNextMenu( HWND32* hwndOwner, HMENU32* hmenu,
? GetSystemMenu32( *hwndOwner, 0)
: *hmenu));
if( l == 0 || !IsMenu32(LOWORD(l)) || !IsWindow(HIWORD(l)) ) return 0;
if( l == 0 || !IsMenu32(LOWORD(l)) || !IsWindow32(HIWORD(l)) ) return 0;
/* shutdown current menu -
* all these checks for system popup window are needed
@ -1938,7 +1937,7 @@ void MENU_TrackKbdMenuBar( WND* wndPtr, UINT32 wParam, INT32 vkey)
if( uItem == NO_SELECTED_ITEM )
MENU_SelectItemRel( wndPtr->hwndSelf, hTrackMenu, ITEM_NEXT );
else
PostMessage( wndPtr->hwndSelf, WM_KEYDOWN, VK_DOWN, 0L );
PostMessage16( wndPtr->hwndSelf, WM_KEYDOWN, VK_DOWN, 0L );
MENU_TrackMenu( hTrackMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON,
0, 0, wndPtr->hwndSelf, NULL );

View File

@ -66,7 +66,7 @@ void CreateListBoxStruct(HWND16 hwnd, WORD CtlType, LONG styles, HWND16 parent)
SetWindowLong32A(hwnd, 0, (LONG)lphl);
ListBoxInitialize(lphl);
lphl->DrawCtlType = CtlType;
lphl->CtlID = GetWindowWord(hwnd,GWW_ID);
lphl->CtlID = GetWindowWord16(hwnd,GWW_ID);
lphl->bRedrawFlag = TRUE;
lphl->iNumStops = 0;
lphl->TabStops = NULL;
@ -160,10 +160,10 @@ int ListBoxScrollToFocus(LPHEADLIST lphl)
}
LPLISTSTRUCT ListBoxGetItem(LPHEADLIST lphl, UINT uIndex)
LPLISTSTRUCT ListBoxGetItem(LPHEADLIST lphl, UINT16 uIndex)
{
LPLISTSTRUCT lpls;
UINT Count = 0;
UINT16 Count = 0;
if (uIndex >= lphl->ItemsCount) return NULL;
@ -199,7 +199,7 @@ void ListBoxDrawItem(HWND16 hwnd, LPHEADLIST lphl, HDC16 hdc, LPLISTSTRUCT lpls,
OldBkMode = SetBkMode32(hdc, TRANSPARENT);
if (itemState != 0) {
dwOldTextColor = SetTextColor(hdc, 0x00FFFFFFL);
dwOldTextColor = SetTextColor32(hdc, 0x00FFFFFFL);
FillRect16(hdc, rect, GetStockObject32(BLACK_BRUSH));
}
@ -213,7 +213,7 @@ void ListBoxDrawItem(HWND16 hwnd, LPHEADLIST lphl, HDC16 hdc, LPLISTSTRUCT lpls,
}
if (itemState != 0) {
SetTextColor(hdc, dwOldTextColor);
SetTextColor32(hdc, dwOldTextColor);
}
SetBkMode32(hdc, OldBkMode);
@ -303,7 +303,7 @@ static LPLISTSTRUCT ListBoxCreateItem(LPHEADLIST lphl, int id)
return lplsnew;
}
static int ListBoxAskCompare(LPHEADLIST lphl, int startItem, SEGPTR matchData, BOOL exactMatch )
static int ListBoxAskCompare(LPHEADLIST lphl, int startItem, SEGPTR matchData, BOOL32 exactMatch )
{
/* Do binary search for sorted listboxes. Linked list item storage sort of
* defeats the purpose ( forces to traverse item list all the time ) but M$ does it this way...
@ -401,18 +401,18 @@ static int ListBoxAskCompare(LPHEADLIST lphl, int startItem, SEGPTR matchData, B
return (exactMatch)? LB_ERR: pos;
}
int ListBoxInsertString(LPHEADLIST lphl, UINT uIndex, LPCSTR newstr)
int ListBoxInsertString(LPHEADLIST lphl, UINT16 uIndex, LPCSTR newstr)
{
LPLISTSTRUCT *lppls, lplsnew, lpls;
HANDLE16 hStr;
LPSTR str;
UINT Count;
UINT16 Count;
dprintf_listbox(stddeb,"ListBoxInsertString(%d, %p);\n", uIndex, newstr);
if (!newstr) return -1;
if (uIndex == (UINT)-1)
if (uIndex == (UINT16)-1)
uIndex = lphl->ItemsCount;
lppls = &lphl->lpFirst;
@ -466,7 +466,7 @@ int ListBoxInsertString(LPHEADLIST lphl, UINT uIndex, LPCSTR newstr)
int ListBoxAddString(LPHEADLIST lphl, SEGPTR itemData)
{
UINT pos = (UINT) -1;
UINT16 pos = (UINT16) -1;
LPCSTR newstr = (lphl->HasStrings)?(LPCSTR)PTR_SEG_TO_LIN(itemData):(LPCSTR)itemData;
if ( lphl->dwStyle & LBS_SORT )
@ -476,7 +476,7 @@ int ListBoxAddString(LPHEADLIST lphl, SEGPTR itemData)
}
int ListBoxGetText(LPHEADLIST lphl, UINT uIndex, LPSTR OutStr)
int ListBoxGetText(LPHEADLIST lphl, UINT16 uIndex, LPSTR OutStr)
{
LPLISTSTRUCT lpls;
@ -498,7 +498,7 @@ int ListBoxGetText(LPHEADLIST lphl, UINT uIndex, LPSTR OutStr)
}
DWORD ListBoxGetItemData(LPHEADLIST lphl, UINT uIndex)
DWORD ListBoxGetItemData(LPHEADLIST lphl, UINT16 uIndex)
{
LPLISTSTRUCT lpls;
@ -508,7 +508,7 @@ DWORD ListBoxGetItemData(LPHEADLIST lphl, UINT uIndex)
}
int ListBoxSetItemData(LPHEADLIST lphl, UINT uIndex, DWORD ItemData)
int ListBoxSetItemData(LPHEADLIST lphl, UINT16 uIndex, DWORD ItemData)
{
LPLISTSTRUCT lpls = ListBoxGetItem(lphl, uIndex);
@ -518,10 +518,10 @@ int ListBoxSetItemData(LPHEADLIST lphl, UINT uIndex, DWORD ItemData)
}
int ListBoxDeleteString(LPHEADLIST lphl, UINT uIndex)
int ListBoxDeleteString(LPHEADLIST lphl, UINT16 uIndex)
{
LPLISTSTRUCT lpls, lpls2;
UINT Count;
UINT16 Count;
if (uIndex >= lphl->ItemsCount) return LB_ERR;
@ -561,13 +561,13 @@ int ListBoxDeleteString(LPHEADLIST lphl, UINT uIndex)
return lphl->ItemsCount;
}
static int lbFindString(LPHEADLIST lphl, UINT nFirst, SEGPTR MatchStr, BOOL match)
static int lbFindString(LPHEADLIST lphl, UINT16 nFirst, SEGPTR MatchStr, BOOL32 match)
{
/* match is either MATCH_SUBSTR or MATCH_EXACT */
LPLISTSTRUCT lpls;
UINT Count;
UINT First = nFirst + 1;
UINT16 Count;
UINT16 First = nFirst + 1;
int s_length = 0;
LPSTR lpMatchStr = (LPSTR)MatchStr;
@ -624,12 +624,12 @@ static int lbFindString(LPHEADLIST lphl, UINT nFirst, SEGPTR MatchStr, BOOL matc
return LB_ERR;
}
int ListBoxFindString(LPHEADLIST lphl, UINT nFirst, SEGPTR MatchStr)
int ListBoxFindString(LPHEADLIST lphl, UINT16 nFirst, SEGPTR MatchStr)
{
return lbFindString(lphl, nFirst, MatchStr, MATCH_SUBSTR );
}
int ListBoxFindStringExact(LPHEADLIST lphl, UINT nFirst, SEGPTR MatchStr)
int ListBoxFindStringExact(LPHEADLIST lphl, UINT16 nFirst, SEGPTR MatchStr)
{
return lbFindString(lphl, nFirst, MatchStr, MATCH_EXACT );
}
@ -676,7 +676,7 @@ int ListBoxSetCurSel(LPHEADLIST lphl, WORD wIndex)
lpls->itemState = 0;
}
if ((wIndex != (UINT)-1) && (wIndex < lphl->ItemsCount))
if ((wIndex != (UINT16)-1) && (wIndex < lphl->ItemsCount))
{
lphl->ItemFocused = wIndex;
lpls = ListBoxGetItem(lphl, wIndex);
@ -693,7 +693,7 @@ int ListBoxSetCurSel(LPHEADLIST lphl, WORD wIndex)
/* ------------------------- dir listing ------------------------ */
LONG ListBoxDirectory(LPHEADLIST lphl, UINT attrib, LPCSTR filespec)
LONG ListBoxDirectory(LPHEADLIST lphl, UINT16 attrib, LPCSTR filespec)
{
return 0;
}
@ -745,7 +745,7 @@ int ListBoxSetItemHeight(LPHEADLIST lphl, WORD wIndex, long height)
int ListBoxFindNextMatch(LPHEADLIST lphl, WORD wChar)
{
LPLISTSTRUCT lpls;
UINT count,first;
UINT16 count,first;
if ((char)wChar < ' ') return LB_ERR;
if (!lphl->HasStrings) return LB_ERR;

View File

@ -5,7 +5,6 @@
* Copyright 1994, 1996 Alexandre Julliard
*/
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>

View File

@ -67,7 +67,8 @@ static HICON16 STATIC_SetIcon( WND *wndPtr, HICON16 hicon )
/***********************************************************************
* StaticWndProc
*/
LRESULT StaticWndProc( HWND16 hWnd, UINT uMsg, WPARAM16 wParam, LPARAM lParam)
LRESULT StaticWndProc( HWND16 hWnd, UINT16 uMsg, WPARAM16 wParam,
LPARAM lParam )
{
LRESULT lResult = 0;
WND *wndPtr = WIN_FindWndPtr(hWnd);
@ -140,7 +141,7 @@ LRESULT StaticWndProc( HWND16 hWnd, UINT uMsg, WPARAM16 wParam, LPARAM lParam)
else
DEFWND_SetText( wndPtr, (LPSTR)PTR_SEG_TO_LIN(lParam) );
InvalidateRect32( hWnd, NULL, FALSE );
UpdateWindow( hWnd );
UpdateWindow32( hWnd );
break;
case WM_SETFONT:
@ -149,7 +150,7 @@ LRESULT StaticWndProc( HWND16 hWnd, UINT uMsg, WPARAM16 wParam, LPARAM lParam)
if (LOWORD(lParam))
{
InvalidateRect32( hWnd, NULL, FALSE );
UpdateWindow( hWnd );
UpdateWindow32( hWnd );
}
break;
@ -168,7 +169,7 @@ LRESULT StaticWndProc( HWND16 hWnd, UINT uMsg, WPARAM16 wParam, LPARAM lParam)
case STM_SETICON:
lResult = STATIC_SetIcon( wndPtr, (HICON16)wParam );
InvalidateRect32( hWnd, NULL, FALSE );
UpdateWindow( hWnd );
UpdateWindow32( hWnd );
break;
default:

View File

@ -4,7 +4,6 @@
* Copyright 1996 Bruce Milner
*/
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
#include <stdio.h>
#include <stdlib.h>
#include "windows.h"

View File

@ -94,7 +94,7 @@ static WNDCLASS32A WIDGETS_CommonControls32[] =
*
* Initialize the built-in window classes.
*/
BOOL WIDGETS_Init(void)
BOOL32 WIDGETS_Init(void)
{
int i;
char *name;

View File

@ -1,4 +1,4 @@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES
DEFS = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR = @srcdir@

View File

@ -49,7 +49,7 @@ int yyerror(char *);
%token tENABLE tDISABLE tBREAK tDELETE tSET tMODE tPRINT tEXAM tABORT
%token tCLASS tMODULE tSTACK tSEGMENTS tREGS tWND tQUEUE tLOCAL
%token tEOL tSTRING
%token tFRAME tSHARE tCOND tDISPLAY tUNDISPLAY
%token tFRAME tSHARE tCOND tDISPLAY tUNDISPLAY tDISASSEMBLE
%token tSTEPI tNEXTI tFINISH tSHOW tDIR
%token <string> tPATH
%token <string> tIDENTIFIER tSTRING
@ -145,6 +145,7 @@ command:
| tCOND tNUM tEOL { DEBUG_AddBPCondition($2, NULL); }
| tCOND tNUM expr tEOL { DEBUG_AddBPCondition($2, $3); }
| list_command
| disassemble_command
| set_command
| x_command
| print_command
@ -162,6 +163,11 @@ pathname:
tIDENTIFIER { $$ = $1; }
| tPATH { $$ = $1; }
disassemble_command:
tDISASSEMBLE tEOL { DEBUG_Disassemble( NULL, NULL, 10 ); }
| tDISASSEMBLE expr_addr tEOL { DEBUG_Disassemble( & $2, NULL, 10 ); }
| tDISASSEMBLE expr_addr ',' expr_addr tEOL { DEBUG_Disassemble( & $2, & $4, 0 ); }
list_command:
tLIST tEOL { DEBUG_List( NULL, NULL, 10 ); }
| tLIST '-' tEOL { DEBUG_List( NULL, NULL, -10 ); }
@ -294,7 +300,7 @@ expr_addr:
expr_value:
expr { DBG_ADDR addr = DEBUG_EvalExpr($1);
$$ = *(unsigned int *) addr.off; }
$$ = addr.off ? *(unsigned int *) addr.off : 0; }
/*
* The expr rule builds an expression tree. When we are done, we call
* EvalExpr to evaluate the value of the expression. The advantage of

View File

@ -112,7 +112,8 @@ $gs { yylval.reg = REG_GS; return tREG; }
<INITIAL>frame|fram|fra|fr { BEGIN(NOCMD); return tFRAME; }
<INITIAL>list|lis|li|l { BEGIN(PATH_EXPECTED); return tLIST; }
<INITIAL>enable|enabl|enab|ena { BEGIN(NOCMD); return tENABLE;}
<INITIAL>disable|disabl|disab|disa|dis { BEGIN(NOCMD); return tDISABLE; }
<INITIAL>disable|disabl|disab|disa|dis { BEGIN(NOCMD); return tDISABLE; }
<INITIAL>disassemble|disassembl|disassemb|disassem|disasse|disass|disas { BEGIN(NOCMD); return tDISASSEMBLE; }
<INITIAL,INFO_CMD,DEL_CMD>display|displa|displ|disp { BEGIN(FORMAT_EXPECTED); return tDISPLAY; }
<INITIAL>undisplay|undispla|undispl|undisp|undis|undi|und { BEGIN(NOCMD); return tUNDISPLAY; }
<INITIAL>delete|delet|dele|del { BEGIN(DEL_CMD); return tDELETE; }

View File

@ -14,7 +14,6 @@
#include "module.h"
#include "selectors.h"
#include "debugger.h"
#include "toolhelp.h"
#include "xmalloc.h"
#include <stdarg.h>

View File

@ -14,7 +14,6 @@
#include "module.h"
#include "selectors.h"
#include "debugger.h"
#include "toolhelp.h"
#include "xmalloc.h"
#include "expr.h"

View File

@ -121,7 +121,7 @@ void DEBUG_Help(void)
static const char * const helptext[] =
{
"The commands accepted by the Wine debugger are a reasonable",
"of the commands that gdb accepts.",
"subset of the commands that gdb accepts.",
"The commands currently are:",
" break [*<addr>] delete break bpnum",
" disable bpnum enable bpnum",
@ -134,10 +134,11 @@ void DEBUG_Help(void)
" x <addr> print <expr>",
" set <reg> = <expr> set *<addr> = <expr>",
" up down",
" list <lines> frame <n>",
" finish show dir",
" dir <path> display <expr>",
" delete display <disnum> undisplay <disnum>\n",
" list <lines> disassemble [<addr>][,<addr>]",
" frame <n> finish",
" show dir dir <path>",
" display <expr> undisplay <disnum>",
" delete display <disnum>\n",
"Wine-specific commands:",
" mode [16,32] walk [wnd,class,queue] <handle>",

View File

@ -426,6 +426,94 @@ DEBUG_List(struct list_id * source1, struct list_id * source2,
DEBUG_end_sourceline = end;
}
DBG_ADDR DEBUG_LastDisassemble={NULL,0,0};
static int
_disassemble(DBG_ADDR *addr)
{
DEBUG_PrintAddress( addr, dbg_mode, TRUE );
fprintf(stderr,": ");
if (!DBG_CHECK_READ_PTR( addr, 1 )) return 0;
DEBUG_Disasm( addr, TRUE );
fprintf(stderr,"\n");
return 1;
}
void
_disassemble_fixaddr(DBG_ADDR *addr) {
DWORD seg2;
struct datatype *testtype;
DBG_FIX_ADDR_SEG(addr,CS_reg(&DEBUG_context));
if( addr->type != NULL )
{
if( addr->type == DEBUG_TypeIntConst )
{
/*
* We know that we have the actual offset stored somewhere
* else in 32-bit space. Grab it, and we
* should be all set.
*/
seg2 = addr->seg;
addr->seg = 0;
addr->off = DEBUG_GetExprValue(addr, NULL);
addr->seg = seg2;
}
else
{
if (!DBG_CHECK_READ_PTR( addr, 1 )) return;
DEBUG_TypeDerefPointer(addr, &testtype);
if( testtype != NULL || addr->type == DEBUG_TypeIntConst )
addr->off = DEBUG_GetExprValue(addr, NULL);
}
}
else if (!addr->seg && !addr->off)
{
fprintf(stderr,"Invalid expression\n");
return;
}
}
void
DEBUG_Disassemble(const DBG_ADDR *xstart,const DBG_ADDR *xend,int offset)
{
int i;
DBG_ADDR last;
DBG_ADDR end,start;
if (xstart) {
start=*xstart;
_disassemble_fixaddr(&start);
}
if (xend) {
end=*xend;
_disassemble_fixaddr(&end);
}
if (!xstart && !xend) {
last = DEBUG_LastDisassemble;
if (!last.seg && !last.off) {
last.seg = (CS_reg(&DEBUG_context)==WINE_CODE_SELECTOR)?0:CS_reg(&DEBUG_context);
last.off = EIP_reg(&DEBUG_context);
}
for (i=0;i<offset;i++)
if (!_disassemble(&last)) break;
memcpy(&DEBUG_LastDisassemble,&last,sizeof(last));
return;
}
last = start;
if (!xend) {
for (i=0;i<offset;i++)
if (!_disassemble(&last)) break;
memcpy(&DEBUG_LastDisassemble,&last,sizeof(last));
return;
}
while (last.off <= end.off)
if (!_disassemble(&last)) break;
memcpy(&DEBUG_LastDisassemble,&last,sizeof(last));
return;
}
#if 0

View File

@ -8,7 +8,8 @@ Crashes
|Unexpected Windows program segfault - opcode = 8b
|Segmentation fault in Windows program 1b7:c41.
|Reading symbols from file /root/wine/wine.sym
|Loading symbols from ELF file /root/wine/wine...
|....more Loading symbols from ...
|In 16 bit mode.
|Register dump:
| CS:01b7 SS:016f DS:0287 ES:0000
@ -22,14 +23,14 @@ Crashes
|
|0050: sel=0287 base=40211d30 limit=0b93f (bytes) 16-bit rw-
|Backtrace:
|0 0x01b7:0x0c41 (PXSRV.FONGETFACENAME+0x7c)
|1 0x01b7:0x1e5b (PXSRV.FONPUTCATFONT+0x2cd)
|0 0x01b7:0x0c41 (PXSRV_FONGETFACENAME+0x7c)
|1 0x01b7:0x1e5b (PXSRV_FONPUTCATFONT+0x2cd)
|2 0x01a7:0x05aa
|3 0x01b7:0x0768 (PXSRV.FONINITFONTS+0x81)
|4 0x014f:0x03ed (PDOXWIN.@SQLCURCB$Q6CBTYPEULN8CBSCTYPE+0x1b1)
|3 0x01b7:0x0768 (PXSRV_FONINITFONTS+0x81)
|4 0x014f:0x03ed (PDOXWIN_@SQLCURCB$Q6CBTYPEULN8CBSCTYPE+0x1b1)
|5 0x013f:0x00ac
|
|0x01b7:0x0c41 (PXSRV.FONGETFACENAME+0x7c): movw %es:0x38(%bx),%dx
|0x01b7:0x0c41 (PXSRV_FONGETFACENAME+0x7c): movw %es:0x38(%bx),%dx
Steps to debug a crash. You may stop at any step, but please report the bug
and provide as much of the information gathered to the newsgroup or the
@ -67,23 +68,12 @@ relevant developer as feasonable.
3. If you have found a misbehaving function, try to find out why it
misbehaves. Find the function in the source code. Try to make sense of
the arguments passed. Usually there is a
"dprintf_xyz(stddeb,"Fnction(...)"...);" at the beginning of the
"dprintf_xyz(stddeb,"Function(...)"...);" at the beginning of the
function. Rerun wine with "-debugmsg +xyz,+relay" added to the
commandline.
4. If the crash happened in a function in WINE, find out the exact line using
gdb (the sample crash has another reason):
|... somewhere in the backtrace ...
|5 0x080e5ad8 (CreateWindowEx32A+0xd8)
|...
|$ gdb wine
|...
|(gdb) l *0x080e5ad8
|0x80e5ad8 is in CreateWindowEx32A (win.c:837).
|...
|837 return WIN_CreateWindowEx( &cs, classAtom, FALSE );
|...
4. Additional information on how to debug using the internal debugger can be
found in debugger/README.
5. If those information isn't clear enough or if you want to know more about
what's happening in the function itself, try running wine with "-debugmsg
@ -96,7 +86,7 @@ relevant developer as feasonable.
7. You can also set a breakpoint for that function. Start wine with the
"-debug" option added to the commandline. After loading the executable
wine will enter the internal debugger. Use "break KERNEL.LSTRLEN"
wine will enter the internal debugger. Use "break KERNEL_LSTRLEN"
(replace by function you want to debug, CASE IS RELEVANT.) to set a
breakpoint. Then use "continue" to start normal program-execution. Wine
will stop if it reaches the breakpoint. If the program isn't yet at the
@ -123,10 +113,9 @@ Program reports an error with a Messagebox
Since the failure happens usually directly before setting up the Messagebox
you can start wine with "-debug" added to the commandline, set a breakpoint
at "USER.MESSAGEBOX" (win16 programs) "USER32.MessageBox" (win32 Programs)
and proceed with "continue". With "-debugmsg +all" Wine will now stop
directly directly before setting up the Messagebox. Proceed as explained
above.
at "MessageBox32A" (called by win16 and win32 programs) and proceed with
"continue". With "-debugmsg +all" Wine will now stop directly directly
before setting up the Messagebox. Proceed as explained above.
Disassembling programs:
@ -187,12 +176,12 @@ Sample debugging session:
|Call WPROCS.24: TASK_RESCHEDULE() ret=003f:0759 ds=0000
|Ret WPROCS.24: TASK_RESCHEDULE() retval=0x0000 ret=003f:0759 ds=08a7
|CallTo16(func=0157:001a,ds=08a7,0x11d7,0x0000,0x0000,0x3cb4,0x1f40,0x0000,0x0000,0x08a7)
|Reading symbols from file /root/wine/wine.sym
|Stopped on breakpoint 1 at 0x0157:0x001a
|Loading symbols from ELF file /home/marcus/wine/wine...
|...more Loading symbols ...
|Stopped on breakpoint 1 at 0x0157:0x001a (WPROCS_VXD_PAGEFILE+0xffffeeea)
|In 16 bit mode.
|0x0157:0x001a: xorw %bp,%bp
|Wine-dbg> break USER.MESSAGEBOX <---- Set Breakpoint
|Breakpoint 2 at 0x0067:0x00000000 (USER.MESSAGEBOX)
|Wine-dbg>break MessageBox32A <---- Set Breakpoint
|Breakpoint 2 at 0x080e792c (MessageBox32A [msgbox.c:198])
|Wine-dbg>c <---- Continue
|Call KERNEL.91: INITTASK() ret=0157:0022 ds=08a7
| AX=0000 BX=3cb4 CX=1f40 DX=0000 SI=0000 DI=08a7 ES=11d7 EFL=00000286
@ -219,9 +208,10 @@ Sample debugging session:
^
| -1 aka. HFILE_ERROR
|Stopped on breakpoint 2 at 0x0067:0x00000000 (USER.MESSAGEBOX)
|Call USER.1: MESSAGEBOX(0x0000,08ef:8362,0000:0000,0x1030) ret=05d7:084f ds=08efStopped on breakpoint 2 at 0x080e792c (MessageBox32A [msgbox.c:198])
|198 {
|In 32 bit mode.
|0x0067:0x00000000 (USER.MESSAGEBOX): pushw %bp
|Wine-dbg> _
Now, we see that OPENFILE seem to have returned 0xFFFF (or -1). Checking
the implementation of OpenFile in files/file.c, this signals an error.
@ -237,23 +227,29 @@ Sample debugging session:
|marcus@jet $ wine winword.exe -debugmsg +relay,+file -debug
|.....much more debugoutput .....
|
|Call KERNEL.97: GETTEMPFILENAME(0x00c3,08a7:8350,0x0000,08a7:8234) ret=058f:09b1 ds=08a7
|FILE_Create: 'C:~docd03d.tmp' 01b6 1
|FILE_SetDosError: errno = 13
|GetTempFileName: returning C:\~DOCD03D.TMP
|Ret KERNEL.97: GETTEMPFILENAME() retval=0xd03d ret=058f:09b1 ds=08a7
|Call KERNEL.74: OPENFILE(08a7:8234,08a7:82c6,0x1012) ret=058f:09d8 ds=08a7
|OpenFile: C:\~DOCD03D.TMP 1012
|FILE_AllocTaskHandle: returning task handle 1, dos_file 0, file 1 of 254
|FILE_Create: 'C:\~DOCD03D.TMP' 01b6 0
|FILE_SetDosError: errno = 13
|OpenFile(C:\~DOCD03D.TMP): return = HFILE_ERROR
|FILE_FreeTaskHandle: dos=1 file=0
|Ret KERNEL.74: OPENFILE() retval=0xffff ret=058f:09d8 ds=08a7
The filename is "C:\~DOCD03D.TMP". Of course, C:\ is writeable for the
|Call KERNEL.97: GETTEMPFILENAME(0x00c3,08ef:8350,0x0000,08ef:8234) ret=05d7:09b1 ds=08ef
|FILE_Create: 'C:\~doc8b93.tmp' 01b6 1
|FILE_SetDosError: errno = 13
|Warning: GetTempFileName returns 'C:\~doc8b93.tmp', which doesn't seem to be writeable.
|Please check your configuration file if this generates a failure.
^ Warning message
|GetTempFileName: returning C:\~doc8b93.tmp
|Ret KERNEL.97: GETTEMPFILENAME() retval=0x8b93 ret=05d7:09b1 ds=08ef
|Call KERNEL.74: OPENFILE(08ef:8234,08ef:82c6,0x1012) ret=05d7:09d8 ds=08ef
|OpenFile: C:\~doc8b93.tmp 1012
|FILE_Create: 'C:\~doc8b93.tmp' 01b6 0
|FILE_SetDosError: errno = 13
|OpenFile(C:\~doc8b93.tmp): return = HFILE_ERROR
|Ret KERNEL.74: OPENFILE() retval=0xffff ret=05d7:09d8 ds=08ef
The filename is "C:\~docd03d.tmp". Of course, C:\ is writeable for the
superuser only, so the open fails for a normal user and OpenFile returns
-1, which in turn generates this messagebox.
-1, which in turn generates this messagebox. (As said by the warning
message.)
Written by Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>,

View File

@ -1,6 +1,8 @@
This file documents the necessary procedure for adding a new language
to the list of languages that Wine can display system menus and forms
in.
in. Currently at least the following languages are still missing:
Bulgarian, Chinese, Greek, Icelandic, Japanese, Dutch, Polish, Portuguese,
Romanian, Russian, Croatian, Slovak, Swedish, Turkish, and Slovanian.
To add a new language you need to be able to translate the relatively
few texts, of course. You will need very little knowledge of
@ -22,9 +24,8 @@ you must...
3. Edit include/options.h enum "WINE_LANGUAGE" to have a member called
LANG_XX where XX is the new abbreviation.
4. Edit misc/ole2nls.c function "GetUserDefaultLCID" to contain an
extra case for your language. The correct return values seem to
be a mystery, but don't worry.
4. Edit misc/ole2nls.c function "GetUserDefaultLCID" to contain a
case for your language by uncommenting the return value of it.
5. Edit resources/sysrec.c to include "sysres_XX.h" where XX is the
abbreviation for your language. (That file will be produced auto-

View File

@ -1,6 +1,6 @@
prefix = @prefix@
sysconfdir = @sysconfdir@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES -DETCDIR=\"$(sysconfdir)\"
DEFS = -D__WINE__ -DETCDIR=\"$(sysconfdir)\"
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR = @srcdir@

View File

@ -582,7 +582,7 @@ BOOL32 GetDiskFreeSpace32W( LPCWSTR root, LPDWORD cluster_sectors,
*/
UINT16 GetDriveType16( UINT16 drive )
{
dprintf_dosfs( stddeb, "GetDriveType(%c:)\n", 'A' + drive );
dprintf_dosfs( stddeb, "GetDriveType16(%c:)\n", 'A' + drive );
switch(DRIVE_GetType(drive))
{
case TYPE_FLOPPY: return DRIVE_REMOVABLE;

View File

@ -15,6 +15,7 @@
#include <sys/errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <time.h>
#include <unistd.h>
#include <utime.h>
@ -33,15 +34,9 @@
#include "stddebug.h"
#include "debug.h"
typedef struct
{
K32OBJ header;
int unix_handle;
int mode;
char *unix_name;
DWORD type; /* Type for win32 apps */
} DOS_FILE;
#if defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
#define MAP_ANON MAP_ANONYMOUS
#endif
/***********************************************************************
@ -49,10 +44,10 @@ typedef struct
*
* Allocate a file.
*/
static HFILE32 FILE_Alloc( DOS_FILE **file )
static HFILE32 FILE_Alloc( FILE_OBJECT **file )
{
HFILE32 handle;
*file = HeapAlloc( SystemHeap, 0, sizeof(DOS_FILE) );
*file = HeapAlloc( SystemHeap, 0, sizeof(FILE_OBJECT) );
if (!*file)
{
DOS_ERROR( ER_TooManyOpenFiles, EC_ProgramError, SA_Abort, EL_Disk );
@ -77,7 +72,7 @@ static HFILE32 FILE_Alloc( DOS_FILE **file )
*/
void FILE_Destroy( K32OBJ *ptr )
{
DOS_FILE *file = (DOS_FILE *)ptr;
FILE_OBJECT *file = (FILE_OBJECT *)ptr;
assert( ptr->type == K32OBJ_FILE );
if (file->unix_handle != -1) close( file->unix_handle );
@ -93,9 +88,9 @@ void FILE_Destroy( K32OBJ *ptr )
* Return the DOS file associated to a task file handle. FILE_ReleaseFile must
* be called to release the file.
*/
static DOS_FILE *FILE_GetFile( HFILE32 handle )
static FILE_OBJECT *FILE_GetFile( HFILE32 handle )
{
return (DOS_FILE *)PROCESS_GetObjPtr( handle, K32OBJ_FILE );
return (FILE_OBJECT *)PROCESS_GetObjPtr( handle, K32OBJ_FILE );
}
@ -104,7 +99,7 @@ static DOS_FILE *FILE_GetFile( HFILE32 handle )
*
* Release a DOS file obtained with FILE_GetFile.
*/
static void FILE_ReleaseFile( DOS_FILE *file )
static void FILE_ReleaseFile( FILE_OBJECT *file )
{
K32OBJ_DecCount( &file->header );
}
@ -117,7 +112,7 @@ static void FILE_ReleaseFile( DOS_FILE *file )
*/
int FILE_GetUnixHandle( HFILE32 hFile )
{
DOS_FILE *file;
FILE_OBJECT *file;
int ret;
if (!(file = FILE_GetFile( hFile ))) return -1;
@ -183,7 +178,7 @@ void FILE_SetDosError(void)
HFILE32 FILE_DupUnixHandle( int fd )
{
HFILE32 handle;
DOS_FILE *file;
FILE_OBJECT *file;
if ((handle = FILE_Alloc( &file )) != INVALID_HANDLE_VALUE32)
{
@ -204,7 +199,7 @@ HFILE32 FILE_DupUnixHandle( int fd )
static HFILE32 FILE_OpenUnixFile( const char *name, int mode )
{
HFILE32 handle;
DOS_FILE *file;
FILE_OBJECT *file;
struct stat st;
if ((handle = FILE_Alloc( &file )) == INVALID_HANDLE_VALUE32)
@ -228,7 +223,7 @@ static HFILE32 FILE_OpenUnixFile( const char *name, int mode )
return INVALID_HANDLE_VALUE32;
}
/* File opened OK, now fill the DOS_FILE */
/* File opened OK, now fill the FILE_OBJECT */
file->unix_name = HEAP_strdupA( SystemHeap, 0, name );
return handle;
@ -270,7 +265,7 @@ HFILE32 FILE_Open( LPCSTR path, INT32 mode )
static HFILE32 FILE_Create( LPCSTR path, int mode, int unique )
{
HFILE32 handle;
DOS_FILE *file;
FILE_OBJECT *file;
const char *unixName;
DOS_FULL_NAME full_name;
@ -300,7 +295,7 @@ static HFILE32 FILE_Create( LPCSTR path, int mode, int unique )
return INVALID_HANDLE_VALUE32;
}
/* File created OK, now fill the DOS_FILE */
/* File created OK, now fill the FILE_OBJECT */
file->unix_name = HEAP_strdupA( SystemHeap, 0, full_name.long_name );
return handle;
@ -358,7 +353,7 @@ BOOL32 FILE_Stat( LPCSTR unixName, BY_HANDLE_FILE_INFORMATION *info )
DWORD GetFileInformationByHandle( HFILE32 hFile,
BY_HANDLE_FILE_INFORMATION *info )
{
DOS_FILE *file;
FILE_OBJECT *file;
DWORD ret = 0;
struct stat st;
@ -458,7 +453,7 @@ INT32 CompareFileTime( LPFILETIME x, LPFILETIME y )
*/
HFILE32 FILE_Dup( HFILE32 hFile )
{
DOS_FILE *file;
FILE_OBJECT *file;
HFILE32 handle;
dprintf_file( stddeb, "FILE_Dup for handle %d\n", hFile );
@ -477,7 +472,7 @@ HFILE32 FILE_Dup( HFILE32 hFile )
*/
HFILE32 FILE_Dup2( HFILE32 hFile1, HFILE32 hFile2 )
{
DOS_FILE *file;
FILE_OBJECT *file;
dprintf_file( stddeb, "FILE_Dup2 for handle %d\n", hFile1 );
if (!(file = FILE_GetFile( hFile1 ))) return HFILE_ERROR32;
@ -543,7 +538,8 @@ UINT32 GetTempFileName32A( LPCSTR path, LPCSTR prefix, UINT32 unique,
HFILE32 handle = FILE_Create( buffer, 0666, TRUE );
if (handle != INVALID_HANDLE_VALUE32)
{ /* We created it */
dprintf_file( stddeb, "GetTempFileName: created %s\n", buffer);
dprintf_file( stddeb, "GetTempFileName32A: created %s\n",
buffer);
CloseHandle( handle );
break;
}
@ -566,7 +562,7 @@ UINT32 GetTempFileName32A( LPCSTR path, LPCSTR prefix, UINT32 unique,
"Please check your configuration file if this generates a failure.\n",
buffer);
}
dprintf_file( stddeb, "GetTempFileName: returning %s\n", buffer );
dprintf_file( stddeb, "GetTempFileName32A: returning %s\n", buffer );
return unique ? unique : num;
}
@ -758,7 +754,7 @@ LONG WIN16_hread( HFILE16 hFile, SEGPTR buffer, LONG count )
{
LONG maxlen;
dprintf_file( stddeb, "_hread16: %d %08lx %ld\n",
dprintf_file( stddeb, "WIN16_hread: %d %08lx %ld\n",
hFile, (DWORD)buffer, count );
/* Some programs pass a count larger than the allocated buffer */
@ -782,7 +778,7 @@ UINT16 WIN16_lread( HFILE16 hFile, SEGPTR buffer, UINT16 count )
*/
UINT32 _lread32( HFILE32 hFile, LPVOID buffer, UINT32 count )
{
DOS_FILE *file;
FILE_OBJECT *file;
UINT32 result;
dprintf_file( stddeb, "_lread32: %d %p %d\n", hFile, buffer, count );
@ -832,7 +828,7 @@ HFILE32 _lcreat32( LPCSTR path, INT32 attr )
HFILE32 _lcreat_uniq( LPCSTR path, INT32 attr )
{
int mode = (attr & 1) ? 0444 : 0666;
dprintf_file( stddeb, "_lcreat: %s %02x\n", path, attr );
dprintf_file( stddeb, "_lcreat_uniq: %s %02x\n", path, attr );
return FILE_Create( path, mode, TRUE );
}
@ -843,7 +839,7 @@ HFILE32 _lcreat_uniq( LPCSTR path, INT32 attr )
DWORD SetFilePointer( HFILE32 hFile, LONG distance, LONG *highword,
DWORD method )
{
DOS_FILE *file;
FILE_OBJECT *file;
int origin, result;
if (highword && *highword)
@ -858,9 +854,9 @@ DWORD SetFilePointer( HFILE32 hFile, LONG distance, LONG *highword,
if (!(file = FILE_GetFile( hFile ))) return 0xffffffff;
switch(method)
{
case 1: origin = SEEK_CUR; break;
case 2: origin = SEEK_END; break;
default: origin = SEEK_SET; break;
case FILE_CURRENT: origin = SEEK_CUR; break;
case FILE_END: origin = SEEK_END; break;
default: origin = SEEK_SET; break;
}
if ((result = lseek( file->unix_handle, distance, origin )) == -1)
@ -904,7 +900,7 @@ HFILE32 _lopen32( LPCSTR path, INT32 mode )
{
INT32 unixMode;
dprintf_file(stddeb, "_lopen('%s',%04x)\n", path, mode );
dprintf_file(stddeb, "_lopen32('%s',%04x)\n", path, mode );
switch(mode & 3)
{
@ -972,10 +968,10 @@ LONG _hwrite16( HFILE16 hFile, LPCSTR buffer, LONG count )
*/
LONG _hwrite32( HFILE32 hFile, LPCSTR buffer, LONG count )
{
DOS_FILE *file;
FILE_OBJECT *file;
LONG result;
dprintf_file( stddeb, "_hwrite: %d %p %ld\n", hFile, buffer, count );
dprintf_file( stddeb, "_hwrite32: %d %p %ld\n", hFile, buffer, count );
if (!(file = FILE_GetFile( hFile ))) return HFILE_ERROR32;
if (count == 0) /* Expand or truncate at current position */
@ -999,7 +995,7 @@ UINT16 SetHandleCount16( UINT16 count )
PDB *pdb = (PDB *)GlobalLock16( hPDB );
BYTE *files = PTR_SEG_TO_LIN( pdb->fileHandlesPtr );
dprintf_file( stddeb, "SetHandleCount(%d)\n", count );
dprintf_file( stddeb, "SetHandleCount16(%d)\n", count );
if (count < 20) count = 20; /* No point in going below 20 */
else if (count > 254) count = 254;
@ -1056,7 +1052,7 @@ UINT32 SetHandleCount32( UINT32 count )
*/
BOOL32 FlushFileBuffers( HFILE32 hFile )
{
DOS_FILE *file;
FILE_OBJECT *file;
BOOL32 ret;
dprintf_file( stddeb, "FlushFileBuffers(%d)\n", hFile );
@ -1077,7 +1073,7 @@ BOOL32 FlushFileBuffers( HFILE32 hFile )
*/
BOOL32 SetEndOfFile( HFILE32 hFile )
{
DOS_FILE *file;
FILE_OBJECT *file;
BOOL32 ret = TRUE;
dprintf_file( stddeb, "SetEndOfFile(%d)\n", hFile );
@ -1146,7 +1142,7 @@ BOOL32 DeleteFile32W( LPCWSTR path )
*/
BOOL32 FILE_SetFileType( HFILE32 hFile, DWORD type )
{
DOS_FILE *file = FILE_GetFile( hFile );
FILE_OBJECT *file = FILE_GetFile( hFile );
if (!file) return FALSE;
file->type = type;
FILE_ReleaseFile( file );
@ -1154,12 +1150,49 @@ BOOL32 FILE_SetFileType( HFILE32 hFile, DWORD type )
}
/***********************************************************************
* FILE_mmap
*/
LPVOID FILE_mmap( FILE_OBJECT *file, LPVOID start,
DWORD size_high, DWORD size_low,
DWORD offset_high, DWORD offset_low,
int prot, int flags )
{
int fd = -1;
if (size_high || offset_high)
fprintf( stderr, "FILE_mmap: offsets larger than 4Gb not supported\n");
if (!file)
{
#ifdef MAP_ANON
flags |= MAP_ANON;
#else
static int fdzero = -1;
if (fdzero == -1)
{
if ((fdzero = open( "/dev/zero", O_RDONLY )) == -1)
{
perror( "/dev/zero: open" );
exit(1);
}
}
fd = fdzero;
#endif /* MAP_ANON */
}
else fd = file->unix_handle;
return mmap( start, size_low, prot, flags, fd, offset_low );
}
/***********************************************************************
* GetFileType (KERNEL32.222)
*/
DWORD GetFileType( HFILE32 hFile )
{
DOS_FILE *file = FILE_GetFile(hFile);
FILE_OBJECT *file = FILE_GetFile(hFile);
if (!file) return FILE_TYPE_UNKNOWN; /* FIXME: correct? */
FILE_ReleaseFile( file );
return file->type;
@ -1267,7 +1300,7 @@ BOOL32 SetFileTime( HFILE32 hFile,
const FILETIME *lpLastAccessTime,
const FILETIME *lpLastWriteTime )
{
DOS_FILE *file = FILE_GetFile(hFile);
FILE_OBJECT *file = FILE_GetFile(hFile);
struct utimbuf utimbuf;
if (!file) return FILE_TYPE_UNKNOWN; /* FIXME: correct? */

View File

@ -1,4 +1,4 @@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES
DEFS = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR = @srcdir@

View File

@ -1,4 +1,4 @@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES
DEFS = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@

View File

@ -1,4 +1,4 @@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES
DEFS = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@
@ -8,6 +8,7 @@ MODULE = win16drv
C_SRCS = \
font.c \
init.c \
objects.c \
text.c
all: $(MODULE).o

View File

@ -8,6 +8,7 @@
#include "windows.h"
#include "win16drv.h"
#include "gdi.h"
#include "font.h"
/***********************************************************************
@ -71,3 +72,10 @@ BOOL32 WIN16DRV_GetTextMetrics( DC *dc, TEXTMETRIC32A *metrics )
return TRUE;
}
HFONT32 WIN16DRV_FONT_SelectObject( DC * dc, HFONT32 hfont, FONTOBJ * font)
{
/* TTD */
printf("In WIN16DRV_FONT_SelectObject\n");
return GetStockObject32(SYSTEM_FIXED_FONT);
}

View File

@ -75,7 +75,7 @@ static const DC_FUNCTIONS WIN16DRV_Funcs =
NULL, /* pScaleViewportExtEx */
NULL, /* pScaleWindowExtEx */
NULL, /* pSelectClipRgn */
NULL, /* pSelectObject */
WIN16DRV_SelectObject, /* pSelectObject */
NULL, /* pSelectPalette */
NULL, /* pSetBkColor */
NULL, /* pSetBkMode */
@ -690,8 +690,7 @@ BOOL32 WIN16DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device, LPCSTR output,
/* passing information on the available fonts */
if (pLPD->paPrinterFonts == NULL)
{
pfnCallback = GetProcAddress16(GetModuleHandle("GDI"),
(MAKEINTRESOURCE(158)));
pfnCallback = MODULE_GetEntryPoint( GetModuleHandle16("GDI"), 158 );
if (pfnCallback != NULL)
{
@ -813,7 +812,7 @@ DWORD PRTDRV_ExtTextOut(LPPDEVICE lpDestDev, WORD wDestXOrg, WORD wDestYOrg,
if ((pLPD = FindPrinterDriverFromPDEVICE(lpDestDev)) != NULL)
{
LONG lP1, lP4, lP5, lP7, lP8, lP9, lP10, lP11;
WORD wP2, wP3, wP12;
WORD wP2, wP3, wP6, wP12;
INT16 iP6;
SEGPTR SegPtr = pLPD->ThunkBufSegPtr;
@ -945,7 +944,7 @@ int
ExtractPQ(HPQ hPQ)
{
struct hpq *queue, *prev, *current, *currentPrev;
int key = 0, tag = -1;
int key, tag = -1;
currentPrev = prev = NULL;
queue = current = hpqueue;
if (current)
@ -1146,7 +1145,7 @@ int WriteDialog(HANDLE16 hJob, LPSTR lpMsg, WORD cchMsg)
dprintf_win16drv(stddeb, "WriteDialog: %04x %04x \"%s\"\n", hJob, cchMsg, lpMsg);
nRet = MessageBox16( 0, lpMsg, "Printing Error", MB_OKCANCEL);
nRet = MessageBox16(NULL, lpMsg, "Printing Error", MB_OKCANCEL);
return nRet;
}

View File

@ -0,0 +1,53 @@
/*
* GDI objects
*
* Copyright 1993 Alexandre Julliard
*/
#include <stdlib.h>
#include <stdio.h>
#include "bitmap.h"
#include "brush.h"
#include "font.h"
#include "pen.h"
#include "stddebug.h"
#include "debug.h"
extern HBITMAP32 WIN16DRV_BITMAP_SelectObject( DC * dc, HBITMAP32 hbitmap,
BITMAPOBJ * bmp );
extern HBRUSH32 WIN16DRV_BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush,
BRUSHOBJ * brush );
extern HFONT32 WIN16DRV_FONT_SelectObject( DC * dc, HFONT32 hfont,
FONTOBJ * font );
extern HPEN32 WIN16DRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen );
/***********************************************************************
* X11DRV_SelectObject
*/
HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle )
{
GDIOBJHDR *ptr = GDI_GetObjPtr( handle, MAGIC_DONTCARE );
if (!ptr) return 0;
dprintf_gdi(stddeb, "SelectObject: hdc=%04x %04x\n", dc->hSelf, handle );
switch(ptr->wMagic)
{
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 );
case REGION_MAGIC:
return (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle );
}
return 0;
}

View File

@ -1,4 +1,4 @@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES
DEFS = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR = @srcdir@

View File

@ -56,7 +56,8 @@ HBITMAP32 X11DRV_BITMAP_SelectObject( DC * dc, HBITMAP32 hbitmap,
if (!(dc->w.flags & DC_MEMORY)) return 0;
if (dc->w.hVisRgn)
SetRectRgn(dc->w.hVisRgn, 0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight );
SetRectRgn32( dc->w.hVisRgn, 0, 0,
bmp->bitmap.bmWidth, bmp->bitmap.bmHeight );
else
{
hrgn = CreateRectRgn32(0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight);

View File

@ -1,4 +1,4 @@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES
DEFS = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR = @srcdir@

View File

@ -187,14 +187,14 @@ BOOL16 BUILTIN_Init(void)
/* Set the USER and GDI heap selectors */
pModule = MODULE_GetPtr( GetModuleHandle( "USER" ));
pModule = MODULE_GetPtr( GetModuleHandle16( "USER" ));
USER_HeapSel = (NE_SEG_TABLE( pModule ) + pModule->dgroup - 1)->selector;
pModule = MODULE_GetPtr( GetModuleHandle( "GDI" ));
pModule = MODULE_GetPtr( GetModuleHandle16( "GDI" ));
GDI_HeapSel = (NE_SEG_TABLE( pModule ) + pModule->dgroup - 1)->selector;
/* Initialize KERNEL.178 (__WINFLAGS) with the correct flags value */
hModule = GetModuleHandle( "KERNEL" );
hModule = GetModuleHandle16( "KERNEL" );
MODULE_SetEntryPoint( hModule, 178, GetWinFlags() );
/* Initialize the real-mode selector entry points */
@ -203,7 +203,7 @@ BOOL16 BUILTIN_Init(void)
/* Set interrupt vectors from entry points in WPROCS.DLL */
hModule = GetModuleHandle( "WPROCS" );
hModule = GetModuleHandle16( "WPROCS" );
for (vector = 0; vector < 256; vector++)
{
FARPROC16 proc = MODULE_GetEntryPoint( hModule,

View File

@ -2,7 +2,7 @@ name gdi
type win16
heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
1 pascal SetBkColor(word long) SetBkColor
1 pascal SetBkColor(word long) SetBkColor16
2 pascal16 SetBkMode(word word) SetBkMode16
3 pascal16 SetMapMode(word word) SetMapMode16
4 pascal16 SetROP2(word word) SetROP216
@ -10,7 +10,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
6 pascal16 SetPolyFillMode(word word) SetPolyFillMode16
7 pascal16 SetStretchBltMode(word word) SetStretchBltMode16
8 pascal16 SetTextCharacterExtra(word s_word) SetTextCharacterExtra16
9 pascal SetTextColor(word long) SetTextColor
9 pascal SetTextColor(word long) SetTextColor16
10 pascal16 SetTextJustification(word s_word s_word) SetTextJustification16
11 pascal SetWindowOrg(word s_word s_word) SetWindowOrg
12 pascal SetWindowExt(word s_word s_word) SetWindowExt
@ -54,10 +54,10 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
45 pascal16 SelectObject(word word) SelectObject16
#46 pascal __GP?
47 pascal16 CombineRgn(word word word s_word) CombineRgn16
48 pascal16 CreateBitmap(word word word word ptr) CreateBitmap
48 pascal16 CreateBitmap(word word word word ptr) CreateBitmap16
49 pascal16 CreateBitmapIndirect(ptr) CreateBitmapIndirect16
50 pascal16 CreateBrushIndirect(ptr) CreateBrushIndirect16
51 pascal16 CreateCompatibleBitmap(word word word) CreateCompatibleBitmap
51 pascal16 CreateCompatibleBitmap(word word word) CreateCompatibleBitmap16
52 pascal16 CreateCompatibleDC(word) CreateCompatibleDC16
53 pascal16 CreateDC(ptr ptr ptr ptr) CreateDC16
54 pascal16 CreateEllipticRgn(s_word s_word s_word s_word) CreateEllipticRgn16
@ -80,7 +80,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
71 pascal16 EnumObjects(word word segptr long) THUNK_EnumObjects16
72 pascal16 EqualRgn(word word) EqualRgn16
73 pascal16 ExcludeVisRect(word s_word s_word s_word s_word) ExcludeVisRect
74 pascal GetBitmapBits(word long ptr) GetBitmapBits
74 pascal GetBitmapBits(word long ptr) GetBitmapBits16
75 pascal GetBkColor(word) GetBkColor16
76 pascal16 GetBkMode(word) GetBkMode16
77 pascal16 GetClipBox(word ptr) GetClipBox16
@ -113,9 +113,9 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
103 pascal16 PtVisible(word s_word s_word) PtVisible16
104 pascal16 RectVisibleOld(word ptr) RectVisible16
105 pascal16 SelectVisRgn(word word) SelectVisRgn
106 pascal SetBitmapBits(word long ptr) SetBitmapBits
106 pascal SetBitmapBits(word long ptr) SetBitmapBits16
117 pascal SetDCOrg(word s_word s_word) SetDCOrg
119 pascal16 AddFontResource(ptr) AddFontResource
119 pascal16 AddFontResource(ptr) AddFontResource16
#121 pascal Death
#122 pascal ReSurRection
123 pascal16 PlayMetaFile(word word) PlayMetaFile16
@ -131,7 +131,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
133 pascal16 GetEnvironment(ptr ptr word) GetEnvironment
134 pascal16 GetRgnBox(word ptr) GetRgnBox16
#135 pascal ScanLr
136 pascal16 RemoveFontResource(ptr) RemoveFontResource
136 pascal16 RemoveFontResource(ptr) RemoveFontResource16
148 pascal SetBrushOrg(word s_word s_word) SetBrushOrg
149 pascal GetBrushOrg(word) GetBrushOrg
150 pascal16 UnrealizeObject(word) UnrealizeObject16
@ -139,7 +139,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
153 pascal16 CreateIC(ptr ptr ptr ptr) CreateIC16
154 pascal GetNearestColor(word long) GetNearestColor16
155 stub QueryAbort
156 pascal16 CreateDiscardableBitmap(word word word) CreateDiscardableBitmap
156 pascal16 CreateDiscardableBitmap(word word word) CreateDiscardableBitmap16
158 pascal16 EnumCallback(ptr ptr word long) WineEnumDFontCallback
159 pascal16 GetMetaFileBits(word) GetMetaFileBits
160 pascal16 SetMetaFileBits(word) SetMetaFileBits
@ -148,10 +148,10 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
163 pascal SetBitmapDimension(word s_word s_word) SetBitmapDimension
169 stub IsDCDirty
170 stub SetDCStatus
172 pascal16 SetRectRgn(word s_word s_word s_word s_word) SetRectRgn
172 pascal16 SetRectRgn(word s_word s_word s_word s_word) SetRectRgn16
173 pascal16 GetClipRgn(word) GetClipRgn16
175 pascal16 EnumMetaFile(word word segptr long) THUNK_EnumMetaFile16
176 pascal16 PlayMetaFileRecord(word ptr ptr word) PlayMetaFileRecord
176 pascal16 PlayMetaFileRecord(word ptr ptr word) PlayMetaFileRecord16
179 pascal16 GetDCState(word) GetDCState
180 pascal16 SetDCState(word word) SetDCState
181 pascal16 RectInRegionOld(word ptr) RectInRegion16
@ -218,17 +218,17 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
306 stub ENGINEMAKEFONTDIR
307 pascal16 GetCharABCWidths(word word word ptr) GetCharABCWidths16
308 stub GetOutLineTextMetrics
309 pascal GetGlyphOutLine(word word word ptr long ptr ptr) GetGlyphOutLine
310 pascal16 CreateScalableFontResource(word ptr ptr ptr) CreateScalableFontResource
309 pascal GetGlyphOutline(word word word ptr long ptr ptr) GetGlyphOutline16
310 pascal16 CreateScalableFontResource(word ptr ptr ptr) CreateScalableFontResource16
311 stub GetFontData
312 stub ConvertOutLineFontFile
313 pascal16 GetRasterizerCaps(ptr word) GetRasterizerCaps
313 pascal16 GetRasterizerCaps(ptr word) GetRasterizerCaps16
314 stub EngineExtTextOut
315 stub EngineRealizeFontExt
316 stub EngineGetCharWidthStr
317 stub EngineGetGlyphBmpExt
330 pascal16 EnumFontFamilies(word ptr segptr long) THUNK_EnumFontFamilies16
332 pascal16 GetKerningPairs(word word ptr) GetKerningPairs
332 pascal16 GetKerningPairs(word word ptr) GetKerningPairs16
345 pascal16 GetTextAlign(word) GetTextAlign16
346 pascal16 SetTextAlign(word word) SetTextAlign16
348 pascal16 Chord(word s_word s_word s_word s_word s_word s_word
@ -246,7 +246,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
363 pascal16 GetPaletteEntries(word word word ptr) GetPaletteEntries16
364 pascal16 SetPaletteEntries(word word word ptr) SetPaletteEntries16
365 pascal16 RealizeDefaultPalette(word) RealizeDefaultPalette
366 pascal16 UpdateColors(word) UpdateColors
366 pascal16 UpdateColors(word) UpdateColors16
367 pascal16 AnimatePalette(word word word ptr) AnimatePalette16
368 pascal16 ResizePalette(word word) ResizePalette16
370 pascal16 GetNearestPaletteIndex(word long) GetNearestPaletteIndex16

View File

@ -4,9 +4,9 @@ base 1
0000 stub AbortDoc
0001 stub AbortPath
0002 stdcall AddFontResourceA(ptr) AddFontResource
0002 stdcall AddFontResourceA(ptr) AddFontResource32A
0003 stub AddFontResourceTracking
0004 stub AddFontResourceW
0004 stdcall AddFontResourceW(ptr) AddFontResource32W
0005 stub AngleArc
0006 stdcall AnimatePalette(long long long ptr) AnimatePalette32
0007 stdcall Arc(long long long long long long long long long) Arc32
@ -27,12 +27,12 @@ base 1
0022 stub CopyEnhMetaFileW
0023 stdcall CopyMetaFileA(long ptr) CopyMetaFile32A
0024 stdcall CopyMetaFileW(long ptr) CopyMetaFile32W
0025 stdcall CreateBitmap(long long long long ptr) CreateBitmap
0025 stdcall CreateBitmap(long long long long ptr) CreateBitmap32
0026 stdcall CreateBitmapIndirect(ptr) CreateBitmapIndirect32
0027 stdcall CreateBrushIndirect(ptr) CreateBrushIndirect32
0028 stub CreateColorSpaceA
0029 stub CreateColorSpaceW
0030 stdcall CreateCompatibleBitmap(long long long) CreateCompatibleBitmap
0030 stdcall CreateCompatibleBitmap(long long long) CreateCompatibleBitmap32
0031 stdcall CreateCompatibleDC(long) CreateCompatibleDC32
0032 stdcall CreateDCA(ptr ptr ptr ptr) CreateDC32A
0033 stdcall CreateDCW(ptr ptr ptr ptr) CreateDC32W
@ -40,7 +40,7 @@ base 1
0035 stub CreateDIBPatternBrushPt
0036 stub CreateDIBSection
0037 stdcall CreateDIBitmap(long ptr long ptr ptr long) CreateDIBitmap32
0038 stdcall CreateDiscardableBitmap(long long long) CreateDiscardableBitmap
0038 stdcall CreateDiscardableBitmap(long long long) CreateDiscardableBitmap32
0039 stdcall CreateEllipticRgn(long long long long) CreateEllipticRgn32
0040 stdcall CreateEllipticRgnIndirect(ptr) CreateEllipticRgnIndirect32
0041 stub CreateEnhMetaFileA
@ -67,8 +67,8 @@ base 1
0060 stdcall CreateRectRgnIndirect(ptr) CreateRectRgnIndirect32
0061 stdcall CreateRoundRectRgn(long long long long long long)
CreateRoundRectRgn32
0062 stub CreateScalableFontResourceA
0063 stub CreateScalableFontResourceW
0062 stdcall CreateScalableFontResourceA(long ptr ptr ptr) CreateScalableFontResource32A
0063 stdcall CreateScalableFontResourceW(long ptr ptr ptr) CreateScalableFontResource32W
0064 stdcall CreateSolidBrush(long) CreateSolidBrush32
0065 stdcall DPtoLP(long ptr long) DPtoLP32
0066 stub DeleteColorSpace
@ -148,7 +148,7 @@ base 1
0140 stub GdiSetServerAttr
0141 stub GetArcDirection
0142 stub GetAspectRatioFilterEx
0143 stdcall GetBitmapBits(long long ptr) GetBitmapBits
0143 stdcall GetBitmapBits(long long ptr) GetBitmapBits32
0144 stdcall GetBitmapDimensionEx(long ptr) GetBitmapDimensionEx32
0145 stdcall GetBkColor(long) GetBkColor32
0146 stdcall GetBkMode(long) GetBkMode32
@ -191,14 +191,14 @@ base 1
0183 stub GetFontResourceInfo
0184 stub GetFontResourceInfoW
0185 stub GetGlyphOutline
0186 stub GetGlyphOutlineA
0187 stub GetGlyphOutlineW
0186 stdcall GetGlyphOutlineA(long long long ptr long ptr ptr) GetGlyphOutline32A
0187 stdcall GetGlyphOutlineW(long long long ptr long ptr ptr) GetGlyphOutline32W
0188 stub GetGraphicsMode
0189 stub GetICMProfileA
0190 stub GetICMProfileW
0191 stub GetKerningPairs
0192 stub GetKerningPairsA
0193 stub GetKerningPairsW
0192 stdcall GetKerningPairsA(long long ptr) GetKerningPairs32A
0193 stdcall GetKerningPairsW(long long ptr) GetKerningPairs32W
0194 stub GetLogColorSpaceA
0195 stub GetLogColorSpaceW
0196 stdcall GetMapMode(long) GetMapMode32
@ -221,7 +221,7 @@ base 1
0213 stdcall GetPolyFillMode(long) GetPolyFillMode32
0214 stdcall GetROP2(long) GetROP232
0215 stub GetRandomRgn
0216 stub GetRasterizerCaps
0216 stdcall GetRasterizerCaps(ptr long) GetRasterizerCaps32
0217 stub GetRegionData
0218 stdcall GetRelAbs(long) GetRelAbs32
0219 stdcall GetRgnBox(long ptr) GetRgnBox32
@ -289,9 +289,9 @@ base 1
0281 stdcall RectInRegion(long ptr) RectInRegion32
0282 stdcall RectVisible(long ptr) RectVisible32
0283 stdcall Rectangle(long long long long long) Rectangle32
0284 stub RemoveFontResourceA
0284 stdcall RemoveFontResourceA(ptr) RemoveFontResource32A
0285 stub RemoveFontResourceTracking
0286 stub RemoveFontResourceW
0286 stdcall RemoveFontResourceW(ptr) RemoveFontResource32W
0287 stdcall ResetDCA(long ptr) ResetDC32A
0288 stdcall ResetDCW(long ptr) ResetDC32W
0289 stdcall ResizePalette(long long) ResizePalette32
@ -308,9 +308,9 @@ base 1
0300 stdcall SelectPalette(long long long) SelectPalette32
0301 stub SetAbortProc
0302 stub SetArcDirection
0303 stdcall SetBitmapBits(long long ptr) SetBitmapBits
0303 stdcall SetBitmapBits(long long ptr) SetBitmapBits32
0304 stdcall SetBitmapDimensionEx(long long long ptr) SetBitmapDimensionEx32
0305 stdcall SetBkColor(long long) SetBkColor
0305 stdcall SetBkColor(long long) SetBkColor32
0306 stdcall SetBkMode(long long) SetBkMode32
0307 stub SetBoundsRect
0308 stdcall SetBrushOrgEx(long long long ptr) SetBrushOrgEx
@ -338,13 +338,13 @@ base 1
0329 stub SetPixelV
0330 stdcall SetPolyFillMode(long long) SetPolyFillMode32
0331 stdcall SetROP2(long long) SetROP232
0332 stdcall SetRectRgn(long long long long long) SetRectRgn
0332 stdcall SetRectRgn(long long long long long) SetRectRgn32
0333 stdcall SetRelAbs(long long) SetRelAbs32
0334 stdcall SetStretchBltMode(long long) SetStretchBltMode32
0335 stdcall SetSystemPaletteUse(long long) SetSystemPaletteUse32
0336 stdcall SetTextAlign(long long) SetTextAlign32
0337 stdcall SetTextCharacterExtra(long long) SetTextCharacterExtra32
0338 stdcall SetTextColor(long long) SetTextColor
0338 stdcall SetTextColor(long long) SetTextColor32
0339 stdcall SetTextJustification(long long long) SetTextJustification32
0340 stdcall SetViewportExtEx(long long long ptr) SetViewportExtEx32
0341 stdcall SetViewportOrgEx(long long long ptr) SetViewportOrgEx32
@ -367,7 +367,7 @@ base 1
0356 stdcall TextOutW(long long long ptr long) TextOut32W
0357 stub UnloadNetworkFonts
0358 stdcall UnrealizeObject(long) UnrealizeObject32
0359 stub UpdateColors
0359 stdcall UpdateColors(long) UpdateColors32
0360 stub WidenPath
0361 stub pstackConnect
#late additions

View File

@ -41,7 +41,7 @@ type win16
38 pascal SetTaskSignalProc(word segptr) SetTaskSignalProc
41 return EnableDos 0 0
42 return DisableDos 0 0
45 pascal16 LoadModule(ptr ptr) LoadModule
45 pascal16 LoadModule(ptr ptr) LoadModule16
46 pascal16 FreeModule(word) FreeModule16
47 pascal16 GetModuleHandle(segptr) WIN16_GetModuleHandle
48 pascal16 GetModuleUsage(word) GetModuleUsage
@ -92,7 +92,7 @@ type win16
93 pascal16 GetCodeHandle(segptr) GetCodeHandle
94 stub DefineHandleTable
95 pascal16 LoadLibrary(ptr) LoadLibrary16
96 pascal16 FreeLibrary(word) FreeLibrary
96 pascal16 FreeLibrary(word) FreeLibrary16
97 pascal16 GetTempFileName(byte ptr word ptr) GetTempFileName16
98 return GetLastDiskChange 0 0
99 stub GetLPErrMode
@ -111,7 +111,7 @@ type win16
112 pascal16 GlobalUnWire(word) GlobalUnWire16
113 equate __AHSHIFT 3
114 equate __AHINCR 8
115 pascal16 OutputDebugString(ptr) OutputDebugString
115 pascal16 OutputDebugString(ptr) OutputDebugString16
116 stub InitLib
117 pascal16 OldYield() OldYield
118 register GetTaskQueueDS() GetTaskQueueDS
@ -261,7 +261,7 @@ type win16
#351 BUNNY_351
352 pascal lstrcatn(segptr segptr word) lstrcatn16
353 pascal lstrcpyn(segptr segptr word) lstrcpyn16
354 pascal GetAppCompatFlags(word) GetAppCompatFlags
354 pascal GetAppCompatFlags(word) GetAppCompatFlags16
355 pascal16 GetWinDebugInfo(ptr word) GetWinDebugInfo
356 pascal16 SetWinDebugInfo(ptr) SetWinDebugInfo
360 stub OpenFileEx

View File

@ -278,10 +278,10 @@ base 1
0273 stdcall GetStartupInfoA(ptr) GetStartupInfo32A
0274 stdcall GetStartupInfoW(ptr) GetStartupInfo32W
0275 stdcall GetStdHandle(long) GetStdHandle
0276 stub GetStringTypeA
0277 stub GetStringTypeExA
0278 stub GetStringTypeExW
0279 stub GetStringTypeW
0276 stdcall GetStringTypeA(long long ptr long ptr) GetStringType32A
0277 stdcall GetStringTypeExA(long long ptr long ptr) GetStringTypeEx32A
0278 stdcall GetStringTypeExW(long long ptr long ptr) GetStringTypeEx32W
0279 stdcall GetStringTypeW(long ptr long ptr) GetStringType32W
0280 stdcall GetSystemDefaultLCID() GetSystemDefaultLCID
0281 stdcall GetSystemDefaultLangID() GetSystemDefaultLangID
0282 stdcall GetSystemDirectoryA(ptr long) GetSystemDirectory32A
@ -353,13 +353,13 @@ base 1
0348 stdcall InterlockedExchange(ptr) InterlockedExchange
0349 stdcall InterlockedIncrement(ptr) InterlockedIncrement
0350 stub InvalidateConsoleDIBits
0351 stdcall IsBadCodePtr(ptr long) WIN32_IsBadCodePtr
0352 stub IsBadHugeReadPtr
0353 stub IsBadHugeWritePtr
0354 stdcall IsBadReadPtr(ptr long) WIN32_IsBadReadPtr
0355 stub IsBadStringPtrA
0356 stub IsBadStringPtrW
0357 stdcall IsBadWritePtr(ptr long) WIN32_IsBadWritePtr
0351 stdcall IsBadCodePtr(ptr long) IsBadCodePtr32
0352 stdcall IsBadHugeReadPtr(ptr long) IsBadHugeReadPtr32
0353 stdcall IsBadHugeWritePtr(ptr long) IsBadHugeWritePtr32
0354 stdcall IsBadReadPtr(ptr long) IsBadReadPtr32
0355 stdcall IsBadStringPtrA(ptr long) IsBadStringPtr32A
0356 stdcall IsBadStringPtrW(ptr long) IsBadStringPtr32W
0357 stdcall IsBadWritePtr(ptr long) IsBadWritePtr32
0358 stdcall IsDBCSLeadByte(long) IsDBCSLeadByte32
0359 stdcall IsDBCSLeadByteEx(long long) IsDBCSLeadByteEx
0360 stub IsValidCodePage
@ -388,7 +388,7 @@ base 1
0383 stub LockFileEx
0384 stdcall LockResource(long) LockResource32
0385 stdcall MapViewOfFile(long long long long long) MapViewOfFile
0386 stdcall MapViewOfFileEx(long long long long long long) MapViewOfFileEx
0386 stdcall MapViewOfFileEx(long long long long long ptr) MapViewOfFileEx
0387 stdcall MoveFileA(ptr ptr) MoveFile32A
0388 stub MoveFileExA
0389 stub MoveFileExW
@ -399,15 +399,15 @@ base 1
0394 stub OpenEventA
0395 stub OpenEventW
0396 stdcall OpenFile(ptr ptr long) OpenFile32
0397 stdcall OpenFileMappingA(long long ptr) OpenFileMapping
0398 stub OpenFileMappingW
0397 stdcall OpenFileMappingA(long long ptr) OpenFileMapping32A
0398 stdcall OpenFileMappingW(long long ptr) OpenFileMapping32W
0399 stub OpenMutexA
0400 stub OpenMutexW
0401 stub OpenProcess
0402 stub OpenProfileUserMapping
0403 stub OpenSemaphoreA
0404 stub OpenSemaphoreW
0405 stdcall OutputDebugStringA(ptr) OutputDebugString
0405 stdcall OutputDebugStringA(ptr) OutputDebugString32A
0406 stub OutputDebugStringW
0407 stub PeekConsoleInputA
0408 stub PeekConsoleInputW
@ -550,15 +550,15 @@ base 1
0545 stub VerLanguageNameA
0546 stub VerLanguageNameW
0547 stub VerifyConsoleIoHandle
0548 stdcall VirtualAlloc(ptr long long long) VirtualAlloc
0548 stdcall VirtualAlloc(ptr long long long) VirtualAlloc
0549 stub VirtualBufferExceptionHandler
0550 stdcall VirtualFree(ptr long long) VirtualFree
0551 stub VirtualLock
0550 stdcall VirtualFree(ptr long long) VirtualFree
0551 stdcall VirtualLock(ptr long) VirtualLock
0552 stdcall VirtualProtect(ptr long long ptr) VirtualProtect
0553 stub VirtualProtectEx
0553 stdcall VirtualProtectEx(long ptr long long ptr) VirtualProtectEx
0554 stdcall VirtualQuery(ptr ptr long) VirtualQuery
0555 stub VirtualQueryEx
0556 stub VirtualUnlock
0555 stdcall VirtualQueryEx(long ptr ptr long) VirtualQueryEx
0556 stdcall VirtualUnlock(ptr long) VirtualUnlock
0557 stub WaitCommEvent
0558 stub WaitForDebugEvent
0559 stub WaitForMultipleObjects
@ -659,3 +659,24 @@ base 1
0653 stub RegisterServiceProcess
0654 stub QueueUserAPC
0655 stub ConvertToGlobalHandle
0656 stub SMapLS_IP_EBP_8
0657 stub SMapLS_IP_EBP_16
0658 stub SMapLS_IP_EBP_20
0659 stub SUnMapLS_IP_EBP_8
0660 stub SUnMapLS_IP_EBP_16
0661 stub SUnMapLS_IP_EBP_20
0662 stub MapSL
0663 stub K32Thk1632Epilog
0664 stub K32Thk1632Prolog
0665 stub GetProcessFlags
0666 stub SMapLS_IP_EBP_24
0667 stub SUnMapLS_IP_EBP_24
0668 stub SMapLS_IP_EBP_32
0669 stub SUnMapLS_IP_EBP_32
0670 stub SMapLS_IP_EBP_28
0671 stub SUnMapLS_IP_EBP_28
0672 stub SMapLS_IP_EBP_40
0673 stub SUnMapLS_IP_EBP_40
0674 stub FreeSLCallback
0675 stub AllocSLCallback
0676 stub Callback28

View File

@ -5,7 +5,7 @@ type win16
2 pascal SNDPLAYSOUND(ptr word) sndPlaySound
5 pascal MMSYSTEMGETVERSION() mmsystemGetVersion
6 pascal DriverProc(long word word long long) DriverProc
30 pascal16 OutputDebugStr(ptr) OutputDebugString
30 pascal16 OutputDebugStr(ptr) OutputDebugString16
31 pascal DriverCallback(long word word word long long long)
DriverCallback
#32 pascal STACKENTER
@ -96,7 +96,7 @@ type win16
607 pascal timeGetTime() timeGetTime
701 pascal MCISENDCOMMAND(word word long long) mciSendCommand
702 pascal MCISENDSTRING(ptr ptr word word) mciSendString
703 pascal MCIGETDEVICEID(ptr) mciSendCommand
703 pascal MCIGETDEVICEID(ptr) mciGetDeviceID
706 pascal MCIGETERRORSTRING(long ptr word) mciGetErrorString
#900 pascal MMTASKCREATE
#902 pascal MMTASKBLOCK

View File

@ -892,15 +892,15 @@ base 0
888 stub cos
889 stub fabs
890 stub floor
891 stub isalpha
892 stub isdigit
893 stub islower
894 stub isprint
895 stub isspace
896 stub isupper
891 stdcall isalpha(long) CRTDLL_isalpha
892 stdcall isdigit(long) CRTDLL_isdigit
893 stdcall islower(long) CRTDLL_islower
894 stdcall isprint(long) CRTDLL_isprint
895 stdcall isspace(long) CRTDLL_isspace
896 stdcall isupper(long) CRTDLL_isupper
897 stub iswalpha
898 stub iswctype
899 stub isxdigit
899 stdcall isxdigit(long) CRTDLL_isxdigit
900 stub labs
901 stub log
902 stub mbstowcs
@ -930,8 +930,8 @@ base 0
926 stub strstr
927 stdcall swprintf() CRTDLL_swprintf
928 stub tan
929 stub tolower
930 stub toupper
929 stdcall tolower(long) CRTDLL_tolower
930 stdcall toupper(long) CRTDLL_toupper
931 stub towlower
932 stub towupper
933 stub vsprintf

View File

@ -7,7 +7,7 @@ type win16
4 pascal GetSystemDefaultLangID() GetSystemDefaultLangID
5 pascal GetLocaleInfoA(long long ptr word) GetLocaleInfoA
6 stub LCMAPSTRINGA
7 stub GETSTRINGTYPEA
7 pascal16 GetStringTypeA(long long ptr word ptr) GetStringType16
8 pascal16 CompareStringA(long long ptr word ptr word) CompareString16
#9 WEP
10 stub LIBMAIN

View File

@ -190,15 +190,28 @@ void RELAY_Unimplemented32( int nb_args, void *relay_addr,
* (stack+4) arg1
* (stack) func to call
*/
void RELAY_DebugCallTo16( int* stack, int nbargs )
void RELAY_DebugCallTo16( int* stack, int nb_args )
{
if (!debugging_relay) return;
printf( "CallTo16(func=%04x:%04x,ds=%04x",
HIWORD(stack[0]), LOWORD(stack[0]), CURRENT_DS );
stack++;
while (nbargs--) printf( ",0x%04x", *stack++ );
printf( ")\n" );
if (nb_args == -1) /* Register function */
{
CONTEXT *context = *(CONTEXT **)stack;
printf( "CallTo16(func=%04lx:%04x,ds=%04lx)\n",
CS_reg(context), IP_reg(context), DS_reg(context) );
printf( " AX=%04x BX=%04x CX=%04x DX=%04x SI=%04x DI=%04x BP=%04x ES=%04x\n",
AX_reg(context), BX_reg(context), CX_reg(context),
DX_reg(context), SI_reg(context), DI_reg(context),
BP_reg(context), (WORD)ES_reg(context) );
}
else
{
printf( "CallTo16(func=%04x:%04x,ds=%04x",
HIWORD(stack[0]), LOWORD(stack[0]), CURRENT_DS );
stack++;
while (nb_args--) printf( ",0x%04x", *stack++ );
printf( ")\n" );
}
}
@ -349,7 +362,8 @@ INT16 Throw( LPCATCHBUF lpbuf, INT16 retval )
static FARPROC16 entryPoint = NULL;
if (!entryPoint) /* Get entry point for Throw() */
entryPoint = MODULE_GetEntryPoint( GetModuleHandle("KERNEL"), 56 );
entryPoint = MODULE_GetEntryPoint( GetModuleHandle16("KERNEL"),
56 );
pFrame->entry_cs = SELECTOROF(entryPoint);
pFrame->entry_ip = OFFSETOF(entryPoint);
}

View File

@ -12,11 +12,11 @@ type win16
11 pascal16 DragQueryFile(word s_word ptr s_word) DragQueryFile
12 pascal16 DragFinish(word) DragFinish
13 pascal16 DragQueryPoint(word ptr) DragQueryPoint
20 pascal16 ShellExecute(word ptr ptr ptr ptr s_word) ShellExecute
21 pascal16 FindExecutable(ptr ptr ptr) FindExecutable
20 pascal16 ShellExecute(word ptr ptr ptr ptr s_word) ShellExecute16
21 pascal16 FindExecutable(ptr ptr ptr) FindExecutable16
22 pascal16 ShellAbout(word ptr ptr word) ShellAbout16
33 pascal16 AboutDlgProc(word word word long) AboutDlgProc16
34 pascal16 ExtractIcon(word ptr s_word) ExtractIcon
34 pascal16 ExtractIcon(word ptr s_word) ExtractIcon16
36 pascal16 ExtractAssociatedIcon(word ptr ptr) ExtractAssociatedIcon
37 pascal DoEnvironmentSubst(ptr word) DoEnvironmentSubst
38 pascal FindEnvironmentString(ptr) FindEnvironmentString

View File

@ -86,7 +86,7 @@ base 1
0081 stub SheShortenPathW
0082 stdcall ShellAboutA(long ptr ptr long) ShellAbout32A
0083 stdcall ShellAboutW(long ptr ptr long) ShellAbout32W
0084 stdcall ShellExecuteA(long ptr ptr ptr ptr long) ShellExecute
0084 stdcall ShellExecuteA(long ptr ptr ptr ptr long) ShellExecute32A
0085 stub ShellExecuteEx
0086 stub ShellExecuteExA
0087 stub ShellExecuteExW

View File

@ -148,7 +148,7 @@ BOOL16 THUNK_EnumMetaFile16( HDC16 hdc, HMETAFILE16 hmf,
MFENUMPROC16 func, LPARAM lParam )
{
DECL_THUNK( thunk, func, CallTo16_word_wllwl );
return EnumMetaFile( hdc, hmf, (MFENUMPROC16)&thunk, lParam );
return EnumMetaFile16( hdc, hmf, (MFENUMPROC16)&thunk, lParam );
}
@ -581,7 +581,7 @@ BOOL16 THUNK_SetDCHook( HDC16 hdc, FARPROC16 proc, DWORD dwHookData )
THUNK *thunk, *oldThunk;
if (!defDCHookProc) /* Get DCHook Win16 entry point */
defDCHookProc = MODULE_GetEntryPoint( GetModuleHandle("USER"), 362 );
defDCHookProc = MODULE_GetEntryPoint( GetModuleHandle16("USER"), 362 );
if (proc != defDCHookProc)
{
@ -610,8 +610,8 @@ DWORD THUNK_GetDCHook( HDC16 hdc, FARPROC16 *phookProc )
if (thunk == (THUNK *)DCHook)
{
if (!defDCHookProc) /* Get DCHook Win16 entry point */
defDCHookProc = MODULE_GetEntryPoint( GetModuleHandle("USER"),
362 );
defDCHookProc = MODULE_GetEntryPoint(GetModuleHandle16("USER"),
362 );
*phookProc = defDCHookProc;
}
else *phookProc = thunk->proc;
@ -644,6 +644,6 @@ UINT32 ThunkConnect32( struct thunkstruct *ths, LPSTR thunkfun16,
);
fprintf(stdnimp," x1 = %lx\n",ths->x1);
fprintf(stdnimp," x2 = %lx\n",ths->x2);
hmm=LoadModule(module16,NULL);
hmm=LoadModule16(module16,NULL);
return TRUE;
}

View File

@ -47,7 +47,7 @@ heap 65520
44 pascal16 OpenIcon(word) OpenIcon16
45 pascal16 BringWindowToTop(word) BringWindowToTop16
46 pascal16 GetParent(word) GetParent16
47 pascal16 IsWindow(word) IsWindow
47 pascal16 IsWindow(word) IsWindow16
48 pascal16 IsChild(word word) IsChild16
49 pascal16 IsWindowVisible(word) IsWindowVisible16
50 pascal16 FindWindow(segptr ptr) FindWindow16
@ -107,14 +107,14 @@ heap 65520
105 pascal16 FlashWindow(word word) FlashWindow16
106 pascal16 GetKeyState(word) GetKeyState16
107 pascal DefWindowProc(word word word long) DefWindowProc16
108 pascal16 GetMessage(segptr word word word) GetMessage
108 pascal16 GetMessage(segptr word word word) GetMessage16
109 pascal16 PeekMessage(ptr word word word word) PeekMessage16
110 pascal16 PostMessage(word word word long) PostMessage
110 pascal16 PostMessage(word word word long) PostMessage16
111 pascal SendMessage(word word word long) SendMessage16
112 pascal16 WaitMessage() WaitMessage
113 pascal16 TranslateMessage(ptr) TranslateMessage16
114 pascal DispatchMessage(ptr) DispatchMessage16
115 pascal16 ReplyMessage(long) ReplyMessage
115 pascal16 ReplyMessage(long) ReplyMessage16
116 pascal16 PostAppMessage(word word word long) PostAppMessage16
118 pascal16 RegisterWindowMessage(segptr) RegisterWindowMessage16
117 pascal16 WindowFromDC(word) WindowFromDC16
@ -123,29 +123,29 @@ heap 65520
121 pascal SetWindowsHook(s_word segptr) THUNK_SetWindowsHook16
122 pascal CallWindowProc(segptr word word word long) CallWindowProc16
123 pascal16 CallMsgFilter(segptr s_word) CallMsgFilter16
124 pascal16 UpdateWindow(word) UpdateWindow
124 pascal16 UpdateWindow(word) UpdateWindow16
125 pascal16 InvalidateRect(word ptr word) InvalidateRect16
126 pascal16 InvalidateRgn(word word word) InvalidateRgn16
127 pascal16 ValidateRect(word ptr) ValidateRect16
128 pascal16 ValidateRgn(word word) ValidateRgn16
129 pascal16 GetClassWord(word s_word) GetClassWord
130 pascal16 SetClassWord(word s_word word) SetClassWord
129 pascal16 GetClassWord(word s_word) GetClassWord16
130 pascal16 SetClassWord(word s_word word) SetClassWord16
131 pascal GetClassLong(word s_word) GetClassLong16
132 pascal SetClassLong(word s_word long) SetClassLong16
133 pascal16 GetWindowWord(word s_word) GetWindowWord
134 pascal16 SetWindowWord(word s_word word) SetWindowWord
133 pascal16 GetWindowWord(word s_word) GetWindowWord16
134 pascal16 SetWindowWord(word s_word word) SetWindowWord16
135 pascal GetWindowLong(word s_word) GetWindowLong16
136 pascal SetWindowLong(word s_word long) SetWindowLong16
137 pascal16 OpenClipboard(word) OpenClipboard16
138 pascal16 CloseClipboard() CloseClipboard16
139 pascal16 EmptyClipboard() EmptyClipboard16
140 pascal16 GetClipboardOwner() GetClipboardOwner16
141 pascal16 SetClipboardData(word word) SetClipboardData
142 pascal16 GetClipboardData(word) GetClipboardData
141 pascal16 SetClipboardData(word word) SetClipboardData16
142 pascal16 GetClipboardData(word) GetClipboardData16
143 pascal16 CountClipboardFormats() CountClipboardFormats16
144 pascal16 EnumClipboardFormats(word) EnumClipboardFormats16
145 pascal16 RegisterClipboardFormat(ptr) RegisterClipboardFormat16
146 pascal16 GetClipboardFormatName(word ptr s_word) GetClipboardFormatName
146 pascal16 GetClipboardFormatName(word ptr s_word) GetClipboardFormatName16
147 pascal16 SetClipboardViewer(word) SetClipboardViewer16
148 pascal16 GetClipboardViewer() GetClipboardViewer16
149 pascal16 ChangeClipboardChain(word ptr) ChangeClipboardChain16
@ -162,12 +162,12 @@ heap 65520
160 pascal16 DrawMenuBar(word) DrawMenuBar16
161 pascal16 GetMenuString(word word ptr s_word word) GetMenuString16
162 pascal16 HiliteMenuItem(word word word word) HiliteMenuItem16
163 pascal16 CreateCaret(word word word word) CreateCaret
164 pascal16 DestroyCaret() DestroyCaret
165 pascal16 SetCaretPos(word word) SetCaretPos
163 pascal16 CreateCaret(word word word word) CreateCaret16
164 pascal16 DestroyCaret() DestroyCaret16
165 pascal16 SetCaretPos(word word) SetCaretPos16
166 pascal16 HideCaret(word) HideCaret16
167 pascal16 ShowCaret(word) ShowCaret16
168 pascal16 SetCaretBlinkTime(word) SetCaretBlinkTime
168 pascal16 SetCaretBlinkTime(word) SetCaretBlinkTime16
169 pascal16 GetCaretBlinkTime() GetCaretBlinkTime16
170 pascal16 ArrangeIconicWindows(word) ArrangeIconicWindows16
171 pascal16 WinHelp(word ptr word long) WinHelp16
@ -237,8 +237,8 @@ heap 65520
234 pascal16 UnhookWindowsHook(s_word segptr) THUNK_UnhookWindowsHook16
235 pascal DefHookProc(s_word word long ptr) DefHookProc16
236 pascal16 GetCapture() GetCapture16
237 pascal16 GetUpdateRgn(word word word) GetUpdateRgn
238 pascal16 ExcludeUpdateRgn(word word) ExcludeUpdateRgn
237 pascal16 GetUpdateRgn(word word word) GetUpdateRgn16
238 pascal16 ExcludeUpdateRgn(word word) ExcludeUpdateRgn16
239 pascal16 DialogBoxParam(word segptr word segptr long) DialogBoxParam16
240 pascal16 DialogBoxIndirectParam(word word word segptr long)
DialogBoxIndirectParam16
@ -316,7 +316,7 @@ heap 65520
331 pascal16 EnableHardwareInput(word) EnableHardwareInput
332 pascal16 UserYield() UserYield
333 stub IsUserIdle
334 pascal GetQueueStatus(word) GetQueueStatus
334 pascal GetQueueStatus(word) GetQueueStatus16
335 pascal16 GetInputState() GetInputState16
336 stub LoadCursorIconHandler
337 pascal GetMouseEventProc() GetMouseEventProc
@ -353,8 +353,7 @@ heap 65520
398 pascal16 GetClassInfoEx(word segptr ptr) GetClassInfoEx16
399 stub ChildWindowFromPointEx
400 stub FinalUserInit
402 pascal16 GetPriorityClipboardFormat(word ptr s_word)
GetPriorityClipboardFormat
402 pascal16 GetPriorityClipboardFormat(word ptr s_word) GetPriorityClipboardFormat16
403 pascal16 UnregisterClass(segptr word) UnregisterClass16
404 pascal16 GetClassInfo(word segptr ptr) GetClassInfo16
406 pascal16 CreateCursor(word word word word word ptr ptr) CreateCursor16
@ -408,7 +407,7 @@ heap 65520
461 pascal16 SetInternalWindowPos(word word ptr ptr) SetInternalWindowPos16
462 pascal16 CalcChildScroll(word word) CalcChildScroll
463 pascal16 ScrollChildren(word word word long) ScrollChildren16
464 pascal DragObject(word word word word word word) DragObject
464 pascal DragObject(word word word word word word) DragObject16
465 pascal16 DragDetect(word long) DragDetect16
466 pascal16 DrawFocusRect(word ptr) DrawFocusRect16
470 stub StringFunc

View File

@ -67,7 +67,7 @@ base 1
0062 stdcall CountClipboardFormats() CountClipboardFormats32
0063 stub CreateAcceleratorTableA
0064 stub CreateAcceleratorTableW
0065 stdcall CreateCaret(long long long long) CreateCaret
0065 stdcall CreateCaret(long long long long) CreateCaret32
0066 stdcall CreateCursor(long long long long long ptr ptr) CreateCursor32
0067 stub CreateDesktopA
0068 stub CreateDesktopW
@ -134,7 +134,7 @@ base 1
0127 stdcall DeferWindowPos(long long long long long long long long) DeferWindowPos32
0128 stdcall DeleteMenu(long long long) DeleteMenu32
0129 stub DestroyAcceleratorTable
0130 stdcall DestroyCaret() DestroyCaret
0130 stdcall DestroyCaret() DestroyCaret32
0131 stdcall DestroyCursor(long) DestroyCursor32
0132 stdcall DestroyIcon(long) DestroyIcon32
0133 stdcall DestroyMenu(long) DestroyMenu32
@ -198,7 +198,7 @@ base 1
0191 stub EnumWindowStationsW
0192 stdcall EnumWindows(ptr long) THUNK_EnumWindows32
0193 stdcall EqualRect(ptr ptr) EqualRect32
0194 stdcall ExcludeUpdateRgn(long long) ExcludeUpdateRgn
0194 stdcall ExcludeUpdateRgn(long long) ExcludeUpdateRgn32
0195 stdcall ExitWindowsEx(long long) ExitWindowsEx
0196 stdcall FillRect(long ptr long) FillRect32
0197 stdcall FindWindowA(ptr ptr) FindWindow32A
@ -209,7 +209,7 @@ base 1
0202 stdcall FrameRect(long ptr long) FrameRect32
0203 stub FreeDDElParam
0204 stdcall GetActiveWindow() GetActiveWindow32
0205 stdcall GetAppCompatFlags(long) GetAppCompatFlags
0205 stdcall GetAppCompatFlags(long) GetAppCompatFlags32
0206 stdcall GetAsyncKeyState(long) GetAsyncKeyState32
0207 stdcall GetCapture() GetCapture32
0208 stdcall GetCaretBlinkTime() GetCaretBlinkTime32
@ -222,12 +222,12 @@ base 1
0215 stdcall GetClassLongW(long long) GetClassLong32W
0216 stdcall GetClassNameA(long ptr long) GetClassName32A
0217 stdcall GetClassNameW(long ptr long) GetClassName32W
0218 stdcall GetClassWord(long long) GetClassWord
0218 stdcall GetClassWord(long long) GetClassWord32
0219 stdcall GetClientRect(long long) GetClientRect32
0220 stdcall GetClipCursor(ptr) GetClipCursor32
0221 stdcall GetClipboardData(long) GetClipboardData
0222 stub GetClipboardFormatNameA
0223 stub GetClipboardFormatNameW
0221 stdcall GetClipboardData(long) GetClipboardData32
0222 stdcall GetClipboardFormatNameA(long ptr long) GetClipboardFormatName32A
0223 stdcall GetClipboardFormatNameW(long ptr long) GetClipboardFormatName32W
0224 stdcall GetClipboardOwner() GetClipboardOwner32
0225 stdcall GetClipboardViewer(long) GetClipboardViewer32
0226 stdcall GetCursor() GetCursor32
@ -273,11 +273,11 @@ base 1
0266 stdcall GetMenuState(long long long) GetMenuState32
0267 stdcall GetMenuStringA(long long ptr long long) GetMenuString32A
0268 stdcall GetMenuStringW(long long ptr long long) GetMenuString32W
0269 stdcall GetMessageA(ptr long long long) USER32_GetMessageA
0269 stdcall GetMessageA(ptr long long long) GetMessage32A
0270 stdcall GetMessageExtraInfo() GetMessageExtraInfo
0271 stdcall GetMessagePos() GetMessagePos
0272 stdcall GetMessageTime() GetMessageTime
0273 stdcall GetMessageW(ptr long long long) USER32_GetMessageA
0273 stdcall GetMessageW(ptr long long long) GetMessage32W
0274 stdcall GetNextDlgGroupItem(long long long) GetNextDlgGroupItem32
0275 stdcall GetNextDlgTabItem(long long long) GetNextDlgTabItem32
0276 stdcall GetOpenClipboardWindow() GetOpenClipboardWindow32
@ -301,7 +301,7 @@ base 1
0294 stub GetThreadDesktop
0295 stdcall GetTopWindow(long) GetTopWindow32
0296 stdcall GetUpdateRect(long ptr long) GetUpdateRect32
0297 stdcall GetUpdateRgn(long long long) GetUpdateRgn
0297 stdcall GetUpdateRgn(long long long) GetUpdateRgn32
0298 stub GetUserObjectInformationA
0299 stub GetUserObjectInformationW
0300 stub GetUserObjectSecurity
@ -317,7 +317,7 @@ base 1
0310 stdcall GetWindowTextLengthW(long) GetWindowTextLength32W
0311 stdcall GetWindowTextW(long ptr long) GetWindowText32W
0312 stdcall GetWindowThreadProcessId(long ptr) GetWindowThreadProcessId
0313 stdcall GetWindowWord(long long) GetWindowWord
0313 stdcall GetWindowWord(long long) GetWindowWord32
0314 stdcall GrayStringA(long long ptr long long long long long long) THUNK_GrayString32A
0315 stdcall GrayStringW(long long ptr long long long long long long) THUNK_GrayString32W
0316 stdcall HideCaret(long) HideCaret32
@ -351,7 +351,7 @@ base 1
0344 stdcall IsIconic(long) IsIconic32
0345 stdcall IsMenu(long) IsMenu32
0346 stdcall IsRectEmpty(ptr) IsRectEmpty32
0347 stdcall IsWindow(long) IsWindow
0347 stdcall IsWindow(long) IsWindow32
0348 stdcall IsWindowEnabled(long) IsWindowEnabled32
0349 stdcall IsWindowUnicode(long) IsWindowUnicode
0350 stdcall IsWindowVisible(long) IsWindowVisible32
@ -422,8 +422,8 @@ base 1
0415 stdcall PeekMessageA(ptr long long long long) PeekMessage32A
0416 stdcall PeekMessageW(ptr long long long long) PeekMessage32W
0417 stub PlaySoundEvent
0418 stdcall PostMessageA(long long long long) PostMessage
0419 stdcall PostMessageW(long long long long) PostMessage
0418 stdcall PostMessageA(long long long long) PostMessage32A
0419 stdcall PostMessageW(long long long long) PostMessage32W
0420 stdcall PostQuitMessage(long) PostQuitMessage32
0421 stub PostThreadMessageA
0422 stub PostThreadMessageW
@ -468,12 +468,12 @@ base 1
0461 stub ServerSetFunctionPointers
0462 stdcall SetActiveWindow(long) SetActiveWindow32
0463 stdcall SetCapture(long) SetCapture32
0464 stdcall SetCaretBlinkTime(long) SetCaretBlinkTime
0465 stdcall SetCaretPos(long long) SetCaretPos
0464 stdcall SetCaretBlinkTime(long) SetCaretBlinkTime32
0465 stdcall SetCaretPos(long long) SetCaretPos32
0466 stdcall SetClassLongA(long long long) SetClassLong32A
0467 stdcall SetClassLongW(long long long) SetClassLong32W
0468 stdcall SetClassWord(long long long) SetClassWord
0469 stdcall SetClipboardData(long long) SetClipboardData
0468 stdcall SetClassWord(long long long) SetClassWord32
0469 stdcall SetClipboardData(long long) SetClipboardData32
0470 stdcall SetClipboardViewer(long) SetClipboardViewer32
0471 stdcall SetCursor(long) SetCursor32
0472 stub SetCursorContents
@ -527,7 +527,7 @@ base 1
0520 stub SetWindowStationUser
0521 stdcall SetWindowTextA(long ptr) SetWindowText32A
0522 stdcall SetWindowTextW(long ptr) SetWindowText32W
0523 stdcall SetWindowWord(long long long) SetWindowWord
0523 stdcall SetWindowWord(long long long) SetWindowWord32
0524 stdcall SetWindowsHookA(long ptr) SetWindowsHook32A
0525 stdcall SetWindowsHookExA(long long long long) SetWindowsHookEx32A
0526 stdcall SetWindowsHookExW(long long long long) SetWindowsHookEx32W
@ -570,7 +570,7 @@ base 1
0563 stdcall UnregisterClassW(ptr long) UnregisterClass32W
0564 stub UnregisterHotKey
0565 stub UpdatePerUserSystemParameters
0566 stdcall UpdateWindow(long) UpdateWindow
0566 stdcall UpdateWindow(long) UpdateWindow32
0567 stub UserClientDllInitialize
0568 stub UserRealizePalette
0569 stub UserRegisterWowHandlers
@ -603,3 +603,5 @@ base 1
0595 stub RegisterServicesProcess
0596 stub SetWindowRgn
0597 stub ToUnicodeEx
0598 stub DrawCaptionTempA
0599 stub RegisterNetworkCapabilities

View File

@ -1,7 +0,0 @@
#ifndef __WINE_ADVAPI32_H
#define __WINE_ADVAPI32_H
#include "shell.h"
BOOL GetUserNameA (char * lpBuffer, DWORD *nSize);
#endif /* __WINE_ADVAPI32_H */

View File

@ -8,6 +8,7 @@
#define __WINE_CALLBACK_H
#include "wintypes.h"
#include "winnt.h"
extern
int CallTo32_LargeStack( int (*func)(), int nbargs, ... );
@ -20,6 +21,7 @@ extern WORD CallTo16_word_ ( FARPROC16 );
#ifndef WINELIB
extern void CallTo16_regs_ ( const CONTEXT *context );
extern WORD CallTo16_word_w ( FARPROC16, WORD );
extern WORD CallTo16_word_ww ( FARPROC16, WORD, WORD );
extern WORD CallTo16_word_wl ( FARPROC16, WORD, LONG );
@ -46,10 +48,6 @@ extern LONG CallTo16_long_lwwllwlllllw( FARPROC16, LONG, WORD, WORD, LONG,
LONG, WORD, LONG, LONG, LONG, LONG,
LONG, WORD);
extern WORD CallTo16_regs_( FARPROC16 func, WORD ds, WORD es, WORD bp, WORD ax,
WORD bx, WORD cx, WORD dx, WORD si, WORD di );
#define CallDriverProc( func, dwId, msg, hdrvr, lparam1, lparam2 ) \
CallTo16_long_lwwll( func, dwId, msg, hdrvr, lparam1, lparam2 )
#define CallTimeFuncProc( func, id, msg, dwUser, dw1, dw2 ) \

View File

@ -4,6 +4,6 @@
void CLIPBOARD_ReadSelection(Window w,Atom prop);
void CLIPBOARD_ReleaseSelection(Window w,HWND32 hwnd);
void CLIPBOARD_DisOwn(WND* pWnd);
BOOL CLIPBOARD_IsPresent(WORD wFormat);
BOOL32 CLIPBOARD_IsPresent(WORD wFormat);
#endif /* __WINE_CLIPBOARD_H */

View File

@ -17,5 +17,5 @@ typedef struct {
BOOL16 bRedrawFlag;
} HEADCOMBO,*LPHEADCOMBO;
LRESULT ComboBoxWndProc(HWND16 hwnd, UINT message, WPARAM16 wParam, LPARAM lParam);
LRESULT ComboLBoxWndProc(HWND16 hwnd, UINT message, WPARAM16 wParam, LPARAM lParam);
LRESULT ComboBoxWndProc(HWND16 hwnd, UINT16 message, WPARAM16 wParam, LPARAM lParam);
LRESULT ComboLBoxWndProc(HWND16 hwnd, UINT16 message, WPARAM16 wParam, LPARAM lParam);

View File

@ -62,8 +62,8 @@ typedef struct {
SEGPTR lpstrInitialDir;
SEGPTR lpstrTitle;
DWORD Flags;
UINT nFileOffset;
UINT nFileExtension;
UINT16 nFileOffset;
UINT16 nFileExtension;
SEGPTR lpstrDefExt;
LPARAM lCustData;
WNDPROC16 lpfnHook;
@ -101,8 +101,8 @@ typedef struct {
DWORD Flags; /* one or more of the FR_?? */
SEGPTR lpstrFindWhat; /* ptr. to search string */
SEGPTR lpstrReplaceWith; /* ptr. to replace string */
UINT wFindWhatLen; /* size of find buffer */
UINT wReplaceWithLen; /* size of replace buffer */
UINT16 wFindWhatLen; /* size of find buffer */
UINT16 wReplaceWithLen; /* size of replace buffer */
LPARAM lCustData; /* data passed to hook fn. */
WNDPROC16 lpfnHook;
SEGPTR lpTemplateName; /* custom template name */
@ -145,7 +145,7 @@ typedef struct {
/* contains cust. dlg. template */
SEGPTR lpszStyle WINE_PACKED; /* return the style field here */
/* must be LF_FACESIZE or bigger */
UINT nFontType; /* same value reported to the */
UINT16 nFontType; /* same value reported to the */
/* EnumFonts callback with the */
/* extra FONTTYPE_ bits added */
short nSizeMin WINE_PACKED; /* minimum pt size allowed & */
@ -210,11 +210,11 @@ typedef struct {
HGLOBAL16 hDevNames;
HDC16 hDC;
DWORD Flags;
UINT nFromPage;
UINT nToPage;
UINT nMinPage;
UINT nMaxPage;
UINT nCopies;
UINT16 nFromPage;
UINT16 nToPage;
UINT16 nMinPage;
UINT16 nMaxPage;
UINT16 nCopies;
HINSTANCE16 hInstance;
LPARAM lCustData;
WNDPROC16 lpfnPrintHook;
@ -250,10 +250,10 @@ typedef PRINTDLG * LPPRINTDLG;
#define PD_HIDEPRINTTOFILE 0x00100000
typedef struct {
UINT wDriverOffset;
UINT wDeviceOffset;
UINT wOutputOffset;
UINT wDefault;
UINT16 wDriverOffset;
UINT16 wDeviceOffset;
UINT16 wOutputOffset;
UINT16 wDefault;
} DEVNAMES;
typedef DEVNAMES * LPDEVNAMES;
@ -275,24 +275,24 @@ typedef DEVNAMES * LPDEVNAMES;
#define CDERR_NOHOOK 0x000B
#define CDERR_REGISTERMSGFAIL 0x000C
BOOL ChooseColor(LPCHOOSECOLOR lpChCol);
BOOL16 ChooseColor(LPCHOOSECOLOR lpChCol);
DWORD CommDlgExtendedError(void);
HWND16 FindText( SEGPTR find);
short GetFileTitle(LPCSTR lpFile, LPSTR lpTitle, UINT cbBuf);
BOOL GetOpenFileName(SEGPTR ofn);
BOOL GetSaveFileName(SEGPTR ofn);
BOOL PrintDlg( SEGPTR print);
short GetFileTitle(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf);
BOOL16 GetOpenFileName(SEGPTR ofn);
BOOL16 GetSaveFileName(SEGPTR ofn);
BOOL16 PrintDlg( SEGPTR print);
HWND16 ReplaceText( SEGPTR find);
BOOL ChooseFont(LPCHOOSEFONT lpChFont);
BOOL16 ChooseFont(LPCHOOSEFONT lpChFont);
LRESULT FileOpenDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
LRESULT FileSaveDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
LRESULT ColorDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
LRESULT FindTextDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
LRESULT ReplaceTextDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
LRESULT PrintDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
LRESULT PrintSetupDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
LRESULT FormatCharDlgProc(HWND16 hWnd, UINT wMsg, WPARAM16 wParam, LPARAM lParam);
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);
#ifdef __cplusplus
}

View File

@ -26,3 +26,9 @@
/* Define if you have the usleep function. */
#undef HAVE_USLEEP
/* Define if you have the wait4 function. */
#undef HAVE_WAIT4
/* Define if you have the waitpid function. */
#undef HAVE_WAITPID

View File

@ -51,9 +51,9 @@ int dde_reschedule();
void dde_wnd_setup(); /* setup Data structure of DDE windows */
/* Send ack. to hnd indicating that posted/sent msg. got to destination*/
void dde_proc_send_ack(HWND16 wnd, BOOL val);
BOOL DDE_PostMessage( MSG16 *msg);
BOOL DDE_SendMessage( MSG16 *msg);
void dde_proc_send_ack(HWND16 wnd, BOOL32 val);
BOOL32 DDE_PostMessage( MSG16 *msg);
BOOL32 DDE_SendMessage( MSG16 *msg);
int DDE_GetRemoteMessage();
void DDE_DestroyWindow(HWND16 hwnd); /* delete DDE info regarding hwnd */
void DDE_TestDDE(HWND16 hwnd); /* do we have dde handling in the window ?*/

View File

@ -78,6 +78,7 @@
#undef DEBUG_TIMER
#undef DEBUG_TOOLHELP
#undef DEBUG_VER
#undef DEBUG_VIRTUAL
#undef DEBUG_VXD
#undef DEBUG_WIN
#undef DEBUG_WIN16DRV
@ -158,6 +159,7 @@
#define DEBUG_TIMER
#define DEBUG_TOOLHELP
#define DEBUG_VER
#define DEBUG_VIRTUAL
#define DEBUG_VXD
#define DEBUG_WIN
#define DEBUG_WIN16DRV
@ -528,6 +530,11 @@ short debug_msg_enabled[]={
#else
0,
#endif
#ifdef DEBUG_VIRTUAL
1,
#else
0,
#endif
#ifdef DEBUG_VXD
1,
#else
@ -1497,8 +1504,21 @@ extern short debug_msg_enabled[];
#endif
#ifdef DEBUG_RUNTIME
#define dprintf_vxd if(!debug_msg_enabled[72]) ; else fprintf
#define debugging_vxd debug_msg_enabled[72]
#define dprintf_virtual if(!debug_msg_enabled[72]) ; else fprintf
#define debugging_virtual debug_msg_enabled[72]
#else
#ifdef DEBUG_VIRTUAL
#define dprintf_virtual fprintf
#define debugging_virtual 1
#else
#define dprintf_virtual while(0) fprintf
#define debugging_virtual 0
#endif
#endif
#ifdef DEBUG_RUNTIME
#define dprintf_vxd if(!debug_msg_enabled[73]) ; else fprintf
#define debugging_vxd debug_msg_enabled[73]
#else
#ifdef DEBUG_VXD
#define dprintf_vxd fprintf
@ -1510,8 +1530,8 @@ extern short debug_msg_enabled[];
#endif
#ifdef DEBUG_RUNTIME
#define dprintf_win if(!debug_msg_enabled[73]) ; else fprintf
#define debugging_win debug_msg_enabled[73]
#define dprintf_win if(!debug_msg_enabled[74]) ; else fprintf
#define debugging_win debug_msg_enabled[74]
#else
#ifdef DEBUG_WIN
#define dprintf_win fprintf
@ -1523,8 +1543,8 @@ extern short debug_msg_enabled[];
#endif
#ifdef DEBUG_RUNTIME
#define dprintf_win16drv if(!debug_msg_enabled[74]) ; else fprintf
#define debugging_win16drv debug_msg_enabled[74]
#define dprintf_win16drv if(!debug_msg_enabled[75]) ; else fprintf
#define debugging_win16drv debug_msg_enabled[75]
#else
#ifdef DEBUG_WIN16DRV
#define dprintf_win16drv fprintf
@ -1536,8 +1556,8 @@ extern short debug_msg_enabled[];
#endif
#ifdef DEBUG_RUNTIME
#define dprintf_win32 if(!debug_msg_enabled[75]) ; else fprintf
#define debugging_win32 debug_msg_enabled[75]
#define dprintf_win32 if(!debug_msg_enabled[76]) ; else fprintf
#define debugging_win32 debug_msg_enabled[76]
#else
#ifdef DEBUG_WIN32
#define dprintf_win32 fprintf
@ -1549,8 +1569,8 @@ extern short debug_msg_enabled[];
#endif
#ifdef DEBUG_RUNTIME
#define dprintf_winsock if(!debug_msg_enabled[76]) ; else fprintf
#define debugging_winsock debug_msg_enabled[76]
#define dprintf_winsock if(!debug_msg_enabled[77]) ; else fprintf
#define debugging_winsock debug_msg_enabled[77]
#else
#ifdef DEBUG_WINSOCK
#define dprintf_winsock fprintf
@ -1637,6 +1657,7 @@ static char *debug_msg_name[] = {
"timer",
"toolhelp",
"ver",
"virtual",
"vxd",
"win",
"win16drv",

View File

@ -307,6 +307,7 @@ extern void DEBUG_AddPath(const char * path);
extern void DEBUG_List(struct list_id * line1, struct list_id * line2,
int delta);
extern void DEBUG_NukePath(void);
extern void DEBUG_Disassemble( const DBG_ADDR *, const DBG_ADDR*, int offset );
/* debugger/dbg.y */
extern void wine_debug( int signal, SIGCONTEXT *regs );

View File

@ -54,7 +54,7 @@ typedef struct tagDRIVERITEM
WORD count;
struct tagDRIVERITEM *lpPrevItem;
struct tagDRIVERITEM *lpNextItem;
DRIVERPROC lpDrvProc;
DRIVERPROC16 lpDrvProc;
} DRIVERITEM, *LPDRIVERITEM;
LRESULT DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg,

View File

@ -13,6 +13,16 @@
#define MAX_PATHNAME_LEN 1024
/* The file object */
typedef struct
{
K32OBJ header;
int unix_handle;
int mode;
char *unix_name;
DWORD type; /* Type for win32 apps */
} FILE_OBJECT;
/* Definition of a full DOS file name */
typedef struct
{
@ -33,6 +43,10 @@ extern HFILE32 FILE_Dup( HFILE32 hFile );
extern HFILE32 FILE_Dup2( HFILE32 hFile1, HFILE32 hFile2 );
extern HFILE32 FILE_Open( LPCSTR path, INT32 mode );
extern BOOL32 FILE_SetFileType( HFILE32 hFile, DWORD type );
extern LPVOID FILE_mmap( FILE_OBJECT *file, LPVOID start,
DWORD size_high, DWORD size_low,
DWORD offset_high, DWORD offset_low,
int prot, int flags );
extern HFILE32 _lcreat_uniq( LPCSTR path, INT32 attr );
/* files/directory.c */

View File

@ -24,26 +24,6 @@ typedef struct
#define MAX_FONTS 256
extern LPLOGFONT16 lpLogFontList[MAX_FONTS+1];
/* may be switched... */
#define GGO_BITMAP 0x4F4D
#define GGO_NATIVE 0x4F50
typedef struct
{
UINT16 gmBlackBoxX;
UINT16 gmBlackBoxY;
POINT16 gmptGlyphOrigin;
int gmCellIncX;
int gmCellIncY;
} GLYPHMETRICS,*LPGLYPHMETRICS;
typedef struct
{
DWORD eM11; /* all type FIXED in Borlands Handbook */
DWORD eM12;
DWORD eM21;
DWORD eM22;
} MAT2,*LPMAT2;
extern BOOL32 FONT_Init( void );
extern INT16 FONT_GetObject16( FONTOBJ * font, INT16 count, LPSTR buffer );
extern INT32 FONT_GetObject32A( FONTOBJ * font, INT32 count, LPSTR buffer );

View File

@ -42,5 +42,8 @@ typedef struct
extern void K32OBJ_IncCount( K32OBJ *ptr );
extern void K32OBJ_DecCount( K32OBJ *ptr );
extern BOOL32 K32OBJ_AddName( K32OBJ *obj, LPCSTR name );
extern K32OBJ *K32OBJ_FindName( LPCSTR name );
extern K32OBJ *K32OBJ_FindNameType( LPCSTR name, K32OBJ_TYPE type );
#endif /* __WINE_HANDLE32_H */

View File

@ -4,8 +4,6 @@
#ifndef __WINE_LIBRES_H
#define __WINE_LIBRES_H
#ifdef WINELIB
#include "wintypes.h"
#include "resource.h"
@ -18,6 +16,4 @@ extern HGLOBAL32 LIBRES_LoadResource( HINSTANCE32 hModule, HRSRC32 hRsrc );
extern LPVOID LIBRES_LockResource( HGLOBAL32 handle );
extern DWORD LIBRES_SizeofResource( HINSTANCE32 hModule, HRSRC32 hRsrc );
#endif /* WINELIB */
#endif

View File

@ -4,7 +4,7 @@
typedef struct tagLISTSTRUCT {
MEASUREITEMSTRUCT16 mis;
UINT itemState;
UINT16 itemState;
RECT16 itemRect;
HLOCAL16 hData;
char *itemText;
@ -28,12 +28,12 @@ typedef struct {
DWORD dwStyle; /* added for COMBOLBOX style faking */
HWND16 hParent;
HFONT16 hFont;
BOOL bRedrawFlag;
BOOL HasStrings;
BOOL OwnerDrawn;
BOOL32 bRedrawFlag;
BOOL32 HasStrings;
BOOL32 OwnerDrawn;
WORD iNumStops;
LPINT16 TabStops;
BOOL needMeasure;
BOOL32 needMeasure;
HGLOBAL16 HeapSel;
/* MDESC *Heap; */
} HEADLIST,*LPHEADLIST;
@ -44,22 +44,22 @@ extern void DestroyListBoxStruct(LPHEADLIST lphl);
extern void ListBoxSendNotification(LPHEADLIST lphl, WORD code);
extern LPLISTSTRUCT ListBoxGetItem(LPHEADLIST lphl, UINT uIndex);
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, UINT uIndex, LPCSTR newstr);
extern int ListBoxGetText(LPHEADLIST lphl, UINT uIndex, LPSTR OutStr);
extern DWORD ListBoxGetItemData(LPHEADLIST lphl, UINT uIndex);
extern int ListBoxSetItemData(LPHEADLIST lphl, UINT uIndex, DWORD ItemData);
extern int ListBoxDeleteString(LPHEADLIST lphl, UINT uIndex);
extern int ListBoxFindString(LPHEADLIST lphl, UINT nFirst, SEGPTR MatchStr);
extern int ListBoxFindStringExact(LPHEADLIST lphl, UINT nFirst, SEGPTR MatchStr);
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, UINT attrib, LPCSTR filespec);
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);

View File

@ -20,7 +20,7 @@
#define WM_MDICALCCHILDSCROLL 0x10AC /* this is exactly what Windows uses */
extern LRESULT MDIClientWndProc(HWND16 hwnd, UINT message,
extern LRESULT MDIClientWndProc(HWND16 hwnd, UINT16 message,
WPARAM16 wParam, LPARAM lParam); /* mdi.c */
typedef struct tagMDIWCL

View File

@ -19,7 +19,7 @@ typedef LPCSTR HPCSTR; /* a huge version of LPCSTR */
typedef WORD VERSION; /* major (high byte), minor (low byte) */
typedef struct {
UINT wType; /* indicates the contents of the union */
UINT16 wType; /* indicates the contents of the union */
union {
DWORD ms; /* milliseconds */
DWORD sample; /* samples */
@ -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, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
typedef void (*LPDRVCALLBACK) (HDRVR16 h, UINT16 uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
#define MM_MICROSOFT 1 /* Microsoft Corp. */
@ -132,7 +132,7 @@ typedef void (*LPDRVCALLBACK) (HDRVR16 h, UINT uMessage, DWORD dwUser, DWORD dw1
WORD mmsystemGetVersion(void);
void OutputDebugStr(LPCSTR);
BOOL sndPlaySound(LPCSTR lpszSoundName, UINT uFlags);
BOOL16 sndPlaySound(LPCSTR lpszSoundName, UINT16 uFlags);
#define SND_SYNC 0x0000 /* play synchronously (default) */
#define SND_ASYNC 0x0001 /* play asynchronously */
@ -182,12 +182,12 @@ typedef struct wavehdr_tag {
#define WHDR_INQUEUE 0x00000010 /* reserved for driver */
typedef struct {
UINT wMid; /* manufacturer ID */
UINT wPid; /* product ID */
UINT16 wMid; /* manufacturer ID */
UINT16 wPid; /* product ID */
VERSION vDriverVersion; /* version of the driver */
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
DWORD dwFormats; /* formats supported */
UINT wChannels; /* number of sources supported */
UINT16 wChannels; /* number of sources supported */
DWORD dwSupport; /* functionality supported by driver */
} WAVEOUTCAPS, *LPWAVEOUTCAPS;
@ -198,12 +198,12 @@ typedef struct {
#define WAVECAPS_SYNC 0x0010
typedef struct {
UINT wMid; /* manufacturer ID */
UINT wPid; /* product ID */
UINT16 wMid; /* manufacturer ID */
UINT16 wPid; /* product ID */
VERSION vDriverVersion; /* version of the driver */
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
DWORD dwFormats; /* formats supported */
UINT wChannels; /* number of channels supported */
UINT16 wChannels; /* number of channels supported */
} WAVEINCAPS, *LPWAVEINCAPS;
#define WAVE_INVALIDFORMAT 0x00000000 /* invalid format */
@ -236,57 +236,57 @@ typedef struct {
WORD wBitsPerSample;
} PCMWAVEFORMAT, *LPPCMWAVEFORMAT;
UINT waveOutGetNumDevs(void);
UINT waveOutGetDevCaps(UINT uDeviceID, WAVEOUTCAPS * lpCaps,
UINT uSize);
UINT waveOutGetVolume(UINT uDeviceID, DWORD * lpdwVolume);
UINT waveOutSetVolume(UINT uDeviceID, DWORD dwVolume);
UINT waveOutGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT waveGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT waveOutOpen(HWAVEOUT16 * lphWaveOut, UINT uDeviceID,
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,
const LPWAVEFORMAT lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags);
UINT waveOutClose(HWAVEOUT16 hWaveOut);
UINT waveOutPrepareHeader(HWAVEOUT16 hWaveOut,
WAVEHDR * lpWaveOutHdr, UINT uSize);
UINT waveOutUnprepareHeader(HWAVEOUT16 hWaveOut,
WAVEHDR * lpWaveOutHdr, UINT uSize);
UINT waveOutWrite(HWAVEOUT16 hWaveOut, WAVEHDR * lpWaveOutHdr,
UINT uSize);
UINT waveOutPause(HWAVEOUT16 hWaveOut);
UINT waveOutRestart(HWAVEOUT16 hWaveOut);
UINT waveOutReset(HWAVEOUT16 hWaveOut);
UINT waveOutBreakLoop(HWAVEOUT16 hWaveOut);
UINT waveOutGetPosition(HWAVEOUT16 hWaveOut, MMTIME * lpInfo,
UINT uSize);
UINT waveOutGetPitch(HWAVEOUT16 hWaveOut, DWORD * lpdwPitch);
UINT waveOutSetPitch(HWAVEOUT16 hWaveOut, DWORD dwPitch);
UINT waveOutGetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD * lpdwRate);
UINT waveOutSetPlaybackRate(HWAVEOUT16 hWaveOut, DWORD dwRate);
UINT waveOutGetID(HWAVEOUT16 hWaveOut, UINT * lpuDeviceID);
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);
DWORD waveOutMessage(HWAVEOUT16 hWaveOut, UINT uMessage, DWORD dw1, DWORD dw2);
DWORD waveOutMessage(HWAVEOUT16 hWaveOut, UINT16 uMessage, DWORD dw1, DWORD dw2);
UINT waveInGetNumDevs(void);
UINT waveInGetDevCaps(UINT uDeviceID, WAVEINCAPS * lpCaps,
UINT uSize);
UINT waveInGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT waveInOpen(HWAVEIN16 * lphWaveIn, UINT uDeviceID,
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);
UINT waveInClose(HWAVEIN16 hWaveIn);
UINT waveInPrepareHeader(HWAVEIN16 hWaveIn,
WAVEHDR * lpWaveInHdr, UINT uSize);
UINT waveInUnprepareHeader(HWAVEIN16 hWaveIn,
WAVEHDR * lpWaveInHdr, UINT uSize);
UINT waveInAddBuffer(HWAVEIN16 hWaveIn,
WAVEHDR * lpWaveInHdr, UINT uSize);
UINT waveInStart(HWAVEIN16 hWaveIn);
UINT waveInStop(HWAVEIN16 hWaveIn);
UINT waveInReset(HWAVEIN16 hWaveIn);
UINT waveInGetPosition(HWAVEIN16 hWaveIn, MMTIME * lpInfo,
UINT uSize);
UINT waveInGetID(HWAVEIN16 hWaveIn, UINT * lpuDeviceID);
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);
DWORD waveInMessage(HWAVEIN16 hWaveIn, UINT uMessage, DWORD dw1, DWORD dw2);
DWORD 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 */
@ -327,14 +327,14 @@ typedef WORD *LPKEYARRAY;
#define MIDI_UNCACHE 4
typedef struct {
UINT wMid; /* manufacturer ID */
UINT wPid; /* product ID */
UINT16 wMid; /* manufacturer ID */
UINT16 wPid; /* product ID */
VERSION vDriverVersion; /* version of the driver */
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
UINT wTechnology; /* type of device */
UINT wVoices; /* # of voices (internal synth only) */
UINT wNotes; /* max # of notes (internal synth only) */
UINT wChannelMask; /* channels used (internal synth only) */
UINT16 wTechnology; /* type of device */
UINT16 wVoices; /* # of voices (internal synth only) */
UINT16 wNotes; /* max # of notes (internal synth only) */
UINT16 wChannelMask; /* channels used (internal synth only) */
DWORD dwSupport; /* functionality supported by driver */
} MIDIOUTCAPS, *LPMIDIOUTCAPS;
@ -349,8 +349,8 @@ typedef struct {
#define MIDICAPS_CACHE 0x0004
typedef struct {
UINT wMid; /* manufacturer ID */
UINT wPid; /* product ID */
UINT16 wMid; /* manufacturer ID */
UINT16 wPid; /* product ID */
VERSION vDriverVersion; /* version of the driver */
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
} MIDIINCAPS, *LPMIDIINCAPS;
@ -369,60 +369,60 @@ typedef struct {
#define MHDR_PREPARED 0x00000002 /* set if header prepared */
#define MHDR_INQUEUE 0x00000004 /* reserved for driver */
UINT midiOutGetNumDevs(void);
UINT midiOutGetDevCaps(UINT uDeviceID,
MIDIOUTCAPS * lpCaps, UINT uSize);
UINT midiOutGetVolume(UINT uDeviceID, DWORD * lpdwVolume);
UINT midiOutSetVolume(UINT uDeviceID, DWORD dwVolume);
UINT midiOutGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT midiGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT midiOutOpen(HMIDIOUT16 * lphMidiOut, UINT uDeviceID,
UINT16 midiOutGetNumDevs(void);
UINT16 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,
DWORD dwCallback, DWORD dwInstance, DWORD dwFlags);
UINT midiOutClose(HMIDIOUT16 hMidiOut);
UINT midiOutPrepareHeader(HMIDIOUT16 hMidiOut,
MIDIHDR * lpMidiOutHdr, UINT uSize);
UINT midiOutUnprepareHeader(HMIDIOUT16 hMidiOut,
MIDIHDR * lpMidiOutHdr, UINT uSize);
UINT midiOutShortMsg(HMIDIOUT16 hMidiOut, DWORD dwMsg);
UINT midiOutLongMsg(HMIDIOUT16 hMidiOut,
MIDIHDR * lpMidiOutHdr, UINT uSize);
UINT midiOutReset(HMIDIOUT16 hMidiOut);
UINT midiOutCachePatches(HMIDIOUT16 hMidiOut,
UINT uBank, WORD * lpwPatchArray, UINT uFlags);
UINT midiOutCacheDrumPatches(HMIDIOUT16 hMidiOut,
UINT uPatch, WORD * lpwKeyArray, UINT uFlags);
UINT midiOutGetID(HMIDIOUT16 hMidiOut, UINT * lpuDeviceID);
UINT16 midiOutClose(HMIDIOUT16 hMidiOut);
UINT16 midiOutPrepareHeader(HMIDIOUT16 hMidiOut,
MIDIHDR * lpMidiOutHdr, UINT16 uSize);
UINT16 midiOutUnprepareHeader(HMIDIOUT16 hMidiOut,
MIDIHDR * lpMidiOutHdr, UINT16 uSize);
UINT16 midiOutShortMsg(HMIDIOUT16 hMidiOut, DWORD dwMsg);
UINT16 midiOutLongMsg(HMIDIOUT16 hMidiOut,
MIDIHDR * lpMidiOutHdr, UINT16 uSize);
UINT16 midiOutReset(HMIDIOUT16 hMidiOut);
UINT16 midiOutCachePatches(HMIDIOUT16 hMidiOut,
UINT16 uBank, WORD * lpwPatchArray, UINT16 uFlags);
UINT16 midiOutCacheDrumPatches(HMIDIOUT16 hMidiOut,
UINT16 uPatch, WORD * lpwKeyArray, UINT16 uFlags);
UINT16 midiOutGetID(HMIDIOUT16 hMidiOut, UINT16 * lpuDeviceID);
DWORD midiOutMessage(HMIDIOUT16 hMidiOut, UINT uMessage, DWORD dw1, DWORD dw2);
DWORD midiOutMessage(HMIDIOUT16 hMidiOut, UINT16 uMessage, DWORD dw1, DWORD dw2);
UINT midiInGetNumDevs(void);
UINT midiInGetDevCaps(UINT uDeviceID,
LPMIDIINCAPS lpCaps, UINT uSize);
UINT midiInGetErrorText(UINT uError, LPSTR lpText, UINT uSize);
UINT midiInOpen(HMIDIIN16 * lphMidiIn, UINT uDeviceID,
UINT16 midiInGetNumDevs(void);
UINT16 midiInGetDevCaps(UINT16 uDeviceID,
LPMIDIINCAPS lpCaps, UINT16 uSize);
UINT16 midiInGetErrorText(UINT16 uError, LPSTR lpText, UINT16 uSize);
UINT16 midiInOpen(HMIDIIN16 * lphMidiIn, UINT16 uDeviceID,
DWORD dwCallback, DWORD dwInstance, DWORD dwFlags);
UINT midiInClose(HMIDIIN16 hMidiIn);
UINT midiInPrepareHeader(HMIDIIN16 hMidiIn,
MIDIHDR * lpMidiInHdr, UINT uSize);
UINT midiInUnprepareHeader(HMIDIIN16 hMidiIn,
MIDIHDR * lpMidiInHdr, UINT uSize);
UINT midiInAddBuffer(HMIDIIN16 hMidiIn,
MIDIHDR * lpMidiInHdr, UINT uSize);
UINT midiInStart(HMIDIIN16 hMidiIn);
UINT midiInStop(HMIDIIN16 hMidiIn);
UINT midiInReset(HMIDIIN16 hMidiIn);
UINT midiInGetID(HMIDIIN16 hMidiIn, UINT * lpuDeviceID);
UINT16 midiInClose(HMIDIIN16 hMidiIn);
UINT16 midiInPrepareHeader(HMIDIIN16 hMidiIn,
MIDIHDR * lpMidiInHdr, UINT16 uSize);
UINT16 midiInUnprepareHeader(HMIDIIN16 hMidiIn,
MIDIHDR * lpMidiInHdr, UINT16 uSize);
UINT16 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);
DWORD midiInMessage(HMIDIIN16 hMidiIn, UINT uMessage, DWORD dw1, DWORD dw2);
DWORD midiInMessage(HMIDIIN16 hMidiIn, UINT16 uMessage, DWORD dw1, DWORD dw2);
#define AUX_MAPPER (-1)
typedef struct {
UINT wMid; /* manufacturer ID */
UINT wPid; /* product ID */
UINT16 wMid; /* manufacturer ID */
UINT16 wPid; /* product ID */
VERSION vDriverVersion; /* version of the driver */
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
UINT wTechnology; /* type of device */
UINT16 wTechnology; /* type of device */
DWORD dwSupport; /* functionality supported by driver */
} AUXCAPS, *LPAUXCAPS;
@ -432,35 +432,35 @@ typedef struct {
#define AUXCAPS_VOLUME 0x0001 /* supports volume control */
#define AUXCAPS_LRVOLUME 0x0002 /* separate left-right volume control */
UINT auxGetNumDevs(void);
UINT auxGetDevCaps(UINT uDeviceID, AUXCAPS * lpCaps, UINT uSize);
UINT auxSetVolume(UINT uDeviceID, DWORD dwVolume);
UINT auxGetVolume(UINT uDeviceID, DWORD * lpdwVolume);
UINT16 auxGetNumDevs(void);
UINT16 auxGetDevCaps(UINT16 uDeviceID, AUXCAPS * lpCaps, UINT16 uSize);
UINT16 auxSetVolume(UINT16 uDeviceID, DWORD dwVolume);
UINT16 auxGetVolume(UINT16 uDeviceID, DWORD * lpdwVolume);
DWORD auxOutMessage(UINT uDeviceID, UINT uMessage, DWORD dw1, DWORD dw2);
DWORD auxOutMessage(UINT16 uDeviceID, UINT16 uMessage, DWORD dw1, DWORD dw2);
#define TIMERR_NOERROR (0) /* no error */
#define TIMERR_NOCANDO (TIMERR_BASE+1) /* request not completed */
#define TIMERR_STRUCT (TIMERR_BASE+33) /* time struct size */
typedef void (*LPTIMECALLBACK) (UINT uTimerID, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
typedef void (*LPTIMECALLBACK) (UINT16 uTimerID, UINT16 uMessage, DWORD dwUser, DWORD dw1, DWORD dw2);
#define TIME_ONESHOT 0 /* program timer for single event */
#define TIME_PERIODIC 1 /* program for continuous periodic event */
typedef struct {
UINT wPeriodMin; /* minimum period supported */
UINT wPeriodMax; /* maximum period supported */
UINT16 wPeriodMin; /* minimum period supported */
UINT16 wPeriodMax; /* maximum period supported */
} TIMECAPS, *LPTIMECAPS;
UINT timeGetSystemTime(MMTIME * lpTime, UINT uSize);
UINT16 timeGetSystemTime(MMTIME * lpTime, UINT16 uSize);
DWORD timeGetTime(void);
UINT timeSetEvent(UINT uDelay, UINT uResolution,
LPTIMECALLBACK lpFunction, DWORD dwUser, UINT uFlags);
UINT timeKillEvent(UINT uTimerID);
UINT timeGetDevCaps(TIMECAPS * lpTimeCaps, UINT uSize);
UINT timeBeginPeriod(UINT uPeriod);
UINT timeEndPeriod(UINT uPeriod);
UINT16 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);
#define JOYERR_NOERROR (0) /* no error */
#define JOYERR_PARMS (JOYERR_BASE+5) /* bad parameters */
@ -480,35 +480,35 @@ UINT timeEndPeriod(UINT uPeriod);
#define JOYSTICKID2 1
typedef struct {
UINT wMid; /* manufacturer ID */
UINT wPid; /* product ID */
UINT16 wMid; /* manufacturer ID */
UINT16 wPid; /* product ID */
char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
UINT wXmin; /* minimum x position value */
UINT wXmax; /* maximum x position value */
UINT wYmin; /* minimum y position value */
UINT wYmax; /* maximum y position value */
UINT wZmin; /* minimum z position value */
UINT wZmax; /* maximum z position value */
UINT wNumButtons; /* number of buttons */
UINT wPeriodMin; /* minimum message period when captured */
UINT wPeriodMax; /* maximum message period when captured */
UINT16 wXmin; /* minimum x position value */
UINT16 wXmax; /* maximum x position value */
UINT16 wYmin; /* minimum y position value */
UINT16 wYmax; /* maximum y position value */
UINT16 wZmin; /* minimum z position value */
UINT16 wZmax; /* maximum z position value */
UINT16 wNumButtons; /* number of buttons */
UINT16 wPeriodMin; /* minimum message period when captured */
UINT16 wPeriodMax; /* maximum message period when captured */
} JOYCAPS, *LPJOYCAPS;
typedef struct {
UINT wXpos; /* x position */
UINT wYpos; /* y position */
UINT wZpos; /* z position */
UINT wButtons; /* button states */
UINT16 wXpos; /* x position */
UINT16 wYpos; /* y position */
UINT16 wZpos; /* z position */
UINT16 wButtons; /* button states */
} JOYINFO, *LPJOYINFO;
UINT joyGetDevCaps(UINT uJoyID, JOYCAPS * lpCaps, UINT uSize);
UINT joyGetNumDevs(void);
UINT joyGetPos(UINT uJoyID, JOYINFO * lpInfo);
UINT joyGetThreshold(UINT uJoyID, UINT * lpuThreshold);
UINT joyReleaseCapture(UINT uJoyID);
UINT joySetCapture(HWND16 hwnd, UINT uJoyID, UINT uPeriod,
BOOL bChanged);
UINT joySetThreshold(UINT uJoyID, UINT uThreshold);
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,
BOOL16 bChanged);
UINT16 joySetThreshold(UINT16 uJoyID, UINT16 uThreshold);
#define MMIOERR_BASE 256
#define MMIOERR_FILENOTFOUND (MMIOERR_BASE + 1) /* file not found */
@ -525,14 +525,14 @@ UINT joySetThreshold(UINT uJoyID, UINT uThreshold);
#define CFSEPCHAR '+' /* compound file name separator char. */
typedef DWORD FOURCC; /* a four character code */
typedef LONG (*LPMMIOPROC)(LPSTR lpmmioinfo, UINT uMessage,
typedef LONG (*LPMMIOPROC)(LPSTR lpmmioinfo, UINT16 uMessage,
LPARAM lParam1, LPARAM lParam2);
typedef struct {
DWORD dwFlags; /* general status flags */
FOURCC fccIOProc; /* pointer to I/O procedure */
LPMMIOPROC pIOProc; /* pointer to I/O procedure */
UINT wErrorRet; /* place for error to be returned */
UINT16 wErrorRet; /* place for error to be returned */
HTASK16 htask; /* alternate local task */
/* fields maintained by MMIO functions during buffered I/O */
LONG cchBuffer; /* size of I/O buffer (or 0L) */
@ -621,48 +621,48 @@ typedef struct _MMCKINFO
( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \
( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )
FOURCC mmioStringToFOURCC(LPCSTR sz, UINT uFlags);
FOURCC mmioStringToFOURCC(LPCSTR sz, UINT16 uFlags);
LPMMIOPROC mmioInstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc,
DWORD dwFlags);
HMMIO16 mmioOpen(LPSTR szFileName, MMIOINFO * lpmmioinfo,
DWORD dwOpenFlags);
UINT mmioRename(LPCSTR szFileName, LPCSTR szNewFileName,
UINT16 mmioRename(LPCSTR szFileName, LPCSTR szNewFileName,
MMIOINFO * lpmmioinfo, DWORD dwRenameFlags);
UINT mmioClose(HMMIO16 hmmio, UINT uFlags);
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);
UINT mmioGetInfo(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT uFlags);
UINT mmioSetInfo(HMMIO16 hmmio, const MMIOINFO * lpmmioinfo, UINT uFlags);
UINT mmioSetBuffer(HMMIO16 hmmio, LPSTR pchBuffer, LONG cchBuffer,
UINT uFlags);
UINT mmioFlush(HMMIO16 hmmio, UINT uFlags);
UINT mmioAdvance(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT uFlags);
LONG mmioSendMessage(HMMIO16 hmmio, UINT uMessage,
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 uFlags);
UINT16 mmioFlush(HMMIO16 hmmio, UINT16 uFlags);
UINT16 mmioAdvance(HMMIO16 hmmio, MMIOINFO * lpmmioinfo, UINT16 uFlags);
LONG mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage,
LPARAM lParam1, LPARAM lParam2);
UINT mmioDescend(HMMIO16 hmmio, MMCKINFO * lpck,
const MMCKINFO * lpckParent, UINT uFlags);
UINT mmioAscend(HMMIO16 hmmio, MMCKINFO * lpck, UINT uFlags);
UINT mmioCreateChunk(HMMIO16 hmmio, MMCKINFO * lpck, UINT uFlags);
UINT16 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);
typedef UINT (*YIELDPROC) (UINT uDeviceID, DWORD dwYieldData);
typedef UINT16 (*YIELDPROC) (UINT16 uDeviceID, DWORD dwYieldData);
DWORD mciSendCommand (UINT uDeviceID, UINT uMessage,
DWORD mciSendCommand (UINT16 uDeviceID, UINT16 uMessage,
DWORD dwParam1, DWORD dwParam2);
DWORD mciSendString (LPCSTR lpstrCommand,
LPSTR lpstrReturnString, UINT uReturnLength, HWND16 hwndCallback);
UINT mciGetDeviceID (LPCSTR lpstrName);
UINT mciGetDeviceIDFromElementID (DWORD dwElementID,
LPSTR lpstrReturnString, UINT16 uReturnLength, HWND16 hwndCallback);
UINT16 mciGetDeviceID (LPCSTR lpstrName);
UINT16 mciGetDeviceIDFromElementID (DWORD dwElementID,
LPCSTR lpstrType);
BOOL mciGetErrorString (DWORD wError, LPSTR lpstrBuffer,
UINT uLength);
BOOL mciSetYieldProc (UINT uDeviceID, YIELDPROC fpYieldProc,
BOOL16 mciGetErrorString (DWORD wError, LPSTR lpstrBuffer,
UINT16 uLength);
BOOL16 mciSetYieldProc (UINT16 uDeviceID, YIELDPROC fpYieldProc,
DWORD dwYieldData);
HTASK16 mciGetCreatorTask(UINT uDeviceID);
YIELDPROC mciGetYieldProc (UINT uDeviceID, DWORD * lpdwYieldData);
HTASK16 mciGetCreatorTask(UINT16 uDeviceID);
YIELDPROC mciGetYieldProc (UINT16 uDeviceID, DWORD * lpdwYieldData);
#define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1)
#define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3)
@ -928,11 +928,11 @@ typedef struct {
typedef struct {
DWORD dwCallback;
UINT wDeviceID;
UINT wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
UINT16 wDeviceID;
UINT16 wReserved0;
SEGPTR lpstrDeviceType;
SEGPTR lpstrElementName;
SEGPTR lpstrAlias;
} MCI_OPEN_PARMS, *LPMCI_OPEN_PARMS;
typedef struct {
@ -970,8 +970,8 @@ typedef struct {
LPSTR lpstrReturn;
DWORD dwRetSize;
DWORD dwNumber;
UINT wDeviceType;
UINT wReserved0;
UINT16 wDeviceType;
UINT16 wReserved0;
} MCI_SYSINFO_PARMS, *LPMCI_SYSINFO_PARMS;
typedef struct {
@ -983,9 +983,9 @@ typedef struct {
typedef struct {
DWORD dwCallback;
int nVirtKey;
UINT wReserved0;
UINT16 wReserved0;
HWND16 hwndBreak;
UINT wReserved1;
UINT16 wReserved1;
} MCI_BREAK_PARMS, *LPMCI_BREAK_PARMS;
typedef struct {
@ -1092,11 +1092,11 @@ typedef struct {
typedef struct {
DWORD dwCallback;
UINT wDeviceID;
UINT wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
UINT16 wDeviceID;
UINT16 wReserved0;
SEGPTR lpstrDeviceType;
SEGPTR lpstrElementName;
SEGPTR lpstrAlias;
DWORD dwBufferSeconds;
} MCI_WAVE_OPEN_PARMS, *LPMCI_WAVE_OPEN_PARMS;
@ -1110,20 +1110,20 @@ typedef struct {
DWORD dwCallback;
DWORD dwTimeFormat;
DWORD dwAudio;
UINT wInput;
UINT wReserved0;
UINT wOutput;
UINT wReserved1;
UINT wFormatTag;
UINT wReserved2;
UINT nChannels;
UINT wReserved3;
UINT16 wInput;
UINT16 wReserved0;
UINT16 wOutput;
UINT16 wReserved1;
UINT16 wFormatTag;
UINT16 wReserved2;
UINT16 nChannels;
UINT16 wReserved3;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
UINT nBlockAlign;
UINT wReserved4;
UINT wBitsPerSample;
UINT wReserved5;
UINT16 nBlockAlign;
UINT16 wReserved4;
UINT16 wBitsPerSample;
UINT16 wReserved5;
} MCI_WAVE_SET_PARMS, * LPMCI_WAVE_SET_PARMS;
#define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET)
@ -1213,14 +1213,14 @@ typedef struct {
typedef struct {
DWORD dwCallback;
UINT wDeviceID;
UINT wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
UINT16 wDeviceID;
UINT16 wReserved0;
SEGPTR lpstrDeviceType;
SEGPTR lpstrElementName;
SEGPTR lpstrAlias;
DWORD dwStyle;
HWND16 hWndParent;
UINT wReserved1;
UINT16 wReserved1;
} MCI_ANIM_OPEN_PARMS, *LPMCI_ANIM_OPEN_PARMS;
typedef struct {
@ -1238,9 +1238,9 @@ typedef struct {
typedef struct {
DWORD dwCallback;
HWND16 hWnd;
UINT wReserved1;
UINT nCmdShow;
UINT wReserved2;
UINT16 wReserved1;
UINT16 nCmdShow;
UINT16 wReserved2;
LPCSTR lpstrText;
} MCI_ANIM_WINDOW_PARMS, *LPMCI_ANIM_WINDOW_PARMS;
@ -1293,22 +1293,22 @@ typedef struct {
typedef struct {
DWORD dwCallback;
UINT wDeviceID;
UINT wReserved0;
UINT16 wDeviceID;
UINT16 wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwStyle;
HWND16 hWndParent;
UINT wReserved1;
UINT16 wReserved1;
} MCI_OVLY_OPEN_PARMS, *LPMCI_OVLY_OPEN_PARMS;
typedef struct {
DWORD dwCallback;
HWND16 hWnd;
UINT wReserved1;
UINT nCmdShow;
UINT wReserved2;
UINT16 wReserved1;
UINT16 nCmdShow;
UINT16 wReserved2;
LPCSTR lpstrText;
} MCI_OVLY_WINDOW_PARMS, *LPMCI_OVLY_WINDOW_PARMS;
@ -1494,30 +1494,30 @@ typedef struct {
} MIDIOPENDESC, *LPMIDIOPENDESC;
typedef struct {
UINT wDelay;
UINT wResolution;
UINT16 wDelay;
UINT16 wResolution;
LPTIMECALLBACK lpFunction;
DWORD dwUser;
UINT wFlags;
UINT16 wFlags;
} TIMEREVENT, *LPTIMEREVENT;
typedef struct {
UINT wDeviceID; /* device ID */
UINT16 wDeviceID; /* device ID */
LPSTR lpstrParams; /* parameter string for entry in SYSTEM.INI */
UINT wCustomCommandTable; /* custom command table (0xFFFF if none) */
UINT16 wCustomCommandTable; /* custom command table (0xFFFF if none) */
/* filled in by the driver */
UINT wType; /* driver type */
UINT16 wType; /* driver type */
/* filled in by the driver */
} MCI_OPEN_DRIVER_PARMS, * LPMCI_OPEN_DRIVER_PARMS;
DWORD mciGetDriverData(UINT uDeviceID);
BOOL mciSetDriverData(UINT uDeviceID, DWORD dwData);
UINT mciDriverYield(UINT uDeviceID);
BOOL mciDriverNotify(HWND16 hwndCallback, UINT uDeviceID,
UINT uStatus);
UINT mciLoadCommandResource(HINSTANCE16 hInstance,
LPCSTR lpResName, UINT uType);
BOOL mciFreeCommandResource(UINT uTable);
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);
#define DCB_NULL 0x0000
#define DCB_WINDOW 0x0001 /* dwCallback is a HWND */
@ -1526,8 +1526,8 @@ BOOL mciFreeCommandResource(UINT uTable);
#define DCB_TYPEMASK 0x0007
#define DCB_NOSWITCH 0x0008 /* don't switch stacks for callback */
BOOL DriverCallback(DWORD dwCallBack, UINT uFlags, HANDLE16 hDev,
WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2);
BOOL16 DriverCallback(DWORD dwCallBack, UINT16 uFlags, HANDLE16 hDev,
WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2);
DWORD auxMessage(WORD wDevID, WORD wMsg, DWORD dwUser,
DWORD dwParam1, DWORD dwParam2);
DWORD midMessage(WORD wDevID, WORD wMsg, DWORD dwUser,

View File

@ -137,7 +137,7 @@ extern BOOL16 BUILTIN_ParseDLLOptions( const char *str );
extern void BUILTIN_PrintDLLs(void);
/* ne_image.c */
extern BOOL16 NE_LoadSegment( HMODULE16 hModule, WORD segnum );
extern BOOL32 NE_LoadSegment( HMODULE16 hModule, WORD segnum );
extern void NE_FixupPrologs( NE_MODULE *pModule );
extern void NE_InitializeDLLs( HMODULE16 hModule );

View File

@ -139,13 +139,13 @@ typedef enum {
} OLE_RELEASE_METHOD;
typedef struct _OLETARGETDEVICE {
UINT otdDeviceNameOffset;
UINT otdDriverNameOffset;
UINT otdPortNameOffset;
UINT otdExtDevmodeOffset;
UINT otdExtDevmodeSize;
UINT otdEnvironmentOffset;
UINT otdEnvironmentSize;
UINT16 otdDeviceNameOffset;
UINT16 otdDriverNameOffset;
UINT16 otdPortNameOffset;
UINT16 otdExtDevmodeOffset;
UINT16 otdExtDevmodeSize;
UINT16 otdEnvironmentOffset;
UINT16 otdEnvironmentSize;
BYTE otdData[1];
/* ... */
} OLETARGETDEVICE;
@ -206,8 +206,8 @@ typedef struct _OLECLIENT {
typedef struct _OLEOBJECTVTBL {
void * (*QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR);
OLESTATUS (*Release)(LPOLEOBJECT);
OLESTATUS (*Show)(LPOLEOBJECT,BOOL);
OLESTATUS (*DoVerb)(LPOLEOBJECT,UINT,BOOL,BOOL);
OLESTATUS (*Show)(LPOLEOBJECT,BOOL16);
OLESTATUS (*DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (*GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (*SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (*SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
@ -222,8 +222,8 @@ typedef struct _OLEOBJECTVTBL {
OLESTATUS (*Equal)(LPOLEOBJECT,LPOLEOBJECT);
OLESTATUS (*CopyToClipBoard)(LPOLEOBJECT);
OLESTATUS (*Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (*Activate)(LPOLEOBJECT,UINT,BOOL,BOOL,HWND16,LPRECT16);
OLESTATUS (*Execute)(LPOLEOBJECT,HGLOBAL16,UINT);
OLESTATUS (*Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (*Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (*Close)(LPOLEOBJECT);
OLESTATUS (*Update)(LPOLEOBJECT);
OLESTATUS (*Reconnect)(LPOLEOBJECT);
@ -241,7 +241,7 @@ typedef struct _OLEOBJECTVTBL {
OLESTATUS (*QueryReleaseError)(LPOLEOBJECT);
OLE_RELEASE_METHOD (*QueryReleaseMethod)(LPOLEOBJECT);
OLESTATUS (*RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (*ObjectLong)(LPOLEOBJECT,UINT,LPLONG);
OLESTATUS (*ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
} OLEOBJECTVTBL;
typedef OLEOBJECTVTBL* LPOLEOBJECTVTBL;
@ -251,7 +251,7 @@ typedef struct _OLEOBJECT {
OLESTATUS OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE);
OLESTATUS OleUnblockServer(LHSERVER,BOOL *);
OLESTATUS OleUnblockServer(LHSERVER,BOOL16 *);
OLESTATUS OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *);
OLESTATUS OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *);
OLESTATUS OleRenameClientDoc(LHCLIENTDOC,LPCSTR);

View File

@ -23,7 +23,8 @@ typedef enum
LANG_Eo, /* Esperanto */
LANG_It, /* Italian */
LANG_Ko, /* Korean */
LANG_Hu /* Hungarian */
LANG_Hu, /* Hungarian */
LANG_Pl /* Polish */
} WINE_LANGUAGE;
typedef struct

View File

@ -4,6 +4,7 @@
#ifndef __WINE_PEEXE_H
#define __WINE_PEEXE_H
#include "wintypes.h"
typedef struct _IMAGE_FILE_HEADER {
WORD Machine;

View File

@ -18,38 +18,24 @@ extern WORD SELECTOR_ReallocBlock( WORD sel, const void *base, DWORD size,
BOOL32 readonly );
extern void SELECTOR_FreeBlock( WORD sel, WORD count );
#ifndef WINELIB
#ifdef linux
#define WINE_DATA_SELECTOR 0x2b
#define WINE_CODE_SELECTOR 0x23
#endif /* linux */
#ifdef __NetBSD__
#define WINE_DATA_SELECTOR 0x1f
#define WINE_CODE_SELECTOR 0x17
#endif /* NetBSD */
#ifdef __FreeBSD__
#define WINE_DATA_SELECTOR 0x27
#define WINE_CODE_SELECTOR 0x1f
#endif /* FreeBSD */
#if defined(__svr4__) || defined(_SCO_DS)
#define WINE_DATA_SELECTOR 0x1f
#define WINE_CODE_SELECTOR 0x17
#endif /* svr4 || SCO_DS */
#ifdef __EMX__ /* Is this always true? */
#define WINE_DATA_SELECTOR 0x53
#define WINE_CODE_SELECTOR 0x5b
#endif /* OS/2 */
#else /* WINELIB */
#define WINE_DATA_SELECTOR 0x00
#define WINE_CODE_SELECTOR 0x00
#endif /* WINELIB */
#if defined(linux)
# define WINE_DATA_SELECTOR 0x2b
# define WINE_CODE_SELECTOR 0x23
#elif defined(__NetBSD__)
# define WINE_DATA_SELECTOR 0x1f
# define WINE_CODE_SELECTOR 0x17
#elif defined(__FreeBSD__)
# define WINE_DATA_SELECTOR 0x27
# define WINE_CODE_SELECTOR 0x1f
#elif defined(__svr4__) || defined(_SCO_DS)
# define WINE_DATA_SELECTOR 0x1f
# define WINE_CODE_SELECTOR 0x17
#elif defined(__EMX__)
# define WINE_DATA_SELECTOR 0x53 /* Is this always true? */
# define WINE_CODE_SELECTOR 0x5b
#else
# define WINE_DATA_SELECTOR 0x00
# define WINE_CODE_SELECTOR 0x00
#endif
#endif /* __WINE_SELECTORS_H */

View File

@ -17,6 +17,7 @@ typedef struct
HICON16 hIcon; /* Icon handle for SS_ICON controls */
} STATICINFO;
extern LRESULT StaticWndProc(HWND16 hWnd,UINT uMsg,WPARAM16 wParam,LPARAM lParam );
extern LRESULT StaticWndProc( HWND16 hWnd, UINT16 uMsg, WPARAM16 wParam,
LPARAM lParam );
#endif /* __WINE_STATIC_H */

View File

@ -148,6 +148,7 @@
#undef DEBUG_TIMER
#undef DEBUG_TOOLHELP
#undef DEBUG_VER
#undef DEBUG_VIRTUAL
#undef DEBUG_VXD
#undef DEBUG_WIN
#undef DEBUG_WIN16DRV
@ -228,6 +229,7 @@
#define DEBUG_TIMER
#define DEBUG_TOOLHELP
#define DEBUG_VER
#define DEBUG_VIRTUAL
#define DEBUG_VXD
#define DEBUG_WIN
#define DEBUG_WIN16DRV

View File

@ -11,16 +11,16 @@ extern "C" {
#define EDS_CUR 2
#define EDS_TEMP 3
BOOL AllocGDIMem(UINT);
BOOL AllocMem(DWORD);
BOOL AllocUserMem(UINT);
int AllocDiskSpace(long, UINT);
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(UINT);
void UnAllocDiskSpace(UINT16);
void UnAllocFileHandles(void);
#ifdef __cplusplus

View File

@ -8,6 +8,8 @@
#define MAX_PATH 255
#define MAX_CLASSNAME 255
#pragma pack(1)
/* Global heap */
typedef struct
@ -343,4 +345,7 @@ struct {
FARPROC16 lpfnErrorAddr;
void **lpBadParam;
} NFYLOGPARAMERROR;
#pragma pack(4)
#endif /* __WINE_TOOLHELP_H */

View File

@ -8,10 +8,10 @@
#define __WINE__W32SYS_H
typedef struct _WIN32SINFO {
BYTE bMajor;
BYTE bMinor;
WORD wBuildNumber;
BOOL fDebug;
BYTE bMajor;
BYTE bMinor;
WORD wBuildNumber;
BOOL16 fDebug;
} WIN32SINFO, *LPWIN32SINFO;
#endif /* __WINE_W32SYS_H */

View File

@ -161,4 +161,7 @@ extern BOOL32 WIN16DRV_GetTextMetrics( DC *dc, TEXTMETRIC32A *metrics );
extern BOOL32 WIN16DRV_ExtTextOut( DC *dc, INT32 x, INT32 y, UINT32 flags,
const RECT32 *lprect, LPCSTR str, UINT32 count,
const INT32 *lpDx );
extern HGDIOBJ32 WIN16DRV_SelectObject( DC *dc, HGDIOBJ32 handle );
#endif /* __WINE_WIN16DRV_H */

View File

@ -29,6 +29,10 @@
#define MEM_MAPPED 0x00040000
#define MEM_TOP_DOWN 0x00100000
#define FILE_BEGIN 0
#define FILE_CURRENT 1
#define FILE_END 2
#define FILE_CASE_SENSITIVE_SEARCH 0x00000001
#define FILE_CASE_PRESERVED_NAMES 0x00000002
#define FILE_UNICODE_ON_DISK 0x00000004

View File

@ -1426,6 +1426,45 @@ DECL_WINELIB_TYPE_AW(FONTENUMPROCEX);
#define ETO_OPAQUE 0x02
#define ETO_CLIPPED 0x04
typedef struct
{
UINT16 gmBlackBoxX;
UINT16 gmBlackBoxY;
POINT16 gmptGlyphOrigin;
INT16 gmCellIncX;
INT16 gmCellIncY;
} GLYPHMETRICS16, *LPGLYPHMETRICS16;
typedef struct
{
UINT32 gmBlackBoxX;
UINT32 gmBlackBoxY;
POINT32 gmptGlyphOrigin;
INT16 gmCellIncX;
INT16 gmCellIncY;
} GLYPHMETRICS32, *LPGLYPHMETRICS32;
DECL_WINELIB_TYPE(GLYPHMETRICS);
DECL_WINELIB_TYPE(LPGLYPHMETRICS);
#define GGO_METRICS 0
#define GGO_BITMAP 1
#define GGO_NATIVE 2
typedef struct
{
UINT16 fract;
INT16 value;
} FIXED;
typedef struct
{
FIXED eM11;
FIXED eM12;
FIXED eM21;
FIXED eM22;
} MAT2, *LPMAT2;
/* for GetCharABCWidths() */
typedef struct
{
@ -1447,9 +1486,9 @@ DECL_WINELIB_TYPE(LPABC);
/* Rasterizer status */
typedef struct
{
WORD nSize;
WORD wFlags;
WORD nLanguageID;
INT16 nSize;
INT16 wFlags;
INT16 nLanguageID;
} RASTERIZER_STATUS, *LPRASTERIZER_STATUS;
#define TT_AVAILABLE 0x0001
@ -1716,8 +1755,41 @@ DECL_WINELIB_TYPE(LPLOGPEN);
#define SM_MENUDROPALIGNMENT 40
#define SM_PENWINDOWS 41
#define SM_DBCSENABLED 42
#define SM_CMOUSEBUTTONS 43
#define SM_CXFIXEDFRAME SM_CXDLGFRAME
#define SM_CYFIXEDFRAME SM_CYDLGFRAME
#define SM_CXSIZEFRAME SM_CXFRAME
#define SM_CYSIZEFRAME SM_CYFRAME
#define SM_SECURE 44
#define SM_CXEDGE 45
#define SM_CYEDGE 46
#define SM_CXMINSPACING 47
#define SM_CYMINSPACING 48
#define SM_CXSMICON 49
#define SM_CYSMICON 50
#define SM_CYSMCAPTION 51
#define SM_CXSMSIZE 52
#define SM_CYSMSIZE 53
#define SM_CXMENUSIZE 54
#define SM_CYMENUSIZE 55
#define SM_ARRANGE 56
#define SM_CXMINIMIZED 57
#define SM_CYMINIMIZED 58
#define SM_CXMAXTRACK 59
#define SM_CYMAXTRACK 60
#define SM_CXMAXIMIZED 61
#define SM_CYMAXIMIZED 62
#define SM_NETWORK 63
#define SM_CLEANBOOT 67
#define SM_CXDRAG 68
#define SM_CYDRAG 69
#define SM_SHOWSOUNDS 70
#define SM_CXMENUCHECK 71
#define SM_CYMENUCHECK 72
#define SM_SLOWMACHINE 73
#define SM_MIDEASTENABLED 74
#define SM_CMETRICS 43
#define SM_CMETRICS 75
/* Device-independent bitmaps */
@ -2232,6 +2304,7 @@ typedef struct tagCOMSTAT
#define WF_SMALLFRAME 0x0200
#define WF_80x87 0x0400
#define WF_PAGING 0x0800
#define WF_WIN32WOW 0x4000 /* undoc */
#define WF_WLO 0x8000
#define MAKEINTRESOURCE(i) (SEGPTR)((DWORD)((WORD)(i)))
@ -4659,6 +4732,52 @@ DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC);
DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC);
DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC);
/* Character Type Flags */
#define CT_CTYPE1 0x00000001 /* usual ctype */
#define CT_CTYPE2 0x00000002 /* bidirectional layout info */
#define CT_CTYPE3 0x00000004 /* textprocessing info */
/* CType 1 Flag Bits */
#define C1_UPPER 0x0001
#define C1_LOWER 0x0002
#define C1_DIGIT 0x0004
#define C1_SPACE 0x0008
#define C1_PUNCT 0x0010
#define C1_CNTRL 0x0020
#define C1_BLANK 0x0040
#define C1_XDIGIT 0x0080
#define C1_ALPHA 0x0100
/* CType 2 Flag Bits */
#define C2_LEFTTORIGHT 0x0001
#define C2_RIGHTTOLEFT 0x0002
#define C2_EUROPENUMBER 0x0003
#define C2_EUROPESEPARATOR 0x0004
#define C2_EUROPETERMINATOR 0x0005
#define C2_ARABICNUMBER 0x0006
#define C2_COMMONSEPARATOR 0x0007
#define C2_BLOCKSEPARATOR 0x0008
#define C2_SEGMENTSEPARATOR 0x0009
#define C2_WHITESPACE 0x000A
#define C2_OTHERNEUTRAL 0x000B
#define C2_NOTAPPLICABLE 0x0000
/* CType 3 Flag Bits */
#define C3_NONSPACING 0x0001
#define C3_DIACRITIC 0x0002
#define C3_VOWELMARK 0x0004
#define C3_SYMBOL 0x0008
#define C3_KATAKANA 0x0010
#define C3_HIRAGANA 0x0020
#define C3_HALFWIDTH 0x0040
#define C3_FULLWIDTH 0x0080
#define C3_IDEOGRAPH 0x0100
#define C3_KASHIDA 0x0200
#define C3_LEXICAL 0x0400
#define C3_ALPHA 0x8000
#define C3_NOTAPPLICABLE 0x0000
#pragma pack(4)
/* Declarations for functions that exist only in Win16 */
@ -4704,6 +4823,7 @@ DWORD GetDCOrg(HDC16);
HDC16 GetDCState(HDC16);
HWND16 GetDesktopHwnd(void);
SEGPTR GetDOSEnvironment(void);
INT16 GetEnvironment(LPCSTR,LPSTR,UINT16);
HMODULE16 GetExePtr(HANDLE16);
WORD GetExeVersion(void);
DWORD GetHeapSpaces(HMODULE16);
@ -4711,6 +4831,7 @@ INT16 GetKbCodePage(VOID);
INT16 GetInstanceData(HINSTANCE16,WORD,INT16);
HGLOBAL16 GetMetaFileBits(HMETAFILE16);
BOOL16 GetModuleName(HINSTANCE16,LPSTR,INT16);
INT16 GetModuleUsage(HINSTANCE16);
FARPROC16 GetMouseEventProc(void);
UINT16 GetNumTasks(void);
DWORD GetSelectorBase(WORD);
@ -4770,6 +4891,7 @@ BOOL16 SetDCHook(HDC16,FARPROC16,DWORD);
DWORD SetDCOrg(HDC16,INT16,INT16);
VOID SetDCState(HDC16,HDC16);
BOOL16 SetDeskPattern(void);
INT16 SetEnvironment(LPCSTR,LPCSTR,UINT16);
WORD SetHookFlags(HDC16,WORD);
HMETAFILE16 SetMetaFileBits(HGLOBAL16);
VOID SetPriority(HTASK16,INT16);
@ -4878,6 +5000,9 @@ DWORD GetShortPathName32A(LPCSTR,LPSTR,DWORD);
DWORD GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
#define GetShortPathName WINELIB_NAME_AW(GetShortPathName)
HFILE32 GetStdHandle(DWORD);
BOOL32 GetStringTypeEx32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
BOOL32 GetStringTypeEx32W(LCID,DWORD,LPCWSTR,INT32,LPWORD);
#define GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx)
VOID GetSystemInfo(LPSYSTEM_INFO);
BOOL32 GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
VOID GetSystemTime(LPSYSTEMTIME);
@ -4899,13 +5024,17 @@ BOOL32 IsDBCSLeadByteEx(UINT32,BYTE);
BOOL32 IsWindowUnicode(HWND32);
BOOL32 IsValidLocale(DWORD,DWORD);
BOOL32 LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
LPVOID MapViewOfFileEx(HANDLE32,DWORD,DWORD,DWORD,DWORD,DWORD);
LPVOID MapViewOfFile(HANDLE32,DWORD,DWORD,DWORD,DWORD);
LPVOID MapViewOfFileEx(HANDLE32,DWORD,DWORD,DWORD,DWORD,LPVOID);
INT32 MessageBoxEx32A(HWND32,LPCSTR,LPCSTR,UINT32,WORD);
INT32 MessageBoxEx32W(HWND32,LPCWSTR,LPCWSTR,UINT32,WORD);
#define MessageBoxEx WINELIB_NAME_AW(MessageBoxEx)
BOOL32 MoveFile32A(LPCSTR,LPCSTR);
BOOL32 MoveFile32W(LPCWSTR,LPCWSTR);
#define MoveFile WINELIB_NAME_AW(MoveFile)
HANDLE32 OpenFileMapping32A(DWORD,BOOL32,LPCSTR);
HANDLE32 OpenFileMapping32W(DWORD,BOOL32,LPCWSTR);
#define OpenFileMapping WINELIB_NAME_AW(OpenFileMapping)
DWORD QueryDosDevice32A(LPCSTR,LPSTR,DWORD);
DWORD QueryDosDevice32W(LPCWSTR,LPWSTR,DWORD);
#define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice)
@ -4962,8 +5091,15 @@ DWORD TlsAlloc(void);
BOOL32 TlsFree(DWORD);
LPVOID TlsGetValue(DWORD);
BOOL32 TlsSetValue(DWORD,LPVOID);
BOOL32 UnmapViewOfFile(LPVOID);
LPVOID VirtualAlloc(LPVOID,DWORD,DWORD,DWORD);
BOOL32 VirtualFree(LPVOID,DWORD,DWORD);
BOOL32 VirtualLock(LPVOID,DWORD);
BOOL32 VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD);
BOOL32 VirtualProtectEx(HANDLE32,LPVOID,DWORD,DWORD,LPDWORD);
BOOL32 VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
BOOL32 VirtualQueryEx(HANDLE32,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD);
BOOL32 VirtualUnlock(LPVOID,DWORD);
BOOL32 WriteConsole32A(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
BOOL32 WriteConsole32W(HANDLE32,LPVOID,DWORD,LPDWORD,LPVOID);
#define WriteConsole WINELIB_NAME_AW(WriteConsole)
@ -4973,15 +5109,6 @@ BOOL32 WriteFile(HFILE32,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
/* Declarations for functions that are the same in Win16 and Win32 */
VOID CloseSound(VOID);
HBITMAP16 CreateBitmap(INT32,INT32,UINT32,UINT32,LPCVOID);
BOOL16 CreateCaret(HWND32,HBITMAP32,INT32,INT32);
HBITMAP16 CreateCompatibleBitmap(HDC32,INT32,INT32);
HBITMAP16 CreateDiscardableBitmap(HDC32,INT32,INT32);
BOOL16 DestroyCaret(void);
INT16 ExcludeUpdateRgn(HDC32,HWND32);
DWORD GetAppCompatFlags(HTASK32);
LONG GetBitmapBits(HBITMAP32,LONG,LPVOID);
WORD GetClassWord(HWND32,INT32);
DWORD GetDialogBaseUnits(void);
VOID GetKeyboardState(LPBYTE);
DWORD GetLastError(void);
@ -4990,28 +5117,17 @@ LONG GetMessageExtraInfo(void);
DWORD GetMessagePos(void);
LONG GetMessageTime(void);
DWORD GetTickCount(void);
INT16 GetUpdateRgn(HWND32,HRGN32,BOOL32);
WORD GetWindowWord(HWND32,INT32);
ATOM GlobalDeleteAtom(ATOM);
BOOL16 IsWindow(HWND32);
VOID LZDone(void);
DWORD OemKeyScan(WORD);
DWORD RegCloseKey(HKEY);
DWORD RegFlushKey(HKEY);
VOID ReleaseCapture(void);
LONG SetBitmapBits(HBITMAP32,LONG,LPCVOID);
COLORREF SetBkColor(HDC32,COLORREF);
BOOL16 SetCaretBlinkTime(UINT32);
BOOL16 SetCaretPos(INT32,INT32);
WORD SetClassWord(HWND32,INT32,WORD);
VOID SetKeyboardState(LPBYTE);
VOID SetLastError(DWORD);
VOID SetRectRgn(HRGN32,INT32,INT32,INT32,INT32);
COLORREF SetTextColor(HDC32,COLORREF);
WORD SetWindowWord(HWND32,INT32,WORD);
VOID UpdateWindow(HWND32);
VOID WaitMessage(VOID);
/* Declarations for functions that change between Win16 and Win32 */
INT16 AccessResource16(HINSTANCE16,HRSRC16);
@ -5021,6 +5137,10 @@ ATOM AddAtom16(SEGPTR);
ATOM AddAtom32A(LPCSTR);
ATOM AddAtom32W(LPCWSTR);
#define AddAtom WINELIB_NAME_AW(AddAtom)
INT16 AddFontResource16(LPCSTR);
INT32 AddFontResource32A(LPCSTR);
INT32 AddFontResource32W(LPCWSTR);
#define AddFontResource WINELIB_NAME_AW(AddFontResource)
BOOL16 AdjustWindowRect16(LPRECT16,DWORD,BOOL16);
BOOL32 AdjustWindowRect32(LPRECT32,DWORD,BOOL32);
#define AdjustWindowRect WINELIB_NAME(AdjustWindowRect)
@ -5207,12 +5327,21 @@ INT32 CountClipboardFormats32(void);
INT16 CountVoiceNotes16(INT16);
DWORD CountVoiceNotes32(DWORD);
#define CountVoiceNotes WINELIB_NAME(CountVoiceNotes)
HBITMAP16 CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
HBITMAP32 CreateBitmap32(INT32,INT32,UINT32,UINT32,LPCVOID);
#define CreateBitmap WINELIB_NAME(CreateBitmap)
HBITMAP16 CreateBitmapIndirect16(const BITMAP16*);
HBITMAP32 CreateBitmapIndirect32(const BITMAP32*);
#define CreateBitmapIndirect WINELIB_NAME(CreateBitmapIndirect)
HBRUSH16 CreateBrushIndirect16(const LOGBRUSH16*);
HBRUSH32 CreateBrushIndirect32(const LOGBRUSH32*);
#define CreateBrushIndirect WINELIB_NAME(CreateBrushIndirect)
VOID CreateCaret16(HWND16,HBITMAP16,INT16,INT16);
BOOL32 CreateCaret32(HWND32,HBITMAP32,INT32,INT32);
#define CreateCaret WINELIB_NAME(CreateCaret)
HBITMAP16 CreateCompatibleBitmap16(HDC16,INT16,INT16);
HBITMAP32 CreateCompatibleBitmap32(HDC32,INT32,INT32);
#define CreateCompatibleBitmap WINELIB_NAME(CreateCompatibleBitmap)
HDC16 CreateCompatibleDC16(HDC16);
HDC32 CreateCompatibleDC32(HDC32);
#define CreateCompatibleDC WINELIB_NAME(CreateCompatibleDC)
@ -5258,6 +5387,9 @@ BOOL32 CreateDirectory32W(LPCWSTR,LPSECURITY_ATTRIBUTES);
BOOL32 CreateDirectoryEx32A(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES);
BOOL32 CreateDirectoryEx32W(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES);
#define CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx)
HBITMAP16 CreateDiscardableBitmap16(HDC16,INT16,INT16);
HBITMAP32 CreateDiscardableBitmap32(HDC32,INT32,INT32);
#define CreateDiscardableBitmap WINELIB_NAME(CreateDiscardableBitmap)
HRGN16 CreateEllipticRgn16(INT16,INT16,INT16,INT16);
HRGN32 CreateEllipticRgn32(INT32,INT32,INT32,INT32);
#define CreateEllipticRgn WINELIB_NAME(CreateEllipticRgn)
@ -5319,6 +5451,10 @@ HRGN32 CreateRectRgnIndirect32(const RECT32*);
HRGN16 CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
HRGN32 CreateRoundRectRgn32(INT32,INT32,INT32,INT32,INT32,INT32);
#define CreateRoundRectRgn WINELIB_NAME(CreateRoundRectRgn)
BOOL16 CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
BOOL32 CreateScalableFontResource32A(DWORD,LPCSTR,LPCSTR,LPCSTR);
BOOL32 CreateScalableFontResource32W(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
HBRUSH16 CreateSolidBrush16(COLORREF);
HBRUSH32 CreateSolidBrush32(COLORREF);
#define CreateSolidBrush WINELIB_NAME(CreateSolidBrush)
@ -5378,6 +5514,9 @@ BOOL32 DeleteMetaFile32(HMETAFILE32);
BOOL16 DeleteObject16(HGDIOBJ16);
BOOL32 DeleteObject32(HGDIOBJ32);
#define DeleteObject WINELIB_NAME(DeleteObject)
VOID DestroyCaret16(void);
BOOL32 DestroyCaret32(void);
#define DestroyCaret WINELIB_NAME(DestroyCaret)
BOOL16 DestroyCursor16(HCURSOR16);
BOOL32 DestroyCursor32(HCURSOR32);
#define DestroyCursor WINELIB_NAME(DestroyCursor)
@ -5436,6 +5575,9 @@ BOOL32 DPtoLP32(HDC32,LPPOINT32,INT32);
BOOL16 DragDetect16(HWND16,POINT16);
BOOL32 DragDetect32(HWND32,POINT32);
#define DragDetect WINELIB_NAME(DragDetect)
DWORD DragObject16(HWND16,HWND16,UINT16,HANDLE16,WORD,HCURSOR16);
DWORD DragObject32(HWND32,HWND32,UINT32,DWORD,HCURSOR32);
#define DragObject WINELIB_NAME(DragObject)
BOOL16 DrawEdge16(HDC16,LPRECT16,UINT16,UINT16);
BOOL32 DrawEdge32(HDC32,LPRECT32,UINT32,UINT32);
#define DrawEdge WINELIB_NAME(DrawEdge)
@ -5497,6 +5639,9 @@ INT16 EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
INT32 EnumFonts32A(HDC32,LPCSTR,FONTENUMPROC32A,LPARAM);
INT32 EnumFonts32W(HDC32,LPCWSTR,FONTENUMPROC32W,LPARAM);
#define EnumFonts WINELIB_NAME_AW(EnumFonts)
BOOL16 EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
BOOL32 EnumMetaFile32(HDC32,HMETAFILE32,MFENUMPROC32,LPARAM);
#define EnumMetaFile WINELIB_NAME(EnumMetaFile)
INT16 EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
INT32 EnumObjects32(HDC32,INT32,GOBJENUMPROC32,LPARAM);
#define EnumObjects WINELIB_NAME(EnumObjects)
@ -5526,12 +5671,19 @@ BOOL32 EscapeCommFunction32(INT32,UINT32);
INT16 ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
INT32 ExcludeClipRect32(HDC32,INT32,INT32,INT32,INT32);
#define ExcludeClipRect WINELIB_NAME(ExcludeClipRect)
INT16 ExcludeUpdateRgn16(HDC16,HWND16);
INT32 ExcludeUpdateRgn32(HDC32,HWND32);
#define ExcludeUpdateRgn WINELIB_NAME(ExcludeUpdateRgn)
BOOL16 ExitWindows16(DWORD,UINT16);
#define ExitWindows32(a,b) ExitWindowsEx(EWX_LOGOFF,0xffffffff)
#define ExitWindows WINELIB_NAME(ExitWindows)
BOOL16 ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
BOOL32 ExtFloodFill32(HDC32,INT32,INT32,COLORREF,UINT32);
#define ExtFloodFill WINELIB_NAME(ExtFloodFill)
HICON16 ExtractIcon16(HINSTANCE16,LPCSTR,UINT16);
HICON32 ExtractIcon32A(HINSTANCE32,LPCSTR,UINT32);
HICON32 ExtractIcon32W(HINSTANCE32,LPCWSTR,UINT32);
#define ExtractIcon WINELIB_NAME_AW(ExtractIcon)
BOOL16 ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,LPCSTR,UINT16,const INT16*);
BOOL32 ExtTextOut32A(HDC32,INT32,INT32,UINT32,const RECT32*,LPCSTR,UINT32,const INT32*);
BOOL32 ExtTextOut32W(HDC32,INT32,INT32,UINT32,const RECT32*,LPCWSTR,UINT32,const INT32*);
@ -5553,6 +5705,10 @@ ATOM FindAtom32W(LPCWSTR);
BOOL16 FindClose16(HANDLE16);
BOOL32 FindClose32(HANDLE32);
#define FindClose WINELIB_NAME(FindClose)
HINSTANCE16 FindExecutable16(LPCSTR,LPCSTR,LPSTR);
HINSTANCE32 FindExecutable32A(LPCSTR,LPCSTR,LPSTR);
HINSTANCE32 FindExecutable32W(LPCWSTR,LPCWSTR,LPWSTR);
#define FindExecutable WINELIB_NAME_AW(FindExecutable)
HANDLE16 FindFirstFile16(LPCSTR,LPWIN32_FIND_DATA32A);
HANDLE32 FindFirstFile32A(LPCSTR,LPWIN32_FIND_DATA32A);
HANDLE32 FindFirstFile32W(LPCWSTR,LPWIN32_FIND_DATA32W);
@ -5585,6 +5741,9 @@ INT32 FrameRect32(HDC32,const RECT32*,HBRUSH32);
BOOL16 FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
BOOL32 FrameRgn32(HDC32,HRGN32,HBRUSH32,INT32,INT32);
#define FrameRgn WINELIB_NAME(FrameRgn)
VOID FreeLibrary16(HINSTANCE16);
BOOL32 FreeLibrary32(HMODULE32);
#define FreeLibrary WINELIB_NAME(FreeLibrary)
BOOL16 FreeModule16(HMODULE16);
#define FreeModule32(handle) FreeLibrary32(handle)
#define FreeModule WINELIB_NAME(FreeModule)
@ -5597,6 +5756,9 @@ BOOL32 FreeResource32(HGLOBAL32);
HWND16 GetActiveWindow16(void);
HWND32 GetActiveWindow32(void);
#define GetActiveWindow WINELIB_NAME(GetActiveWindow)
DWORD GetAppCompatFlags16(HTASK16);
DWORD GetAppCompatFlags32(HTASK32);
#define GetAppCompatFlags WINELIB_NAME(GetAppCompatFlags)
WORD GetAsyncKeyState16(INT16);
WORD GetAsyncKeyState32(INT32);
#define GetAsyncKeyState WINELIB_NAME(GetAsyncKeyState)
@ -5604,6 +5766,9 @@ UINT16 GetAtomName16(ATOM,LPSTR,INT16);
UINT32 GetAtomName32A(ATOM,LPSTR,INT32);
UINT32 GetAtomName32W(ATOM,LPWSTR,INT32);
#define GetAtomName WINELIB_NAME_AW(GetAtomName)
LONG GetBitmapBits16(HBITMAP16,LONG,LPVOID);
LONG GetBitmapBits32(HBITMAP32,LONG,LPVOID);
#define GetBitmapBits WINELIB_NAME(GetBitmapBits)
BOOL16 GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
BOOL32 GetBitmapDimensionEx32(HBITMAP32,LPSIZE32);
#define GetBitmapDimensionEx WINELIB_NAME(GetBitmapDimensionEx)
@ -5649,9 +5814,19 @@ INT16 GetClassName16(HWND16,LPSTR,INT16);
INT32 GetClassName32A(HWND32,LPSTR,INT32);
INT32 GetClassName32W(HWND32,LPWSTR,INT32);
#define GetClassName WINELIB_NAME_AW(GetClassName)
WORD GetClassWord16(HWND16,INT16);
WORD GetClassWord32(HWND32,INT32);
#define GetClassWord WINELIB_NAME(GetClassWord)
void GetClientRect16(HWND16,LPRECT16);
void GetClientRect32(HWND32,LPRECT32);
#define GetClientRect WINELIB_NAME(GetClientRect)
HANDLE16 GetClipboardData16(UINT16);
HANDLE32 GetClipboardData32(UINT32);
#define GetClipboardData WINELIB_NAME(GetClipboardData)
INT16 GetClipboardFormatName16(UINT16,LPSTR,INT16);
INT32 GetClipboardFormatName32A(UINT32,LPSTR,INT32);
INT32 GetClipboardFormatName32W(UINT32,LPWSTR,INT32);
#define GetClipboardFormatName WINELIB_NAME_AW(GetClipboardFormatName)
HWND16 GetClipboardOwner16(void);
HWND32 GetClipboardOwner32(void);
#define GetClipboardOwner WINELIB_NAME(GetClipboardOwner)
@ -5747,6 +5922,10 @@ HWND32 GetFocus32(void);
DWORD GetFreeSpace16(UINT16);
#define GetFreeSpace32(w) (0x100000L)
#define GetFreeSpace WINELIB_NAME(GetFreeSpace)
DWORD GetGlyphOutLine16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
DWORD GetGlyphOutLine32A(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
DWORD GetGlyphOutLine32W(HDC32,UINT32,UINT32,LPGLYPHMETRICS32,DWORD,LPVOID,const MAT2*);
#define GetGlyphOutLine WINELIB_NAME_AW(GetGlyphOutLine)
BOOL16 GetInputState16(void);
BOOL32 GetInputState32(void);
#define GetInputState WINELIB_NAME(GetInputState)
@ -5756,6 +5935,10 @@ UINT32 GetInternalWindowPos32(HWND32,LPRECT32,LPPOINT32);
INT16 GetKBCodePage16(void);
UINT32 GetKBCodePage32(void);
#define GetKBCodePage WINELIB_NAME(GetKBCodePage)
INT16 GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
DWORD GetKerningPairs32A(HDC32,DWORD,LPKERNINGPAIR32);
DWORD GetKerningPairs32W(HDC32,DWORD,LPKERNINGPAIR32);
#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
INT16 GetKeyboardType16(INT16);
INT32 GetKeyboardType32(INT32);
#define GetKeyboardType WINELIB_NAME(GetKeyboardType)
@ -5791,6 +5974,10 @@ INT16 GetMenuString16(HMENU16,UINT16,LPSTR,INT16,UINT16);
INT32 GetMenuString32A(HMENU32,UINT32,LPSTR,INT32,UINT32);
INT32 GetMenuString32W(HMENU32,UINT32,LPWSTR,INT32,UINT32);
#define GetMenuString WINELIB_NAME_AW(GetMenuString)
BOOL16 GetMessage16(SEGPTR,HWND16,UINT16,UINT16);
BOOL32 GetMessage32A(LPMSG32,HWND32,UINT32,UINT32);
BOOL32 GetMessage32W(LPMSG32,HWND32,UINT32,UINT32);
#define GetMessage WINELIB_NAME_AW(GetMessage)
HMETAFILE16 GetMetaFile16(LPCSTR);
HMETAFILE32 GetMetaFile32A(LPCSTR);
HMETAFILE32 GetMetaFile32W(LPCWSTR);
@ -5799,6 +5986,10 @@ INT16 GetModuleFileName16(HINSTANCE16,LPSTR,INT16);
DWORD GetModuleFileName32A(HMODULE32,LPSTR,DWORD);
DWORD GetModuleFileName32W(HMODULE32,LPWSTR,DWORD);
#define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
HMODULE16 GetModuleHandle16(LPCSTR);
HMODULE32 GetModuleHandle32A(LPCSTR);
HMODULE32 GetModuleHandle32W(LPCSTR);
#define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle)
DWORD GetNearestColor16(HDC16,DWORD);
DWORD GetNearestColor32(HDC32,DWORD);
#define GetNearestColor WINELIB_NAME(GetNearestColor)
@ -5833,6 +6024,9 @@ COLORREF GetPixel32(HDC32,INT32,INT32);
INT16 GetPolyFillMode16(HDC16);
INT32 GetPolyFillMode32(HDC32);
#define GetPolyFillMode WINELIB_NAME(GetPolyFillMode)
INT16 GetPriorityClipboardFormat16(UINT16*,INT16);
INT32 GetPriorityClipboardFormat32(UINT32*,INT32);
#define GetPriorityClipboardFormat WINELIB_NAME(GetPriorityClipboardFormat)
UINT16 GetPrivateProfileInt16(LPCSTR,LPCSTR,INT16,LPCSTR);
UINT32 GetPrivateProfileInt32A(LPCSTR,LPCSTR,INT32,LPCSTR);
UINT32 GetPrivateProfileInt32W(LPCWSTR,LPCWSTR,INT32,LPCWSTR);
@ -5856,6 +6050,12 @@ HANDLE16 GetProp16(HWND16,LPCSTR);
HANDLE32 GetProp32A(HWND32,LPCSTR);
HANDLE32 GetProp32W(HWND32,LPCWSTR);
#define GetProp WINELIB_NAME_AW(GetProp)
DWORD GetQueueStatus16(UINT16);
DWORD GetQueueStatus32(UINT32);
#define GetQueueStatus WINELIB_NAME(GetQueueStatus)
BOOL16 GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
BOOL32 GetRasterizerCaps32(LPRASTERIZER_STATUS,UINT32);
#define GetRasterizerCaps WINELIB_NAME(GetRasterizerCaps)
INT16 GetRelAbs16(HDC16);
INT32 GetRelAbs32(HDC32);
#define GetRelAbs WINELIB_NAME(GetRelAbs)
@ -5880,6 +6080,10 @@ HGDIOBJ32 GetStockObject32(INT32);
INT16 GetStretchBltMode16(HDC16);
INT32 GetStretchBltMode32(HDC32);
#define GetStretchBltMode WINELIB_NAME(GetStretchBltMode)
BOOL16 GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD);
BOOL32 GetStringType32A(LCID,DWORD,LPCSTR,INT32,LPWORD);
BOOL32 GetStringType32W(DWORD,LPCWSTR,INT32,LPWORD);
#define GetStringType WINELIB_NAME_AW(GetStringType)
HMENU16 GetSubMenu16(HMENU16,INT16);
HMENU32 GetSubMenu32(HMENU32,INT32);
#define GetSubMenu WINELIB_NAME(GetSubMenu)
@ -5952,6 +6156,9 @@ HWND32 GetTopWindow32(HWND32);
BOOL16 GetUpdateRect16(HWND16,LPRECT16,BOOL16);
BOOL32 GetUpdateRect32(HWND32,LPRECT32,BOOL32);
#define GetUpdateRect WINELIB_NAME(GetUpdateRect)
INT16 GetUpdateRgn16(HWND16,HRGN16,BOOL16);
INT32 GetUpdateRgn32(HWND32,HRGN32,BOOL32);
#define GetUpdateRgn WINELIB_NAME(GetUpdateRgn)
LONG GetVersion16(void);
LONG GetVersion32(void);
#define GetVersion WINELIB_NAME(GetVersion)
@ -6001,6 +6208,9 @@ INT16 GetWindowTextLength16(HWND16);
INT32 GetWindowTextLength32A(HWND32);
INT32 GetWindowTextLength32W(HWND32);
#define GetWindowTextLength WINELIB_NAME_AW(GetWindowTextLength)
WORD GetWindowWord16(HWND16,INT16);
WORD GetWindowWord32(HWND32,INT32);
#define GetWindowWord WINELIB_NAME(GetWindowWord)
ATOM GlobalAddAtom16(SEGPTR);
ATOM GlobalAddAtom32A(LPCSTR);
ATOM GlobalAddAtom32W(LPCWSTR);
@ -6059,7 +6269,7 @@ BOOL32 GrayString32A(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM,
BOOL32 GrayString32W(HDC32,HBRUSH32,GRAYSTRINGPROC32,LPARAM,
INT32,INT32,INT32,INT32,INT32);
#define GrayString WINELIB_NAME_AW(GrayString)
BOOL16 HideCaret16(HWND16);
VOID HideCaret16(HWND16);
BOOL32 HideCaret32(HWND32);
#define HideCaret WINELIB_NAME(HideCaret)
BOOL16 HiliteMenuItem16(HWND16,HMENU16,UINT16,UINT16);
@ -6103,7 +6313,7 @@ BOOL16 IsBadHugeReadPtr16(SEGPTR,DWORD);
BOOL32 IsBadHugeReadPtr32(LPCVOID,UINT32);
#define IsBadHugeReadPtr WINELIB_NAME(IsBadHugeReadPtr)
BOOL16 IsBadHugeWritePtr16(SEGPTR,DWORD);
BOOL32 IsBadHugeWritePtr32(LPCVOID,UINT32);
BOOL32 IsBadHugeWritePtr32(LPVOID,UINT32);
#define IsBadHugeWritePtr WINELIB_NAME(IsBadHugeWritePtr)
BOOL16 IsBadReadPtr16(SEGPTR,UINT16);
BOOL32 IsBadReadPtr32(LPCVOID,UINT32);
@ -6156,6 +6366,9 @@ BOOL32 IsMenu32(HMENU32);
BOOL16 IsRectEmpty16(const RECT16*);
BOOL32 IsRectEmpty32(const RECT32*);
#define IsRectEmpty WINELIB_NAME(IsRectEmpty)
BOOL16 IsWindow16(HWND16);
BOOL32 IsWindow32(HWND32);
#define IsWindow WINELIB_NAME(IsWindow)
BOOL16 IsWindowEnabled16(HWND16);
BOOL32 IsWindowEnabled32(HWND32);
#define IsWindowEnabled WINELIB_NAME(IsWindowEnabled)
@ -6215,6 +6428,9 @@ HMENU16 LoadMenuIndirect16(LPCVOID);
HMENU32 LoadMenuIndirect32A(LPCVOID);
HMENU32 LoadMenuIndirect32W(LPCVOID);
#define LoadMenuIndirect WINELIB_NAME_AW(LoadMenuIndirect)
HINSTANCE16 LoadModule16(LPCSTR,LPVOID);
DWORD LoadModule32(LPCSTR,LPVOID);
#define LoadModule WINELIB_NAME(LoadModule)
HGLOBAL16 LoadResource16(HINSTANCE16,HRSRC16);
HGLOBAL32 LoadResource32(HINSTANCE32,HRSRC32);
#define LoadResource WINELIB_NAME(LoadResource)
@ -6347,6 +6563,10 @@ BOOL32 OpenIcon32(HWND32);
INT16 OpenSound16(void);
VOID OpenSound32(void);
#define OpenSound WINELIB_NAME(OpenSound)
VOID OutputDebugString16(LPCSTR);
VOID OutputDebugString32A(LPCSTR);
VOID OutputDebugString32W(LPCWSTR);
#define OutputDebugString WINELIB_NAME_AW(OutputDebugString)
BOOL16 PaintRgn16(HDC16,HRGN16);
BOOL32 PaintRgn32(HDC32,HRGN32);
#define PaintRgn WINELIB_NAME(PaintRgn)
@ -6363,6 +6583,9 @@ BOOL32 Pie32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
BOOL16 PlayMetaFile16(HDC16,HMETAFILE16);
BOOL32 PlayMetaFile32(HDC32,HMETAFILE32);
#define PlayMetaFile WINELIB_NAME(PlayMetaFile)
VOID PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
BOOL32 PlayMetaFileRecord32(HDC32,LPHANDLETABLE32,LPMETARECORD,UINT32);
#define PlayMetaFileRecord WINELIB_NAME(PlayMetaFileRecord)
BOOL16 PolyPolygon16(HDC16,LPPOINT16,LPINT16,UINT16);
BOOL32 PolyPolygon32(HDC32,LPPOINT32,LPINT32,UINT32);
#define PolyPolygon WINELIB_NAME(PolyPolygon)
@ -6378,6 +6601,10 @@ BOOL16 PostAppMessage16(HTASK16,UINT16,WPARAM16,LPARAM);
#define PostAppMessage32W(thread,msg,wparam,lparam) \
PostThreadMessage32W((DWORD)(thread),msg,wparam,lparam)
#define PostAppMessage WINELIB_NAME_AW(PostAppMessage)
BOOL16 PostMessage16(HWND16,UINT16,WPARAM16,LPARAM);
BOOL32 PostMessage32A(HWND32,UINT32,WPARAM32,LPARAM);
BOOL32 PostMessage32W(HWND32,UINT32,WPARAM32,LPARAM);
#define PostMessage WINELIB_NAME_AW(PostMessage)
void PostQuitMessage16(INT16);
void PostQuitMessage32(INT32);
#define PostQuitMessage WINELIB_NAME(PostQuitMessage)
@ -6464,17 +6691,24 @@ DWORD RegSetValueEx32W(HKEY,LPWSTR,DWORD,DWORD,LPBYTE,DWORD);
INT16 ReleaseDC16(HWND16,HDC16);
INT32 ReleaseDC32(HWND32,HDC32);
#define ReleaseDC WINELIB_NAME(ReleaseDC)
HANDLE16 RemoveProp16(HWND16,LPCSTR);
HANDLE32 RemoveProp32A(HWND32,LPCSTR);
HANDLE32 RemoveProp32W(HWND32,LPCWSTR);
#define RemoveProp WINELIB_NAME_AW(RemoveProp)
BOOL16 RemoveDirectory16(LPCSTR);
BOOL32 RemoveDirectory32A(LPCSTR);
BOOL32 RemoveDirectory32W(LPCWSTR);
#define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
BOOL16 RemoveFontResource16(LPCSTR);
BOOL32 RemoveFontResource32A(LPCSTR);
BOOL32 RemoveFontResource32W(LPCWSTR);
#define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
BOOL16 RemoveMenu16(HMENU16,UINT16,UINT16);
BOOL32 RemoveMenu32(HMENU32,UINT32,UINT32);
#define RemoveMenu WINELIB_NAME(RemoveMenu)
HANDLE16 RemoveProp16(HWND16,LPCSTR);
HANDLE32 RemoveProp32A(HWND32,LPCSTR);
HANDLE32 RemoveProp32W(HWND32,LPCWSTR);
#define RemoveProp WINELIB_NAME_AW(RemoveProp)
VOID ReplyMessage16(LRESULT);
BOOL32 ReplyMessage32(LRESULT);
#define ReplyMessage WINELIB_NAME(ReplyMessage)
HDC16 ResetDC16(HDC16,const DEVMODE16 *);
HDC32 ResetDC32A(HDC32,const DEVMODE32A *);
HDC32 ResetDC32W(HDC32,const DEVMODE32W *);
@ -6536,19 +6770,37 @@ LRESULT SendMessage32W(HWND32,UINT32,WPARAM32,LPARAM);
HWND16 SetActiveWindow16(HWND16);
HWND32 SetActiveWindow32(HWND32);
#define SetActiveWindow WINELIB_NAME(SetActiveWindow)
LONG SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
LONG SetBitmapBits32(HBITMAP32,LONG,LPCVOID);
#define SetBitmapBits WINELIB_NAME(SetBitmapBits)
BOOL16 SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
BOOL32 SetBitmapDimensionEx32(HBITMAP32,INT32,INT32,LPSIZE32);
#define SetBitmapDimensionEx WINELIB_NAME(SetBitmapDimensionEx)
COLORREF SetBkColor16(HDC16,COLORREF);
COLORREF SetBkColor32(HDC32,COLORREF);
#define SetBkColor WINELIB_NAME(SetBkColor)
INT16 SetBkMode16(HDC16,INT16);
INT32 SetBkMode32(HDC32,INT32);
#define SetBkMode WINELIB_NAME(SetBkMode)
HWND16 SetCapture16(HWND16);
HWND32 SetCapture32(HWND32);
#define SetCapture WINELIB_NAME(SetCapture)
VOID SetCaretBlinkTime16(UINT16);
BOOL32 SetCaretBlinkTime32(UINT32);
#define SetCaretBlinkTime WINELIB_NAME(SetCaretBlinkTime)
VOID SetCaretPos16(INT16,INT16);
BOOL32 SetCaretPos32(INT32,INT32);
#define SetCaretPos WINELIB_NAME(SetCaretPos)
LONG SetClassLong16(HWND16,INT16,LONG);
LONG SetClassLong32A(HWND32,INT32,LONG);
LONG SetClassLong32W(HWND32,INT32,LONG);
#define SetClassLong WINELIB_NAME_AW(SetClassLong)
WORD SetClassWord16(HWND16,INT16,WORD);
WORD SetClassWord32(HWND32,INT32,WORD);
#define SetClassWord WINELIB_NAME(SetClassWord)
HANDLE16 SetClipboardData16(UINT16,HANDLE16);
HANDLE32 SetClipboardData32(UINT32,HANDLE32);
#define SetClipboardData WINELIB_NAME(SetClipboardData)
HWND16 SetClipboardViewer16(HWND16);
HWND32 SetClipboardViewer32(HWND32);
#define SetClipboardViewer WINELIB_NAME(SetClipboardViewer)
@ -6642,6 +6894,9 @@ void SetRect32(LPRECT32,INT32,INT32,INT32,INT32);
void SetRectEmpty16(LPRECT16);
void SetRectEmpty32(LPRECT32);
#define SetRectEmpty WINELIB_NAME(SetRectEmpty)
VOID SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
VOID SetRectRgn32(HRGN32,INT32,INT32,INT32,INT32);
#define SetRectRgn WINELIB_NAME(SetRectRgn)
INT16 SetRelAbs16(HDC16,INT16);
INT32 SetRelAbs32(HDC32,INT32);
#define SetRelAbs WINELIB_NAME(SetRelAbs)
@ -6684,6 +6939,9 @@ UINT32 SetTextAlign32(HDC32,UINT32);
INT16 SetTextCharacterExtra16(HDC16,INT16);
INT32 SetTextCharacterExtra32(HDC32,INT32);
#define SetTextCharacterExtra WINELIB_NAME(SetTextCharacterExtra)
COLORREF SetTextColor16(HDC16,COLORREF);
COLORREF SetTextColor32(HDC32,COLORREF);
#define SetTextColor WINELIB_NAME(SetTextColor)
INT16 SetTextJustification16(HDC16,INT16,INT16);
BOOL32 SetTextJustification32(HDC32,INT32,INT32);
#define SetTextJustification WINELIB_NAME(SetTextJustification)
@ -6742,11 +7000,18 @@ void SetWindowText16(HWND16,SEGPTR);
void SetWindowText32A(HWND32,LPCSTR);
void SetWindowText32W(HWND32,LPCWSTR);
#define SetWindowText WINELIB_NAME_AW(SetWindowText)
WORD SetWindowWord16(HWND16,INT16,WORD);
WORD SetWindowWord32(HWND32,INT32,WORD);
#define SetWindowWord WINELIB_NAME(SetWindowWord)
BOOL16 ShellAbout16(HWND16,LPCSTR,LPCSTR,HICON16);
BOOL32 ShellAbout32A(HWND32,LPCSTR,LPCSTR,HICON32);
BOOL32 ShellAbout32W(HWND32,LPCWSTR,LPCWSTR,HICON32);
#define ShellAbout WINELIB_NAME_AW(ShellAbout)
BOOL16 ShowCaret16(HWND16);
HINSTANCE16 ShellExecute16(HWND16,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT16);
HINSTANCE32 ShellExecute32A(HWND32,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT32);
HINSTANCE32 ShellExecute32W(HWND32,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT32);
#define ShellExecute WINELIB_NAME_AW(ShellExecute)
VOID ShowCaret16(HWND16);
BOOL32 ShowCaret32(HWND32);
#define ShowCaret WINELIB_NAME(ShowCaret)
INT16 ShowCursor16(BOOL16);
@ -6838,8 +7103,14 @@ BOOL16 UnregisterClass16(SEGPTR,HINSTANCE16);
BOOL32 UnregisterClass32A(LPCSTR,HINSTANCE32);
BOOL32 UnregisterClass32W(LPCWSTR,HINSTANCE32);
#define UnregisterClass WINELIB_NAME_AW(UnregisterClass)
void ValidateRect16(HWND16,const RECT16*);
void ValidateRect32(HWND32,const RECT32*);
INT16 UpdateColors16(HDC16);
BOOL32 UpdateColors32(HDC32);
#define UpdateColors WINELIB_NAME(UpdateColors)
VOID UpdateWindow16(HWND16);
VOID UpdateWindow32(HWND32);
#define UpdateWindow WINELIB_NAME(UpdateWindow)
VOID ValidateRect16(HWND16,const RECT16*);
VOID ValidateRect32(HWND32,const RECT32*);
#define ValidateRect WINELIB_NAME(ValidateRect)
VOID ValidateRgn16(HWND16,HRGN16);
VOID ValidateRgn32(HWND32,HRGN32);
@ -6963,6 +7234,7 @@ INT32 LoadMessage32A(HINSTANCE32,UINT32,WORD,LPSTR,INT32);
INT32 LoadMessage32W(HINSTANCE32,UINT32,WORD,LPWSTR,INT32);
SEGPTR WIN16_GlobalLock16(HGLOBAL16);
SEGPTR WIN16_LockResource(HGLOBAL16);
LONG WIN16_hread(HFILE16,SEGPTR,LONG);
INT32 lstrncmp32A(LPCSTR,LPCSTR,INT32);
INT32 lstrncmp32W(LPCWSTR,LPCWSTR,INT32);
INT32 lstrncmpi32A(LPCSTR,LPCSTR,INT32);
@ -6972,65 +7244,6 @@ LPSTR lstrcpyWtoA(LPSTR,LPCWSTR);
LPWSTR lstrcpynAtoW(LPWSTR,LPCSTR,INT32);
LPSTR lstrcpynWtoA(LPSTR,LPCWSTR,INT32);
/* Library data types defined as a transition aid for the emulator. */
/* These should _not_ be used in the emulator and will be removed someday. */
#ifndef NO_TRANSITION_TYPES
#ifdef __WINE__
# ifdef WINELIB32
typedef INT32 INT;
typedef UINT32 UINT;
typedef BOOL32 BOOL;
# else /* WINELIB32 */
typedef INT16 INT;
typedef UINT16 UINT;
typedef BOOL16 BOOL;
# endif /* WINELIB32 */
#endif /* __WINE__ */
INT AddFontResource(LPCSTR);
int ConvertRequest(HWND16,LPKANJISTRUCT);
DWORD DragObject(HWND16, HWND16, WORD, HANDLE16, WORD, HCURSOR16);
BOOL EnumMetaFile(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
HICON16 ExtractIcon(HINSTANCE16,LPCSTR,WORD);
HINSTANCE16 FindExecutable(LPCSTR,LPCSTR,LPSTR);
void FreeLibrary(HINSTANCE16);
HANDLE16 GetClipboardData(WORD);
int GetClipboardFormatName(WORD,LPSTR,short);
int GetEnvironment(LPSTR,LPSTR,WORD);
int GetKerningPairs(HDC16,int,LPKERNINGPAIR16);
BOOL GetMessage(SEGPTR,HWND16,UINT,UINT);
HMODULE16 GetModuleHandle(LPCSTR);
INT16 GetModuleUsage(HINSTANCE16);
int GetPriorityClipboardFormat(WORD*,short);
DWORD GetQueueStatus(UINT);
BOOL GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
HINSTANCE16 LoadModule(LPCSTR,LPVOID);
void OutputDebugString(LPCSTR);
void PlayMetaFileRecord(HDC16,LPHANDLETABLE16,LPMETARECORD,WORD);
BOOL PostMessage(HWND16,WORD,WORD,LONG);
BOOL RemoveFontResource(LPSTR);
void ReplyMessage(LRESULT);
HANDLE16 SetClipboardData(WORD,HANDLE16);
int SetEnvironment(LPCSTR,LPCSTR,WORD);
HINSTANCE16 ShellExecute(HWND16,LPCSTR,LPCSTR,LPSTR,LPCSTR,INT);
int UpdateColors(HDC16);
/* Callback function pointers types. */
#ifdef WINELIB
typedef LONG (*DRIVERPROC)(DWORD, HDRVR16, UINT, LPARAM, LPARAM);
typedef int (*EDITWORDBREAKPROC)(LPSTR lpch, int ichCurrent, int cch,int code);
#else
typedef SEGPTR DRIVERPROC;
typedef SEGPTR EDITWORDBREAKPROC;
#endif
#endif /* NO_TRANSITION_TYPES */
#define WINELIB_UNIMP(x) fprintf (stderr, "WineLib: Unimplemented %s\n", x)
#ifdef __cplusplus
}
#endif

View File

@ -21,6 +21,7 @@ extern int WIN32_LastError;
#define ERROR_OUTOFMEMORY 14
#define ERROR_NO_MORE_FILES 18
#define ERROR_SHARING_VIOLATION 32
#define ERROR_DUP_NAME 52
#define ERROR_FILE_EXISTS 80
#define ERROR_INVALID_PARAMETER 87
#define ERROR_BROKEN_PIPE 109
@ -29,6 +30,7 @@ extern int WIN32_LastError;
#define ERROR_SEEK_ON_DEVICE 132
#define ERROR_DIR_NOT_EMPTY 145
#define ERROR_BUSY 170
#define ERROR_ALREADY_EXISTS 183
#define ERROR_FILENAME_EXCED_RANGE 206
#define ERROR_MORE_DATA 234
#define ERROR_NO_MORE_ITEMS 259

View File

@ -499,7 +499,7 @@ typedef struct __WSINFO
struct __WSINFO* prev,*next;
unsigned flags;
int errno;
int err;
INT16 num_startup;
INT16 num_async_rq;
INT16 last_free;

View File

@ -168,6 +168,13 @@ DECLARE_HANDLE(HWND);
typedef LRESULT (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
typedef LRESULT (*DLGPROC32)(HWND32,UINT32,WPARAM32,LPARAM);
DECL_WINELIB_TYPE(DLGPROC);
typedef LRESULT (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM);
typedef LRESULT (*DRIVERPROC32)(DWORD,HDRVR32,UINT32,LPARAM,LPARAM);
DECL_WINELIB_TYPE(DRIVERPROC);
typedef INT16 (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16);
typedef INT32 (*EDITWORDBREAKPROC32A)(LPSTR,INT32,INT32,INT32);
typedef INT32 (*EDITWORDBREAKPROC32W)(LPWSTR,INT32,INT32,INT32);
DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC);
typedef LRESULT (*FARPROC16)();
typedef LRESULT (*FARPROC32)();
DECL_WINELIB_TYPE(FARPROC);

View File

@ -148,7 +148,7 @@ void dde_proc_add(dde_proc procs)
}
/* wait for dde - acknowledge message - or timout */
static BOOL get_ack()
static BOOL32 get_ack()
{
struct timeval timeout;
int size;
@ -186,7 +186,7 @@ static BOOL get_ack()
}
/* Transfer one message to a given process */
static BOOL DDE_DoOneMessage (int proc_idx, int size, struct msgbuf *msgbuf)
static BOOL32 DDE_DoOneMessage (int proc_idx, int size, struct msgbuf *msgbuf)
{
dde_proc proc= &main_block->proc[ proc_idx ];
@ -290,13 +290,13 @@ static HWND HWND_Local2Remote(HWND orig)
return 0;
}
static BOOL DDE_DoMessage( MSG16 *msg, int type )
static BOOL32 DDE_DoMessage( MSG16 *msg, int type )
{
int proc_idx;
MSG16 *remote_message;
struct msg_dat msg_dat;
BOOL success;
BOOL32 success;
if (msg->wParam == 0)
return FALSE;
@ -346,18 +346,18 @@ static BOOL DDE_DoMessage( MSG16 *msg, int type )
}
}
BOOL DDE_SendMessage( MSG16 *msg)
BOOL32 DDE_SendMessage( MSG16 *msg)
{
return DDE_DoMessage(msg, DDE_SEND);
}
BOOL DDE_PostMessage( MSG16 *msg)
BOOL32 DDE_PostMessage( MSG16 *msg)
{
return DDE_DoMessage(msg, DDE_POST);
}
void dde_proc_send_ack(HWND wnd, BOOL val) {
void dde_proc_send_ack(HWND wnd, BOOL32 val) {
int proc,msg;
static struct msgbuf msg_ack={DDE_ACK,{'0'}};
@ -384,8 +384,8 @@ int DDE_GetRemoteMessage()
MSG16 *remote_message;
int size;
struct msg_dat msg_dat;
BOOL was_sent; /* sent/received */
BOOL passed;
BOOL32 was_sent; /* sent/received */
BOOL32 passed;
WND *wndPtr;
if (curr_proc_idx==-1) /* do we have DDE initialized ? */
@ -667,7 +667,7 @@ void dde_wnd_setup()
main_block->windows[i].proc_idx = FREE_WND;
}
static BOOL DDE_ProcHasWindows(int proc_idx)
static BOOL32 DDE_ProcHasWindows(int proc_idx)
{
WND_DATA *tested;
int i;

View File

@ -24,12 +24,12 @@
(i)*(size)) )
static HASH_ITEM *locate_entry(HASH_CONTAINER* hash, DWORD key,
HASH_VAL *seeked_data, BOOL skip_deleted);
HASH_VAL *seeked_data, BOOL32 skip_deleted);
static void copy_hash_items(HASH_CONTAINER *hash, HASH_ITEM *old_items,
int old_n_items);
static BOOL arrays_initialized = FALSE;
static BOOL32 arrays_initialized = FALSE;
static int primes[NO_OF_PRIMES];
static int best_primes[NO_OF_PRIMES];
static int no_of_primes;
@ -37,7 +37,7 @@ static int no_of_best_primes;
static int max_num;
/* binary search for `num' in the `primes' array */
static BOOL prime_binary_search_found(int num)
static BOOL32 prime_binary_search_found(int num)
{
int min_idx, max_idx, idx;
@ -56,7 +56,7 @@ static BOOL prime_binary_search_found(int num)
return FALSE;
}
static BOOL is_prime(int num)
static BOOL32 is_prime(int num)
{
int i;
if ((num & 0x1) == 0) /* can be divided by 2 */
@ -218,7 +218,7 @@ static void setup_arrays()
static void static_collect_garbge(HASH_CONTAINER *hash)
{
int i;
BOOL change;
BOOL32 change;
HASH_ITEM *items;
HASH_ITEM *located;
HASH_ITEM *item;
@ -516,9 +516,9 @@ void detach_hash(HASH_CONTAINER *hash)
/********** Hash usage *************/
static __inline__ BOOL
static __inline__ BOOL32
correct_entry(HASH_ITEM *item, int key, HASH_VAL *seeked_data,
HASH_ITEM_TEST *is_correct_item, BOOL skip_deleted)
HASH_ITEM_TEST *is_correct_item, BOOL32 skip_deleted)
{
switch(item->key) {
case FREE_ENTRY:
@ -549,7 +549,7 @@ correct_entry(HASH_ITEM *item, int key, HASH_VAL *seeked_data,
*/
static HASH_ITEM *locate_entry(HASH_CONTAINER* hash, DWORD key,
HASH_VAL *seeked_data, BOOL skip_deleted)
HASH_VAL *seeked_data, BOOL32 skip_deleted)
{
DWORD hash_idx, hash_leaps;
HASH_ITEM *item;
@ -619,7 +619,7 @@ HASH_VAL *hash_locate_item(HASH_CONTAINER* hash,
}
BOOL hash_add_item(HASH_CONTAINER* hash, int key, HASH_VAL *data)
BOOL32 hash_add_item(HASH_CONTAINER* hash, int key, HASH_VAL *data)
{
HASH_SHARED *shared;
HASH_ITEM *item;
@ -649,7 +649,7 @@ BOOL hash_add_item(HASH_CONTAINER* hash, int key, HASH_VAL *data)
}
BOOL hash_delete_item(HASH_CONTAINER* hash, int key, HASH_VAL *seeked_data)
BOOL32 hash_delete_item(HASH_CONTAINER* hash, int key, HASH_VAL *seeked_data)
{
HASH_ITEM *item;

View File

@ -48,7 +48,7 @@ typedef struct hash_share_struct {
/* changes to the pointer. */
HASH_PTR items; /* pointer to the items */
} HASH_SHARED;
typedef BOOL HASH_ITEM_TEST(HASH_VAL *value, HASH_VAL *seeked_data);
typedef BOOL32 HASH_ITEM_TEST(HASH_VAL *value, HASH_VAL *seeked_data);
/* NOTE:
* 1. Keys 0 and -1 are reserved.
@ -62,7 +62,7 @@ typedef struct hash_container_struct {
(Function of maximum_load) */
int last_ptr_update; /* to be compared with shared.ptr_updates */
BOOL shared_was_malloced; /* Need that to know how to destroy hash */
BOOL32 shared_was_malloced; /* Need that to know how to destroy hash */
/* This is an optional handler.
* If not NULL, this function is used for distinguishing between
@ -129,8 +129,8 @@ void detach_hash(HASH_CONTAINER *hash);
* 2. data to store. (for hash_add_item).
*/
HASH_VAL *hash_locate_item(HASH_CONTAINER* hash,int key, HASH_VAL* seeked_data);
BOOL hash_add_item(HASH_CONTAINER* hash, int key, HASH_VAL* data);
BOOL hash_delete_item(HASH_CONTAINER* hash, int key, HASH_VAL* seeked_data);
BOOL32 hash_add_item(HASH_CONTAINER* hash, int key, HASH_VAL* data);
BOOL32 hash_delete_item(HASH_CONTAINER* hash, int key, HASH_VAL* seeked_data);
void *ret_null(); /* function returning null (used for */

View File

@ -58,7 +58,7 @@ HRSRC32 LIBRES_FindResource16( HINSTANCE32 hModule, LPCSTR name, LPCSTR type )
typeid=atoi(type+1);
else
{
WINELIB_UNIMP("LIBRES_FindResource16(*,*,type=string)");
fprintf(stderr,"LIBRES_FindResource16(*,*,type=string)");
return 0;
}
}
@ -112,7 +112,7 @@ HRSRC32 LIBRES_FindResource32( HINSTANCE32 hModule, LPCWSTR name, LPCWSTR type )
}
else
{
WINELIB_UNIMP("LIBRES_FindResource32(*,*,type=string)");
fprintf(stderr,"LIBRES_FindResource32(*,*,type=string)");
return 0;
}
}
@ -154,7 +154,7 @@ LPVOID LIBRES_LockResource( HGLOBAL32 handle )
/**********************************************************************
* LIBRES_FreeResource
*/
BOOL LIBRES_FreeResource( HGLOBAL32 handle )
BOOL32 LIBRES_FreeResource( HGLOBAL32 handle )
{
return 0; /* Obsolete in Win32 */
}
@ -165,7 +165,7 @@ BOOL LIBRES_FreeResource( HGLOBAL32 handle )
*/
INT32 LIBRES_AccessResource( HINSTANCE32 hModule, HRSRC32 hRsrc )
{
WINELIB_UNIMP("LIBRES_AccessResource()");
fprintf(stderr,"LIBRES_AccessResource()");
return -1; /* Obsolete in Win32 */
}
@ -184,7 +184,7 @@ DWORD LIBRES_SizeofResource( HINSTANCE32 hModule, HRSRC32 hRsrc )
*/
HGLOBAL32 LIBRES_AllocResource( HINSTANCE32 hModule, HRSRC32 hRsrc, DWORD size)
{
WINELIB_UNIMP("LIBRES_AllocResource()");
fprintf(stderr,"LIBRES_AllocResource()");
return 0; /* Obsolete in Win32 */
}

View File

@ -45,18 +45,18 @@ int CallTo32_LargeStack( int (*func)(), int nbargs, ...)
}
}
extern LRESULT ColorDlgProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT ComboBoxWndProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT ComboLBoxWndProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT FileOpenDlgProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT FileSaveDlgProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT FindTextDlgProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT MDIClientWndProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT PrintDlgProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT PrintSetupDlgProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT ReplaceTextDlgProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT ScrollBarWndProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT StaticWndProc(HWND16,UINT,WPARAM16,LPARAM);
extern LRESULT ColorDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT ComboBoxWndProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT ComboLBoxWndProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT FileOpenDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT FileSaveDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT FindTextDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT MDIClientWndProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT PrintDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT PrintSetupDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT ReplaceTextDlgProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT ScrollBarWndProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT StaticWndProc(HWND16,UINT16,WPARAM16,LPARAM);
extern LRESULT TASK_Reschedule(void);
/***********************************************************************

View File

@ -60,10 +60,14 @@ int MAIN_Init(void)
extern BOOL32 RELAY_Init(void);
extern BOOL32 WIN16DRV_Init(void);
extern BOOL32 SIGNAL_Init(void);
extern BOOL32 VIRTUAL_Init(void);
extern BOOL32 WIDGETS_Init(void);
int queueSize;
/* Initialize virtual memory management */
if (!VIRTUAL_Init()) return 0;
/* Create the system and SEGPTR heaps */
if (!(SystemHeap = HeapCreate( HEAP_GROWABLE, 0x10000, 0 ))) return 0;
if (!(SegptrHeap = HeapCreate( HEAP_WINE_SEGPTR, 0, 0 ))) return 0;

View File

@ -848,7 +848,7 @@ FARPROC16 MODULE_GetWndProcEntry16( const char *name )
FARPROC16 ret;
static HMODULE16 hModule = 0;
if (!hModule) hModule = GetModuleHandle( "WPROCS" );
if (!hModule) hModule = GetModuleHandle16( "WPROCS" );
ordinal = MODULE_GetOrdinal( hModule, name );
if (!(ret = MODULE_GetEntryPoint( hModule, ordinal )))
fprintf( stderr, "GetWndProc16: %s not found, please report\n", name );
@ -1129,7 +1129,7 @@ HINSTANCE16 MODULE_Load( LPCSTR name, LPVOID paramBlock, BOOL32 first )
SEGTABLEENTRY * pSegTable = (SEGTABLEENTRY *) NE_SEG_TABLE(pModule);
SELFLOADHEADER *selfloadheader;
STACK16FRAME *stack16Top;
HMODULE16 hselfload = GetModuleHandle("WPROCS");
HMODULE16 hselfload = GetModuleHandle16("WPROCS");
WORD oldss, oldsp, saved_dgroup = pSegTable[pModule->dgroup - 1].selector;
fprintf (stderr, "Warning: %*.*s is a self-loading module\n"
"Support for self-loading modules is very experimental\n",
@ -1142,7 +1142,7 @@ HINSTANCE16 MODULE_Load( LPCSTR name, LPVOID paramBlock, BOOL32 first )
selfloadheader->EntryAddrProc =
MODULE_GetEntryPoint(hselfload,27);
selfloadheader->MyAlloc = MODULE_GetEntryPoint(hselfload,28);
selfloadheader->SetOwner = MODULE_GetEntryPoint(GetModuleHandle("KERNEL"),403);
selfloadheader->SetOwner = MODULE_GetEntryPoint(GetModuleHandle16("KERNEL"),403);
pModule->self_loading_sel = GlobalHandleToSel(
GLOBAL_Alloc (GMEM_ZEROINIT,
0xFF00, hModule, FALSE, FALSE, FALSE)
@ -1262,9 +1262,9 @@ HINSTANCE16 MODULE_Load( LPCSTR name, LPVOID paramBlock, BOOL32 first )
/**********************************************************************
* LoadModule (KERNEL.45)
* LoadModule16 (KERNEL.45)
*/
HINSTANCE16 LoadModule( LPCSTR name, LPVOID paramBlock )
HINSTANCE16 LoadModule16( LPCSTR name, LPVOID paramBlock )
{
return MODULE_Load( name, paramBlock, TRUE );
}
@ -1288,7 +1288,7 @@ BOOL16 FreeModule16( HMODULE16 hModule )
/**********************************************************************
* GetModuleHandle (KERNEL.47)
* GetModuleHandle16 (KERNEL.47)
*/
HMODULE16 WIN16_GetModuleHandle( SEGPTR name )
{
@ -1296,7 +1296,7 @@ HMODULE16 WIN16_GetModuleHandle( SEGPTR name )
return MODULE_FindModule( PTR_SEG_TO_LIN(name) );
}
HMODULE16 GetModuleHandle( LPCSTR name )
HMODULE16 GetModuleHandle16( LPCSTR name )
{
return MODULE_FindModule( name );
}
@ -1410,9 +1410,9 @@ HINSTANCE16 LoadLibrary16( LPCSTR libname )
/***********************************************************************
* FreeLibrary (KERNEL.96)
* FreeLibrary16 (KERNEL.96)
*/
void FreeLibrary( HINSTANCE16 handle )
void FreeLibrary16( HINSTANCE16 handle )
{
dprintf_module( stddeb,"FreeLibrary: %04x\n", handle );
FreeModule16( handle );
@ -1477,7 +1477,7 @@ HINSTANCE32 WinExec32( LPCSTR lpCmdLine, UINT32 nCmdShow )
params.cmdLine = (SEGPTR)WIN16_GlobalLock16( cmdLineHandle );
params.showCmd = (SEGPTR)WIN16_GlobalLock16( cmdShowHandle );
params.reserved = 0;
handle = LoadModule( filename, &params );
handle = LoadModule16( filename, &params );
if (handle == 2) /* file not found */
{
/* Check that the original file name did not have a suffix */
@ -1487,7 +1487,7 @@ HINSTANCE32 WinExec32( LPCSTR lpCmdLine, UINT32 nCmdShow )
{
p = filename + strlen(filename);
strcpy( p, ".exe" );
handle = LoadModule( filename, &params );
handle = LoadModule16( filename, &params );
*p = '\0'; /* Remove extension */
}
}
@ -1675,7 +1675,7 @@ BOOL16 ModuleNext( MODULEENTRY *lpme )
*/
BOOL16 ModuleFindName( MODULEENTRY *lpme, LPCSTR name )
{
lpme->wNext = GetModuleHandle( name );
lpme->wNext = GetModuleHandle16( name );
return ModuleNext( lpme );
}

View File

@ -31,7 +31,7 @@
/***********************************************************************
* NE_LoadSegment
*/
BOOL NE_LoadSegment( HMODULE16 hModule, WORD segnum )
BOOL32 NE_LoadSegment( HMODULE16 hModule, WORD segnum )
{
NE_MODULE *pModule;
SEGTABLEENTRY *pSegTable, *pSeg;
@ -62,8 +62,8 @@ BOOL NE_LoadSegment( HMODULE16 hModule, WORD segnum )
lseek( fd, pSeg->filepos << pModule->alignment, SEEK_SET );
size = pSeg->size ? pSeg->size : 0x10000;
mem = GlobalLock16(pSeg->selector);
if (pModule->flags & NE_FFLAGS_SELFLOAD && segnum > 1) {
#ifndef WINELIB
if (pModule->flags & NE_FFLAGS_SELFLOAD && segnum > 1)
{
/* Implement self loading segments */
SELFLOADHEADER *selfloadheader;
STACK16FRAME *stack16Top;
@ -110,10 +110,7 @@ BOOL NE_LoadSegment( HMODULE16 hModule, WORD segnum )
IF1632_Saved16_ss = oldss;
IF1632_Saved16_sp = oldsp;
#else
fprintf(stderr,"JBP: Ignoring self loading segments in NE_LoadSegment.\n");
#endif
}
}
else if (!(pSeg->flags & NE_SEGFLAGS_ITERATED))
read(fd, mem, size);
else {
@ -362,9 +359,6 @@ BOOL NE_LoadSegment( HMODULE16 hModule, WORD segnum )
*/
void NE_FixupPrologs( NE_MODULE *pModule )
{
#ifdef WINELIB
fprintf(stderr,"NE_FixupPrologs should not be called for libwine\n");
#else
SEGTABLEENTRY *pSegTable;
WORD dgroup = 0;
WORD sel;
@ -443,7 +437,6 @@ void NE_FixupPrologs( NE_MODULE *pModule )
p += (sel == 0xff) ? 6 : 3;
}
}
#endif
}
@ -452,12 +445,11 @@ void NE_FixupPrologs( NE_MODULE *pModule )
*
* Call the DLL initialization code
*/
static BOOL NE_InitDLL( HMODULE16 hModule )
static BOOL32 NE_InitDLL( HMODULE16 hModule )
{
#ifndef WINELIB
int cs_reg, ds_reg, ip_reg, cx_reg, di_reg, bp_reg;
NE_MODULE *pModule;
SEGTABLEENTRY *pSegTable;
CONTEXT context;
/* Registers at initialization must be:
* cx heap size
@ -473,6 +465,8 @@ static BOOL NE_InitDLL( HMODULE16 hModule )
(pModule->flags & NE_FFLAGS_WIN32)) return TRUE; /*not a library*/
if (!pModule->cs) return TRUE; /* no initialization code */
memset( &context, 0, sizeof(context) );
if (!(pModule->flags & NE_FFLAGS_SINGLEDATA))
{
if (pModule->flags & NE_FFLAGS_MULTIPLEDATA || pModule->dgroup)
@ -483,31 +477,28 @@ static BOOL NE_InitDLL( HMODULE16 hModule )
}
else /* DATA NONE DLL */
{
ds_reg = 0;
cx_reg = 0;
DS_reg(&context) = 0;
ECX_reg(&context) = 0;
}
}
else /* DATA SINGLE DLL */
{
ds_reg = pSegTable[pModule->dgroup-1].selector;
cx_reg = pModule->heap_size;
DS_reg(&context) = pSegTable[pModule->dgroup-1].selector;
ECX_reg(&context) = pModule->heap_size;
}
cs_reg = pSegTable[pModule->cs-1].selector;
ip_reg = pModule->ip;
di_reg = ds_reg ? ds_reg : hModule;
bp_reg = IF1632_Saved16_sp + ((WORD)&((STACK16FRAME*)1)->bp - 1);
CS_reg(&context) = pSegTable[pModule->cs-1].selector;
EIP_reg(&context) = pModule->ip;
EBP_reg(&context) = IF1632_Saved16_sp + (WORD)&((STACK16FRAME*)0)->bp;
EDI_reg(&context) = DS_reg(&context) ? DS_reg(&context) : hModule;
pModule->cs = 0; /* Don't initialize it twice */
dprintf_dll( stddeb, "Calling LibMain, cs:ip=%04x:%04x ds=%04x di=%04x cx=%04x\n",
cs_reg, ip_reg, ds_reg, di_reg, cx_reg );
return CallTo16_regs_( (FARPROC16)(cs_reg << 16 | ip_reg), ds_reg,
0 /*es*/, 0 /*bp*/, 0 /*ax*/, 0 /*bx*/,
cx_reg, 0 /*dx*/, 0 /*si*/, di_reg );
#else
fprintf( stderr,"JBP: Ignoring call to LibMain\n" );
return FALSE;
#endif
dprintf_dll( stddeb, "Calling LibMain, cs:ip=%04lx:%04x ds=%04lx di=%04x cx=%04x\n",
CS_reg(&context), IP_reg(&context), DS_reg(&context),
DI_reg(&context), CX_reg(&context) );
CallTo16_regs_( &context );
return TRUE;
}

View File

@ -406,9 +406,9 @@ problem needs to be fixed properly at some stage */
load_addr = pe->load_addr = (int)xmalloc(pe->vma_size);
memset( load_addr, 0, pe->vma_size);
#else
load_addr = pe->load_addr = VirtualAlloc( NULL, pe->vma_size,
MEM_COMMIT,
PAGE_EXECUTE_READWRITE );
load_addr = (int) VirtualAlloc( NULL, pe->vma_size, MEM_COMMIT,
PAGE_EXECUTE_READWRITE );
pe->load_addr = load_addr;
#endif
dprintf_win32(stddeb, "Load addr is really %x, range %x\n",
@ -510,9 +510,11 @@ problem needs to be fixed properly at some stage */
[IMAGE_DIRECTORY_ENTRY_GLOBALPTR].Size)
dprintf_win32(stdnimp,"Global Pointer (MIPS) ignored\n");
#ifdef NOT /* we initialize this later */
if(pe->pe_header->OptionalHeader.DataDirectory
[IMAGE_DIRECTORY_ENTRY_TLS].Size)
dprintf_win32(stdnimp,"Thread local storage ignored\n");
#endif
if(pe->pe_header->OptionalHeader.DataDirectory
[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size)
@ -647,4 +649,30 @@ void PE_InitializeDLLs(HMODULE16 hModule)
}
PE_InitDLL( hModule );
}
void PE_InitTls( PE_MODULE *module )
{
/* FIXME: tls callbacks ??? */
DWORD index;
DWORD datasize;
DWORD size;
LPVOID mem;
LPIMAGE_TLS_DIRECTORY pdir;
if (!module->pe_header->OptionalHeader.DataDirectory[IMAGE_FILE_THREAD_LOCAL_STORAGE].VirtualAddress)
return;
pdir = (LPVOID)(module->load_addr + module->pe_header->OptionalHeader.
DataDirectory[IMAGE_FILE_THREAD_LOCAL_STORAGE].VirtualAddress);
index = TlsAlloc();
datasize = pdir->EndAddressOfRawData-pdir->StartAddressOfRawData;
size = datasize + pdir->SizeOfZeroFill;
mem = VirtualAlloc(0,size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE );
memcpy(mem,(LPVOID) pdir->StartAddressOfRawData, datasize);
TlsSetValue(index,mem);
*(pdir->AddressOfIndex)=index;
}
#endif /* WINELIB */

View File

@ -11,6 +11,7 @@
* Copyright 1997 Marcus Meissner
*/
#include <stdlib.h>
#include <sys/types.h>
#include "wintypes.h"
#include "windows.h"
@ -54,7 +55,12 @@ LPIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(LPIMAGE_RESOURCE_DIRECTORY resdirptr,
int namelen;
if (HIWORD(name)) {
/* FIXME: what about #xxx names? */
if (name[0]=='#') {
char buf[10];
lstrcpynWtoA(buf,name+1,10);
return GetResDirEntryW(resdirptr,(LPCWSTR)atoi(buf),root);
}
entryTable = (LPIMAGE_RESOURCE_DIRECTORY_ENTRY) (
(BYTE *) resdirptr +
sizeof(IMAGE_RESOURCE_DIRECTORY));

View File

@ -111,9 +111,15 @@ HRSRC32 FindResourceEx32W(
if (!hModule) hModule = GetTaskDS();
hModule = GetExePtr( hModule ); /* In case we were passed an hInstance */
dprintf_resource(stddeb, "FindResource32W: module=%08x type=", hModule );
PrintId( type );
if (HIWORD(type))
dprintf_resource(stddeb,"%p",type);
else
dprintf_resource(stddeb,"#%p",type);
dprintf_resource( stddeb, " name=" );
PrintId( name );
if (HIWORD(name))
dprintf_resource(stddeb,"%p",name);
else
dprintf_resource(stddeb,"#%p",name);
dprintf_resource( stddeb, "\n" );
if (!(pModule = MODULE_GetPtr( hModule ))) return 0;
if (!(pModule->flags & NE_FFLAGS_WIN32)) return 0;

View File

@ -48,6 +48,21 @@ wine_sigaction(int sig,struct sigaction * new, struct sigaction * old)
errno = -sig;
return -1;
}
#endif /* linux */
#ifdef linux
#define HANDLER_DEF(name) void name (int signal, SIGCONTEXT context_struct)
#define HANDLER_PROLOG SIGCONTEXT *context = &context_struct; (void)context; {
#define HANDLER_EPILOG }
#elif defined(__svr4__) || defined(_SCO_DS)
#define HANDLER_DEF(name) void name (int signal, void *siginfo, SIGCONTEXT *context)
#define HANDLER_PROLOG /* nothing */
#define HANDLER_EPILOG /* nothing */
#else
#define HANDLER_DEF(name) void name (int signal, int code, SIGCONTEXT *context)
#define HANDLER_PROLOG /* nothing */
#define HANDLER_EPILOG /* nothing */
#endif
extern BOOL32 INSTR_EmulateInstruction( SIGCONTEXT *context );
@ -57,19 +72,13 @@ extern BOOL32 INSTR_EmulateInstruction( SIGCONTEXT *context );
*
* SIGALRM handler.
*/
#ifdef linux
static void wine_timer(int signal, SIGCONTEXT context_struct)
static
HANDLER_DEF(wine_timer)
{
#elif defined(__svr4__)
static void wine_timer(int signal, void *siginfo, SIGCONTEXT *context)
{
#else
static void wine_timer(int signal, int code, SIGCONTEXT *context)
{
#endif
/* Should do real-time timers here */
DOSMEM_Tick();
HANDLER_PROLOG;
/* Should do real-time timers here */
DOSMEM_Tick();
HANDLER_EPILOG;
}
/**********************************************************************
@ -77,19 +86,13 @@ static void wine_timer(int signal, int code, SIGCONTEXT *context)
*
* Handle Ctrl-C and such
*/
#ifdef linux
static void SIGNAL_break(int signal, SIGCONTEXT context_struct)
static
HANDLER_DEF(SIGNAL_break)
{
SIGCONTEXT *context = &context_struct;
#elif defined(__svr4__) || defined(_SCO_DS)
static void SIGNAL_break(int signal, void *siginfo, SIGCONTEXT *context)
{
#else
static void SIGNAL_break(int signal, int code, SIGCONTEXT *context)
{
#endif
if (Options.debug) wine_debug( signal, context ); /* Enter our debugger */
exit(0);
HANDLER_PROLOG;
if (Options.debug) wine_debug( signal, context ); /* Enter our debugger */
exit(0);
HANDLER_EPILOG;
}
/**********************************************************************
@ -97,13 +100,19 @@ static void SIGNAL_break(int signal, int code, SIGCONTEXT *context)
*
* wait4 terminated child processes
*/
static void SIGNAL_child(void)
static
HANDLER_DEF(SIGNAL_child)
{
#if defined(__svr4__) || defined(__EMX__)
wait(NULL);
HANDLER_PROLOG;
#ifdef HAVE_WAIT4
wait4( 0, NULL, WNOHANG, NULL);
#elif defined (HAVE_WAITPID)
/* I am sort-of guessing that this is the same as the wait4 call. */
waitpid (0, NULL, WNOHANG);
#else
wait4( 0, NULL, WNOHANG, NULL);
wait(NULL);
#endif
HANDLER_EPILOG;
}
@ -112,18 +121,12 @@ static void SIGNAL_child(void)
*
* SIGTRAP handler.
*/
#ifdef linux
static void SIGNAL_trap(int signal, SIGCONTEXT context_struct)
static
HANDLER_DEF(SIGNAL_trap)
{
SIGCONTEXT *context = &context_struct;
#elif defined(__svr4__) || defined(_SCO_DS)
static void SIGNAL_trap(int signal, void *siginfo, SIGCONTEXT *context)
{
#else
static void SIGNAL_trap(int signal, int code, SIGCONTEXT *context)
{
#endif
wine_debug( signal, context ); /* Enter our debugger */
HANDLER_PROLOG;
wine_debug( signal, context ); /* Enter our debugger */
HANDLER_EPILOG;
}
@ -132,30 +135,24 @@ static void SIGNAL_trap(int signal, int code, SIGCONTEXT *context)
*
* Segfault handler.
*/
#ifdef linux
static void SIGNAL_fault(int signal, SIGCONTEXT context_struct)
static
HANDLER_DEF(SIGNAL_fault)
{
SIGCONTEXT *context = &context_struct;
#elif defined(__svr4__) || defined(_SCO_DS)
static void SIGNAL_fault(int signal, void *siginfo, SIGCONTEXT *context)
{
#else
static void SIGNAL_fault(int signal, int code, SIGCONTEXT *context)
{
#endif
if (CS_sig(context) == WINE_CODE_SELECTOR)
HANDLER_PROLOG;
if (CS_sig(context) == WINE_CODE_SELECTOR)
{
fprintf( stderr, "Segmentation fault in Wine program (%x:%lx)."
" Please debug.\n",
CS_sig(context), EIP_sig(context) );
}
else
else
{
if (INSTR_EmulateInstruction( context )) return;
fprintf( stderr, "Segmentation fault in Windows program %x:%lx.\n",
CS_sig(context), EIP_sig(context) );
}
wine_debug( signal, context );
wine_debug( signal, context );
HANDLER_EPILOG;
}

View File

@ -40,6 +40,7 @@
#define MIN_THUNKS 32
extern void USER_AppExit( HTASK16, HINSTANCE16, HQUEUE16 );
extern void PE_InitTls( PE_MODULE *module );
/* Saved 16-bit stack for current process (Win16 only) */
WORD IF1632_Saved16_ss = 0;
@ -315,7 +316,7 @@ static SEGPTR TASK_AllocThunk( HTASK16 hTask )
*
* Free a MakeProcInstance() thunk.
*/
static BOOL TASK_FreeThunk( HTASK16 hTask, SEGPTR thunk )
static BOOL32 TASK_FreeThunk( HTASK16 hTask, SEGPTR thunk )
{
TDB *pTask;
THUNKS *pThunk;
@ -347,7 +348,6 @@ static BOOL TASK_FreeThunk( HTASK16 hTask, SEGPTR thunk )
#ifndef WINELIB
static void TASK_CallToStart(void)
{
int cs_reg, ds_reg, ip_reg;
int exit_code = 1;
TDB *pTask = (TDB *)GlobalLock16( hCurrentTask );
NE_MODULE *pModule = MODULE_GetPtr( pTask->hModule );
@ -384,19 +384,22 @@ static void TASK_CallToStart(void)
* ss stack selector
* sp top of the stack
*/
CONTEXT context;
cs_reg = pSegTable[pModule->cs - 1].selector;
ip_reg = pModule->ip;
ds_reg = pSegTable[pModule->dgroup - 1].selector;
memset( &context, 0, sizeof(context) );
CS_reg(&context) = pSegTable[pModule->cs - 1].selector;
DS_reg(&context) = pSegTable[pModule->dgroup - 1].selector;
ES_reg(&context) = pTask->hPDB;
EIP_reg(&context) = pModule->ip;
EBX_reg(&context) = pModule->stack_size;
ECX_reg(&context) = pModule->heap_size;
EDI_reg(&context) = context.SegDs;
dprintf_task( stddeb, "Starting main program: cs:ip=%04x:%04x ds=%04x ss:sp=%04x:%04x\n",
cs_reg, ip_reg, ds_reg,
IF1632_Saved16_ss, IF1632_Saved16_sp);
dprintf_task( stddeb, "Starting main program: cs:ip=%04lx:%04x ds=%04lx ss:sp=%04x:%04x\n",
CS_reg(&context), IP_reg(&context), DS_reg(&context),
IF1632_Saved16_ss, IF1632_Saved16_sp );
CallTo16_regs_( (FARPROC16)(cs_reg << 16 | ip_reg), ds_reg,
pTask->hPDB /*es*/, 0 /*bp*/, 0 /*ax*/,
pModule->stack_size /*bx*/, pModule->heap_size /*cx*/,
0 /*dx*/, 0 /*si*/, ds_reg /*di*/ );
CallTo16_regs_( &context );
/* This should never return */
fprintf( stderr, "TASK_CallToStart: Main program returned!\n" );
TASK_KillCurrentTask( 1 );
@ -498,7 +501,8 @@ HTASK16 TASK_CreateTask( HMODULE16 hModule, HINSTANCE16 hInstance,
pTask->pdb.int20 = 0x20cd;
pTask->pdb.dispatcher[0] = 0x9a; /* ljmp */
#ifndef WINELIB
*(FARPROC16 *)&pTask->pdb.dispatcher[1] = MODULE_GetEntryPoint( GetModuleHandle("KERNEL"), 102 ); /* KERNEL.102 is DOS3Call() */
*(FARPROC16 *)&pTask->pdb.dispatcher[1] = MODULE_GetEntryPoint(
GetModuleHandle16("KERNEL"), 102 ); /* KERNEL.102 is DOS3Call() */
#endif
pTask->pdb.savedint22 = INT_GetHandler( 0x22 );
pTask->pdb.savedint23 = INT_GetHandler( 0x23 );
@ -541,6 +545,11 @@ HTASK16 TASK_CreateTask( HMODULE16 hModule, HINSTANCE16 hInstance,
(LPTHREAD_START_ROUTINE)(pModule->pe_module->load_addr +
pModule->pe_module->pe_header->OptionalHeader.AddressOfEntryPoint);
pTask->thdb = THREAD_Create( pdb32, 0, start );
#ifndef WINELIB
/* FIXME: should not be done here */
pCurrentThread = pTask->thdb;
PE_InitTls( pModule->pe_module );
#endif
}
else
pTask->thdb = THREAD_Create( pdb32, 0, NULL );
@ -1501,9 +1510,18 @@ BOOL16 TaskFindHandle( TASKENTRY *lpte, HTASK16 hTask )
/***********************************************************************
* GetAppCompatFlags (KERNEL.354) (USER32.205)
* GetAppCompatFlags16 (KERNEL.354)
*/
DWORD GetAppCompatFlags( HTASK32 hTask )
DWORD GetAppCompatFlags16( HTASK16 hTask )
{
return GetAppCompatFlags32( hTask );
}
/***********************************************************************
* GetAppCompatFlags32 (USER32.205)
*/
DWORD GetAppCompatFlags32( HTASK32 hTask )
{
TDB *pTask;

View File

@ -1,4 +1,4 @@
DEFS = -D__WINE__ -DNO_TRANSITION_TYPES
DEFS = -D__WINE__
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ..
SRCDIR = @srcdir@
@ -12,7 +12,8 @@ C_SRCS = \
ldt.c \
local.c \
selector.c \
string.c
string.c \
virtual.c
all: $(MODULE).o

View File

@ -604,7 +604,7 @@ DWORD GlobalDOSAlloc(DWORD size)
if( lpBlock )
{
HMODULE16 hModule = GetModuleHandle("KERNEL");
HMODULE16 hModule = GetModuleHandle16("KERNEL");
WORD wSelector;
wSelector = GLOBAL_CreateBlock(GMEM_FIXED, lpBlock, size,

View File

@ -266,12 +266,12 @@ static BOOL32 HEAP_Decommit( SUBHEAP *subheap, void *ptr )
DWORD size = (DWORD)((char *)ptr - (char *)subheap);
size = (size + 0xfff) & 0xfffff000; /* Align size on a page boundary */
if (size >= subheap->commitSize) return TRUE;
if (!VirtualFree( (char *)subheap + subheap->commitSize,
size - subheap->commitSize, MEM_DECOMMIT ))
if (!VirtualFree( (char *)subheap + size,
subheap->commitSize - size, MEM_DECOMMIT ))
{
fprintf( stderr, "HEAP_Decommit: could not decommit %08lx bytes at %08lx for heap %08lx\n",
size - subheap->commitSize,
(DWORD)((char *)subheap + subheap->commitSize),
subheap->commitSize - size,
(DWORD)((char *)subheap + size),
(DWORD)subheap->heap );
return FALSE;
}
@ -382,7 +382,6 @@ static void HEAP_MakeInUseBlockFree( SUBHEAP *subheap, ARENA_INUSE *pArena )
/* Free the memory */
subheap->magic = 0;
if (subheap->selector) FreeSelector( subheap->selector );
VirtualFree( subheap, subheap->size, MEM_DECOMMIT );
VirtualFree( subheap, 0, MEM_RELEASE );
return;
}
@ -853,7 +852,6 @@ BOOL32 HeapDestroy( HANDLE32 heap )
{
SUBHEAP *next = subheap->next;
if (subheap->selector) FreeSelector( subheap->selector );
VirtualFree( subheap, subheap->commitSize, MEM_DECOMMIT );
VirtualFree( subheap, 0, MEM_RELEASE );
subheap = next;
}

View File

@ -7,6 +7,7 @@
#include <string.h>
#include "windows.h"
#include "ldt.h"
#include "miscemu.h"
#include "selectors.h"
#include "stackframe.h"
#include "stddebug.h"

Some files were not shown because too many files have changed in this diff Show More