mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 17:05:46 +00:00
Check the GDI object type in GdiGetHandleUserData()
svn path=/trunk/; revision=30852
This commit is contained in:
parent
17ea116ec5
commit
1a43a12889
7 changed files with 51 additions and 71 deletions
|
@ -122,6 +122,7 @@ GdiIsHandleValid(HGDIOBJ hGdiObj);
|
||||||
BOOL
|
BOOL
|
||||||
GdiGetHandleUserData(
|
GdiGetHandleUserData(
|
||||||
HGDIOBJ hGdiObj,
|
HGDIOBJ hGdiObj,
|
||||||
|
DWORD ObjectType,
|
||||||
PVOID *UserData
|
PVOID *UserData
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -115,10 +115,10 @@ BOOL GdiIsHandleValid(HGDIOBJ hGdiObj)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL GdiGetHandleUserData(HGDIOBJ hGdiObj, PVOID *UserData)
|
BOOL GdiGetHandleUserData(HGDIOBJ hGdiObj, DWORD ObjectType, PVOID *UserData)
|
||||||
{
|
{
|
||||||
PGDI_TABLE_ENTRY Entry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hGdiObj);
|
PGDI_TABLE_ENTRY Entry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hGdiObj);
|
||||||
if((Entry->Type & GDI_ENTRY_BASETYPE_MASK) != 0 &&
|
if((Entry->Type & GDI_ENTRY_BASETYPE_MASK) == ObjectType &&
|
||||||
(Entry->Type << GDI_ENTRY_UPPER_SHIFT) == GDI_HANDLE_GET_UPPER(hGdiObj))
|
(Entry->Type << GDI_ENTRY_UPPER_SHIFT) == GDI_HANDLE_GET_UPPER(hGdiObj))
|
||||||
{
|
{
|
||||||
HANDLE pid = (HANDLE)((ULONG_PTR)Entry->ProcessId & ~0x1);
|
HANDLE pid = (HANDLE)((ULONG_PTR)Entry->ProcessId & ~0x1);
|
||||||
|
@ -152,7 +152,7 @@ BOOL GdiGetHandleUserData(HGDIOBJ hGdiObj, PVOID *UserData)
|
||||||
PLDC GdiGetLDC(HDC hDC)
|
PLDC GdiGetLDC(HDC hDC)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr))
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr))
|
||||||
return NULL;
|
return NULL;
|
||||||
return Dc_Attr->pvLDC;
|
return Dc_Attr->pvLDC;
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,7 +213,7 @@ STDCALL
|
||||||
GetROP2(HDC hdc)
|
GetROP2(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
return Dc_Attr->jROP2;
|
return Dc_Attr->jROP2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,7 +250,7 @@ SetROP2(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return FALSE;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
|
|
||||||
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG) hdc)
|
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG) hdc)
|
||||||
{
|
{
|
||||||
|
@ -277,7 +277,7 @@ GetBrushOrgEx(HDC hdc,LPPOINT pt)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return FALSE;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
if (pt)
|
if (pt)
|
||||||
{
|
{
|
||||||
pt->x = Dc_Attr->ptlBrushOrigin.x;
|
pt->x = Dc_Attr->ptlBrushOrigin.x;
|
||||||
|
@ -314,7 +314,7 @@ SetBrushOrgEx(HDC hdc,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr))
|
if (GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr))
|
||||||
{
|
{
|
||||||
PTEB pTeb = NtCurrentTeb();
|
PTEB pTeb = NtCurrentTeb();
|
||||||
if (lppt)
|
if (lppt)
|
||||||
|
|
|
@ -98,8 +98,7 @@ DPtoLP ( HDC hDC, LPPOINT Points, INT Count )
|
||||||
INT i;
|
INT i;
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if (Dc_Attr->flXform & ( DEVICE_TO_WORLD_INVALID | // Force a full recalibration!
|
if (Dc_Attr->flXform & ( DEVICE_TO_WORLD_INVALID | // Force a full recalibration!
|
||||||
PAGE_XLATE_CHANGED | // Changes or Updates have been made,
|
PAGE_XLATE_CHANGED | // Changes or Updates have been made,
|
||||||
|
@ -126,8 +125,7 @@ LPtoDP ( HDC hDC, LPPOINT Points, INT Count )
|
||||||
INT i;
|
INT i;
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if (Dc_Attr->flXform & ( PAGE_XLATE_CHANGED | // Check for Changes and Updates
|
if (Dc_Attr->flXform & ( PAGE_XLATE_CHANGED | // Check for Changes and Updates
|
||||||
PAGE_EXTENTS_CHANGED |
|
PAGE_EXTENTS_CHANGED |
|
||||||
|
@ -155,8 +153,7 @@ GetCurrentPositionEx(HDC hdc,
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if ( lpPoint )
|
if ( lpPoint )
|
||||||
{
|
{
|
||||||
|
@ -237,8 +234,7 @@ ModifyWorldTransform(
|
||||||
#endif
|
#endif
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
/* Check that graphics mode is GM_ADVANCED */
|
/* Check that graphics mode is GM_ADVANCED */
|
||||||
if ( Dc_Attr->iGraphicsMode != GM_ADVANCED ) return FALSE;
|
if ( Dc_Attr->iGraphicsMode != GM_ADVANCED ) return FALSE;
|
||||||
|
@ -255,8 +251,7 @@ GetViewportExtEx(
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if ((Dc_Attr->flXform & PAGE_EXTENTS_CHANGED) && (Dc_Attr->iMapMode == MM_ISOTROPIC))
|
if ((Dc_Attr->flXform & PAGE_EXTENTS_CHANGED) && (Dc_Attr->iMapMode == MM_ISOTROPIC))
|
||||||
// Something was updated, go to kernel.
|
// Something was updated, go to kernel.
|
||||||
|
@ -279,8 +274,7 @@ GetViewportOrgEx(
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
lpPoint->x = Dc_Attr->ptlViewportOrg.x;
|
lpPoint->x = Dc_Attr->ptlViewportOrg.x;
|
||||||
lpPoint->y = Dc_Attr->ptlViewportOrg.y;
|
lpPoint->y = Dc_Attr->ptlViewportOrg.y;
|
||||||
if (Dc_Attr->dwLayout & LAYOUT_RTL) lpPoint->x = -lpPoint->x;
|
if (Dc_Attr->dwLayout & LAYOUT_RTL) lpPoint->x = -lpPoint->x;
|
||||||
|
@ -298,8 +292,7 @@ GetWindowExtEx(
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
lpSize->cx = Dc_Attr->szlWindowExt.cx;
|
lpSize->cx = Dc_Attr->szlWindowExt.cx;
|
||||||
lpSize->cy = Dc_Attr->szlWindowExt.cy;
|
lpSize->cy = Dc_Attr->szlWindowExt.cy;
|
||||||
if (Dc_Attr->dwLayout & LAYOUT_RTL) lpSize->cx = -lpSize->cx;
|
if (Dc_Attr->dwLayout & LAYOUT_RTL) lpSize->cx = -lpSize->cx;
|
||||||
|
@ -317,8 +310,7 @@ GetWindowOrgEx(
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
lpPoint->x = Dc_Attr->ptlWindowOrg.x;
|
lpPoint->x = Dc_Attr->ptlWindowOrg.x;
|
||||||
lpPoint->y = Dc_Attr->ptlWindowOrg.y;
|
lpPoint->y = Dc_Attr->ptlWindowOrg.y;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -357,8 +349,7 @@ SetViewportExtEx(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if (lpSize)
|
if (lpSize)
|
||||||
{
|
{
|
||||||
|
@ -421,8 +412,7 @@ SetWindowOrgEx(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if (lpPoint)
|
if (lpPoint)
|
||||||
{
|
{
|
||||||
|
@ -484,8 +474,7 @@ SetWindowExtEx(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if (lpSize)
|
if (lpSize)
|
||||||
{
|
{
|
||||||
|
@ -556,8 +545,7 @@ SetViewportOrgEx(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if (lpPoint)
|
if (lpPoint)
|
||||||
{
|
{
|
||||||
|
@ -583,8 +571,7 @@ GetLayout(HDC hdc
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return GDI_ERROR;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return GDI_ERROR;
|
|
||||||
return Dc_Attr->dwLayout;
|
return Dc_Attr->dwLayout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ IntCreateDICW ( LPCWSTR lpwszDriver,
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
PLDC pLDC;
|
PLDC pLDC;
|
||||||
|
|
||||||
GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr);
|
GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr);
|
||||||
|
|
||||||
pLDC = LocalAlloc(LMEM_ZEROINIT, sizeof(LDC));
|
pLDC = LocalAlloc(LMEM_ZEROINIT, sizeof(LDC));
|
||||||
|
|
||||||
|
@ -258,7 +258,7 @@ DeleteDC(HDC hDC)
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
PLDC pLDC;
|
PLDC pLDC;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr)) return FALSE;
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
|
|
||||||
if ( Dc_Attr )
|
if ( Dc_Attr )
|
||||||
{
|
{
|
||||||
|
@ -330,7 +330,7 @@ DeleteObject(HGDIOBJ hObject)
|
||||||
PBRUSH_ATTR Brh_Attr;
|
PBRUSH_ATTR Brh_Attr;
|
||||||
PTEB pTeb;
|
PTEB pTeb;
|
||||||
|
|
||||||
if ((!GdiGetHandleUserData(hObject, (PVOID) &Brh_Attr)) ||
|
if ((!GdiGetHandleUserData(hObject, (DWORD)Type, (PVOID) &Brh_Attr)) ||
|
||||||
(Brh_Attr == NULL) ) break;
|
(Brh_Attr == NULL) ) break;
|
||||||
|
|
||||||
pTeb = NtCurrentTeb();
|
pTeb = NtCurrentTeb();
|
||||||
|
@ -387,7 +387,7 @@ GetDCObject( HDC hDC, INT iType)
|
||||||
HGDIOBJ hGO = NULL;
|
HGDIOBJ hGO = NULL;
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr)) return NULL;
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return NULL;
|
||||||
|
|
||||||
switch (iType)
|
switch (iType)
|
||||||
{
|
{
|
||||||
|
@ -750,7 +750,7 @@ GetDCBrushColor(
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return CLR_INVALID;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return CLR_INVALID;
|
||||||
return (COLORREF) Dc_Attr->ulPenClr;
|
return (COLORREF) Dc_Attr->ulPenClr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -765,7 +765,7 @@ GetDCPenColor(
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return CLR_INVALID;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return CLR_INVALID;
|
||||||
return (COLORREF) Dc_Attr->ulPenClr;
|
return (COLORREF) Dc_Attr->ulPenClr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -782,7 +782,7 @@ SetDCBrushColor(
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
COLORREF OldColor = CLR_INVALID;
|
COLORREF OldColor = CLR_INVALID;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldColor;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OldColor = (COLORREF) Dc_Attr->ulBrushClr;
|
OldColor = (COLORREF) Dc_Attr->ulBrushClr;
|
||||||
|
@ -810,7 +810,7 @@ SetDCPenColor(
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
COLORREF OldColor = CLR_INVALID;
|
COLORREF OldColor = CLR_INVALID;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldColor;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OldColor = (COLORREF) Dc_Attr->ulPenClr;
|
OldColor = (COLORREF) Dc_Attr->ulPenClr;
|
||||||
|
@ -834,7 +834,7 @@ STDCALL
|
||||||
GetBkColor(HDC hdc)
|
GetBkColor(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
return Dc_Attr->ulBackgroundClr;
|
return Dc_Attr->ulBackgroundClr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -851,7 +851,7 @@ SetBkColor(
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
COLORREF OldColor = CLR_INVALID;
|
COLORREF OldColor = CLR_INVALID;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldColor;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor;
|
||||||
#if 0
|
#if 0
|
||||||
if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
|
if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
|
||||||
{
|
{
|
||||||
|
@ -892,7 +892,7 @@ STDCALL
|
||||||
GetBkMode(HDC hdc)
|
GetBkMode(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
return Dc_Attr->lBkMode;
|
return Dc_Attr->lBkMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -908,7 +908,7 @@ SetBkMode(HDC hdc,
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
INT OldMode = 0;
|
INT OldMode = 0;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return OldMode;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldMode;
|
||||||
#if 0
|
#if 0
|
||||||
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
|
||||||
{
|
{
|
||||||
|
@ -944,7 +944,7 @@ STDCALL
|
||||||
GetPolyFillMode(HDC hdc)
|
GetPolyFillMode(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
return Dc_Attr->lFillMode;
|
return Dc_Attr->lFillMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -978,7 +978,7 @@ SetPolyFillMode(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
|
|
||||||
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc)
|
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc)
|
||||||
{
|
{
|
||||||
|
@ -1004,7 +1004,7 @@ STDCALL
|
||||||
GetGraphicsMode(HDC hdc)
|
GetGraphicsMode(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
return Dc_Attr->iGraphicsMode;
|
return Dc_Attr->iGraphicsMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1023,7 +1023,7 @@ SetGraphicsMode(HDC hdc,
|
||||||
SetLastError(ERROR_INVALID_PARAMETER);
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
|
|
||||||
if (iMode == Dc_Attr->iGraphicsMode) return iMode;
|
if (iMode == Dc_Attr->iGraphicsMode) return iMode;
|
||||||
|
|
||||||
|
@ -1234,7 +1234,7 @@ STDCALL
|
||||||
GetMapMode(HDC hdc)
|
GetMapMode(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
return Dc_Attr->iMapMode;
|
return Dc_Attr->iMapMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1249,7 +1249,7 @@ SetMapMode(
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
#if 0
|
#if 0
|
||||||
if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
|
if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
|
||||||
{
|
{
|
||||||
|
@ -1274,7 +1274,7 @@ STDCALL
|
||||||
GetStretchBltMode(HDC hdc)
|
GetStretchBltMode(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
return Dc_Attr->lStretchBltMode;
|
return Dc_Attr->lStretchBltMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1307,7 +1307,7 @@ SetStretchBltMode(HDC hdc, int iStretchMode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return 0;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
|
|
||||||
oSMode = Dc_Attr->lStretchBltMode;
|
oSMode = Dc_Attr->lStretchBltMode;
|
||||||
Dc_Attr->lStretchBltMode = iStretchMode;
|
Dc_Attr->lStretchBltMode = iStretchMode;
|
||||||
|
@ -1328,7 +1328,7 @@ STDCALL
|
||||||
GetHFONT(HDC hdc)
|
GetHFONT(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr)) return NULL;
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return NULL;
|
||||||
return Dc_Attr->hlfntNew;
|
return Dc_Attr->hlfntNew;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ MoveToEx( HDC hDC, INT x, INT y, LPPOINT Point )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr)) return FALSE;
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
|
|
||||||
if ( Point )
|
if ( Point )
|
||||||
{
|
{
|
||||||
|
|
|
@ -55,8 +55,7 @@ STDCALL
|
||||||
GdiGetCodePage(HDC hdc)
|
GdiGetCodePage(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return 0;
|
|
||||||
if (Dc_Attr->ulDirty_ & DIRTY_CHARSET) return LOWORD(NtGdiGetCharSet(hdc));
|
if (Dc_Attr->ulDirty_ & DIRTY_CHARSET) return LOWORD(NtGdiGetCharSet(hdc));
|
||||||
return LOWORD(Dc_Attr->iCS_CP);
|
return LOWORD(Dc_Attr->iCS_CP);
|
||||||
}
|
}
|
||||||
|
@ -73,8 +72,7 @@ GetTextCharacterExtra(
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
|
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hDc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
(GDI_HANDLE_GET_TYPE(hDc) != GDI_OBJECT_TYPE_DC)) return 0;
|
|
||||||
return Dc_Attr->lTextExtra;
|
return Dc_Attr->lTextExtra;
|
||||||
// return GetDCDWord( hDc, GdiGetTextCharExtra, 0);
|
// return GetDCDWord( hDc, GdiGetTextCharExtra, 0);
|
||||||
}
|
}
|
||||||
|
@ -444,8 +442,7 @@ SetTextCharacterExtra(
|
||||||
return MFDRV_SetTextCharacterExtra( hDC, CharExtra ); // Wine port.
|
return MFDRV_SetTextCharacterExtra( hDC, CharExtra ); // Wine port.
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return cExtra;
|
||||||
(GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)) return cExtra;
|
|
||||||
|
|
||||||
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hDC)
|
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hDC)
|
||||||
{
|
{
|
||||||
|
@ -470,8 +467,7 @@ STDCALL
|
||||||
GetTextAlign(HDC hdc)
|
GetTextAlign(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return 0;
|
|
||||||
return Dc_Attr->lTextAlign;
|
return Dc_Attr->lTextAlign;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -485,8 +481,7 @@ STDCALL
|
||||||
GetTextColor(HDC hdc)
|
GetTextColor(HDC hdc)
|
||||||
{
|
{
|
||||||
PDC_ATTR Dc_Attr;
|
PDC_ATTR Dc_Attr;
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return 0;
|
|
||||||
return Dc_Attr->ulForegroundClr;
|
return Dc_Attr->ulForegroundClr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -522,8 +517,7 @@ SetTextAlign(HDC hdc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldMode;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return OldMode;
|
|
||||||
|
|
||||||
OldMode = Dc_Attr->lTextAlign;
|
OldMode = Dc_Attr->lTextAlign;
|
||||||
Dc_Attr->lTextAlign = fMode; // Raw
|
Dc_Attr->lTextAlign = fMode; // Raw
|
||||||
|
@ -569,8 +563,7 @@ SetTextColor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return OldColor;
|
|
||||||
|
|
||||||
OldColor = (COLORREF) Dc_Attr->ulForegroundClr;
|
OldColor = (COLORREF) Dc_Attr->ulForegroundClr;
|
||||||
Dc_Attr->ulForegroundClr = (ULONG) crColor;
|
Dc_Attr->ulForegroundClr = (ULONG) crColor;
|
||||||
|
@ -606,8 +599,7 @@ SetTextJustification(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!GdiGetHandleUserData((HGDIOBJ) hdc, (PVOID) &Dc_Attr) ||
|
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE;
|
||||||
(GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)) return FALSE;
|
|
||||||
|
|
||||||
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc)
|
if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue