Difference between revisions of "Techwiki:Win32k/DCLEVEL"
ThePhysicist (talk | contribs) |
(Printer update) |
||
Line 9: | Line 9: | ||
LONG lIcmMode; // 00c | LONG lIcmMode; // 00c | ||
LONG lSaveDepth; // 010 | LONG lSaveDepth; // 010 | ||
− | + | LONG lSaveDepthStartDoc; // 014 | |
HDC hdcSave; // 018 | HDC hdcSave; // 018 | ||
POINTL ptlBrushOrigin; // 01c | POINTL ptlBrushOrigin; // 01c |
Latest revision as of 02:00, 13 May 2019
DCLEVEL from Windows XP.
size is 440(0x1B8) bytes
typedef struct { W2k WXP HPALETTE hpal; // 000 000 PPALETTE ppal; // 004 COLORSPACE * pColorSpace; // 008 LONG lIcmMode; // 00c LONG lSaveDepth; // 010 LONG lSaveDepthStartDoc; // 014 HDC hdcSave; // 018 POINTL ptlBrushOrigin; // 01c PBRUSH pbrFill; // 024 PBRUSH pbrLine; // 028 LFONTOBJ * pFont; // 02c HGDIOBJ hpath; // 030 FLONG flPath; // 034 PathFlags LINEATTRS lapath; // 038 0x20 bytes PREGION prgnClip; // 058 PREGION prgnMeta; // 05c COLORADJUSTMENT ca; // 060 0x18 bytes FLONG flFontState; // 078 UNIVERSAL_FONT_ID ufi; // 07c UNIVERSAL_FONT_ID ufiLoc[4]; // 084 Local List. UNIVERSAL_FONT_ID *pUFI; // 094 ULONG uNumUFIs; // 098 BOOL ufiSet; // 09C FLONG fl; // 0b0 FLONG flbrush; // 0b4 MATRIX mxWorldToDevice; // 0b8 MATRIX mxDeviceToWorld; // 0f4 MATRIX mxWorldToPage; // 130 EFLOATOBJ efM11PtoD; // 16c EFLOATOBJ efM22PtoD; // 174 EFLOATOBJ efDxPtoD; // 17c EFLOATOBJ efDyPtoD; // 184 EFLOATOBJ efM11_TWIPS; // 18c EFLOATOBJ efM22_TWIPS; // 194 EFLOATOBJ efPr11; // 19c EFLOATOBJ efPr22; // 1a4 SURFACE * pSurface; // 1ac SIZEL sizl; // 1b0 } DCLEVEL;
Fields
lSaveDepth
- The depth of the saved state list. This field is initialized with 1.
hdcSave
- Handle of the DC that keeps this DCs last saved state. All saved states build up a linked list of HDCs.
- Saved DCs don't belong to the current process. This field is initialized with 0. For more information, see DC State Saving
pbrFill
- Pointer to the BRUSH structure for the selecte brush. If DC_BRUSH is selected, it points to the stock object.
pbrLine
- Pointer to the BRUSH structure for the selecte pen. If DC_PEN is selected, it points to the stock object.
flPath
- Describes the state of the path. May be a combination of the following values:
#define DCPATH_ACTIVE 0x1 #define DCPATH_SAVE 0x2 #define DCPATH_CLOCKWISE 0x4
prgnClip
- Pointer to a region object, describing the currently selected clip region. NULL when the DC is created.
prgnMeta
- Pointer to a region object, describing the meta region. NULL when the DC is created.
flFontState
- State of the font. May be a combination of the following values:
#define DC_DIRTYFONT_XFORM 0x1 #define DC_DIRTYFONT_LFONT 0x2 #define DC_UFI_MAPPING 0x4
fl
#define DC_FL_PAL_BACK 1
pSurface
- For display DCs this is a pointer to the display surface. For memory DCs it's a pointer to the bitmap that was selected into the DC and NULL after creation of the DC, before a bitmap is selected. The SURFACE's shared ref count is incremented and the bitmap cannot be deleted. Copied from PDEVOBJ and the rule applies here as well, (CONTAINING_RECORD +10h = SURFOBJ), the pointer will start at SURFOBJ of the SURFACE structure.