Fixup UnrealizeObject so it can return the correct state for a Brush Object.

svn path=/trunk/; revision=16640
This commit is contained in:
James Tabor 2005-07-19 03:13:11 +00:00
parent a6fd14c5c8
commit 6f5624c2a4

View file

@ -594,14 +594,14 @@ NtGdiUnrealizeObject(HGDIOBJ hgdiobj)
GDIOBJHDR * ptr; GDIOBJHDR * ptr;
DWORD objectType; DWORD objectType;
BOOL Ret = FALSE;
UNIMPLEMENTED; UNIMPLEMENTED;
ptr = GDIOBJ_LockObj(hgdiobj, GDI_OBJECT_TYPE_DONTCARE); ptr = GDIOBJ_LockObj(hgdiobj, GDI_OBJECT_TYPE_DONTCARE);
if (ptr == 0) if (ptr == 0)
{ {
SetLastWin32Error(ERROR_INVALID_HANDLE); SetLastWin32Error(ERROR_INVALID_HANDLE);
return FALSE; return Ret;
} }
objectType = GDIOBJ_GetObjectType(hgdiobj); objectType = GDIOBJ_GetObjectType(hgdiobj);
switch(objectType) switch(objectType)
@ -612,9 +612,16 @@ NtGdiUnrealizeObject(HGDIOBJ hgdiobj)
DPRINT1("GDI_OBJECT_TYPE_PALETTE\n"); DPRINT1("GDI_OBJECT_TYPE_PALETTE\n");
break; break;
} }
/*
msdn.microsoft.com,
"Windows 2000/XP: If hgdiobj is a brush, UnrealizeObject does nothing,
and the function returns TRUE. Use SetBrushOrgEx to set the origin of
a brush."
*/
case GDI_OBJECT_TYPE_BRUSH: case GDI_OBJECT_TYPE_BRUSH:
{ {
DPRINT1("GDI_OBJECT_TYPE_BRUSH\n"); DPRINT1("GDI_OBJECT_TYPE_BRUSH\n");
Ret = TRUE;
break; break;
} }
default: default:
@ -623,7 +630,7 @@ NtGdiUnrealizeObject(HGDIOBJ hgdiobj)
} }
GDIOBJ_UnlockObjByPtr(ptr); GDIOBJ_UnlockObjByPtr(ptr);
return FALSE; return Ret;
} }
BOOL STDCALL BOOL STDCALL