svn path=/trunk/; revision=29940
typedef struct _DC
{
- HGDIOBJ hHmgr;
- PVOID pvEntry;
- ULONG lucExcLock;
- ULONG Tid;
+ HGDIOBJ hHmgr; // Handle for this DC object.
+// PVOID pvEntry;
+// ULONG lucExcLock;
+// ULONG Tid;
DHPDEV PDev;
INT DC_Type;
PDC_ATTR pDc_Attr;
DC_ATTR Dc_Attr;
- HDC hSelf;
+ HDC hSelf; // Used only for MemoryDC & SaveDC.
HDC hNext;
HSURF FillPatternSurfaces[HS_DDI_MAX];
PGDIINFO GDIInfo;
HWND hWnd;\r
PWINDOW_OBJECT Window;\r
\r
- hWnd = IntWindowFromDC(dc->hSelf);\r
+ hWnd = IntWindowFromDC((HDC) dc->hHmgr);\r
Window = UserGetWindowObject(hWnd);\r
if(!Window) return FALSE;\r
\r
NewDC->DriverName.Buffer = Buf;
}
+ NewDC->hHmgr = (HGDIOBJ) hDC; // Save the handle for this DC object.
NewDC->w.xformWorld2Wnd.eM11 = 1.0f;
NewDC->w.xformWorld2Wnd.eM12 = 0.0f;
NewDC->w.xformWorld2Wnd.eM21 = 0.0f;
BOOL Ret = FALSE;
KeEnterCriticalRegion();
{
- INT Index = GDI_HANDLE_GET_INDEX((HGDIOBJ)dc->hSelf);
+ INT Index = GDI_HANDLE_GET_INDEX(dc->hHmgr);
PGDI_TABLE_ENTRY Entry = &GdiHandleTable->Entries[Index];
HANDLE ProcessId = (HANDLE)(((ULONG_PTR)(Entry->ProcessId)) & ~1);
DC_ATTR lDc_AttrData;