fix a smaller bug in GdiSetBatchLimit
fix GdiSetLastError to be simluare to windows xp
svn path=/trunk/; revision=29203
DdEntry7@12=NtGdiDdAddAttachedSurface@12
DdEntry8@12=NtGdiDdAlphaBlt@12
DdEntry9@8=NtGdiDdAttachSurface@8
DdEntry7@12=NtGdiDdAddAttachedSurface@12
DdEntry8@12=NtGdiDdAlphaBlt@12
DdEntry9@8=NtGdiDdAttachSurface@8
DeleteColorSpace@4=NtGdiDeleteColorSpace@4
DeleteDC@4
DeleteEnhMetaFile@4
DeleteColorSpace@4=NtGdiDeleteColorSpace@4
DeleteDC@4
DeleteEnhMetaFile@4
GdiDeleteSpoolFileHandle@4
GdiDescribePixelFormat@16=NtGdiDescribePixelFormat@16
GdiDllInitialize@12
GdiDeleteSpoolFileHandle@4
GdiDescribePixelFormat@16=NtGdiDescribePixelFormat@16
GdiDllInitialize@12
GdiEndDocEMF@4
GdiEndPageEMF@8
GdiEntry10@8
GdiEndDocEMF@4
GdiEndPageEMF@8
GdiEntry10@8
GdiValidateHandle@4
GetArcDirection@4
GetAspectRatioFilterEx@8
GdiValidateHandle@4
GetArcDirection@4
GetAspectRatioFilterEx@8
GetBitmapBits@12=NtGdiGetBitmapBits@12
GetBitmapDimensionEx@8=NtGdiGetBitmapDimension@8
GetBkColor@4
GetBitmapBits@12=NtGdiGetBitmapBits@12
GetBitmapDimensionEx@8=NtGdiGetBitmapDimension@8
GetBkColor@4
XLATEOBJ_cGetPalette@16=NtGdiXLATEOBJ_cGetPalette@16
XLATEOBJ_hGetColorTransform@4=NtGdiXLATEOBJ_hGetColorTransform@4
XLATEOBJ_cGetPalette@16=NtGdiXLATEOBJ_cGetPalette@16
XLATEOBJ_hGetColorTransform@4=NtGdiXLATEOBJ_hGetColorTransform@4
-GdiDrawStream@12
-GetBitmapAttributes@4
GetBrushAttributes@4
GetGlyphIndicesA@20
GetTextExtentExPointWPri@28
GetBrushAttributes@4
GetGlyphIndicesA@20
GetTextExtentExPointWPri@28
if (!ghDirectDraw)
{
/* Create the DC */
if (!ghDirectDraw)
{
/* Create the DC */
- if ((hdc = CreateDC(L"Display", NULL, NULL, NULL)))
+ if ((hdc = CreateDCW(L"Display", NULL, NULL, NULL)))
{
/* Create the DDraw Object */
ghDirectDraw = NtGdiDdCreateDirectDrawObject(hdc);
{
/* Create the DDraw Object */
ghDirectDraw = NtGdiDdCreateDirectDrawObject(hdc);
else
{
/* Using the per-process object, so create it */
else
{
/* Using the per-process object, so create it */
- pDirectDrawGlobal->hDD = (ULONG_PTR)NtGdiDdCreateDirectDrawObject(hdc);
+ pDirectDrawGlobal->hDD = (ULONG_PTR)NtGdiDdCreateDirectDrawObject(hdc);
/* Set the return value */
Return = pDirectDrawGlobal->hDD ? TRUE : FALSE;
/* Set the return value */
Return = pDirectDrawGlobal->hDD ? TRUE : FALSE;
DdCreateSurfaceObject( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
BOOL bPrimarySurface)
{
DdCreateSurfaceObject( LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
BOOL bPrimarySurface)
{
- return bDDCreateSurface(pSurfaceLocal, TRUE);
- //return bDdCreateSurfaceObject(pSurfaceLocal, TRUE);
+ return bDDCreateSurface(pSurfaceLocal, TRUE);
HANDLE hSectionApp,
DWORD dwOffset)
{
HANDLE hSectionApp,
DWORD dwOffset)
{
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;
STDCALL
DdQueryDisplaySettingsUniqueness()
{
STDCALL
DdQueryDisplaySettingsUniqueness()
{
+ /* FIXME share memory */
return RemberDdQueryDisplaySettingsUniquenessID;
}
return RemberDdQueryDisplaySettingsUniquenessID;
}
+
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+GdiGetLocalBrush(HBRUSH hbr)
+{
+ return hbr;
+}
+
+/*
+ * @implemented
+ */
+HDC
+STDCALL
+GdiGetLocalDC(HDC hdc)
+{
+ return hdc;
+}
+
+/*
+ * @implemented
+ */
+HFONT
+STDCALL
+GdiGetLocalFont(HFONT hfont)
+{
+ return hfont;
+}
+
STDCALL
GdiFixUpHandle(HGDIOBJ hGdiObj)
{
STDCALL
GdiFixUpHandle(HGDIOBJ hGdiObj)
{
- if (((ULONG_PTR)(hGdiObj)) & GDI_HANDLE_UPPER_MASK ) return hGdiObj;
- PGDI_TABLE_ENTRY Entry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hGdiObj);
- return hGdiObj = (HGDIOBJ)(((LONG_PTR)(hGdiObj)) |
- (Entry->Type << GDI_ENTRY_UPPER_SHIFT)); // Rebuild handle for Object
+ PGDI_TABLE_ENTRY Entry;
+
+ if (((ULONG_PTR)(hGdiObj)) & GDI_HANDLE_UPPER_MASK )
+ {
+ 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));
STDCALL
GdiSetBatchLimit(DWORD Limit)
{
STDCALL
GdiSetBatchLimit(DWORD Limit)
{
- DWORD OldLimit = GDI_BatchLimit;
- if ((!Limit) || (Limit > GDI_BATCH_LIMIT)) return Limit;
+ DWORD OldLimit = GDI_BatchLimit;
+
+ if ( (!Limit) ||
+ (Limit >= GDI_BATCH_LIMIT))
+ {
+ return Limit;
+ }
+
GdiFlush();
GDI_BatchLimit = Limit;
return OldLimit;
GdiFlush();
GDI_BatchLimit = Limit;
return OldLimit;
-INT STDCALL
-ExtEscape(
- HDC hDC,
- int nEscape,
- int cbInput,
- LPCSTR lpszInData,
- int cbOutput,
- LPSTR lpszOutData
-)
+INT
+STDCALL
+ExtEscape(HDC hDC,
+ int nEscape,
+ int cbInput,
+ LPCSTR lpszInData,
+ int cbOutput,
+ LPSTR lpszOutData)
- return NtGdiExtEscape(hDC, NULL, 0, nEscape, cbInput, (LPSTR)lpszInData, cbOutput, lpszOutData);
+ return NtGdiExtEscape(hDC, NULL, 0, nEscape, cbInput, (LPSTR)lpszInData, cbOutput, lpszOutData);
STDCALL
GdiSetLastError(DWORD dwErrCode)
{
STDCALL
GdiSetLastError(DWORD dwErrCode)
{
- SetLastError(dwErrCode);
+ NtCurrentTeb ()->LastErrorValue = (ULONG) dwErrCode;
STDCALL
GdiConvertEnhMetaFile(HENHMETAFILE hmf)
{
STDCALL
GdiConvertEnhMetaFile(HENHMETAFILE hmf)
{
- UNIMPLEMENTED;
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
+ UNIMPLEMENTED;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;
STDCALL
GdiDrawStream(HDC dc, ULONG l, VOID *v)
{
STDCALL
GdiDrawStream(HDC dc, ULONG l, VOID *v)
{
- UNIMPLEMENTED;
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
+ UNIMPLEMENTED;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;
STDCALL
GdiGetCodePage(HDC hdc)
{
STDCALL
GdiGetCodePage(HDC hdc)
{
- UNIMPLEMENTED;
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- 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;
+ UNIMPLEMENTED;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;
STDCALL
GdiIsMetaFileDC(HDC hdc)
{
STDCALL
GdiIsMetaFileDC(HDC hdc)
{
- UNIMPLEMENTED;
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
+ UNIMPLEMENTED;
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;