forget commit Implement of GdiGetLocalBrush, GdiGetLocalDC, GdiGetLocalFont

fix a smaller bug in GdiSetBatchLimit
fix GdiSetLastError to be simluare to windows xp 


svn path=/trunk/; revision=29203
This commit is contained in:
Magnus Olsen 2007-09-25 20:44:53 +00:00
parent 588e62a967
commit a9892925a1
5 changed files with 84 additions and 76 deletions

View file

@ -146,9 +146,6 @@ DdEntry6@4=NtGdiDdGetDriverState@4
DdEntry7@12=NtGdiDdAddAttachedSurface@12 DdEntry7@12=NtGdiDdAddAttachedSurface@12
DdEntry8@12=NtGdiDdAlphaBlt@12 DdEntry8@12=NtGdiDdAlphaBlt@12
DdEntry9@8=NtGdiDdAttachSurface@8 DdEntry9@8=NtGdiDdAttachSurface@8
DeleteColorSpace@4=NtGdiDeleteColorSpace@4 DeleteColorSpace@4=NtGdiDeleteColorSpace@4
DeleteDC@4 DeleteDC@4
DeleteEnhMetaFile@4 DeleteEnhMetaFile@4
@ -273,6 +270,7 @@ GdiDeleteLocalDC@4
GdiDeleteSpoolFileHandle@4 GdiDeleteSpoolFileHandle@4
GdiDescribePixelFormat@16=NtGdiDescribePixelFormat@16 GdiDescribePixelFormat@16=NtGdiDescribePixelFormat@16
GdiDllInitialize@12 GdiDllInitialize@12
GdiDrawStream@12
GdiEndDocEMF@4 GdiEndDocEMF@4
GdiEndPageEMF@8 GdiEndPageEMF@8
GdiEntry10@8 GdiEntry10@8
@ -338,6 +336,7 @@ GdiTransparentBlt@44
GdiValidateHandle@4 GdiValidateHandle@4
GetArcDirection@4 GetArcDirection@4
GetAspectRatioFilterEx@8 GetAspectRatioFilterEx@8
GetBitmapAttributes@4
GetBitmapBits@12=NtGdiGetBitmapBits@12 GetBitmapBits@12=NtGdiGetBitmapBits@12
GetBitmapDimensionEx@8=NtGdiGetBitmapDimension@8 GetBitmapDimensionEx@8=NtGdiGetBitmapDimension@8
GetBkColor@4 GetBkColor@4
@ -609,8 +608,8 @@ XFORMOBJ_iGetXform@8=NtGdiXFORMOBJ_iGetXform@8
XLATEOBJ_cGetPalette@16=NtGdiXLATEOBJ_cGetPalette@16 XLATEOBJ_cGetPalette@16=NtGdiXLATEOBJ_cGetPalette@16
XLATEOBJ_hGetColorTransform@4=NtGdiXLATEOBJ_hGetColorTransform@4 XLATEOBJ_hGetColorTransform@4=NtGdiXLATEOBJ_hGetColorTransform@4
GdiDrawStream@12
GetBitmapAttributes@4
GetBrushAttributes@4 GetBrushAttributes@4
GetGlyphIndicesA@20 GetGlyphIndicesA@20
GetTextExtentExPointWPri@28 GetTextExtentExPointWPri@28

View file

@ -485,7 +485,7 @@ DdCreateDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
if (!ghDirectDraw) if (!ghDirectDraw)
{ {
/* Create the DC */ /* Create the DC */
if ((hdc = CreateDC(L"Display", NULL, NULL, NULL))) if ((hdc = CreateDCW(L"Display", NULL, NULL, NULL)))
{ {
/* Create the DDraw Object */ /* Create the DDraw Object */
ghDirectDraw = NtGdiDdCreateDirectDrawObject(hdc); ghDirectDraw = NtGdiDdCreateDirectDrawObject(hdc);
@ -509,7 +509,7 @@ DdCreateDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
else else
{ {
/* Using the per-process object, so create it */ /* Using the per-process object, so create it */
pDirectDrawGlobal->hDD = (ULONG_PTR)NtGdiDdCreateDirectDrawObject(hdc); pDirectDrawGlobal->hDD = (ULONG_PTR)NtGdiDdCreateDirectDrawObject(hdc);
/* Set the return value */ /* Set the return value */
Return = pDirectDrawGlobal->hDD ? TRUE : FALSE; Return = pDirectDrawGlobal->hDD ? TRUE : FALSE;
@ -830,8 +830,7 @@ WINAPI
DdCreateSurfaceObject( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal, DdCreateSurfaceObject( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
BOOL bPrimarySurface) BOOL bPrimarySurface)
{ {
return bDDCreateSurface(pSurfaceLocal, TRUE); return bDDCreateSurface(pSurfaceLocal, TRUE);
//return bDdCreateSurfaceObject(pSurfaceLocal, TRUE);
} }
@ -911,8 +910,8 @@ DdCreateDIBSection(HDC hdc,
HANDLE hSectionApp, HANDLE hSectionApp,
DWORD dwOffset) DWORD dwOffset)
{ {
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0; return 0;
} }
/* /*
@ -988,6 +987,7 @@ ULONG
STDCALL STDCALL
DdQueryDisplaySettingsUniqueness() DdQueryDisplaySettingsUniqueness()
{ {
/* FIXME share memory */
return RemberDdQueryDisplaySettingsUniquenessID; return RemberDdQueryDisplaySettingsUniquenessID;
} }

View file

@ -265,3 +265,34 @@ SelectFontLocal(HFONT Currenthfnt,
{ {
return newhfnt; return newhfnt;
} }
/*
* @implemented
*/
HBRUSH
STDCALL
GdiGetLocalBrush(HBRUSH hbr)
{
return hbr;
}
/*
* @implemented
*/
HDC
STDCALL
GdiGetLocalDC(HDC hdc)
{
return hdc;
}
/*
* @implemented
*/
HFONT
STDCALL
GdiGetLocalFont(HFONT hfont)
{
return hfont;
}

View file

@ -75,10 +75,19 @@ HGDIOBJ
STDCALL STDCALL
GdiFixUpHandle(HGDIOBJ hGdiObj) GdiFixUpHandle(HGDIOBJ hGdiObj)
{ {
if (((ULONG_PTR)(hGdiObj)) & GDI_HANDLE_UPPER_MASK ) return hGdiObj; PGDI_TABLE_ENTRY Entry;
PGDI_TABLE_ENTRY Entry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hGdiObj);
return hGdiObj = (HGDIOBJ)(((LONG_PTR)(hGdiObj)) | if (((ULONG_PTR)(hGdiObj)) & GDI_HANDLE_UPPER_MASK )
(Entry->Type << GDI_ENTRY_UPPER_SHIFT)); // Rebuild handle for Object {
return hGdiObj;
}
/* FIXME is this right ?? */
Entry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hGdiObj);
/* Rebuild handle for Object */
return hGdiObj = (HGDIOBJ)(((LONG_PTR)(hGdiObj)) | (Entry->Type << GDI_ENTRY_UPPER_SHIFT));
} }
/* /*
@ -138,8 +147,14 @@ DWORD
STDCALL STDCALL
GdiSetBatchLimit(DWORD Limit) GdiSetBatchLimit(DWORD Limit)
{ {
DWORD OldLimit = GDI_BatchLimit; DWORD OldLimit = GDI_BatchLimit;
if ((!Limit) || (Limit > GDI_BATCH_LIMIT)) return Limit;
if ( (!Limit) ||
(Limit >= GDI_BATCH_LIMIT))
{
return Limit;
}
GdiFlush(); GdiFlush();
GDI_BatchLimit = Limit; GDI_BatchLimit = Limit;
return OldLimit; return OldLimit;
@ -166,17 +181,16 @@ GdiReleaseDC(HDC hdc)
return 0; return 0;
} }
INT STDCALL INT
ExtEscape( STDCALL
HDC hDC, ExtEscape(HDC hDC,
int nEscape, int nEscape,
int cbInput, int cbInput,
LPCSTR lpszInData, LPCSTR lpszInData,
int cbOutput, int cbOutput,
LPSTR lpszOutData LPSTR lpszOutData)
)
{ {
return NtGdiExtEscape(hDC, NULL, 0, nEscape, cbInput, (LPSTR)lpszInData, cbOutput, lpszOutData); return NtGdiExtEscape(hDC, NULL, 0, nEscape, cbInput, (LPSTR)lpszInData, cbOutput, lpszOutData);
} }
/* /*
@ -186,5 +200,5 @@ VOID
STDCALL STDCALL
GdiSetLastError(DWORD dwErrCode) GdiSetLastError(DWORD dwErrCode)
{ {
SetLastError(dwErrCode); NtCurrentTeb ()->LastErrorValue = (ULONG) dwErrCode;
} }

View file

@ -1502,9 +1502,9 @@ HENHMETAFILE
STDCALL STDCALL
GdiConvertEnhMetaFile(HENHMETAFILE hmf) GdiConvertEnhMetaFile(HENHMETAFILE hmf)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0; return 0;
} }
/* /*
@ -1514,9 +1514,9 @@ BOOL
STDCALL STDCALL
GdiDrawStream(HDC dc, ULONG l, VOID *v) GdiDrawStream(HDC dc, ULONG l, VOID *v)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0; return 0;
} }
/* /*
@ -1526,45 +1526,9 @@ DWORD
STDCALL STDCALL
GdiGetCodePage(HDC hdc) GdiGetCodePage(HDC hdc)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0; return 0;
}
/*
* @unimplemented
*/
HBRUSH
STDCALL
GdiGetLocalBrush(HBRUSH hbr)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
HDC
STDCALL
GdiGetLocalDC(HDC hdc)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
}
/*
* @unimplemented
*/
HFONT
STDCALL
GdiGetLocalFont(HFONT hfont)
{
UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0;
} }
/* /*
@ -1574,9 +1538,9 @@ BOOL
STDCALL STDCALL
GdiIsMetaFileDC(HDC hdc) GdiIsMetaFileDC(HDC hdc)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED); SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return 0; return 0;
} }
/* /*