mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 05:15:41 +00:00
- Some stuff I promised James. This is DC_ATTR from Win2K, IIRC (you called it GDI_USER_DATA). It changed a bit in XP, but now you have a working model. Also added some more flags/enums that I knew about and some font structures.
svn path=/trunk/; revision=24561
This commit is contained in:
parent
31280506e9
commit
9b785911ed
2 changed files with 131 additions and 30 deletions
|
@ -74,6 +74,25 @@
|
||||||
#define GDI_HANDLE_SET_STOCKOBJ(h) \
|
#define GDI_HANDLE_SET_STOCKOBJ(h) \
|
||||||
((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK))
|
((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK))
|
||||||
|
|
||||||
|
/* DC_ATTR Dirty Flags */
|
||||||
|
#define DIRTY_FILL 0x00000001
|
||||||
|
#define DIRTY_LINE 0x00000002
|
||||||
|
#define DIRTY_TEXT 0x00000004
|
||||||
|
#define DIRTY_BACKGROUND 0x00000008
|
||||||
|
#define DIRTY_CHARSET 0x00000010
|
||||||
|
#define SLOW_WIDTHS 0x00000020
|
||||||
|
#define DC_CACHED_TM_VALID 0x00000040
|
||||||
|
#define DISPLAY_DC 0x00000080
|
||||||
|
#define DIRTY_PTLCURRENT 0x00000100
|
||||||
|
#define DIRTY_PTFXCURRENT 0x00000200
|
||||||
|
#define DIRTY_STYLESTATE 0x00000400
|
||||||
|
#define DC_PLAYMETAFILE 0x00000800
|
||||||
|
#define DC_BRUSH_DIRTY 0x00001000
|
||||||
|
#define DC_PEN_DIRTY 0x00002000
|
||||||
|
#define DC_DIBSECTION 0x00004000
|
||||||
|
#define DC_LAST_CLIPRGN_VALID 0x00008000
|
||||||
|
#define DC_PRIMARY_DISPLAY 0x00010000
|
||||||
|
|
||||||
/* TYPES *********************************************************************/
|
/* TYPES *********************************************************************/
|
||||||
|
|
||||||
typedef struct _GDI_TABLE_ENTRY
|
typedef struct _GDI_TABLE_ENTRY
|
||||||
|
@ -84,28 +103,62 @@ typedef struct _GDI_TABLE_ENTRY
|
||||||
PVOID UserData; /* Points to the user mode structure, usually NULL though */
|
PVOID UserData; /* Points to the user mode structure, usually NULL though */
|
||||||
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
|
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
|
||||||
|
|
||||||
|
typedef struct _RGNATTR
|
||||||
|
{
|
||||||
|
ULONG AttrFlags;
|
||||||
|
ULONG Flags;
|
||||||
|
RECTL Rect;
|
||||||
|
} RGNATTR,*PRGNATTR;
|
||||||
|
|
||||||
typedef struct _GDI_USER_DATA
|
typedef struct _DC_ATTR
|
||||||
{
|
{
|
||||||
COLORREF PenColor;
|
PVOID pvLDC;
|
||||||
COLORREF BrushColor;
|
ULONG ulDirty_;
|
||||||
INT ROPmode;
|
HANDLE hbrush;
|
||||||
INT PolyFillMode;
|
HANDLE hpen;
|
||||||
INT StretchBltMode;
|
COLORREF crBackgroundClr;
|
||||||
INT BackgroundMode;
|
ULONG ulBackgroundClr;
|
||||||
COLORREF BackgroundColor;
|
COLORREF crForegroundClr;
|
||||||
COLORREF TextColor;
|
ULONG ulForegroundClr;
|
||||||
DWORD CodePage;
|
DWORD iCS_CP;
|
||||||
HCOLORSPACE ColorSpace;
|
INT iGraphicsMode;
|
||||||
INT TextAlign; /* Text alignment from SetTextAlign() */
|
BYTE jROP2;
|
||||||
INT CharExtra; /* Spacing from SetTextCharacterExtra() */
|
BYTE jBkMode;
|
||||||
INT BreakExtral; /* SetTextJustification */
|
BYTE jFillMode;
|
||||||
INT BreakCount; /* " */
|
BYTE jStretchBltMode;
|
||||||
INT GraphicsMode; /* Graphics mode */
|
POINTL ptlCurrent;
|
||||||
INT MapMode;
|
POINTL ptfxCurrent;
|
||||||
HFONT hFont;
|
LONG lBkMode;
|
||||||
DWORD Layout;
|
LONG lFillMode;
|
||||||
} GDI_USER_DATA, *PGDI_USER_DATA;
|
LONG lStretchBltMode;
|
||||||
|
FLONG flFontMapper;
|
||||||
|
LONG lIcmMode;
|
||||||
|
HANDLE hcmXform;
|
||||||
|
HCOLORSPACE hColorSpace;
|
||||||
|
INT IcmBrushColor;
|
||||||
|
INT IcmPenColor;
|
||||||
|
FLONG flTextAlign;
|
||||||
|
LONG lTextAlign;
|
||||||
|
LONG lTextExtra;
|
||||||
|
LONG lRelAbs;
|
||||||
|
LONG lBreakExtra;
|
||||||
|
LONG cBreak;
|
||||||
|
HANDLE hlfntNew;
|
||||||
|
MATRIX_S mxWorldToDevice;
|
||||||
|
MATRIX_S mxDevicetoWorld;
|
||||||
|
MATRIX_S mxWorldToPage;
|
||||||
|
INT iMapMode;
|
||||||
|
DWORD dwLayout;
|
||||||
|
LONG lWindowOrgx;
|
||||||
|
POINTL ptlWindowOrg;
|
||||||
|
SIZEL szlWindowExt;
|
||||||
|
POINTL ptlViewportOrg;
|
||||||
|
SIZEL szlViewportExt;
|
||||||
|
FLONG flXform;
|
||||||
|
SIZEL szlVirtualDevicePixel;
|
||||||
|
SIZEL szlVirtualDeviceMm;
|
||||||
|
POINTL ptlBrushOrigin;
|
||||||
|
RGNATTR VisRectRegion;
|
||||||
|
} DC_ATTR, *PDC_ATTR;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -43,27 +43,38 @@ typedef enum _POLYFUNCTYPE
|
||||||
|
|
||||||
typedef enum _GETDCDWORD
|
typedef enum _GETDCDWORD
|
||||||
{
|
{
|
||||||
GdiGetRelAbs = 1,
|
GdiGetJournal,
|
||||||
|
GdiGetRelAbs,
|
||||||
GdiGetBreakExtra,
|
GdiGetBreakExtra,
|
||||||
GdiGerCharBreak,
|
GdiGerCharBreak,
|
||||||
GdiGetArcDirection,
|
GdiGetArcDirection,
|
||||||
GdiGetEMFRestorDc,
|
GdiGetEMFRestorDc,
|
||||||
GdiGetFontLanguageInfo,
|
GdiGetFontLanguageInfo,
|
||||||
GdiGetIsMemDc,
|
GdiGetIsMemDc,
|
||||||
|
GdiGetMapMode,
|
||||||
|
GdiGetTextCharExtra,
|
||||||
} GETDCDWORD, *PGETDCDWORD;
|
} GETDCDWORD, *PGETDCDWORD;
|
||||||
|
|
||||||
typedef enum _GETSETDCDWORD
|
typedef enum _GETSETDCDWORD
|
||||||
{
|
{
|
||||||
GdiGetSetRelAbs = 4,
|
GdtGetSetCopyCount = 2,
|
||||||
GdiGetSetMapperFlagsInternal = 7,
|
GdiGetSetTextAlign,
|
||||||
GdiGetSetMapMode = 8,
|
GdiGetSetRelAbs,
|
||||||
GdiGetSetArcDirection = 9,
|
GdiGetSetTextCharExtra,
|
||||||
|
GdiGetSetSelectFont,
|
||||||
|
GdiGetSetMapperFlagsInternal,
|
||||||
|
GdiGetSetMapMode,
|
||||||
|
GdiGetSetArcDirection,
|
||||||
} GETSETDCDWORD, *PGETSETDCDWORD;
|
} GETSETDCDWORD, *PGETSETDCDWORD;
|
||||||
|
|
||||||
typedef enum _GETDCPOINT
|
typedef enum _GETDCPOINT
|
||||||
{
|
{
|
||||||
GdiGetViewPortExt = 1,
|
GdiGetViewPortExt = 1,
|
||||||
GdiGetDCOrg = 7,
|
GdiGetWindowExt,
|
||||||
|
GdiGetViewPortOrg,
|
||||||
|
GdiGetWindowOrg,
|
||||||
|
GdiGetAspectRatioFilter,
|
||||||
|
GdiGetDCOrg = 6,
|
||||||
} GETDCPOINT, *PGETDCPOINT;
|
} GETDCPOINT, *PGETDCPOINT;
|
||||||
|
|
||||||
typedef enum _TRANSFORMTYPE
|
typedef enum _TRANSFORMTYPE
|
||||||
|
@ -86,13 +97,50 @@ typedef UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID;
|
||||||
typedef DWORD CHWIDTHINFO;
|
typedef DWORD CHWIDTHINFO;
|
||||||
typedef CHWIDTHINFO *PCHWIDTHINFO;
|
typedef CHWIDTHINFO *PCHWIDTHINFO;
|
||||||
typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
|
typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
|
||||||
|
typedef LONG FIX;
|
||||||
|
|
||||||
/* FIXME: Unknown; easy to guess, usually based on public types and converted */
|
/* FIXME: Unknown; easy to guess, usually based on public types and converted */
|
||||||
typedef struct _WIDTHDATA WIDTHDATA, *PWIDTHDATA;
|
typedef struct _WIDTHDATA WIDTHDATA, *PWIDTHDATA;
|
||||||
typedef struct _TMDIFF TMDIFF, *PTMDIFF;
|
|
||||||
typedef struct _TMW_INTERNAL TMW_INTERNAL, *PTMW_INTERNAL;
|
|
||||||
typedef struct _ENUMFONTDATAW ENUMFONTDATAW, *PENUMFONTDATAW;
|
|
||||||
typedef struct _DEVCAPS DEVCAPS, *PDEVCAPS;
|
typedef struct _DEVCAPS DEVCAPS, *PDEVCAPS;
|
||||||
typedef struct _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO;
|
typedef struct _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO;
|
||||||
|
|
||||||
|
/* Font Structures */
|
||||||
|
typedef struct _TMDIFF
|
||||||
|
{
|
||||||
|
ULONG cjotma;
|
||||||
|
CHAR chFirst;
|
||||||
|
CHAR chLast;
|
||||||
|
CHAR ChDefault;
|
||||||
|
CHAR ChBreak;
|
||||||
|
} TMDIFF, *PTMDIFF;
|
||||||
|
|
||||||
|
typedef struct _TMW_INTERNAL
|
||||||
|
{
|
||||||
|
TEXTMETRICW TextMetric;
|
||||||
|
TMDIFF Diff;
|
||||||
|
} TMW_INTERNAL, *PTMW_INTERNAL;
|
||||||
|
|
||||||
|
typedef struct _ENUMFONTDATAW ENUMFONTDATAW, *PENUMFONTDATAW;
|
||||||
|
|
||||||
|
/* Number Representation */
|
||||||
|
typedef struct _EFLOAT_S
|
||||||
|
{
|
||||||
|
LONG lMant;
|
||||||
|
LONG lExp;
|
||||||
|
} EFLOAT_S;
|
||||||
|
|
||||||
|
/* XFORM Structures */
|
||||||
|
typedef struct _MATRIX_S
|
||||||
|
{
|
||||||
|
EFLOAT_S efM11;
|
||||||
|
EFLOAT_S efM12;
|
||||||
|
EFLOAT_S efM21;
|
||||||
|
EFLOAT_S efM22;
|
||||||
|
EFLOAT_S efDx;
|
||||||
|
EFLOAT_S efDy;
|
||||||
|
FIX fxDx;
|
||||||
|
FIX fxDy;
|
||||||
|
FLONG flAccel;
|
||||||
|
} MATRIX_S;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue