Release 961102
Sat Nov 2 12:50:40 1996 Alexandre Julliard <julliard@lrc.epfl.ch> * [files/dos_fs.c] Added long file name mask in DOSFS_FindNext(). * [loader/pe_image.c] [loader/task.c] Moved Win32 task startup into TASK_CallToStart(). * [objects/dc.c] Fixed SetDCState() for memory DC (thanks to Constantine Sapuntzakis for spotting this one). * [windows/winpos.c] Fixed WINPOS_ForceXWindowRaise() to preserve correct Z-order. * [*/*] Added Win32 version for many graphics functions. Thu Oct 31 10:00:18 1996 Huw D. M. Davies <h.davies1@physics.oxford.ac.uk> * [controls/button.c] BUTTON_CheckAutoRadioButton() unchecks only auto radio buttons. * [controls/edit.c] EM_GETSEL result should have HIWORD(result) >= LOWORD(result); old EDIT_EM_GetSel() renamed to EDIT_GetSel(). * [windows/dialog.c] DS_LOCALEDIT is a dialog style not an edit style. * [windows/winproc.c] Stop stack trashing when wndPtr->text == NULL. Tue Oct 29 23:35:04 1996 Constantine P Sapuntzakis <csapuntz@mit.edu> * [windows/dce.c] GetDCEx32 - The determination of whether to use the DC cache or not should be independent of DCX_USESTYLE. Sat Oct 26 17:31:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk> * [files/directory.c] Added errno.h to #includes * [tools/makedep.c] Close files once they have been processed.
This commit is contained in:
parent
530ee8407c
commit
139a4b1874
15
ANNOUNCE
15
ANNOUNCE
|
@ -1,13 +1,12 @@
|
|||
This is release 961023 of Wine, the MS Windows emulator. This is still a
|
||||
This is release 961102 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-961023: (see ChangeLog for details)
|
||||
- Printer driver fixes.
|
||||
- Faster make depend.
|
||||
WHAT'S NEW with Wine-961102: (see ChangeLog for details)
|
||||
- More Win32 functions.
|
||||
- Lots of bug fixes.
|
||||
|
||||
See the README file in the distribution for installation instructions.
|
||||
|
@ -16,10 +15,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-961023.tar.gz
|
||||
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-961023.tar.gz
|
||||
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-961023.tar.gz
|
||||
ftp://aris.com/pub/linux/ALPHA/Wine/development/Wine-961023.tar.gz
|
||||
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-961102.tar.gz
|
||||
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-961102.tar.gz
|
||||
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-961102.tar.gz
|
||||
ftp://aris.com/pub/linux/ALPHA/Wine/development/Wine-961102.tar.gz
|
||||
|
||||
It should also be available from any site that mirrors tsx-11 or sunsite.
|
||||
|
||||
|
|
48
ChangeLog
48
ChangeLog
|
@ -1,3 +1,51 @@
|
|||
----------------------------------------------------------------------
|
||||
Sat Nov 2 12:50:40 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
|
||||
|
||||
* [files/dos_fs.c]
|
||||
Added long file name mask in DOSFS_FindNext().
|
||||
|
||||
* [loader/pe_image.c] [loader/task.c]
|
||||
Moved Win32 task startup into TASK_CallToStart().
|
||||
|
||||
* [objects/dc.c]
|
||||
Fixed SetDCState() for memory DC (thanks to Constantine
|
||||
Sapuntzakis for spotting this one).
|
||||
|
||||
* [windows/winpos.c]
|
||||
Fixed WINPOS_ForceXWindowRaise() to preserve correct Z-order.
|
||||
|
||||
* [*/*]
|
||||
Added Win32 version for many graphics functions.
|
||||
|
||||
Thu Oct 31 10:00:18 1996 Huw D. M. Davies <h.davies1@physics.oxford.ac.uk>
|
||||
|
||||
* [controls/button.c]
|
||||
BUTTON_CheckAutoRadioButton() unchecks only auto radio buttons.
|
||||
|
||||
* [controls/edit.c]
|
||||
EM_GETSEL result should have HIWORD(result) >= LOWORD(result); old
|
||||
EDIT_EM_GetSel() renamed to EDIT_GetSel().
|
||||
|
||||
* [windows/dialog.c]
|
||||
DS_LOCALEDIT is a dialog style not an edit style.
|
||||
|
||||
* [windows/winproc.c]
|
||||
Stop stack trashing when wndPtr->text == NULL.
|
||||
|
||||
Tue Oct 29 23:35:04 1996 Constantine P Sapuntzakis <csapuntz@mit.edu>
|
||||
|
||||
* [windows/dce.c]
|
||||
GetDCEx32 - The determination of whether to use the DC cache or
|
||||
not should be independent of DCX_USESTYLE.
|
||||
|
||||
Sat Oct 26 17:31:00 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk>
|
||||
|
||||
* [files/directory.c]
|
||||
Added errno.h to #includes
|
||||
|
||||
* [tools/makedep.c]
|
||||
Close files once they have been processed.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Tue Oct 22 20:09:52 1996 Alexandre Julliard <julliard@lrc.epfl.ch>
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Global rules shared by all makefiles
|
||||
# Global rules shared by all makefiles -*-Makefile-*-
|
||||
#
|
||||
# Each individual makefile should define the following variables:
|
||||
# TOPSRCDIR : top-level source directory
|
||||
|
@ -36,7 +36,7 @@ WINERC = $(TOPOBJDIR)/rc/winerc
|
|||
SUBMAKE = $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'OPTIONS=$(OPTIONS)'
|
||||
@SET_MAKE@
|
||||
|
||||
OBJS = $(C_SRCS:.c=.o) $(GEN_C_SRCS:.c=.o) $(ASM_SRCS:.S=.o) $(EXTRA_OBJS)
|
||||
OBJS = $(GEN_C_SRCS:.c=.o) $(C_SRCS:.c=.o) $(ASM_SRCS:.S=.o) $(EXTRA_OBJS)
|
||||
|
||||
# Implicit rules
|
||||
|
||||
|
|
|
@ -252,38 +252,38 @@ LRESULT ButtonWndProc(HWND32 hWnd, UINT32 uMsg, WPARAM32 wParam, LPARAM lParam)
|
|||
static void PB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
|
||||
{
|
||||
RECT32 rc;
|
||||
HPEN16 hOldPen;
|
||||
HBRUSH16 hOldBrush;
|
||||
HPEN32 hOldPen;
|
||||
HBRUSH32 hOldBrush;
|
||||
BUTTONINFO *infoPtr = (BUTTONINFO *)wndPtr->wExtra;
|
||||
|
||||
GetClientRect32( wndPtr->hwndSelf, &rc );
|
||||
|
||||
/* Send WM_CTLCOLOR to allow changing the font (the colors are fixed) */
|
||||
if (infoPtr->hFont) SelectObject( hDC, infoPtr->hFont );
|
||||
if (infoPtr->hFont) SelectObject32( hDC, infoPtr->hFont );
|
||||
BUTTON_SEND_CTLCOLOR( wndPtr, hDC );
|
||||
hOldPen = (HPEN16)SelectObject(hDC, sysColorObjects.hpenWindowFrame);
|
||||
hOldBrush = (HBRUSH16)SelectObject(hDC, sysColorObjects.hbrushBtnFace);
|
||||
hOldPen = (HPEN32)SelectObject32(hDC, sysColorObjects.hpenWindowFrame);
|
||||
hOldBrush = (HBRUSH32)SelectObject32(hDC, sysColorObjects.hbrushBtnFace);
|
||||
SetBkMode(hDC, TRANSPARENT);
|
||||
Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom);
|
||||
Rectangle32(hDC, rc.left, rc.top, rc.right, rc.bottom);
|
||||
if (action == ODA_DRAWENTIRE)
|
||||
{
|
||||
SetPixel( hDC, rc.left, rc.top, GetSysColor(COLOR_WINDOW) );
|
||||
SetPixel( hDC, rc.left, rc.bottom-1, GetSysColor(COLOR_WINDOW) );
|
||||
SetPixel( hDC, rc.right-1, rc.top, GetSysColor(COLOR_WINDOW) );
|
||||
SetPixel( hDC, rc.right-1, rc.bottom-1, GetSysColor(COLOR_WINDOW) );
|
||||
SetPixel32( hDC, rc.left, rc.top, GetSysColor(COLOR_WINDOW) );
|
||||
SetPixel32( hDC, rc.left, rc.bottom-1, GetSysColor(COLOR_WINDOW) );
|
||||
SetPixel32( hDC, rc.right-1, rc.top, GetSysColor(COLOR_WINDOW) );
|
||||
SetPixel32( hDC, rc.right-1, rc.bottom-1, GetSysColor(COLOR_WINDOW) );
|
||||
}
|
||||
InflateRect32( &rc, -1, -1 );
|
||||
|
||||
if ((wndPtr->dwStyle & 0x000f) == BS_DEFPUSHBUTTON)
|
||||
{
|
||||
Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom);
|
||||
Rectangle32(hDC, rc.left, rc.top, rc.right, rc.bottom);
|
||||
InflateRect32( &rc, -1, -1 );
|
||||
}
|
||||
|
||||
if (infoPtr->state & BUTTON_HIGHLIGHTED)
|
||||
{
|
||||
/* draw button shadow: */
|
||||
SelectObject(hDC, sysColorObjects.hbrushBtnShadow );
|
||||
SelectObject32(hDC, sysColorObjects.hbrushBtnShadow );
|
||||
PatBlt(hDC, rc.left, rc.top, 1, rc.bottom-rc.top, PATCOPY );
|
||||
PatBlt(hDC, rc.left, rc.top, rc.right-rc.left, 1, PATCOPY );
|
||||
rc.left += 2; /* To position the text down and right */
|
||||
|
@ -324,8 +324,8 @@ static void PB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
|
|||
}
|
||||
}
|
||||
|
||||
SelectObject( hDC, hOldPen );
|
||||
SelectObject( hDC, hOldBrush );
|
||||
SelectObject32( hDC, hOldPen );
|
||||
SelectObject32( hDC, hOldBrush );
|
||||
}
|
||||
|
||||
|
||||
|
@ -349,17 +349,17 @@ void PB_PaintGrayOnGray(HDC32 hDC,HFONT32 hFont,RECT32 *rc,char *text)
|
|||
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);
|
||||
SelectObject( hdcMem, hbmMem);
|
||||
hBr = SelectObject( hdcMem,CreatePatternBrush(hbm));
|
||||
DeleteObject( hbm);
|
||||
SelectObject32( hdcMem, hbmMem);
|
||||
hBr = SelectObject32( hdcMem, CreatePatternBrush32(hbm) );
|
||||
DeleteObject32( hbm );
|
||||
PatBlt( hdcMem,0,0,rect.right,rect.bottom,WHITENESS);
|
||||
if (hFont) SelectObject( hdcMem, hFont);
|
||||
if (hFont) SelectObject32( hdcMem, hFont);
|
||||
DrawText32A( hdcMem, text, -1, &rc2, DT_SINGLELINE);
|
||||
PatBlt( hdcMem,0,0,rect.right,rect.bottom,0xFA0089);
|
||||
DeleteObject( SelectObject( hdcMem,hBr));
|
||||
DeleteObject32( SelectObject32( hdcMem,hBr) );
|
||||
BitBlt( hDC,rect.left,rect.top,rect.right,rect.bottom,hdcMem,0,0,0x990000);
|
||||
DeleteDC( hdcMem);
|
||||
DeleteObject( hbmMem);
|
||||
DeleteObject32( hbmMem );
|
||||
}
|
||||
|
||||
|
||||
|
@ -377,7 +377,7 @@ static void CB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
|
|||
|
||||
GetClientRect16(wndPtr->hwndSelf, &rc);
|
||||
|
||||
if (infoPtr->hFont) SelectObject( hDC, infoPtr->hFont );
|
||||
if (infoPtr->hFont) SelectObject32( hDC, infoPtr->hFont );
|
||||
hBrush = BUTTON_SEND_CTLCOLOR( wndPtr, hDC );
|
||||
if (action == ODA_DRAWENTIRE) FillRect16( hDC, &rc, hBrush );
|
||||
|
||||
|
@ -427,7 +427,7 @@ static void CB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
|
|||
/**********************************************************************
|
||||
* BUTTON_CheckAutoRadioButton
|
||||
*
|
||||
* wndPtr is checked, uncheck everything else in group
|
||||
* wndPtr is checked, uncheck every other auto radio button in group
|
||||
*/
|
||||
static void BUTTON_CheckAutoRadioButton( WND *wndPtr )
|
||||
{
|
||||
|
@ -435,9 +435,10 @@ static void BUTTON_CheckAutoRadioButton( WND *wndPtr )
|
|||
if (!(wndPtr->dwStyle & WS_CHILD)) return;
|
||||
parent = wndPtr->parent->hwndSelf;
|
||||
for(sibling = GetNextDlgGroupItem32( parent, wndPtr->hwndSelf, FALSE );
|
||||
sibling != wndPtr->hwndSelf;
|
||||
sibling != wndPtr->hwndSelf && sibling != 0;
|
||||
sibling = GetNextDlgGroupItem32( parent, sibling, FALSE ))
|
||||
SendMessage32A( sibling, BM_SETCHECK32, BUTTON_UNCHECKED, 0 );
|
||||
if((WIN_FindWndPtr(sibling)->dwStyle & 0x0f) == BS_AUTORADIOBUTTON)
|
||||
SendMessage32A( sibling, BM_SETCHECK32, BUTTON_UNCHECKED, 0 );
|
||||
}
|
||||
|
||||
|
||||
|
@ -452,17 +453,17 @@ static void GB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
|
|||
|
||||
if (action != ODA_DRAWENTIRE) return;
|
||||
|
||||
if (infoPtr->hFont) SelectObject( hDC, infoPtr->hFont );
|
||||
if (infoPtr->hFont) SelectObject32( hDC, infoPtr->hFont );
|
||||
BUTTON_SEND_CTLCOLOR( wndPtr, hDC );
|
||||
SelectObject( hDC, sysColorObjects.hpenWindowFrame );
|
||||
SelectObject32( hDC, sysColorObjects.hpenWindowFrame );
|
||||
|
||||
GetClientRect16( wndPtr->hwndSelf, &rc);
|
||||
|
||||
MoveTo( hDC, rc.left, rc.top+2 );
|
||||
LineTo( hDC, rc.right-1, rc.top+2 );
|
||||
LineTo( hDC, rc.right-1, rc.bottom-1 );
|
||||
LineTo( hDC, rc.left, rc.bottom-1 );
|
||||
LineTo( hDC, rc.left, rc.top+2 );
|
||||
LineTo32( hDC, rc.right-1, rc.top+2 );
|
||||
LineTo32( hDC, rc.right-1, rc.bottom-1 );
|
||||
LineTo32( hDC, rc.left, rc.bottom-1 );
|
||||
LineTo32( hDC, rc.left, rc.top+2 );
|
||||
|
||||
if (!wndPtr->text) return;
|
||||
if (wndPtr->dwStyle & WS_DISABLED)
|
||||
|
@ -486,7 +487,7 @@ static void UB_Paint( WND *wndPtr, HDC32 hDC, WORD action )
|
|||
|
||||
GetClientRect16( wndPtr->hwndSelf, &rc);
|
||||
|
||||
if (infoPtr->hFont) SelectObject( hDC, infoPtr->hFont );
|
||||
if (infoPtr->hFont) SelectObject32( hDC, infoPtr->hFont );
|
||||
hBrush = BUTTON_SEND_CTLCOLOR( wndPtr, hDC );
|
||||
FillRect16( hDC, &rc, hBrush );
|
||||
|
||||
|
|
|
@ -224,8 +224,8 @@ static LRESULT CBPaint(HWND hwnd, WPARAM16 wParam, LPARAM lParam)
|
|||
LPHEADCOMBO lphc = ComboGetStorageHeader(hwnd);
|
||||
LPLISTSTRUCT lpls;
|
||||
PAINTSTRUCT16 ps;
|
||||
HBRUSH16 hBrush;
|
||||
HFONT16 hOldFont;
|
||||
HBRUSH32 hBrush;
|
||||
HFONT32 hOldFont;
|
||||
HDC16 hdc;
|
||||
RECT16 rect;
|
||||
|
||||
|
@ -238,8 +238,8 @@ static LRESULT CBPaint(HWND hwnd, WPARAM16 wParam, LPARAM lParam)
|
|||
|
||||
if (hComboBit != 0 && !IsRectEmpty16(&lphc->RectButton))
|
||||
{
|
||||
Rectangle(hdc,lphc->RectButton.left-1,lphc->RectButton.top-1,
|
||||
lphc->RectButton.right+1,lphc->RectButton.bottom+1);
|
||||
Rectangle32(hdc,lphc->RectButton.left-1,lphc->RectButton.top-1,
|
||||
lphc->RectButton.right+1,lphc->RectButton.bottom+1);
|
||||
{
|
||||
RECT32 r;
|
||||
CONV_RECT16TO32( &lphc->RectButton, &r );
|
||||
|
@ -257,10 +257,10 @@ static LRESULT CBPaint(HWND hwnd, WPARAM16 wParam, LPARAM lParam)
|
|||
return 0;
|
||||
}
|
||||
|
||||
hOldFont = SelectObject(hdc, lphl->hFont);
|
||||
hOldFont = SelectObject32(hdc, lphl->hFont);
|
||||
|
||||
hBrush = SendMessage32A( lphl->hParent, WM_CTLCOLORLISTBOX, hdc, hwnd );
|
||||
if (hBrush == 0) hBrush = GetStockObject(WHITE_BRUSH);
|
||||
if (hBrush == 0) hBrush = GetStockObject32(WHITE_BRUSH);
|
||||
|
||||
lpls = ListBoxGetItem(lphl,lphl->ItemFocused);
|
||||
if (lpls != NULL) {
|
||||
|
@ -270,7 +270,7 @@ static LRESULT CBPaint(HWND hwnd, WPARAM16 wParam, LPARAM lParam)
|
|||
ListBoxDrawItem (hwnd,lphl, hdc, lpls, &rect, ODA_FOCUS, ODS_FOCUS);
|
||||
}
|
||||
else FillRect16(hdc, &rect, hBrush);
|
||||
SelectObject(hdc,hOldFont);
|
||||
SelectObject32(hdc,hOldFont);
|
||||
EndPaint16(hwnd, &ps);
|
||||
return 0;
|
||||
}
|
||||
|
@ -556,7 +556,7 @@ static LRESULT CBSetFont(HWND hwnd, WPARAM16 wParam, LPARAM lParam)
|
|||
LPHEADCOMBO lphc = ComboGetStorageHeader(hwnd);
|
||||
|
||||
if (wParam == 0)
|
||||
lphl->hFont = GetStockObject(SYSTEM_FONT);
|
||||
lphl->hFont = GetStockObject32(SYSTEM_FONT);
|
||||
else
|
||||
lphl->hFont = (HFONT16)wParam;
|
||||
if (lphc->hWndEdit)
|
||||
|
@ -914,8 +914,8 @@ static LRESULT CBLPaint( HWND hwnd, WPARAM16 wParam, LPARAM lParam )
|
|||
LPHEADLIST lphl = CLBoxGetListHeader(hwnd);
|
||||
LPLISTSTRUCT lpls;
|
||||
PAINTSTRUCT16 ps;
|
||||
HBRUSH16 hBrush;
|
||||
HFONT16 hOldFont;
|
||||
HBRUSH32 hBrush;
|
||||
HFONT32 hOldFont;
|
||||
WND * wndPtr = WIN_FindWndPtr(hwnd);
|
||||
HWND combohwnd = CLBoxGetCombo(hwnd);
|
||||
HDC16 hdc;
|
||||
|
@ -930,9 +930,9 @@ static LRESULT CBLPaint( HWND hwnd, WPARAM16 wParam, LPARAM lParam )
|
|||
return 0;
|
||||
}
|
||||
|
||||
hOldFont = SelectObject(hdc, lphl->hFont);
|
||||
hOldFont = SelectObject32(hdc, lphl->hFont);
|
||||
/* listboxes should be white */
|
||||
hBrush = GetStockObject(WHITE_BRUSH);
|
||||
hBrush = GetStockObject32(WHITE_BRUSH);
|
||||
|
||||
GetClientRect16(hwnd, &rect);
|
||||
FillRect16(hdc, &rect, hBrush);
|
||||
|
@ -977,7 +977,7 @@ static LRESULT CBLPaint( HWND hwnd, WPARAM16 wParam, LPARAM lParam )
|
|||
if (wndPtr->dwStyle & WS_VSCROLL)
|
||||
SetScrollRange32(hwnd, SB_VERT, 0, ListMaxFirstVisible(lphl), TRUE);
|
||||
|
||||
SelectObject(hdc,hOldFont);
|
||||
SelectObject32(hdc,hOldFont);
|
||||
EndPaint16( hwnd, &ps );
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ static LRESULT DESKTOP_DoEraseBkgnd( HWND32 hwnd, HDC32 hdc,
|
|||
RECT32 rect;
|
||||
WND* Wnd = WIN_FindWndPtr( hwnd );
|
||||
|
||||
if( Wnd->hrgnUpdate > 1 ) DeleteObject( Wnd->hrgnUpdate );
|
||||
if (Wnd->hrgnUpdate > 1) DeleteObject32( Wnd->hrgnUpdate );
|
||||
Wnd->hrgnUpdate = 0;
|
||||
|
||||
GetClientRect32( hwnd, &rect );
|
||||
|
@ -208,7 +208,7 @@ BOOL32 SetDeskWallPaper32( LPCSTR filename )
|
|||
hdc = GetDC32( 0 );
|
||||
hbitmap = DESKTOP_LoadBitmap( hdc, filename );
|
||||
ReleaseDC32( 0, hdc );
|
||||
if (infoPtr->hbitmapWallPaper) DeleteObject( infoPtr->hbitmapWallPaper );
|
||||
if (infoPtr->hbitmapWallPaper) DeleteObject32( infoPtr->hbitmapWallPaper );
|
||||
infoPtr->hbitmapWallPaper = hbitmap;
|
||||
infoPtr->fTileWallPaper = GetProfileInt( "desktop", "TileWallPaper", 0 );
|
||||
if (hbitmap)
|
||||
|
@ -233,7 +233,7 @@ BOOL32 DESKTOP_SetPattern( LPCSTR pattern )
|
|||
DESKTOPINFO *infoPtr = (DESKTOPINFO *)wndPtr->wExtra;
|
||||
int pat[8];
|
||||
|
||||
if (infoPtr->hbrushPattern) DeleteObject( infoPtr->hbrushPattern );
|
||||
if (infoPtr->hbrushPattern) DeleteObject32( infoPtr->hbrushPattern );
|
||||
memset( pat, 0, sizeof(pat) );
|
||||
if (pattern && sscanf( pattern, " %d %d %d %d %d %d %d %d",
|
||||
&pat[0], &pat[1], &pat[2], &pat[3],
|
||||
|
@ -245,10 +245,10 @@ BOOL32 DESKTOP_SetPattern( LPCSTR pattern )
|
|||
|
||||
for (i = 0; i < 8; i++) pattern[i] = pat[i] & 0xffff;
|
||||
hbitmap = CreateBitmap( 8, 8, 1, 1, (LPSTR)pattern );
|
||||
infoPtr->hbrushPattern = CreatePatternBrush( hbitmap );
|
||||
DeleteObject( hbitmap );
|
||||
infoPtr->hbrushPattern = CreatePatternBrush32( hbitmap );
|
||||
DeleteObject32( hbitmap );
|
||||
}
|
||||
else infoPtr->hbrushPattern = CreateSolidBrush( GetSysColor(COLOR_BACKGROUND) );
|
||||
else infoPtr->hbrushPattern = CreateSolidBrush32( GetSysColor(COLOR_BACKGROUND) );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
160
controls/edit.c
160
controls/edit.c
|
@ -119,6 +119,7 @@ static char * EDIT_GetPointer(WND *wndPtr);
|
|||
static char * EDIT_GetPasswordPointer(WND *wndPtr);
|
||||
static LRESULT EDIT_GetRect(WND *wndPtr, WPARAM32 wParam, LPARAM lParam);
|
||||
static BOOL EDIT_GetRedraw(WND *wndPtr);
|
||||
static LRESULT EDIT_GetSel(WND *wndPtr, WPARAM32 wParam, LPARAM lParam);
|
||||
static UINT EDIT_GetTextWidth(WND *wndPtr);
|
||||
static UINT EDIT_GetVisibleLineCount(WND *wndPtr);
|
||||
static UINT EDIT_GetWndWidth(WND *wndPtr);
|
||||
|
@ -511,7 +512,7 @@ static void EDIT_BuildLineDefs(WND *wndPtr)
|
|||
int ww = EDIT_GetWndWidth(wndPtr);
|
||||
HDC32 hdc;
|
||||
HFONT16 hFont;
|
||||
HFONT16 oldFont = 0;
|
||||
HFONT32 oldFont = 0;
|
||||
char *start, *cp;
|
||||
int prev, next;
|
||||
int width;
|
||||
|
@ -520,8 +521,7 @@ static void EDIT_BuildLineDefs(WND *wndPtr)
|
|||
|
||||
hdc = GetDC32(wndPtr->hwndSelf);
|
||||
hFont = (HFONT16)EDIT_WM_GetFont(wndPtr, 0, 0L);
|
||||
if (hFont)
|
||||
oldFont = SelectObject(hdc, hFont);
|
||||
if (hFont) oldFont = SelectObject32(hdc, hFont);
|
||||
|
||||
if (!IsMultiLine(wndPtr)) {
|
||||
es->LineCount = 1;
|
||||
|
@ -602,8 +602,7 @@ static void EDIT_BuildLineDefs(WND *wndPtr)
|
|||
}
|
||||
} while (*start || (ending == END_SOFT) || (ending == END_HARD));
|
||||
}
|
||||
if (hFont)
|
||||
SelectObject(hdc, oldFont);
|
||||
if (hFont) SelectObject32(hdc, oldFont);
|
||||
ReleaseDC32(wndPtr->hwndSelf, hdc);
|
||||
|
||||
free(text);
|
||||
|
@ -819,6 +818,22 @@ static BOOL EDIT_GetRedraw(WND *wndPtr)
|
|||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* EDIT_GetSel
|
||||
*
|
||||
* Beware: This is not the function called on EM_GETSEL.
|
||||
* It returns the start in the low word and the end in the high word.
|
||||
* NB s can be greater than e.
|
||||
*
|
||||
*/
|
||||
static LRESULT EDIT_GetSel(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
EDITSTATE *es = EDITSTATEPTR(wndPtr);
|
||||
|
||||
return MAKELONG(es->SelStart, es->SelEnd);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* EDIT_GetTextWidth
|
||||
|
@ -999,8 +1014,8 @@ static BOOL EDIT_MakeFit(WND *wndPtr, UINT size)
|
|||
*/
|
||||
static void EDIT_MoveBackward(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
|
||||
|
@ -1024,8 +1039,8 @@ static void EDIT_MoveBackward(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MoveDownward(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
|
@ -1050,8 +1065,8 @@ static void EDIT_MoveDownward(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MoveEnd(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
|
@ -1070,8 +1085,8 @@ static void EDIT_MoveEnd(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MoveForward(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, e, 0L);
|
||||
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, e, 0L);
|
||||
|
@ -1097,8 +1112,8 @@ static void EDIT_MoveForward(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MoveHome(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
|
||||
|
@ -1116,8 +1131,8 @@ static void EDIT_MoveHome(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MovePageDown(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
|
@ -1142,8 +1157,8 @@ static void EDIT_MovePageDown(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MovePageUp(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
INT x;
|
||||
|
@ -1167,8 +1182,8 @@ static void EDIT_MovePageUp(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MoveUpward(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
INT x;
|
||||
|
@ -1192,8 +1207,8 @@ static void EDIT_MoveUpward(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MoveWordBackward(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
|
@ -1222,8 +1237,8 @@ static void EDIT_MoveWordBackward(WND *wndPtr, BOOL extend)
|
|||
*/
|
||||
static void EDIT_MoveWordForward(WND *wndPtr, BOOL extend)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, e, 0L);
|
||||
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, e, 0L);
|
||||
|
@ -1270,8 +1285,8 @@ static void EDIT_PaintLine(WND *wndPtr, HDC32 hdc, UINT line, BOOL rev)
|
|||
y = EDIT_WndYFromLine(wndPtr, line);
|
||||
li = (UINT)EDIT_EM_LineIndex(wndPtr, line, 0L);
|
||||
ll = (UINT)EDIT_EM_LineLength(wndPtr, li, 0L);
|
||||
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
ORDER_UINT(s, e);
|
||||
s = MIN(li + ll, MAX(li, s));
|
||||
e = MIN(li + ll, MAX(li, e));
|
||||
|
@ -1357,8 +1372,8 @@ static LRESULT EDIT_ReplaceSel(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
const char *str = (char *)lParam;
|
||||
int strl = strlen(str);
|
||||
UINT tl = (UINT)EDIT_WM_GetTextLength(wndPtr, 0, 0L);
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
int i;
|
||||
char *p;
|
||||
char *text;
|
||||
|
@ -1373,7 +1388,7 @@ static LRESULT EDIT_ReplaceSel(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
EDIT_WM_SetRedraw(wndPtr, FALSE, 0L);
|
||||
EDIT_WM_Clear(wndPtr, 0, 0L);
|
||||
tl = EDIT_WM_GetTextLength(wndPtr, 0, 0L);
|
||||
e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
text = EDIT_GetPointer(wndPtr);
|
||||
for (p = text + tl ; p >= text + e ; p--)
|
||||
p[strl] = p[0];
|
||||
|
@ -1406,7 +1421,7 @@ static LRESULT EDIT_ReplaceSel(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
*/
|
||||
static void EDIT_ScrollIntoView(WND *wndPtr)
|
||||
{
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
UINT fv = (UINT)EDIT_EM_GetFirstVisibleLine(wndPtr, 0, 0L);
|
||||
|
@ -1449,7 +1464,7 @@ static INT EDIT_WndXFromCol(WND *wndPtr, UINT line, UINT col)
|
|||
INT ret;
|
||||
HDC32 hdc;
|
||||
HFONT16 hFont;
|
||||
HFONT16 oldFont = 0;
|
||||
HFONT32 oldFont = 0;
|
||||
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, line, 0L);
|
||||
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, li, 0L);
|
||||
|
@ -1457,15 +1472,13 @@ static INT EDIT_WndXFromCol(WND *wndPtr, UINT line, UINT col)
|
|||
|
||||
hdc = GetDC32(wndPtr->hwndSelf);
|
||||
hFont = (HFONT16)EDIT_WM_GetFont(wndPtr, 0, 0L);
|
||||
if (hFont)
|
||||
oldFont = SelectObject(hdc, hFont);
|
||||
if (hFont) oldFont = SelectObject32(hdc, hFont);
|
||||
line = MAX(0, MIN(line, lc - 1));
|
||||
col = MIN(col, ll);
|
||||
ret = LOWORD(GetTabbedTextExtent(hdc,
|
||||
text + li, col,
|
||||
es->NumTabStops, es->TabStops)) - xoff;
|
||||
if (hFont)
|
||||
SelectObject(hdc, oldFont);
|
||||
if (hFont) SelectObject32(hdc, oldFont);
|
||||
ReleaseDC32(wndPtr->hwndSelf, hdc);
|
||||
free(text);
|
||||
return ret;
|
||||
|
@ -1699,12 +1712,17 @@ static LRESULT EDIT_EM_GetRect(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
*
|
||||
* EM_GETSEL
|
||||
*
|
||||
* Returns the ordered selection range so that
|
||||
* LOWORD(result) < HIWORD(result)
|
||||
*
|
||||
*/
|
||||
static LRESULT EDIT_EM_GetSel(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
EDITSTATE *es = EDITSTATEPTR(wndPtr);
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
|
||||
return MAKELONG(es->SelStart, es->SelEnd);
|
||||
ORDER_UINT(s, e);
|
||||
return MAKELONG(s, e);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1771,7 +1789,7 @@ static LRESULT EDIT_EM_LineFromChar(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
if (!IsMultiLine(wndPtr))
|
||||
return 0L;
|
||||
if ((INT)wParam == -1)
|
||||
wParam = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
wParam = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
l = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L) - 1;
|
||||
while ((UINT)EDIT_EM_LineIndex(wndPtr, l, 0L) > (UINT)wParam)
|
||||
l--;
|
||||
|
@ -1792,7 +1810,7 @@ static LRESULT EDIT_EM_LineIndex(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
|
||||
|
||||
if ((INT)wParam == -1) {
|
||||
e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
l = lc - 1;
|
||||
while (es->LineDefs[l].offset > e)
|
||||
l--;
|
||||
|
@ -1820,8 +1838,8 @@ static LRESULT EDIT_EM_LineLength(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
if (!IsMultiLine(wndPtr))
|
||||
return (LRESULT)es->LineDefs[0].length;
|
||||
if ((INT)wParam == -1) {
|
||||
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
sl = (UINT)EDIT_EM_LineFromChar(wndPtr, s, 0L);
|
||||
el = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
return (LRESULT)(s - es->LineDefs[sl].offset +
|
||||
|
@ -2013,8 +2031,8 @@ static LRESULT EDIT_EM_SetSel(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
EDITSTATE *es = EDITSTATEPTR(wndPtr);
|
||||
UINT ns = LOWORD(lParam);
|
||||
UINT ne = HIWORD(lParam);
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT el;
|
||||
UINT eli;
|
||||
UINT tl = (UINT)EDIT_WM_GetTextLength(wndPtr, 0, 0L);
|
||||
|
@ -2148,8 +2166,8 @@ static LRESULT EDIT_WM_Char(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
*/
|
||||
static LRESULT EDIT_WM_Clear(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
char *text;
|
||||
BOOL redraw;
|
||||
|
||||
|
@ -2180,8 +2198,8 @@ static LRESULT EDIT_WM_Clear(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
*/
|
||||
static LRESULT EDIT_WM_Copy(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
HGLOBAL16 hdst;
|
||||
char *text;
|
||||
char *dst;
|
||||
|
@ -2317,15 +2335,15 @@ static LRESULT EDIT_WM_Enable(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
*/
|
||||
static LRESULT EDIT_WM_EraseBkGnd(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
HBRUSH16 hBrush;
|
||||
HBRUSH32 hBrush;
|
||||
RECT16 rc;
|
||||
|
||||
hBrush = (HBRUSH16)EDIT_SEND_CTLCOLOR(wndPtr, wParam);
|
||||
if (!hBrush)
|
||||
hBrush = (HBRUSH16)GetStockObject(WHITE_BRUSH);
|
||||
if (!hBrush) hBrush = (HBRUSH32)GetStockObject32(WHITE_BRUSH);
|
||||
|
||||
GetClientRect16(wndPtr->hwndSelf, &rc);
|
||||
IntersectClipRect((HDC16)wParam, rc.left, rc.top, rc.right, rc.bottom);
|
||||
IntersectClipRect16( (HDC16)wParam, rc.left, rc.top,
|
||||
rc.right, rc.bottom);
|
||||
GetClipBox16((HDC16)wParam, &rc);
|
||||
/*
|
||||
* FIXME: specs say that we should UnrealizeObject() the brush,
|
||||
|
@ -2468,8 +2486,8 @@ static LRESULT EDIT_WM_HScroll(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
*/
|
||||
static LRESULT EDIT_WM_KeyDown(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
BOOL shift;
|
||||
BOOL control;
|
||||
|
||||
|
@ -2560,8 +2578,8 @@ static LRESULT EDIT_WM_KillFocus(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
|
||||
DestroyCaret();
|
||||
if(!(wndPtr->dwStyle & ES_NOHIDESEL)) {
|
||||
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
EDIT_InvalidateText(wndPtr, s, e);
|
||||
}
|
||||
EDIT_NOTIFY_PARENT(wndPtr, EN_KILLFOCUS);
|
||||
|
@ -2579,7 +2597,7 @@ static LRESULT EDIT_WM_KillFocus(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
static LRESULT EDIT_WM_LButtonDblClk(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
UINT s;
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT l = (UINT)EDIT_EM_LineFromChar(wndPtr, e, 0L);
|
||||
UINT li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
UINT ll = (UINT)EDIT_EM_LineLength(wndPtr, e, 0L);
|
||||
|
@ -2617,7 +2635,7 @@ static LRESULT EDIT_WM_LButtonDown(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
e = li + c;
|
||||
if (GetKeyState(VK_SHIFT) & 0x8000)
|
||||
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
else
|
||||
s = e;
|
||||
EDIT_EM_SetSel(wndPtr, 0, MAKELPARAM(s, e));
|
||||
|
@ -2663,7 +2681,7 @@ static LRESULT EDIT_WM_MouseMove(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
l = MIN(fv + vlc - 1, MAX(fv, l));
|
||||
x = MIN(EDIT_GetWndWidth(wndPtr), MAX(0, x));
|
||||
c = EDIT_ColFromWndX(wndPtr, l, x);
|
||||
s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
li = (UINT)EDIT_EM_LineIndex(wndPtr, l, 0L);
|
||||
EDIT_EM_SetSel(wndPtr, 1, MAKELPARAM(s, li + c));
|
||||
}
|
||||
|
@ -2685,7 +2703,7 @@ static LRESULT EDIT_WM_Paint(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
UINT lc = (UINT)EDIT_EM_GetLineCount(wndPtr, 0, 0L);
|
||||
HDC16 hdc;
|
||||
HFONT16 hFont;
|
||||
HFONT16 oldFont = 0;
|
||||
HFONT32 oldFont = 0;
|
||||
RECT16 rc;
|
||||
RECT16 rcLine;
|
||||
RECT16 rcRgn;
|
||||
|
@ -2695,10 +2713,9 @@ static LRESULT EDIT_WM_Paint(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
|
||||
hdc = BeginPaint16(wndPtr->hwndSelf, &ps);
|
||||
GetClientRect16(wndPtr->hwndSelf, &rc);
|
||||
IntersectClipRect(hdc, rc.left, rc.top, rc.right, rc.bottom);
|
||||
IntersectClipRect16( hdc, rc.left, rc.top, rc.right, rc.bottom );
|
||||
hFont = EDIT_WM_GetFont(wndPtr, 0, 0L);
|
||||
if (hFont)
|
||||
oldFont = SelectObject(hdc, hFont);
|
||||
if (hFont) oldFont = SelectObject32(hdc, hFont);
|
||||
EDIT_SEND_CTLCOLOR(wndPtr, hdc);
|
||||
if (!IsWindowEnabled(wndPtr->hwndSelf))
|
||||
SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT));
|
||||
|
@ -2708,8 +2725,7 @@ static LRESULT EDIT_WM_Paint(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
if (IntersectRect16(&rc, &rcRgn, &rcLine))
|
||||
EDIT_PaintLine(wndPtr, hdc, i, rev);
|
||||
}
|
||||
if (hFont)
|
||||
SelectObject(hdc, oldFont);
|
||||
if (hFont) SelectObject32(hdc, oldFont);
|
||||
EndPaint16(wndPtr->hwndSelf, &ps);
|
||||
return 0L;
|
||||
}
|
||||
|
@ -2758,8 +2774,8 @@ static LRESULT EDIT_WM_SetCursor(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
*/
|
||||
static LRESULT EDIT_WM_SetFocus(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
||||
{
|
||||
UINT s = LOWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_EM_GetSel(wndPtr, 0, 0L));
|
||||
UINT s = LOWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
UINT e = HIWORD(EDIT_GetSel(wndPtr, 0, 0L));
|
||||
|
||||
CreateCaret(wndPtr->hwndSelf, 0, 2, EDIT_GetLineHeight(wndPtr));
|
||||
EDIT_EM_SetSel(wndPtr, 1, MAKELPARAM(s, e));
|
||||
|
@ -2780,19 +2796,17 @@ static LRESULT EDIT_WM_SetFont(WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
|
|||
{
|
||||
TEXTMETRIC16 tm;
|
||||
EDITSTATE *es = EDITSTATEPTR(wndPtr);
|
||||
LPARAM sel = EDIT_EM_GetSel(wndPtr, 0, 0L);
|
||||
LPARAM sel = EDIT_GetSel(wndPtr, 0, 0L);
|
||||
HDC32 hdc;
|
||||
HFONT16 oldFont = 0;
|
||||
HFONT32 oldFont = 0;
|
||||
|
||||
es->hFont = (HFONT16)wParam;
|
||||
hdc = GetDC32(wndPtr->hwndSelf);
|
||||
if (es->hFont)
|
||||
oldFont = SelectObject(hdc, es->hFont);
|
||||
if (es->hFont) oldFont = SelectObject32(hdc, es->hFont);
|
||||
GetTextMetrics16(hdc, &tm);
|
||||
es->LineHeight = HIWORD(GetTextExtent(hdc, "X", 1));
|
||||
es->AveCharWidth = tm.tmAveCharWidth;
|
||||
if (es->hFont)
|
||||
SelectObject(hdc, oldFont);
|
||||
if (es->hFont) SelectObject32(hdc, oldFont);
|
||||
ReleaseDC32(wndPtr->hwndSelf, hdc);
|
||||
EDIT_BuildLineDefs(wndPtr);
|
||||
if ((BOOL)lParam && EDIT_GetRedraw(wndPtr))
|
||||
|
|
|
@ -74,7 +74,7 @@ void CreateListBoxStruct(HWND hwnd, WORD CtlType, LONG styles, HWND parent)
|
|||
lphl->bRedrawFlag = TRUE;
|
||||
lphl->iNumStops = 0;
|
||||
lphl->TabStops = NULL;
|
||||
lphl->hFont = GetStockObject(SYSTEM_FONT);
|
||||
lphl->hFont = GetStockObject32(SYSTEM_FONT);
|
||||
lphl->hSelf = hwnd;
|
||||
if (CtlType==ODT_COMBOBOX) /* use the "faked" style for COMBOLBOX */
|
||||
/* LBS_SORT instead CBS_SORT e.g. */
|
||||
|
@ -227,7 +227,7 @@ void ListBoxDrawItem(HWND hwnd, LPHEADLIST lphl, HDC16 hdc, LPLISTSTRUCT lpls,
|
|||
|
||||
if (itemState != 0) {
|
||||
dwOldTextColor = SetTextColor(hdc, 0x00FFFFFFL);
|
||||
FillRect16(hdc, rect, GetStockObject(BLACK_BRUSH));
|
||||
FillRect16(hdc, rect, GetStockObject32(BLACK_BRUSH));
|
||||
}
|
||||
|
||||
if (lphl->dwStyle & LBS_USETABSTOPS) {
|
||||
|
@ -783,7 +783,8 @@ LONG ListBoxDirectory(LPHEADLIST lphl, UINT attrib, LPCSTR filespec)
|
|||
|
||||
skip = ret = 0;
|
||||
attrib &= ~FA_LABEL;
|
||||
while ((count = DOSFS_FindNext( path, mask, 0, attrib, skip, &entry )) > 0)
|
||||
while ((count = DOSFS_FindNext( path, mask, NULL, 0,
|
||||
attrib, skip, &entry )) > 0)
|
||||
{
|
||||
skip += count;
|
||||
if (entry.attr & FA_DIRECTORY)
|
||||
|
@ -1407,7 +1408,7 @@ static LONG LBSetFont(HWND hwnd, WPARAM16 wParam, LPARAM lParam)
|
|||
HDC32 hdc;
|
||||
|
||||
if (wParam == 0)
|
||||
lphl->hFont = GetStockObject(SYSTEM_FONT);
|
||||
lphl->hFont = GetStockObject32(SYSTEM_FONT);
|
||||
else
|
||||
lphl->hFont = (HFONT16)wParam;
|
||||
|
||||
|
@ -1436,7 +1437,7 @@ static LONG LBPaint(HWND hwnd, WORD wParam, LONG lParam)
|
|||
LPLISTSTRUCT lpls;
|
||||
PAINTSTRUCT16 ps;
|
||||
HBRUSH16 hBrush;
|
||||
HFONT16 hOldFont;
|
||||
HFONT32 hOldFont;
|
||||
HDC16 hdc = BeginPaint16( hwnd, &ps );
|
||||
DC *dc = (DC *)GDI_GetObjPtr(hdc, DC_MAGIC);
|
||||
RECT16 rect, paintRect, scratchRect;
|
||||
|
@ -1453,11 +1454,11 @@ static LONG LBPaint(HWND hwnd, WORD wParam, LONG lParam)
|
|||
GetClientRect16(hwnd, &rect);
|
||||
IntersectRect16(&paintRect,&rect,&paintRect);
|
||||
|
||||
hOldFont = SelectObject(hdc, lphl->hFont);
|
||||
hOldFont = SelectObject32(hdc, lphl->hFont);
|
||||
|
||||
hBrush = (HBRUSH16)SendMessage32A( lphl->hParent, WM_CTLCOLORLISTBOX,
|
||||
(WPARAM32)hdc, (LPARAM)hwnd);
|
||||
if (hBrush == 0) hBrush = GetStockObject(WHITE_BRUSH);
|
||||
if (hBrush == 0) hBrush = GetStockObject32(WHITE_BRUSH);
|
||||
|
||||
FillRect16(hdc, &rect, hBrush);
|
||||
|
||||
|
@ -1520,7 +1521,7 @@ static LONG LBPaint(HWND hwnd, WORD wParam, LONG lParam)
|
|||
lpls = lpls->lpNext;
|
||||
}
|
||||
ListBoxUpdateWindow(hwnd,lphl,FALSE);
|
||||
SelectObject(hdc,hOldFont);
|
||||
SelectObject32(hdc,hOldFont);
|
||||
EndPaint16( hwnd, &ps );
|
||||
return 0;
|
||||
}
|
||||
|
@ -1537,14 +1538,14 @@ static LONG LBSetFocus(HWND hwnd, WORD wParam, LONG lParam)
|
|||
if( lphl->ItemsCount && lphl->ItemFocused != -1)
|
||||
{
|
||||
HDC32 hDC = GetDC32(hwnd);
|
||||
HFONT16 hOldFont = SelectObject(hDC, lphl->hFont);
|
||||
HFONT32 hOldFont = SelectObject32(hDC, lphl->hFont);
|
||||
LPLISTSTRUCT lpls;
|
||||
|
||||
lpls = ListBoxGetItem(lphl,lphl->ItemFocused);
|
||||
lpls->itemState |= ODS_FOCUS;
|
||||
|
||||
ListBoxDrawItem(hwnd,lphl,hDC,lpls,&lpls->itemRect, ODA_FOCUS, lpls->itemState);
|
||||
SelectObject(hDC, hOldFont);
|
||||
SelectObject32(hDC, hOldFont);
|
||||
ReleaseDC32(hwnd,hDC);
|
||||
}
|
||||
|
||||
|
@ -1567,14 +1568,14 @@ static LONG LBKillFocus(HWND hwnd, WORD wParam, LONG lParam)
|
|||
if( lphl->ItemFocused != -1 )
|
||||
{
|
||||
HDC32 hDC = GetDC32(hwnd);
|
||||
HFONT16 hOldFont = SelectObject(hDC, lphl->hFont);
|
||||
HFONT32 hOldFont = SelectObject32(hDC, lphl->hFont);
|
||||
LPLISTSTRUCT lpls;
|
||||
|
||||
lpls = ListBoxGetItem(lphl,lphl->ItemFocused);
|
||||
lpls->itemState &= ~ODS_FOCUS;
|
||||
|
||||
ListBoxDrawItem(hwnd,lphl,hDC,lpls,&lpls->itemRect, ODA_FOCUS, lpls->itemState);
|
||||
SelectObject(hDC, hOldFont);
|
||||
SelectObject32(hDC, hOldFont);
|
||||
ReleaseDC32(hwnd,hDC);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -591,15 +591,15 @@ static void MENU_DrawMenuItem( HWND hwnd, HDC32 hdc, MENUITEM *lpitem,
|
|||
|
||||
if (!menuBar && (lpitem->item_flags & MF_MENUBARBREAK))
|
||||
{
|
||||
SelectObject( hdc, sysColorObjects.hpenWindowFrame );
|
||||
SelectObject32( hdc, sysColorObjects.hpenWindowFrame );
|
||||
MoveTo( hdc, rect.left, 0 );
|
||||
LineTo( hdc, rect.left, height );
|
||||
LineTo32( hdc, rect.left, height );
|
||||
}
|
||||
if (lpitem->item_flags & MF_SEPARATOR)
|
||||
{
|
||||
SelectObject( hdc, sysColorObjects.hpenWindowFrame );
|
||||
SelectObject32( hdc, sysColorObjects.hpenWindowFrame );
|
||||
MoveTo( hdc, rect.left, rect.top + SEPARATOR_HEIGHT/2 );
|
||||
LineTo( hdc, rect.right, rect.top + SEPARATOR_HEIGHT/2 );
|
||||
LineTo32( hdc, rect.right, rect.top + SEPARATOR_HEIGHT/2 );
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -741,9 +741,9 @@ UINT MENU_DrawMenuBar( HDC32 hDC, LPRECT16 lprect, HWND hwnd,
|
|||
if (suppress_draw) return lppop->Height;
|
||||
|
||||
FillRect16(hDC, lprect, sysColorObjects.hbrushMenu );
|
||||
SelectObject( hDC, sysColorObjects.hpenWindowFrame );
|
||||
SelectObject32( hDC, sysColorObjects.hpenWindowFrame );
|
||||
MoveTo( hDC, lprect->left, lprect->bottom );
|
||||
LineTo( hDC, lprect->right, lprect->bottom );
|
||||
LineTo32( hDC, lprect->right, lprect->bottom );
|
||||
|
||||
if (lppop->nItems == 0) return SYSMETRICS_CYMENU;
|
||||
for (i = 0; i < lppop->nItems; i++)
|
||||
|
|
|
@ -312,7 +312,7 @@ static void SCROLL_DrawArrows( HDC32 hdc, SCROLLBAR_INFO *infoPtr,
|
|||
BOOL32 top_pressed, BOOL32 bottom_pressed )
|
||||
{
|
||||
HDC32 hdcMem = CreateCompatibleDC( hdc );
|
||||
HBITMAP32 hbmpPrev = SelectObject( hdcMem, vertical ?
|
||||
HBITMAP32 hbmpPrev = SelectObject32( hdcMem, vertical ?
|
||||
TOP_ARROW(infoPtr->flags, top_pressed)
|
||||
: LEFT_ARROW(infoPtr->flags, top_pressed));
|
||||
SetStretchBltMode( hdc, STRETCH_DELETESCANS );
|
||||
|
@ -323,9 +323,9 @@ static void SCROLL_DrawArrows( HDC32 hdc, SCROLLBAR_INFO *infoPtr,
|
|||
SYSMETRICS_CXVSCROLL + 1, SYSMETRICS_CYHSCROLL + 1,
|
||||
SRCCOPY );
|
||||
|
||||
SelectObject( hdcMem, vertical ?
|
||||
BOTTOM_ARROW( infoPtr->flags, bottom_pressed )
|
||||
: RIGHT_ARROW( infoPtr->flags, bottom_pressed ) );
|
||||
SelectObject32( hdcMem, vertical ?
|
||||
BOTTOM_ARROW( infoPtr->flags, bottom_pressed )
|
||||
: RIGHT_ARROW( infoPtr->flags, bottom_pressed ) );
|
||||
if (vertical)
|
||||
StretchBlt( hdc, rect->left, rect->bottom - arrowSize - 1,
|
||||
rect->right - rect->left, arrowSize + 1,
|
||||
|
@ -338,7 +338,7 @@ static void SCROLL_DrawArrows( HDC32 hdc, SCROLLBAR_INFO *infoPtr,
|
|||
hdcMem, 0, 0,
|
||||
SYSMETRICS_CXVSCROLL + 1, SYSMETRICS_CYHSCROLL + 1,
|
||||
SRCCOPY );
|
||||
SelectObject( hdcMem, hbmpPrev );
|
||||
SelectObject32( hdcMem, hbmpPrev );
|
||||
DeleteDC( hdcMem );
|
||||
}
|
||||
|
||||
|
@ -389,11 +389,11 @@ static void SCROLL_DrawInterior( HWND32 hwnd, HDC32 hdc, INT32 nBar,
|
|||
|
||||
/* Select the correct brush and pen */
|
||||
|
||||
SelectObject( hdc, sysColorObjects.hpenWindowFrame );
|
||||
SelectObject32( hdc, sysColorObjects.hpenWindowFrame );
|
||||
if ((flags & ESB_DISABLE_BOTH) == ESB_DISABLE_BOTH)
|
||||
{
|
||||
/* This ought to be the color of the parent window */
|
||||
SelectObject( hdc, sysColorObjects.hbrushWindow );
|
||||
SelectObject32( hdc, sysColorObjects.hbrushWindow );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -401,9 +401,9 @@ static void SCROLL_DrawInterior( HWND32 hwnd, HDC32 hdc, INT32 nBar,
|
|||
{
|
||||
HBRUSH32 hbrush = SendMessage32A(GetParent32(hwnd),
|
||||
WM_CTLCOLORSCROLLBAR, hdc, hwnd );
|
||||
SelectObject( hdc, hbrush );
|
||||
SelectObject32( hdc, hbrush );
|
||||
}
|
||||
else SelectObject( hdc, sysColorObjects.hbrushScrollbar );
|
||||
else SelectObject32( hdc, sysColorObjects.hbrushScrollbar );
|
||||
}
|
||||
|
||||
/* Calculate the scroll rectangle */
|
||||
|
@ -423,10 +423,10 @@ static void SCROLL_DrawInterior( HWND32 hwnd, HDC32 hdc, INT32 nBar,
|
|||
/* Draw the scroll bar frame */
|
||||
|
||||
MoveTo( hdc, r.left, r.top );
|
||||
LineTo( hdc, r.right-1, r.top );
|
||||
LineTo( hdc, r.right-1, r.bottom-1 );
|
||||
LineTo( hdc, r.left, r.bottom-1 );
|
||||
LineTo( hdc, r.left, r.top );
|
||||
LineTo32( hdc, r.right-1, r.top );
|
||||
LineTo32( hdc, r.right-1, r.bottom-1 );
|
||||
LineTo32( hdc, r.left, r.bottom-1 );
|
||||
LineTo32( hdc, r.left, r.top );
|
||||
|
||||
/* Draw the scroll rectangles and thumb */
|
||||
|
||||
|
@ -466,8 +466,8 @@ static void SCROLL_DrawInterior( HWND32 hwnd, HDC32 hdc, INT32 nBar,
|
|||
|
||||
/* Draw the thumb */
|
||||
|
||||
SelectObject( hdc, sysColorObjects.hbrushBtnFace );
|
||||
Rectangle( hdc, r.left, r.top, r.right, r.bottom );
|
||||
SelectObject32( hdc, sysColorObjects.hbrushBtnFace );
|
||||
Rectangle32( hdc, r.left, r.top, r.right, r.bottom );
|
||||
InflateRect32( &r, -1, -1 );
|
||||
GRAPH_DrawReliefRect( hdc, &r, 1, 2, FALSE );
|
||||
if (SCROLL_MovingThumb &&
|
||||
|
|
|
@ -220,10 +220,10 @@ static void STATIC_PaintTextfn( WND *wndPtr, HDC32 hdc )
|
|||
if (style & SS_NOPREFIX)
|
||||
wFormat |= DT_NOPREFIX;
|
||||
|
||||
if (infoPtr->hFont) SelectObject( hdc, infoPtr->hFont );
|
||||
if (infoPtr->hFont) SelectObject32( hdc, infoPtr->hFont );
|
||||
hBrush = SendMessage32A( GetParent32(wndPtr->hwndSelf), WM_CTLCOLORSTATIC,
|
||||
hdc, wndPtr->hwndSelf );
|
||||
if (!hBrush) hBrush = GetStockObject(WHITE_BRUSH);
|
||||
if (!hBrush) hBrush = GetStockObject32(WHITE_BRUSH);
|
||||
FillRect16(hdc, &rc, hBrush);
|
||||
if (wndPtr->text) DrawText16( hdc, wndPtr->text, -1, &rc, wFormat );
|
||||
}
|
||||
|
@ -231,40 +231,40 @@ static void STATIC_PaintTextfn( WND *wndPtr, HDC32 hdc )
|
|||
static void STATIC_PaintRectfn( WND *wndPtr, HDC32 hdc )
|
||||
{
|
||||
RECT16 rc;
|
||||
HBRUSH16 hBrush;
|
||||
HBRUSH32 hBrush;
|
||||
|
||||
GetClientRect16( wndPtr->hwndSelf, &rc);
|
||||
|
||||
switch (wndPtr->dwStyle & 0x0f)
|
||||
{
|
||||
case SS_BLACKRECT:
|
||||
hBrush = CreateSolidBrush(color_windowframe);
|
||||
hBrush = CreateSolidBrush32(color_windowframe);
|
||||
FillRect16( hdc, &rc, hBrush );
|
||||
break;
|
||||
case SS_GRAYRECT:
|
||||
hBrush = CreateSolidBrush(color_background);
|
||||
hBrush = CreateSolidBrush32(color_background);
|
||||
FillRect16( hdc, &rc, hBrush );
|
||||
break;
|
||||
case SS_WHITERECT:
|
||||
hBrush = CreateSolidBrush(color_window);
|
||||
hBrush = CreateSolidBrush32(color_window);
|
||||
FillRect16( hdc, &rc, hBrush );
|
||||
break;
|
||||
case SS_BLACKFRAME:
|
||||
hBrush = CreateSolidBrush(color_windowframe);
|
||||
hBrush = CreateSolidBrush32(color_windowframe);
|
||||
FrameRect16( hdc, &rc, hBrush );
|
||||
break;
|
||||
case SS_GRAYFRAME:
|
||||
hBrush = CreateSolidBrush(color_background);
|
||||
hBrush = CreateSolidBrush32(color_background);
|
||||
FrameRect16( hdc, &rc, hBrush );
|
||||
break;
|
||||
case SS_WHITEFRAME:
|
||||
hBrush = CreateSolidBrush(color_window);
|
||||
hBrush = CreateSolidBrush32(color_window);
|
||||
FrameRect16( hdc, &rc, hBrush );
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
DeleteObject( hBrush );
|
||||
DeleteObject32( hBrush );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -49,19 +49,19 @@ void DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text, UINT32 style )
|
|||
if (style == 0 ||
|
||||
style == SBT_POPOUT) {
|
||||
InflateRect32(&r, -1, -1);
|
||||
SelectObject(hdc, sysColorObjects.hbrushScrollbar);
|
||||
Rectangle(hdc, r.left, r.top, r.right, r.bottom);
|
||||
SelectObject32(hdc, sysColorObjects.hbrushScrollbar);
|
||||
Rectangle32(hdc, r.left, r.top, r.right, r.bottom);
|
||||
|
||||
/* draw border */
|
||||
SelectObject(hdc, sysColorObjects.hpenWindowFrame);
|
||||
SelectObject32(hdc, sysColorObjects.hpenWindowFrame);
|
||||
if (style == 0)
|
||||
DrawEdge32(hdc, &r, EDGE_SUNKEN, BF_RECT);
|
||||
else
|
||||
DrawEdge32(hdc, &r, EDGE_RAISED, BF_RECT);
|
||||
}
|
||||
else if (style == SBT_NOBORDERS) {
|
||||
SelectObject(hdc, sysColorObjects.hbrushScrollbar);
|
||||
Rectangle(hdc, r.left, r.top, r.right, r.bottom);
|
||||
SelectObject32(hdc, sysColorObjects.hbrushScrollbar);
|
||||
Rectangle32(hdc, r.left, r.top, r.right, r.bottom);
|
||||
}
|
||||
else { /* fixme for SBT_OWNERDRAW, SBT_RTLREADING */
|
||||
|
||||
|
@ -69,7 +69,7 @@ void DrawStatusText32A( HDC32 hdc, LPRECT32 lprc, LPCSTR text, UINT32 style )
|
|||
|
||||
/* now draw text */
|
||||
if ((style != SBT_OWNERDRAW) && text) {
|
||||
SelectObject(hdc, sysColorObjects.hpenWindowText);
|
||||
SelectObject32(hdc, sysColorObjects.hpenWindowText);
|
||||
oldbkmode = SetBkMode(hdc, TRANSPARENT);
|
||||
rt = r;
|
||||
rt.left += 3;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/* -*-C-*-
|
||||
* Lexical scanner for command line parsing
|
||||
*
|
||||
* Copyright 1993 Eric Youngdale
|
||||
|
@ -26,6 +26,8 @@ void flush_symbols();
|
|||
|
||||
#endif /* DONT_USE_READLINE */
|
||||
|
||||
#define YY_NO_UNPUT
|
||||
|
||||
static int syntax_error;
|
||||
%}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "windows.h"
|
||||
#include "dos_fs.h"
|
||||
|
|
103
files/dos_fs.c
103
files/dos_fs.c
|
@ -244,11 +244,11 @@ const char *DOSFS_ToDosDTAFormat( const char *name )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* DOSFS_Match
|
||||
* DOSFS_MatchShort
|
||||
*
|
||||
* Check a DOS file name against a mask (both in FCB format).
|
||||
*/
|
||||
int DOSFS_Match( const char *mask, const char *name )
|
||||
static int DOSFS_MatchShort( const char *mask, const char *name )
|
||||
{
|
||||
int i;
|
||||
for (i = 11; i > 0; i--, mask++, name++)
|
||||
|
@ -257,6 +257,40 @@ int DOSFS_Match( const char *mask, const char *name )
|
|||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DOSFS_MatchLong
|
||||
*
|
||||
* Check a long file name against a mask.
|
||||
*/
|
||||
static int DOSFS_MatchLong( const char *mask, const char *name,
|
||||
int case_sensitive )
|
||||
{
|
||||
while (*name && *mask)
|
||||
{
|
||||
if (*mask == '*')
|
||||
{
|
||||
mask++;
|
||||
while (*mask == '*') mask++; /* Skip consecutive '*' */
|
||||
if (!*mask) return 1;
|
||||
if (case_sensitive) while (*name && (*name != *mask)) name++;
|
||||
else while (*name && (toupper(*name) != toupper(*mask))) name++;
|
||||
if (!*name) return 0;
|
||||
}
|
||||
else if (*mask != '?')
|
||||
{
|
||||
if (case_sensitive)
|
||||
{
|
||||
if (*mask != *name) return 0;
|
||||
}
|
||||
else if (toupper(*mask) != toupper(*name)) return 0;
|
||||
}
|
||||
mask++;
|
||||
name++;
|
||||
}
|
||||
return (!*name && !*mask);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DOSFS_ToDosDateTime
|
||||
*
|
||||
|
@ -273,6 +307,31 @@ void DOSFS_ToDosDateTime( time_t unixtime, WORD *pDate, WORD *pTime )
|
|||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DOSFS_UnixTimeToFileTime
|
||||
*
|
||||
* Convert a Unix time to FILETIME format.
|
||||
*/
|
||||
void DOSFS_UnixTimeToFileTime( time_t unixtime, FILETIME *filetime )
|
||||
{
|
||||
/* FIXME :-) */
|
||||
filetime->dwLowDateTime = unixtime;
|
||||
filetime->dwHighDateTime = 0;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DOSFS_FileTimeToUnixTime
|
||||
*
|
||||
* Convert a FILETIME format to Unix time.
|
||||
*/
|
||||
time_t DOSFS_FileTimeToUnixTime( FILETIME *filetime )
|
||||
{
|
||||
/* FIXME :-) */
|
||||
return filetime->dwLowDateTime;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DOSFS_Hash
|
||||
*
|
||||
|
@ -665,9 +724,12 @@ const char * DOSFS_GetDosTrueName( const char *name, int unix_format )
|
|||
*
|
||||
* Find the next matching file. Return the number of entries read to find
|
||||
* the matching one, or 0 if no more entries.
|
||||
* 'short_mask' is the 8.3 mask (in FCB format), 'long_mask' is the long
|
||||
* file name mask. Either or both can be NULL.
|
||||
*/
|
||||
int DOSFS_FindNext( const char *path, const char *mask, int drive,
|
||||
BYTE attr, int skip, DOS_DIRENT *entry )
|
||||
int DOSFS_FindNext( const char *path, const char *short_mask,
|
||||
const char *long_mask, int drive, BYTE attr,
|
||||
int skip, DOS_DIRENT *entry )
|
||||
{
|
||||
static DIR *dir = NULL;
|
||||
struct dirent *dirent;
|
||||
|
@ -714,20 +776,38 @@ int DOSFS_FindNext( const char *path, const char *mask, int drive,
|
|||
p = buffer + strlen(buffer);
|
||||
attr |= FA_UNUSED | FA_ARCHIVE | FA_RDONLY;
|
||||
flags = DRIVE_GetFlags( drive );
|
||||
hash_name = NULL;
|
||||
|
||||
while ((dirent = readdir( dir )) != NULL)
|
||||
{
|
||||
if (skip-- > 0) continue;
|
||||
count++;
|
||||
hash_name = DOSFS_Hash( dirent->d_name, TRUE,
|
||||
!(flags & DRIVE_CASE_SENSITIVE) );
|
||||
if (!DOSFS_Match( mask, hash_name )) continue;
|
||||
|
||||
/* Don't return '.' and '..' in the root of the drive */
|
||||
if (drive_root && (dirent->d_name[0] == '.') &&
|
||||
(!dirent->d_name[1] ||
|
||||
((dirent->d_name[1] == '.') && !dirent->d_name[2]))) continue;
|
||||
lstrcpyn32A( p, dirent->d_name, sizeof(buffer) - (int)(p - buffer) );
|
||||
|
||||
/* Check the long mask */
|
||||
|
||||
if (long_mask)
|
||||
{
|
||||
if (!DOSFS_MatchLong( long_mask, dirent->d_name,
|
||||
flags & DRIVE_CASE_SENSITIVE )) continue;
|
||||
}
|
||||
|
||||
/* Check the short mask */
|
||||
|
||||
if (short_mask)
|
||||
{
|
||||
hash_name = DOSFS_Hash( dirent->d_name, TRUE,
|
||||
!(flags & DRIVE_CASE_SENSITIVE) );
|
||||
if (!DOSFS_MatchShort( short_mask, hash_name )) continue;
|
||||
}
|
||||
|
||||
/* Check the file attributes */
|
||||
|
||||
lstrcpyn32A( p, dirent->d_name, sizeof(buffer) - (int)(p - buffer) );
|
||||
if (!FILE_Stat( buffer, &entry->attr, &entry->size,
|
||||
&entry->date, &entry->time ))
|
||||
{
|
||||
|
@ -735,6 +815,12 @@ int DOSFS_FindNext( const char *path, const char *mask, int drive,
|
|||
continue;
|
||||
}
|
||||
if (entry->attr & ~attr) continue;
|
||||
|
||||
/* We now have a matching entry; fill the result and return */
|
||||
|
||||
if (!hash_name)
|
||||
hash_name = DOSFS_Hash( dirent->d_name, TRUE,
|
||||
!(flags & DRIVE_CASE_SENSITIVE) );
|
||||
strcpy( entry->name, hash_name );
|
||||
lstrcpyn32A( entry->unixname, dirent->d_name, sizeof(entry->unixname));
|
||||
if (!(flags & DRIVE_CASE_PRESERVING)) AnsiLower( entry->unixname );
|
||||
|
@ -778,6 +864,7 @@ DWORD GetShortPathName32W( LPCWSTR longpath, LPWSTR shortpath, DWORD shortlen )
|
|||
return strlen(dostruename);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* GetFullPathNameA (KERNEL32.272)
|
||||
*/
|
||||
|
|
|
@ -658,7 +658,7 @@ BOOL32 WIN16DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device, LPCSTR output,
|
|||
|
||||
/* Add this to the DC */
|
||||
dc->w.devCaps = printerDevCaps;
|
||||
dc->w.hVisRgn = CreateRectRgn(0, 0, dc->w.devCaps->horzRes, dc->w.devCaps->vertRes);
|
||||
dc->w.hVisRgn = CreateRectRgn32(0, 0, dc->w.devCaps->horzRes, dc->w.devCaps->vertRes);
|
||||
dc->w.bitsPerPixel = dc->w.devCaps->bitsPixel;
|
||||
|
||||
printf("Got devcaps width %d height %d bits %d planes %d\n",
|
||||
|
|
|
@ -114,15 +114,15 @@ static BOOL32 X11DRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device,
|
|||
physDev->drawable = bmp->pixmap;
|
||||
physDev->gc = XCreateGC( display, physDev->drawable, 0, NULL );
|
||||
dc->w.bitsPerPixel = bmp->bitmap.bmBitsPixel;
|
||||
dc->w.hVisRgn = CreateRectRgn( 0, 0, bmp->bitmap.bmWidth,
|
||||
bmp->bitmap.bmHeight );
|
||||
dc->w.hVisRgn = CreateRectRgn32( 0, 0, bmp->bitmap.bmWidth,
|
||||
bmp->bitmap.bmHeight );
|
||||
}
|
||||
else
|
||||
{
|
||||
physDev->drawable = rootWindow;
|
||||
physDev->gc = XCreateGC( display, physDev->drawable, 0, NULL );
|
||||
dc->w.bitsPerPixel = screenDepth;
|
||||
dc->w.hVisRgn = CreateRectRgn( 0, 0, screenWidth, screenHeight );
|
||||
dc->w.hVisRgn = CreateRectRgn32( 0, 0, screenWidth, screenHeight);
|
||||
}
|
||||
|
||||
if (!dc->w.hVisRgn)
|
||||
|
|
|
@ -20,24 +20,23 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
16 pascal ScaleWindowExt(word s_word s_word s_word s_word) ScaleWindowExt
|
||||
17 pascal OffsetViewportOrg(word s_word s_word) OffsetViewportOrg
|
||||
18 pascal ScaleViewportExt(word s_word s_word s_word s_word) ScaleViewportExt
|
||||
19 pascal16 LineTo(word s_word s_word) LineTo
|
||||
19 pascal16 LineTo(word s_word s_word) LineTo16
|
||||
20 pascal MoveTo(word s_word s_word) MoveTo
|
||||
21 pascal16 ExcludeClipRect(word s_word s_word s_word s_word) ExcludeClipRect
|
||||
22 pascal16 IntersectClipRect(word s_word s_word s_word s_word)
|
||||
IntersectClipRect
|
||||
21 pascal16 ExcludeClipRect(word s_word s_word s_word s_word) ExcludeClipRect16
|
||||
22 pascal16 IntersectClipRect(word s_word s_word s_word s_word) IntersectClipRect16
|
||||
23 pascal16 Arc(word s_word s_word s_word s_word s_word s_word s_word s_word)
|
||||
Arc
|
||||
24 pascal16 Ellipse(word s_word s_word s_word s_word) Ellipse
|
||||
25 pascal16 FloodFill(word s_word s_word long) FloodFill
|
||||
Arc16
|
||||
24 pascal16 Ellipse(word s_word s_word s_word s_word) Ellipse16
|
||||
25 pascal16 FloodFill(word s_word s_word long) FloodFill16
|
||||
26 pascal16 Pie(word s_word s_word s_word s_word s_word s_word s_word s_word)
|
||||
Pie
|
||||
27 pascal16 Rectangle(word s_word s_word s_word s_word) Rectangle
|
||||
Pie16
|
||||
27 pascal16 Rectangle(word s_word s_word s_word s_word) Rectangle16
|
||||
28 pascal16 RoundRect(word s_word s_word s_word s_word s_word s_word)
|
||||
RoundRect
|
||||
RoundRect16
|
||||
29 pascal16 PatBlt(word s_word s_word s_word s_word long) PatBlt
|
||||
30 pascal16 SaveDC(word) SaveDC
|
||||
31 pascal SetPixel(word s_word s_word long) SetPixel
|
||||
32 pascal16 OffsetClipRgn(word s_word s_word) OffsetClipRgn
|
||||
31 pascal SetPixel(word s_word s_word long) SetPixel16
|
||||
32 pascal16 OffsetClipRgn(word s_word s_word) OffsetClipRgn16
|
||||
33 pascal16 TextOut(word s_word s_word ptr word) TextOut16
|
||||
34 pascal16 BitBlt( word s_word s_word s_word s_word word s_word s_word long)
|
||||
BitBlt
|
||||
|
@ -47,39 +46,39 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
37 pascal16 Polyline (word ptr word) Polyline16
|
||||
38 pascal Escape(word word word segptr segptr) Escape
|
||||
39 pascal16 RestoreDC(word s_word) RestoreDC
|
||||
40 pascal16 FillRgn(word word word) FillRgn
|
||||
41 pascal16 FrameRgn(word word word word word) FrameRgn
|
||||
42 pascal16 InvertRgn(word word) InvertRgn
|
||||
43 pascal16 PaintRgn(word word) PaintRgn
|
||||
44 pascal16 SelectClipRgn(word word) SelectClipRgn
|
||||
45 pascal16 SelectObject(word word) SelectObject
|
||||
40 pascal16 FillRgn(word word word) FillRgn16
|
||||
41 pascal16 FrameRgn(word word word word word) FrameRgn16
|
||||
42 pascal16 InvertRgn(word word) InvertRgn16
|
||||
43 pascal16 PaintRgn(word word) PaintRgn16
|
||||
44 pascal16 SelectClipRgn(word word) SelectClipRgn16
|
||||
45 pascal16 SelectObject(word word) SelectObject16
|
||||
#46 pascal __GP?
|
||||
47 pascal16 CombineRgn(word word word s_word) CombineRgn
|
||||
47 pascal16 CombineRgn(word word word s_word) CombineRgn16
|
||||
48 pascal16 CreateBitmap(word word word word ptr) CreateBitmap
|
||||
49 pascal16 CreateBitmapIndirect(ptr) CreateBitmapIndirect16
|
||||
50 pascal16 CreateBrushIndirect(ptr) CreateBrushIndirect
|
||||
50 pascal16 CreateBrushIndirect(ptr) CreateBrushIndirect16
|
||||
51 pascal16 CreateCompatibleBitmap(word word word) CreateCompatibleBitmap
|
||||
52 pascal16 CreateCompatibleDC(word) CreateCompatibleDC
|
||||
53 pascal16 CreateDC(ptr ptr ptr ptr) CreateDC
|
||||
54 pascal16 CreateEllipticRgn(s_word s_word s_word s_word) CreateEllipticRgn
|
||||
54 pascal16 CreateEllipticRgn(s_word s_word s_word s_word) CreateEllipticRgn16
|
||||
55 pascal16 CreateEllipticRgnIndirect(ptr) CreateEllipticRgnIndirect16
|
||||
56 pascal16 CreateFont(s_word s_word s_word s_word s_word word word word
|
||||
word word word word word ptr) CreateFont16
|
||||
57 pascal16 CreateFontIndirect(ptr) CreateFontIndirect16
|
||||
58 pascal16 CreateHatchBrush(word long) CreateHatchBrush
|
||||
60 pascal16 CreatePatternBrush(word) CreatePatternBrush
|
||||
61 pascal16 CreatePen(s_word s_word long) CreatePen
|
||||
62 pascal16 CreatePenIndirect(ptr) CreatePenIndirect
|
||||
58 pascal16 CreateHatchBrush(word long) CreateHatchBrush16
|
||||
60 pascal16 CreatePatternBrush(word) CreatePatternBrush16
|
||||
61 pascal16 CreatePen(s_word s_word long) CreatePen16
|
||||
62 pascal16 CreatePenIndirect(ptr) CreatePenIndirect16
|
||||
63 pascal16 CreatePolygonRgn(ptr word word) CreatePolygonRgn16
|
||||
64 pascal16 CreateRectRgn(s_word s_word s_word s_word) CreateRectRgn
|
||||
64 pascal16 CreateRectRgn(s_word s_word s_word s_word) CreateRectRgn16
|
||||
65 pascal16 CreateRectRgnIndirect(ptr) CreateRectRgnIndirect16
|
||||
66 pascal16 CreateSolidBrush(long) CreateSolidBrush
|
||||
66 pascal16 CreateSolidBrush(long) CreateSolidBrush16
|
||||
67 pascal16 DPtoLP(word ptr s_word) DPtoLP16
|
||||
68 pascal16 DeleteDC(word) DeleteDC
|
||||
69 pascal16 DeleteObject(word) DeleteObject
|
||||
69 pascal16 DeleteObject(word) DeleteObject16
|
||||
70 pascal16 EnumFonts(word ptr segptr long) THUNK_EnumFonts16
|
||||
71 pascal16 EnumObjects(word word segptr long) THUNK_EnumObjects16
|
||||
72 pascal16 EqualRgn(word word) EqualRgn
|
||||
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
|
||||
75 pascal GetBkColor(word) GetBkColor
|
||||
|
@ -90,11 +89,11 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
80 pascal16 GetDeviceCaps(word s_word) GetDeviceCaps
|
||||
81 pascal16 GetMapMode(word) GetMapMode
|
||||
82 pascal16 GetObject(word s_word ptr) GetObject16
|
||||
83 pascal GetPixel(word s_word s_word) GetPixel
|
||||
83 pascal GetPixel(word s_word s_word) GetPixel16
|
||||
84 pascal16 GetPolyFillMode(word) GetPolyFillMode
|
||||
85 pascal16 GetROP2(word) GetROP2
|
||||
86 pascal16 GetRelAbs(word) GetRelAbs
|
||||
87 pascal16 GetStockObject(word) GetStockObject
|
||||
87 pascal16 GetStockObject(word) GetStockObject16
|
||||
88 pascal16 GetStretchBltMode(word) GetStretchBltMode
|
||||
89 pascal16 GetTextCharacterExtra(word) GetTextCharacterExtra
|
||||
90 pascal GetTextColor(word) GetTextColor
|
||||
|
@ -109,9 +108,9 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
IntersectVisRect
|
||||
99 pascal16 LPtoDP(word ptr s_word) LPtoDP16
|
||||
100 pascal16 LineDDA(s_word s_word s_word s_word segptr long) THUNK_LineDDA16
|
||||
101 pascal16 OffsetRgn(word s_word s_word) OffsetRgn
|
||||
101 pascal16 OffsetRgn(word s_word s_word) OffsetRgn16
|
||||
102 pascal16 OffsetVisRgn(word s_word s_word) OffsetVisRgn
|
||||
103 pascal16 PtVisible(word s_word s_word) PtVisible
|
||||
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
|
||||
|
@ -135,7 +134,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
136 pascal16 RemoveFontResource(ptr) RemoveFontResource
|
||||
148 pascal SetBrushOrg(word s_word s_word) SetBrushOrg
|
||||
149 pascal GetBrushOrg(word) GetBrushOrg
|
||||
150 pascal16 UnrealizeObject(word) UnrealizeObject
|
||||
150 pascal16 UnrealizeObject(word) UnrealizeObject16
|
||||
151 pascal16 CopyMetaFile(word ptr) CopyMetaFile
|
||||
153 pascal16 CreateIC(ptr ptr ptr ptr) CreateIC
|
||||
154 pascal GetNearestColor(word long) GetNearestColor
|
||||
|
@ -144,7 +143,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
158 pascal16 EnumCallback(ptr ptr word long) WineEnumDFontCallback
|
||||
159 pascal16 GetMetaFileBits(word) GetMetaFileBits
|
||||
160 pascal16 SetMetaFileBits(word) SetMetaFileBits
|
||||
161 pascal16 PtInRegion(word s_word s_word) PtInRegion
|
||||
161 pascal16 PtInRegion(word s_word s_word) PtInRegion16
|
||||
162 pascal GetBitmapDimension(word) GetBitmapDimension
|
||||
163 pascal SetBitmapDimension(word s_word s_word) SetBitmapDimension
|
||||
169 stub IsDCDirty
|
||||
|
@ -233,7 +232,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
345 pascal16 GetTextAlign(word) GetTextAlign
|
||||
346 pascal16 SetTextAlign(word word) SetTextAlign
|
||||
348 pascal16 Chord(word s_word s_word s_word s_word s_word s_word
|
||||
s_word s_word) Chord
|
||||
s_word s_word) Chord16
|
||||
349 pascal SetMapperFlags(word long) SetMapperFlags
|
||||
350 pascal16 GetCharWidth(word word word ptr) GetCharWidth
|
||||
351 pascal16 ExtTextOut(word s_word s_word word ptr ptr word ptr) ExtTextOut16
|
||||
|
@ -251,7 +250,7 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
367 pascal16 AnimatePalette(word word word ptr) AnimatePalette
|
||||
368 pascal16 ResizePalette(word word) ResizePalette
|
||||
370 pascal16 GetNearestPaletteIndex(word long) GetNearestPaletteIndex
|
||||
372 pascal16 ExtFloodFill(word s_word s_word long word) ExtFloodFill
|
||||
372 pascal16 ExtFloodFill(word s_word s_word long word) ExtFloodFill16
|
||||
373 pascal16 SetSystemPaletteUse(word word) SetSystemPaletteUse
|
||||
374 pascal16 GetSystemPaletteUse(word) GetSystemPaletteUse
|
||||
375 pascal16 GetSystemPaletteEntries(word word word ptr)
|
||||
|
@ -281,8 +280,8 @@ heap 65488 # 65536 - 16 (instance data) - 32 (stock objects)
|
|||
443 pascal16 SetDIBitsToDevice(word s_word s_word word word word word
|
||||
word word ptr ptr word) SetDIBitsToDevice
|
||||
444 pascal16 CreateRoundRectRgn(s_word s_word s_word s_word s_word s_word)
|
||||
CreateRoundRectRgn
|
||||
445 pascal16 CreateDIBPatternBrush(word word) CreateDIBPatternBrush
|
||||
CreateRoundRectRgn16
|
||||
445 pascal16 CreateDIBPatternBrush(word word) CreateDIBPatternBrush16
|
||||
449 stub DEVICECOLORMATCH
|
||||
450 pascal16 PolyPolygon(word ptr ptr word) PolyPolygon16
|
||||
451 pascal16 CreatePolyPolygonRgn(ptr ptr word word) CreatePolyPolygonRgn16
|
||||
|
|
|
@ -9,19 +9,19 @@ base 1
|
|||
0004 stub AddFontResourceW
|
||||
0005 stub AngleArc
|
||||
0006 stub AnimatePalette
|
||||
0007 stub Arc
|
||||
0007 stdcall Arc(long long long long long long long long long) Arc32
|
||||
0008 stub ArcTo
|
||||
0009 stub BeginPath
|
||||
0010 stdcall BitBlt(long long long long long long long long long) BitBlt
|
||||
0011 stub CancelDC
|
||||
0012 stub CheckColorsInGamut
|
||||
0013 stub ChoosePixelFormat
|
||||
0014 stub Chord
|
||||
0014 stdcall Chord(long long long long long long long long long) Chord32
|
||||
0015 stub CloseEnhMetaFile
|
||||
0016 stub CloseFigure
|
||||
0017 stub CloseMetaFile
|
||||
0018 stub ColorMatchToTarget
|
||||
0019 stdcall CombineRgn(long long long long) CombineRgn
|
||||
0019 stdcall CombineRgn(long long long long) CombineRgn32
|
||||
0020 stub CombineTransform
|
||||
0021 stub CopyEnhMetaFileA
|
||||
0022 stub CopyEnhMetaFileW
|
||||
|
@ -29,19 +29,19 @@ base 1
|
|||
0024 stub CopyMetaFileW
|
||||
0025 stdcall CreateBitmap(long long long long ptr) CreateBitmap
|
||||
0026 stdcall CreateBitmapIndirect(ptr) CreateBitmapIndirect32
|
||||
0027 stub CreateBrushIndirect
|
||||
0027 stdcall CreateBrushIndirect(ptr) CreateBrushIndirect32
|
||||
0028 stub CreateColorSpaceA
|
||||
0029 stub CreateColorSpaceW
|
||||
0030 stdcall CreateCompatibleBitmap(long long long) CreateCompatibleBitmap
|
||||
0031 stdcall CreateCompatibleDC(long) CreateCompatibleDC
|
||||
0032 stub CreateDCA
|
||||
0033 stub CreateDCW
|
||||
0034 stdcall CreateDIBPatternBrush(long long) CreateDIBPatternBrush
|
||||
0034 stdcall CreateDIBPatternBrush(long long) CreateDIBPatternBrush32
|
||||
0035 stub CreateDIBPatternBrushPt
|
||||
0036 stub CreateDIBSection
|
||||
0037 stdcall CreateDIBitmap(long ptr long ptr ptr long) CreateDIBitmap
|
||||
0038 stdcall CreateDiscardableBitmap(long long long) CreateDiscardableBitmap
|
||||
0039 stdcall CreateEllipticRgn(long long long long) CreateEllipticRgn
|
||||
0039 stdcall CreateEllipticRgn(long long long long) CreateEllipticRgn32
|
||||
0040 stdcall CreateEllipticRgnIndirect(ptr) CreateEllipticRgnIndirect32
|
||||
0041 stub CreateEnhMetaFileA
|
||||
0042 stub CreateEnhMetaFileW
|
||||
|
@ -52,34 +52,35 @@ base 1
|
|||
0046 stdcall CreateFontW(long long long long long long long long
|
||||
long long long long long ptr) CreateFont32W
|
||||
0047 stub CreateHalftonePalette
|
||||
0048 stub CreateHatchBrush
|
||||
0048 stdcall CreateHatchBrush(long long) CreateHatchBrush32
|
||||
0049 stdcall CreateICA(ptr ptr ptr ptr) CreateIC
|
||||
0050 stub CreateICW
|
||||
0051 stub CreateMetaFileA
|
||||
0052 stub CreateMetaFileW
|
||||
0053 stdcall CreatePalette(ptr) CreatePalette
|
||||
0054 stdcall CreatePatternBrush(long) CreatePatternBrush
|
||||
0055 stdcall CreatePen(long long long) CreatePen
|
||||
0056 stub CreatePenIndirect
|
||||
0054 stdcall CreatePatternBrush(long) CreatePatternBrush32
|
||||
0055 stdcall CreatePen(long long long) CreatePen32
|
||||
0056 stdcall CreatePenIndirect(ptr) CreatePenIndirect32
|
||||
0057 stub CreatePolyPolygonRgn
|
||||
0058 stub CreatePolygonRgn
|
||||
0059 stdcall CreateRectRgn(long long long long) CreateRectRgn
|
||||
0059 stdcall CreateRectRgn(long long long long) CreateRectRgn32
|
||||
0060 stdcall CreateRectRgnIndirect(ptr) CreateRectRgnIndirect32
|
||||
0061 stdcall CreateRoundRectRgn(long long long long long long) CreateRoundRectRgn
|
||||
0061 stdcall CreateRoundRectRgn(long long long long long long)
|
||||
CreateRoundRectRgn32
|
||||
0062 stub CreateScalableFontResourceA
|
||||
0063 stub CreateScalableFontResourceW
|
||||
0064 stdcall CreateSolidBrush(long) CreateSolidBrush
|
||||
0064 stdcall CreateSolidBrush(long) CreateSolidBrush32
|
||||
0065 stdcall DPtoLP(long ptr long) DPtoLP32
|
||||
0066 stub DeleteColorSpace
|
||||
0067 stdcall DeleteDC(long) DeleteDC
|
||||
0068 stub DeleteEnhMetaFile
|
||||
0069 stub DeleteMetaFile
|
||||
0070 stdcall DeleteObject(long) DeleteObject
|
||||
0070 stdcall DeleteObject(long) DeleteObject32
|
||||
0071 stub DescribePixelFormat
|
||||
0072 stub DeviceCapabilitiesExA
|
||||
0073 stub DeviceCapabilitiesExW
|
||||
0074 stub DrawEscape
|
||||
0075 stub Ellipse
|
||||
0075 stdcall Ellipse(long long long long long) Ellipse32
|
||||
0076 stub EndDoc
|
||||
0077 stub EndPage
|
||||
0078 stub EndPath
|
||||
|
@ -93,23 +94,23 @@ base 1
|
|||
0086 stub EnumICMProfilesA
|
||||
0087 stub EnumICMProfilesW
|
||||
0088 stub EnumMetaFile
|
||||
0089 stub EnumObjects
|
||||
0090 stdcall EqualRgn(long long) EqualRgn
|
||||
0089 stdcall EnumObjects(long long ptr long) EnumObjects32
|
||||
0090 stdcall EqualRgn(long long) EqualRgn32
|
||||
0091 stub Escape
|
||||
0092 stub ExcludeClipRect
|
||||
0092 stdcall ExcludeClipRect(long long long long long) ExcludeClipRect32
|
||||
0093 stub ExtCreatePen
|
||||
0094 stub ExtCreateRegion
|
||||
0095 stub ExtEscape
|
||||
0096 stdcall ExtFloodFill(long long long long long) ExtFloodFill
|
||||
0096 stdcall ExtFloodFill(long long long long long) ExtFloodFill32
|
||||
0097 stub ExtSelectClipRgn
|
||||
0098 stdcall ExtTextOutA(long long long long ptr ptr long ptr) ExtTextOut32A
|
||||
0099 stdcall ExtTextOutW(long long long long ptr ptr long ptr) ExtTextOut32W
|
||||
0100 stub FillPath
|
||||
0101 stub FillRgn
|
||||
0101 stdcall FillRgn(long long long) FillRgn32
|
||||
0102 stub FixBrushOrgEx
|
||||
0103 stub FlattenPath
|
||||
0104 stdcall FloodFill(long long long long) FloodFill
|
||||
0105 stub FrameRgn
|
||||
0104 stdcall FloodFill(long long long long) FloodFill32
|
||||
0105 stdcall FrameRgn(long long long long long) FrameRgn32
|
||||
0106 stub FreeImageColorMatcher
|
||||
0107 stub GdiAssociateObject
|
||||
0108 stub GdiCleanCacheDC
|
||||
|
@ -215,7 +216,7 @@ base 1
|
|||
0208 stub GetOutlineTextMetricsW
|
||||
0209 stdcall GetPaletteEntries(long long long ptr) GetPaletteEntries
|
||||
0210 stub GetPath
|
||||
0211 stdcall GetPixel(long long long) GetPixel
|
||||
0211 stdcall GetPixel(long long long) GetPixel32
|
||||
0212 stub GetPixelFormat
|
||||
0213 stub GetPolyFillMode
|
||||
0214 stub GetROP2
|
||||
|
@ -224,7 +225,7 @@ base 1
|
|||
0217 stub GetRegionData
|
||||
0218 stub GetRelAbs
|
||||
0219 stdcall GetRgnBox(long ptr) GetRgnBox32
|
||||
0220 stdcall GetStockObject(long) GetStockObject
|
||||
0220 stdcall GetStockObject(long) GetStockObject32
|
||||
0221 stub GetStretchBltMode
|
||||
0222 stdcall GetSystemPaletteEntries(long long long ptr) GetSystemPaletteEntries
|
||||
0223 stub GetSystemPaletteUse
|
||||
|
@ -249,24 +250,24 @@ base 1
|
|||
0242 stub GetWindowExtEx
|
||||
0243 stub GetWindowOrgEx
|
||||
0244 stub GetWorldTransform
|
||||
0245 stub IntersectClipRect
|
||||
0246 stdcall InvertRgn(long long) InvertRgn
|
||||
0245 stdcall IntersectClipRect(long long long long long) IntersectClipRect32
|
||||
0246 stdcall InvertRgn(long long) InvertRgn32
|
||||
0247 stdcall LPtoDP(long ptr long) LPtoDP32
|
||||
0248 stdcall LineDDA(long long long long ptr long) THUNK_LineDDA32
|
||||
0249 stdcall LineTo(long long long) LineTo
|
||||
0249 stdcall LineTo(long long long) LineTo32
|
||||
0250 stub LoadImageColorMatcherA
|
||||
0251 stub LoadImageColorMatcherW
|
||||
0252 stub MaskBlt
|
||||
0253 stub ModifyWorldTransform
|
||||
0254 stdcall MoveToEx(long long long ptr) MoveToEx32
|
||||
0255 stub OffsetClipRgn
|
||||
0256 stdcall OffsetRgn(long long long) OffsetRgn
|
||||
0255 stdcall OffsetClipRgn(long long long) OffsetClipRgn32
|
||||
0256 stdcall OffsetRgn(long long long) OffsetRgn32
|
||||
0257 stdcall OffsetViewportOrgEx(long long long ptr) OffsetViewportOrgEx32
|
||||
0258 stdcall OffsetWindowOrgEx(long long long ptr) OffsetWindowOrgEx32
|
||||
0259 stub PaintRgn
|
||||
0259 stdcall PaintRgn(long long) PaintRgn32
|
||||
0260 stdcall PatBlt(long long long long long long) PatBlt
|
||||
0261 stub PathToRegion
|
||||
0262 stub Pie
|
||||
0262 stdcall Pie(long long long long long long long long long) Pie32
|
||||
0263 stub PlayEnhMetaFile
|
||||
0264 stub PlayEnhMetaFileRecord
|
||||
0265 stub PlayMetaFile
|
||||
|
@ -282,12 +283,12 @@ base 1
|
|||
0275 stub Polygon
|
||||
0276 stub Polyline
|
||||
0277 stub PolylineTo
|
||||
0278 stdcall PtInRegion(long long long) PtInRegion
|
||||
0279 stdcall PtVisible(long long long) PtVisible
|
||||
0278 stdcall PtInRegion(long long long) PtInRegion32
|
||||
0279 stdcall PtVisible(long long long) PtVisible32
|
||||
0280 stdcall RealizePalette(long) RealizePalette
|
||||
0281 stdcall RectInRegion(long ptr) RectInRegion32
|
||||
0282 stdcall RectVisible(long ptr) RectVisible32
|
||||
0283 stdcall Rectangle(long long long long long) Rectangle
|
||||
0283 stdcall Rectangle(long long long long long) Rectangle32
|
||||
0284 stub RemoveFontResourceA
|
||||
0285 stub RemoveFontResourceTracking
|
||||
0286 stub RemoveFontResourceW
|
||||
|
@ -295,15 +296,15 @@ base 1
|
|||
0288 stub ResetDCW
|
||||
0289 stub ResizePalette
|
||||
0290 stdcall RestoreDC(long long) RestoreDC
|
||||
0291 stub RoundRect
|
||||
0291 stdcall RoundRect(long long long long long long long) RoundRect32
|
||||
0292 stdcall SaveDC(long) SaveDC
|
||||
0293 stdcall ScaleViewportExtEx(long long long long long ptr) ScaleViewportExtEx32
|
||||
0294 stdcall ScaleWindowExtEx(long long long long long ptr) ScaleWindowExtEx32
|
||||
0295 stub SelectBrushLocal
|
||||
0296 stub SelectClipPath
|
||||
0297 stdcall SelectClipRgn(long long) SelectClipRgn
|
||||
0297 stdcall SelectClipRgn(long long) SelectClipRgn32
|
||||
0298 stub SelectFontLocal
|
||||
0299 stdcall SelectObject(long long) SelectObject
|
||||
0299 stdcall SelectObject(long long) SelectObject32
|
||||
0300 stdcall SelectPalette(long long long) SelectPalette
|
||||
0301 stub SetAbortProc
|
||||
0302 stub SetArcDirection
|
||||
|
@ -332,7 +333,7 @@ base 1
|
|||
0324 stub SetMetaRgn
|
||||
0325 stub SetMiterLimit
|
||||
0326 stub SetPaletteEntries
|
||||
0327 stdcall SetPixel(long long long long) SetPixel
|
||||
0327 stdcall SetPixel(long long long long) SetPixel32
|
||||
0328 stub SetPixelFormat
|
||||
0329 stub SetPixelV
|
||||
0330 stub SetPolyFillMode
|
||||
|
@ -364,7 +365,7 @@ base 1
|
|||
0355 stdcall TextOutA(long long long ptr long) TextOut32A
|
||||
0356 stdcall TextOutW(long long long ptr long) TextOut32W
|
||||
0357 stub UnloadNetworkFonts
|
||||
0358 stdcall UnrealizeObject(long) UnrealizeObject
|
||||
0358 stdcall UnrealizeObject(long) UnrealizeObject32
|
||||
0359 stub UpdateColors
|
||||
0360 stub WidenPath
|
||||
0361 stub pstackConnect
|
||||
|
|
|
@ -95,7 +95,18 @@ INT16 THUNK_EnumObjects16( HDC16 hdc, INT16 nObjType,
|
|||
GOBJENUMPROC16 func, LPARAM lParam )
|
||||
{
|
||||
DECL_THUNK( thunk, func, CallTo16_word_ll );
|
||||
return EnumObjects( hdc, nObjType, (GOBJENUMPROC16)&thunk, lParam );
|
||||
return EnumObjects16( hdc, nObjType, (GOBJENUMPROC16)&thunk, lParam );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* THUNK_EnumObjects32 (GDI32.89)
|
||||
*/
|
||||
INT32 THUNK_EnumObjects32( HDC32 hdc, INT32 nObjType,
|
||||
GOBJENUMPROC32 func, LPARAM lParam )
|
||||
{
|
||||
DECL_THUNK( thunk, func, CallTo32_4 );
|
||||
return EnumObjects32( hdc, nObjType, (GOBJENUMPROC32)&thunk, lParam );
|
||||
}
|
||||
|
||||
|
||||
|
@ -302,9 +313,11 @@ FARPROC16 THUNK_SetWindowsHook16( INT16 id, HOOKPROC16 proc )
|
|||
*/
|
||||
BOOL16 THUNK_UnhookWindowsHook16( INT16 id, HOOKPROC16 proc )
|
||||
{
|
||||
BOOL16 ret = FALSE;
|
||||
BOOL16 ret;
|
||||
THUNK *thunk = THUNK_Find( (FARPROC16)proc );
|
||||
if (thunk) ret = UnhookWindowsHook16( id, (HOOKPROC16)thunk );
|
||||
if (!thunk) return FALSE;
|
||||
ret = UnhookWindowsHook16( id, (HOOKPROC16)thunk );
|
||||
THUNK_Free( thunk );
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -284,7 +284,7 @@ heap 65520
|
|||
278 pascal16 GetDesktopHwnd() GetDesktopHwnd
|
||||
279 stub OldSetDeskPattern
|
||||
280 stub SetSystemMenu
|
||||
281 pascal16 GetSysColorBrush(word) GetSysColorBrush
|
||||
281 pascal16 GetSysColorBrush(word) GetSysColorBrush16
|
||||
282 pascal16 SelectPalette(word word word) SelectPalette
|
||||
283 pascal16 RealizePalette(word) RealizePalette
|
||||
284 pascal16 GetFreeSystemResources(word) GetFreeSystemResources
|
||||
|
|
|
@ -293,7 +293,7 @@ base 1
|
|||
0286 return GetShellWindow 0 0
|
||||
0287 stdcall GetSubMenu(long long) GetSubMenu
|
||||
0288 stdcall GetSysColor(long) GetSysColor
|
||||
0289 stdcall GetSysColorBrush(long) GetSysColorBrush
|
||||
0289 stdcall GetSysColorBrush(long) GetSysColorBrush32
|
||||
0290 stdcall GetSystemMenu(long long) GetSystemMenu
|
||||
0291 stdcall GetSystemMetrics(long) GetSystemMetrics
|
||||
0292 stub GetTabbedTextExtentA
|
||||
|
|
|
@ -21,7 +21,6 @@ type win16
|
|||
21 pascal AboutDlgProc(word word word long) AboutDlgProc
|
||||
22 pascal ComboLBoxWndProc(word word word long) ComboLBoxWndProc
|
||||
24 pascal16 TASK_Reschedule() TASK_Reschedule
|
||||
26 register Win32CallToStart() PE_Win32CallToStart
|
||||
27 pascal EntryAddrProc(word word) MODULE_GetEntryPoint
|
||||
28 pascal MyAlloc(word word word) MODULE_AllocateSegment
|
||||
30 pascal FormatCharDlgProc(word word word long) FormatCharDlgProc
|
||||
|
@ -288,9 +287,9 @@ type win16
|
|||
|
||||
# VxDs. The first Vxd is at 400
|
||||
#
|
||||
#400+VXD_ID register <VxD handler>(word) <VxD handler>
|
||||
#400+VXD_ID register <VxD handler>() <VxD handler>
|
||||
#
|
||||
414 register VXD_Comm(word) VXD_Comm
|
||||
#415 register VXD_Printer(word) VXD_Printer
|
||||
423 register VXD_Shell(word) VXD_Shell
|
||||
433 register VXD_PageFile(word) VXD_PageFile
|
||||
414 register VXD_Comm() VXD_Comm
|
||||
#415 register VXD_Printer() VXD_Printer
|
||||
423 register VXD_Shell() VXD_Shell
|
||||
433 register VXD_PageFile() VXD_PageFile
|
||||
|
|
|
@ -13,12 +13,13 @@
|
|||
typedef struct
|
||||
{
|
||||
GDIOBJHDR header;
|
||||
LOGBRUSH16 logbrush;
|
||||
LOGBRUSH32 logbrush;
|
||||
} BRUSHOBJ;
|
||||
|
||||
extern BOOL BRUSH_Init(void);
|
||||
extern int BRUSH_GetObject( BRUSHOBJ * brush, int count, LPSTR buffer );
|
||||
extern BOOL32 BRUSH_Init(void);
|
||||
extern INT16 BRUSH_GetObject16( BRUSHOBJ * brush, INT16 count, LPSTR buffer );
|
||||
extern INT32 BRUSH_GetObject32( BRUSHOBJ * brush, INT32 count, LPSTR buffer );
|
||||
extern BOOL32 BRUSH_DeleteObject( HBRUSH16 hbrush, BRUSHOBJ * brush );
|
||||
extern HBRUSH16 BRUSH_SelectObject(DC * dc, HBRUSH16 hbrush, BRUSHOBJ * brush);
|
||||
extern HBRUSH32 BRUSH_SelectObject(DC * dc, HBRUSH32 hbrush, BRUSHOBJ * brush);
|
||||
|
||||
#endif /* __WINE_BRUSH_H */
|
||||
|
|
|
@ -32,8 +32,9 @@ extern const char *DOSFS_IsDevice( const char *name );
|
|||
extern const char * DOSFS_GetUnixFileName( const char * name, int check_last );
|
||||
extern const char * DOSFS_GetDosTrueName( const char *name, int unix_format );
|
||||
extern int DOSFS_GetDosFileName( const char *name, char *buffer, int len );
|
||||
extern int DOSFS_FindNext( const char *path, const char *mask, int drive,
|
||||
BYTE attr, int skip, DOS_DIRENT *entry );
|
||||
extern int DOSFS_FindNext( const char *path, const char *short_mask,
|
||||
const char *long_mask, int drive, BYTE attr,
|
||||
int skip, DOS_DIRENT *entry );
|
||||
|
||||
|
||||
extern int DOS_GetFreeSpace(int drive, long *size, long *available);
|
||||
|
|
|
@ -9,16 +9,17 @@
|
|||
|
||||
#include "win.h"
|
||||
|
||||
extern void NC_GetMinMaxInfo( HWND hwnd, POINT16 *maxSize, POINT16 *maxPos,
|
||||
extern void NC_GetMinMaxInfo( WND *pWnd, POINT16 *maxSize, POINT16 *maxPos,
|
||||
POINT16 *minTrack, POINT16 *maxTrack );
|
||||
extern void NC_DoNCPaint( HWND hwnd, HRGN32 clip, BOOL suppress_menupaint );
|
||||
extern LONG NC_HandleNCPaint( HWND hwnd , HRGN32 clip);
|
||||
extern void NC_DoNCPaint( HWND32 hwnd, HRGN32 clip, BOOL32 suppress_menupaint);
|
||||
extern LONG NC_HandleNCPaint( HWND32 hwnd , HRGN32 clip);
|
||||
extern LONG NC_HandleNCActivate( WND *pwnd, WPARAM16 wParam );
|
||||
extern LONG NC_HandleNCCalcSize( WND *pWnd, RECT16 *winRect );
|
||||
extern LONG NC_HandleNCHitTest( HWND hwnd, POINT16 pt );
|
||||
extern LONG NC_HandleNCLButtonDown( HWND hwnd, WPARAM16 wParam, LPARAM lParam );
|
||||
extern LONG NC_HandleNCHitTest( HWND32 hwnd, POINT16 pt );
|
||||
extern LONG NC_HandleNCLButtonDown( HWND32 hwnd, WPARAM16 wParam,
|
||||
LPARAM lParam );
|
||||
extern LONG NC_HandleNCLButtonDblClk( WND *pWnd, WPARAM16 wParam, LPARAM lParam);
|
||||
extern LONG NC_HandleSysCommand( HWND hwnd, WPARAM16 wParam, POINT16 pt );
|
||||
extern LONG NC_HandleSetCursor( HWND hwnd, WPARAM16 wParam, LPARAM lParam );
|
||||
extern LONG NC_HandleSysCommand( HWND32 hwnd, WPARAM16 wParam, POINT16 pt );
|
||||
extern LONG NC_HandleSetCursor( HWND32 hwnd, WPARAM16 wParam, LPARAM lParam );
|
||||
|
||||
#endif /* __WINE_NONCLIENT_H */
|
||||
|
|
|
@ -13,10 +13,11 @@
|
|||
typedef struct
|
||||
{
|
||||
GDIOBJHDR header;
|
||||
LOGPEN16 logpen;
|
||||
LOGPEN32 logpen;
|
||||
} PENOBJ;
|
||||
|
||||
extern int PEN_GetObject( PENOBJ * pen, int count, LPSTR buffer );
|
||||
extern HPEN16 PEN_SelectObject( DC * dc, HPEN16 hpen, PENOBJ * pen );
|
||||
extern INT16 PEN_GetObject16( PENOBJ * pen, INT16 count, LPSTR buffer );
|
||||
extern INT32 PEN_GetObject32( PENOBJ * pen, INT32 count, LPSTR buffer );
|
||||
extern HPEN32 PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen );
|
||||
|
||||
#endif /* __WINE_PEN_H */
|
||||
|
|
|
@ -17,8 +17,8 @@ typedef struct
|
|||
} RGNOBJ;
|
||||
|
||||
|
||||
extern BOOL16 REGION_DeleteObject( HRGN32 hrgn, RGNOBJ * obj );
|
||||
extern BOOL16 REGION_UnionRectWithRgn( HRGN32 hrgn, LPRECT16 lpRect );
|
||||
extern BOOL16 REGION_FrameRgn( HRGN32 dest, HRGN32 src, INT32 x, INT32 y );
|
||||
extern BOOL32 REGION_DeleteObject( HRGN32 hrgn, RGNOBJ * obj );
|
||||
extern BOOL32 REGION_UnionRectWithRgn( HRGN32 hrgn, LPRECT16 lpRect );
|
||||
extern BOOL32 REGION_FrameRgn( HRGN32 dest, HRGN32 src, INT32 x, INT32 y );
|
||||
|
||||
#endif /* __WINE_REGION_H */
|
||||
|
|
|
@ -11,27 +11,27 @@
|
|||
|
||||
struct SysColorObjects
|
||||
{
|
||||
HBRUSH16 hbrushScrollbar; /* COLOR_SCROLLBAR */
|
||||
HBRUSH32 hbrushScrollbar; /* COLOR_SCROLLBAR */
|
||||
/* COLOR_BACKGROUND */
|
||||
HBRUSH16 hbrushActiveCaption; /* COLOR_ACTIVECAPTION */
|
||||
HBRUSH16 hbrushInactiveCaption; /* COLOR_INACTIVECAPTION */
|
||||
HBRUSH16 hbrushMenu; /* COLOR_MENU */
|
||||
HBRUSH16 hbrushWindow; /* COLOR_WINDOW */
|
||||
HPEN16 hpenWindowFrame; /* COLOR_WINDOWFRAME */
|
||||
HBRUSH32 hbrushActiveCaption; /* COLOR_ACTIVECAPTION */
|
||||
HBRUSH32 hbrushInactiveCaption; /* COLOR_INACTIVECAPTION */
|
||||
HBRUSH32 hbrushMenu; /* COLOR_MENU */
|
||||
HBRUSH32 hbrushWindow; /* COLOR_WINDOW */
|
||||
HPEN32 hpenWindowFrame; /* COLOR_WINDOWFRAME */
|
||||
/* COLOR_MENUTEXT */
|
||||
HPEN16 hpenWindowText; /* COLOR_WINDOWTEXT */
|
||||
HPEN32 hpenWindowText; /* COLOR_WINDOWTEXT */
|
||||
/* COLOR_CAPTIONTEXT */
|
||||
HBRUSH16 hbrushActiveBorder; /* COLOR_ACTIVEBORDER */
|
||||
HBRUSH16 hbrushInactiveBorder; /* COLOR_INACTIVEBORDER */
|
||||
HBRUSH32 hbrushActiveBorder; /* COLOR_ACTIVEBORDER */
|
||||
HBRUSH32 hbrushInactiveBorder; /* COLOR_INACTIVEBORDER */
|
||||
/* COLOR_APPWORKSPACE */
|
||||
HBRUSH16 hbrushHighlight; /* COLOR_HIGHLIGHT */
|
||||
HBRUSH32 hbrushHighlight; /* COLOR_HIGHLIGHT */
|
||||
/* COLOR_HIGHLIGHTTEXT */
|
||||
HBRUSH16 hbrushBtnFace; /* COLOR_BTNFACE */
|
||||
HBRUSH16 hbrushBtnShadow; /* COLOR_BTNSHADOW */
|
||||
HBRUSH32 hbrushBtnFace; /* COLOR_BTNFACE */
|
||||
HBRUSH32 hbrushBtnShadow; /* COLOR_BTNSHADOW */
|
||||
/* COLOR_GRAYTEXT */
|
||||
/* COLOR_BTNTEXT */
|
||||
/* COLOR_INACTIVECAPTIONTEXT */
|
||||
HBRUSH16 hbrushBtnHighlight; /* COLOR_BTNHIGHLIGHT */
|
||||
HBRUSH32 hbrushBtnHighlight; /* COLOR_BTNHIGHLIGHT */
|
||||
};
|
||||
|
||||
extern void SYSCOLOR_Init(void);
|
||||
|
|
|
@ -805,16 +805,16 @@ DECL_WINELIB_TYPE(LPBITMAP);
|
|||
|
||||
typedef struct
|
||||
{
|
||||
UINT16 lbStyle;
|
||||
UINT16 lbStyle;
|
||||
COLORREF lbColor WINE_PACKED;
|
||||
INT16 lbHatch;
|
||||
INT16 lbHatch;
|
||||
} LOGBRUSH16, *LPLOGBRUSH16;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
UINT32 lbStyle;
|
||||
UINT32 lbStyle;
|
||||
COLORREF lbColor;
|
||||
INT32 lbHatch;
|
||||
INT32 lbHatch;
|
||||
} LOGBRUSH32, *LPLOGBRUSH32;
|
||||
|
||||
DECL_WINELIB_TYPE(LOGBRUSH);
|
||||
|
@ -3639,6 +3639,7 @@ BOOL16 DCHook(HDC16,WORD,DWORD,LPARAM);
|
|||
VOID DirectedYield(HTASK16);
|
||||
HGLOBAL16 DirectResAlloc(HINSTANCE16,WORD,UINT16);
|
||||
BOOL16 EnableHardwareInput(BOOL16);
|
||||
INT16 ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16);
|
||||
HANDLE16 FarGetOwner(HGLOBAL16);
|
||||
VOID FarSetOwner(HGLOBAL16,HANDLE16);
|
||||
VOID FillWindow(HWND16,HWND16,HDC16,HBRUSH16);
|
||||
|
@ -3673,12 +3674,16 @@ WORD GlobalDOSFree(WORD);
|
|||
WORD GlobalPageLock(HGLOBAL16);
|
||||
WORD GlobalPageUnlock(HGLOBAL16);
|
||||
INT16 InitApp(HINSTANCE16);
|
||||
INT16 IntersectVisRect(HDC16,INT16,INT16,INT16,INT16);
|
||||
BOOL16 IsGDIObject(HGDIOBJ16);
|
||||
BOOL16 IsSharedSelector(HANDLE16);
|
||||
BOOL16 IsTask(HTASK16);
|
||||
HTASK16 IsTaskLocked(void);
|
||||
BOOL16 LocalInit(HANDLE16,WORD,WORD);
|
||||
HTASK16 LockCurrentTask(BOOL16);
|
||||
DWORD MoveTo(HDC16,INT16,INT16);
|
||||
DWORD OffsetViewportOrg(HDC16,INT16,INT16);
|
||||
INT16 OffsetVisRgn(HDC16,INT16,INT16);
|
||||
DWORD OffsetWindowOrg(HDC16,INT16,INT16);
|
||||
VOID OldYield(void);
|
||||
INT16 OpenComm(LPCSTR,UINT16,UINT16);
|
||||
|
@ -3686,9 +3691,12 @@ VOID PaintRect(HWND16,HWND16,HDC16,HBRUSH16,const RECT16*);
|
|||
VOID PostEvent(HTASK16);
|
||||
WORD PrestoChangoSelector(WORD,WORD);
|
||||
INT16 ReadComm(INT16,LPSTR,INT16);
|
||||
INT16 RestoreVisRgn(HDC16);
|
||||
HRGN16 SaveVisRgn(HDC16);
|
||||
DWORD ScaleViewportExt(HDC16,INT16,INT16,INT16,INT16);
|
||||
DWORD ScaleWindowExt(HDC16,INT16,INT16,INT16,INT16);
|
||||
WORD SelectorAccessRights(WORD,WORD,WORD);
|
||||
INT16 SelectVisRgn(HDC16,HRGN16);
|
||||
DWORD SetBitmapDimension(HBITMAP16,INT16,INT16);
|
||||
DWORD SetBrushOrg(HDC16,INT16,INT16);
|
||||
UINT16* SetCommEventMask(INT16,UINT16);
|
||||
|
@ -3740,6 +3748,9 @@ DWORD GetFileInformationByHandle(HFILE,BY_HANDLE_FILE_INFORMATION*);
|
|||
VOID GetLocalTime(LPSYSTEMTIME);
|
||||
DWORD GetLogicalDrives(void);
|
||||
HANDLE32 GetProcessHeap(void);
|
||||
DWORD GetShortPathName32A(LPCSTR,LPSTR,DWORD);
|
||||
DWORD GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
|
||||
#define GetShortPathName WINELIB_NAME_AW(GetShortPathName)
|
||||
HFILE GetStdHandle(DWORD);
|
||||
BOOL32 GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
|
||||
VOID GetSystemTime(LPSYSTEMTIME);
|
||||
|
@ -3801,21 +3812,14 @@ BOOL32 WriteFile(HFILE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
|
|||
|
||||
BOOL16 CheckDlgButton(HWND32,INT32,UINT32);
|
||||
BOOL16 CheckRadioButton(HWND32,UINT32,UINT32,UINT32);
|
||||
INT16 CombineRgn(HRGN32,HRGN32,HRGN32,INT32);
|
||||
LONG CopyLZFile(HFILE,HFILE);
|
||||
HBITMAP16 CreateBitmap(INT32,INT32,UINT32,UINT32,LPCVOID);
|
||||
BOOL16 CreateCaret(HWND32,HBITMAP32,INT32,INT32);
|
||||
HBITMAP16 CreateCompatibleBitmap(HDC32,INT32,INT32);
|
||||
HBITMAP16 CreateDiscardableBitmap(HDC32,INT32,INT32);
|
||||
HRGN16 CreateEllipticRgn(INT32,INT32,INT32,INT32);
|
||||
HRGN16 CreateRectRgn(INT32,INT32,INT32,INT32);
|
||||
HRGN16 CreateRoundRectRgn(INT32,INT32,INT32,INT32,INT32,INT32);
|
||||
BOOL16 DestroyCaret(void);
|
||||
BOOL16 EndDialog(HWND32,INT32);
|
||||
BOOL16 EqualRgn(HRGN32,HRGN32);
|
||||
INT16 ExcludeUpdateRgn(HDC32,HWND32);
|
||||
BOOL16 ExtFloodFill(HDC32,INT32,INT32,COLORREF,UINT32);
|
||||
BOOL16 FloodFill(HDC32,INT32,INT32,COLORREF);
|
||||
DWORD GetAppCompatFlags(HTASK32);
|
||||
LONG GetBitmapBits(HBITMAP32,LONG,LPVOID);
|
||||
WORD GetClassWord(HWND32,INT32);
|
||||
|
@ -3833,9 +3837,7 @@ void LZDone(void);
|
|||
HFILE LZInit(HFILE);
|
||||
LONG LZSeek(HFILE,LONG,INT32);
|
||||
INT16 LZStart(void);
|
||||
INT16 OffsetRgn(HRGN32,INT32,INT32);
|
||||
HFILE OpenFile(LPCSTR,OFSTRUCT*,UINT32);
|
||||
BOOL16 PtInRegion(HRGN32,INT32,INT32);
|
||||
UINT16 RealizePalette(HDC32);
|
||||
DWORD RegCloseKey(HKEY);
|
||||
DWORD RegFlushKey(HKEY);
|
||||
|
@ -3879,6 +3881,9 @@ BOOL16 AppendMenu16(HMENU16,UINT16,UINT16,SEGPTR);
|
|||
BOOL32 AppendMenu32A(HMENU32,UINT32,UINT32,LPCSTR);
|
||||
BOOL32 AppendMenu32W(HMENU32,UINT32,UINT32,LPCWSTR);
|
||||
#define AppendMenu WINELIB_NAME_AW(AppendMenu)
|
||||
BOOL16 Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
|
||||
BOOL32 Arc32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
|
||||
#define Arc WINELIB_NAME(Arc)
|
||||
HDC16 BeginPaint16(HWND16,LPPAINTSTRUCT16);
|
||||
HDC32 BeginPaint32(HWND32,LPPAINTSTRUCT32);
|
||||
#define BeginPaint WINELIB_NAME(BeginPaint)
|
||||
|
@ -3930,6 +3935,9 @@ BOOL32 CharToOemBuff32W(LPCWSTR,LPSTR,DWORD);
|
|||
HWND16 ChildWindowFromPoint16(HWND16,POINT16);
|
||||
HWND32 ChildWindowFromPoint32(HWND32,POINT32);
|
||||
#define ChildWindowFromPoint WINELIB_NAME(ChildWindowFromPoint)
|
||||
BOOL16 Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
|
||||
BOOL32 Chord32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
|
||||
#define Chord WINELIB_NAME(Chord)
|
||||
INT16 ClearCommBreak16(INT16);
|
||||
BOOL32 ClearCommBreak32(INT32);
|
||||
#define ClearCommBreak WINELIB_NAME(ClearCommBreak)
|
||||
|
@ -3942,6 +3950,9 @@ BOOL32 ClipCursor32(const RECT32*);
|
|||
HMETAFILE16 CloseMetaFile16(HDC16);
|
||||
HMETAFILE32 CloseMetaFile32(HDC32);
|
||||
#define CloseMetaFile WINELIB_NAME(CloseMetaFile)
|
||||
INT16 CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
|
||||
INT32 CombineRgn32(HRGN32,HRGN32,HRGN32,INT32);
|
||||
#define CombineRgn WINELIB_NAME(CombineRgn)
|
||||
UINT16 CompareString16(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
|
||||
UINT32 CompareString32A(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD);
|
||||
UINT32 CompareString32W(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD);
|
||||
|
@ -3958,6 +3969,9 @@ BOOL32 CopyRect32(RECT32*,const RECT32*);
|
|||
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)
|
||||
HWND16 CreateDialog16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16);
|
||||
#define CreateDialog32A(inst,ptr,hwnd,dlg) \
|
||||
CreateDialogParam32A(inst,ptr,hwnd,dlg,0)
|
||||
|
@ -3978,10 +3992,16 @@ HWND16 CreateDialogParam16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16,LPARAM);
|
|||
HWND32 CreateDialogParam32A(HINSTANCE32,LPCSTR,HWND32,DLGPROC32,LPARAM);
|
||||
HWND32 CreateDialogParam32W(HINSTANCE32,LPCWSTR,HWND32,DLGPROC32,LPARAM);
|
||||
#define CreateDialogParam WINELIB_NAME_AW(CreateDialogParam)
|
||||
HBRUSH16 CreateDIBPatternBrush16(HGLOBAL16,UINT16);
|
||||
HBRUSH32 CreateDIBPatternBrush32(HGLOBAL32,UINT32);
|
||||
#define CreateDIBPatternBrush WINELIB_NAME(CreateDIBPatternBrush)
|
||||
BOOL16 CreateDirectory16(LPCSTR,LPVOID);
|
||||
BOOL32 CreateDirectory32A(LPCSTR,LPSECURITY_ATTRIBUTES);
|
||||
BOOL32 CreateDirectory32W(LPCWSTR,LPSECURITY_ATTRIBUTES);
|
||||
#define CreateDirectory WINELIB_NAME_AW(CreateDirectory)
|
||||
HRGN16 CreateEllipticRgn16(INT16,INT16,INT16,INT16);
|
||||
HRGN32 CreateEllipticRgn32(INT32,INT32,INT32,INT32);
|
||||
#define CreateEllipticRgn WINELIB_NAME(CreateEllipticRgn)
|
||||
HRGN16 CreateEllipticRgnIndirect16(const RECT16 *);
|
||||
HRGN32 CreateEllipticRgnIndirect32(const RECT32 *);
|
||||
#define CreateEllipticRgnIndirect WINELIB_NAME(CreateEllipticRgnIndirect)
|
||||
|
@ -3993,19 +4013,40 @@ HFONT16 CreateFontIndirect16(const LOGFONT16*);
|
|||
HFONT32 CreateFontIndirect32A(const LOGFONT32A*);
|
||||
HFONT32 CreateFontIndirect32W(const LOGFONT32W*);
|
||||
#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
|
||||
HBRUSH16 CreateHatchBrush16(INT16,COLORREF);
|
||||
HBRUSH32 CreateHatchBrush32(INT32,COLORREF);
|
||||
#define CreateHatchBrush WINELIB_NAME(CreateHatchBrush)
|
||||
HDC16 CreateMetaFile16(LPCSTR);
|
||||
HDC32 CreateMetaFile32A(LPCSTR);
|
||||
HDC32 CreateMetaFile32W(LPCWSTR);
|
||||
#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
|
||||
HBRUSH16 CreatePatternBrush16(HBITMAP16);
|
||||
HBRUSH32 CreatePatternBrush32(HBITMAP32);
|
||||
#define CreatePatternBrush WINELIB_NAME(CreatePatternBrush)
|
||||
HPEN16 CreatePen16(INT16,INT16,COLORREF);
|
||||
HPEN32 CreatePen32(INT32,INT32,COLORREF);
|
||||
#define CreatePen WINELIB_NAME(CreatePen)
|
||||
HPEN16 CreatePenIndirect16(const LOGPEN16*);
|
||||
HPEN32 CreatePenIndirect32(const LOGPEN32*);
|
||||
#define CreatePenIndirect WINELIB_NAME(CreatePenIndirect)
|
||||
HRGN16 CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
|
||||
HRGN32 CreatePolyPolygonRgn32(const POINT32*,const INT32*,INT32,INT32);
|
||||
#define CreatePolyPolygonRgn WINELIB_NAME(CreatePolyPolygonRgn)
|
||||
HRGN16 CreatePolygonRgn16(const POINT16*,INT16,INT16);
|
||||
HRGN32 CreatePolygonRgn32(const POINT32*,INT32,INT32);
|
||||
#define CreatePolygonRgn WINELIB_NAME(CreatePolygonRgn)
|
||||
HRGN16 CreateRectRgn16(INT16,INT16,INT16,INT16);
|
||||
HRGN32 CreateRectRgn32(INT32,INT32,INT32,INT32);
|
||||
#define CreateRectRgn WINELIB_NAME(CreateRectRgn)
|
||||
HRGN16 CreateRectRgnIndirect16(const RECT16*);
|
||||
HRGN32 CreateRectRgnIndirect32(const RECT32*);
|
||||
#define CreateRectRgnIndirect WINELIB_NAME(CreateRectRgnIndirect)
|
||||
HRGN16 CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
|
||||
HRGN32 CreateRoundRectRgn32(INT32,INT32,INT32,INT32,INT32,INT32);
|
||||
#define CreateRoundRectRgn WINELIB_NAME(CreateRoundRectRgn)
|
||||
HBRUSH16 CreateSolidBrush16(COLORREF);
|
||||
HBRUSH32 CreateSolidBrush32(COLORREF);
|
||||
#define CreateSolidBrush WINELIB_NAME(CreateSolidBrush)
|
||||
HWND16 CreateWindow16(LPCSTR,LPCSTR,DWORD,INT16,INT16,INT16,INT16,HWND16,HMENU16,HINSTANCE16,LPVOID);
|
||||
#define CreateWindow32A(className,titleName,style,x,y,width,height,\
|
||||
parent,menu,instance,param) \
|
||||
|
@ -4043,6 +4084,9 @@ BOOL32 DeleteFile32W(LPCWSTR);
|
|||
BOOL16 DeleteMetaFile16(HMETAFILE16);
|
||||
BOOL32 DeleteMetaFile32(HMETAFILE32);
|
||||
#define DeleteMetaFile WINELIB_NAME(DeleteMetaFile)
|
||||
BOOL16 DeleteObject16(HGDIOBJ16);
|
||||
BOOL32 DeleteObject32(HGDIOBJ32);
|
||||
#define DeleteObject WINELIB_NAME(DeleteObject)
|
||||
INT16 DialogBox16(HINSTANCE16,SEGPTR,HWND16,DLGPROC16);
|
||||
#define DialogBox32A(inst,template,owner,func) \
|
||||
DialogBoxParam32A(inst,template,owner,func,0)
|
||||
|
@ -4083,6 +4127,9 @@ INT16 DrawText16(HDC16,LPCSTR,INT16,LPRECT16,UINT16);
|
|||
INT32 DrawText32A(HDC32,LPCSTR,INT32,LPRECT32,UINT32);
|
||||
INT32 DrawText32W(HDC32,LPCWSTR,INT32,LPRECT32,UINT32);
|
||||
#define DrawText WINELIB_NAME_AW(DrawText)
|
||||
BOOL16 Ellipse16(HDC16,INT16,INT16,INT16,INT16);
|
||||
BOOL32 Ellipse32(HDC32,INT32,INT32,INT32,INT32);
|
||||
#define Ellipse WINELIB_NAME(Ellipse)
|
||||
BOOL16 EnableScrollBar16(HWND16,INT16,UINT16);
|
||||
BOOL32 EnableScrollBar32(HWND32,INT32,UINT32);
|
||||
#define EnableScrollBar WINELIB_NAME(EnableScrollBar)
|
||||
|
@ -4092,6 +4139,9 @@ BOOL32 EndPaint32(HWND32,const PAINTSTRUCT32*);
|
|||
BOOL16 EnumChildWindows16(HWND16,WNDENUMPROC16,LPARAM);
|
||||
BOOL32 EnumChildWindows32(HWND32,WNDENUMPROC32,LPARAM);
|
||||
#define EnumChildWindows WINELIB_NAME(EnumChildWindows)
|
||||
INT16 EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
|
||||
INT32 EnumObjects32(HDC32,INT32,GOBJENUMPROC32,LPARAM);
|
||||
#define EnumObjects WINELIB_NAME(EnumObjects)
|
||||
INT16 EnumProps16(HWND16,PROPENUMPROC16);
|
||||
INT32 EnumProps32A(HWND32,PROPENUMPROC32A);
|
||||
INT32 EnumProps32W(HWND32,PROPENUMPROC32W);
|
||||
|
@ -4106,9 +4156,18 @@ BOOL32 EnumWindows32(WNDENUMPROC32,LPARAM);
|
|||
BOOL16 EqualRect16(const RECT16*,const RECT16*);
|
||||
BOOL32 EqualRect32(const RECT32*,const RECT32*);
|
||||
#define EqualRect WINELIB_NAME(EqualRect)
|
||||
BOOL16 EqualRgn16(HRGN16,HRGN16);
|
||||
BOOL32 EqualRgn32(HRGN32,HRGN32);
|
||||
#define EqualRgn WINELIB_NAME(EqualRgn)
|
||||
LONG EscapeCommFunction16(UINT16,UINT16);
|
||||
BOOL32 EscapeCommFunction32(INT32,UINT32);
|
||||
#define EscapeCommFunction WINELIB_NAME(EscapeCommFunction)
|
||||
INT16 ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
|
||||
INT32 ExcludeClipRect32(HDC32,INT32,INT32,INT32,INT32);
|
||||
#define ExcludeClipRect WINELIB_NAME(ExcludeClipRect)
|
||||
BOOL16 ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
|
||||
BOOL32 ExtFloodFill32(HDC32,INT32,INT32,COLORREF,UINT32);
|
||||
#define ExtFloodFill WINELIB_NAME(ExtFloodFill)
|
||||
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*);
|
||||
|
@ -4116,6 +4175,9 @@ BOOL32 ExtTextOut32W(HDC32,INT32,INT32,UINT32,const RECT32*,LPCWSTR,UINT32,c
|
|||
INT16 FillRect16(HDC16,const RECT16*,HBRUSH16);
|
||||
INT32 FillRect32(HDC32,const RECT32*,HBRUSH32);
|
||||
#define FillRect WINELIB_NAME(FillRect)
|
||||
BOOL16 FillRgn16(HDC16,HRGN16,HBRUSH16);
|
||||
BOOL32 FillRgn32(HDC32,HRGN32,HBRUSH32);
|
||||
#define FillRgn WINELIB_NAME(FillRgn)
|
||||
BOOL16 FindClose16(HANDLE16);
|
||||
BOOL32 FindClose32(HANDLE32);
|
||||
#define FindClose WINELIB_NAME(FindClose)
|
||||
|
@ -4139,9 +4201,15 @@ HWND16 FindWindowEx16(HWND16,HWND16,SEGPTR,LPCSTR);
|
|||
HWND32 FindWindowEx32A(HWND32,HWND32,LPCSTR,LPCSTR);
|
||||
HWND32 FindWindowEx32W(HWND32,HWND32,LPCWSTR,LPCWSTR);
|
||||
#define FindWindowEx WINELIB_NAME_AW(FindWindowEx)
|
||||
BOOL16 FloodFill16(HDC16,INT16,INT16,COLORREF);
|
||||
BOOL32 FloodFill32(HDC32,INT32,INT32,COLORREF);
|
||||
#define FloodFill WINELIB_NAME(FloodFill)
|
||||
INT16 FrameRect16(HDC16,const RECT16*,HBRUSH16);
|
||||
INT32 FrameRect32(HDC32,const RECT32*,HBRUSH32);
|
||||
#define FrameRect WINELIB_NAME(FrameRect)
|
||||
BOOL16 FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
|
||||
BOOL32 FrameRgn32(HDC32,HRGN32,HBRUSH32,INT32,INT32);
|
||||
#define FrameRgn WINELIB_NAME(FrameRgn)
|
||||
BOOL16 FreeModule16(HMODULE16);
|
||||
#define FreeModule32(handle) FreeLibrary32(handle)
|
||||
#define FreeModule WINELIB_NAME(FreeModule)
|
||||
|
@ -4263,6 +4331,9 @@ INT32 GetObject32W(HANDLE32,INT32,LPVOID);
|
|||
HWND16 GetParent16(HWND16);
|
||||
HWND32 GetParent32(HWND32);
|
||||
#define GetParent WINELIB_NAME(GetParent)
|
||||
COLORREF GetPixel16(HDC16,INT16,INT16);
|
||||
COLORREF GetPixel32(HDC32,INT32,INT32);
|
||||
#define GetPixel WINELIB_NAME(GetPixel)
|
||||
FARPROC16 GetProcAddress16(HMODULE16,SEGPTR);
|
||||
FARPROC32 GetProcAddress32(HMODULE32,LPCSTR);
|
||||
#define GetProcAddress WINELIB_NAME(GetProcAddress)
|
||||
|
@ -4282,9 +4353,12 @@ INT32 GetScrollPos32(HWND32,INT32);
|
|||
BOOL16 GetScrollRange16(HWND16,INT16,LPINT16,LPINT16);
|
||||
BOOL32 GetScrollRange32(HWND32,INT32,LPINT32,LPINT32);
|
||||
#define GetScrollRange WINELIB_NAME(GetScrollRange)
|
||||
DWORD GetShortPathName32A(LPCSTR,LPSTR,DWORD);
|
||||
DWORD GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
|
||||
#define GetShortPathName WINELIB_NAME_AW(GetShortPathName)
|
||||
HGDIOBJ16 GetStockObject16(INT16);
|
||||
HGDIOBJ32 GetStockObject32(INT32);
|
||||
#define GetStockObject WINELIB_NAME(GetStockObject)
|
||||
HBRUSH16 GetSysColorBrush16(INT16);
|
||||
HBRUSH32 GetSysColorBrush32(INT32);
|
||||
#define GetSysColorBrush WINELIB_NAME(GetSysColorBrush)
|
||||
HWND16 GetSysModalWindow16(void);
|
||||
#define GetSysModalWindow32() ((HWND32)0)
|
||||
#define GetSysModalWindow WINELIB_NAME(GetSysModalWindow)
|
||||
|
@ -4398,6 +4472,9 @@ BOOL16 InsertMenu16(HMENU16,UINT16,UINT16,UINT16,SEGPTR);
|
|||
BOOL32 InsertMenu32A(HMENU32,UINT32,UINT32,UINT32,LPCSTR);
|
||||
BOOL32 InsertMenu32W(HMENU32,UINT32,UINT32,UINT32,LPCWSTR);
|
||||
#define InsertMenu WINELIB_NAME_AW(InsertMenu)
|
||||
INT16 IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
|
||||
INT32 IntersectClipRect32(HDC32,INT32,INT32,INT32,INT32);
|
||||
#define IntersectClipRect WINELIB_NAME(IntersectClipRect)
|
||||
BOOL16 IntersectRect16(LPRECT16,const RECT16*,const RECT16*);
|
||||
BOOL32 IntersectRect32(LPRECT32,const RECT32*,const RECT32*);
|
||||
#define IntersectRect WINELIB_NAME(IntersectRect)
|
||||
|
@ -4407,6 +4484,9 @@ void InvalidateRect32(HWND32,const RECT32*,BOOL32);
|
|||
void InvertRect16(HDC16,const RECT16*);
|
||||
void InvertRect32(HDC32,const RECT32*);
|
||||
#define InvertRect WINELIB_NAME(InvertRect)
|
||||
BOOL16 InvertRgn16(HDC16,HRGN16);
|
||||
BOOL32 InvertRgn32(HDC32,HRGN32);
|
||||
#define InvertRgn WINELIB_NAME(InvertRgn)
|
||||
BOOL16 IsBadCodePtr16(SEGPTR);
|
||||
BOOL32 IsBadCodePtr32(FARPROC32);
|
||||
#define IsBadCodePtr WINELIB_NAME(IsBadCodePtr)
|
||||
|
@ -4461,6 +4541,9 @@ INT32 LZRead32(HFILE,LPVOID,UINT32);
|
|||
VOID LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
|
||||
BOOL32 LineDDA32(INT32,INT32,INT32,INT32,LINEDDAPROC32,LPARAM);
|
||||
#define LineDDA WINELIB_NAME(LineDDA)
|
||||
BOOL16 LineTo16(HDC16,INT16,INT16);
|
||||
BOOL32 LineTo32(HDC32,INT32,INT32);
|
||||
#define LineTo WINELIB_NAME(LineTo)
|
||||
HACCEL16 LoadAccelerators16(HINSTANCE16,SEGPTR);
|
||||
HACCEL32 LoadAccelerators32A(HINSTANCE32,LPCSTR);
|
||||
HACCEL32 LoadAccelerators32W(HINSTANCE32,LPCWSTR);
|
||||
|
@ -4556,19 +4639,31 @@ BOOL32 OemToChar32W(LPCSTR,LPWSTR);
|
|||
BOOL32 OemToCharBuff32A(LPSTR,LPSTR,DWORD);
|
||||
BOOL32 OemToCharBuff32W(LPCSTR,LPWSTR,DWORD);
|
||||
#define OemToCharBuff WINELIB_NAME_AW(OemToCharBuff)
|
||||
INT16 OffsetClipRgn16(HDC16,INT16,INT16);
|
||||
INT32 OffsetClipRgn32(HDC32,INT32,INT32);
|
||||
#define OffsetClipRgn WINELIB_NAME(OffsetClipRgn)
|
||||
void OffsetRect16(LPRECT16,INT16,INT16);
|
||||
void OffsetRect32(LPRECT32,INT32,INT32);
|
||||
#define OffsetRect WINELIB_NAME(OffsetRect)
|
||||
INT16 OffsetRgn16(HRGN16,INT16,INT16);
|
||||
INT32 OffsetRgn32(HRGN32,INT32,INT32);
|
||||
#define OffsetRgn WINELIB_NAME(OffsetRgn)
|
||||
BOOL16 OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
|
||||
BOOL32 OffsetViewportOrgEx32(HDC32,INT32,INT32,LPPOINT32);
|
||||
#define OffsetViewportOrgEx WINELIB_NAME(OffsetViewportOrgEx)
|
||||
BOOL16 OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
|
||||
BOOL32 OffsetWindowOrgEx32(HDC32,INT32,INT32,LPPOINT32);
|
||||
#define OffsetWindowOrgEx WINELIB_NAME(OffsetWindowOrgEx)
|
||||
BOOL16 PaintRgn16(HDC16,HRGN16);
|
||||
BOOL32 PaintRgn32(HDC32,HRGN32);
|
||||
#define PaintRgn WINELIB_NAME(PaintRgn)
|
||||
BOOL16 PeekMessage16(LPMSG16,HWND16,UINT16,UINT16,UINT16);
|
||||
BOOL32 PeekMessage32A(LPMSG32,HWND32,UINT32,UINT32,UINT32);
|
||||
BOOL32 PeekMessage32W(LPMSG32,HWND32,UINT32,UINT32,UINT32);
|
||||
#define PeekMessage WINELIB_NAME_AW(PeekMessage)
|
||||
BOOL16 Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
|
||||
BOOL32 Pie32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
|
||||
#define Pie WINELIB_NAME(Pie)
|
||||
BOOL16 PolyPolygon16(HDC16,LPPOINT16,LPINT16,UINT16);
|
||||
BOOL32 PolyPolygon32(HDC32,LPPOINT32,LPINT32,UINT32);
|
||||
#define PolyPolygon WINELIB_NAME(PolyPolygon)
|
||||
|
@ -4587,6 +4682,15 @@ BOOL16 PostAppMessage16(HTASK16,UINT16,WPARAM16,LPARAM);
|
|||
BOOL16 PtInRect16(const RECT16*,POINT16);
|
||||
BOOL32 PtInRect32(const RECT32*,POINT32);
|
||||
#define PtInRect WINELIB_NAME(PtInRect)
|
||||
BOOL16 PtInRegion16(HRGN16,INT16,INT16);
|
||||
BOOL32 PtInRegion32(HRGN32,INT32,INT32);
|
||||
#define PtInRegion WINELIB_NAME(PtInRegion)
|
||||
BOOL16 PtVisible16(HDC16,INT16,INT16);
|
||||
BOOL32 PtVisible32(HDC32,INT32,INT32);
|
||||
#define PtVisible WINELIB_NAME(PtVisible)
|
||||
BOOL16 Rectangle16(HDC16,INT16,INT16,INT16,INT16);
|
||||
BOOL32 Rectangle32(HDC32,INT32,INT32,INT32,INT32);
|
||||
#define Rectangle WINELIB_NAME(Rectangle)
|
||||
BOOL16 RectInRegion16(HRGN16,const RECT16 *);
|
||||
BOOL32 RectInRegion32(HRGN32,const RECT32 *);
|
||||
#define RectInRegion WINELIB_NAME(RectInRegion)
|
||||
|
@ -4659,6 +4763,9 @@ BOOL16 RemoveDirectory16(LPCSTR);
|
|||
BOOL32 RemoveDirectory32A(LPCSTR);
|
||||
BOOL32 RemoveDirectory32W(LPCWSTR);
|
||||
#define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory)
|
||||
BOOL16 RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
|
||||
BOOL32 RoundRect32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32);
|
||||
#define RoundRect WINELIB_NAME(RoundRect)
|
||||
BOOL16 ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
|
||||
BOOL32 ScaleViewportExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
|
||||
#define ScaleViewportExtEx WINELIB_NAME(ScaleViewportExtEx)
|
||||
|
@ -4668,6 +4775,12 @@ BOOL32 ScaleWindowExtEx32(HDC32,INT32,INT32,INT32,INT32,LPSIZE32);
|
|||
void ScreenToClient16(HWND16,LPPOINT16);
|
||||
void ScreenToClient32(HWND32,LPPOINT32);
|
||||
#define ScreenToClient WINELIB_NAME(ScreenToClient)
|
||||
INT16 SelectClipRgn16(HDC16,HRGN16);
|
||||
INT32 SelectClipRgn32(HDC32,HRGN32);
|
||||
#define SelectClipRgn WINELIB_NAME(SelectClipRgn)
|
||||
HGDIOBJ16 SelectObject16(HDC16,HGDIOBJ16);
|
||||
HGDIOBJ32 SelectObject32(HDC32,HGDIOBJ32);
|
||||
#define SelectObject WINELIB_NAME(SelectObject)
|
||||
LRESULT SendDlgItemMessage16(HWND16,INT16,UINT16,WPARAM16,LPARAM);
|
||||
LRESULT SendDlgItemMessage32A(HWND32,INT32,UINT32,WPARAM32,LPARAM);
|
||||
LRESULT SendDlgItemMessage32W(HWND32,INT32,UINT32,WPARAM32,LPARAM);
|
||||
|
@ -4718,6 +4831,9 @@ UINT32 SetHandleCount32(UINT32);
|
|||
void SetInternalWindowPos16(HWND16,UINT16,LPRECT16,LPPOINT16);
|
||||
void SetInternalWindowPos32(HWND32,UINT32,LPRECT32,LPPOINT32);
|
||||
#define SetInternalWindowPos WINELIB_NAME(SetInternalWindowPos)
|
||||
COLORREF SetPixel16(HDC16,INT16,INT16,COLORREF);
|
||||
COLORREF SetPixel32(HDC32,INT32,INT32,COLORREF);
|
||||
#define SetPixel WINELIB_NAME(SetPixel)
|
||||
BOOL16 SetProp16(HWND16,LPCSTR,HANDLE16);
|
||||
BOOL32 SetProp32A(HWND32,LPCSTR,HANDLE32);
|
||||
BOOL32 SetProp32W(HWND32,LPCWSTR,HANDLE32);
|
||||
|
@ -4805,6 +4921,9 @@ BOOL32 UnionRect32(LPRECT32,const RECT32*,const RECT32*);
|
|||
void UnlockSegment16(HGLOBAL16);
|
||||
#define UnlockSegment32(handle) GlobalUnfix((HANDLE32)(handle))
|
||||
#define UnlockSegment WINELIB_NAME(UnlockSegment)
|
||||
BOOL16 UnrealizeObject16(HGDIOBJ16);
|
||||
BOOL32 UnrealizeObject32(HGDIOBJ32);
|
||||
#define UnrealizeObject WINELIB_NAME(UnrealizeObject)
|
||||
BOOL16 UnregisterClass16(SEGPTR,HINSTANCE16);
|
||||
BOOL32 UnregisterClass32A(LPCSTR,HINSTANCE32);
|
||||
BOOL32 UnregisterClass32W(LPCWSTR,HINSTANCE32);
|
||||
|
@ -4938,7 +5057,6 @@ void AnsiToOemBuff(LPCSTR,LPSTR,UINT);
|
|||
LPSTR AnsiUpper(LPSTR);
|
||||
UINT AnsiUpperBuff(LPSTR,UINT);
|
||||
BOOL AnyPopup(void);
|
||||
BOOL Arc(HDC16,INT,INT,INT,INT,INT,INT,INT,INT);
|
||||
UINT ArrangeIconicWindows(HWND);
|
||||
HDWP16 BeginDeferWindowPos(INT);
|
||||
BOOL BitBlt(HDC16,INT,INT,INT,INT,HDC16,INT,INT,DWORD);
|
||||
|
@ -4948,7 +5066,6 @@ BOOL CallMsgFilter(SEGPTR,INT);
|
|||
LRESULT CallNextHookEx(HHOOK,INT,WPARAM16,LPARAM);
|
||||
BOOL ChangeClipboardChain(HWND,HWND);
|
||||
INT CheckMenuItem(HMENU16,UINT,UINT);
|
||||
BOOL Chord(HDC16,INT,INT,INT,INT,INT,INT,INT,INT);
|
||||
BOOL CloseClipboard(void);
|
||||
void CloseSound(void);
|
||||
BOOL CloseWindow(HWND);
|
||||
|
@ -4956,29 +5073,21 @@ int ConvertRequest(HWND,LPKANJISTRUCT);
|
|||
HMETAFILE16 CopyMetaFile(HMETAFILE16,LPCSTR);
|
||||
INT CountClipboardFormats(void);
|
||||
INT CountVoiceNotes(INT);
|
||||
HBRUSH16 CreateBrushIndirect(const LOGBRUSH16*);
|
||||
HDC16 CreateCompatibleDC(HDC16);
|
||||
HCURSOR16 CreateCursor(HINSTANCE16,INT,INT,INT,INT,const BYTE*,const BYTE*);
|
||||
HGLOBAL16 CreateCursorIconIndirect(HINSTANCE16,CURSORICONINFO*,const BYTE*,const BYTE*);
|
||||
HDC16 CreateDC(LPCSTR,LPCSTR,LPCSTR,const DEVMODE*);
|
||||
HBRUSH16 CreateDIBPatternBrush(HGLOBAL16,UINT);
|
||||
HBITMAP16 CreateDIBitmap(HDC16,BITMAPINFOHEADER*,DWORD,LPVOID,BITMAPINFO*,UINT);
|
||||
HBRUSH16 CreateHatchBrush(INT,COLORREF);
|
||||
HDC16 CreateIC(LPCSTR,LPCSTR,LPCSTR,const DEVMODE*);
|
||||
HICON16 CreateIcon(HINSTANCE16,INT,INT,BYTE,BYTE,const BYTE*,const BYTE*);
|
||||
HMENU16 CreateMenu(void);
|
||||
HPALETTE16 CreatePalette(const LOGPALETTE*);
|
||||
HBRUSH16 CreatePatternBrush(HBITMAP16);
|
||||
HPEN16 CreatePen(INT,INT,COLORREF);
|
||||
HPEN16 CreatePenIndirect(const LOGPEN16*);
|
||||
HMENU16 CreatePopupMenu(void);
|
||||
HBRUSH16 CreateSolidBrush(COLORREF);
|
||||
DWORD DefHookProc(short,WORD,DWORD,HHOOK*);
|
||||
HDWP16 DeferWindowPos(HDWP16,HWND,HWND,INT,INT,INT,INT,UINT);
|
||||
ATOM DeleteAtom(ATOM);
|
||||
BOOL DeleteDC(HDC16);
|
||||
BOOL DeleteMenu(HMENU16,UINT,UINT);
|
||||
BOOL DeleteObject(HGDIOBJ16);
|
||||
BOOL DestroyCursor(HCURSOR16);
|
||||
BOOL DestroyIcon(HICON16);
|
||||
BOOL DestroyMenu(HMENU16);
|
||||
|
@ -4992,7 +5101,6 @@ DWORD DragObject(HWND, HWND, WORD, HANDLE16, WORD, HCURSOR16);
|
|||
BOOL DrawIcon(HDC16,INT,INT,HICON16);
|
||||
void DrawMenuBar(HWND);
|
||||
DWORD DumpIcon(SEGPTR,WORD*,SEGPTR*,SEGPTR*);
|
||||
BOOL Ellipse(HDC16,INT,INT,INT,INT);
|
||||
BOOL EmptyClipboard(void);
|
||||
BOOL EnableMenuItem(HMENU16,UINT,UINT);
|
||||
BOOL EnableWindow(HWND,BOOL);
|
||||
|
@ -5001,19 +5109,14 @@ UINT16 EnumClipboardFormats(UINT16);
|
|||
INT EnumFontFamilies(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
|
||||
INT EnumFonts(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
|
||||
BOOL EnumMetaFile(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
|
||||
INT EnumObjects(HDC16,INT,GOBJENUMPROC16,LPARAM);
|
||||
INT Escape(HDC16,INT,INT,SEGPTR,SEGPTR);
|
||||
int ExcludeClipRect(HDC16,short,short,short,short);
|
||||
int ExcludeVisRect(HDC16,short,short,short,short);
|
||||
BOOL ExitWindows(DWORD,WORD);
|
||||
HICON16 ExtractIcon(HINSTANCE16,LPCSTR,WORD);
|
||||
void FatalAppExit(UINT,LPCSTR);
|
||||
void FatalExit(int);
|
||||
BOOL FillRgn(HDC16,HRGN32,HBRUSH16);
|
||||
ATOM FindAtom(SEGPTR);
|
||||
HINSTANCE16 FindExecutable(LPCSTR,LPCSTR,LPSTR);
|
||||
BOOL FlashWindow(HWND,BOOL);
|
||||
BOOL FrameRgn(HDC16,HRGN32,HBRUSH16,int,int);
|
||||
void FreeLibrary(HINSTANCE16);
|
||||
UINT GDIRealizePalette(HDC16);
|
||||
HPALETTE16 GDISelectPalette(HDC16,HPALETTE16,WORD);
|
||||
|
@ -5076,7 +5179,6 @@ WORD GetNearestPaletteIndex(HPALETTE16,DWORD);
|
|||
HWND GetNextWindow(HWND,WORD);
|
||||
HWND GetOpenClipboardWindow(void);
|
||||
WORD GetPaletteEntries(HPALETTE16,WORD,WORD,LPPALETTEENTRY);
|
||||
DWORD GetPixel(HDC16,short,short);
|
||||
WORD GetPolyFillMode(HDC16);
|
||||
int GetPriorityClipboardFormat(WORD*,short);
|
||||
UINT GetPrivateProfileInt(LPCSTR,LPCSTR,INT,LPCSTR);
|
||||
|
@ -5087,7 +5189,6 @@ DWORD GetQueueStatus(UINT);
|
|||
BOOL GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
|
||||
WORD GetROP2(HDC16);
|
||||
WORD GetRelAbs(HDC16);
|
||||
HGDIOBJ16 GetStockObject(INT16);
|
||||
WORD GetStretchBltMode(HDC16);
|
||||
HMENU16 GetSubMenu(HMENU16,short);
|
||||
HMENU16 GetSystemMenu(HWND,BOOL);
|
||||
|
@ -5122,22 +5223,17 @@ BOOL HiliteMenuItem(HWND,HMENU16,UINT,UINT);
|
|||
BOOL InSendMessage(void);
|
||||
WORD InitAtomTable(WORD);
|
||||
HRGN32 InquireVisRgn(HDC16);
|
||||
int IntersectClipRect(HDC16,short,short,short,short);
|
||||
int IntersectVisRect(HDC16,short,short,short,short);
|
||||
void InvalidateRgn(HWND32,HRGN32,BOOL32);
|
||||
BOOL InvertRgn(HDC16,HRGN32);
|
||||
BOOL IsChild(HWND,HWND);
|
||||
BOOL IsClipboardFormatAvailable(WORD);
|
||||
BOOL IsDialogMessage(HWND,LPMSG16);
|
||||
WORD IsDlgButtonChecked(HWND,WORD);
|
||||
BOOL16 IsGDIObject(HGDIOBJ16);
|
||||
BOOL IsIconic(HWND);
|
||||
BOOL IsMenu(HMENU16);
|
||||
BOOL IsValidMetaFile(HMETAFILE16);
|
||||
BOOL IsWindowEnabled(HWND);
|
||||
BOOL IsWindowVisible(HWND);
|
||||
BOOL IsZoomed(HWND);
|
||||
BOOL LineTo(HDC16,short,short);
|
||||
HINSTANCE16 LoadLibrary(LPCSTR);
|
||||
HINSTANCE16 LoadModule(LPCSTR,LPVOID);
|
||||
FARPROC16 LocalNotify(FARPROC16);
|
||||
|
@ -5145,19 +5241,15 @@ HMENU16 LookupMenuHandle(HMENU16,INT);
|
|||
WORD MapVirtualKey(WORD,WORD);
|
||||
void MessageBeep(WORD);
|
||||
int MessageBox(HWND,LPCSTR,LPCSTR,WORD);
|
||||
DWORD MoveTo(HDC16,short,short);
|
||||
BOOL MoveWindow(HWND,short,short,short,short,BOOL);
|
||||
DWORD OemKeyScan(WORD);
|
||||
BOOL OemToAnsi(LPCSTR,LPSTR);
|
||||
void OemToAnsiBuff(LPCSTR,LPSTR,INT);
|
||||
int OffsetClipRgn(HDC16,short,short);
|
||||
BOOL OpenClipboard(HWND);
|
||||
BOOL OpenIcon(HWND);
|
||||
int OpenSound(void);
|
||||
void OutputDebugString(LPCSTR);
|
||||
BOOL PaintRgn(HDC16,HRGN32);
|
||||
BOOL PatBlt(HDC16,short,short,short,short,DWORD);
|
||||
BOOL Pie(HDC16,INT,INT,INT,INT,INT,INT,INT,INT);
|
||||
BOOL PlayMetaFile(HDC16,HMETAFILE16);
|
||||
void PlayMetaFileRecord(HDC16,LPHANDLETABLE16,LPMETARECORD,WORD);
|
||||
BOOL PostMessage(HWND,WORD,WORD,LONG);
|
||||
|
@ -5170,9 +5262,7 @@ void ProfSampRate(int,int);
|
|||
void ProfSetup(int,int);
|
||||
void ProfStart(void);
|
||||
void ProfStop(void);
|
||||
BOOL PtVisible(HDC16,short,short);
|
||||
WORD RealizeDefaultPalette(HDC16);
|
||||
BOOL Rectangle(HDC16,INT,INT,INT,INT);
|
||||
WORD RegisterClipboardFormat(LPCSTR);
|
||||
BOOL RemoveFontResource(LPSTR);
|
||||
BOOL RemoveMenu(HMENU16,UINT,UINT);
|
||||
|
@ -5180,18 +5270,12 @@ void ReplyMessage(LRESULT);
|
|||
HDC16 ResetDC(HDC16,LPVOID);
|
||||
BOOL ResizePalette(HPALETTE16,UINT);
|
||||
BOOL RestoreDC(HDC16,short);
|
||||
int RestoreVisRgn(HDC16);
|
||||
BOOL RoundRect(HDC16,INT,INT,INT,INT,INT,INT);
|
||||
int SaveDC(HDC16);
|
||||
HRGN32 SaveVisRgn(HDC16);
|
||||
void ScrollChildren(HWND,UINT,WPARAM16,LPARAM);
|
||||
BOOL ScrollDC(HDC16,short,short,LPRECT16,LPRECT16,HRGN32,LPRECT16);
|
||||
void ScrollWindow(HWND,short,short,LPRECT16,LPRECT16);
|
||||
int ScrollWindowEx(HWND,short,short,LPRECT16,LPRECT16,HRGN32,LPRECT16,WORD);
|
||||
int SelectClipRgn(HDC16,HRGN32);
|
||||
HGDIOBJ16 SelectObject(HDC16,HGDIOBJ16);
|
||||
HPALETTE16 SelectPalette(HDC16,HPALETTE16,BOOL);
|
||||
int SelectVisRgn(HDC16,HRGN32);
|
||||
HWND SetActiveWindow(HWND);
|
||||
WORD SetBkMode(HDC16,WORD);
|
||||
HANDLE16 SetClipboardData(WORD,HANDLE16);
|
||||
|
@ -5215,7 +5299,6 @@ BOOL SetMessageQueue(int);
|
|||
HMETAFILE16 SetMetaFileBits(HGLOBAL16);
|
||||
WORD SetPaletteEntries(HPALETTE16,WORD,WORD,LPPALETTEENTRY);
|
||||
HWND SetParent(HWND,HWND);
|
||||
COLORREF SetPixel(HDC16,short,short,COLORREF);
|
||||
WORD SetPolyFillMode(HDC16,WORD);
|
||||
WORD SetROP2(HDC16,WORD);
|
||||
WORD SetRelAbs(HDC16,WORD);
|
||||
|
@ -5254,7 +5337,6 @@ int ToAscii(WORD,WORD,LPSTR,LPVOID,WORD);
|
|||
INT16 TranslateAccelerator(HWND,HACCEL16,LPMSG16);
|
||||
BOOL TranslateMDISysAccel(HWND,LPMSG16);
|
||||
BOOL TranslateMessage(LPMSG16);
|
||||
BOOL UnrealizeObject(HGDIOBJ16);
|
||||
int UpdateColors(HDC16);
|
||||
void ValidateCodeSegments(void);
|
||||
LPSTR ValidateFreeSpaces(void);
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "stddebug.h"
|
||||
#include "debug.h"
|
||||
#include "callback.h"
|
||||
#include "xmalloc.h"
|
||||
|
||||
extern HINSTANCE16 PE_LoadModule( int fd, OFSTRUCT *ofs, LOADPARAMS* params );
|
||||
|
||||
|
@ -514,7 +515,7 @@ static HMODULE16 MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
|
|||
fastload_length=ne_header.fastload_length<<ne_header.align_shift_count;
|
||||
dprintf_module( stddeb, "Using fast-load area offset=%x len=%d\n",
|
||||
fastload_offset, fastload_length );
|
||||
if ((fastload = (char *)malloc( fastload_length )) != NULL)
|
||||
if ((fastload = (char *)xmalloc( fastload_length )) != NULL)
|
||||
{
|
||||
_llseek( hFile, mz_header.ne_offset + fastload_offset, SEEK_SET );
|
||||
if (_lread32(hFile, fastload, fastload_length) != fastload_length)
|
||||
|
@ -536,7 +537,7 @@ static HMODULE16 MODULE_LoadExeHeader( HFILE hFile, OFSTRUCT *ofs )
|
|||
/* Get the segment table */
|
||||
|
||||
pModule->seg_table = (int)pData - (int)pModule;
|
||||
buffer = malloc( ne_header.n_segment_tab * sizeof(struct ne_segment_table_entry_s) );
|
||||
buffer = xmalloc( ne_header.n_segment_tab * sizeof(struct ne_segment_table_entry_s) );
|
||||
if (buffer)
|
||||
{
|
||||
int i;
|
||||
|
|
|
@ -153,8 +153,9 @@ FARPROC32 PE_FindExportedFunction(struct pe_data *pe, LPCSTR funcName)
|
|||
name++;
|
||||
}
|
||||
} else {
|
||||
if (funcName-exports->Base > exports->Number_Of_Functions) {
|
||||
dprintf_win32(stddeb," ordinal %d out of range!\n",funcName);
|
||||
if (LOWORD(funcName)-exports->Base > exports->Number_Of_Functions) {
|
||||
dprintf_win32(stddeb," ordinal %d out of range!\n",
|
||||
LOWORD(funcName));
|
||||
return NULL;
|
||||
}
|
||||
return (FARPROC32)(load_addr+function[(int)funcName-exports->Base]);
|
||||
|
@ -224,7 +225,7 @@ fixup_imports (struct pe_data *pe, HMODULE16 hModule)
|
|||
if ((unsigned) *import_list & 0x80000000) {
|
||||
int ordinal = *import_list & (0x80000000 - 1);
|
||||
dprintf_win32 (stddeb, "--- Ordinal %s,%d\n", Module, ordinal);
|
||||
*thunk_list = GetProcAddress32(MODULE_FindModule (Module),
|
||||
*thunk_list = (unsigned)GetProcAddress32(MODULE_FindModule (Module),
|
||||
(LPCSTR) ordinal);
|
||||
if (!*thunk_list) {
|
||||
fprintf(stderr,"No implementation for %s.%d, setting to NULL\n",
|
||||
|
@ -233,7 +234,7 @@ fixup_imports (struct pe_data *pe, HMODULE16 hModule)
|
|||
}
|
||||
} else { /* import by name */
|
||||
dprintf_win32 (stddeb, "--- %s %s.%d\n", pe_name->Name, Module, pe_name->Hint);
|
||||
*thunk_list = GetProcAddress32(MODULE_FindModule (Module),
|
||||
*thunk_list = (unsigned)GetProcAddress32(MODULE_FindModule (Module),
|
||||
pe_name->Name);
|
||||
if (!*thunk_list) {
|
||||
fprintf(stderr, "No implementation for %s.%d(%s), setting to NULL\n",
|
||||
|
@ -253,7 +254,7 @@ fixup_imports (struct pe_data *pe, HMODULE16 hModule)
|
|||
/* not sure about this branch, but it seems to work */
|
||||
int ordinal = *thunk_list & ~0x80000000;
|
||||
dprintf_win32(stddeb,"--- Ordinal %s.%d\n",Module,ordinal);
|
||||
*thunk_list = GetProcAddress32(MODULE_FindModule (Module),
|
||||
*thunk_list = (unsigned)GetProcAddress32(MODULE_FindModule (Module),
|
||||
(LPCSTR) ordinal);
|
||||
if (!*thunk_list) {
|
||||
fprintf(stderr, "No implementation for %s.%d, setting to NULL\n",
|
||||
|
@ -263,7 +264,7 @@ fixup_imports (struct pe_data *pe, HMODULE16 hModule)
|
|||
} else {
|
||||
dprintf_win32(stddeb,"--- %s %s.%d\n",
|
||||
pe_name->Name, Module, pe_name->Hint);
|
||||
*thunk_list = GetProcAddress32(MODULE_FindModule(Module),
|
||||
*thunk_list = (unsigned)GetProcAddress32(MODULE_FindModule(Module),
|
||||
pe_name->Name);
|
||||
if (!*thunk_list) {
|
||||
fprintf(stderr, "No implementation for %s.%d, setting to NULL\n",
|
||||
|
@ -373,7 +374,7 @@ static struct pe_data *PE_LoadImage( int fd, HMODULE16 hModule, WORD offset )
|
|||
{
|
||||
struct pe_data *pe;
|
||||
int i, result;
|
||||
unsigned int load_addr;
|
||||
int load_addr;
|
||||
struct Directory dir;
|
||||
char buffer[200];
|
||||
DBG_ADDR daddr;
|
||||
|
@ -405,7 +406,7 @@ static struct pe_data *PE_LoadImage( int fd, HMODULE16 hModule, WORD offset )
|
|||
I don't know if mmap("/dev/null"); would do any better.
|
||||
What I'd really like to do is a Win32 style VirtualAlloc/MapViewOfFile
|
||||
sequence */
|
||||
load_addr = pe->load_addr = malloc(pe->vma_size);
|
||||
load_addr = pe->load_addr = (int)xmalloc(pe->vma_size);
|
||||
dprintf_win32(stddeb, "Load addr is really %x, range %x\n",
|
||||
pe->load_addr, pe->vma_size);
|
||||
|
||||
|
@ -416,7 +417,7 @@ static struct pe_data *PE_LoadImage( int fd, HMODULE16 hModule, WORD offset )
|
|||
if(pe->pe_seg[i].Characteristics &
|
||||
~ IMAGE_SCN_TYPE_CNT_UNINITIALIZED_DATA)
|
||||
if(lseek(fd,pe->pe_seg[i].PointerToRawData,SEEK_SET) == -1
|
||||
|| read(fd,load_addr + pe->pe_seg[i].Virtual_Address,
|
||||
|| read(fd,(char *)load_addr + pe->pe_seg[i].Virtual_Address,
|
||||
pe->pe_seg[i].Size_Of_Raw_Data)
|
||||
!= pe->pe_seg[i].Size_Of_Raw_Data)
|
||||
{
|
||||
|
@ -471,37 +472,37 @@ static struct pe_data *PE_LoadImage( int fd, HMODULE16 hModule, WORD offset )
|
|||
if(dir.Size)
|
||||
{
|
||||
if(pe->pe_export &&
|
||||
pe->pe_export!=load_addr+dir.Virtual_address)
|
||||
(int)pe->pe_export!=load_addr+dir.Virtual_address)
|
||||
fprintf(stderr,"wrong export directory??\n");
|
||||
/* always trust the directory */
|
||||
pe->pe_export = load_addr+dir.Virtual_address;
|
||||
pe->pe_export = (void *)(load_addr+dir.Virtual_address);
|
||||
}
|
||||
|
||||
dir=pe->pe_header->opt_coff.DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY];
|
||||
if(dir.Size)
|
||||
{
|
||||
if(pe->pe_import &&
|
||||
pe->pe_import!=load_addr+dir.Virtual_address)
|
||||
(int)pe->pe_import!=load_addr+dir.Virtual_address)
|
||||
fprintf(stderr,"wrong import directory??\n");
|
||||
pe->pe_import = load_addr+dir.Virtual_address;
|
||||
pe->pe_import = (void *)(load_addr+dir.Virtual_address);
|
||||
}
|
||||
|
||||
dir=pe->pe_header->opt_coff.DataDirectory[IMAGE_FILE_RESOURCE_DIRECTORY];
|
||||
if(dir.Size)
|
||||
{
|
||||
if(pe->pe_resource &&
|
||||
pe->pe_resource!=load_addr+dir.Virtual_address)
|
||||
(int)pe->pe_resource!=load_addr+dir.Virtual_address)
|
||||
fprintf(stderr,"wrong resource directory??\n");
|
||||
pe->pe_resource = load_addr+dir.Virtual_address;
|
||||
pe->pe_resource = (void *)(load_addr+dir.Virtual_address);
|
||||
}
|
||||
|
||||
dir=pe->pe_header->opt_coff.DataDirectory[IMAGE_FILE_BASE_RELOCATION_TABLE];
|
||||
if(dir.Size)
|
||||
{
|
||||
if(pe->pe_reloc &&
|
||||
pe->pe_reloc!=load_addr+dir.Virtual_address)
|
||||
(int)pe->pe_reloc!=load_addr+dir.Virtual_address)
|
||||
fprintf(stderr,"wrong relocation list??\n");
|
||||
pe->pe_reloc = load_addr+dir.Virtual_address;
|
||||
pe->pe_reloc = (void *)(load_addr+dir.Virtual_address);
|
||||
}
|
||||
|
||||
if(pe->pe_header->opt_coff.DataDirectory
|
||||
|
@ -566,8 +567,6 @@ HINSTANCE16 PE_LoadModule( int fd, OFSTRUCT *ofs, LOADPARAMS* params )
|
|||
HMODULE16 hModule;
|
||||
HINSTANCE16 hInstance;
|
||||
NE_MODULE *pModule;
|
||||
SEGTABLEENTRY *pSegment;
|
||||
FARPROC16 startup;
|
||||
struct mz_header_s mz_header;
|
||||
|
||||
if ((hModule = MODULE_CreateDummyModule( ofs )) < 32) return hModule;
|
||||
|
@ -577,13 +576,6 @@ HINSTANCE16 PE_LoadModule( int fd, OFSTRUCT *ofs, LOADPARAMS* params )
|
|||
lseek( fd, 0, SEEK_SET );
|
||||
read( fd, &mz_header, sizeof(mz_header) );
|
||||
|
||||
/* Set the startup address */
|
||||
|
||||
startup = MODULE_GetWndProcEntry16("Win32CallToStart");
|
||||
pSegment = NE_SEG_TABLE(pModule) + pModule->cs - 1;
|
||||
pSegment->selector = SELECTOROF(startup); /* FIXME */
|
||||
pModule->ip = OFFSETOF(startup);
|
||||
|
||||
pModule->pe_module = PE_LoadImage( fd, hModule, mz_header.ne_offset );
|
||||
|
||||
hInstance = MODULE_CreateInstance( hModule, params );
|
||||
|
@ -598,28 +590,6 @@ HINSTANCE16 PE_LoadModule( int fd, OFSTRUCT *ofs, LOADPARAMS* params )
|
|||
return hInstance;
|
||||
}
|
||||
|
||||
void PE_InitTEB(int hTEB);
|
||||
|
||||
void PE_InitializeDLLs(HMODULE16 hModule);
|
||||
void PE_Win32CallToStart( SIGCONTEXT *context )
|
||||
{
|
||||
int fs;
|
||||
HMODULE16 hModule;
|
||||
NE_MODULE *pModule;
|
||||
|
||||
dprintf_win32(stddeb,"Going to start Win32 program\n");
|
||||
InitTask( context );
|
||||
hModule = GetExePtr( GetCurrentTask() );
|
||||
pModule = MODULE_GetPtr( hModule );
|
||||
InitApp( hModule );
|
||||
fs=(int)GlobalAlloc16( GMEM_FIXED | GMEM_ZEROINIT, 0x10000 );
|
||||
PE_InitTEB(fs);
|
||||
__asm__ __volatile__("movw %w0,%%fs"::"r" (fs));
|
||||
PE_InitializeDLLs( hModule );
|
||||
CallTaskStart32( (FARPROC32)(pModule->pe_module->load_addr +
|
||||
pModule->pe_module->pe_header->opt_coff.AddressOfEntryPoint) );
|
||||
}
|
||||
|
||||
int PE_UnloadImage( HMODULE16 hModule )
|
||||
{
|
||||
printf("PEunloadImage() called!\n");
|
||||
|
@ -647,7 +617,7 @@ static void PE_InitDLL(HMODULE16 hModule)
|
|||
printf("InitPEDLL() called!\n");
|
||||
CallDLLEntryProc32( (FARPROC32)(pe->load_addr +
|
||||
pe->pe_header->opt_coff.AddressOfEntryPoint),
|
||||
hModule, DLL_PROCESS_ATTACH, (void *)-1 );
|
||||
hModule, DLL_PROCESS_ATTACH, -1 );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -655,12 +625,12 @@ static void PE_InitDLL(HMODULE16 hModule)
|
|||
/* FIXME: This stuff is all on a "well it works" basis. An implementation
|
||||
based on some kind of documentation would be greatly appreciated :-) */
|
||||
|
||||
typedef struct
|
||||
typedef struct _TEB
|
||||
{
|
||||
void *Except;
|
||||
void *stack;
|
||||
int dummy1[4];
|
||||
struct TEB *TEBDSAlias;
|
||||
struct _TEB *TEBDSAlias;
|
||||
int dummy2[2];
|
||||
int taskid;
|
||||
} TEB;
|
||||
|
@ -672,7 +642,7 @@ void PE_InitTEB(int hTEB)
|
|||
|
||||
pTask = (TDB *)(GlobalLock16(GetCurrentTask() & 0xffff));
|
||||
pTEB = (TEB *)(GlobalLock16(hTEB));
|
||||
pTEB->stack = pTask->esp;
|
||||
pTEB->stack = (void *)pTask->esp;
|
||||
pTEB->Except = (void *)(-1);
|
||||
pTEB->TEBDSAlias = pTEB;
|
||||
pTEB->taskid = getpid();
|
||||
|
|
106
loader/task.c
106
loader/task.c
|
@ -349,38 +349,59 @@ static BOOL TASK_FreeThunk( HTASK16 hTask, SEGPTR thunk )
|
|||
#ifndef WINELIB
|
||||
static void TASK_CallToStart(void)
|
||||
{
|
||||
int cs_reg, ds_reg, ip_reg;
|
||||
int cs_reg, ds_reg, fs_reg, ip_reg;
|
||||
TDB *pTask = (TDB *)GlobalLock16( hCurrentTask );
|
||||
NE_MODULE *pModule = MODULE_GetPtr( pTask->hModule );
|
||||
SEGTABLEENTRY *pSegTable = NE_SEG_TABLE( pModule );
|
||||
|
||||
/* Registers at initialization must be:
|
||||
* ax zero
|
||||
* bx stack size in bytes
|
||||
* cx heap size in bytes
|
||||
* si previous app instance
|
||||
* di current app instance
|
||||
* bp zero
|
||||
* es selector to the PSP
|
||||
* ds dgroup of the application
|
||||
* ss stack selector
|
||||
* sp top of the stack
|
||||
*/
|
||||
|
||||
cs_reg = pSegTable[pModule->cs - 1].selector;
|
||||
ip_reg = pModule->ip;
|
||||
ds_reg = pSegTable[pModule->dgroup - 1].selector;
|
||||
|
||||
IF1632_Saved16_ss = pTask->ss;
|
||||
IF1632_Saved16_sp = pTask->sp;
|
||||
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);
|
||||
|
||||
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*/ );
|
||||
if (pModule->flags & NE_FFLAGS_WIN32)
|
||||
{
|
||||
/* FIXME: all this is an ugly hack */
|
||||
|
||||
extern void PE_InitTEB( int hTEB );
|
||||
extern void InitTask( SIGCONTEXT *context );
|
||||
extern void PE_InitializeDLLs( HMODULE16 hModule );
|
||||
|
||||
InitTask( NULL );
|
||||
InitApp( pTask->hModule );
|
||||
fs_reg = (int)GlobalAlloc16( GMEM_FIXED | GMEM_ZEROINIT, 0x10000 );
|
||||
PE_InitTEB( fs_reg );
|
||||
__asm__ __volatile__("movw %w0,%%fs"::"r" (fs_reg));
|
||||
PE_InitializeDLLs( pTask->hModule );
|
||||
CallTaskStart32( (FARPROC32)(pModule->pe_module->load_addr +
|
||||
pModule->pe_module->pe_header->opt_coff.AddressOfEntryPoint) );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Registers at initialization must be:
|
||||
* ax zero
|
||||
* bx stack size in bytes
|
||||
* cx heap size in bytes
|
||||
* si previous app instance
|
||||
* di current app instance
|
||||
* bp zero
|
||||
* es selector to the PSP
|
||||
* ds dgroup of the application
|
||||
* ss stack selector
|
||||
* sp top of the stack
|
||||
*/
|
||||
|
||||
cs_reg = pSegTable[pModule->cs - 1].selector;
|
||||
ip_reg = pModule->ip;
|
||||
ds_reg = pSegTable[pModule->dgroup - 1].selector;
|
||||
|
||||
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);
|
||||
|
||||
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*/ );
|
||||
}
|
||||
|
||||
/* This should never return */
|
||||
fprintf( stderr, "TASK_CallToStart: Main program returned!\n" );
|
||||
|
@ -814,7 +835,7 @@ void InitTask( SIGCONTEXT *context )
|
|||
LONG stacklow, stackhi;
|
||||
|
||||
#ifndef WINELIB
|
||||
EAX_reg(context) = 0;
|
||||
if (context) EAX_reg(context) = 0;
|
||||
#endif
|
||||
if (!(pTask = (TDB *)GlobalLock16( hCurrentTask ))) return;
|
||||
if (!(pModule = MODULE_GetPtr( pTask->hModule ))) return;
|
||||
|
@ -822,21 +843,24 @@ void InitTask( SIGCONTEXT *context )
|
|||
#ifndef WINELIB
|
||||
NE_InitializeDLLs( pTask->hModule );
|
||||
|
||||
/* Registers on return are:
|
||||
* ax 1 if OK, 0 on error
|
||||
* cx stack limit in bytes
|
||||
* dx cmdShow parameter
|
||||
* si instance handle of the previous instance
|
||||
* di instance handle of the new task
|
||||
* es:bx pointer to command-line inside PSP
|
||||
*/
|
||||
EAX_reg(context) = 1;
|
||||
EBX_reg(context) = 0x81;
|
||||
ECX_reg(context) = pModule->stack_size;
|
||||
EDX_reg(context) = pTask->nCmdShow;
|
||||
ESI_reg(context) = (DWORD)pTask->hPrevInstance;
|
||||
EDI_reg(context) = (DWORD)pTask->hInstance;
|
||||
ES_reg (context) = (WORD)pTask->hPDB;
|
||||
if (context)
|
||||
{
|
||||
/* Registers on return are:
|
||||
* ax 1 if OK, 0 on error
|
||||
* cx stack limit in bytes
|
||||
* dx cmdShow parameter
|
||||
* si instance handle of the previous instance
|
||||
* di instance handle of the new task
|
||||
* es:bx pointer to command-line inside PSP
|
||||
*/
|
||||
EAX_reg(context) = 1;
|
||||
EBX_reg(context) = 0x81;
|
||||
ECX_reg(context) = pModule->stack_size;
|
||||
EDX_reg(context) = pTask->nCmdShow;
|
||||
ESI_reg(context) = (DWORD)pTask->hPrevInstance;
|
||||
EDI_reg(context) = (DWORD)pTask->hInstance;
|
||||
ES_reg (context) = (WORD)pTask->hPDB;
|
||||
}
|
||||
|
||||
/* Initialize the local heap */
|
||||
if ( pModule->heap_size )
|
||||
|
|
|
@ -144,7 +144,7 @@ void CLIPBOARD_DeleteRecord(LPCLIPFORMAT lpFormat)
|
|||
{
|
||||
if( lpFormat->wFormatID >= CF_GDIOBJFIRST &&
|
||||
lpFormat->wFormatID <= CF_GDIOBJLAST )
|
||||
DeleteObject(lpFormat->hData);
|
||||
DeleteObject32(lpFormat->hData);
|
||||
else if( lpFormat->hData )
|
||||
GlobalFree16(lpFormat->hData);
|
||||
|
||||
|
|
123
misc/commdlg.c
123
misc/commdlg.c
|
@ -218,7 +218,7 @@ static LONG FILEDLG_WMDrawItem(HWND hWnd, WPARAM16 wParam, LPARAM lParam,int sav
|
|||
{
|
||||
LPDRAWITEMSTRUCT16 lpdis = (LPDRAWITEMSTRUCT16)PTR_SEG_TO_LIN(lParam);
|
||||
char *str;
|
||||
HBRUSH16 hBrush;
|
||||
HBRUSH32 hBrush;
|
||||
HBITMAP16 hBitmap, hPrevBitmap;
|
||||
BITMAP16 bm;
|
||||
HDC16 hMemDC;
|
||||
|
@ -226,8 +226,8 @@ static LONG FILEDLG_WMDrawItem(HWND hWnd, WPARAM16 wParam, LPARAM lParam,int sav
|
|||
if (lpdis->CtlType == ODT_LISTBOX && lpdis->CtlID == lst1)
|
||||
{
|
||||
if (!(str = SEGPTR_ALLOC(512))) return FALSE;
|
||||
hBrush = SelectObject(lpdis->hDC, GetStockObject(LTGRAY_BRUSH));
|
||||
SelectObject(lpdis->hDC, hBrush);
|
||||
hBrush = SelectObject32(lpdis->hDC, GetStockObject32(LTGRAY_BRUSH));
|
||||
SelectObject32(lpdis->hDC, hBrush);
|
||||
FillRect16(lpdis->hDC, &lpdis->rcItem, hBrush);
|
||||
SendMessage16(lpdis->hwndItem, LB_GETTEXT16, lpdis->itemID,
|
||||
(LPARAM)SEGPTR_GET(str));
|
||||
|
@ -251,8 +251,8 @@ static LONG FILEDLG_WMDrawItem(HWND hWnd, WPARAM16 wParam, LPARAM lParam,int sav
|
|||
if (lpdis->CtlType == ODT_LISTBOX && lpdis->CtlID == lst2)
|
||||
{
|
||||
if (!(str = SEGPTR_ALLOC(512))) return FALSE;
|
||||
hBrush = SelectObject(lpdis->hDC, GetStockObject(LTGRAY_BRUSH));
|
||||
SelectObject(lpdis->hDC, hBrush);
|
||||
hBrush = SelectObject32(lpdis->hDC, GetStockObject32(LTGRAY_BRUSH));
|
||||
SelectObject32(lpdis->hDC, hBrush);
|
||||
FillRect16(lpdis->hDC, &lpdis->rcItem, hBrush);
|
||||
SendMessage16(lpdis->hwndItem, LB_GETTEXT16, lpdis->itemID,
|
||||
(LPARAM)SEGPTR_GET(str));
|
||||
|
@ -262,10 +262,10 @@ static LONG FILEDLG_WMDrawItem(HWND hWnd, WPARAM16 wParam, LPARAM lParam,int sav
|
|||
TextOut16(lpdis->hDC, lpdis->rcItem.left + bm.bmWidth,
|
||||
lpdis->rcItem.top, str, strlen(str));
|
||||
hMemDC = CreateCompatibleDC(lpdis->hDC);
|
||||
hPrevBitmap = SelectObject(hMemDC, hBitmap);
|
||||
hPrevBitmap = SelectObject32(hMemDC, hBitmap);
|
||||
BitBlt(lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top,
|
||||
bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, SRCCOPY);
|
||||
SelectObject(hMemDC, hPrevBitmap);
|
||||
SelectObject32(hMemDC, hPrevBitmap);
|
||||
DeleteDC(hMemDC);
|
||||
if (lpdis->itemState != 0) InvertRect16(lpdis->hDC, &lpdis->rcItem);
|
||||
SEGPTR_FREE(str);
|
||||
|
@ -274,8 +274,8 @@ static LONG FILEDLG_WMDrawItem(HWND hWnd, WPARAM16 wParam, LPARAM lParam,int sav
|
|||
if (lpdis->CtlType == ODT_COMBOBOX && lpdis->CtlID == cmb2)
|
||||
{
|
||||
if (!(str = SEGPTR_ALLOC(512))) return FALSE;
|
||||
hBrush = SelectObject(lpdis->hDC, GetStockObject(LTGRAY_BRUSH));
|
||||
SelectObject(lpdis->hDC, hBrush);
|
||||
hBrush = SelectObject32(lpdis->hDC, GetStockObject32(LTGRAY_BRUSH));
|
||||
SelectObject32(lpdis->hDC, hBrush);
|
||||
FillRect16(lpdis->hDC, &lpdis->rcItem, hBrush);
|
||||
SendMessage16(lpdis->hwndItem, CB_GETLBTEXT, lpdis->itemID,
|
||||
(LPARAM)SEGPTR_GET(str));
|
||||
|
@ -291,10 +291,10 @@ static LONG FILEDLG_WMDrawItem(HWND hWnd, WPARAM16 wParam, LPARAM lParam,int sav
|
|||
TextOut16(lpdis->hDC, lpdis->rcItem.left + bm.bmWidth,
|
||||
lpdis->rcItem.top, str, strlen(str));
|
||||
hMemDC = CreateCompatibleDC(lpdis->hDC);
|
||||
hPrevBitmap = SelectObject(hMemDC, hBitmap);
|
||||
hPrevBitmap = SelectObject32(hMemDC, hBitmap);
|
||||
BitBlt(lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top,
|
||||
bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, SRCCOPY);
|
||||
SelectObject(hMemDC, hPrevBitmap);
|
||||
SelectObject32(hMemDC, hPrevBitmap);
|
||||
DeleteDC(hMemDC);
|
||||
if (lpdis->itemState != 0) InvertRect16(lpdis->hDC, &lpdis->rcItem);
|
||||
SEGPTR_FREE(str);
|
||||
|
@ -1476,24 +1476,24 @@ static void CC_PaintSelectedColor(HWND hDlg,COLORREF cr)
|
|||
{
|
||||
RECT16 rect;
|
||||
HDC32 hdc;
|
||||
HBRUSH16 hBrush;
|
||||
HBRUSH32 hBrush;
|
||||
HWND hwnd=GetDlgItem(hDlg,0x2c5);
|
||||
if (IsWindowVisible(GetDlgItem(hDlg,0x2c6))) /* if full size */
|
||||
{
|
||||
hdc=GetDC32(hwnd);
|
||||
GetClientRect16 (hwnd, &rect) ;
|
||||
hBrush = CreateSolidBrush(cr);
|
||||
hBrush = CreateSolidBrush32(cr);
|
||||
if (hBrush)
|
||||
{
|
||||
hBrush = SelectObject (hdc, hBrush) ;
|
||||
Rectangle (hdc, rect.left,rect.top,rect.right/2,rect.bottom);
|
||||
DeleteObject (SelectObject (hdc,hBrush)) ;
|
||||
hBrush=CreateSolidBrush(GetNearestColor(hdc,cr));
|
||||
hBrush = SelectObject32 (hdc, hBrush) ;
|
||||
Rectangle32(hdc, rect.left,rect.top,rect.right/2,rect.bottom);
|
||||
DeleteObject32 (SelectObject32 (hdc,hBrush)) ;
|
||||
hBrush=CreateSolidBrush32(GetNearestColor(hdc,cr));
|
||||
if (hBrush)
|
||||
{
|
||||
hBrush= SelectObject (hdc, hBrush) ;
|
||||
Rectangle (hdc, rect.right/2-1,rect.top,rect.right,rect.bottom);
|
||||
DeleteObject (SelectObject (hdc, hBrush)) ;
|
||||
hBrush= SelectObject32 (hdc, hBrush) ;
|
||||
Rectangle32( hdc, rect.right/2-1,rect.top,rect.right,rect.bottom);
|
||||
DeleteObject32( SelectObject32 (hdc, hBrush)) ;
|
||||
}
|
||||
}
|
||||
ReleaseDC32(hwnd,hdc);
|
||||
|
@ -1534,7 +1534,7 @@ static void CC_PaintTriangle(HWND hDlg,int y)
|
|||
points[2].x=points[1].x=points[0].x + w;
|
||||
|
||||
if (lpp->old3angle.left)
|
||||
FillRect16(hDC,&lpp->old3angle,GetStockObject(WHITE_BRUSH));
|
||||
FillRect16(hDC,&lpp->old3angle,GetStockObject32(WHITE_BRUSH));
|
||||
lpp->old3angle.left =points[0].x;
|
||||
lpp->old3angle.right =points[1].x+1;
|
||||
lpp->old3angle.top =points[2].y-1;
|
||||
|
@ -1556,15 +1556,15 @@ static void CC_PaintCross(HWND hDlg,int x,int y)
|
|||
struct CCPRIVATE * lpp=(struct CCPRIVATE *)GetWindowLong32A(hDlg, DWL_USER);
|
||||
RECT16 rect;
|
||||
POINT16 point;
|
||||
HPEN16 hPen;
|
||||
HPEN32 hPen;
|
||||
|
||||
if (IsWindowVisible(GetDlgItem(hDlg,0x2c6))) /* if full size */
|
||||
{
|
||||
GetClientRect16(hwnd,&rect);
|
||||
hDC=GetDC32(hwnd);
|
||||
SelectClipRgn(hDC,CreateRectRgnIndirect16(&rect));
|
||||
hPen=CreatePen(PS_SOLID,2,0);
|
||||
hPen=SelectObject(hDC,hPen);
|
||||
SelectClipRgn32(hDC,CreateRectRgnIndirect16(&rect));
|
||||
hPen=CreatePen32(PS_SOLID,2,0);
|
||||
hPen=SelectObject32(hDC,hPen);
|
||||
point.x=((long)rect.right*(long)x)/(long)MAXHORI;
|
||||
point.y=rect.bottom-((long)rect.bottom*(long)y)/(long)MAXVERT;
|
||||
if (lpp->oldcross.left!=lpp->oldcross.right)
|
||||
|
@ -1578,10 +1578,10 @@ static void CC_PaintCross(HWND hDlg,int x,int y)
|
|||
lpp->oldcross.bottom=point.y+w+1;
|
||||
|
||||
MoveTo(hDC,point.x-w,point.y);
|
||||
LineTo(hDC,point.x+w,point.y);
|
||||
LineTo32(hDC,point.x+w,point.y);
|
||||
MoveTo(hDC,point.x,point.y-w);
|
||||
LineTo(hDC,point.x,point.y+w);
|
||||
DeleteObject(SelectObject(hDC,hPen));
|
||||
LineTo32(hDC,point.x,point.y+w);
|
||||
DeleteObject32(SelectObject32(hDC,hPen));
|
||||
ReleaseDC32(hwnd,hDC);
|
||||
}
|
||||
}
|
||||
|
@ -1599,7 +1599,7 @@ static void CC_PrepareColorGraph(HWND hDlg)
|
|||
int sdif,hdif,xdif,ydif,r,g,b,hue,sat;
|
||||
HWND hwnd=GetDlgItem(hDlg,0x2c6);
|
||||
struct CCPRIVATE * lpp=(struct CCPRIVATE *)GetWindowLong32A(hDlg, DWL_USER);
|
||||
HBRUSH16 hbrush;
|
||||
HBRUSH32 hbrush;
|
||||
HDC32 hdc ;
|
||||
RECT16 rect,client;
|
||||
HCURSOR16 hcursor=SetCursor(LoadCursor16(0,IDC_WAIT));
|
||||
|
@ -1608,7 +1608,7 @@ static void CC_PrepareColorGraph(HWND hDlg)
|
|||
hdc=GetDC32(hwnd);
|
||||
lpp->hdcMem = CreateCompatibleDC(hdc);
|
||||
lpp->hbmMem = CreateCompatibleBitmap(hdc,client.right,client.bottom);
|
||||
SelectObject(lpp->hdcMem,lpp->hbmMem);
|
||||
SelectObject32(lpp->hdcMem,lpp->hbmMem);
|
||||
|
||||
xdif=client.right /XSTEPS;
|
||||
ydif=client.bottom/YSTEPS+1;
|
||||
|
@ -1624,9 +1624,9 @@ static void CC_PrepareColorGraph(HWND hDlg)
|
|||
r=CC_HSLtoRGB('R',hue,sat,120);
|
||||
g=CC_HSLtoRGB('G',hue,sat,120);
|
||||
b=CC_HSLtoRGB('B',hue,sat,120);
|
||||
hbrush=CreateSolidBrush(RGB(r,g,b));
|
||||
hbrush=CreateSolidBrush32(RGB(r,g,b));
|
||||
FillRect16(lpp->hdcMem,&rect,hbrush);
|
||||
DeleteObject(hbrush);
|
||||
DeleteObject32(hbrush);
|
||||
rect.bottom=rect.top;
|
||||
}
|
||||
rect.left=rect.right;
|
||||
|
@ -1666,7 +1666,7 @@ static void CC_PaintLumBar(HWND hDlg,int hue,int sat)
|
|||
HWND hwnd=GetDlgItem(hDlg,0x2be);
|
||||
RECT16 rect,client;
|
||||
int lum,ldif,ydif,r,g,b;
|
||||
HBRUSH16 hbrush;
|
||||
HBRUSH32 hbrush;
|
||||
HDC32 hDC;
|
||||
|
||||
if (IsWindowVisible(hwnd))
|
||||
|
@ -1683,13 +1683,13 @@ static void CC_PaintLumBar(HWND hDlg,int hue,int sat)
|
|||
r=CC_HSLtoRGB('R',hue,sat,lum);
|
||||
g=CC_HSLtoRGB('G',hue,sat,lum);
|
||||
b=CC_HSLtoRGB('B',hue,sat,lum);
|
||||
hbrush=CreateSolidBrush(RGB(r,g,b));
|
||||
hbrush=CreateSolidBrush32(RGB(r,g,b));
|
||||
FillRect16(hDC,&rect,hbrush);
|
||||
DeleteObject(hbrush);
|
||||
DeleteObject32(hbrush);
|
||||
rect.bottom=rect.top;
|
||||
}
|
||||
GetClientRect16(hwnd,&rect);
|
||||
FrameRect16(hDC,&rect,GetStockObject(BLACK_BRUSH));
|
||||
FrameRect16(hDC,&rect,GetStockObject32(BLACK_BRUSH));
|
||||
ReleaseDC32(hwnd,hDC);
|
||||
}
|
||||
}
|
||||
|
@ -1776,7 +1776,7 @@ static void CC_PaintPredefColorArray(HWND hDlg,int rows,int cols)
|
|||
HWND hwnd=GetDlgItem(hDlg,0x2d0);
|
||||
RECT16 rect;
|
||||
HDC32 hdc;
|
||||
HBRUSH16 hBrush;
|
||||
HBRUSH32 hBrush;
|
||||
int dx,dy,i,j,k;
|
||||
|
||||
GetClientRect16(hwnd,&rect);
|
||||
|
@ -1791,14 +1791,14 @@ static void CC_PaintPredefColorArray(HWND hDlg,int rows,int cols)
|
|||
{
|
||||
for (i=0;i<cols;i++)
|
||||
{
|
||||
hBrush = CreateSolidBrush(predefcolors[j][i]);
|
||||
hBrush = CreateSolidBrush32(predefcolors[j][i]);
|
||||
if (hBrush)
|
||||
{
|
||||
hBrush = SelectObject (hdc, hBrush) ;
|
||||
Rectangle (hdc, rect.left, rect.top,
|
||||
rect.left+dx-DISTANCE,rect.top+dy-DISTANCE);
|
||||
hBrush = SelectObject32 (hdc, hBrush) ;
|
||||
Rectangle32(hdc, rect.left, rect.top,
|
||||
rect.left+dx-DISTANCE, rect.top+dy-DISTANCE);
|
||||
rect.left=rect.left+dx;
|
||||
DeleteObject (SelectObject (hdc, hBrush)) ;
|
||||
DeleteObject32( SelectObject32 (hdc, hBrush)) ;
|
||||
}
|
||||
}
|
||||
rect.top=rect.top+dy;
|
||||
|
@ -1815,7 +1815,7 @@ static void CC_PaintUserColorArray(HWND hDlg,int rows,int cols,COLORREF* lpcr)
|
|||
HWND hwnd=GetDlgItem(hDlg,0x2d1);
|
||||
RECT16 rect;
|
||||
HDC32 hdc;
|
||||
HBRUSH16 hBrush;
|
||||
HBRUSH32 hBrush;
|
||||
int dx,dy,i,j,k;
|
||||
|
||||
GetClientRect16(hwnd,&rect);
|
||||
|
@ -1831,14 +1831,14 @@ static void CC_PaintUserColorArray(HWND hDlg,int rows,int cols,COLORREF* lpcr)
|
|||
{
|
||||
for (i=0;i<cols;i++)
|
||||
{
|
||||
hBrush = CreateSolidBrush(lpcr[i+j*cols]);
|
||||
hBrush = CreateSolidBrush32(lpcr[i+j*cols]);
|
||||
if (hBrush)
|
||||
{
|
||||
hBrush = SelectObject (hdc, hBrush) ;
|
||||
Rectangle (hdc, rect.left, rect.top,
|
||||
rect.left+dx-DISTANCE,rect.top+dy-DISTANCE);
|
||||
hBrush = SelectObject32 (hdc, hBrush) ;
|
||||
Rectangle32( hdc, rect.left, rect.top,
|
||||
rect.left+dx-DISTANCE, rect.top+dy-DISTANCE);
|
||||
rect.left=rect.left+dx;
|
||||
DeleteObject (SelectObject (hdc, hBrush)) ;
|
||||
DeleteObject32( SelectObject32 (hdc, hBrush)) ;
|
||||
}
|
||||
}
|
||||
rect.top=rect.top+dy;
|
||||
|
@ -2165,7 +2165,7 @@ LRESULT ColorDlgProc(HWND hDlg, UINT message,
|
|||
return CC_WMInitDialog(hDlg,wParam,lParam);
|
||||
case WM_NCDESTROY:
|
||||
DeleteDC(lpp->hdcMem);
|
||||
DeleteObject(lpp->hbmMem);
|
||||
DeleteObject32(lpp->hbmMem);
|
||||
free(lpp);
|
||||
SetWindowLong32A(hDlg, DWL_USER, 0L); /* we don't need it anymore */
|
||||
break;
|
||||
|
@ -2321,10 +2321,10 @@ static int SetFontStylesToCombo2(HWND hwnd, HDC16 hdc, LPLOGFONT16 lplf,
|
|||
lplf->lfItalic=fontstyles[i].italic;
|
||||
lplf->lfWeight=fontstyles[i].weight;
|
||||
hf=CreateFontIndirect16(lplf);
|
||||
hf=SelectObject(hdc,hf);
|
||||
hf=SelectObject32(hdc,hf);
|
||||
GetTextMetrics16(hdc,lptm);
|
||||
hf=SelectObject(hdc,hf);
|
||||
DeleteObject(hf);
|
||||
hf=SelectObject32(hdc,hf);
|
||||
DeleteObject32(hf);
|
||||
|
||||
if (lptm->tmWeight==fontstyles[i].weight &&
|
||||
lptm->tmItalic==fontstyles[i].italic) /* font successful created ? */
|
||||
|
@ -2568,8 +2568,8 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM16 wParam, LPARAM lParam)
|
|||
{
|
||||
if (lpdi->CtlType == ODT_COMBOBOX)
|
||||
{
|
||||
hBrush = SelectObject(lpdi->hDC, GetStockObject(LTGRAY_BRUSH));
|
||||
SelectObject(lpdi->hDC, hBrush);
|
||||
hBrush = SelectObject32(lpdi->hDC, GetStockObject32(LTGRAY_BRUSH));
|
||||
SelectObject32(lpdi->hDC, hBrush);
|
||||
FillRect16(lpdi->hDC, &lpdi->rcItem, hBrush);
|
||||
}
|
||||
else
|
||||
|
@ -2591,10 +2591,10 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM16 wParam, LPARAM lParam)
|
|||
if (nFontType&TRUETYPE_FONTTYPE)
|
||||
{
|
||||
hMemDC = CreateCompatibleDC(lpdi->hDC);
|
||||
hBitmap = SelectObject(hMemDC, hBitmapTT);
|
||||
hBitmap = SelectObject32(hMemDC, hBitmapTT);
|
||||
BitBlt(lpdi->hDC, lpdi->rcItem.left, lpdi->rcItem.top,
|
||||
bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, SRCCOPY);
|
||||
SelectObject(hMemDC, hBitmap);
|
||||
SelectObject32(hMemDC, hBitmap);
|
||||
DeleteDC(hMemDC);
|
||||
}
|
||||
#endif
|
||||
|
@ -2613,16 +2613,17 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM16 wParam, LPARAM lParam)
|
|||
TextOut16(lpdi->hDC, lpdi->rcItem.left + 25+5,
|
||||
lpdi->rcItem.top, buffer, lstrlen16(buffer));
|
||||
cr = SendMessage16(lpdi->hwndItem, CB_GETITEMDATA, lpdi->itemID,0L);
|
||||
hBrush = CreateSolidBrush(cr);
|
||||
hBrush = CreateSolidBrush32(cr);
|
||||
if (hBrush)
|
||||
{
|
||||
hBrush = SelectObject (lpdi->hDC, hBrush) ;
|
||||
hBrush = SelectObject32 (lpdi->hDC, hBrush) ;
|
||||
rect.right=rect.left+25;
|
||||
rect.top++;
|
||||
rect.left+=5;
|
||||
rect.bottom--;
|
||||
Rectangle(lpdi->hDC,rect.left,rect.top,rect.right,rect.bottom);
|
||||
DeleteObject (SelectObject (lpdi->hDC, hBrush)) ;
|
||||
Rectangle32( lpdi->hDC, rect.left, rect.top,
|
||||
rect.right, rect.bottom );
|
||||
DeleteObject32( SelectObject32 (lpdi->hDC, hBrush)) ;
|
||||
}
|
||||
rect=lpdi->rcItem;
|
||||
rect.left+=25+5;
|
||||
|
@ -2648,7 +2649,7 @@ LRESULT CFn_WMCtlColor(HWND hDlg, WPARAM16 wParam, LPARAM lParam)
|
|||
if (HIWORD(lParam)==CTLCOLOR_STATIC && GetDlgCtrlID(LOWORD(lParam))==stc6)
|
||||
{
|
||||
SetTextColor(wParam,lpcf->rgbColors);
|
||||
return GetStockObject(WHITE_BRUSH);
|
||||
return GetStockObject32(WHITE_BRUSH);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1030,7 +1030,7 @@ LPVOID GetEnvironmentStringsW(void)
|
|||
wenvtable[count]=(WCHAR)envtable[count];
|
||||
free(envtable);
|
||||
|
||||
return envtable;
|
||||
return wenvtable;
|
||||
}
|
||||
|
||||
void FreeEnvironmentStringsA(void *e)
|
||||
|
|
|
@ -1204,7 +1204,8 @@ _w95_loadreg(char* fn,LPKEYSTRUCT lpkey) {
|
|||
}
|
||||
free(data);
|
||||
|
||||
qsort(nr2da,nrofdkes,sizeof(nr2da[0]),_w95dkecomp);
|
||||
qsort(nr2da,nrofdkes,sizeof(nr2da[0]),
|
||||
(int(*)(const void *,const void*))_w95dkecomp);
|
||||
|
||||
/* STEP 2: keydata & values */
|
||||
if (!GetFileInformationByHandle(hfd,&hfdinfo))
|
||||
|
|
|
@ -395,9 +395,9 @@ INT ShellAbout(HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON16 hIcon)
|
|||
handle = SYSRES_LoadResource( SYSRES_DIALOG_SHELL_ABOUT_MSGBOX );
|
||||
if (!handle) return FALSE;
|
||||
bRet = DialogBoxIndirectParam16( WIN_GetWindowInstance( hWnd ),
|
||||
handle, hWnd,
|
||||
MODULE_GetWndProcEntry16("AboutDlgProc"),
|
||||
(LONG)hIcon );
|
||||
handle, hWnd,
|
||||
(DLGPROC16)MODULE_GetWndProcEntry16("AboutDlgProc"),
|
||||
(LPARAM)hIcon );
|
||||
SYSRES_FreeResource( handle );
|
||||
return bRet;
|
||||
}
|
||||
|
|
52
misc/ver.c
52
misc/ver.c
|
@ -408,31 +408,37 @@ VerFindFile16(
|
|||
DWORD
|
||||
VerFindFile32A(
|
||||
UINT32 flags,LPCSTR filename,LPCSTR windir,LPCSTR appdir,
|
||||
LPSTR curdir,UINT32 *curdirlen,LPSTR destdir,UINT32 *destdirlen
|
||||
) {
|
||||
return VerFindFile16(flags,filename,windir,appdir,curdir,curdirlen,destdir,destdirlen);
|
||||
LPSTR curdir,UINT32 *pcurdirlen,LPSTR destdir,UINT32 *pdestdirlen )
|
||||
{
|
||||
UINT16 curdirlen, destdirlen;
|
||||
DWORD ret = VerFindFile16(flags,filename,windir,appdir,
|
||||
curdir,&curdirlen,destdir,&destdirlen);
|
||||
*pcurdirlen = curdirlen;
|
||||
*pdestdirlen = destdirlen;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* VerFindFileW [VERSION.6] */
|
||||
DWORD
|
||||
VerFindFile32W(
|
||||
UINT32 flags,LPCWSTR filename,LPCWSTR windir,LPCWSTR appdir,
|
||||
LPWSTR curdir,UINT32 *curdirlen,LPWSTR destdir,UINT32 *destdirlen
|
||||
) {
|
||||
LPSTR wfn,wwd,wad,wdd,wcd;
|
||||
DWORD ret;
|
||||
LPWSTR curdir,UINT32 *pcurdirlen,LPWSTR destdir,UINT32 *pdestdirlen )
|
||||
{
|
||||
UINT16 curdirlen, destdirlen;
|
||||
LPSTR wfn,wwd,wad,wdd,wcd;
|
||||
DWORD ret;
|
||||
|
||||
wfn = strdupW2A(filename);
|
||||
wwd = strdupW2A(windir);
|
||||
wad = strdupW2A(appdir);
|
||||
wcd = (LPSTR)malloc(*curdirlen);
|
||||
wdd = (LPSTR)malloc(*destdirlen);
|
||||
ret=VerFindFile16(flags,wfn,wwd,wad,wcd,curdirlen,wdd,destdirlen);
|
||||
STRING32_AnsiToUni(curdir,wcd);
|
||||
STRING32_AnsiToUni(destdir,wdd);
|
||||
*curdirlen = strlen(wcd);
|
||||
*destdirlen = strlen(wdd);
|
||||
return ret;
|
||||
wfn = strdupW2A(filename);
|
||||
wwd = strdupW2A(windir);
|
||||
wad = strdupW2A(appdir);
|
||||
wcd = (LPSTR)malloc(*pcurdirlen);
|
||||
wdd = (LPSTR)malloc(*pdestdirlen);
|
||||
ret=VerFindFile16(flags,wfn,wwd,wad,wcd,&curdirlen,wdd,&destdirlen);
|
||||
STRING32_AnsiToUni(curdir,wcd);
|
||||
STRING32_AnsiToUni(destdir,wdd);
|
||||
*pcurdirlen = strlen(wcd);
|
||||
*pdestdirlen = strlen(wdd);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* VerInstallFile [VER.9] */
|
||||
|
@ -454,9 +460,13 @@ VerInstallFile16(
|
|||
DWORD
|
||||
VerInstallFile32A(
|
||||
UINT32 flags,LPCSTR srcfilename,LPCSTR destfilename,LPCSTR srcdir,
|
||||
LPCSTR destdir,LPSTR tmpfile,UINT32 *tmpfilelen
|
||||
) {
|
||||
return VerInstallFile16(flags,srcfilename,destfilename,srcdir,destdir,tmpfile,tmpfilelen);
|
||||
LPCSTR destdir,LPSTR tmpfile,UINT32 *tmpfilelen )
|
||||
{
|
||||
UINT16 filelen;
|
||||
DWORD ret= VerInstallFile16(flags,srcfilename,destfilename,srcdir,
|
||||
destdir,tmpfile,&filelen);
|
||||
*tmpfilelen = filelen;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* VerFindFileW [VERSION.6] */
|
||||
|
|
|
@ -592,7 +592,7 @@ static int INT21_FindNext( SIGCONTEXT *context )
|
|||
int count;
|
||||
|
||||
if (!dta->unixPath) return 0;
|
||||
if (!(count = DOSFS_FindNext( dta->unixPath, dta->mask, dta->drive,
|
||||
if (!(count = DOSFS_FindNext( dta->unixPath, dta->mask, NULL, dta->drive,
|
||||
dta->search_attr, dta->count, &entry )))
|
||||
{
|
||||
free( dta->unixPath );
|
||||
|
@ -741,7 +741,7 @@ static int INT21_FindNextFCB( SIGCONTEXT *context )
|
|||
}
|
||||
|
||||
if (!pFCB->unixPath) return 0;
|
||||
if (!(count = DOSFS_FindNext( pFCB->unixPath, pFCB->filename,
|
||||
if (!(count = DOSFS_FindNext( pFCB->unixPath, pFCB->filename, NULL,
|
||||
DOS_GET_DRIVE( pFCB->drive ), attr,
|
||||
pFCB->count, &entry )))
|
||||
{
|
||||
|
|
|
@ -13,6 +13,14 @@
|
|||
#include "debug.h"
|
||||
|
||||
|
||||
#define VXD_BARF(context,name) \
|
||||
fprintf( stderr, "vxd %s: unknown/not implemented parameters:\n" \
|
||||
"vxd %s: AX %04x, BX %04x, CX %04x, DX %04x, " \
|
||||
"SI %04x, DI %04x, DS %04x, ES %04x\n", \
|
||||
(name), (name), AX_reg(context), BX_reg(context), \
|
||||
CX_reg(context), DX_reg(context), SI_reg(context), \
|
||||
DI_reg(context), DS_reg(context), ES_reg(context) )
|
||||
|
||||
/***********************************************************************
|
||||
* VXD_PageFile
|
||||
*/
|
||||
|
@ -52,7 +60,7 @@ void VXD_PageFile( SIGCONTEXT *context )
|
|||
case 0x05: /* cancel?? INTERRUP.D */
|
||||
case 0x06: /* test I/O valid INTERRUP.D */
|
||||
default:
|
||||
INT_BARF( context, 0x2f);
|
||||
VXD_BARF( context, "pagefile" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -79,7 +87,7 @@ void VXD_Shell( SIGCONTEXT *context )
|
|||
case 0x0004:
|
||||
case 0x0005:
|
||||
dprintf_vxd(stddeb,"VxD Shell: EDX = %08lx\n",EDX_reg(context));
|
||||
INT_BARF( context, 0x2f);
|
||||
VXD_BARF( context, "shell" );
|
||||
break;
|
||||
|
||||
case 0x0006: /* SHELL_Get_VM_State */
|
||||
|
@ -110,7 +118,7 @@ void VXD_Shell( SIGCONTEXT *context )
|
|||
case 0x0016:
|
||||
default:
|
||||
dprintf_vxd(stddeb,"VxD Shell: EDX = %08lx\n",EDX_reg(context));
|
||||
INT_BARF( context, 0x2f);
|
||||
VXD_BARF( context, "shell");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -135,6 +143,6 @@ void VXD_Comm( SIGCONTEXT *context )
|
|||
case 0x0002: /* get focus */
|
||||
case 0x0003: /* virtualise port */
|
||||
default:
|
||||
INT_BARF( context, 0x2f);
|
||||
VXD_BARF( context, "comm" );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -430,7 +430,7 @@ HBITMAP16 BITMAP_SelectObject( DC * dc, HBITMAP16 hbitmap,
|
|||
SetRectRgn(dc->w.hVisRgn, 0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight );
|
||||
else
|
||||
{
|
||||
hrgn = CreateRectRgn( 0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight );
|
||||
hrgn = CreateRectRgn32(0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight);
|
||||
if (!hrgn) return 0;
|
||||
dc->w.hVisRgn = hrgn;
|
||||
}
|
||||
|
|
199
objects/brush.c
199
objects/brush.c
|
@ -4,6 +4,7 @@
|
|||
* Copyright 1993, 1994 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
|
||||
#include <stdlib.h>
|
||||
#include "brush.h"
|
||||
#include "bitmap.h"
|
||||
|
@ -93,7 +94,7 @@ static XImage *ditherImage = NULL;
|
|||
*
|
||||
* Create the X image used for dithering.
|
||||
*/
|
||||
BOOL BRUSH_Init(void)
|
||||
BOOL32 BRUSH_Init(void)
|
||||
{
|
||||
XCREATEIMAGE( ditherImage, MATRIX_SIZE, MATRIX_SIZE, screenDepth );
|
||||
return (ditherImage != NULL);
|
||||
|
@ -139,37 +140,76 @@ Pixmap BRUSH_DitherColor( DC *dc, COLORREF color )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateBrushIndirect (GDI.50)
|
||||
* CreateBrushIndirect16 (GDI.50)
|
||||
*/
|
||||
HBRUSH16 CreateBrushIndirect( const LOGBRUSH16 * brush )
|
||||
HBRUSH16 CreateBrushIndirect16( const LOGBRUSH16 * brush )
|
||||
{
|
||||
BRUSHOBJ * brushPtr;
|
||||
HBRUSH16 hbrush = GDI_AllocObject( sizeof(BRUSHOBJ), BRUSH_MAGIC );
|
||||
if (!hbrush) return 0;
|
||||
brushPtr = (BRUSHOBJ *) GDI_HEAP_LIN_ADDR( hbrush );
|
||||
memcpy( &brushPtr->logbrush, brush, sizeof(*brush) );
|
||||
brushPtr->logbrush.lbStyle = brush->lbStyle;
|
||||
brushPtr->logbrush.lbColor = brush->lbColor;
|
||||
brushPtr->logbrush.lbHatch = brush->lbHatch;
|
||||
return hbrush;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateHatchBrush (GDI.58)
|
||||
* CreateBrushIndirect32 (GDI32.27)
|
||||
*/
|
||||
HBRUSH16 CreateHatchBrush( INT style, COLORREF color )
|
||||
HBRUSH32 CreateBrushIndirect32( const LOGBRUSH32 * brush )
|
||||
{
|
||||
LOGBRUSH16 logbrush = { BS_HATCHED, color, style };
|
||||
dprintf_gdi(stddeb, "CreateHatchBrush: %d %06lx\n", style, color );
|
||||
if ((style < 0) || (style >= NB_HATCH_STYLES)) return 0;
|
||||
return CreateBrushIndirect( &logbrush );
|
||||
BRUSHOBJ * brushPtr;
|
||||
HBRUSH32 hbrush = GDI_AllocObject( sizeof(BRUSHOBJ), BRUSH_MAGIC );
|
||||
if (!hbrush) return 0;
|
||||
brushPtr = (BRUSHOBJ *) GDI_HEAP_LIN_ADDR( hbrush );
|
||||
brushPtr->logbrush.lbStyle = brush->lbStyle;
|
||||
brushPtr->logbrush.lbColor = brush->lbColor;
|
||||
brushPtr->logbrush.lbHatch = brush->lbHatch;
|
||||
return hbrush;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreatePatternBrush (GDI.60)
|
||||
* CreateHatchBrush16 (GDI.58)
|
||||
*/
|
||||
HBRUSH16 CreatePatternBrush( HBITMAP16 hbitmap )
|
||||
HBRUSH16 CreateHatchBrush16( INT16 style, COLORREF color )
|
||||
{
|
||||
LOGBRUSH16 logbrush = { BS_PATTERN, 0, 0 };
|
||||
LOGBRUSH32 logbrush = { BS_HATCHED, color, style };
|
||||
dprintf_gdi(stddeb, "CreateHatchBrush16: %d %06lx\n", style, color );
|
||||
if ((style < 0) || (style >= NB_HATCH_STYLES)) return 0;
|
||||
return CreateBrushIndirect32( &logbrush );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateHatchBrush32 (GDI32.48)
|
||||
*/
|
||||
HBRUSH32 CreateHatchBrush32( INT32 style, COLORREF color )
|
||||
{
|
||||
LOGBRUSH32 logbrush = { BS_HATCHED, color, style };
|
||||
dprintf_gdi(stddeb, "CreateHatchBrush32: %d %06lx\n", style, color );
|
||||
if ((style < 0) || (style >= NB_HATCH_STYLES)) return 0;
|
||||
return CreateBrushIndirect32( &logbrush );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreatePatternBrush16 (GDI.60)
|
||||
*/
|
||||
HBRUSH16 CreatePatternBrush16( HBITMAP16 hbitmap )
|
||||
{
|
||||
return (HBRUSH16)CreatePatternBrush32( hbitmap );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreatePatternBrush32 (GDI32.54)
|
||||
*/
|
||||
HBRUSH32 CreatePatternBrush32( HBITMAP32 hbitmap )
|
||||
{
|
||||
LOGBRUSH32 logbrush = { BS_PATTERN, 0, 0 };
|
||||
BITMAPOBJ *bmp, *newbmp;
|
||||
|
||||
dprintf_gdi(stddeb, "CreatePatternBrush: %04x\n", hbitmap );
|
||||
|
@ -178,29 +218,30 @@ HBRUSH16 CreatePatternBrush( HBITMAP16 hbitmap )
|
|||
|
||||
if (!(bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC )))
|
||||
return 0;
|
||||
logbrush.lbHatch = (INT16)CreateBitmapIndirect16( &bmp->bitmap );
|
||||
newbmp = (BITMAPOBJ *) GDI_GetObjPtr( (HGDIOBJ16)logbrush.lbHatch, BITMAP_MAGIC );
|
||||
logbrush.lbHatch = (INT32)CreateBitmapIndirect16( &bmp->bitmap );
|
||||
newbmp = (BITMAPOBJ *) GDI_GetObjPtr( (HGDIOBJ32)logbrush.lbHatch,
|
||||
BITMAP_MAGIC );
|
||||
if (!newbmp) return 0;
|
||||
XCopyArea( display, bmp->pixmap, newbmp->pixmap, BITMAP_GC(bmp),
|
||||
0, 0, bmp->bitmap.bmWidth, bmp->bitmap.bmHeight, 0, 0 );
|
||||
return CreateBrushIndirect( &logbrush );
|
||||
return CreateBrushIndirect32( &logbrush );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateDIBPatternBrush (GDI.445)
|
||||
* CreateDIBPatternBrush16 (GDI.445)
|
||||
*/
|
||||
HBRUSH16 CreateDIBPatternBrush( HGLOBAL16 hbitmap, UINT coloruse )
|
||||
HBRUSH16 CreateDIBPatternBrush16( HGLOBAL16 hbitmap, UINT16 coloruse )
|
||||
{
|
||||
LOGBRUSH16 logbrush = { BS_DIBPATTERN, coloruse, 0 };
|
||||
LOGBRUSH32 logbrush = { BS_DIBPATTERN, coloruse, 0 };
|
||||
BITMAPINFO *info, *newInfo;
|
||||
int size;
|
||||
INT32 size;
|
||||
|
||||
dprintf_gdi(stddeb, "CreateDIBPatternBrush: %04x\n", hbitmap );
|
||||
|
||||
/* Make a copy of the bitmap */
|
||||
|
||||
if (!(info = (BITMAPINFO *) GlobalLock16( hbitmap ))) return 0;
|
||||
if (!(info = (BITMAPINFO *)GlobalLock16( hbitmap ))) return 0;
|
||||
|
||||
if (info->bmiHeader.biCompression)
|
||||
size = info->bmiHeader.biSizeImage;
|
||||
|
@ -209,7 +250,7 @@ HBRUSH16 CreateDIBPatternBrush( HGLOBAL16 hbitmap, UINT coloruse )
|
|||
* 8 * info->bmiHeader.biHeight;
|
||||
size += DIB_BitmapInfoSize( info, coloruse );
|
||||
|
||||
if (!(logbrush.lbHatch = (INT)GlobalAlloc16( GMEM_MOVEABLE, size )))
|
||||
if (!(logbrush.lbHatch = (INT16)GlobalAlloc16( GMEM_MOVEABLE, size )))
|
||||
{
|
||||
GlobalUnlock16( hbitmap );
|
||||
return 0;
|
||||
|
@ -218,18 +259,64 @@ HBRUSH16 CreateDIBPatternBrush( HGLOBAL16 hbitmap, UINT coloruse )
|
|||
memcpy( newInfo, info, size );
|
||||
GlobalUnlock16( (HGLOBAL16)logbrush.lbHatch );
|
||||
GlobalUnlock16( hbitmap );
|
||||
return CreateBrushIndirect( &logbrush );
|
||||
return CreateBrushIndirect32( &logbrush );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateDIBPatternBrush32 (GDI32.34)
|
||||
*/
|
||||
HBRUSH32 CreateDIBPatternBrush32( HGLOBAL32 hbitmap, UINT32 coloruse )
|
||||
{
|
||||
LOGBRUSH32 logbrush = { BS_DIBPATTERN, coloruse, 0 };
|
||||
BITMAPINFO *info, *newInfo;
|
||||
INT32 size;
|
||||
|
||||
dprintf_gdi(stddeb, "CreateDIBPatternBrush: %04x\n", hbitmap );
|
||||
|
||||
/* Make a copy of the bitmap */
|
||||
|
||||
if (!(info = (BITMAPINFO *)GlobalLock32( hbitmap ))) return 0;
|
||||
|
||||
if (info->bmiHeader.biCompression)
|
||||
size = info->bmiHeader.biSizeImage;
|
||||
else
|
||||
size = (info->bmiHeader.biWidth * info->bmiHeader.biBitCount + 31) / 32
|
||||
* 8 * info->bmiHeader.biHeight;
|
||||
size += DIB_BitmapInfoSize( info, coloruse );
|
||||
|
||||
if (!(logbrush.lbHatch = (INT32)GlobalAlloc16( GMEM_MOVEABLE, size )))
|
||||
{
|
||||
GlobalUnlock16( hbitmap );
|
||||
return 0;
|
||||
}
|
||||
newInfo = (BITMAPINFO *) GlobalLock16( (HGLOBAL16)logbrush.lbHatch );
|
||||
memcpy( newInfo, info, size );
|
||||
GlobalUnlock16( (HGLOBAL16)logbrush.lbHatch );
|
||||
GlobalUnlock16( hbitmap );
|
||||
return CreateBrushIndirect32( &logbrush );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateSolidBrush (GDI.66)
|
||||
*/
|
||||
HBRUSH16 CreateSolidBrush( COLORREF color )
|
||||
HBRUSH16 CreateSolidBrush16( COLORREF color )
|
||||
{
|
||||
LOGBRUSH16 logbrush = { BS_SOLID, color, 0 };
|
||||
dprintf_gdi(stddeb, "CreateSolidBrush: %06lx\n", color );
|
||||
return CreateBrushIndirect( &logbrush );
|
||||
LOGBRUSH32 logbrush = { BS_SOLID, color, 0 };
|
||||
dprintf_gdi(stddeb, "CreateSolidBrush16: %06lx\n", color );
|
||||
return CreateBrushIndirect32( &logbrush );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateSolidBrush32 (GDI32.64)
|
||||
*/
|
||||
HBRUSH32 CreateSolidBrush32( COLORREF color )
|
||||
{
|
||||
LOGBRUSH32 logbrush = { BS_SOLID, color, 0 };
|
||||
dprintf_gdi(stddeb, "CreateSolidBrush32: %06lx\n", color );
|
||||
return CreateBrushIndirect32( &logbrush );
|
||||
}
|
||||
|
||||
|
||||
|
@ -268,12 +355,22 @@ BOOL32 SetBrushOrgEx( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 oldorg )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* GetSysColorBrush (USER.281)
|
||||
* GetSysColorBrush16 (USER.281)
|
||||
*/
|
||||
HBRUSH16 GetSysColorBrush(WORD x)
|
||||
HBRUSH16 GetSysColorBrush16( INT16 index )
|
||||
{
|
||||
fprintf( stderr, "Unimplemented stub: GetSysColorBrush(%d)\n", x );
|
||||
return GetStockObject(LTGRAY_BRUSH);
|
||||
fprintf( stderr, "Unimplemented stub: GetSysColorBrush16(%d)\n", index );
|
||||
return GetStockObject32(LTGRAY_BRUSH);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* GetSysColorBrush32 (USER32.289)
|
||||
*/
|
||||
HBRUSH32 GetSysColorBrush32( INT32 index)
|
||||
{
|
||||
fprintf( stderr, "Unimplemented stub: GetSysColorBrush32(%d)\n", index );
|
||||
return GetStockObject32(LTGRAY_BRUSH);
|
||||
}
|
||||
|
||||
|
||||
|
@ -285,7 +382,7 @@ BOOL32 BRUSH_DeleteObject( HBRUSH16 hbrush, BRUSHOBJ * brush )
|
|||
switch(brush->logbrush.lbStyle)
|
||||
{
|
||||
case BS_PATTERN:
|
||||
DeleteObject( (HGDIOBJ16)brush->logbrush.lbHatch );
|
||||
DeleteObject32( (HGDIOBJ32)brush->logbrush.lbHatch );
|
||||
break;
|
||||
case BS_DIBPATTERN:
|
||||
GlobalFree16( (HGLOBAL16)brush->logbrush.lbHatch );
|
||||
|
@ -296,9 +393,25 @@ BOOL32 BRUSH_DeleteObject( HBRUSH16 hbrush, BRUSHOBJ * brush )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* BRUSH_GetObject
|
||||
* BRUSH_GetObject16
|
||||
*/
|
||||
int BRUSH_GetObject( BRUSHOBJ * brush, int count, LPSTR buffer )
|
||||
INT16 BRUSH_GetObject16( BRUSHOBJ * brush, INT16 count, LPSTR buffer )
|
||||
{
|
||||
LOGBRUSH16 logbrush;
|
||||
|
||||
logbrush.lbStyle = brush->logbrush.lbStyle;
|
||||
logbrush.lbColor = brush->logbrush.lbColor;
|
||||
logbrush.lbHatch = brush->logbrush.lbHatch;
|
||||
if (count > sizeof(logbrush)) count = sizeof(logbrush);
|
||||
memcpy( buffer, &logbrush, count );
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* BRUSH_GetObject32
|
||||
*/
|
||||
INT32 BRUSH_GetObject32( BRUSHOBJ * brush, INT32 count, LPSTR buffer )
|
||||
{
|
||||
if (count > sizeof(brush->logbrush)) count = sizeof(brush->logbrush);
|
||||
memcpy( buffer, &brush->logbrush, count );
|
||||
|
@ -330,7 +443,7 @@ static void BRUSH_SelectSolidBrush( DC *dc, COLORREF color )
|
|||
/***********************************************************************
|
||||
* BRUSH_SelectPatternBrush
|
||||
*/
|
||||
static BOOL BRUSH_SelectPatternBrush( DC * dc, HBITMAP16 hbitmap )
|
||||
static BOOL32 BRUSH_SelectPatternBrush( DC * dc, HBITMAP32 hbitmap )
|
||||
{
|
||||
BITMAPOBJ * bmp = (BITMAPOBJ *) GDI_GetObjPtr( hbitmap, BITMAP_MAGIC );
|
||||
if (!bmp) return FALSE;
|
||||
|
@ -357,7 +470,7 @@ static BOOL BRUSH_SelectPatternBrush( DC * dc, HBITMAP16 hbitmap )
|
|||
/***********************************************************************
|
||||
* BRUSH_SelectObject
|
||||
*/
|
||||
HBRUSH16 BRUSH_SelectObject( DC * dc, HBRUSH16 hbrush, BRUSHOBJ * brush )
|
||||
HBRUSH32 BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush, BRUSHOBJ * brush )
|
||||
{
|
||||
HBITMAP16 hBitmap;
|
||||
BITMAPINFO * bmpInfo;
|
||||
|
@ -367,22 +480,22 @@ HBRUSH16 BRUSH_SelectObject( DC * dc, HBRUSH16 hbrush, BRUSHOBJ * brush )
|
|||
dc->hSelf,hbrush);
|
||||
if (dc->header.wMagic == METAFILE_DC_MAGIC)
|
||||
{
|
||||
LOGBRUSH16 logbrush = { brush->logbrush.lbStyle,
|
||||
brush->logbrush.lbColor,
|
||||
brush->logbrush.lbHatch };
|
||||
switch (brush->logbrush.lbStyle)
|
||||
{
|
||||
case BS_SOLID:
|
||||
case BS_HATCHED:
|
||||
case BS_HOLLOW:
|
||||
if (!MF_CreateBrushIndirect(dc, hbrush, &(brush->logbrush)))
|
||||
return (HBRUSH16)0;
|
||||
if (!MF_CreateBrushIndirect( dc, hbrush, &logbrush )) return 0;
|
||||
break;
|
||||
|
||||
case BS_PATTERN:
|
||||
case BS_DIBPATTERN:
|
||||
if (!MF_CreatePatternBrush(dc, hbrush, &(brush->logbrush)))
|
||||
return (HBRUSH16)0;
|
||||
if (!MF_CreatePatternBrush( dc, hbrush, &logbrush )) return 0;
|
||||
break;
|
||||
}
|
||||
return (HBRUSH16)1;
|
||||
return 1; /* FIXME? */
|
||||
}
|
||||
|
||||
dc->w.hBrush = hbrush;
|
||||
|
@ -427,7 +540,7 @@ HBRUSH16 BRUSH_SelectObject( DC * dc, HBRUSH16 hbrush, BRUSHOBJ * brush )
|
|||
((char *)bmpInfo) + size, bmpInfo,
|
||||
(WORD) brush->logbrush.lbColor );
|
||||
BRUSH_SelectPatternBrush( dc, hBitmap );
|
||||
DeleteObject( hBitmap );
|
||||
DeleteObject16( hBitmap );
|
||||
GlobalUnlock16( (HGLOBAL16)brush->logbrush.lbHatch );
|
||||
}
|
||||
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
* Copyright 1993 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
|
||||
#include <stdio.h>
|
||||
#include "dc.h"
|
||||
#include "metafile.h"
|
||||
#include "region.h"
|
||||
#include "stddebug.h"
|
||||
/* #define DEBUG_CLIPPING */
|
||||
#include "debug.h"
|
||||
|
||||
#define UPDATE_DIRTY_DC(dc) \
|
||||
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
void CLIPPING_UpdateGCRegion( DC * dc )
|
||||
{
|
||||
if (!dc->w.hGCClipRgn) dc->w.hGCClipRgn = CreateRectRgn( 0, 0, 0, 0 );
|
||||
if (!dc->w.hGCClipRgn) dc->w.hGCClipRgn = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
|
||||
if (!dc->w.hVisRgn)
|
||||
{
|
||||
|
@ -42,19 +42,28 @@ void CLIPPING_UpdateGCRegion( DC * dc )
|
|||
}
|
||||
|
||||
if (!dc->w.hClipRgn)
|
||||
CombineRgn( dc->w.hGCClipRgn, dc->w.hVisRgn, 0, RGN_COPY );
|
||||
CombineRgn32( dc->w.hGCClipRgn, dc->w.hVisRgn, 0, RGN_COPY );
|
||||
else
|
||||
CombineRgn( dc->w.hGCClipRgn, dc->w.hClipRgn, dc->w.hVisRgn, RGN_AND );
|
||||
CombineRgn32(dc->w.hGCClipRgn, dc->w.hClipRgn, dc->w.hVisRgn, RGN_AND);
|
||||
if (dc->funcs->pSetDeviceClipping) dc->funcs->pSetDeviceClipping( dc );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SelectClipRgn (GDI.44)
|
||||
* SelectClipRgn16 (GDI.44)
|
||||
*/
|
||||
int SelectClipRgn( HDC16 hdc, HRGN32 hrgn )
|
||||
INT16 SelectClipRgn16( HDC16 hdc, HRGN16 hrgn )
|
||||
{
|
||||
int retval;
|
||||
return (INT16)SelectClipRgn32( hdc, hrgn );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SelectClipRgn32 (GDI32.297)
|
||||
*/
|
||||
INT32 SelectClipRgn32( HDC32 hdc, HRGN32 hrgn )
|
||||
{
|
||||
INT32 retval;
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc) return ERROR;
|
||||
|
||||
|
@ -62,12 +71,12 @@ int SelectClipRgn( HDC16 hdc, HRGN32 hrgn )
|
|||
|
||||
if (hrgn)
|
||||
{
|
||||
if (!dc->w.hClipRgn) dc->w.hClipRgn = CreateRectRgn(0,0,0,0);
|
||||
retval = CombineRgn( dc->w.hClipRgn, hrgn, 0, RGN_COPY );
|
||||
if (!dc->w.hClipRgn) dc->w.hClipRgn = CreateRectRgn32(0,0,0,0);
|
||||
retval = CombineRgn32( dc->w.hClipRgn, hrgn, 0, RGN_COPY );
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dc->w.hClipRgn) DeleteObject( dc->w.hClipRgn );
|
||||
if (dc->w.hClipRgn) DeleteObject16( dc->w.hClipRgn );
|
||||
dc->w.hClipRgn = 0;
|
||||
retval = SIMPLEREGION; /* Clip region == whole DC */
|
||||
}
|
||||
|
@ -80,7 +89,7 @@ int SelectClipRgn( HDC16 hdc, HRGN32 hrgn )
|
|||
/***********************************************************************
|
||||
* SelectVisRgn (GDI.105)
|
||||
*/
|
||||
int SelectVisRgn( HDC16 hdc, HRGN32 hrgn )
|
||||
INT16 SelectVisRgn( HDC16 hdc, HRGN16 hrgn )
|
||||
{
|
||||
int retval;
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
|
@ -90,16 +99,25 @@ int SelectVisRgn( HDC16 hdc, HRGN32 hrgn )
|
|||
|
||||
dc->w.flags &= ~DC_DIRTY;
|
||||
|
||||
retval = CombineRgn( dc->w.hVisRgn, hrgn, 0, RGN_COPY );
|
||||
retval = CombineRgn16( dc->w.hVisRgn, hrgn, 0, RGN_COPY );
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* OffsetClipRgn (GDI.32)
|
||||
* OffsetClipRgn16 (GDI.32)
|
||||
*/
|
||||
int OffsetClipRgn( HDC16 hdc, short x, short y )
|
||||
INT16 OffsetClipRgn16( HDC16 hdc, INT16 x, INT16 y )
|
||||
{
|
||||
return (INT16)OffsetClipRgn32( hdc, x, y );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* OffsetClipRgn32 (GDI32.255)
|
||||
*/
|
||||
INT32 OffsetClipRgn32( HDC32 hdc, INT32 x, INT32 y )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc)
|
||||
|
@ -114,9 +132,9 @@ int OffsetClipRgn( HDC16 hdc, short x, short y )
|
|||
|
||||
if (dc->w.hClipRgn)
|
||||
{
|
||||
int retval = OffsetRgn( dc->w.hClipRgn, XLPTODP(dc,x), YLPTODP(dc,y) );
|
||||
INT32 ret = OffsetRgn32( dc->w.hClipRgn, XLPTODP(dc,x), YLPTODP(dc,y));
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
return retval;
|
||||
return ret;
|
||||
}
|
||||
else return SIMPLEREGION; /* Clip region == client area */
|
||||
}
|
||||
|
@ -125,13 +143,13 @@ int OffsetClipRgn( HDC16 hdc, short x, short y )
|
|||
/***********************************************************************
|
||||
* OffsetVisRgn (GDI.102)
|
||||
*/
|
||||
int OffsetVisRgn( HDC16 hdc, short x, short y )
|
||||
INT16 OffsetVisRgn( HDC16 hdc, INT16 x, INT16 y )
|
||||
{
|
||||
int retval;
|
||||
INT16 retval;
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc) return ERROR;
|
||||
dprintf_clipping(stddeb, "OffsetVisRgn: %04x %d,%d\n", hdc, x, y );
|
||||
retval = OffsetRgn( dc->w.hVisRgn, x, y );
|
||||
retval = OffsetRgn32( dc->w.hVisRgn, x, y );
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
return retval;
|
||||
}
|
||||
|
@ -144,14 +162,14 @@ int OffsetVisRgn( HDC16 hdc, short x, short y )
|
|||
* elsewhere (like ExtTextOut()) to skip redundant metafile update and
|
||||
* coordinate conversion.
|
||||
*/
|
||||
int CLIPPING_IntersectClipRect( DC * dc, short left, short top,
|
||||
short right, short bottom, UINT16 flags)
|
||||
INT32 CLIPPING_IntersectClipRect( DC * dc, INT32 left, INT32 top,
|
||||
INT32 right, INT32 bottom, UINT32 flags )
|
||||
{
|
||||
HRGN32 newRgn;
|
||||
int ret;
|
||||
INT32 ret;
|
||||
|
||||
if ( !(newRgn = CreateRectRgn( left, top, right, bottom )) ) return ERROR;
|
||||
if ( !dc->w.hClipRgn )
|
||||
if (!(newRgn = CreateRectRgn32( left, top, right, bottom ))) return ERROR;
|
||||
if (!dc->w.hClipRgn)
|
||||
{
|
||||
if( flags & CLIP_INTERSECT )
|
||||
{
|
||||
|
@ -161,24 +179,34 @@ int CLIPPING_IntersectClipRect( DC * dc, short left, short top,
|
|||
return SIMPLEREGION;
|
||||
}
|
||||
|
||||
ret = CombineRgn( newRgn, dc->w.hClipRgn, newRgn,
|
||||
(flags & CLIP_EXCLUDE)? RGN_DIFF : RGN_AND);
|
||||
ret = CombineRgn32( newRgn, dc->w.hClipRgn, newRgn,
|
||||
(flags & CLIP_EXCLUDE) ? RGN_DIFF : RGN_AND );
|
||||
if (ret != ERROR)
|
||||
{
|
||||
if ( !(flags & CLIP_KEEPRGN) ) DeleteObject( dc->w.hClipRgn );
|
||||
if (!(flags & CLIP_KEEPRGN)) DeleteObject32( dc->w.hClipRgn );
|
||||
dc->w.hClipRgn = newRgn;
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
}
|
||||
else DeleteObject( newRgn );
|
||||
else DeleteObject32( newRgn );
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* ExcludeClipRect (GDI.21)
|
||||
* ExcludeClipRect16 (GDI.21)
|
||||
*/
|
||||
int ExcludeClipRect( HDC16 hdc, short left, short top,
|
||||
short right, short bottom )
|
||||
INT16 ExcludeClipRect16( HDC16 hdc, INT16 left, INT16 top,
|
||||
INT16 right, INT16 bottom )
|
||||
{
|
||||
return (INT16)ExcludeClipRect32( hdc, left, top, right, bottom );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* ExcludeClipRect32 (GDI32.92)
|
||||
*/
|
||||
INT32 ExcludeClipRect32( HDC32 hdc, INT32 left, INT32 top,
|
||||
INT32 right, INT32 bottom )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc)
|
||||
|
@ -201,10 +229,20 @@ int ExcludeClipRect( HDC16 hdc, short left, short top,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* IntersectClipRect (GDI.22)
|
||||
* IntersectClipRect16 (GDI.22)
|
||||
*/
|
||||
int IntersectClipRect( HDC16 hdc, short left, short top,
|
||||
short right, short bottom )
|
||||
INT16 IntersectClipRect16( HDC16 hdc, INT16 left, INT16 top,
|
||||
INT16 right, INT16 bottom )
|
||||
{
|
||||
return (INT16)IntersectClipRect32( hdc, left, top, right, bottom );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* IntersectClipRect32 (GDI32.245)
|
||||
*/
|
||||
INT32 IntersectClipRect32( HDC32 hdc, INT32 left, INT32 top,
|
||||
INT32 right, INT32 bottom )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc)
|
||||
|
@ -231,37 +269,38 @@ int IntersectClipRect( HDC16 hdc, short left, short top,
|
|||
*
|
||||
* Helper function for {Intersect,Exclude}VisRect
|
||||
*/
|
||||
static int CLIPPING_IntersectVisRect( DC * dc, short left, short top,
|
||||
short right, short bottom, BOOL exclude )
|
||||
static INT32 CLIPPING_IntersectVisRect( DC * dc, INT32 left, INT32 top,
|
||||
INT32 right, INT32 bottom,
|
||||
BOOL32 exclude )
|
||||
{
|
||||
HRGN32 tempRgn, newRgn;
|
||||
int ret;
|
||||
INT32 ret;
|
||||
|
||||
left = XLPTODP( dc, left );
|
||||
right = XLPTODP( dc, right );
|
||||
top = YLPTODP( dc, top );
|
||||
bottom = YLPTODP( dc, bottom );
|
||||
|
||||
if (!(newRgn = CreateRectRgn( 0, 0, 0, 0 ))) return ERROR;
|
||||
if (!(tempRgn = CreateRectRgn( left, top, right, bottom )))
|
||||
if (!(newRgn = CreateRectRgn32( 0, 0, 0, 0 ))) return ERROR;
|
||||
if (!(tempRgn = CreateRectRgn32( left, top, right, bottom )))
|
||||
{
|
||||
DeleteObject( newRgn );
|
||||
DeleteObject32( newRgn );
|
||||
return ERROR;
|
||||
}
|
||||
ret = CombineRgn( newRgn, dc->w.hVisRgn, tempRgn,
|
||||
exclude ? RGN_DIFF : RGN_AND);
|
||||
DeleteObject( tempRgn );
|
||||
ret = CombineRgn32( newRgn, dc->w.hVisRgn, tempRgn,
|
||||
exclude ? RGN_DIFF : RGN_AND );
|
||||
DeleteObject32( tempRgn );
|
||||
|
||||
if (ret != ERROR)
|
||||
{
|
||||
RGNOBJ *newObj = (RGNOBJ*)GDI_GetObjPtr( newRgn, REGION_MAGIC);
|
||||
RGNOBJ *prevObj = (RGNOBJ*)GDI_GetObjPtr( dc->w.hVisRgn, REGION_MAGIC);
|
||||
if (newObj && prevObj) newObj->header.hNext = prevObj->header.hNext;
|
||||
DeleteObject( dc->w.hVisRgn );
|
||||
DeleteObject32( dc->w.hVisRgn );
|
||||
dc->w.hVisRgn = newRgn;
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
}
|
||||
else DeleteObject( newRgn );
|
||||
else DeleteObject32( newRgn );
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -269,8 +308,8 @@ static int CLIPPING_IntersectVisRect( DC * dc, short left, short top,
|
|||
/***********************************************************************
|
||||
* ExcludeVisRect (GDI.73)
|
||||
*/
|
||||
int ExcludeVisRect( HDC16 hdc, short left, short top,
|
||||
short right, short bottom )
|
||||
INT16 ExcludeVisRect( HDC16 hdc, INT16 left, INT16 top,
|
||||
INT16 right, INT16 bottom )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc) return ERROR;
|
||||
|
@ -284,8 +323,8 @@ int ExcludeVisRect( HDC16 hdc, short left, short top,
|
|||
/***********************************************************************
|
||||
* IntersectVisRect (GDI.98)
|
||||
*/
|
||||
int IntersectVisRect( HDC16 hdc, short left, short top,
|
||||
short right, short bottom )
|
||||
INT16 IntersectVisRect( HDC16 hdc, INT16 left, INT16 top,
|
||||
INT16 right, INT16 bottom )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc) return ERROR;
|
||||
|
@ -297,9 +336,18 @@ int IntersectVisRect( HDC16 hdc, short left, short top,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* PtVisible (GDI.103)
|
||||
* PtVisible16 (GDI.103)
|
||||
*/
|
||||
BOOL PtVisible( HDC16 hdc, short x, short y )
|
||||
BOOL16 PtVisible16( HDC16 hdc, INT16 x, INT16 y )
|
||||
{
|
||||
return PtVisible32( hdc, x, y );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* PtVisible32 (GDI32.279)
|
||||
*/
|
||||
BOOL32 PtVisible32( HDC32 hdc, INT32 x, INT32 y )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc) return ERROR;
|
||||
|
@ -310,7 +358,7 @@ BOOL PtVisible( HDC16 hdc, short x, short y )
|
|||
if( dc->w.flags & DC_DIRTY ) UPDATE_DIRTY_DC(dc);
|
||||
dc->w.flags &= ~DC_DIRTY;
|
||||
|
||||
return PtInRegion( dc->w.hGCClipRgn, XLPTODP(dc,x), YLPTODP(dc,y) );
|
||||
return PtInRegion32( dc->w.hGCClipRgn, XLPTODP(dc,x), YLPTODP(dc,y) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -374,7 +422,7 @@ INT32 GetClipBox32( HDC32 hdc, LPRECT32 rect )
|
|||
/***********************************************************************
|
||||
* SaveVisRgn (GDI.129)
|
||||
*/
|
||||
HRGN32 SaveVisRgn( HDC16 hdc )
|
||||
HRGN16 SaveVisRgn( HDC16 hdc )
|
||||
{
|
||||
HRGN32 copy;
|
||||
RGNOBJ *obj, *copyObj;
|
||||
|
@ -391,8 +439,8 @@ HRGN32 SaveVisRgn( HDC16 hdc )
|
|||
|
||||
if (!(obj = (RGNOBJ *) GDI_GetObjPtr( dc->w.hVisRgn, REGION_MAGIC )))
|
||||
return 0;
|
||||
if (!(copy = CreateRectRgn( 0, 0, 0, 0 ))) return 0;
|
||||
CombineRgn( copy, dc->w.hVisRgn, 0, RGN_COPY );
|
||||
if (!(copy = CreateRectRgn32( 0, 0, 0, 0 ))) return 0;
|
||||
CombineRgn32( copy, dc->w.hVisRgn, 0, RGN_COPY );
|
||||
if (!(copyObj = (RGNOBJ *) GDI_GetObjPtr( copy, REGION_MAGIC )))
|
||||
return 0;
|
||||
copyObj->header.hNext = obj->header.hNext;
|
||||
|
@ -404,7 +452,7 @@ HRGN32 SaveVisRgn( HDC16 hdc )
|
|||
/***********************************************************************
|
||||
* RestoreVisRgn (GDI.130)
|
||||
*/
|
||||
int RestoreVisRgn( HDC16 hdc )
|
||||
INT16 RestoreVisRgn( HDC16 hdc )
|
||||
{
|
||||
HRGN32 saved;
|
||||
RGNOBJ *obj, *savedObj;
|
||||
|
@ -416,7 +464,7 @@ int RestoreVisRgn( HDC16 hdc )
|
|||
if (!(saved = obj->header.hNext)) return ERROR;
|
||||
if (!(savedObj = (RGNOBJ *) GDI_GetObjPtr( saved, REGION_MAGIC )))
|
||||
return ERROR;
|
||||
DeleteObject( dc->w.hVisRgn );
|
||||
DeleteObject32( dc->w.hVisRgn );
|
||||
dc->w.hVisRgn = saved;
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
return savedObj->xrgn ? COMPLEXREGION : NULLREGION;
|
||||
|
|
|
@ -335,8 +335,8 @@ HGLOBAL16 CURSORICON_LoadHandler( HGLOBAL16 handle, HINSTANCE16 hInstance,
|
|||
if (!(handle = GlobalAlloc16( GMEM_MOVEABLE,
|
||||
sizeof(CURSORICONINFO) + sizeXor + sizeAnd)))
|
||||
{
|
||||
DeleteObject( hXorBits );
|
||||
DeleteObject( hAndBits );
|
||||
DeleteObject32( hXorBits );
|
||||
DeleteObject32( hAndBits );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -356,8 +356,8 @@ HGLOBAL16 CURSORICON_LoadHandler( HGLOBAL16 handle, HINSTANCE16 hInstance,
|
|||
|
||||
GetBitmapBits( hAndBits, sizeAnd, (char *)(info + 1) );
|
||||
GetBitmapBits( hXorBits, sizeXor, (char *)(info + 1) + sizeAnd );
|
||||
DeleteObject( hXorBits );
|
||||
DeleteObject( hAndBits );
|
||||
DeleteObject32( hXorBits );
|
||||
DeleteObject32( hAndBits );
|
||||
GlobalUnlock16( handle );
|
||||
return handle;
|
||||
}
|
||||
|
@ -626,15 +626,15 @@ BOOL DrawIcon( HDC16 hdc, INT x, INT y, HICON16 hIcon )
|
|||
|
||||
if (hXorBits && hAndBits)
|
||||
{
|
||||
HBITMAP16 hBitTemp = SelectObject( hMemDC, hAndBits );
|
||||
HBITMAP32 hBitTemp = SelectObject32( hMemDC, hAndBits );
|
||||
BitBlt( hdc, x, y, ptr->nWidth, ptr->nHeight, hMemDC, 0, 0, SRCAND );
|
||||
SelectObject( hMemDC, hXorBits );
|
||||
SelectObject32( hMemDC, hXorBits );
|
||||
BitBlt( hdc, x, y, ptr->nWidth, ptr->nHeight, hMemDC, 0, 0, SRCINVERT);
|
||||
SelectObject( hMemDC, hBitTemp );
|
||||
SelectObject32( hMemDC, hBitTemp );
|
||||
}
|
||||
DeleteDC( hMemDC );
|
||||
if (hXorBits) DeleteObject( hXorBits );
|
||||
if (hAndBits) DeleteObject( hAndBits );
|
||||
if (hXorBits) DeleteObject32( hXorBits );
|
||||
if (hAndBits) DeleteObject32( hAndBits );
|
||||
GlobalUnlock16( hIcon );
|
||||
SetTextColor( hdc, oldFg );
|
||||
SetBkColor( hdc, oldBg );
|
||||
|
|
98
objects/dc.c
98
objects/dc.c
|
@ -185,9 +185,9 @@ void DC_InitDC( DC* dc )
|
|||
RealizeDefaultPalette( dc->hSelf );
|
||||
SetTextColor( dc->hSelf, dc->w.textColor );
|
||||
SetBkColor( dc->hSelf, dc->w.backgroundColor );
|
||||
SelectObject( dc->hSelf, dc->w.hPen );
|
||||
SelectObject( dc->hSelf, dc->w.hBrush );
|
||||
SelectObject( dc->hSelf, dc->w.hFont );
|
||||
SelectObject32( dc->hSelf, dc->w.hPen );
|
||||
SelectObject32( dc->hSelf, dc->w.hBrush );
|
||||
SelectObject32( dc->hSelf, dc->w.hFont );
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
}
|
||||
|
||||
|
@ -379,19 +379,18 @@ HDC16 GetDCState( HDC16 hdc )
|
|||
|
||||
memset( &newdc->u.x, 0, sizeof(newdc->u.x) );
|
||||
memcpy( &newdc->w, &dc->w, sizeof(dc->w) );
|
||||
memcpy( &newdc->u.x.pen, &dc->u.x.pen, sizeof(dc->u.x.pen) );
|
||||
|
||||
newdc->hSelf = (HDC32)handle;
|
||||
newdc->saveLevel = 0;
|
||||
newdc->w.flags |= DC_SAVED;
|
||||
|
||||
newdc->w.hGCClipRgn = 0;
|
||||
newdc->w.hVisRgn = CreateRectRgn( 0, 0, 0, 0 );
|
||||
CombineRgn( newdc->w.hVisRgn, dc->w.hVisRgn, 0, RGN_COPY );
|
||||
newdc->w.hVisRgn = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
CombineRgn32( newdc->w.hVisRgn, dc->w.hVisRgn, 0, RGN_COPY );
|
||||
if (dc->w.hClipRgn)
|
||||
{
|
||||
newdc->w.hClipRgn = CreateRectRgn( 0, 0, 0, 0 );
|
||||
CombineRgn( newdc->w.hClipRgn, dc->w.hClipRgn, 0, RGN_COPY );
|
||||
newdc->w.hClipRgn = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
CombineRgn32( newdc->w.hClipRgn, dc->w.hClipRgn, 0, RGN_COPY );
|
||||
}
|
||||
return handle;
|
||||
}
|
||||
|
@ -402,37 +401,56 @@ HDC16 GetDCState( HDC16 hdc )
|
|||
*/
|
||||
void SetDCState( HDC16 hdc, HDC16 hdcs )
|
||||
{
|
||||
DC * dc, * dcs;
|
||||
HRGN32 hVisRgn, hClipRgn, hGCClipRgn;
|
||||
HFONT16 hfont;
|
||||
HBRUSH16 hbrush;
|
||||
DC *dc, *dcs;
|
||||
|
||||
if (!(dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ))) return;
|
||||
if (!(dcs = (DC *) GDI_GetObjPtr( hdcs, DC_MAGIC ))) return;
|
||||
if (!dcs->w.flags & DC_SAVED) return;
|
||||
dprintf_dc(stddeb, "SetDCState: %04x %04x\n", hdc, hdcs );
|
||||
|
||||
/* Save the regions, font & brush before overwriting everything */
|
||||
hVisRgn = dc->w.hVisRgn;
|
||||
hClipRgn = dc->w.hClipRgn;
|
||||
hGCClipRgn = dc->w.hGCClipRgn;
|
||||
hfont = dc->w.hFont;
|
||||
hbrush = dc->w.hBrush;
|
||||
memcpy( &dc->w, &dcs->w, sizeof(dc->w) );
|
||||
memcpy( &dc->u.x.pen, &dcs->u.x.pen, sizeof(dc->u.x.pen) );
|
||||
dc->w.flags &= ~DC_SAVED;
|
||||
dc->w.flags = dcs->w.flags & ~DC_SAVED;
|
||||
dc->w.devCaps = dcs->w.devCaps;
|
||||
dc->w.hFirstBitmap = dcs->w.hFirstBitmap;
|
||||
dc->w.hDevice = dcs->w.hDevice;
|
||||
dc->w.ROPmode = dcs->w.ROPmode;
|
||||
dc->w.polyFillMode = dcs->w.polyFillMode;
|
||||
dc->w.stretchBltMode = dcs->w.stretchBltMode;
|
||||
dc->w.relAbsMode = dcs->w.relAbsMode;
|
||||
dc->w.backgroundMode = dcs->w.backgroundMode;
|
||||
dc->w.backgroundColor = dcs->w.backgroundColor;
|
||||
dc->w.textColor = dcs->w.textColor;
|
||||
dc->w.backgroundPixel = dcs->w.backgroundPixel;
|
||||
dc->w.textPixel = dcs->w.textPixel;
|
||||
dc->w.brushOrgX = dcs->w.brushOrgX;
|
||||
dc->w.brushOrgY = dcs->w.brushOrgY;
|
||||
dc->w.textAlign = dcs->w.textAlign;
|
||||
dc->w.charExtra = dcs->w.charExtra;
|
||||
dc->w.breakTotalExtra = dcs->w.breakTotalExtra;
|
||||
dc->w.breakCount = dcs->w.breakCount;
|
||||
dc->w.breakExtra = dcs->w.breakExtra;
|
||||
dc->w.breakRem = dcs->w.breakRem;
|
||||
dc->w.MapMode = dcs->w.MapMode;
|
||||
dc->w.DCOrgX = dcs->w.DCOrgX;
|
||||
dc->w.DCOrgY = dcs->w.DCOrgY;
|
||||
dc->w.CursPosX = dcs->w.CursPosX;
|
||||
dc->w.CursPosY = dcs->w.CursPosY;
|
||||
dc->w.WndOrgX = dcs->w.WndOrgX;
|
||||
dc->w.WndOrgY = dcs->w.WndOrgY;
|
||||
dc->w.WndExtX = dcs->w.WndExtX;
|
||||
dc->w.WndExtY = dcs->w.WndExtY;
|
||||
dc->w.VportOrgX = dcs->w.VportOrgX;
|
||||
dc->w.VportOrgY = dcs->w.VportOrgY;
|
||||
dc->w.VportExtX = dcs->w.VportExtX;
|
||||
dc->w.VportExtY = dcs->w.VportExtY;
|
||||
|
||||
/* Restore the regions */
|
||||
dc->w.hVisRgn = hVisRgn;
|
||||
dc->w.hClipRgn = hClipRgn;
|
||||
dc->w.hGCClipRgn = hGCClipRgn;
|
||||
dc->w.hFont = hfont;
|
||||
dc->w.hBrush = hbrush;
|
||||
CombineRgn( dc->w.hVisRgn, dcs->w.hVisRgn, 0, RGN_COPY );
|
||||
SelectClipRgn( hdc, dcs->w.hClipRgn );
|
||||
|
||||
SelectObject( hdc, dcs->w.hBrush );
|
||||
SelectObject( hdc, dcs->w.hFont );
|
||||
if (!(dc->w.flags & DC_MEMORY)) dc->w.bitsPerPixel = dcs->w.bitsPerPixel;
|
||||
CombineRgn32( dc->w.hVisRgn, dcs->w.hVisRgn, 0, RGN_COPY );
|
||||
SelectClipRgn32( hdc, dcs->w.hClipRgn );
|
||||
SelectObject32( hdc, dcs->w.hBitmap );
|
||||
SelectObject32( hdc, dcs->w.hBrush );
|
||||
SelectObject32( hdc, dcs->w.hFont );
|
||||
SelectObject32( hdc, dcs->w.hPen );
|
||||
GDISelectPalette( hdc, dcs->w.hPalette, FALSE );
|
||||
}
|
||||
|
||||
|
||||
|
@ -564,7 +582,7 @@ HDC16 CreateCompatibleDC( HDC16 hdc )
|
|||
!dc->funcs->pCreateDC( dc, NULL, NULL, NULL, NULL ))
|
||||
{
|
||||
dprintf_dc( stddeb, "CreateDC: creation aborted by device\n" );
|
||||
DeleteObject( hbitmap );
|
||||
DeleteObject32( hbitmap );
|
||||
GDI_HEAP_FREE( dc->hSelf );
|
||||
return 0;
|
||||
}
|
||||
|
@ -596,16 +614,16 @@ BOOL DeleteDC( HDC16 hdc )
|
|||
|
||||
if (!(dc->w.flags & DC_SAVED))
|
||||
{
|
||||
SelectObject( hdc, STOCK_BLACK_PEN );
|
||||
SelectObject( hdc, STOCK_WHITE_BRUSH );
|
||||
SelectObject( hdc, STOCK_SYSTEM_FONT );
|
||||
if (dc->w.flags & DC_MEMORY) DeleteObject( dc->w.hFirstBitmap );
|
||||
SelectObject32( hdc, STOCK_BLACK_PEN );
|
||||
SelectObject32( hdc, STOCK_WHITE_BRUSH );
|
||||
SelectObject32( hdc, STOCK_SYSTEM_FONT );
|
||||
if (dc->w.flags & DC_MEMORY) DeleteObject32( dc->w.hFirstBitmap );
|
||||
if (dc->funcs->pDeleteDC) dc->funcs->pDeleteDC(dc);
|
||||
}
|
||||
|
||||
if (dc->w.hClipRgn) DeleteObject( dc->w.hClipRgn );
|
||||
if (dc->w.hVisRgn) DeleteObject( dc->w.hVisRgn );
|
||||
if (dc->w.hGCClipRgn) DeleteObject( dc->w.hGCClipRgn );
|
||||
if (dc->w.hClipRgn) DeleteObject32( dc->w.hClipRgn );
|
||||
if (dc->w.hVisRgn) DeleteObject32( dc->w.hVisRgn );
|
||||
if (dc->w.hGCClipRgn) DeleteObject32( dc->w.hGCClipRgn );
|
||||
|
||||
return GDI_FreeObject( hdc );
|
||||
}
|
||||
|
|
|
@ -632,12 +632,12 @@ int StretchDIBits( HDC16 hdc,
|
|||
hBitmap = CreateDIBitmap( hdc, &info->bmiHeader, CBM_INIT,
|
||||
bits, info, wUsage );
|
||||
hdcMem = CreateCompatibleDC( hdc );
|
||||
hOldBitmap = SelectObject( hdcMem, hBitmap );
|
||||
hOldBitmap = SelectObject32( hdcMem, hBitmap );
|
||||
StretchBlt( hdc, xDest, yDest, wDestWidth, wDestHeight,
|
||||
hdcMem, xSrc, ySrc, wSrcWidth, wSrcHeight, dwRop );
|
||||
SelectObject( hdcMem, hOldBitmap );
|
||||
SelectObject32( hdcMem, hOldBitmap );
|
||||
DeleteDC( hdcMem );
|
||||
DeleteObject( hBitmap );
|
||||
DeleteObject32( hBitmap );
|
||||
return wSrcHeight;
|
||||
}
|
||||
|
||||
|
|
|
@ -1203,10 +1203,10 @@ INT EnumFonts(HDC16 hDC, LPCSTR lpFaceName, FONTENUMPROC16 lpEnumFunc, LPARAM lp
|
|||
dprintf_font(stddeb,"EnumFonts // %p !\n", lpLogFontList[i]);
|
||||
memcpy(lpLogFont, lpLogFontList[i], sizeof(LOGFONT16) + LF_FACESIZE);
|
||||
hFont = CreateFontIndirect16(lpLogFont);
|
||||
hOldFont = SelectObject(hDC, hFont);
|
||||
hOldFont = SelectObject32(hDC, hFont);
|
||||
GetTextMetrics16(hDC, lptm);
|
||||
SelectObject(hDC, hOldFont);
|
||||
DeleteObject(hFont);
|
||||
SelectObject32(hDC, hOldFont);
|
||||
DeleteObject32(hFont);
|
||||
dprintf_font(stddeb,"EnumFonts // i=%d lpLogFont=%p lptm=%p\n", i, lpLogFont, lptm);
|
||||
nRet = lpEnumFunc( GDI_HEAP_SEG_ADDR(hLog), GDI_HEAP_SEG_ADDR(hMet),
|
||||
0, (LONG)lpData );
|
||||
|
@ -1272,10 +1272,10 @@ INT EnumFontFamilies(HDC16 hDC, LPCSTR lpszFamily, FONTENUMPROC16 lpEnumFunc, LP
|
|||
strcpy(lpEnumLogFont->elfFullName,"");
|
||||
strcpy(lpEnumLogFont->elfStyle,"");
|
||||
hFont = CreateFontIndirect16((LPLOGFONT16)lpEnumLogFont);
|
||||
hOldFont = SelectObject(hDC, hFont);
|
||||
hOldFont = SelectObject32(hDC, hFont);
|
||||
GetTextMetrics16(hDC, lptm);
|
||||
SelectObject(hDC, hOldFont);
|
||||
DeleteObject(hFont);
|
||||
SelectObject32(hDC, hOldFont);
|
||||
DeleteObject32(hFont);
|
||||
dprintf_font(stddeb, "EnumFontFamilies // i=%d lpLogFont=%p lptm=%p\n", i, lpEnumLogFont, lptm);
|
||||
|
||||
nRet = lpEnumFunc( GDI_HEAP_SEG_ADDR(hLog), GDI_HEAP_SEG_ADDR(hMet),
|
||||
|
|
161
objects/gdiobj.c
161
objects/gdiobj.c
|
@ -4,6 +4,7 @@
|
|||
* Copyright 1993 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "gdi.h"
|
||||
|
@ -242,14 +243,23 @@ GDIOBJHDR * GDI_GetObjPtr( HGDIOBJ16 handle, WORD magic )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* DeleteObject (GDI.69)
|
||||
* DeleteObject16 (GDI.69)
|
||||
*/
|
||||
BOOL DeleteObject( HGDIOBJ16 obj )
|
||||
BOOL16 DeleteObject16( HGDIOBJ16 obj )
|
||||
{
|
||||
return DeleteObject32( obj );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DeleteObject32 (GDI32.70)
|
||||
*/
|
||||
BOOL32 DeleteObject32( HGDIOBJ32 obj )
|
||||
{
|
||||
/* Check if object is valid */
|
||||
|
||||
GDIOBJHDR * header = (GDIOBJHDR *) GDI_HEAP_LIN_ADDR( obj );
|
||||
if (!header) return FALSE;
|
||||
if (!header || HIWORD(obj)) return FALSE;
|
||||
|
||||
dprintf_gdi(stddeb, "DeleteObject: %04x\n", obj );
|
||||
|
||||
|
@ -269,9 +279,18 @@ BOOL DeleteObject( HGDIOBJ16 obj )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* GetStockObject (GDI.87)
|
||||
* GetStockObject16 (GDI.87)
|
||||
*/
|
||||
HGDIOBJ16 GetStockObject( INT16 obj )
|
||||
HGDIOBJ16 GetStockObject16( INT16 obj )
|
||||
{
|
||||
return (HGDIOBJ16)GetStockObject32( obj );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* GetStockObject32 (GDI32.220)
|
||||
*/
|
||||
HGDIOBJ32 GetStockObject32( INT32 obj )
|
||||
{
|
||||
if ((obj < 0) || (obj >= NB_STOCK_OBJECTS)) return 0;
|
||||
if (!StockObjects[obj]) return 0;
|
||||
|
@ -299,9 +318,9 @@ INT16 GetObject16( HANDLE16 handle, INT16 count, LPVOID buffer )
|
|||
switch(ptr->wMagic)
|
||||
{
|
||||
case PEN_MAGIC:
|
||||
return PEN_GetObject( (PENOBJ *)ptr, count, buffer );
|
||||
return PEN_GetObject16( (PENOBJ *)ptr, count, buffer );
|
||||
case BRUSH_MAGIC:
|
||||
return BRUSH_GetObject( (BRUSHOBJ *)ptr, count, buffer );
|
||||
return BRUSH_GetObject16( (BRUSHOBJ *)ptr, count, buffer );
|
||||
case BITMAP_MAGIC:
|
||||
return BITMAP_GetObject16( (BITMAPOBJ *)ptr, count, buffer );
|
||||
case FONT_MAGIC:
|
||||
|
@ -330,12 +349,14 @@ INT32 GetObject32A( HANDLE32 handle, INT32 count, LPVOID buffer )
|
|||
|
||||
switch(ptr->wMagic)
|
||||
{
|
||||
case PEN_MAGIC:
|
||||
return PEN_GetObject32( (PENOBJ *)ptr, count, buffer );
|
||||
case BRUSH_MAGIC:
|
||||
return BRUSH_GetObject32( (BRUSHOBJ *)ptr, count, buffer );
|
||||
case BITMAP_MAGIC:
|
||||
return BITMAP_GetObject32( (BITMAPOBJ *)ptr, count, buffer );
|
||||
case FONT_MAGIC:
|
||||
return FONT_GetObject32A( (FONTOBJ *)ptr, count, buffer );
|
||||
case PEN_MAGIC:
|
||||
case BRUSH_MAGIC:
|
||||
case PALETTE_MAGIC:
|
||||
fprintf( stderr, "GetObject32: magic %04x not implemented\n",
|
||||
ptr->wMagic );
|
||||
|
@ -355,9 +376,18 @@ INT32 GetObject32W( HANDLE32 handle, INT32 count, LPVOID buffer )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* SelectObject (GDI.45)
|
||||
* SelectObject16 (GDI.45)
|
||||
*/
|
||||
HGDIOBJ16 SelectObject( HDC16 hdc, HGDIOBJ16 handle )
|
||||
HGDIOBJ16 SelectObject16( HDC16 hdc, HGDIOBJ16 handle )
|
||||
{
|
||||
return (HGDIOBJ16)SelectObject32( hdc, handle );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SelectObject32 (GDI32.299)
|
||||
*/
|
||||
HGDIOBJ32 SelectObject32( HDC32 hdc, HGDIOBJ32 handle )
|
||||
{
|
||||
GDIOBJHDR * ptr = NULL;
|
||||
DC * dc;
|
||||
|
@ -387,16 +417,25 @@ HGDIOBJ16 SelectObject( HDC16 hdc, HGDIOBJ16 handle )
|
|||
case FONT_MAGIC:
|
||||
return FONT_SelectObject( dc, handle, (FONTOBJ *)ptr );
|
||||
case REGION_MAGIC:
|
||||
return (HGDIOBJ16)SelectClipRgn( hdc, handle );
|
||||
return (HGDIOBJ16)SelectClipRgn16( hdc, handle );
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* UnrealizeObject (GDI.150)
|
||||
* UnrealizeObject16 (GDI.150)
|
||||
*/
|
||||
BOOL UnrealizeObject( HGDIOBJ16 obj )
|
||||
BOOL16 UnrealizeObject16( HGDIOBJ16 obj )
|
||||
{
|
||||
return UnrealizeObject32( obj );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* UnrealizeObject (GDI32.358)
|
||||
*/
|
||||
BOOL32 UnrealizeObject32( HGDIOBJ32 obj )
|
||||
{
|
||||
/* Check if object is valid */
|
||||
|
||||
|
@ -421,10 +460,10 @@ BOOL UnrealizeObject( HGDIOBJ16 obj )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* EnumObjects (GDI.71)
|
||||
* EnumObjects16 (GDI.71)
|
||||
*/
|
||||
INT EnumObjects( HDC16 hdc, INT nObjType, GOBJENUMPROC16 lpEnumFunc,
|
||||
LPARAM lParam )
|
||||
INT16 EnumObjects16( HDC16 hdc, INT16 nObjType, GOBJENUMPROC16 lpEnumFunc,
|
||||
LPARAM lParam )
|
||||
{
|
||||
/* Solid colors to enumerate */
|
||||
static const COLORREF solid_colors[] =
|
||||
|
@ -438,11 +477,11 @@ INT EnumObjects( HDC16 hdc, INT nObjType, GOBJENUMPROC16 lpEnumFunc,
|
|||
RGB(0x80,0x80,0x80), RGB(0xc0,0xc0,0xc0)
|
||||
};
|
||||
|
||||
int i, retval = 0;
|
||||
INT16 i, retval = 0;
|
||||
LOGPEN16 *pen;
|
||||
LOGBRUSH16 *brush = NULL;
|
||||
|
||||
dprintf_gdi( stddeb, "EnumObjects: %04x %d %08lx %08lx\n",
|
||||
dprintf_gdi( stddeb, "EnumObjects16: %04x %d %08lx %08lx\n",
|
||||
hdc, nObjType, (DWORD)lpEnumFunc, lParam );
|
||||
switch(nObjType)
|
||||
{
|
||||
|
@ -456,7 +495,7 @@ INT EnumObjects( HDC16 hdc, INT nObjType, GOBJENUMPROC16 lpEnumFunc,
|
|||
pen->lopnWidth.y = 0;
|
||||
pen->lopnColor = solid_colors[i];
|
||||
retval = lpEnumFunc( SEGPTR_GET(pen), lParam );
|
||||
dprintf_gdi( stddeb, "EnumObject: solid pen %08lx, ret=%d\n",
|
||||
dprintf_gdi( stddeb, "EnumObjects16: solid pen %08lx, ret=%d\n",
|
||||
solid_colors[i], retval);
|
||||
if (!retval) break;
|
||||
}
|
||||
|
@ -472,7 +511,7 @@ INT EnumObjects( HDC16 hdc, INT nObjType, GOBJENUMPROC16 lpEnumFunc,
|
|||
brush->lbColor = solid_colors[i];
|
||||
brush->lbHatch = 0;
|
||||
retval = lpEnumFunc( SEGPTR_GET(brush), lParam );
|
||||
dprintf_gdi( stddeb, "EnumObject: solid brush %08lx, ret=%d\n",
|
||||
dprintf_gdi( stddeb, "EnumObjects16: solid brush %08lx, ret=%d\n",
|
||||
solid_colors[i], retval);
|
||||
if (!retval) break;
|
||||
}
|
||||
|
@ -484,7 +523,7 @@ INT EnumObjects( HDC16 hdc, INT nObjType, GOBJENUMPROC16 lpEnumFunc,
|
|||
brush->lbColor = RGB(0,0,0);
|
||||
brush->lbHatch = i;
|
||||
retval = lpEnumFunc( SEGPTR_GET(brush), lParam );
|
||||
dprintf_gdi( stddeb, "EnumObject: hatched brush %d, ret=%d\n",
|
||||
dprintf_gdi( stddeb, "EnumObjects16: hatched brush %d, ret=%d\n",
|
||||
i, retval);
|
||||
if (!retval) break;
|
||||
}
|
||||
|
@ -492,7 +531,83 @@ INT EnumObjects( HDC16 hdc, INT nObjType, GOBJENUMPROC16 lpEnumFunc,
|
|||
break;
|
||||
|
||||
default:
|
||||
fprintf( stderr, "EnumObjects: invalid type %d\n", nObjType );
|
||||
fprintf( stderr, "EnumObjects16: invalid type %d\n", nObjType );
|
||||
break;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* EnumObjects32 (GDI32.89)
|
||||
*/
|
||||
INT32 EnumObjects32( HDC32 hdc, INT32 nObjType, GOBJENUMPROC32 lpEnumFunc,
|
||||
LPARAM lParam )
|
||||
{
|
||||
/* Solid colors to enumerate */
|
||||
static const COLORREF solid_colors[] =
|
||||
{ RGB(0x00,0x00,0x00), RGB(0xff,0xff,0xff),
|
||||
RGB(0xff,0x00,0x00), RGB(0x00,0xff,0x00),
|
||||
RGB(0x00,0x00,0xff), RGB(0xff,0xff,0x00),
|
||||
RGB(0xff,0x00,0xff), RGB(0x00,0xff,0xff),
|
||||
RGB(0x80,0x00,0x00), RGB(0x00,0x80,0x00),
|
||||
RGB(0x80,0x80,0x00), RGB(0x00,0x00,0x80),
|
||||
RGB(0x80,0x00,0x80), RGB(0x00,0x80,0x80),
|
||||
RGB(0x80,0x80,0x80), RGB(0xc0,0xc0,0xc0)
|
||||
};
|
||||
|
||||
INT32 i, retval = 0;
|
||||
LOGPEN32 pen;
|
||||
LOGBRUSH32 brush;
|
||||
|
||||
dprintf_gdi( stddeb, "EnumObjects32: %04x %d %08lx %08lx\n",
|
||||
hdc, nObjType, (DWORD)lpEnumFunc, lParam );
|
||||
switch(nObjType)
|
||||
{
|
||||
case OBJ_PEN:
|
||||
/* Enumerate solid pens */
|
||||
for (i = 0; i < sizeof(solid_colors)/sizeof(solid_colors[0]); i++)
|
||||
{
|
||||
pen.lopnStyle = PS_SOLID;
|
||||
pen.lopnWidth.x = 1;
|
||||
pen.lopnWidth.y = 0;
|
||||
pen.lopnColor = solid_colors[i];
|
||||
retval = lpEnumFunc( &pen, lParam );
|
||||
dprintf_gdi( stddeb, "EnumObjects32: solid pen %08lx, ret=%d\n",
|
||||
solid_colors[i], retval);
|
||||
if (!retval) break;
|
||||
}
|
||||
break;
|
||||
|
||||
case OBJ_BRUSH:
|
||||
/* Enumerate solid brushes */
|
||||
for (i = 0; i < sizeof(solid_colors)/sizeof(solid_colors[0]); i++)
|
||||
{
|
||||
brush.lbStyle = BS_SOLID;
|
||||
brush.lbColor = solid_colors[i];
|
||||
brush.lbHatch = 0;
|
||||
retval = lpEnumFunc( &brush, lParam );
|
||||
dprintf_gdi( stddeb, "EnumObjects32: solid brush %08lx, ret=%d\n",
|
||||
solid_colors[i], retval);
|
||||
if (!retval) break;
|
||||
}
|
||||
|
||||
/* Now enumerate hatched brushes */
|
||||
if (retval) for (i = HS_HORIZONTAL; i <= HS_DIAGCROSS; i++)
|
||||
{
|
||||
brush.lbStyle = BS_HATCHED;
|
||||
brush.lbColor = RGB(0,0,0);
|
||||
brush.lbHatch = i;
|
||||
retval = lpEnumFunc( &brush, lParam );
|
||||
dprintf_gdi( stddeb, "EnumObjects32: hatched brush %d, ret=%d\n",
|
||||
i, retval);
|
||||
if (!retval) break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
/* FIXME: implement Win32 types */
|
||||
fprintf( stderr, "EnumObjects32: invalid type %d\n", nObjType );
|
||||
break;
|
||||
}
|
||||
return retval;
|
||||
|
|
|
@ -284,7 +284,7 @@ BOOL PlayMetaFile(HDC16 hdc, HMETAFILE16 hmf)
|
|||
/* free objects in handle table */
|
||||
for(i = 0; i < mh->mtNoObjects; i++)
|
||||
if(*(ht->objectHandle + i) != 0)
|
||||
DeleteObject(*(ht->objectHandle + i));
|
||||
DeleteObject32(*(ht->objectHandle + i));
|
||||
|
||||
/* free handle table */
|
||||
GlobalFree16(hHT);
|
||||
|
@ -400,7 +400,7 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
break;
|
||||
|
||||
case META_DELETEOBJECT:
|
||||
DeleteObject(*(ht->objectHandle + *(mr->rdParam)));
|
||||
DeleteObject32(*(ht->objectHandle + *(mr->rdParam)));
|
||||
*(ht->objectHandle + *(mr->rdParam)) = 0;
|
||||
break;
|
||||
|
||||
|
@ -471,7 +471,7 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
break;
|
||||
|
||||
case META_LINETO:
|
||||
LineTo(hdc, *(mr->rdParam + 1), *(mr->rdParam));
|
||||
LineTo32(hdc, *(mr->rdParam + 1), *(mr->rdParam));
|
||||
break;
|
||||
|
||||
case META_MOVETO:
|
||||
|
@ -479,46 +479,46 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
break;
|
||||
|
||||
case META_EXCLUDECLIPRECT:
|
||||
ExcludeClipRect(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
ExcludeClipRect16( hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam) );
|
||||
break;
|
||||
|
||||
case META_INTERSECTCLIPRECT:
|
||||
IntersectClipRect(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
IntersectClipRect16( hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam) );
|
||||
break;
|
||||
|
||||
case META_ARC:
|
||||
Arc(hdc, *(mr->rdParam + 7), *(mr->rdParam + 6), *(mr->rdParam + 5),
|
||||
*(mr->rdParam + 4), *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
Arc32(hdc, *(mr->rdParam + 7), *(mr->rdParam + 6), *(mr->rdParam + 5),
|
||||
*(mr->rdParam + 4), *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
break;
|
||||
|
||||
case META_ELLIPSE:
|
||||
Ellipse(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
Ellipse32(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
break;
|
||||
|
||||
case META_FLOODFILL:
|
||||
FloodFill(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
MAKELONG(*(mr->rdParam + 1), *(mr->rdParam)));
|
||||
FloodFill32(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
MAKELONG(*(mr->rdParam + 1), *(mr->rdParam)));
|
||||
break;
|
||||
|
||||
case META_PIE:
|
||||
Pie(hdc, *(mr->rdParam + 7), *(mr->rdParam + 6), *(mr->rdParam + 5),
|
||||
*(mr->rdParam + 4), *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
Pie32(hdc, *(mr->rdParam + 7), *(mr->rdParam + 6), *(mr->rdParam + 5),
|
||||
*(mr->rdParam + 4), *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
break;
|
||||
|
||||
case META_RECTANGLE:
|
||||
Rectangle(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
Rectangle32(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
break;
|
||||
|
||||
case META_ROUNDRECT:
|
||||
RoundRect(hdc, *(mr->rdParam + 5), *(mr->rdParam + 4),
|
||||
*(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
RoundRect32(hdc, *(mr->rdParam + 5), *(mr->rdParam + 4),
|
||||
*(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
break;
|
||||
|
||||
case META_PATBLT:
|
||||
|
@ -532,12 +532,12 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
break;
|
||||
|
||||
case META_SETPIXEL:
|
||||
SetPixel(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
MAKELONG(*(mr->rdParam + 1), *(mr->rdParam)));
|
||||
SetPixel32(hdc, *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
MAKELONG(*(mr->rdParam + 1), *(mr->rdParam)));
|
||||
break;
|
||||
|
||||
case META_OFFSETCLIPRGN:
|
||||
OffsetClipRgn(hdc, *(mr->rdParam + 1), *(mr->rdParam));
|
||||
OffsetClipRgn16( hdc, *(mr->rdParam + 1), *(mr->rdParam) );
|
||||
break;
|
||||
|
||||
case META_TEXTOUT:
|
||||
|
@ -565,13 +565,13 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
break;
|
||||
|
||||
case META_SELECTOBJECT:
|
||||
SelectObject(hdc, *(ht->objectHandle + *(mr->rdParam)));
|
||||
SelectObject32(hdc, *(ht->objectHandle + *(mr->rdParam)));
|
||||
break;
|
||||
|
||||
case META_CHORD:
|
||||
Chord(hdc, *(mr->rdParam + 7), *(mr->rdParam + 6), *(mr->rdParam + 5),
|
||||
*(mr->rdParam + 4), *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
Chord32(hdc, *(mr->rdParam + 7), *(mr->rdParam + 6), *(mr->rdParam+5),
|
||||
*(mr->rdParam + 4), *(mr->rdParam + 3), *(mr->rdParam + 2),
|
||||
*(mr->rdParam + 1), *(mr->rdParam));
|
||||
break;
|
||||
|
||||
case META_CREATEPATTERNBRUSH:
|
||||
|
@ -580,7 +580,7 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
case BS_PATTERN:
|
||||
infohdr = (BITMAPINFOHEADER *)(mr->rdParam + 2);
|
||||
MF_AddHandle(ht, nHandles,
|
||||
CreatePatternBrush(CreateBitmap(infohdr->biWidth,
|
||||
CreatePatternBrush32(CreateBitmap(infohdr->biWidth,
|
||||
infohdr->biHeight,
|
||||
infohdr->biPlanes,
|
||||
infohdr->biBitCount,
|
||||
|
@ -595,14 +595,14 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
memcpy(ptr, mr->rdParam + 2, s1);
|
||||
GlobalUnlock16(hndl);
|
||||
MF_AddHandle(ht, nHandles,
|
||||
CreateDIBPatternBrush(hndl, *(mr->rdParam + 1)));
|
||||
CreateDIBPatternBrush32(hndl, *(mr->rdParam + 1)));
|
||||
GlobalFree16(hndl);
|
||||
}
|
||||
break;
|
||||
|
||||
case META_CREATEPENINDIRECT:
|
||||
MF_AddHandle(ht, nHandles,
|
||||
CreatePenIndirect((LOGPEN16 *)(&(mr->rdParam))));
|
||||
CreatePenIndirect16((LOGPEN16 *)(&(mr->rdParam))));
|
||||
break;
|
||||
|
||||
case META_CREATEFONTINDIRECT:
|
||||
|
@ -612,7 +612,7 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
|
||||
case META_CREATEBRUSHINDIRECT:
|
||||
MF_AddHandle(ht, nHandles,
|
||||
CreateBrushIndirect((LOGBRUSH16 *)(&(mr->rdParam))));
|
||||
CreateBrushIndirect16((LOGBRUSH16 *)(&(mr->rdParam))));
|
||||
break;
|
||||
|
||||
/* W. Magro: Some new metafile operations. Not all debugged. */
|
||||
|
@ -704,7 +704,7 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
mr->rdParam[13], /*Planes*/
|
||||
mr->rdParam[14], /*BitsPixel*/
|
||||
(LPSTR)&mr->rdParam[15]); /*bits*/
|
||||
SelectObject(hdcSrc,hbitmap);
|
||||
SelectObject32(hdcSrc,hbitmap);
|
||||
StretchBlt(hdc,mr->rdParam[9],mr->rdParam[8],
|
||||
mr->rdParam[7],mr->rdParam[6],
|
||||
hdcSrc,mr->rdParam[5],mr->rdParam[4],
|
||||
|
@ -720,7 +720,7 @@ void PlayMetaFileRecord(HDC16 hdc, HANDLETABLE16 *ht, METARECORD *mr,
|
|||
HBITMAP16 hbitmap=CreateBitmap(mr->rdParam[7]/*Width */,mr->rdParam[8]/*Height*/,
|
||||
mr->rdParam[10]/*Planes*/,mr->rdParam[11]/*BitsPixel*/,
|
||||
(LPSTR)&mr->rdParam[12]/*bits*/);
|
||||
SelectObject(hdcSrc,hbitmap);
|
||||
SelectObject32(hdcSrc,hbitmap);
|
||||
BitBlt(hdc,mr->rdParam[6],mr->rdParam[5],
|
||||
mr->rdParam[4],mr->rdParam[3],
|
||||
hdcSrc,
|
||||
|
@ -919,12 +919,12 @@ BOOL32 MF_MetaParam8(DC *dc, short func, short param1, short param2,
|
|||
BOOL32 MF_CreateBrushIndirect(DC *dc, HBRUSH16 hBrush, LOGBRUSH16 *logbrush)
|
||||
{
|
||||
int index;
|
||||
char buffer[sizeof(METARECORD) - 2 + sizeof(LOGBRUSH16)];
|
||||
char buffer[sizeof(METARECORD) - 2 + sizeof(*logbrush)];
|
||||
METARECORD *mr = (METARECORD *)&buffer;
|
||||
|
||||
mr->rdSize = (sizeof(METARECORD) + sizeof(LOGBRUSH16) - 2) / 2;
|
||||
mr->rdSize = (sizeof(METARECORD) + sizeof(*logbrush) - 2) / 2;
|
||||
mr->rdFunction = META_CREATEBRUSHINDIRECT;
|
||||
memcpy(&(mr->rdParam), logbrush, sizeof(LOGBRUSH16));
|
||||
memcpy(&(mr->rdParam), logbrush, sizeof(*logbrush));
|
||||
if (!(MF_WriteRecord( dc, mr, mr->rdSize * 2))) return FALSE;
|
||||
|
||||
mr->rdSize = sizeof(METARECORD) / 2;
|
||||
|
@ -1024,12 +1024,12 @@ BOOL32 MF_CreatePatternBrush(DC *dc, HBRUSH16 hBrush, LOGBRUSH16 *logbrush)
|
|||
BOOL32 MF_CreatePenIndirect(DC *dc, HPEN16 hPen, LOGPEN16 *logpen)
|
||||
{
|
||||
int index;
|
||||
char buffer[sizeof(METARECORD) - 2 + sizeof(LOGPEN16)];
|
||||
char buffer[sizeof(METARECORD) - 2 + sizeof(*logpen)];
|
||||
METARECORD *mr = (METARECORD *)&buffer;
|
||||
|
||||
mr->rdSize = (sizeof(METARECORD) + sizeof(LOGPEN16) - 2) / 2;
|
||||
mr->rdSize = (sizeof(METARECORD) + sizeof(*logpen) - 2) / 2;
|
||||
mr->rdFunction = META_CREATEPENINDIRECT;
|
||||
memcpy(&(mr->rdParam), logpen, sizeof(LOGPEN16));
|
||||
memcpy(&(mr->rdParam), logpen, sizeof(*logpen));
|
||||
if (!(MF_WriteRecord( dc, mr, mr->rdSize * 2))) return FALSE;
|
||||
|
||||
mr->rdSize = sizeof(METARECORD) / 2;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
@ -77,7 +78,7 @@
|
|||
static const struct
|
||||
{
|
||||
char** data; /* Pointer to bitmap data */
|
||||
BOOL color; /* Is it a color bitmap? */
|
||||
BOOL32 color; /* Is it a color bitmap? */
|
||||
} OBM_Pixmaps_Data[OBM_LAST-OBM_FIRST+1] = {
|
||||
{ obm_trtype, TRUE }, /* OBM_TRTYPE */
|
||||
{ obm_cdrom, TRUE }, /* OBM_CDROM */
|
||||
|
@ -268,7 +269,7 @@ static XpmColorSymbol *OBM_Colors = NULL;
|
|||
/***********************************************************************
|
||||
* OBM_InitColorSymbols
|
||||
*/
|
||||
static BOOL OBM_InitColorSymbols()
|
||||
static BOOL32 OBM_InitColorSymbols()
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -328,8 +329,8 @@ static HBITMAP16 OBM_MakeBitmap( WORD width, WORD height,
|
|||
*
|
||||
* Create the 2 bitmaps from XPM data.
|
||||
*/
|
||||
static BOOL OBM_CreateBitmaps( char **data, BOOL color, HBITMAP16 *hBitmap,
|
||||
HBITMAP16 *hBitmapMask, POINT16 *hotspot )
|
||||
static BOOL32 OBM_CreateBitmaps( char **data, BOOL32 color, HBITMAP16 *hBitmap,
|
||||
HBITMAP16 *hBitmapMask, POINT32 *hotspot )
|
||||
{
|
||||
Pixmap pixmap, pixmask;
|
||||
XpmAttributes *attrs;
|
||||
|
@ -405,7 +406,7 @@ HGLOBAL16 OBM_LoadCursorIcon( WORD id, BOOL32 fCursor )
|
|||
CURSORICONINFO *pInfo;
|
||||
BITMAPOBJ *bmpXor, *bmpAnd;
|
||||
HBITMAP16 hXorBits, hAndBits;
|
||||
POINT16 hotspot;
|
||||
POINT32 hotspot;
|
||||
int sizeXor, sizeAnd;
|
||||
|
||||
if (fCursor)
|
||||
|
@ -443,8 +444,8 @@ HGLOBAL16 OBM_LoadCursorIcon( WORD id, BOOL32 fCursor )
|
|||
if (!(handle = GlobalAlloc16( GMEM_MOVEABLE,
|
||||
sizeof(CURSORICONINFO) + sizeXor + sizeAnd)))
|
||||
{
|
||||
DeleteObject( hXorBits );
|
||||
DeleteObject( hAndBits );
|
||||
DeleteObject32( hXorBits );
|
||||
DeleteObject32( hAndBits );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -485,8 +486,8 @@ HGLOBAL16 OBM_LoadCursorIcon( WORD id, BOOL32 fCursor )
|
|||
else memset( (char *)(pInfo + 1), 0xff, sizeAnd );
|
||||
GetBitmapBits( hXorBits, sizeXor, (char *)(pInfo + 1) + sizeAnd );
|
||||
|
||||
DeleteObject( hXorBits );
|
||||
DeleteObject( hAndBits );
|
||||
DeleteObject32( hXorBits );
|
||||
DeleteObject32( hAndBits );
|
||||
|
||||
if (fCursor) OBM_Cursors[id] = handle;
|
||||
return handle;
|
||||
|
|
106
objects/pen.c
106
objects/pen.c
|
@ -4,27 +4,45 @@
|
|||
* Copyright 1993 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
|
||||
#include "pen.h"
|
||||
#include "metafile.h"
|
||||
#include "stddebug.h"
|
||||
#include "color.h"
|
||||
#include "stddebug.h"
|
||||
#include "debug.h"
|
||||
|
||||
|
||||
static const char PEN_dash[] = { 5,3 }; /* ----- ----- ----- */
|
||||
static const char PEN_dot[] = { 2,2 }; /* -- -- -- -- -- -- */
|
||||
static const char PEN_dashdot[] = { 4,3,2,3 }; /* ---- -- ---- -- */
|
||||
static const char PEN_dashdotdot[] = { 4,2,2,2,2,2 }; /* ---- -- -- ---- */
|
||||
|
||||
/***********************************************************************
|
||||
* CreatePen (GDI.61)
|
||||
* CreatePen16 (GDI.61)
|
||||
*/
|
||||
HPEN16 CreatePen( INT style, INT width, COLORREF color )
|
||||
HPEN16 CreatePen16( INT16 style, INT16 width, COLORREF color )
|
||||
{
|
||||
LOGPEN16 logpen = { style, { width, 0 }, color };
|
||||
dprintf_gdi(stddeb, "CreatePen: %d %d %06lx\n", style, width, color );
|
||||
return CreatePenIndirect( &logpen );
|
||||
LOGPEN32 logpen = { style, { width, 0 }, color };
|
||||
dprintf_gdi(stddeb, "CreatePen16: %d %d %06lx\n", style, width, color );
|
||||
return CreatePenIndirect32( &logpen );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreatePenIndirect (GDI.62)
|
||||
* CreatePen32 (GDI32.55)
|
||||
*/
|
||||
HPEN16 CreatePenIndirect( const LOGPEN16 * pen )
|
||||
HPEN32 CreatePen32( INT32 style, INT32 width, COLORREF color )
|
||||
{
|
||||
LOGPEN32 logpen = { style, { width, 0 }, color };
|
||||
dprintf_gdi(stddeb, "CreatePen32: %d %d %06lx\n", style, width, color );
|
||||
return CreatePenIndirect32( &logpen );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreatePenIndirect16 (GDI.62)
|
||||
*/
|
||||
HPEN16 CreatePenIndirect16( const LOGPEN16 * pen )
|
||||
{
|
||||
PENOBJ * penPtr;
|
||||
HPEN16 hpen;
|
||||
|
@ -32,16 +50,52 @@ HPEN16 CreatePenIndirect( const LOGPEN16 * pen )
|
|||
if (pen->lopnStyle > PS_INSIDEFRAME) return 0;
|
||||
hpen = GDI_AllocObject( sizeof(PENOBJ), PEN_MAGIC );
|
||||
if (!hpen) return 0;
|
||||
penPtr = (PENOBJ *) GDI_HEAP_LIN_ADDR( hpen );
|
||||
memcpy( &penPtr->logpen, pen, sizeof(*pen) );
|
||||
penPtr = (PENOBJ *)GDI_HEAP_LIN_ADDR( hpen );
|
||||
penPtr->logpen.lopnStyle = pen->lopnStyle;
|
||||
penPtr->logpen.lopnColor = pen->lopnColor;
|
||||
CONV_POINT16TO32( &pen->lopnWidth, &penPtr->logpen.lopnWidth );
|
||||
return hpen;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* PEN_GetObject
|
||||
* CreatePenIndirect32 (GDI32.56)
|
||||
*/
|
||||
int PEN_GetObject( PENOBJ * pen, int count, LPSTR buffer )
|
||||
HPEN32 CreatePenIndirect32( const LOGPEN32 * pen )
|
||||
{
|
||||
PENOBJ * penPtr;
|
||||
HPEN32 hpen;
|
||||
|
||||
if (pen->lopnStyle > PS_INSIDEFRAME) return 0;
|
||||
hpen = GDI_AllocObject( sizeof(PENOBJ), PEN_MAGIC );
|
||||
if (!hpen) return 0;
|
||||
penPtr = (PENOBJ *)GDI_HEAP_LIN_ADDR( hpen );
|
||||
penPtr->logpen.lopnStyle = pen->lopnStyle;
|
||||
penPtr->logpen.lopnWidth = pen->lopnWidth;
|
||||
penPtr->logpen.lopnColor = pen->lopnColor;
|
||||
return hpen;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* PEN_GetObject16
|
||||
*/
|
||||
INT16 PEN_GetObject16( PENOBJ * pen, INT16 count, LPSTR buffer )
|
||||
{
|
||||
LOGPEN16 logpen;
|
||||
logpen.lopnStyle = pen->logpen.lopnStyle;
|
||||
logpen.lopnColor = pen->logpen.lopnColor;
|
||||
CONV_POINT32TO16( &pen->logpen.lopnWidth, &logpen.lopnWidth );
|
||||
if (count > sizeof(logpen)) count = sizeof(logpen);
|
||||
memcpy( buffer, &logpen, count );
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* PEN_GetObject32
|
||||
*/
|
||||
INT32 PEN_GetObject32( PENOBJ * pen, INT32 count, LPSTR buffer )
|
||||
{
|
||||
if (count > sizeof(pen->logpen)) count = sizeof(pen->logpen);
|
||||
memcpy( buffer, &pen->logpen, count );
|
||||
|
@ -52,19 +106,19 @@ int PEN_GetObject( PENOBJ * pen, int count, LPSTR buffer )
|
|||
/***********************************************************************
|
||||
* PEN_SelectObject
|
||||
*/
|
||||
HPEN16 PEN_SelectObject( DC * dc, HPEN16 hpen, PENOBJ * pen )
|
||||
HPEN32 PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen )
|
||||
{
|
||||
static char dash_dash[] = { 5, 3 }; /* ----- ----- ----- */
|
||||
static char dash_dot[] = { 2, 2 }; /* -- -- -- -- -- -- */
|
||||
static char dash_dashdot[] = { 4,3,2,3 }; /* ---- -- ---- -- */
|
||||
static char dash_dashdotdot[] = { 4,2,2,2,2,2 }; /* ---- -- -- ---- */
|
||||
HPEN16 prevHandle = dc->w.hPen;
|
||||
HPEN32 prevHandle = dc->w.hPen;
|
||||
|
||||
if (dc->header.wMagic == METAFILE_DC_MAGIC)
|
||||
if (MF_CreatePenIndirect(dc, hpen, &(pen->logpen)))
|
||||
return prevHandle;
|
||||
else
|
||||
return 0;
|
||||
{
|
||||
LOGPEN16 logpen = { pen->logpen.lopnStyle,
|
||||
{ pen->logpen.lopnWidth.x,
|
||||
pen->logpen.lopnWidth.y },
|
||||
pen->logpen.lopnColor };
|
||||
if (MF_CreatePenIndirect( dc, hpen, &logpen )) return prevHandle;
|
||||
else return 0;
|
||||
}
|
||||
|
||||
dc->w.hPen = hpen;
|
||||
|
||||
|
@ -77,19 +131,19 @@ HPEN16 PEN_SelectObject( DC * dc, HPEN16 hpen, PENOBJ * pen )
|
|||
switch(pen->logpen.lopnStyle)
|
||||
{
|
||||
case PS_DASH:
|
||||
dc->u.x.pen.dashes = dash_dash;
|
||||
dc->u.x.pen.dashes = (char *)PEN_dash;
|
||||
dc->u.x.pen.dash_len = 2;
|
||||
break;
|
||||
case PS_DOT:
|
||||
dc->u.x.pen.dashes = dash_dot;
|
||||
dc->u.x.pen.dashes = (char *)PEN_dot;
|
||||
dc->u.x.pen.dash_len = 2;
|
||||
break;
|
||||
case PS_DASHDOT:
|
||||
dc->u.x.pen.dashes = dash_dashdot;
|
||||
dc->u.x.pen.dashes = (char *)PEN_dashdot;
|
||||
dc->u.x.pen.dash_len = 4;
|
||||
break;
|
||||
case PS_DASHDOTDOT:
|
||||
dc->u.x.pen.dashes = dash_dashdotdot;
|
||||
dc->u.x.pen.dashes = (char *)PEN_dashdotdot;
|
||||
dc->u.x.pen.dash_len = 6;
|
||||
break;
|
||||
}
|
||||
|
|
140
objects/region.c
140
objects/region.c
|
@ -15,7 +15,7 @@
|
|||
/***********************************************************************
|
||||
* REGION_DeleteObject
|
||||
*/
|
||||
BOOL16 REGION_DeleteObject( HRGN32 hrgn, RGNOBJ * obj )
|
||||
BOOL32 REGION_DeleteObject( HRGN32 hrgn, RGNOBJ * obj )
|
||||
{
|
||||
dprintf_region(stddeb, "DeleteRegion: %04x\n", hrgn );
|
||||
if (obj->xrgn) XDestroyRegion( obj->xrgn );
|
||||
|
@ -24,9 +24,18 @@ BOOL16 REGION_DeleteObject( HRGN32 hrgn, RGNOBJ * obj )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* OffsetRgn (GDI.101) (GDI32.256)
|
||||
* OffsetRgn16 (GDI.101)
|
||||
*/
|
||||
INT16 OffsetRgn( HRGN32 hrgn, INT32 x, INT32 y )
|
||||
INT16 OffsetRgn16( HRGN16 hrgn, INT16 x, INT16 y )
|
||||
{
|
||||
return OffsetRgn32( hrgn, x, y );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* OffsetRgn32 (GDI32.256)
|
||||
*/
|
||||
INT32 OffsetRgn32( HRGN32 hrgn, INT32 x, INT32 y )
|
||||
{
|
||||
RGNOBJ * obj = (RGNOBJ *) GDI_GetObjPtr( hrgn, REGION_MAGIC );
|
||||
if (!obj) return ERROR;
|
||||
|
@ -74,11 +83,20 @@ INT32 GetRgnBox32( HRGN32 hrgn, LPRECT32 rect )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateRectRgn (GDI.64) (GDI32.59)
|
||||
* CreateRectRgn16 (GDI.64)
|
||||
*/
|
||||
HRGN16 CreateRectRgn( INT32 left, INT32 top, INT32 right, INT32 bottom )
|
||||
HRGN16 CreateRectRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom )
|
||||
{
|
||||
HRGN16 hrgn;
|
||||
return (HRGN16)CreateRectRgn32( left, top, right, bottom );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateRectRgn32 (GDI32.59)
|
||||
*/
|
||||
HRGN32 CreateRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom )
|
||||
{
|
||||
HRGN32 hrgn;
|
||||
RGNOBJ *obj;
|
||||
|
||||
if (!(hrgn = GDI_AllocObject( sizeof(RGNOBJ), REGION_MAGIC ))) return 0;
|
||||
|
@ -105,7 +123,7 @@ HRGN16 CreateRectRgn( INT32 left, INT32 top, INT32 right, INT32 bottom )
|
|||
*/
|
||||
HRGN16 CreateRectRgnIndirect16( const RECT16* rect )
|
||||
{
|
||||
return CreateRectRgn( rect->left, rect->top, rect->right, rect->bottom );
|
||||
return CreateRectRgn32( rect->left, rect->top, rect->right, rect->bottom );
|
||||
}
|
||||
|
||||
|
||||
|
@ -114,7 +132,7 @@ HRGN16 CreateRectRgnIndirect16( const RECT16* rect )
|
|||
*/
|
||||
HRGN32 CreateRectRgnIndirect32( const RECT32* rect )
|
||||
{
|
||||
return CreateRectRgn( rect->left, rect->top, rect->right, rect->bottom );
|
||||
return CreateRectRgn32( rect->left, rect->top, rect->right, rect->bottom );
|
||||
}
|
||||
|
||||
|
||||
|
@ -141,13 +159,24 @@ VOID SetRectRgn( HRGN32 hrgn, INT32 left, INT32 top, INT32 right, INT32 bottom)
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateRoundRectRgn (GDI.444) (GDI32.61)
|
||||
* CreateRoundRectRgn16 (GDI.444)
|
||||
*/
|
||||
HRGN16 CreateRoundRectRgn( INT32 left, INT32 top, INT32 right, INT32 bottom,
|
||||
INT32 ellipse_width, INT32 ellipse_height )
|
||||
HRGN16 CreateRoundRectRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom,
|
||||
INT16 ellipse_width, INT16 ellipse_height )
|
||||
{
|
||||
return (HRGN16)CreateRoundRectRgn32( left, top, right, bottom,
|
||||
ellipse_width, ellipse_height );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateRoundRectRgn32 (GDI32.61)
|
||||
*/
|
||||
HRGN32 CreateRoundRectRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom,
|
||||
INT32 ellipse_width, INT32 ellipse_height )
|
||||
{
|
||||
RGNOBJ * obj;
|
||||
HRGN16 hrgn;
|
||||
HRGN32 hrgn;
|
||||
XRectangle rect;
|
||||
int asq, bsq, d, xd, yd;
|
||||
|
||||
|
@ -155,7 +184,7 @@ HRGN16 CreateRoundRectRgn( INT32 left, INT32 top, INT32 right, INT32 bottom,
|
|||
|
||||
if ((right <= left) || (bottom <= top) ||
|
||||
(ellipse_width <= 0) || (ellipse_height <= 0))
|
||||
return CreateRectRgn( left, top, right, bottom );
|
||||
return CreateRectRgn32( left, top, right, bottom );
|
||||
|
||||
/* Create region */
|
||||
|
||||
|
@ -237,12 +266,22 @@ HRGN16 CreateRoundRectRgn( INT32 left, INT32 top, INT32 right, INT32 bottom,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateEllipticRgn (GDI.54) (GDI32.39)
|
||||
* CreateEllipticRgn16 (GDI.54)
|
||||
*/
|
||||
HRGN16 CreateEllipticRgn( INT32 left, INT32 top, INT32 right, INT32 bottom )
|
||||
HRGN16 CreateEllipticRgn16( INT16 left, INT16 top, INT16 right, INT16 bottom )
|
||||
{
|
||||
return CreateRoundRectRgn( left, top, right, bottom,
|
||||
right-left, bottom-top );
|
||||
return (HRGN16)CreateRoundRectRgn32( left, top, right, bottom,
|
||||
right-left, bottom-top );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CreateEllipticRgn32 (GDI32.39)
|
||||
*/
|
||||
HRGN32 CreateEllipticRgn32( INT32 left, INT32 top, INT32 right, INT32 bottom )
|
||||
{
|
||||
return CreateRoundRectRgn32( left, top, right, bottom,
|
||||
right-left, bottom-top );
|
||||
}
|
||||
|
||||
|
||||
|
@ -251,8 +290,9 @@ HRGN16 CreateEllipticRgn( INT32 left, INT32 top, INT32 right, INT32 bottom )
|
|||
*/
|
||||
HRGN16 CreateEllipticRgnIndirect16( const RECT16 *rect )
|
||||
{
|
||||
return CreateRoundRectRgn(rect->left, rect->top, rect->right, rect->bottom,
|
||||
rect->right-rect->left, rect->bottom-rect->top );
|
||||
return CreateRoundRectRgn32( rect->left, rect->top, rect->right,
|
||||
rect->bottom, rect->right - rect->left,
|
||||
rect->bottom - rect->top );
|
||||
}
|
||||
|
||||
|
||||
|
@ -261,8 +301,9 @@ HRGN16 CreateEllipticRgnIndirect16( const RECT16 *rect )
|
|||
*/
|
||||
HRGN32 CreateEllipticRgnIndirect32( const RECT32 *rect )
|
||||
{
|
||||
return CreateRoundRectRgn(rect->left, rect->top, rect->right, rect->bottom,
|
||||
rect->right-rect->left, rect->bottom-rect->top );
|
||||
return CreateRoundRectRgn32( rect->left, rect->top, rect->right,
|
||||
rect->bottom, rect->right - rect->left,
|
||||
rect->bottom - rect->top );
|
||||
}
|
||||
|
||||
|
||||
|
@ -343,9 +384,18 @@ HRGN16 CreatePolyPolygonRgn16( const POINT16 * points, const INT16 * count,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* PtInRegion (GDI.161) (GDI32.278)
|
||||
* PtInRegion16 (GDI.161)
|
||||
*/
|
||||
BOOL16 PtInRegion( HRGN32 hrgn, INT32 x, INT32 y )
|
||||
BOOL16 PtInRegion16( HRGN16 hrgn, INT16 x, INT16 y )
|
||||
{
|
||||
return PtInRegion32( hrgn, x, y );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* PtInRegion32 (GDI32.278)
|
||||
*/
|
||||
BOOL32 PtInRegion32( HRGN32 hrgn, INT32 x, INT32 y )
|
||||
{
|
||||
RGNOBJ * obj;
|
||||
|
||||
|
@ -386,9 +436,18 @@ BOOL32 RectInRegion32( HRGN32 hrgn, const RECT32 *rect )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* EqualRgn (GDI.72) (GDI32.90)
|
||||
* EqualRgn16 (GDI.72)
|
||||
*/
|
||||
BOOL16 EqualRgn( HRGN32 rgn1, HRGN32 rgn2 )
|
||||
BOOL16 EqualRgn16( HRGN16 rgn1, HRGN16 rgn2 )
|
||||
{
|
||||
return EqualRgn32( rgn1, rgn2 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* EqualRgn32 (GDI32.90)
|
||||
*/
|
||||
BOOL32 EqualRgn32( HRGN32 rgn1, HRGN32 rgn2 )
|
||||
{
|
||||
RGNOBJ *obj1, *obj2;
|
||||
if (!(obj1 = (RGNOBJ *) GDI_GetObjPtr( rgn1, REGION_MAGIC ))) return FALSE;
|
||||
|
@ -403,7 +462,7 @@ BOOL16 EqualRgn( HRGN32 rgn1, HRGN32 rgn2 )
|
|||
*
|
||||
* Copy region src into dest.
|
||||
*/
|
||||
static int REGION_CopyRegion( RGNOBJ *src, RGNOBJ *dest )
|
||||
static INT32 REGION_CopyRegion( RGNOBJ *src, RGNOBJ *dest )
|
||||
{
|
||||
Region tmprgn;
|
||||
if (src->xrgn)
|
||||
|
@ -428,11 +487,11 @@ static int REGION_CopyRegion( RGNOBJ *src, RGNOBJ *dest )
|
|||
*
|
||||
* Add rectangle to region
|
||||
*/
|
||||
BOOL16 REGION_UnionRectWithRgn( HRGN32 hRgn, LPRECT16 rc )
|
||||
BOOL32 REGION_UnionRectWithRgn( HRGN32 hRgn, LPRECT16 rc )
|
||||
{
|
||||
RGNOBJ *rgnObj = (RGNOBJ*) GDI_GetObjPtr( hRgn, REGION_MAGIC );
|
||||
XRectangle rect = { rc->left, rc->top, rc->right - rc->left, rc->bottom - rc->top };
|
||||
BOOL16 ret = 0;
|
||||
BOOL32 ret = FALSE;
|
||||
|
||||
if( rgnObj )
|
||||
{
|
||||
|
@ -452,34 +511,45 @@ BOOL16 REGION_UnionRectWithRgn( HRGN32 hRgn, LPRECT16 rc )
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* REGION_CreateFrameRgn
|
||||
*
|
||||
* Create a region that is a frame around another region
|
||||
*/
|
||||
BOOL16 REGION_FrameRgn( HRGN32 hDest, HRGN32 hSrc, INT32 x, INT32 y )
|
||||
BOOL32 REGION_FrameRgn( HRGN32 hDest, HRGN32 hSrc, INT32 x, INT32 y )
|
||||
{
|
||||
RGNOBJ *destObj,*srcObj;
|
||||
Region result;
|
||||
|
||||
destObj = (RGNOBJ*) GDI_GetObjPtr( hDest, REGION_MAGIC );
|
||||
srcObj = (RGNOBJ*) GDI_GetObjPtr( hSrc, REGION_MAGIC );
|
||||
if (!srcObj->xrgn) return 0;
|
||||
if (!srcObj->xrgn) return FALSE;
|
||||
REGION_CopyRegion( srcObj, destObj );
|
||||
XShrinkRegion( destObj->xrgn, -x, -y );
|
||||
result = XCreateRegion();
|
||||
XSubtractRegion( destObj->xrgn, srcObj->xrgn, result );
|
||||
XDestroyRegion( destObj->xrgn );
|
||||
destObj->xrgn = result;
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CombineRgn (GDI.451) (GDI32.19)
|
||||
*
|
||||
* The behavior is correct even if src and dest regions are the same.
|
||||
* CombineRgn16 (GDI.451)
|
||||
*/
|
||||
INT16 CombineRgn( HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode )
|
||||
INT16 CombineRgn16( HRGN16 hDest, HRGN16 hSrc1, HRGN16 hSrc2, INT16 mode )
|
||||
{
|
||||
return (INT16)CombineRgn32( hDest, hSrc1, hSrc2, mode );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CombineRgn32 (GDI32.19)
|
||||
*
|
||||
* Note: The behavior is correct even if src and dest regions are the same.
|
||||
*/
|
||||
INT32 CombineRgn32( HRGN32 hDest, HRGN32 hSrc1, HRGN32 hSrc2, INT32 mode )
|
||||
{
|
||||
RGNOBJ *destObj, *src1Obj, *src2Obj;
|
||||
Region destrgn;
|
||||
|
|
|
@ -256,12 +256,12 @@ INT16 DrawText16( HDC16 hdc, LPCSTR str, INT16 i_count,
|
|||
rect, line, len, NULL )) return 0;
|
||||
if (prefix_offset != -1)
|
||||
{
|
||||
HPEN16 hpen = CreatePen( PS_SOLID, 1, GetTextColor(hdc) );
|
||||
HPEN16 oldPen = SelectObject( hdc, hpen );
|
||||
HPEN32 hpen = CreatePen32( PS_SOLID, 1, GetTextColor(hdc) );
|
||||
HPEN32 oldPen = SelectObject32( hdc, hpen );
|
||||
MoveTo(hdc, x + prefix_x, y + tm.tmAscent + 1 );
|
||||
LineTo(hdc, x + prefix_end, y + tm.tmAscent + 1 );
|
||||
SelectObject( hdc, oldPen );
|
||||
DeleteObject( hpen );
|
||||
LineTo32(hdc, x + prefix_end, y + tm.tmAscent + 1 );
|
||||
SelectObject32( hdc, oldPen );
|
||||
DeleteObject32( hpen );
|
||||
}
|
||||
}
|
||||
else if (size.cx > max_width)
|
||||
|
@ -567,8 +567,7 @@ BOOL16 ExtTextOut16( HDC16 hdc, INT16 x, INT16 y, UINT16 flags,
|
|||
|
||||
if (flags & ETO_CLIPPED)
|
||||
{
|
||||
if( dc->w.flags & DC_MEMORY )
|
||||
SelectClipRgn( hdc, hRgnClip );
|
||||
if (dc->w.flags & DC_MEMORY) SelectClipRgn16( hdc, hRgnClip );
|
||||
else RestoreVisRgn( hdc );
|
||||
}
|
||||
return TRUE;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
%{
|
||||
/*
|
||||
/* -*-C-*-
|
||||
*
|
||||
* Copyright Martin von Loewis, 1994
|
||||
*
|
||||
*/
|
||||
%{
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
@ -11,6 +11,8 @@
|
|||
#include "parser.h"
|
||||
#include "y.tab.h"
|
||||
|
||||
#define YY_NO_UNPUT
|
||||
|
||||
int line_number=1;
|
||||
%}
|
||||
%%
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
#include <stdlib.h>
|
||||
#include "parser.h"
|
||||
#include "windows.h"
|
||||
|
||||
int yylex(void);
|
||||
int yyerror(const char *s);
|
||||
|
||||
%}
|
||||
%union{
|
||||
gen_res *res;
|
||||
|
@ -214,7 +218,7 @@ style_elm: NUMBER {$$=new_style();$$->or=$1;}
|
|||
extern int line_number;
|
||||
extern char* yytext;
|
||||
|
||||
int yyerror(char *s)
|
||||
int yyerror( const char *s )
|
||||
{
|
||||
fprintf(stderr,"stdin:%d: %s before '%s'\n",line_number,s,yytext);
|
||||
return 0;
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include <string.h>
|
||||
#include "windows.h"
|
||||
#include "parser.h"
|
||||
#include "y.tab.h"
|
||||
|
||||
char usage[]="winerc -bdvc -p prefix -o outfile < infile \n"
|
||||
" -b Create a C array from a binary .res file\n"
|
||||
|
|
|
@ -229,6 +229,7 @@ static void parse_file( INCL_FILE *pFile, int src )
|
|||
*p = 0;
|
||||
add_include( pFile, include );
|
||||
}
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
|
||||
|
@ -293,6 +294,7 @@ static void output_dependencies(void)
|
|||
pFile, &column );
|
||||
fprintf( file, "\n" );
|
||||
}
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -372,8 +372,8 @@ static HGLOBAL32 CURSORICON32_LoadHandler( HANDLE32 handle,
|
|||
if (!(hRes = GlobalAlloc16( GMEM_MOVEABLE,
|
||||
sizeof(CURSORICONINFO) + sizeXor + sizeAnd)))
|
||||
{
|
||||
DeleteObject( hXorBits );
|
||||
DeleteObject( hAndBits );
|
||||
DeleteObject32( hXorBits );
|
||||
DeleteObject32( hAndBits );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -393,8 +393,8 @@ static HGLOBAL32 CURSORICON32_LoadHandler( HANDLE32 handle,
|
|||
|
||||
GetBitmapBits( hAndBits, sizeAnd, (char *)(info + 1) );
|
||||
GetBitmapBits( hXorBits, sizeXor, (char *)(info + 1) + sizeAnd );
|
||||
DeleteObject( hXorBits );
|
||||
DeleteObject( hAndBits );
|
||||
DeleteObject32( hXorBits );
|
||||
DeleteObject32( hAndBits );
|
||||
GlobalUnlock16( hRes );
|
||||
return hRes;
|
||||
}
|
||||
|
|
|
@ -59,9 +59,9 @@ static void CARET_DisplayCaret( DISPLAY_CARET status )
|
|||
|
||||
Caret.on = !Caret.on;
|
||||
if (!(hdc = GetDCEx32( Caret.hwnd, 0, DCX_USESTYLE | DCX_CACHE ))) return;
|
||||
hPrevBrush = SelectObject( hdc, Caret.hBrush );
|
||||
hPrevBrush = SelectObject32( hdc, Caret.hBrush );
|
||||
PatBlt( hdc, Caret.x, Caret.y, Caret.width, Caret.height, PATINVERT );
|
||||
SelectObject( hdc, hPrevBrush );
|
||||
SelectObject32( hdc, hPrevBrush );
|
||||
ReleaseDC32( Caret.hwnd, hdc );
|
||||
}
|
||||
|
||||
|
@ -134,14 +134,14 @@ BOOL16 CreateCaret( HWND32 hwnd, HBITMAP32 bitmap, INT32 width, INT32 height )
|
|||
Caret.width = bmp.bmWidth;
|
||||
Caret.height = bmp.bmHeight;
|
||||
/* FIXME: we should make a copy of the bitmap instead of a brush */
|
||||
Caret.hBrush = CreatePatternBrush( bitmap );
|
||||
Caret.hBrush = CreatePatternBrush32( bitmap );
|
||||
}
|
||||
else
|
||||
{
|
||||
Caret.width = width ? width : GetSystemMetrics(SM_CXBORDER);
|
||||
Caret.height = height ? height : GetSystemMetrics(SM_CYBORDER);
|
||||
Caret.hBrush = CreateSolidBrush( bitmap ? GetSysColor(COLOR_GRAYTEXT) :
|
||||
GetSysColor(COLOR_WINDOW) );
|
||||
Caret.hBrush = CreateSolidBrush32(bitmap ? GetSysColor(COLOR_GRAYTEXT):
|
||||
GetSysColor(COLOR_WINDOW) );
|
||||
}
|
||||
|
||||
Caret.hwnd = hwnd;
|
||||
|
@ -165,7 +165,7 @@ BOOL16 DestroyCaret(void)
|
|||
dprintf_caret(stddeb,"DestroyCaret: hwnd=%04x, timerid=%d\n",
|
||||
Caret.hwnd, Caret.timerid);
|
||||
|
||||
DeleteObject( Caret.hBrush );
|
||||
DeleteObject32( Caret.hBrush );
|
||||
CARET_KillTimer();
|
||||
CARET_DisplayCaret(CARET_OFF);
|
||||
Caret.hwnd = 0;
|
||||
|
|
|
@ -182,7 +182,7 @@ static BOOL CLASS_FreeClass( CLASS *classPtr )
|
|||
/* Delete the class */
|
||||
|
||||
if (classPtr->dce) DCE_FreeDCE( classPtr->dce );
|
||||
if (classPtr->hbrBackground) DeleteObject( classPtr->hbrBackground );
|
||||
if (classPtr->hbrBackground) DeleteObject32( classPtr->hbrBackground );
|
||||
GlobalDeleteAtom( classPtr->atomName );
|
||||
CLASS_SetMenuNameA( classPtr, NULL );
|
||||
WINPROC_FreeProc( classPtr->winproc );
|
||||
|
|
|
@ -87,7 +87,7 @@ void DCE_FreeDCE( DCE *dce )
|
|||
|
||||
DeleteDC( dce->hDC );
|
||||
if( dce->hClipRgn && !(dce->DCXflags & DCX_KEEPCLIPRGN) )
|
||||
DeleteObject(dce->hClipRgn);
|
||||
DeleteObject32(dce->hClipRgn);
|
||||
HeapFree( SystemHeap, 0, dce );
|
||||
}
|
||||
|
||||
|
@ -242,9 +242,9 @@ static HRGN32 DCE_ClipWindows( WND *pWndStart, WND *pWndEnd,
|
|||
HRGN32 hrgnNew;
|
||||
|
||||
if (!pWndStart) return hrgn;
|
||||
if (!(hrgnNew = CreateRectRgn( 0, 0, 0, 0 )))
|
||||
if (!(hrgnNew = CreateRectRgn32( 0, 0, 0, 0 )))
|
||||
{
|
||||
DeleteObject( hrgn );
|
||||
DeleteObject32( hrgn );
|
||||
return 0;
|
||||
}
|
||||
for (; pWndStart != pWndEnd; pWndStart = pWndStart->next)
|
||||
|
@ -254,12 +254,12 @@ static HRGN32 DCE_ClipWindows( WND *pWndStart, WND *pWndEnd,
|
|||
pWndStart->rectWindow.top + yoffset,
|
||||
pWndStart->rectWindow.right + xoffset,
|
||||
pWndStart->rectWindow.bottom + yoffset );
|
||||
if (!CombineRgn( hrgn, hrgn, hrgnNew, RGN_DIFF )) break;
|
||||
if (!CombineRgn32( hrgn, hrgn, hrgnNew, RGN_DIFF )) break;
|
||||
}
|
||||
DeleteObject( hrgnNew );
|
||||
DeleteObject32( hrgnNew );
|
||||
if (pWndStart != pWndEnd) /* something went wrong */
|
||||
{
|
||||
DeleteObject( hrgn );
|
||||
DeleteObject32( hrgn );
|
||||
return 0;
|
||||
}
|
||||
return hrgn;
|
||||
|
@ -287,7 +287,7 @@ HRGN32 DCE_GetVisRgn( HWND hwnd, WORD flags )
|
|||
|
||||
if (!wndPtr || !DCE_GetVisRect( wndPtr, !(flags & DCX_WINDOW), &rect ))
|
||||
{
|
||||
return CreateRectRgn( 0, 0, 0, 0 ); /* Visible region is empty */
|
||||
return CreateRectRgn32( 0, 0, 0, 0 ); /* Visible region is empty */
|
||||
}
|
||||
if (!(hrgn = CreateRectRgnIndirect16( &rect ))) return 0;
|
||||
|
||||
|
@ -407,6 +407,8 @@ HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags )
|
|||
|
||||
if (!(wndPtr = WIN_FindWndPtr( hwnd ))) return 0;
|
||||
|
||||
if (!(wndPtr->class->style & (CS_OWNDC | CS_CLASSDC))) flags |= DCX_CACHE;
|
||||
|
||||
if (flags & DCX_USESTYLE)
|
||||
{
|
||||
flags &= ~( DCX_CLIPCHILDREN | DCX_CLIPSIBLINGS | DCX_PARENTCLIP);
|
||||
|
@ -416,9 +418,6 @@ HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags )
|
|||
|
||||
if ( !(flags & DCX_WINDOW) )
|
||||
{
|
||||
if (!(wndPtr->class->style & (CS_OWNDC | CS_CLASSDC)))
|
||||
flags |= DCX_CACHE;
|
||||
|
||||
if (wndPtr->class->style & CS_PARENTDC) flags |= DCX_PARENTCLIP;
|
||||
|
||||
if (wndPtr->dwStyle & WS_CLIPCHILDREN &&
|
||||
|
@ -469,7 +468,7 @@ HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags )
|
|||
if( hrgnClip && dce->hClipRgn && !(dce->DCXflags & DCX_KEEPCLIPRGN))
|
||||
{
|
||||
fprintf(stdnimp,"GetDCEx: hClipRgn collision!\n");
|
||||
DeleteObject(dce->hClipRgn);
|
||||
DeleteObject32( dce->hClipRgn );
|
||||
need_update = TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -498,17 +497,17 @@ HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags )
|
|||
dcx_flags |= DCX_CLIPSIBLINGS;
|
||||
hrgnVisible = DCE_GetVisRgn( parentPtr->hwndSelf, dcx_flags );
|
||||
if (flags & DCX_WINDOW)
|
||||
OffsetRgn( hrgnVisible, -wndPtr->rectWindow.left,
|
||||
-wndPtr->rectWindow.top );
|
||||
else OffsetRgn( hrgnVisible, -wndPtr->rectClient.left,
|
||||
-wndPtr->rectClient.top );
|
||||
OffsetRgn32( hrgnVisible, -wndPtr->rectWindow.left,
|
||||
-wndPtr->rectWindow.top );
|
||||
else OffsetRgn32( hrgnVisible, -wndPtr->rectClient.left,
|
||||
-wndPtr->rectClient.top );
|
||||
}
|
||||
/* optimize away GetVisRgn for desktop if it isn't there */
|
||||
|
||||
else if ((hwnd == GetDesktopWindow32()) &&
|
||||
(rootWindow == DefaultRootWindow(display)))
|
||||
hrgnVisible = CreateRectRgn( 0, 0, SYSMETRICS_CXSCREEN,
|
||||
SYSMETRICS_CYSCREEN);
|
||||
hrgnVisible = CreateRectRgn32( 0, 0, SYSMETRICS_CXSCREEN,
|
||||
SYSMETRICS_CYSCREEN );
|
||||
else hrgnVisible = DCE_GetVisRgn( hwnd, flags );
|
||||
|
||||
if( wndPtr->parent && wndPtr->window )
|
||||
|
@ -526,7 +525,7 @@ HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags )
|
|||
dc->w.flags &= ~DC_DIRTY;
|
||||
SelectVisRgn( hdc, hrgnVisible );
|
||||
}
|
||||
else hrgnVisible = CreateRectRgn(0,0,0,0);
|
||||
else hrgnVisible = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
|
||||
if ((flags & DCX_INTERSECTRGN) || (flags & DCX_EXCLUDERGN))
|
||||
{
|
||||
|
@ -536,11 +535,11 @@ HDC32 GetDCEx32( HWND32 hwnd, HRGN32 hrgnClip, DWORD flags )
|
|||
dprintf_dc(stddeb, "\tsaved VisRgn, clipRgn = %04x\n", hrgnClip);
|
||||
|
||||
SaveVisRgn( hdc );
|
||||
CombineRgn( hrgnVisible, InquireVisRgn( hdc ), hrgnClip,
|
||||
(flags & DCX_INTERSECTRGN) ? RGN_AND : RGN_DIFF );
|
||||
CombineRgn32( hrgnVisible, InquireVisRgn( hdc ), hrgnClip,
|
||||
(flags & DCX_INTERSECTRGN) ? RGN_AND : RGN_DIFF );
|
||||
SelectVisRgn( hdc, hrgnVisible );
|
||||
}
|
||||
DeleteObject( hrgnVisible );
|
||||
DeleteObject32( hrgnVisible );
|
||||
|
||||
dprintf_dc(stddeb, "GetDCEx(%04x,%04x,0x%lx): returning %04x\n",
|
||||
hwnd, hrgnClip, flags, hdc);
|
||||
|
@ -622,7 +621,7 @@ INT32 ReleaseDC32( HWND32 hwnd, HDC32 hdc )
|
|||
dce->DCXflags &= ~DCX_KEEPCLIPRGN;
|
||||
else
|
||||
if( dce->hClipRgn > 1 )
|
||||
DeleteObject( dce->hClipRgn );
|
||||
DeleteObject32( dce->hClipRgn );
|
||||
|
||||
dce->hClipRgn = 0;
|
||||
RestoreVisRgn(dce->hDC);
|
||||
|
@ -673,11 +672,11 @@ BOOL16 DCHook( HDC16 hDC, WORD code, DWORD data, LPARAM lParam )
|
|||
(dce->hClipRgn == 1 && dce->DCXflags & DCX_EXCLUDERGN) )
|
||||
SetRectRgn(hVisRgn,0,0,0,0);
|
||||
else
|
||||
CombineRgn(hVisRgn, hVisRgn, dce->hClipRgn,
|
||||
CombineRgn32(hVisRgn, hVisRgn, dce->hClipRgn,
|
||||
(dce->DCXflags & DCX_EXCLUDERGN)? RGN_DIFF:RGN_AND);
|
||||
}
|
||||
SelectVisRgn(hDC, hVisRgn);
|
||||
DeleteObject(hVisRgn);
|
||||
DeleteObject32( hVisRgn );
|
||||
}
|
||||
else
|
||||
dprintf_dc(stddeb,"DCHook: DC is not in use!\n");
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* Set the focus to a control of the dialog, selecting the text if
|
||||
* the control is an edit dialog.
|
||||
*/
|
||||
static void DEFDLG_SetFocus( HWND hwndDlg, HWND hwndCtrl )
|
||||
static void DEFDLG_SetFocus( HWND32 hwndDlg, HWND32 hwndCtrl )
|
||||
{
|
||||
HWND32 hwndPrev = GetFocus32();
|
||||
|
||||
|
@ -35,7 +35,7 @@ static void DEFDLG_SetFocus( HWND hwndDlg, HWND hwndCtrl )
|
|||
/***********************************************************************
|
||||
* DEFDLG_SaveFocus
|
||||
*/
|
||||
static BOOL DEFDLG_SaveFocus( HWND hwnd, DIALOGINFO *infoPtr )
|
||||
static BOOL32 DEFDLG_SaveFocus( HWND32 hwnd, DIALOGINFO *infoPtr )
|
||||
{
|
||||
HWND32 hwndFocus = GetFocus32();
|
||||
|
||||
|
@ -49,7 +49,7 @@ static BOOL DEFDLG_SaveFocus( HWND hwnd, DIALOGINFO *infoPtr )
|
|||
/***********************************************************************
|
||||
* DEFDLG_RestoreFocus
|
||||
*/
|
||||
static BOOL DEFDLG_RestoreFocus( HWND hwnd, DIALOGINFO *infoPtr )
|
||||
static BOOL32 DEFDLG_RestoreFocus( HWND32 hwnd, DIALOGINFO *infoPtr )
|
||||
{
|
||||
if (!infoPtr->hwndFocus || IsIconic(hwnd)) return FALSE;
|
||||
if (!IsWindow( infoPtr->hwndFocus )) return FALSE;
|
||||
|
@ -64,9 +64,9 @@ static BOOL DEFDLG_RestoreFocus( HWND hwnd, DIALOGINFO *infoPtr )
|
|||
*
|
||||
* Find the current default push-button.
|
||||
*/
|
||||
static HWND DEFDLG_FindDefButton( HWND hwndDlg )
|
||||
static HWND32 DEFDLG_FindDefButton( HWND32 hwndDlg )
|
||||
{
|
||||
HWND hwndChild = GetWindow( hwndDlg, GW_CHILD );
|
||||
HWND32 hwndChild = GetWindow( hwndDlg, GW_CHILD );
|
||||
while (hwndChild)
|
||||
{
|
||||
if (SendMessage16( hwndChild, WM_GETDLGCODE, 0, 0 ) & DLGC_DEFPUSHBUTTON)
|
||||
|
@ -82,8 +82,8 @@ static HWND DEFDLG_FindDefButton( HWND hwndDlg )
|
|||
*
|
||||
* Set the new default button to be hwndNew.
|
||||
*/
|
||||
static BOOL DEFDLG_SetDefButton( HWND hwndDlg, DIALOGINFO *dlgInfo,
|
||||
HWND hwndNew )
|
||||
static BOOL32 DEFDLG_SetDefButton( HWND32 hwndDlg, DIALOGINFO *dlgInfo,
|
||||
HWND32 hwndNew )
|
||||
{
|
||||
if (hwndNew &&
|
||||
!(SendMessage16(hwndNew, WM_GETDLGCODE, 0, 0 ) & DLGC_UNDEFPUSHBUTTON))
|
||||
|
@ -91,7 +91,7 @@ static BOOL DEFDLG_SetDefButton( HWND hwndDlg, DIALOGINFO *dlgInfo,
|
|||
|
||||
if (dlgInfo->msgResult) /* There's already a default pushbutton */
|
||||
{
|
||||
HWND hwndOld = GetDlgItem( hwndDlg, dlgInfo->msgResult );
|
||||
HWND32 hwndOld = GetDlgItem( hwndDlg, dlgInfo->msgResult );
|
||||
if (SendMessage32A( hwndOld, WM_GETDLGCODE, 0, 0) & DLGC_DEFPUSHBUTTON)
|
||||
SendMessage32A( hwndOld, BM_SETSTYLE32, BS_PUSHBUTTON, TRUE );
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ static BOOL DEFDLG_SetDefButton( HWND hwndDlg, DIALOGINFO *dlgInfo,
|
|||
static LRESULT DEFDLG_Proc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam,
|
||||
LPARAM lParam, DIALOGINFO *dlgInfo )
|
||||
{
|
||||
HWND hwndDefId;
|
||||
HWND32 hwndDefId;
|
||||
|
||||
switch(msg)
|
||||
{
|
||||
|
@ -138,7 +138,7 @@ static LRESULT DEFDLG_Proc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam,
|
|||
/* Delete font */
|
||||
if (dlgInfo->hUserFont)
|
||||
{
|
||||
DeleteObject( dlgInfo->hUserFont );
|
||||
DeleteObject32( dlgInfo->hUserFont );
|
||||
dlgInfo->hUserFont = 0;
|
||||
}
|
||||
|
||||
|
@ -186,7 +186,7 @@ static LRESULT DEFDLG_Proc( HWND32 hwnd, UINT32 msg, WPARAM32 wParam,
|
|||
|
||||
case WM_NEXTDLGCTL:
|
||||
{
|
||||
HWND hwndDest = (HWND)wParam;
|
||||
HWND32 hwndDest = (HWND32)wParam;
|
||||
if (!lParam)
|
||||
hwndDest = GetNextDlgTabItem32(hwnd, GetFocus32(), wParam);
|
||||
if (hwndDest) DEFDLG_SetFocus( hwnd, hwndDest );
|
||||
|
|
|
@ -172,11 +172,11 @@ static LRESULT DEFWND_DefWinProc( WND *wndPtr, UINT32 msg, WPARAM32 wParam,
|
|||
|
||||
if (wndPtr->class->hbrBackground <= (HBRUSH16)(COLOR_MAX+1))
|
||||
{
|
||||
HBRUSH16 hbrush = CreateSolidBrush(
|
||||
HBRUSH32 hbrush = CreateSolidBrush32(
|
||||
GetSysColor(((DWORD)wndPtr->class->hbrBackground)-1));
|
||||
FillWindow( GetParent16(wndPtr->hwndSelf), wndPtr->hwndSelf,
|
||||
(HDC16)wParam, hbrush);
|
||||
DeleteObject (hbrush);
|
||||
DeleteObject32( hbrush );
|
||||
}
|
||||
else FillWindow( GetParent16(wndPtr->hwndSelf), wndPtr->hwndSelf,
|
||||
(HDC16)wParam, wndPtr->class->hbrBackground );
|
||||
|
@ -199,7 +199,7 @@ static LRESULT DEFWND_DefWinProc( WND *wndPtr, UINT32 msg, WPARAM32 wParam,
|
|||
case WM_CTLCOLORSCROLLBAR:
|
||||
SetBkColor( (HDC32)wParam, RGB(255, 255, 255) );
|
||||
SetTextColor( (HDC32)wParam, RGB(0, 0, 0) );
|
||||
UnrealizeObject( sysColorObjects.hbrushScrollbar );
|
||||
UnrealizeObject32( sysColorObjects.hbrushScrollbar );
|
||||
return (LRESULT)sysColorObjects.hbrushScrollbar;
|
||||
|
||||
case WM_CTLCOLOR:
|
||||
|
@ -208,7 +208,7 @@ static LRESULT DEFWND_DefWinProc( WND *wndPtr, UINT32 msg, WPARAM32 wParam,
|
|||
{
|
||||
SetBkColor( (HDC32)wParam, RGB(255, 255, 255) );
|
||||
SetTextColor( (HDC32)wParam, RGB(0, 0, 0) );
|
||||
UnrealizeObject( sysColorObjects.hbrushScrollbar );
|
||||
UnrealizeObject32( sysColorObjects.hbrushScrollbar );
|
||||
return (LRESULT)sysColorObjects.hbrushScrollbar;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -237,7 +237,7 @@ static BOOL32 DIALOG_CreateControls( WND *pWnd, LPCSTR template, INT32 items,
|
|||
HINSTANCE16 instance;
|
||||
template = DIALOG_GetControl16( template, &info );
|
||||
if (HIWORD(info.className) && !strcmp( info.className, "EDIT") &&
|
||||
((info.style & DS_LOCALEDIT) != DS_LOCALEDIT))
|
||||
((pWnd->dwStyle & DS_LOCALEDIT) != DS_LOCALEDIT))
|
||||
{
|
||||
if (!dlgInfo->hDialogHeap)
|
||||
{
|
||||
|
@ -502,9 +502,9 @@ static HWND DIALOG_CreateIndirect( HINSTANCE32 hInst, LPCSTR dlgTemplate,
|
|||
HFONT16 oldFont;
|
||||
|
||||
HDC32 hdc = GetDC32(0);
|
||||
oldFont = SelectObject( hdc, hFont );
|
||||
oldFont = SelectObject32( hdc, hFont );
|
||||
GetTextMetrics16( hdc, &tm );
|
||||
SelectObject( hdc, oldFont );
|
||||
SelectObject32( hdc, oldFont );
|
||||
ReleaseDC32( 0, hdc );
|
||||
xUnit = tm.tmAveCharWidth;
|
||||
yUnit = tm.tmHeight;
|
||||
|
@ -551,7 +551,7 @@ static HWND DIALOG_CreateIndirect( HINSTANCE32 hInst, LPCSTR dlgTemplate,
|
|||
owner, hMenu, hInst, NULL );
|
||||
if (!hwnd)
|
||||
{
|
||||
if (hFont) DeleteObject( hFont );
|
||||
if (hFont) DeleteObject32( hFont );
|
||||
if (hMenu) DestroyMenu( hMenu );
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -771,7 +771,7 @@ static void EVENT_ConfigureNotify( HWND hwnd, XConfigureEvent *event )
|
|||
|
||||
hrgnOldPos = CreateRectRgnIndirect16( &wndPtr->rectWindow );
|
||||
hrgnNewPos = CreateRectRgnIndirect16( &newWindowRect );
|
||||
CombineRgn( hrgnOldPos, hrgnOldPos, hrgnNewPos, RGN_DIFF );
|
||||
CombineRgn32( hrgnOldPos, hrgnOldPos, hrgnNewPos, RGN_DIFF );
|
||||
|
||||
/* Set new size and position */
|
||||
wndPtr->rectWindow = newWindowRect;
|
||||
|
@ -783,8 +783,8 @@ static void EVENT_ConfigureNotify( HWND hwnd, XConfigureEvent *event )
|
|||
PAINT_RedrawWindow( 0, NULL, hrgnOldPos, RDW_INVALIDATE |
|
||||
RDW_ALLCHILDREN | RDW_ERASE | RDW_ERASENOW,
|
||||
RDW_C_USEHRGN );
|
||||
DeleteObject(hrgnOldPos);
|
||||
DeleteObject(hrgnNewPos);
|
||||
DeleteObject32(hrgnOldPos);
|
||||
DeleteObject32(hrgnNewPos);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* Copyright 1993, 1994 Alexandre Julliard
|
||||
*/
|
||||
|
||||
#define NO_TRANSITION_TYPES /* This file is Win32-clean */
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
@ -26,9 +27,18 @@
|
|||
#include "xmalloc.h"
|
||||
|
||||
/***********************************************************************
|
||||
* LineTo (GDI.19)
|
||||
* LineTo16 (GDI.19)
|
||||
*/
|
||||
BOOL LineTo( HDC16 hdc, short x, short y )
|
||||
BOOL16 LineTo16( HDC16 hdc, INT16 x, INT16 y )
|
||||
{
|
||||
return LineTo32( hdc, x, y );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* LineTo32 (GDI32.249)
|
||||
*/
|
||||
BOOL32 LineTo32( HDC32 hdc, INT32 x, INT32 y )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc)
|
||||
|
@ -54,9 +64,9 @@ BOOL LineTo( HDC16 hdc, short x, short y )
|
|||
/***********************************************************************
|
||||
* MoveTo (GDI.20)
|
||||
*/
|
||||
DWORD MoveTo( HDC16 hdc, short x, short y )
|
||||
DWORD MoveTo( HDC16 hdc, INT16 x, INT16 y )
|
||||
{
|
||||
short oldx, oldy;
|
||||
DWORD ret;
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc)
|
||||
{
|
||||
|
@ -65,12 +75,10 @@ DWORD MoveTo( HDC16 hdc, short x, short y )
|
|||
MF_MetaParam2(dc, META_MOVETO, x, y);
|
||||
return 0;
|
||||
}
|
||||
|
||||
oldx = dc->w.CursPosX;
|
||||
oldy = dc->w.CursPosY;
|
||||
ret = MAKELONG( dc->w.CursPosX, dc->w.CursPosY );
|
||||
dc->w.CursPosX = x;
|
||||
dc->w.CursPosY = y;
|
||||
return oldx | (oldy << 16);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -110,10 +118,11 @@ BOOL32 MoveToEx32( HDC32 hdc, INT32 x, INT32 y, LPPOINT32 pt )
|
|||
* Helper functions for Arc(), Chord() and Pie().
|
||||
* 'lines' is the number of lines to draw: 0 for Arc, 1 for Chord, 2 for Pie.
|
||||
*/
|
||||
static BOOL GRAPH_DrawArc( HDC16 hdc, int left, int top, int right, int bottom,
|
||||
int xstart, int ystart, int xend, int yend, int lines )
|
||||
static BOOL32 GRAPH_DrawArc( HDC32 hdc, INT32 left, INT32 top, INT32 right,
|
||||
INT32 bottom, INT32 xstart, INT32 ystart,
|
||||
INT32 xend, INT32 yend, INT32 lines )
|
||||
{
|
||||
int xcenter, ycenter, istart_angle, idiff_angle, tmp;
|
||||
INT32 xcenter, ycenter, istart_angle, idiff_angle, tmp;
|
||||
double start_angle, end_angle;
|
||||
XPoint points[3];
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
|
@ -157,8 +166,8 @@ static BOOL GRAPH_DrawArc( HDC16 hdc, int left, int top, int right, int bottom,
|
|||
(double)(xstart-xcenter)*(bottom-top) );
|
||||
end_angle = atan2( (double)(ycenter-yend)*(right-left),
|
||||
(double)(xend-xcenter)*(bottom-top) );
|
||||
istart_angle = (int)(start_angle * 180 * 64 / PI);
|
||||
idiff_angle = (int)((end_angle - start_angle) * 180 * 64 / PI );
|
||||
istart_angle = (INT32)(start_angle * 180 * 64 / PI);
|
||||
idiff_angle = (INT32)((end_angle - start_angle) * 180 * 64 / PI );
|
||||
if (idiff_angle <= 0) idiff_angle += 360 * 64;
|
||||
if (left > right) { tmp=left; left=right; right=tmp; }
|
||||
if (top > bottom) { tmp=top; top=bottom; bottom=tmp; }
|
||||
|
@ -198,10 +207,10 @@ static BOOL GRAPH_DrawArc( HDC16 hdc, int left, int top, int right, int bottom,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* Arc (GDI.23)
|
||||
* Arc16 (GDI.23)
|
||||
*/
|
||||
BOOL Arc( HDC16 hdc, INT left, INT top, INT right, INT bottom,
|
||||
INT xstart, INT ystart, INT xend, INT yend )
|
||||
BOOL16 Arc16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom,
|
||||
INT16 xstart, INT16 ystart, INT16 xend, INT16 yend )
|
||||
{
|
||||
return GRAPH_DrawArc( hdc, left, top, right, bottom,
|
||||
xstart, ystart, xend, yend, 0 );
|
||||
|
@ -209,10 +218,21 @@ BOOL Arc( HDC16 hdc, INT left, INT top, INT right, INT bottom,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* Pie (GDI.26)
|
||||
* Arc32 (GDI32.7)
|
||||
*/
|
||||
BOOL Pie( HDC16 hdc, INT left, INT top, INT right, INT bottom,
|
||||
INT xstart, INT ystart, INT xend, INT yend )
|
||||
BOOL32 Arc32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom,
|
||||
INT32 xstart, INT32 ystart, INT32 xend, INT32 yend )
|
||||
{
|
||||
return GRAPH_DrawArc( hdc, left, top, right, bottom,
|
||||
xstart, ystart, xend, yend, 0 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* Pie16 (GDI.26)
|
||||
*/
|
||||
BOOL16 Pie16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom,
|
||||
INT16 xstart, INT16 ystart, INT16 xend, INT16 yend )
|
||||
{
|
||||
return GRAPH_DrawArc( hdc, left, top, right, bottom,
|
||||
xstart, ystart, xend, yend, 2 );
|
||||
|
@ -220,10 +240,21 @@ BOOL Pie( HDC16 hdc, INT left, INT top, INT right, INT bottom,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* Chord (GDI.348)
|
||||
* Pie32 (GDI32.262)
|
||||
*/
|
||||
BOOL Chord( HDC16 hdc, INT left, INT top, INT right, INT bottom,
|
||||
INT xstart, INT ystart, INT xend, INT yend )
|
||||
BOOL32 Pie32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom,
|
||||
INT32 xstart, INT32 ystart, INT32 xend, INT32 yend )
|
||||
{
|
||||
return GRAPH_DrawArc( hdc, left, top, right, bottom,
|
||||
xstart, ystart, xend, yend, 2 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* Chord16 (GDI.348)
|
||||
*/
|
||||
BOOL16 Chord16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom,
|
||||
INT16 xstart, INT16 ystart, INT16 xend, INT16 yend )
|
||||
{
|
||||
return GRAPH_DrawArc( hdc, left, top, right, bottom,
|
||||
xstart, ystart, xend, yend, 1 );
|
||||
|
@ -231,9 +262,29 @@ BOOL Chord( HDC16 hdc, INT left, INT top, INT right, INT bottom,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* Ellipse (GDI.24)
|
||||
* Chord32 (GDI32.14)
|
||||
*/
|
||||
BOOL Ellipse( HDC16 hdc, INT left, INT top, INT right, INT bottom )
|
||||
BOOL32 Chord32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom,
|
||||
INT32 xstart, INT32 ystart, INT32 xend, INT32 yend )
|
||||
{
|
||||
return GRAPH_DrawArc( hdc, left, top, right, bottom,
|
||||
xstart, ystart, xend, yend, 1 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* Ellipse16 (GDI.24)
|
||||
*/
|
||||
BOOL16 Ellipse16( HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom )
|
||||
{
|
||||
return Ellipse32( hdc, left, top, right, bottom );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* Ellipse32 (GDI32.75)
|
||||
*/
|
||||
BOOL32 Ellipse32( HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc)
|
||||
|
@ -250,8 +301,8 @@ BOOL Ellipse( HDC16 hdc, INT left, INT top, INT right, INT bottom )
|
|||
bottom = YLPTODP( dc, bottom );
|
||||
if ((left == right) || (top == bottom)) return FALSE;
|
||||
|
||||
if (right < left) { INT tmp = right; right = left; left = tmp; }
|
||||
if (bottom < top) { INT tmp = bottom; bottom = top; top = tmp; }
|
||||
if (right < left) { INT32 tmp = right; right = left; left = tmp; }
|
||||
if (bottom < top) { INT32 tmp = bottom; bottom = top; top = tmp; }
|
||||
|
||||
if ((dc->u.x.pen.style == PS_INSIDEFRAME) &&
|
||||
(dc->u.x.pen.width < right-left-1) &&
|
||||
|
@ -276,9 +327,18 @@ BOOL Ellipse( HDC16 hdc, INT left, INT top, INT right, INT bottom )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* Rectangle (GDI.27)
|
||||
* Rectangle16 (GDI.27)
|
||||
*/
|
||||
BOOL Rectangle( HDC16 hdc, INT left, INT top, INT right, INT bottom )
|
||||
BOOL16 Rectangle16(HDC16 hdc, INT16 left, INT16 top, INT16 right, INT16 bottom)
|
||||
{
|
||||
return Rectangle32( hdc, left, top, right, bottom );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* Rectangle32 (GDI32.283)
|
||||
*/
|
||||
BOOL32 Rectangle32(HDC32 hdc, INT32 left, INT32 top, INT32 right, INT32 bottom)
|
||||
{
|
||||
INT32 width;
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
|
@ -294,8 +354,8 @@ BOOL Rectangle( HDC16 hdc, INT left, INT top, INT right, INT bottom )
|
|||
right = XLPTODP( dc, right );
|
||||
bottom = YLPTODP( dc, bottom );
|
||||
|
||||
if (right < left) { INT tmp = right; right = left; left = tmp; }
|
||||
if (bottom < top) { INT tmp = bottom; bottom = top; top = tmp; }
|
||||
if (right < left) { INT32 tmp = right; right = left; left = tmp; }
|
||||
if (bottom < top) { INT32 tmp = bottom; bottom = top; top = tmp; }
|
||||
|
||||
if ((left == right) || (top == bottom))
|
||||
{
|
||||
|
@ -334,15 +394,25 @@ BOOL Rectangle( HDC16 hdc, INT left, INT top, INT right, INT bottom )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* RoundRect (GDI.28)
|
||||
* RoundRect16 (GDI.28)
|
||||
*/
|
||||
BOOL RoundRect( HDC16 hDC, INT left, INT top, INT right, INT bottom,
|
||||
INT ell_width, INT ell_height )
|
||||
BOOL16 RoundRect16( HDC16 hdc, INT16 left, INT16 top, INT16 right,
|
||||
INT16 bottom, INT16 ell_width, INT16 ell_height )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr(hDC, DC_MAGIC);
|
||||
return RoundRect32( hdc, left, top, right, bottom, ell_width, ell_height );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* RoundRect32 (GDI32.291)
|
||||
*/
|
||||
BOOL32 RoundRect32( HDC32 hdc, INT32 left, INT32 top, INT32 right,
|
||||
INT32 bottom, INT32 ell_width, INT32 ell_height )
|
||||
{
|
||||
DC * dc = (DC *) GDI_GetObjPtr(hdc, DC_MAGIC);
|
||||
if (!dc)
|
||||
{
|
||||
dc = (DC *)GDI_GetObjPtr(hDC, METAFILE_DC_MAGIC);
|
||||
dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC);
|
||||
if (!dc) return FALSE;
|
||||
MF_MetaParam6(dc, META_ROUNDRECT, left, top, right, bottom,
|
||||
ell_width, ell_height);
|
||||
|
@ -360,8 +430,8 @@ BOOL RoundRect( HDC16 hDC, INT left, INT top, INT right, INT bottom,
|
|||
|
||||
/* Fix the coordinates */
|
||||
|
||||
if (right < left) { INT tmp = right; right = left; left = tmp; }
|
||||
if (bottom < top) { INT tmp = bottom; bottom = top; top = tmp; }
|
||||
if (right < left) { INT32 tmp = right; right = left; left = tmp; }
|
||||
if (bottom < top) { INT32 tmp = bottom; bottom = top; top = tmp; }
|
||||
if (ell_width > right - left) ell_width = right - left;
|
||||
if (ell_height > bottom - top) ell_height = bottom - top;
|
||||
|
||||
|
@ -462,10 +532,10 @@ INT16 FillRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush )
|
|||
* - do it in PatBlt() after LPtoDP().
|
||||
*/
|
||||
|
||||
if (!(prevBrush = SelectObject( hdc, hbrush ))) return 0;
|
||||
if (!(prevBrush = SelectObject16( hdc, hbrush ))) return 0;
|
||||
PatBlt( hdc, rect->left, rect->top,
|
||||
rect->right - rect->left, rect->bottom - rect->top, PATCOPY );
|
||||
SelectObject( hdc, prevBrush );
|
||||
SelectObject16( hdc, prevBrush );
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -475,12 +545,12 @@ INT16 FillRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush )
|
|||
*/
|
||||
INT32 FillRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush )
|
||||
{
|
||||
HBRUSH16 prevBrush;
|
||||
HBRUSH32 prevBrush;
|
||||
|
||||
if (!(prevBrush = SelectObject( hdc, (HBRUSH16)hbrush ))) return 0;
|
||||
if (!(prevBrush = SelectObject32( hdc, hbrush ))) return 0;
|
||||
PatBlt( hdc, rect->left, rect->top,
|
||||
rect->right - rect->left, rect->bottom - rect->top, PATCOPY );
|
||||
SelectObject( hdc, prevBrush );
|
||||
SelectObject32( hdc, prevBrush );
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -522,7 +592,7 @@ INT16 FrameRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush )
|
|||
bottom = YLPTODP( dc, rect->bottom );
|
||||
|
||||
if ( (right <= left) || (bottom <= top) ) return 0;
|
||||
if (!(prevBrush = SelectObject( hdc, hbrush ))) return 0;
|
||||
if (!(prevBrush = SelectObject16( hdc, hbrush ))) return 0;
|
||||
|
||||
if (DC_SetupGCForBrush( dc ))
|
||||
{
|
||||
|
@ -535,7 +605,7 @@ INT16 FrameRect16( HDC16 hdc, const RECT16 *rect, HBRUSH16 hbrush )
|
|||
PatBlt( hdc, rect->left, rect->bottom - 1,
|
||||
rect->right - rect->left, 1, PATCOPY );
|
||||
}
|
||||
SelectObject( hdc, prevBrush );
|
||||
SelectObject16( hdc, prevBrush );
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -552,9 +622,18 @@ INT32 FrameRect32( HDC32 hdc, const RECT32 *rect, HBRUSH32 hbrush )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* SetPixel (GDI.31)
|
||||
* SetPixel16 (GDI.31)
|
||||
*/
|
||||
COLORREF SetPixel( HDC16 hdc, short x, short y, COLORREF color )
|
||||
COLORREF SetPixel16( HDC16 hdc, INT16 x, INT16 y, COLORREF color )
|
||||
{
|
||||
return SetPixel32( hdc, x, y, color );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetPixel32 (GDI32.327)
|
||||
*/
|
||||
COLORREF SetPixel32( HDC32 hdc, INT32 x, INT32 y, COLORREF color )
|
||||
{
|
||||
Pixel pixel;
|
||||
|
||||
|
@ -582,9 +661,18 @@ COLORREF SetPixel( HDC16 hdc, short x, short y, COLORREF color )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* GetPixel (GDI.83)
|
||||
* GetPixel16 (GDI.83)
|
||||
*/
|
||||
COLORREF GetPixel( HDC16 hdc, short x, short y )
|
||||
COLORREF GetPixel16( HDC16 hdc, INT16 x, INT16 y )
|
||||
{
|
||||
return GetPixel32( hdc, x, y );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* GetPixel32 (GDI32.211)
|
||||
*/
|
||||
COLORREF GetPixel32( HDC32 hdc, INT32 x, INT32 y )
|
||||
{
|
||||
static Pixmap pixmap = 0;
|
||||
XImage * image;
|
||||
|
@ -597,7 +685,7 @@ COLORREF GetPixel( HDC16 hdc, short x, short y )
|
|||
return 0;
|
||||
#endif
|
||||
|
||||
if (!PtVisible( hdc, x, y )) return 0;
|
||||
if (!PtVisible32( hdc, x, y )) return 0;
|
||||
|
||||
x = dc->w.DCOrgX + XLPTODP( dc, x );
|
||||
y = dc->w.DCOrgY + YLPTODP( dc, y );
|
||||
|
@ -624,11 +712,20 @@ COLORREF GetPixel( HDC16 hdc, short x, short y )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* PaintRgn (GDI.43)
|
||||
* PaintRgn16 (GDI.43)
|
||||
*/
|
||||
BOOL PaintRgn( HDC16 hdc, HRGN32 hrgn )
|
||||
BOOL16 PaintRgn16( HDC16 hdc, HRGN16 hrgn )
|
||||
{
|
||||
RECT16 box;
|
||||
return PaintRgn32( hdc, hrgn );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* PaintRgn32 (GDI32.259)
|
||||
*/
|
||||
BOOL32 PaintRgn32( HDC32 hdc, HRGN32 hrgn )
|
||||
{
|
||||
RECT32 box;
|
||||
HRGN32 tmpVisRgn, prevVisRgn;
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc) return FALSE;
|
||||
|
@ -636,18 +733,18 @@ BOOL PaintRgn( HDC16 hdc, HRGN32 hrgn )
|
|||
/* Modify visible region */
|
||||
|
||||
if (!(prevVisRgn = SaveVisRgn( hdc ))) return FALSE;
|
||||
if (!(tmpVisRgn = CreateRectRgn( 0, 0, 0, 0 )))
|
||||
if (!(tmpVisRgn = CreateRectRgn32( 0, 0, 0, 0 )))
|
||||
{
|
||||
RestoreVisRgn( hdc );
|
||||
return FALSE;
|
||||
}
|
||||
CombineRgn( tmpVisRgn, prevVisRgn, hrgn, RGN_AND );
|
||||
CombineRgn32( tmpVisRgn, prevVisRgn, hrgn, RGN_AND );
|
||||
SelectVisRgn( hdc, tmpVisRgn );
|
||||
DeleteObject( tmpVisRgn );
|
||||
DeleteObject32( tmpVisRgn );
|
||||
|
||||
/* Fill the region */
|
||||
|
||||
GetRgnBox16( dc->w.hGCClipRgn, &box );
|
||||
GetRgnBox32( dc->w.hGCClipRgn, &box );
|
||||
if (DC_SetupGCForBrush( dc ))
|
||||
XFillRectangle( display, dc->u.x.drawable, dc->u.x.gc,
|
||||
dc->w.DCOrgX + box.left, dc->w.DCOrgY + box.top,
|
||||
|
@ -661,39 +758,70 @@ BOOL PaintRgn( HDC16 hdc, HRGN32 hrgn )
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* FillRgn (GDI.40)
|
||||
* FillRgn16 (GDI.40)
|
||||
*/
|
||||
BOOL FillRgn( HDC16 hdc, HRGN32 hrgn, HBRUSH16 hbrush )
|
||||
BOOL16 FillRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush )
|
||||
{
|
||||
BOOL retval;
|
||||
HBRUSH16 prevBrush = SelectObject( hdc, hbrush );
|
||||
return FillRgn32( hdc, hrgn, hbrush );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* FillRgn32 (GDI32.101)
|
||||
*/
|
||||
BOOL32 FillRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush )
|
||||
{
|
||||
BOOL32 retval;
|
||||
HBRUSH32 prevBrush = SelectObject32( hdc, hbrush );
|
||||
if (!prevBrush) return FALSE;
|
||||
retval = PaintRgn( hdc, hrgn );
|
||||
SelectObject( hdc, prevBrush );
|
||||
retval = PaintRgn32( hdc, hrgn );
|
||||
SelectObject32( hdc, prevBrush );
|
||||
return retval;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* FrameRgn (GDI.41)
|
||||
*/
|
||||
BOOL FrameRgn( HDC16 hdc, HRGN32 hrgn, HBRUSH16 hbrush, int nWidth, int nHeight )
|
||||
{
|
||||
HRGN32 tmp = CreateRectRgn( 0, 0, 0, 0 );
|
||||
if(!REGION_FrameRgn( tmp, hrgn, nWidth, nHeight )) return 0;
|
||||
FillRgn( hdc, tmp, hbrush );
|
||||
DeleteObject( tmp );
|
||||
return 1;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* InvertRgn (GDI.42)
|
||||
* FrameRgn16 (GDI.41)
|
||||
*/
|
||||
BOOL InvertRgn( HDC16 hdc, HRGN32 hrgn )
|
||||
BOOL16 FrameRgn16( HDC16 hdc, HRGN16 hrgn, HBRUSH16 hbrush,
|
||||
INT16 nWidth, INT16 nHeight )
|
||||
{
|
||||
HBRUSH16 prevBrush = SelectObject( hdc, GetStockObject(BLACK_BRUSH) );
|
||||
return FrameRgn32( hdc, hrgn, hbrush, nWidth, nHeight );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* FrameRgn32 (GDI32.105)
|
||||
*/
|
||||
BOOL32 FrameRgn32( HDC32 hdc, HRGN32 hrgn, HBRUSH32 hbrush,
|
||||
INT32 nWidth, INT32 nHeight )
|
||||
{
|
||||
HRGN32 tmp = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
if(!REGION_FrameRgn( tmp, hrgn, nWidth, nHeight )) return FALSE;
|
||||
FillRgn32( hdc, tmp, hbrush );
|
||||
DeleteObject32( tmp );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* InvertRgn16 (GDI.42)
|
||||
*/
|
||||
BOOL16 InvertRgn16( HDC16 hdc, HRGN16 hrgn )
|
||||
{
|
||||
return InvertRgn32( hdc, hrgn );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* InvertRgn32 (GDI32.246)
|
||||
*/
|
||||
BOOL32 InvertRgn32( HDC32 hdc, HRGN32 hrgn )
|
||||
{
|
||||
HBRUSH32 prevBrush = SelectObject32( hdc, GetStockObject32(BLACK_BRUSH) );
|
||||
WORD prevROP = SetROP2( hdc, R2_NOT );
|
||||
BOOL retval = PaintRgn( hdc, hrgn );
|
||||
SelectObject( hdc, prevBrush );
|
||||
BOOL32 retval = PaintRgn32( hdc, hrgn );
|
||||
SelectObject32( hdc, prevBrush );
|
||||
SetROP2( hdc, prevROP );
|
||||
return retval;
|
||||
}
|
||||
|
@ -704,9 +832,21 @@ BOOL InvertRgn( HDC16 hdc, HRGN32 hrgn )
|
|||
*/
|
||||
void DrawFocusRect16( HDC16 hdc, const RECT16* rc )
|
||||
{
|
||||
HPEN16 hOldPen;
|
||||
int oldDrawMode, oldBkMode;
|
||||
int left, top, right, bottom;
|
||||
RECT32 rect32;
|
||||
CONV_RECT16TO32( rc, &rect32 );
|
||||
return DrawFocusRect32( hdc, &rect32 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DrawFocusRect32 (USER32.155)
|
||||
*/
|
||||
void DrawFocusRect32( HDC32 hdc, const RECT32* rc )
|
||||
{
|
||||
HPEN32 hOldPen;
|
||||
INT32 oldDrawMode, oldBkMode;
|
||||
INT32 left, top, right, bottom;
|
||||
|
||||
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC );
|
||||
if (!dc) return;
|
||||
|
||||
|
@ -715,7 +855,7 @@ void DrawFocusRect16( HDC16 hdc, const RECT16* rc )
|
|||
right = XLPTODP( dc, rc->right );
|
||||
bottom = YLPTODP( dc, rc->bottom );
|
||||
|
||||
hOldPen = (HPEN16)SelectObject(hdc, sysColorObjects.hpenWindowText );
|
||||
hOldPen = SelectObject32( hdc, sysColorObjects.hpenWindowText );
|
||||
oldDrawMode = SetROP2(hdc, R2_XORPEN);
|
||||
oldBkMode = SetBkMode(hdc, TRANSPARENT);
|
||||
|
||||
|
@ -729,18 +869,7 @@ void DrawFocusRect16( HDC16 hdc, const RECT16* rc )
|
|||
|
||||
SetBkMode(hdc, oldBkMode);
|
||||
SetROP2(hdc, oldDrawMode);
|
||||
SelectObject(hdc, hOldPen);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* DrawFocusRect32 (USER32.155)
|
||||
*/
|
||||
void DrawFocusRect32( HDC32 hdc, const RECT32* rect )
|
||||
{
|
||||
RECT16 rect16;
|
||||
CONV_RECT32TO16( rect, &rect16 );
|
||||
return DrawFocusRect16( (HDC16)hdc, &rect16 );
|
||||
SelectObject32(hdc, hOldPen);
|
||||
}
|
||||
|
||||
|
||||
|
@ -786,10 +915,10 @@ BOOL32 GRAPH_DrawBitmap( HDC32 hdc, HBITMAP32 hbitmap, int xdest, int ydest,
|
|||
void GRAPH_DrawReliefRect( HDC32 hdc, const RECT32 *rect, INT32 highlight_size,
|
||||
INT32 shadow_size, BOOL32 pressed )
|
||||
{
|
||||
HBRUSH16 hbrushOld;
|
||||
int i;
|
||||
HBRUSH32 hbrushOld;
|
||||
INT32 i;
|
||||
|
||||
hbrushOld = SelectObject( hdc, pressed ? sysColorObjects.hbrushBtnShadow :
|
||||
hbrushOld = SelectObject32(hdc, pressed ? sysColorObjects.hbrushBtnShadow :
|
||||
sysColorObjects.hbrushBtnHighlight );
|
||||
for (i = 0; i < highlight_size; i++)
|
||||
{
|
||||
|
@ -799,8 +928,8 @@ void GRAPH_DrawReliefRect( HDC32 hdc, const RECT32 *rect, INT32 highlight_size,
|
|||
rect->right - rect->left - i, 1, PATCOPY );
|
||||
}
|
||||
|
||||
SelectObject( hdc, pressed ? sysColorObjects.hbrushBtnHighlight :
|
||||
sysColorObjects.hbrushBtnShadow );
|
||||
SelectObject32( hdc, pressed ? sysColorObjects.hbrushBtnHighlight :
|
||||
sysColorObjects.hbrushBtnShadow );
|
||||
for (i = 0; i < shadow_size; i++)
|
||||
{
|
||||
PatBlt( hdc, rect->right - i - 1, rect->top + i,
|
||||
|
@ -809,7 +938,7 @@ void GRAPH_DrawReliefRect( HDC32 hdc, const RECT32 *rect, INT32 highlight_size,
|
|||
rect->right - rect->left - i, 1, PATCOPY );
|
||||
}
|
||||
|
||||
SelectObject( hdc, hbrushOld );
|
||||
SelectObject32( hdc, hbrushOld );
|
||||
}
|
||||
|
||||
|
||||
|
@ -896,8 +1025,8 @@ BOOL16 PolyPolygon16( HDC16 hdc, LPPOINT16 pt, LPINT16 counts, UINT16 polygons)
|
|||
/* really correct either, it doesn't matter much... */
|
||||
/* At least the outline will be correct :-) */
|
||||
hrgn = CreatePolyPolygonRgn16( pt, counts, polygons, dc->w.polyFillMode );
|
||||
PaintRgn( hdc, hrgn );
|
||||
DeleteObject( hrgn );
|
||||
PaintRgn32( hdc, hrgn );
|
||||
DeleteObject32( hrgn );
|
||||
|
||||
/* Draw the outline of the polygons */
|
||||
|
||||
|
@ -1001,7 +1130,7 @@ static void GRAPH_InternalFloodFill( XImage *image, DC *dc,
|
|||
*
|
||||
* Main flood-fill routine.
|
||||
*/
|
||||
static BOOL16 GRAPH_DoFloodFill( DC *dc, RECT16 *rect, INT32 x, INT32 y,
|
||||
static BOOL32 GRAPH_DoFloodFill( DC *dc, RECT32 *rect, INT32 x, INT32 y,
|
||||
COLORREF color, UINT32 fillType )
|
||||
{
|
||||
XImage *image;
|
||||
|
@ -1031,12 +1160,22 @@ static BOOL16 GRAPH_DoFloodFill( DC *dc, RECT16 *rect, INT32 x, INT32 y,
|
|||
|
||||
|
||||
/**********************************************************************
|
||||
* ExtFloodFill (GDI.372) (GDI32.96)
|
||||
* ExtFloodFill16 (GDI.372)
|
||||
*/
|
||||
BOOL16 ExtFloodFill( HDC32 hdc, INT32 x, INT32 y, COLORREF color,
|
||||
UINT32 fillType )
|
||||
BOOL16 ExtFloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color,
|
||||
UINT16 fillType )
|
||||
{
|
||||
RECT16 rect;
|
||||
return ExtFloodFill32( hdc, x, y, color, fillType );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* ExtFloodFill32 (GDI32.96)
|
||||
*/
|
||||
BOOL32 ExtFloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color,
|
||||
UINT32 fillType )
|
||||
{
|
||||
RECT32 rect;
|
||||
DC *dc;
|
||||
|
||||
dprintf_graphics( stddeb, "ExtFloodFill %04x %d,%d %06lx %d\n",
|
||||
|
@ -1051,8 +1190,8 @@ BOOL16 ExtFloodFill( HDC32 hdc, INT32 x, INT32 y, COLORREF color,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
if (!PtVisible( hdc, x, y )) return FALSE;
|
||||
if (GetRgnBox16( dc->w.hGCClipRgn, &rect ) == ERROR) return FALSE;
|
||||
if (!PtVisible32( hdc, x, y )) return FALSE;
|
||||
if (GetRgnBox32( dc->w.hGCClipRgn, &rect ) == ERROR) return FALSE;
|
||||
|
||||
return CallTo32_LargeStack( (int(*)())GRAPH_DoFloodFill, 6,
|
||||
dc, &rect, x, y, color, fillType );
|
||||
|
@ -1060,11 +1199,20 @@ BOOL16 ExtFloodFill( HDC32 hdc, INT32 x, INT32 y, COLORREF color,
|
|||
|
||||
|
||||
/**********************************************************************
|
||||
* FloodFill (GDI.25) (GDI32.104)
|
||||
* FloodFill16 (GDI.25)
|
||||
*/
|
||||
BOOL16 FloodFill( HDC32 hdc, INT32 x, INT32 y, COLORREF color )
|
||||
BOOL16 FloodFill16( HDC16 hdc, INT16 x, INT16 y, COLORREF color )
|
||||
{
|
||||
return ExtFloodFill( hdc, x, y, color, FLOODFILLBORDER );
|
||||
return ExtFloodFill32( hdc, x, y, color, FLOODFILLBORDER );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* FloodFill32 (GDI32.104)
|
||||
*/
|
||||
BOOL32 FloodFill32( HDC32 hdc, INT32 x, INT32 y, COLORREF color )
|
||||
{
|
||||
return ExtFloodFill32( hdc, x, y, color, FLOODFILLBORDER );
|
||||
}
|
||||
|
||||
|
||||
|
@ -1088,7 +1236,7 @@ BOOL16 DrawEdge16( HDC16 hdc, LPRECT16 rc, UINT16 edge, UINT16 flags )
|
|||
*/
|
||||
BOOL32 DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags )
|
||||
{
|
||||
HBRUSH16 hbrushOld;
|
||||
HBRUSH32 hbrushOld;
|
||||
|
||||
if (flags >= BF_DIAGONAL)
|
||||
fprintf( stderr, "DrawEdge: unsupported flags %04x\n", flags );
|
||||
|
@ -1099,7 +1247,7 @@ BOOL32 DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags )
|
|||
|
||||
/* First do all the raised edges */
|
||||
|
||||
SelectObject( hdc, sysColorObjects.hbrushBtnHighlight );
|
||||
hbrushOld = SelectObject32( hdc, sysColorObjects.hbrushBtnHighlight );
|
||||
if (edge & BDR_RAISEDOUTER)
|
||||
{
|
||||
if (flags & BF_LEFT) PatBlt( hdc, rc->left, rc->top,
|
||||
|
@ -1131,7 +1279,7 @@ BOOL32 DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags )
|
|||
|
||||
/* Then do all the sunken edges */
|
||||
|
||||
hbrushOld = SelectObject( hdc, sysColorObjects.hbrushBtnShadow );
|
||||
SelectObject32( hdc, sysColorObjects.hbrushBtnShadow );
|
||||
if (edge & BDR_SUNKENOUTER)
|
||||
{
|
||||
if (flags & BF_LEFT) PatBlt( hdc, rc->left, rc->top,
|
||||
|
@ -1161,7 +1309,7 @@ BOOL32 DrawEdge32( HDC32 hdc, LPRECT32 rc, UINT32 edge, UINT32 flags )
|
|||
rc->right - rc->left - 2, 1, PATCOPY );
|
||||
}
|
||||
|
||||
SelectObject( hdc, hbrushOld );
|
||||
SelectObject32( hdc, hbrushOld );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -326,7 +326,7 @@ FARPROC16 SetWindowsHook16( INT16 id, HOOKPROC16 proc )
|
|||
*/
|
||||
BOOL16 UnhookWindowsHook16( INT16 id, HOOKPROC16 proc )
|
||||
{
|
||||
HANDLE16 hook = HOOK_GetHook( id , 0 );
|
||||
HANDLE16 hook = HOOK_GetHook( id, GetTaskQueue(0) );
|
||||
|
||||
dprintf_hook( stddeb, "UnhookWindowsHook: %d %08lx\n", id, (DWORD)proc );
|
||||
|
||||
|
@ -380,7 +380,7 @@ HHOOK SetWindowsHookEx16( INT16 id, HOOKPROC16 proc, HINSTANCE16 hInst,
|
|||
|
||||
|
||||
/***********************************************************************
|
||||
* UnhookWindowHookEx16 (USER.292)
|
||||
* UnhookWindowsHookEx16 (USER.292)
|
||||
*/
|
||||
BOOL16 UnhookWindowsHookEx16( HHOOK hhook )
|
||||
{
|
||||
|
|
|
@ -668,17 +668,17 @@ HBITMAP16 CreateMDIMenuBitmap(void)
|
|||
HBITMAP16 hbClose = LoadBitmap16(0, MAKEINTRESOURCE(OBM_CLOSE) );
|
||||
HBITMAP16 hbCopy,hb_src,hb_dest;
|
||||
|
||||
hb_src = SelectObject(hDCSrc,hbClose);
|
||||
hb_src = SelectObject32(hDCSrc,hbClose);
|
||||
hbCopy = CreateCompatibleBitmap(hDCSrc,SYSMETRICS_CXSIZE, SYSMETRICS_CYSIZE);
|
||||
hb_dest = SelectObject(hDCDest,hbCopy);
|
||||
hb_dest = SelectObject32(hDCDest,hbCopy);
|
||||
|
||||
BitBlt(hDCDest, 0, 0, SYSMETRICS_CXSIZE, SYSMETRICS_CYSIZE,
|
||||
hDCSrc, SYSMETRICS_CXSIZE, 0, SRCCOPY);
|
||||
|
||||
SelectObject(hDCSrc,hb_src);
|
||||
SelectObject(hDCDest,hb_dest);
|
||||
SelectObject32(hDCSrc,hb_src);
|
||||
SelectObject32(hDCDest,hb_dest);
|
||||
|
||||
DeleteObject(hbClose);
|
||||
DeleteObject32(hbClose);
|
||||
|
||||
DeleteDC(hDCDest);
|
||||
DeleteDC(hDCSrc);
|
||||
|
|
|
@ -152,12 +152,11 @@ BOOL32 AdjustWindowRectEx32( LPRECT32 rect, DWORD style,
|
|||
*
|
||||
* Get the minimized and maximized information for a window.
|
||||
*/
|
||||
void NC_GetMinMaxInfo( HWND hwnd, POINT16 *maxSize, POINT16 *maxPos,
|
||||
void NC_GetMinMaxInfo( WND *wndPtr, POINT16 *maxSize, POINT16 *maxPos,
|
||||
POINT16 *minTrack, POINT16 *maxTrack )
|
||||
{
|
||||
MINMAXINFO16 *MinMax;
|
||||
short xinc, yinc;
|
||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||
|
||||
if (!(MinMax = SEGPTR_NEW(MINMAXINFO16))) return;
|
||||
|
||||
|
@ -204,7 +203,8 @@ void NC_GetMinMaxInfo( HWND hwnd, POINT16 *maxSize, POINT16 *maxPos,
|
|||
MinMax->ptMaxPosition.y = -yinc;
|
||||
}
|
||||
|
||||
SendMessage16( hwnd, WM_GETMINMAXINFO, 0, (LPARAM)SEGPTR_GET(MinMax) );
|
||||
SendMessage16( wndPtr->hwndSelf, WM_GETMINMAXINFO, 0,
|
||||
(LPARAM)SEGPTR_GET(MinMax) );
|
||||
|
||||
/* Some sanity checks */
|
||||
|
||||
|
@ -299,7 +299,7 @@ static void NC_GetInsideRect( HWND hwnd, RECT16 *rect )
|
|||
*
|
||||
* Handle a WM_NCHITTEST message. Called from DefWindowProc().
|
||||
*/
|
||||
LONG NC_HandleNCHitTest( HWND hwnd, POINT16 pt )
|
||||
LONG NC_HandleNCHitTest( HWND32 hwnd, POINT16 pt )
|
||||
{
|
||||
RECT16 rect;
|
||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||
|
@ -442,11 +442,11 @@ void NC_DrawSysButton( HWND hwnd, HDC16 hdc, BOOL down )
|
|||
{
|
||||
NC_GetInsideRect( hwnd, &rect );
|
||||
hdcMem = CreateCompatibleDC( hdc );
|
||||
hbitmap = SelectObject( hdcMem, hbitmapClose );
|
||||
hbitmap = SelectObject32( hdcMem, hbitmapClose );
|
||||
BitBlt( hdc, rect.left, rect.top, SYSMETRICS_CXSIZE, SYSMETRICS_CYSIZE,
|
||||
hdcMem, (wndPtr->dwStyle & WS_CHILD) ? SYSMETRICS_CXSIZE : 0, 0,
|
||||
down ? NOTSRCCOPY : SRCCOPY );
|
||||
SelectObject( hdcMem, hbitmap );
|
||||
SelectObject32( hdcMem, hbitmap );
|
||||
DeleteDC( hdcMem );
|
||||
}
|
||||
}
|
||||
|
@ -505,15 +505,15 @@ static void NC_DrawFrame( HDC16 hdc, RECT16 *rect, BOOL dlgFrame, BOOL active )
|
|||
{
|
||||
width = SYSMETRICS_CXDLGFRAME - 1;
|
||||
height = SYSMETRICS_CYDLGFRAME - 1;
|
||||
SelectObject( hdc, active ? sysColorObjects.hbrushActiveCaption :
|
||||
sysColorObjects.hbrushInactiveCaption );
|
||||
SelectObject32( hdc, active ? sysColorObjects.hbrushActiveCaption :
|
||||
sysColorObjects.hbrushInactiveCaption );
|
||||
}
|
||||
else
|
||||
{
|
||||
width = SYSMETRICS_CXFRAME - 1;
|
||||
height = SYSMETRICS_CYFRAME - 1;
|
||||
SelectObject( hdc, active ? sysColorObjects.hbrushActiveBorder :
|
||||
sysColorObjects.hbrushInactiveBorder );
|
||||
SelectObject32( hdc, active ? sysColorObjects.hbrushActiveBorder :
|
||||
sysColorObjects.hbrushInactiveBorder );
|
||||
}
|
||||
|
||||
/* Draw frame */
|
||||
|
@ -534,35 +534,35 @@ static void NC_DrawFrame( HDC16 hdc, RECT16 *rect, BOOL dlgFrame, BOOL active )
|
|||
|
||||
/* Draw inner rectangle */
|
||||
MoveTo( hdc, rect->left+width, rect->top+height );
|
||||
LineTo( hdc, rect->right-width-1, rect->top+height );
|
||||
LineTo( hdc, rect->right-width-1, rect->bottom-height-1 );
|
||||
LineTo( hdc, rect->left+width, rect->bottom-height-1 );
|
||||
LineTo( hdc, rect->left+width, rect->top+height );
|
||||
LineTo32( hdc, rect->right-width-1, rect->top+height );
|
||||
LineTo32( hdc, rect->right-width-1, rect->bottom-height-1 );
|
||||
LineTo32( hdc, rect->left+width, rect->bottom-height-1 );
|
||||
LineTo32( hdc, rect->left+width, rect->top+height );
|
||||
|
||||
/* Draw the decorations */
|
||||
tmp = rect->top + SYSMETRICS_CYFRAME + SYSMETRICS_CYSIZE;
|
||||
MoveTo( hdc, rect->left, tmp);
|
||||
LineTo( hdc, rect->left+width, tmp );
|
||||
LineTo32( hdc, rect->left+width, tmp );
|
||||
MoveTo( hdc, rect->right-width-1, tmp );
|
||||
LineTo( hdc, rect->right-1, tmp );
|
||||
LineTo32( hdc, rect->right-1, tmp );
|
||||
|
||||
tmp = rect->bottom - 1 - SYSMETRICS_CYFRAME - SYSMETRICS_CYSIZE;
|
||||
MoveTo( hdc, rect->left, tmp );
|
||||
LineTo( hdc, rect->left+width, tmp );
|
||||
LineTo32( hdc, rect->left+width, tmp );
|
||||
MoveTo( hdc, rect->right-width-1, tmp );
|
||||
LineTo( hdc, rect->right-1, tmp );
|
||||
LineTo32( hdc, rect->right-1, tmp );
|
||||
|
||||
tmp = rect->left + SYSMETRICS_CXFRAME + SYSMETRICS_CXSIZE;
|
||||
MoveTo( hdc, tmp, rect->top );
|
||||
LineTo( hdc, tmp, rect->top+height );
|
||||
LineTo32( hdc, tmp, rect->top+height );
|
||||
MoveTo( hdc, tmp, rect->bottom-height-1 );
|
||||
LineTo( hdc, tmp, rect->bottom-1 );
|
||||
LineTo32( hdc, tmp, rect->bottom-1 );
|
||||
|
||||
tmp = rect->right - 1 - SYSMETRICS_CXFRAME - SYSMETRICS_CYSIZE;
|
||||
MoveTo( hdc, tmp, rect->top );
|
||||
LineTo( hdc, tmp, rect->top+height );
|
||||
LineTo32( hdc, tmp, rect->top+height );
|
||||
MoveTo( hdc, tmp, rect->bottom-height-1 );
|
||||
LineTo( hdc, tmp, rect->bottom-1 );
|
||||
LineTo32( hdc, tmp, rect->bottom-1 );
|
||||
|
||||
InflateRect16( rect, -width-1, -height-1 );
|
||||
}
|
||||
|
@ -577,7 +577,7 @@ static void NC_DrawMovingFrame( HDC16 hdc, RECT16 *rect, BOOL thickframe )
|
|||
{
|
||||
if (thickframe)
|
||||
{
|
||||
SelectObject( hdc, GetStockObject( GRAY_BRUSH ) );
|
||||
SelectObject32( hdc, GetStockObject32( GRAY_BRUSH ) );
|
||||
PatBlt( hdc, rect->left, rect->top,
|
||||
rect->right - rect->left - SYSMETRICS_CXFRAME,
|
||||
SYSMETRICS_CYFRAME, PATINVERT );
|
||||
|
@ -623,24 +623,24 @@ static void NC_DrawCaption( HDC16 hdc, RECT16 *rect, HWND hwnd,
|
|||
|
||||
if (wndPtr->dwExStyle & WS_EX_DLGMODALFRAME)
|
||||
{
|
||||
HBRUSH16 hbrushOld = SelectObject( hdc, sysColorObjects.hbrushWindow );
|
||||
HBRUSH32 hbrushOld = SelectObject32(hdc, sysColorObjects.hbrushWindow);
|
||||
PatBlt( hdc, r.left, r.top, 1, r.bottom-r.top+1,PATCOPY );
|
||||
PatBlt( hdc, r.right-1, r.top, 1, r.bottom-r.top+1, PATCOPY );
|
||||
PatBlt( hdc, r.left, r.top-1, r.right-r.left, 1, PATCOPY );
|
||||
r.left++;
|
||||
r.right--;
|
||||
SelectObject( hdc, hbrushOld );
|
||||
SelectObject32( hdc, hbrushOld );
|
||||
}
|
||||
|
||||
MoveTo( hdc, r.left, r.bottom );
|
||||
LineTo( hdc, r.right-1, r.bottom );
|
||||
LineTo32( hdc, r.right-1, r.bottom );
|
||||
|
||||
if (style & WS_SYSMENU)
|
||||
{
|
||||
NC_DrawSysButton( hwnd, hdc, FALSE );
|
||||
r.left += SYSMETRICS_CXSIZE + 1;
|
||||
MoveTo( hdc, r.left - 1, r.top );
|
||||
LineTo( hdc, r.left - 1, r.bottom );
|
||||
LineTo32( hdc, r.left - 1, r.bottom );
|
||||
}
|
||||
if (style & WS_MAXIMIZEBOX)
|
||||
{
|
||||
|
@ -672,11 +672,11 @@ static void NC_DrawCaption( HDC16 hdc, RECT16 *rect, HWND hwnd,
|
|||
*
|
||||
* Paint the non-client area. clip is currently unused.
|
||||
*/
|
||||
void NC_DoNCPaint( HWND hwnd, HRGN32 clip, BOOL suppress_menupaint )
|
||||
void NC_DoNCPaint( HWND32 hwnd, HRGN32 clip, BOOL32 suppress_menupaint )
|
||||
{
|
||||
HDC32 hdc;
|
||||
RECT16 rect;
|
||||
BOOL active;
|
||||
BOOL32 active;
|
||||
|
||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||
|
||||
|
@ -703,7 +703,7 @@ void NC_DoNCPaint( HWND hwnd, HRGN32 clip, BOOL suppress_menupaint )
|
|||
rect.right = wndPtr->rectWindow.right - wndPtr->rectWindow.left;
|
||||
rect.bottom = wndPtr->rectWindow.bottom - wndPtr->rectWindow.top;
|
||||
|
||||
SelectObject( hdc, sysColorObjects.hpenWindowFrame );
|
||||
SelectObject32( hdc, sysColorObjects.hpenWindowFrame );
|
||||
|
||||
if (!(wndPtr->flags & WIN_MANAGED))
|
||||
{
|
||||
|
@ -711,10 +711,10 @@ void NC_DoNCPaint( HWND hwnd, HRGN32 clip, BOOL suppress_menupaint )
|
|||
(wndPtr->dwExStyle & WS_EX_DLGMODALFRAME))
|
||||
{
|
||||
MoveTo( hdc, 0, 0 );
|
||||
LineTo( hdc, rect.right-1, 0 );
|
||||
LineTo( hdc, rect.right-1, rect.bottom-1 );
|
||||
LineTo( hdc, 0, rect.bottom-1 );
|
||||
LineTo( hdc, 0, 0 );
|
||||
LineTo32( hdc, rect.right-1, 0 );
|
||||
LineTo32( hdc, rect.right-1, rect.bottom-1 );
|
||||
LineTo32( hdc, 0, rect.bottom-1 );
|
||||
LineTo32( hdc, 0, 0 );
|
||||
InflateRect16( &rect, -1, -1 );
|
||||
}
|
||||
|
||||
|
@ -766,7 +766,7 @@ void NC_DoNCPaint( HWND hwnd, HRGN32 clip, BOOL suppress_menupaint )
|
|||
*
|
||||
* Handle a WM_NCPAINT message. Called from DefWindowProc().
|
||||
*/
|
||||
LONG NC_HandleNCPaint( HWND hwnd , HRGN32 clip)
|
||||
LONG NC_HandleNCPaint( HWND32 hwnd , HRGN32 clip)
|
||||
{
|
||||
NC_DoNCPaint( hwnd, clip, FALSE );
|
||||
return 0;
|
||||
|
@ -804,9 +804,9 @@ LONG NC_HandleNCActivate( WND *wndPtr, WPARAM16 wParam )
|
|||
*
|
||||
* Handle a WM_SETCURSOR message. Called from DefWindowProc().
|
||||
*/
|
||||
LONG NC_HandleSetCursor( HWND hwnd, WPARAM16 wParam, LPARAM lParam )
|
||||
LONG NC_HandleSetCursor( HWND32 hwnd, WPARAM16 wParam, LPARAM lParam )
|
||||
{
|
||||
if (hwnd != (HWND)wParam) return 0; /* Don't set the cursor for child windows */
|
||||
if (hwnd != (HWND32)wParam) return 0; /* Don't set the cursor for child windows */
|
||||
|
||||
switch(LOWORD(lParam))
|
||||
{
|
||||
|
@ -1029,7 +1029,7 @@ static void NC_DoSizeMove( HWND hwnd, WORD wParam, POINT16 pt )
|
|||
|
||||
/* Get min/max info */
|
||||
|
||||
NC_GetMinMaxInfo( hwnd, NULL, NULL, &minTrack, &maxTrack );
|
||||
NC_GetMinMaxInfo( wndPtr, NULL, NULL, &minTrack, &maxTrack );
|
||||
sizingRect = wndPtr->rectWindow;
|
||||
if (wndPtr->dwStyle & WS_CHILD)
|
||||
GetClientRect16( wndPtr->parent->hwndSelf, &mouseRect );
|
||||
|
@ -1278,7 +1278,7 @@ static void NC_TrackScrollBar( HWND32 hwnd, WPARAM32 wParam, POINT32 pt )
|
|||
*
|
||||
* Handle a WM_NCLBUTTONDOWN message. Called from DefWindowProc().
|
||||
*/
|
||||
LONG NC_HandleNCLButtonDown( HWND hwnd, WPARAM16 wParam, LPARAM lParam )
|
||||
LONG NC_HandleNCLButtonDown( HWND32 hwnd, WPARAM16 wParam, LPARAM lParam )
|
||||
{
|
||||
HDC32 hdc;
|
||||
|
||||
|
@ -1370,7 +1370,7 @@ LONG NC_HandleNCLButtonDblClk( WND *pWnd, WPARAM16 wParam, LPARAM lParam )
|
|||
*
|
||||
* Handle a WM_SYSCOMMAND message. Called from DefWindowProc().
|
||||
*/
|
||||
LONG NC_HandleSysCommand( HWND hwnd, WPARAM16 wParam, POINT16 pt )
|
||||
LONG NC_HandleSysCommand( HWND32 hwnd, WPARAM16 wParam, POINT16 pt )
|
||||
{
|
||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||
POINT32 pt32;
|
||||
|
|
|
@ -41,29 +41,30 @@ void WIN_UpdateNCArea(WND* wnd, BOOL bUpdate)
|
|||
{
|
||||
ClientToScreen16(wnd->hwndSelf, &pt);
|
||||
|
||||
hClip = CreateRectRgn( 0, 0, 0, 0 );
|
||||
if (!CombineRgn(hClip, wnd->hrgnUpdate, 0, RGN_COPY) )
|
||||
hClip = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
if (!CombineRgn32( hClip, wnd->hrgnUpdate, 0, RGN_COPY ))
|
||||
{
|
||||
DeleteObject(hClip);
|
||||
DeleteObject32(hClip);
|
||||
hClip = 1;
|
||||
}
|
||||
else
|
||||
OffsetRgn(hClip, pt.x, pt.y);
|
||||
OffsetRgn32( hClip, pt.x, pt.y );
|
||||
|
||||
if (bUpdate)
|
||||
{
|
||||
/* exclude non-client area from update region */
|
||||
HRGN32 hrgn = CreateRectRgn(0, 0, wnd->rectClient.right - wnd->rectClient.left,
|
||||
wnd->rectClient.bottom - wnd->rectClient.top);
|
||||
HRGN32 hrgn = CreateRectRgn32( 0, 0,
|
||||
wnd->rectClient.right - wnd->rectClient.left,
|
||||
wnd->rectClient.bottom - wnd->rectClient.top);
|
||||
|
||||
if (hrgn && (CombineRgn(wnd->hrgnUpdate, wnd->hrgnUpdate,
|
||||
hrgn, RGN_AND) == NULLREGION))
|
||||
if (hrgn && (CombineRgn32( wnd->hrgnUpdate, wnd->hrgnUpdate,
|
||||
hrgn, RGN_AND) == NULLREGION))
|
||||
{
|
||||
DeleteObject(wnd->hrgnUpdate);
|
||||
DeleteObject32( wnd->hrgnUpdate );
|
||||
wnd->hrgnUpdate = 1;
|
||||
}
|
||||
|
||||
DeleteObject( hrgn );
|
||||
DeleteObject32( hrgn );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -73,13 +74,13 @@ void WIN_UpdateNCArea(WND* wnd, BOOL bUpdate)
|
|||
!(wnd->flags & WIN_NCACTIVATED))
|
||||
{
|
||||
wnd->flags |= WIN_NCACTIVATED;
|
||||
if( hClip > 1) DeleteObject(hClip);
|
||||
if( hClip > 1) DeleteObject32( hClip );
|
||||
hClip = 1;
|
||||
}
|
||||
|
||||
if (hClip) SendMessage16( wnd->hwndSelf, WM_NCPAINT, hClip, 0L );
|
||||
|
||||
if (hClip > 1) DeleteObject( hClip );
|
||||
if (hClip > 1) DeleteObject32( hClip );
|
||||
}
|
||||
|
||||
|
||||
|
@ -280,8 +281,9 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
if ((hrgn = hrgnUpdate) == 0)
|
||||
hrgn = CreateRectRgnIndirect32( rectUpdate ? rectUpdate :
|
||||
&rectClient );
|
||||
rgnNotEmpty = CombineRgn( wndPtr->hrgnUpdate, wndPtr->hrgnUpdate, hrgn, RGN_OR );
|
||||
if (!hrgnUpdate) DeleteObject( hrgn );
|
||||
rgnNotEmpty = CombineRgn32( wndPtr->hrgnUpdate, wndPtr->hrgnUpdate,
|
||||
hrgn, RGN_OR );
|
||||
if (!hrgnUpdate) DeleteObject32( hrgn );
|
||||
}
|
||||
else /* No update region yet */
|
||||
{
|
||||
|
@ -289,8 +291,9 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
QUEUE_IncPaintCount( wndPtr->hmemTaskQ );
|
||||
if (hrgnUpdate)
|
||||
{
|
||||
wndPtr->hrgnUpdate = CreateRectRgn( 0, 0, 0, 0 );
|
||||
rgnNotEmpty = CombineRgn( wndPtr->hrgnUpdate, hrgnUpdate, 0, RGN_COPY );
|
||||
wndPtr->hrgnUpdate = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
rgnNotEmpty = CombineRgn32( wndPtr->hrgnUpdate, hrgnUpdate,
|
||||
0, RGN_COPY );
|
||||
}
|
||||
else wndPtr->hrgnUpdate = CreateRectRgnIndirect32( rectUpdate ?
|
||||
rectUpdate : &rectClient );
|
||||
|
@ -302,7 +305,7 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
if ( rgnNotEmpty == NULLREGION )
|
||||
{
|
||||
wndPtr->flags &= ~WIN_NEEDS_ERASEBKGND;
|
||||
DeleteObject(wndPtr->hrgnUpdate);
|
||||
DeleteObject32( wndPtr->hrgnUpdate );
|
||||
wndPtr->hrgnUpdate=0;
|
||||
if (!(wndPtr->flags & WIN_INTERNAL_PAINT))
|
||||
QUEUE_DecPaintCount( wndPtr->hmemTaskQ );
|
||||
|
@ -319,20 +322,20 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
if (!hrgnUpdate && !rectUpdate)
|
||||
{
|
||||
/* Special case: validate everything */
|
||||
DeleteObject( wndPtr->hrgnUpdate );
|
||||
DeleteObject32( wndPtr->hrgnUpdate );
|
||||
wndPtr->hrgnUpdate = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((hrgn = hrgnUpdate) == 0)
|
||||
hrgn = CreateRectRgnIndirect32( rectUpdate );
|
||||
if (CombineRgn( wndPtr->hrgnUpdate, wndPtr->hrgnUpdate,
|
||||
hrgn, RGN_DIFF ) == NULLREGION)
|
||||
if (CombineRgn32( wndPtr->hrgnUpdate, wndPtr->hrgnUpdate,
|
||||
hrgn, RGN_DIFF ) == NULLREGION)
|
||||
{
|
||||
DeleteObject( wndPtr->hrgnUpdate );
|
||||
DeleteObject32( wndPtr->hrgnUpdate );
|
||||
wndPtr->hrgnUpdate = 0;
|
||||
}
|
||||
if (!hrgnUpdate) DeleteObject( hrgn );
|
||||
if (!hrgnUpdate) DeleteObject32( hrgn );
|
||||
}
|
||||
if (!wndPtr->hrgnUpdate) /* No more update region */
|
||||
if (!(wndPtr->flags & WIN_INTERNAL_PAINT))
|
||||
|
@ -394,13 +397,13 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
{
|
||||
if ( hrgnUpdate || rectUpdate )
|
||||
{
|
||||
if( !(hrgn = CreateRectRgn( 0, 0, 0, 0 )) ) return TRUE;
|
||||
if (!(hrgn = CreateRectRgn32( 0, 0, 0, 0 ))) return TRUE;
|
||||
if( !hrgnUpdate )
|
||||
{
|
||||
control |= (RDW_C_DELETEHRGN | RDW_C_USEHRGN);
|
||||
if( !(hrgnUpdate = CreateRectRgnIndirect32( rectUpdate )) )
|
||||
{
|
||||
DeleteObject( hrgn );
|
||||
DeleteObject32( hrgn );
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -409,7 +412,7 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
{
|
||||
if (wndPtr->class->style & CS_PARENTDC)
|
||||
{
|
||||
if (!CombineRgn( hrgn, hrgnUpdate, 0, RGN_COPY ))
|
||||
if (!CombineRgn32( hrgn, hrgnUpdate, 0, RGN_COPY ))
|
||||
continue;
|
||||
}
|
||||
else
|
||||
|
@ -417,22 +420,16 @@ BOOL32 PAINT_RedrawWindow( HWND32 hwnd, const RECT32 *rectUpdate,
|
|||
SetRectRgn( hrgn, wndPtr->rectWindow.left,
|
||||
wndPtr->rectWindow.top,
|
||||
wndPtr->rectWindow.right,
|
||||
wndPtr->rectWindow.bottom);
|
||||
if (!CombineRgn( hrgn, hrgn, hrgnUpdate, RGN_AND ))
|
||||
wndPtr->rectWindow.bottom );
|
||||
if (!CombineRgn32( hrgn, hrgn, hrgnUpdate, RGN_AND ))
|
||||
continue;
|
||||
}
|
||||
#if 0
|
||||
if( control & RDW_C_USEHRGN &&
|
||||
wndPtr->dwStyle & WS_CLIPSIBLINGS )
|
||||
CombineRgn( hrgnUpdate, hrgnUpdate, hrgn, RGN_DIFF );
|
||||
#endif
|
||||
|
||||
OffsetRgn( hrgn, -wndPtr->rectClient.left,
|
||||
-wndPtr->rectClient.top );
|
||||
OffsetRgn32( hrgn, -wndPtr->rectClient.left,
|
||||
-wndPtr->rectClient.top );
|
||||
PAINT_RedrawWindow( wndPtr->hwndSelf, NULL, hrgn, flags, RDW_C_USEHRGN );
|
||||
}
|
||||
DeleteObject( hrgn );
|
||||
if( control & RDW_C_DELETEHRGN ) DeleteObject( hrgnUpdate );
|
||||
DeleteObject32( hrgn );
|
||||
if (control & RDW_C_DELETEHRGN) DeleteObject32( hrgnUpdate );
|
||||
}
|
||||
else for (wndPtr = wndPtr->child; wndPtr; wndPtr = wndPtr->next)
|
||||
PAINT_RedrawWindow( wndPtr->hwndSelf, NULL, 0, flags, 0 );
|
||||
|
@ -564,10 +561,10 @@ BOOL32 GetUpdateRect32( HWND32 hwnd, LPRECT32 rect, BOOL32 erase )
|
|||
{
|
||||
if (wndPtr->hrgnUpdate > 1)
|
||||
{
|
||||
HRGN32 hrgn = CreateRectRgn( 0, 0, 0, 0 );
|
||||
HRGN32 hrgn = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
if (GetUpdateRgn( hwnd, hrgn, erase ) == ERROR) return FALSE;
|
||||
GetRgnBox32( hrgn, rect );
|
||||
DeleteObject( hrgn );
|
||||
DeleteObject32( hrgn );
|
||||
}
|
||||
else SetRectEmpty32( rect );
|
||||
}
|
||||
|
@ -580,7 +577,7 @@ BOOL32 GetUpdateRect32( HWND32 hwnd, LPRECT32 rect, BOOL32 erase )
|
|||
*/
|
||||
INT16 GetUpdateRgn( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase )
|
||||
{
|
||||
INT16 retval;
|
||||
INT32 retval;
|
||||
WND * wndPtr = WIN_FindWndPtr( hwnd );
|
||||
if (!wndPtr) return ERROR;
|
||||
|
||||
|
@ -589,7 +586,7 @@ INT16 GetUpdateRgn( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase )
|
|||
SetRectRgn( hrgn, 0, 0, 0, 0 );
|
||||
return NULLREGION;
|
||||
}
|
||||
retval = CombineRgn( hrgn, wndPtr->hrgnUpdate, 0, RGN_COPY );
|
||||
retval = CombineRgn32( hrgn, wndPtr->hrgnUpdate, 0, RGN_COPY );
|
||||
if (erase) RedrawWindow32( hwnd, NULL, 0, RDW_ERASENOW | RDW_NOCHILDREN );
|
||||
return retval;
|
||||
}
|
||||
|
@ -600,18 +597,18 @@ INT16 GetUpdateRgn( HWND32 hwnd, HRGN32 hrgn, BOOL32 erase )
|
|||
*/
|
||||
INT16 ExcludeUpdateRgn( HDC32 hdc, HWND32 hwnd )
|
||||
{
|
||||
INT16 retval = ERROR;
|
||||
INT32 retval = ERROR;
|
||||
HRGN32 hrgn;
|
||||
WND * wndPtr;
|
||||
|
||||
if (!(wndPtr = WIN_FindWndPtr( hwnd ))) return ERROR;
|
||||
if ((hrgn = CreateRectRgn( 0, 0, 0, 0 )) != 0)
|
||||
if ((hrgn = CreateRectRgn32( 0, 0, 0, 0 )) != 0)
|
||||
{
|
||||
retval = CombineRgn( hrgn, InquireVisRgn(hdc),
|
||||
(wndPtr->hrgnUpdate>1)?wndPtr->hrgnUpdate:0,
|
||||
(wndPtr->hrgnUpdate>1)?RGN_DIFF:RGN_COPY);
|
||||
retval = CombineRgn32( hrgn, InquireVisRgn(hdc),
|
||||
(wndPtr->hrgnUpdate>1) ? wndPtr->hrgnUpdate : 0,
|
||||
(wndPtr->hrgnUpdate>1) ? RGN_DIFF : RGN_COPY );
|
||||
if (retval) SelectVisRgn( hdc, hrgn );
|
||||
DeleteObject( hrgn );
|
||||
DeleteObject32( hrgn );
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ void ScrollWindow(HWND hwnd, short dx, short dy, LPRECT16 rect, LPRECT16 clipRec
|
|||
else hCaretWnd = 0;
|
||||
|
||||
hdc = GetDCEx32(hwnd, hrgnClip, DCX_CACHE | DCX_CLIPSIBLINGS);
|
||||
DeleteObject(hrgnClip);
|
||||
DeleteObject32( hrgnClip );
|
||||
}
|
||||
else /* clip children */
|
||||
{
|
||||
|
@ -71,7 +71,7 @@ void ScrollWindow(HWND hwnd, short dx, short dy, LPRECT16 rect, LPRECT16 clipRec
|
|||
else
|
||||
CopyRect16(&cliprc, clipRect);
|
||||
|
||||
hrgnUpdate = CreateRectRgn(0, 0, 0, 0);
|
||||
hrgnUpdate = CreateRectRgn32( 0, 0, 0, 0 );
|
||||
ScrollDC(hdc, dx, dy, &rc, &cliprc, hrgnUpdate, NULL);
|
||||
ReleaseDC32(hwnd, hdc);
|
||||
|
||||
|
@ -80,7 +80,7 @@ void ScrollWindow(HWND hwnd, short dx, short dy, LPRECT16 rect, LPRECT16 clipRec
|
|||
WND* wndPtr;
|
||||
|
||||
if( wndScroll->hrgnUpdate > 1 )
|
||||
OffsetRgn( wndScroll->hrgnUpdate, dx, dy );
|
||||
OffsetRgn32( wndScroll->hrgnUpdate, dx, dy );
|
||||
|
||||
for (wndPtr = wndScroll->child; wndPtr; wndPtr = wndPtr->next)
|
||||
SetWindowPos(wndPtr->hwndSelf, 0, wndPtr->rectWindow.left + dx,
|
||||
|
@ -92,7 +92,7 @@ void ScrollWindow(HWND hwnd, short dx, short dy, LPRECT16 rect, LPRECT16 clipRec
|
|||
PAINT_RedrawWindow( hwnd, NULL, hrgnUpdate, RDW_ALLCHILDREN |
|
||||
RDW_INVALIDATE | RDW_ERASE | RDW_ERASENOW, RDW_C_USEHRGN );
|
||||
|
||||
DeleteObject(hrgnUpdate);
|
||||
DeleteObject32( hrgnUpdate );
|
||||
if( hCaretWnd ) ShowCaret(hCaretWnd);
|
||||
}
|
||||
|
||||
|
@ -135,13 +135,14 @@ BOOL ScrollDC(HDC16 hdc, short dx, short dy, LPRECT16 rc, LPRECT16 cliprc,
|
|||
{
|
||||
/* save a copy and change cliprgn directly */
|
||||
|
||||
CombineRgn( hrgnScrollClip, hrgnClip, 0, RGN_COPY );
|
||||
SetRectRgn( hrgnClip, rectClip.left, rectClip.top, rectClip.right, rectClip.bottom );
|
||||
CombineRgn32( hrgnScrollClip, hrgnClip, 0, RGN_COPY );
|
||||
SetRectRgn( hrgnClip, rectClip.left, rectClip.top,
|
||||
rectClip.right, rectClip.bottom );
|
||||
|
||||
CLIPPING_UpdateGCRegion( dc );
|
||||
}
|
||||
else
|
||||
SelectClipRgn( hdc, hrgnScrollClip );
|
||||
SelectClipRgn16( hdc, hrgnScrollClip );
|
||||
|
||||
/* translate coordinates */
|
||||
|
||||
|
@ -179,15 +180,18 @@ BOOL ScrollDC(HDC16 hdc, short dx, short dy, LPRECT16 rc, LPRECT16 cliprc,
|
|||
|
||||
if (hrgnUpdate || rcUpdate)
|
||||
{
|
||||
HRGN32 hrgn1 = (hrgnUpdate)?hrgnUpdate:CreateRectRgn( 0,0,0,0 );
|
||||
HRGN32 hrgn1 = (hrgnUpdate) ? hrgnUpdate : CreateRectRgn32( 0,0,0,0 );
|
||||
|
||||
if( dc->w.hVisRgn )
|
||||
{
|
||||
CombineRgn( hrgn1, dc->w.hVisRgn, 0, RGN_COPY);
|
||||
CombineRgn( hrgn1, hrgn1, (hrgnClip)?hrgnClip:hrgnScrollClip, RGN_AND);
|
||||
OffsetRgn( hrgn1, dx, dy );
|
||||
CombineRgn( hrgn1, dc->w.hVisRgn, hrgn1, RGN_DIFF);
|
||||
RgnType = CombineRgn( hrgn1, hrgn1, (hrgnClip)?hrgnClip:hrgnScrollClip, RGN_AND);
|
||||
CombineRgn32( hrgn1, dc->w.hVisRgn, 0, RGN_COPY );
|
||||
CombineRgn32( hrgn1, hrgn1, hrgnClip ? hrgnClip : hrgnScrollClip,
|
||||
RGN_AND );
|
||||
OffsetRgn32( hrgn1, dx, dy );
|
||||
CombineRgn32( hrgn1, dc->w.hVisRgn, hrgn1, RGN_DIFF );
|
||||
RgnType = CombineRgn32( hrgn1, hrgn1,
|
||||
hrgnClip ? hrgnClip : hrgnScrollClip,
|
||||
RGN_AND );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -208,13 +212,13 @@ BOOL ScrollDC(HDC16 hdc, short dx, short dy, LPRECT16 rc, LPRECT16 cliprc,
|
|||
}
|
||||
|
||||
if (rcUpdate) GetRgnBox16( hrgn1, rcUpdate );
|
||||
if (!hrgnUpdate) DeleteObject( hrgn1 );
|
||||
if (!hrgnUpdate) DeleteObject32( hrgn1 );
|
||||
}
|
||||
|
||||
/* restore clipping region */
|
||||
|
||||
SelectClipRgn( hdc, (hrgnClip)?hrgnScrollClip:0 );
|
||||
DeleteObject( hrgnScrollClip );
|
||||
SelectClipRgn32( hdc, hrgnClip ? hrgnScrollClip : 0 );
|
||||
DeleteObject32( hrgnScrollClip );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -57,70 +57,70 @@ static void SYSCOLOR_SetColor( int index, COLORREF color )
|
|||
switch(index)
|
||||
{
|
||||
case COLOR_SCROLLBAR:
|
||||
DeleteObject( sysColorObjects.hbrushScrollbar );
|
||||
sysColorObjects.hbrushScrollbar = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushScrollbar );
|
||||
sysColorObjects.hbrushScrollbar = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_BACKGROUND:
|
||||
break;
|
||||
case COLOR_ACTIVECAPTION:
|
||||
DeleteObject( sysColorObjects.hbrushActiveCaption );
|
||||
sysColorObjects.hbrushActiveCaption = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushActiveCaption );
|
||||
sysColorObjects.hbrushActiveCaption = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_INACTIVECAPTION:
|
||||
DeleteObject( sysColorObjects.hbrushInactiveCaption );
|
||||
sysColorObjects.hbrushInactiveCaption = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushInactiveCaption );
|
||||
sysColorObjects.hbrushInactiveCaption = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_MENU:
|
||||
DeleteObject( sysColorObjects.hbrushMenu );
|
||||
sysColorObjects.hbrushMenu = CreateSolidBrush( MAKE_SOLID(color) );
|
||||
DeleteObject32( sysColorObjects.hbrushMenu );
|
||||
sysColorObjects.hbrushMenu = CreateSolidBrush32( MAKE_SOLID(color) );
|
||||
break;
|
||||
case COLOR_WINDOW:
|
||||
DeleteObject( sysColorObjects.hbrushWindow );
|
||||
sysColorObjects.hbrushWindow = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushWindow );
|
||||
sysColorObjects.hbrushWindow = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_WINDOWFRAME:
|
||||
DeleteObject( sysColorObjects.hpenWindowFrame );
|
||||
sysColorObjects.hpenWindowFrame = CreatePen( PS_SOLID, 1, color );
|
||||
DeleteObject32( sysColorObjects.hpenWindowFrame );
|
||||
sysColorObjects.hpenWindowFrame = CreatePen32( PS_SOLID, 1, color );
|
||||
break;
|
||||
case COLOR_MENUTEXT:
|
||||
break;
|
||||
case COLOR_WINDOWTEXT:
|
||||
DeleteObject( sysColorObjects.hpenWindowText );
|
||||
sysColorObjects.hpenWindowText = CreatePen( PS_DOT, 1, color );
|
||||
DeleteObject32( sysColorObjects.hpenWindowText );
|
||||
sysColorObjects.hpenWindowText = CreatePen32( PS_DOT, 1, color );
|
||||
break;
|
||||
case COLOR_CAPTIONTEXT:
|
||||
break;
|
||||
case COLOR_ACTIVEBORDER:
|
||||
DeleteObject( sysColorObjects.hbrushActiveBorder );
|
||||
sysColorObjects.hbrushActiveBorder = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushActiveBorder );
|
||||
sysColorObjects.hbrushActiveBorder = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_INACTIVEBORDER:
|
||||
DeleteObject( sysColorObjects.hbrushInactiveBorder );
|
||||
sysColorObjects.hbrushInactiveBorder = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushInactiveBorder );
|
||||
sysColorObjects.hbrushInactiveBorder = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_APPWORKSPACE:
|
||||
break;
|
||||
case COLOR_HIGHLIGHT:
|
||||
DeleteObject( sysColorObjects.hbrushHighlight );
|
||||
sysColorObjects.hbrushHighlight = CreateSolidBrush( MAKE_SOLID(color));
|
||||
DeleteObject32( sysColorObjects.hbrushHighlight );
|
||||
sysColorObjects.hbrushHighlight = CreateSolidBrush32(MAKE_SOLID(color));
|
||||
break;
|
||||
case COLOR_HIGHLIGHTTEXT:
|
||||
break;
|
||||
case COLOR_BTNFACE:
|
||||
DeleteObject( sysColorObjects.hbrushBtnFace );
|
||||
sysColorObjects.hbrushBtnFace = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushBtnFace );
|
||||
sysColorObjects.hbrushBtnFace = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_BTNSHADOW:
|
||||
DeleteObject( sysColorObjects.hbrushBtnShadow );
|
||||
sysColorObjects.hbrushBtnShadow = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushBtnShadow );
|
||||
sysColorObjects.hbrushBtnShadow = CreateSolidBrush32( color );
|
||||
break;
|
||||
case COLOR_GRAYTEXT:
|
||||
case COLOR_BTNTEXT:
|
||||
case COLOR_INACTIVECAPTIONTEXT:
|
||||
break;
|
||||
case COLOR_BTNHIGHLIGHT:
|
||||
DeleteObject( sysColorObjects.hbrushBtnHighlight );
|
||||
sysColorObjects.hbrushBtnHighlight = CreateSolidBrush( color );
|
||||
DeleteObject32( sysColorObjects.hbrushBtnHighlight );
|
||||
sysColorObjects.hbrushBtnHighlight = CreateSolidBrush32( color );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -342,7 +342,7 @@ static void WIN_DestroyWindow( WND* wndPtr )
|
|||
|
||||
if ((wndPtr->hrgnUpdate) || (wndPtr->flags & WIN_INTERNAL_PAINT))
|
||||
{
|
||||
if (wndPtr->hrgnUpdate) DeleteObject( wndPtr->hrgnUpdate );
|
||||
if (wndPtr->hrgnUpdate) DeleteObject32( wndPtr->hrgnUpdate );
|
||||
QUEUE_DecPaintCount( wndPtr->hmemTaskQ );
|
||||
}
|
||||
|
||||
|
@ -637,7 +637,7 @@ static HWND WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom,
|
|||
|
||||
if ((cs->style & WS_THICKFRAME) || !(cs->style & (WS_POPUP | WS_CHILD)))
|
||||
{
|
||||
NC_GetMinMaxInfo( hwnd, &maxSize, &maxPos, &minTrack, &maxTrack );
|
||||
NC_GetMinMaxInfo( wndPtr, &maxSize, &maxPos, &minTrack, &maxTrack );
|
||||
if (maxSize.x < cs->cx) cs->cx = maxSize.x;
|
||||
if (maxSize.y < cs->cy) cs->cy = maxSize.y;
|
||||
if (cs->cx < minTrack.x ) cs->cx = minTrack.x;
|
||||
|
@ -802,7 +802,7 @@ static HWND WIN_CreateWindowEx( CREATESTRUCT32A *cs, ATOM classAtom,
|
|||
/* MinMaximize(hwnd, SW_SHOWMAXIMIZED, 1) */
|
||||
|
||||
POINT16 maxSize, maxPos, minTrack, maxTrack;
|
||||
NC_GetMinMaxInfo( hwnd, &maxSize, &maxPos, &minTrack, &maxTrack );
|
||||
NC_GetMinMaxInfo( wndPtr, &maxSize, &maxPos, &minTrack, &maxTrack );
|
||||
SetWindowPos( hwnd, 0, maxPos.x, maxPos.y, maxSize.x, maxSize.y,
|
||||
((GetActiveWindow())? SWP_NOACTIVATE : 0) | SWP_FRAMECHANGED );
|
||||
}
|
||||
|
|
104
windows/winpos.c
104
windows/winpos.c
|
@ -621,7 +621,7 @@ BOOL ShowWindow( HWND hwnd, int cmd )
|
|||
if (!(wndPtr->dwStyle & WS_MINIMIZE))
|
||||
wndPtr->rectNormal = wndPtr->rectWindow;
|
||||
|
||||
NC_GetMinMaxInfo( hwnd, &maxSize,
|
||||
NC_GetMinMaxInfo( wndPtr, &maxSize,
|
||||
&wndPtr->ptMaxPos, NULL, NULL );
|
||||
x = wndPtr->ptMaxPos.x;
|
||||
y = wndPtr->ptMaxPos.y;
|
||||
|
@ -674,7 +674,7 @@ BOOL ShowWindow( HWND hwnd, int cmd )
|
|||
if (wndPtr->flags & WIN_RESTORE_MAX)
|
||||
{
|
||||
/* Restore to maximized position */
|
||||
NC_GetMinMaxInfo( hwnd, &maxSize, &wndPtr->ptMaxPos,
|
||||
NC_GetMinMaxInfo( wndPtr, &maxSize, &wndPtr->ptMaxPos,
|
||||
NULL, NULL );
|
||||
x = wndPtr->ptMaxPos.x;
|
||||
y = wndPtr->ptMaxPos.y;
|
||||
|
@ -891,44 +891,35 @@ BOOL32 SetWindowPlacement32( HWND32 hwnd, const WINDOWPLACEMENT32 *wndpl )
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* WINPOS_ForceXWindowRaise
|
||||
*
|
||||
* Raise a window on top of the X stacking order, while preserving
|
||||
* the correct Windows Z order.
|
||||
*/
|
||||
void WINPOS_ForceXWindowRaise( WND* pWnd )
|
||||
static void WINPOS_ForceXWindowRaise( WND* pWnd )
|
||||
{
|
||||
XWindowChanges winChanges;
|
||||
WND *wndStop, *wndLast;
|
||||
WND *wndPrev;
|
||||
|
||||
if (!pWnd->window) return;
|
||||
|
||||
wndLast = wndStop = pWnd;
|
||||
winChanges.stack_mode = Above;
|
||||
XReconfigureWMWindow( display, pWnd->window, 0, CWStackMode, &winChanges );
|
||||
|
||||
/* Recursively raise owned popups according to their z-order
|
||||
/* Raise all windows up to pWnd according to their Z order.
|
||||
* (it would be easier with sibling-related Below but it doesn't
|
||||
* work very well with SGI mwm for instance)
|
||||
*/
|
||||
while (wndLast)
|
||||
winChanges.stack_mode = Above;
|
||||
while (pWnd)
|
||||
{
|
||||
WND *wnd = WIN_GetDesktop()->child;
|
||||
wndLast = NULL;
|
||||
while (wnd != wndStop)
|
||||
{
|
||||
if (wnd->owner == pWnd &&
|
||||
(wnd->dwStyle & WS_POPUP) &&
|
||||
(wnd->dwStyle & WS_VISIBLE))
|
||||
wndLast = wnd;
|
||||
wnd = wnd->next;
|
||||
}
|
||||
if (wndLast)
|
||||
{
|
||||
WINPOS_ForceXWindowRaise( wndLast );
|
||||
wndStop = wndLast;
|
||||
}
|
||||
if (pWnd->window) XReconfigureWMWindow( display, pWnd->window, 0,
|
||||
CWStackMode, &winChanges );
|
||||
wndPrev = WIN_GetDesktop()->child;
|
||||
if (wndPrev == pWnd) break;
|
||||
while (wndPrev && (wndPrev->next != pWnd)) wndPrev = wndPrev->next;
|
||||
pWnd = wndPrev;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
* WINPOS_SetActiveWindow
|
||||
*
|
||||
|
@ -1199,9 +1190,9 @@ LONG WINPOS_SendNCCalcSize( HWND32 hwnd, BOOL32 calcValidRect,
|
|||
}
|
||||
result = SendMessage16( hwnd, WM_NCCALCSIZE, calcValidRect,
|
||||
(LPARAM)SEGPTR_GET( params ) );
|
||||
dprintf_win(stddeb, "WINPOS_SendNCCalcSize: %d %d %d %d\n",
|
||||
(int)params->rgrc[0].top, (int)params->rgrc[0].left,
|
||||
(int)params->rgrc[0].bottom, (int)params->rgrc[0].right);
|
||||
dprintf_win( stddeb, "WINPOS_SendNCCalcSize: %d,%d-%d,%d\n",
|
||||
params->rgrc[0].left, params->rgrc[0].top,
|
||||
params->rgrc[0].right, params->rgrc[0].bottom );
|
||||
*newClientRect = params->rgrc[0];
|
||||
SEGPTR_FREE(params);
|
||||
return result;
|
||||
|
@ -1220,7 +1211,7 @@ LONG WINPOS_HandleWindowPosChanging16( WND *wndPtr, WINDOWPOS16 *winpos )
|
|||
if ((wndPtr->dwStyle & WS_THICKFRAME) ||
|
||||
((wndPtr->dwStyle & (WS_POPUP | WS_CHILD)) == 0))
|
||||
{
|
||||
NC_GetMinMaxInfo( winpos->hwnd, &maxSize, NULL, NULL, NULL );
|
||||
NC_GetMinMaxInfo( wndPtr, &maxSize, NULL, NULL, NULL );
|
||||
winpos->cx = MIN( winpos->cx, maxSize.x );
|
||||
winpos->cy = MIN( winpos->cy, maxSize.y );
|
||||
}
|
||||
|
@ -1240,7 +1231,7 @@ LONG WINPOS_HandleWindowPosChanging32( WND *wndPtr, WINDOWPOS32 *winpos )
|
|||
if ((wndPtr->dwStyle & WS_THICKFRAME) ||
|
||||
((wndPtr->dwStyle & (WS_POPUP | WS_CHILD)) == 0))
|
||||
{
|
||||
NC_GetMinMaxInfo( winpos->hwnd, &maxSize, NULL, NULL, NULL );
|
||||
NC_GetMinMaxInfo( wndPtr, &maxSize, NULL, NULL, NULL );
|
||||
winpos->cx = MIN( winpos->cx, maxSize.x );
|
||||
winpos->cy = MIN( winpos->cy, maxSize.y );
|
||||
}
|
||||
|
@ -1387,7 +1378,7 @@ HWND WINPOS_ReorderOwnedPopups(HWND hwndInsertAfter, WND* wndPtr, WORD flags)
|
|||
static UINT WINPOS_SizeMoveClean(WND* Wnd, HRGN32 oldVisRgn, LPRECT16 lpOldWndRect, LPRECT16 lpOldClientRect, UINT uFlags )
|
||||
{
|
||||
HRGN32 newVisRgn = DCE_GetVisRgn(Wnd->hwndSelf,DCX_WINDOW | DCX_CLIPSIBLINGS);
|
||||
HRGN32 dirtyRgn = CreateRectRgn(0,0,0,0);
|
||||
HRGN32 dirtyRgn = CreateRectRgn32(0,0,0,0);
|
||||
int other, my;
|
||||
|
||||
dprintf_win(stddeb,"cleaning up...new wnd=(%i %i-%i %i) old wnd=(%i %i-%i %i)\n\
|
||||
|
@ -1401,29 +1392,30 @@ static UINT WINPOS_SizeMoveClean(WND* Wnd, HRGN32 oldVisRgn, LPRECT16 lpOldWndRe
|
|||
(lpOldWndRect->bottom - lpOldWndRect->top) != (Wnd->rectWindow.bottom - Wnd->rectWindow.top) )
|
||||
uFlags |= SMC_DRAWFRAME;
|
||||
|
||||
CombineRgn( dirtyRgn, newVisRgn, 0, RGN_COPY);
|
||||
CombineRgn32( dirtyRgn, newVisRgn, 0, RGN_COPY);
|
||||
|
||||
if( !(uFlags & SMC_NOCOPY) )
|
||||
CombineRgn( newVisRgn, newVisRgn, oldVisRgn, RGN_AND );
|
||||
CombineRgn32( newVisRgn, newVisRgn, oldVisRgn, RGN_AND );
|
||||
|
||||
/* map regions to the parent client area */
|
||||
|
||||
OffsetRgn(dirtyRgn, Wnd->rectWindow.left, Wnd->rectWindow.top);
|
||||
OffsetRgn(oldVisRgn, lpOldWndRect->left, lpOldWndRect->top);
|
||||
OffsetRgn32( dirtyRgn, Wnd->rectWindow.left, Wnd->rectWindow.top );
|
||||
OffsetRgn32( oldVisRgn, lpOldWndRect->left, lpOldWndRect->top );
|
||||
|
||||
/* compute invalidated region outside Wnd - (in client coordinates of the parent window) */
|
||||
|
||||
other = CombineRgn(dirtyRgn, oldVisRgn, dirtyRgn, RGN_DIFF);
|
||||
other = CombineRgn32(dirtyRgn, oldVisRgn, dirtyRgn, RGN_DIFF);
|
||||
|
||||
/* map visible region to the Wnd client area */
|
||||
|
||||
OffsetRgn( newVisRgn, Wnd->rectWindow.left - Wnd->rectClient.left,
|
||||
Wnd->rectWindow.top - Wnd->rectClient.top );
|
||||
OffsetRgn32( newVisRgn, Wnd->rectWindow.left - Wnd->rectClient.left,
|
||||
Wnd->rectWindow.top - Wnd->rectClient.top );
|
||||
|
||||
/* substract previously invalidated region from the Wnd visible region */
|
||||
|
||||
my = (Wnd->hrgnUpdate > 1)? CombineRgn( newVisRgn, newVisRgn, Wnd->hrgnUpdate, RGN_DIFF)
|
||||
: COMPLEXREGION;
|
||||
my = (Wnd->hrgnUpdate > 1) ? CombineRgn32( newVisRgn, newVisRgn,
|
||||
Wnd->hrgnUpdate, RGN_DIFF)
|
||||
: COMPLEXREGION;
|
||||
|
||||
if( uFlags & SMC_NOCOPY ) /* invalidate Wnd visible region */
|
||||
{
|
||||
|
@ -1444,8 +1436,8 @@ static UINT WINPOS_SizeMoveClean(WND* Wnd, HRGN32 oldVisRgn, LPRECT16 lpOldWndRe
|
|||
xfrom = lpOldClientRect->left; yfrom = lpOldClientRect->top;
|
||||
xto = Wnd->rectClient.left; yto = Wnd->rectClient.top;
|
||||
width = lpOldClientRect->right - xfrom; height = lpOldClientRect->bottom - yfrom;
|
||||
updateRgn = CreateRectRgn( 0, 0, width, height );
|
||||
CombineRgn( newVisRgn, newVisRgn, updateRgn, RGN_AND );
|
||||
updateRgn = CreateRectRgn32( 0, 0, width, height );
|
||||
CombineRgn32( newVisRgn, newVisRgn, updateRgn, RGN_AND );
|
||||
SetRectRgn( updateRgn, 0, 0, Wnd->rectClient.right - xto, Wnd->rectClient.bottom - yto );
|
||||
}
|
||||
else
|
||||
|
@ -1453,17 +1445,17 @@ static UINT WINPOS_SizeMoveClean(WND* Wnd, HRGN32 oldVisRgn, LPRECT16 lpOldWndRe
|
|||
xfrom = lpOldWndRect->left; yfrom = lpOldWndRect->top;
|
||||
xto = Wnd->rectWindow.left; yto = Wnd->rectWindow.top;
|
||||
width = lpOldWndRect->right - xfrom; height = lpOldWndRect->bottom - yfrom;
|
||||
updateRgn = CreateRectRgn( xto - Wnd->rectClient.left,
|
||||
yto - Wnd->rectClient.top,
|
||||
Wnd->rectWindow.right - Wnd->rectClient.left,
|
||||
Wnd->rectWindow.bottom - Wnd->rectClient.top );
|
||||
updateRgn = CreateRectRgn32( xto - Wnd->rectClient.left,
|
||||
yto - Wnd->rectClient.top,
|
||||
Wnd->rectWindow.right - Wnd->rectClient.left,
|
||||
Wnd->rectWindow.bottom - Wnd->rectClient.top );
|
||||
}
|
||||
|
||||
CombineRgn( newVisRgn, newVisRgn, updateRgn, RGN_AND );
|
||||
CombineRgn32( newVisRgn, newVisRgn, updateRgn, RGN_AND );
|
||||
|
||||
/* substract new visRgn from target rect to get a region that won't be copied */
|
||||
|
||||
update = CombineRgn( updateRgn, updateRgn, newVisRgn, RGN_DIFF );
|
||||
update = CombineRgn32( updateRgn, updateRgn, newVisRgn, RGN_DIFF );
|
||||
|
||||
/* Blt valid bits using parent window DC */
|
||||
|
||||
|
@ -1472,8 +1464,8 @@ static UINT WINPOS_SizeMoveClean(WND* Wnd, HRGN32 oldVisRgn, LPRECT16 lpOldWndRe
|
|||
|
||||
/* compute clipping region in parent client coordinates */
|
||||
|
||||
OffsetRgn( newVisRgn, Wnd->rectClient.left, Wnd->rectClient.top);
|
||||
CombineRgn( oldVisRgn, oldVisRgn, newVisRgn, RGN_OR );
|
||||
OffsetRgn32( newVisRgn, Wnd->rectClient.left, Wnd->rectClient.top );
|
||||
CombineRgn32( oldVisRgn, oldVisRgn, newVisRgn, RGN_OR );
|
||||
|
||||
hDC = GetDCEx32( Wnd->parent->hwndSelf, oldVisRgn,
|
||||
DCX_KEEPCLIPRGN | DCX_INTERSECTRGN |
|
||||
|
@ -1488,7 +1480,7 @@ static UINT WINPOS_SizeMoveClean(WND* Wnd, HRGN32 oldVisRgn, LPRECT16 lpOldWndRe
|
|||
PAINT_RedrawWindow( Wnd->hwndSelf, NULL, updateRgn, RDW_INVALIDATE |
|
||||
RDW_FRAME | RDW_ALLCHILDREN | RDW_ERASE, RDW_C_USEHRGN );
|
||||
else if( uFlags & SMC_DRAWFRAME ) Wnd->flags |= WIN_NEEDS_NCPAINT;
|
||||
DeleteObject( updateRgn );
|
||||
DeleteObject32( updateRgn );
|
||||
}
|
||||
|
||||
/* erase uncovered areas */
|
||||
|
@ -1496,8 +1488,8 @@ static UINT WINPOS_SizeMoveClean(WND* Wnd, HRGN32 oldVisRgn, LPRECT16 lpOldWndRe
|
|||
if( !(uFlags & SMC_NOPARENTERASE) && (other != NULLREGION ) )
|
||||
PAINT_RedrawWindow( Wnd->parent->hwndSelf, NULL, dirtyRgn,
|
||||
RDW_INVALIDATE | RDW_ALLCHILDREN | RDW_ERASE, RDW_C_USEHRGN );
|
||||
DeleteObject(dirtyRgn);
|
||||
DeleteObject(newVisRgn);
|
||||
DeleteObject32(dirtyRgn);
|
||||
DeleteObject32(newVisRgn);
|
||||
return uFlags;
|
||||
}
|
||||
|
||||
|
@ -1835,7 +1827,7 @@ BOOL SetWindowPos( HWND hwnd, HWND hwndInsertAfter, INT x, INT y,
|
|||
if( winpos->flags & SWP_NOZORDER ) uFlags |= SMC_NOPARENTERASE;
|
||||
}
|
||||
}
|
||||
DeleteObject(visRgn);
|
||||
DeleteObject32(visRgn);
|
||||
}
|
||||
|
||||
if (flags & SWP_SHOWWINDOW)
|
||||
|
|
|
@ -1203,7 +1203,7 @@ void WINPROC_UnmapMsg32ATo16( UINT16 msg, WPARAM16 wParam, LPARAM lParam )
|
|||
{
|
||||
LPSTR str = (LPSTR)PTR_SEG_TO_LIN(lParam);
|
||||
lParam = *((LPARAM *)str - 1);
|
||||
strcpy( (LPSTR)lParam, str );
|
||||
lstrcpyn32A( (LPSTR)lParam, str, wParam );
|
||||
SEGPTR_FREE( (LPARAM *)str - 1 );
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue