Implement GetDCDWord, update GetObjectType and printing.c fixups.

svn path=/trunk/; revision=25235
This commit is contained in:
James Tabor 2006-12-28 22:36:53 +00:00
parent 7a40310c04
commit 168bd92ec5
2 changed files with 24 additions and 12 deletions

View file

@ -322,6 +322,17 @@ GetRelAbs(
return NtGdiGetRelAbs(hdc); return NtGdiGetRelAbs(hdc);
} }
DWORD
STDCALL
GetDCDWord( HDC hDC, INT u, DWORD Result )
{
BOOL Ret = TRUE; //NtGdiGetDCDword( hDC, u, (DWORD*) &u );
if (!Ret) return Result;
else return u;
}
/* /*
* @implemented * @implemented
*/ */
@ -528,10 +539,15 @@ GetObjectType(
Ret = OBJ_REGION; Ret = OBJ_REGION;
break; break;
case GDI_OBJECT_TYPE_DC: case GDI_OBJECT_TYPE_DC:
Ret = OBJ_DC; if ( GetDCDWord( h, GdiGetIsMemDc, 0))
{
Ret = OBJ_MEMDC;
}
else
Ret = OBJ_DC;
break; break;
case GDI_OBJECT_TYPE_METADC: case GDI_OBJECT_TYPE_COLORSPACE:
Ret = OBJ_METADC; Ret = OBJ_COLORSPACE;
break; break;
case GDI_OBJECT_TYPE_METAFILE: case GDI_OBJECT_TYPE_METAFILE:
Ret = OBJ_METAFILE; Ret = OBJ_METAFILE;
@ -559,3 +575,5 @@ GetObjectType(
SetLastError(ERROR_INVALID_HANDLE); SetLastError(ERROR_INVALID_HANDLE);
return Ret; return Ret;
} }

View file

@ -139,8 +139,7 @@ MoveToEx( HDC hDC, INT x, INT y, LPPOINT Point )
if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
{ {
if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC) if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
// return MFDRV_MetaParam2( hDC, META_MOVETO, x, y); return MFDRV_MetaParam2( hDC, META_MOVETO, x, y);
return FALSE;
else else
{ {
PLDC pLDC = Dc_Attr->pvLDC; PLDC pLDC = Dc_Attr->pvLDC;
@ -151,8 +150,7 @@ MoveToEx( HDC hDC, INT x, INT y, LPPOINT Point )
} }
if (pLDC->iType == LDC_EMFLDC) if (pLDC->iType == LDC_EMFLDC)
{ {
//if (!EMFDRV_MoveTo( hDC, x, y)) if (!EMFDRV_MoveTo( hDC, x, y)) return FALSE;
return FALSE;
} }
} }
} }
@ -441,12 +439,8 @@ COLORREF
STDCALL STDCALL
GetPixel( HDC hDC, INT x, INT y ) GetPixel( HDC hDC, INT x, INT y )
{ {
PDC_ATTR Dc_Attr;
if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) return CLR_INVALID; if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) return CLR_INVALID;
if (!GdiIsHandleValid((HGDIOBJ) hDC)) return CLR_INVALID;
if (!GdiGetHandleUserData((HGDIOBJ) hDC, (PVOID) &Dc_Attr)) return CLR_INVALID;
return NtGdiGetPixel( hDC, x, y); return NtGdiGetPixel( hDC, x, y);
} }