mirror of
https://github.com/reactos/wine.git
synced 2025-02-24 06:55:00 +00:00

Sun Mar 2 14:57:37 1997 Alexandre Julliard <julliard@lrc.epfl.ch> * [*/*] Completed transition to new Win32 types. * [tools/build.c] Changed CallTo16_regs to take a CONTEXT argument. * [memory/virtual.c] Rewrote Virtual* functions. Implemented CreateFileMapping and OpenFileMapping. Broke MapViewOfFile ;-) * [win32/k32obj.c] Implemented named objects. Sun Mar 2 00:33:21 1997 Mikolaj Zalewski <zmikolaj@free.polbox.pl> * [misc/ole2nls.c] [resources/sysres_Pl.c] Added Polish language support. Sat Mar 1 13:31:25 1997 David Faure <david.faure@ifhamy.insa-lyon.fr> * [windows/keyboard.c] Wrote VkKeyScan and tested with Winword. Works ok except for dead chars. Fri Feb 28 09:34:03 1997 John Harvey <john@division.co.uk> * [graphics/win16drv/font.c] [graphics/win16drv/init.c] [graphics/win16drv/obects.c] Added start of SelectObject call for printer driver. Write should now run with the printer driver enabled. Wed Feb 26 20:03:32 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [debugger/*.c] Re-added a disassembly command (list serves another functionality now). * [loader/pe_resource.c] Added # support. * [misc/ole2nls.c] GetStringType* added. * [objects/color.c] VGA16 fixes. * [windows/class.c] Look for global widget classes too in GetClassInfo32. * [windows/sysmetrics.c] [include/windows.h] Added Win32 sysmetrics. Sat Feb 22 23:56:29 1997 Jukka Iivonen <iivonen@cc.helsinki.fi> * [documentation/languages] The fourth case updated. * [if1632/ntdll.spec] Added some is* and to* functions. Sat Feb 22 23:05:47 1997 Morten Welinder <terra@diku.dk> * [configure.in] Add tests for wait4 and waitpid. * [loader/signal.c] Clean up OS-dependent code. I hope I got it right, :-) * [tools/wineconf] Recognise vfat file systems. Ignore floppy drives specified in /etc/fstab. * [files/*] Fix function names in error messages. Sat Feb 22 06:15:13 1997 Pablo Saratxaga <srtxg@chanae.stben.be> * [windows/keyboard.c] [windows/message.c] Support for more latin alphabet dead keys for iso-8859-{1,2,3,4,9} characters sets. Fri Feb 21 20:37:50 1997 Huw D M Davies <h.davies1@physics.oxford.ac.uk> * [controls/edit.c] Fix incorrect arg order in LOCAL_Alloc() call. Fri Feb 21 18:19:17 1997 Andrew Taylor <andrew@riscan.com> * [multimedia/mmsystem.c] [multimedia/mcistring.c] Fixed bug related to device IDs returned by multimedia system. Implemented mciGetDeviceID. Sat Feb 15 00:58:19 1997 Jimen Ching <jching@aloha.com> * [debugger/dbg.y] Do not dereference invalid expressions.
149 lines
6.2 KiB
C
149 lines
6.2 KiB
C
/*
|
|
* DC device-independent Get/SetXXX functions
|
|
*
|
|
* Copyright 1993 Alexandre Julliard
|
|
*
|
|
*/
|
|
|
|
#include "gdi.h"
|
|
#include "metafile.h"
|
|
|
|
|
|
#define DC_GET_VAL_16( func_type, func_name, dc_field ) \
|
|
func_type func_name( HDC16 hdc ) \
|
|
{ \
|
|
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \
|
|
if (!dc) return 0; \
|
|
return dc->dc_field; \
|
|
}
|
|
|
|
#define DC_GET_VAL_32( func_type, func_name, dc_field ) \
|
|
func_type func_name( HDC32 hdc ) \
|
|
{ \
|
|
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \
|
|
if (!dc) return 0; \
|
|
return dc->dc_field; \
|
|
}
|
|
|
|
#define DC_GET_X_Y( func_type, func_name, ret_x, ret_y ) \
|
|
func_type func_name( HDC16 hdc ) \
|
|
{ \
|
|
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \
|
|
if (!dc) return 0; \
|
|
return MAKELONG( dc->ret_x, dc->ret_y ); \
|
|
}
|
|
|
|
#define DC_GET_VAL_EX( func_name, ret_x, ret_y ) \
|
|
BOOL16 func_name##16( HDC16 hdc, LPPOINT16 pt ) \
|
|
{ \
|
|
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \
|
|
if (!dc) return FALSE; \
|
|
pt->x = dc->ret_x; \
|
|
pt->y = dc->ret_y; \
|
|
return TRUE; \
|
|
} \
|
|
\
|
|
BOOL32 func_name##32( HDC32 hdc, LPPOINT32 pt ) \
|
|
{ \
|
|
DC * dc = (DC *) GDI_GetObjPtr( (HDC16)hdc, DC_MAGIC ); \
|
|
if (!dc) return FALSE; \
|
|
pt->x = dc->ret_x; \
|
|
pt->y = dc->ret_y; \
|
|
return TRUE; \
|
|
}
|
|
|
|
#define DC_SET_MODE_16( func_name, dc_field, min_val, max_val, meta_func ) \
|
|
INT16 func_name( HDC16 hdc, INT16 mode ) \
|
|
{ \
|
|
INT16 prevMode; \
|
|
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \
|
|
if ((mode < min_val) || (mode > max_val)) return 0; \
|
|
if (!dc) { \
|
|
dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); \
|
|
if (!dc) return 0; \
|
|
MF_MetaParam1(dc, meta_func, mode); \
|
|
return 1; \
|
|
} \
|
|
prevMode = dc->dc_field; \
|
|
dc->dc_field = mode; \
|
|
return prevMode; \
|
|
}
|
|
|
|
#define DC_SET_MODE_32( func_name, dc_field, min_val, max_val, meta_func ) \
|
|
INT32 func_name( HDC32 hdc, INT32 mode ) \
|
|
{ \
|
|
INT32 prevMode; \
|
|
DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); \
|
|
if ((mode < min_val) || (mode > max_val)) return 0; \
|
|
if (!dc) { \
|
|
dc = (DC *)GDI_GetObjPtr(hdc, METAFILE_DC_MAGIC); \
|
|
if (!dc) return 0; \
|
|
MF_MetaParam1(dc, meta_func, mode); \
|
|
return 1; \
|
|
} \
|
|
prevMode = dc->dc_field; \
|
|
dc->dc_field = mode; \
|
|
return prevMode; \
|
|
}
|
|
|
|
|
|
DC_SET_MODE_16( SetBkMode16, w.backgroundMode, TRANSPARENT, /* GDI.2 */
|
|
OPAQUE, META_SETBKMODE )
|
|
DC_SET_MODE_32( SetBkMode32, w.backgroundMode, TRANSPARENT, /* GDI32.306 */
|
|
OPAQUE, META_SETBKMODE )
|
|
DC_SET_MODE_16( SetROP216, w.ROPmode, R2_BLACK, R2_WHITE, /* GDI.4 */
|
|
META_SETROP2 )
|
|
DC_SET_MODE_32( SetROP232, w.ROPmode, R2_BLACK, R2_WHITE, /* GDI32.331 */
|
|
META_SETROP2 )
|
|
DC_SET_MODE_16( SetRelAbs16, w.relAbsMode, ABSOLUTE, RELATIVE, /* GDI.5 */
|
|
META_SETRELABS )
|
|
DC_SET_MODE_32( SetRelAbs32, w.relAbsMode, ABSOLUTE, RELATIVE, /* GDI32.333 */
|
|
META_SETRELABS )
|
|
DC_SET_MODE_16( SetPolyFillMode16, w.polyFillMode, /* GDI.6 */
|
|
ALTERNATE, WINDING, META_SETPOLYFILLMODE )
|
|
DC_SET_MODE_32( SetPolyFillMode32, w.polyFillMode, /* GDI32.330 */
|
|
ALTERNATE, WINDING, META_SETPOLYFILLMODE )
|
|
DC_SET_MODE_16( SetStretchBltMode16, w.stretchBltMode, /* GDI.7 */
|
|
BLACKONWHITE, COLORONCOLOR, META_SETSTRETCHBLTMODE )
|
|
DC_SET_MODE_32( SetStretchBltMode32, w.stretchBltMode, /* GDI32.334 */
|
|
BLACKONWHITE, COLORONCOLOR, META_SETSTRETCHBLTMODE )
|
|
DC_GET_VAL_16( COLORREF, GetBkColor16, w.backgroundColor ) /* GDI.75 */
|
|
DC_GET_VAL_32( COLORREF, GetBkColor32, w.backgroundColor ) /* GDI32.145 */
|
|
DC_GET_VAL_16( INT16, GetBkMode16, w.backgroundMode ) /* GDI.76 */
|
|
DC_GET_VAL_32( INT32, GetBkMode32, w.backgroundMode ) /* GDI32.146 */
|
|
DC_GET_X_Y( DWORD, GetCurrentPosition, w.CursPosX, w.CursPosY ) /* GDI.78 */
|
|
DC_GET_VAL_16( INT16, GetMapMode16, w.MapMode ) /* GDI.81 */
|
|
DC_GET_VAL_32( INT32, GetMapMode32, w.MapMode ) /* GDI32.196 */
|
|
DC_GET_VAL_16( INT16, GetPolyFillMode16, w.polyFillMode ) /* GDI.84 */
|
|
DC_GET_VAL_32( INT32, GetPolyFillMode32, w.polyFillMode ) /* GDI32.213 */
|
|
DC_GET_VAL_16( INT16, GetROP216, w.ROPmode ) /* GDI.85 */
|
|
DC_GET_VAL_32( INT32, GetROP232, w.ROPmode ) /* GDI32.214 */
|
|
DC_GET_VAL_16( INT16, GetRelAbs16, w.relAbsMode ) /* GDI.86 */
|
|
DC_GET_VAL_32( INT32, GetRelAbs32, w.relAbsMode ) /* GDI32.218 */
|
|
DC_GET_VAL_16( INT16, GetStretchBltMode16, w.stretchBltMode ) /* GDI.88 */
|
|
DC_GET_VAL_32( INT32, GetStretchBltMode32, w.stretchBltMode ) /* GDI32.221 */
|
|
DC_GET_VAL_16( COLORREF, GetTextColor16, w.textColor ) /* GDI.90 */
|
|
DC_GET_VAL_32( COLORREF, GetTextColor32, w.textColor ) /* GDI32.227 */
|
|
DC_GET_X_Y( DWORD, GetViewportExt, vportExtX, vportExtY ) /* GDI.94 */
|
|
DC_GET_X_Y( DWORD, GetViewportOrg, vportOrgX, vportOrgY ) /* GDI.95 */
|
|
DC_GET_X_Y( DWORD, GetWindowExt, wndExtX, wndExtY ) /* GDI.96 */
|
|
DC_GET_X_Y( DWORD, GetWindowOrg, wndOrgX, wndOrgY ) /* GDI.97 */
|
|
DC_GET_VAL_16( HRGN16, InquireVisRgn, w.hVisRgn ) /* GDI.131 */
|
|
DC_GET_X_Y( DWORD, GetBrushOrg, w.brushOrgX, w.brushOrgY ) /* GDI.149 */
|
|
DC_GET_VAL_16( UINT16, GetTextAlign16, w.textAlign ) /* GDI.345 */
|
|
DC_GET_VAL_32( UINT32, GetTextAlign32, w.textAlign ) /* GDI32.224 */
|
|
DC_GET_VAL_16( HFONT16, GetCurLogFont, w.hFont ) /* GDI.411 */
|
|
DC_GET_VAL_EX( GetBrushOrgEx, w.brushOrgX, w.brushOrgY )/* GDI.469 GDI32.148 */
|
|
DC_GET_VAL_EX( GetCurrentPositionEx, w.CursPosX, /* GDI.470 GDI32.167 */
|
|
w.CursPosY )
|
|
DC_GET_VAL_EX( GetViewportExtEx, vportExtX, vportExtY ) /* GDI.472 GDI32.239 */
|
|
DC_GET_VAL_EX( GetViewportOrgEx, vportOrgX, vportOrgY ) /* GDI.473 GDI32.240 */
|
|
DC_GET_VAL_EX( GetWindowExtEx, wndExtX, wndExtY ) /* GDI.474 GDI32.242 */
|
|
DC_GET_VAL_EX( GetWindowOrgEx, wndOrgX, wndOrgY ) /* GDI.475 GDI32.243 */
|
|
|
|
/* this one is wrong - Windows returns region that
|
|
is relative to the device and not to the DC origin */
|
|
|
|
DC_GET_VAL_16( HRGN16, GetClipRgn16, w.hClipRgn ) /* GDI.173 */
|
|
|