mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 19:03:00 +00:00
- rename ASSERT1 to ASSERT
- link to w32kdll instead of implementing all syscalls as stubs. I will remove the rest of the syscall code as soon as our syscall db is more complete - more TEST -> RTEST - update w32kdll_ros.def - add tests for NtGdiEngCreatePalette, NtGdiEnumFontOpen - Add some gdi handle table code to w32knapi - header cleanup svn path=/trunk/; revision=28619
This commit is contained in:
parent
fd255663f3
commit
b91657fe81
24 changed files with 243 additions and 250 deletions
|
@ -1,8 +1,6 @@
|
||||||
#ifndef _APITEST_H
|
#ifndef _APITEST_H
|
||||||
#define _APITEST_H
|
#define _APITEST_H
|
||||||
|
|
||||||
#define WINVER 0x501
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -84,8 +82,8 @@ typedef struct tagTEST
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef ASSERT
|
||||||
#define ASSERT1(x) \
|
#define ASSERT(x) \
|
||||||
if (!(x)) \
|
if (!(x)) \
|
||||||
{ \
|
{ \
|
||||||
printf("Assertion failed in %s:%d (%s)\n", __FILE__, __LINE__, #x);\
|
printf("Assertion failed in %s:%d (%s)\n", __FILE__, __LINE__, #x);\
|
||||||
|
|
|
@ -26,12 +26,12 @@ TESTENTRY TestList[] =
|
||||||
{ L"CreateRectRgn", Test_CreateRectRgn },
|
{ L"CreateRectRgn", Test_CreateRectRgn },
|
||||||
{ L"ExtCreatePen", Test_ExtCreatePen },
|
{ L"ExtCreatePen", Test_ExtCreatePen },
|
||||||
{ L"GetClipRgn", Test_GetClipRgn },
|
{ L"GetClipRgn", Test_GetClipRgn },
|
||||||
|
{ L"GetObject", Test_GetObject },
|
||||||
{ L"GetStockObject", Test_GetStockObject },
|
{ L"GetStockObject", Test_GetStockObject },
|
||||||
{ L"SetSysColors", Test_SetSysColors },
|
{ L"SetSysColors", Test_SetSysColors },
|
||||||
{ L"SelectObject", Test_SelectObject },
|
{ L"SelectObject", Test_SelectObject },
|
||||||
{ L"SetDCPenColor", Test_SetDCPenColor },
|
{ L"SetDCPenColor", Test_SetDCPenColor },
|
||||||
// { L"SetWorldTransform", Test_SetWorldTransform },
|
// { L"SetWorldTransform", Test_SetWorldTransform },
|
||||||
{ L"GetObject", Test_GetObject }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The function that gives us the number of tests */
|
/* The function that gives us the number of tests */
|
||||||
|
|
|
@ -3,9 +3,24 @@
|
||||||
INT
|
INT
|
||||||
Test_GetClipRgn(PTESTINFO pti)
|
Test_GetClipRgn(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
// HRGN hRgn;
|
HWND hWnd;
|
||||||
|
HDC hDC;
|
||||||
|
HRGN hrgn;//, hrgn2;
|
||||||
|
|
||||||
|
/* Create a window */
|
||||||
|
hWnd = CreateWindowW(L"BUTTON", L"TestWindow", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||||
|
CW_USEDEFAULT, CW_USEDEFAULT, 100, 100,
|
||||||
|
NULL, NULL, g_hInstance, 0);
|
||||||
|
|
||||||
|
hDC = GetDC(hWnd);
|
||||||
|
hrgn = CreateRectRgn(0,0,0,0);
|
||||||
|
|
||||||
|
SetLastError(ERROR_SUCCESS);
|
||||||
|
// TEST(GetClipRgn(hDC)
|
||||||
|
|
||||||
|
ReleaseDC(hWnd, hDC);
|
||||||
|
DestroyWindow(hWnd);
|
||||||
|
|
||||||
// hRgn = CreateRectRgn(
|
|
||||||
return APISTATUS_NORMAL;
|
return APISTATUS_NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -178,21 +178,21 @@ Test_Brush(PTESTINFO pti)
|
||||||
TEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_BRUSH, 0, NULL) == sizeof(LOGBRUSH));
|
TEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_BRUSH, 0, NULL) == sizeof(LOGBRUSH));
|
||||||
TEST(GetObject(hBrush, sizeof(WORD), NULL) == sizeof(LOGBRUSH));
|
TEST(GetObject(hBrush, sizeof(WORD), NULL) == sizeof(LOGBRUSH));
|
||||||
TEST(GetObject(hBrush, 0, NULL) == sizeof(LOGBRUSH));
|
TEST(GetObject(hBrush, 0, NULL) == sizeof(LOGBRUSH));
|
||||||
TEST(GetObject(hBrush, 5, NULL) == sizeof(LOGBRUSH));
|
RTEST(GetObject(hBrush, 5, NULL) == sizeof(LOGBRUSH));
|
||||||
TEST(GetObject(hBrush, -5, NULL) == sizeof(LOGBRUSH));
|
RTEST(GetObject(hBrush, -5, NULL) == sizeof(LOGBRUSH));
|
||||||
|
|
||||||
TEST(GetObject(hBrush, 0, &logbrush) == 0);
|
RTEST(GetObject(hBrush, 0, &logbrush) == 0);
|
||||||
TEST(logbrush.lbStyle == 0x77777777);
|
RTEST(logbrush.lbStyle == 0x77777777);
|
||||||
TEST(GetObject(hBrush, 5, &logbrush) == sizeof(LOGBRUSH));
|
RTEST(GetObject(hBrush, 5, &logbrush) == sizeof(LOGBRUSH));
|
||||||
TEST(logbrush.lbStyle == 0);
|
RTEST(logbrush.lbStyle == 0);
|
||||||
TEST(logbrush.lbColor == 0x77777701);
|
RTEST(logbrush.lbColor == 0x77777701);
|
||||||
|
|
||||||
TEST(GetObject(hBrush, sizeof(LOGBRUSH), &logbrush) == sizeof(LOGBRUSH));
|
RTEST(GetObject(hBrush, sizeof(LOGBRUSH), &logbrush) == sizeof(LOGBRUSH));
|
||||||
TEST(GetObject(hBrush, sizeof(LOGBRUSH)+2, &logbrush) == sizeof(LOGBRUSH));
|
RTEST(GetObject(hBrush, sizeof(LOGBRUSH)+2, &logbrush) == sizeof(LOGBRUSH));
|
||||||
TEST(GetObject(hBrush, -1, &logbrush) == sizeof(LOGBRUSH));
|
RTEST(GetObject(hBrush, -1, &logbrush) == sizeof(LOGBRUSH));
|
||||||
// TODO: test all members
|
// TODO: test all members
|
||||||
|
|
||||||
TEST(GetLastError() == ERROR_SUCCESS);
|
RTEST(GetLastError() == ERROR_SUCCESS);
|
||||||
DeleteObject(hBrush);
|
DeleteObject(hBrush);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -207,21 +207,21 @@ Test_Pen(PTESTINFO pti)
|
||||||
hPen = CreatePen(PS_SOLID, 3, RGB(4,5,6));
|
hPen = CreatePen(PS_SOLID, 3, RGB(4,5,6));
|
||||||
if (!hPen) return FALSE;
|
if (!hPen) return FALSE;
|
||||||
SetLastError(ERROR_SUCCESS);
|
SetLastError(ERROR_SUCCESS);
|
||||||
TEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
RTEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
||||||
TEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
RTEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
||||||
TEST(GetObject(hPen, sizeof(BITMAP), NULL) == sizeof(LOGPEN));
|
RTEST(GetObject(hPen, sizeof(BITMAP), NULL) == sizeof(LOGPEN));
|
||||||
TEST(GetObject(hPen, 0, NULL) == sizeof(LOGPEN));
|
RTEST(GetObject(hPen, 0, NULL) == sizeof(LOGPEN));
|
||||||
TEST(GetObject(hPen, 5, NULL) == sizeof(LOGPEN));
|
RTEST(GetObject(hPen, 5, NULL) == sizeof(LOGPEN));
|
||||||
TEST(GetObject(hPen, -5, NULL) == sizeof(LOGPEN));
|
RTEST(GetObject(hPen, -5, NULL) == sizeof(LOGPEN));
|
||||||
TEST(GetObject(hPen, sizeof(LOGPEN), &logpen) == sizeof(LOGPEN));
|
RTEST(GetObject(hPen, sizeof(LOGPEN), &logpen) == sizeof(LOGPEN));
|
||||||
TEST(GetObject(hPen, sizeof(LOGPEN)-1, &logpen) == 0);
|
RTEST(GetObject(hPen, sizeof(LOGPEN)-1, &logpen) == 0);
|
||||||
TEST(GetObject(hPen, sizeof(LOGPEN)+2, &logpen) == sizeof(LOGPEN));
|
RTEST(GetObject(hPen, sizeof(LOGPEN)+2, &logpen) == sizeof(LOGPEN));
|
||||||
TEST(GetObject(hPen, 0, &logpen) == 0);
|
RTEST(GetObject(hPen, 0, &logpen) == 0);
|
||||||
TEST(GetObject(hPen, -5, &logpen) == sizeof(LOGPEN));
|
RTEST(GetObject(hPen, -5, &logpen) == sizeof(LOGPEN));
|
||||||
TEST(GetLastError() == ERROR_SUCCESS);
|
RTEST(GetLastError() == ERROR_SUCCESS);
|
||||||
|
|
||||||
/* test if the fields are filled correctly */
|
/* test if the fields are filled correctly */
|
||||||
TEST(logpen.lopnStyle == PS_SOLID);
|
RTEST(logpen.lopnStyle == PS_SOLID);
|
||||||
|
|
||||||
|
|
||||||
DeleteObject(hPen);
|
DeleteObject(hPen);
|
||||||
|
@ -242,8 +242,8 @@ Test_ExtPen(PTESTINFO pti)
|
||||||
} elpUserStyle;
|
} elpUserStyle;
|
||||||
|
|
||||||
SetLastError(ERROR_SUCCESS);
|
SetLastError(ERROR_SUCCESS);
|
||||||
TEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
RTEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||||
TEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
RTEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||||
TEST(GetLastError() == ERROR_INVALID_PARAMETER);
|
TEST(GetLastError() == ERROR_INVALID_PARAMETER);
|
||||||
|
|
||||||
FillMemory(&extlogpen, sizeof(EXTLOGPEN), 0x77);
|
FillMemory(&extlogpen, sizeof(EXTLOGPEN), 0x77);
|
||||||
|
@ -252,12 +252,12 @@ Test_ExtPen(PTESTINFO pti)
|
||||||
logbrush.lbHatch = 22;
|
logbrush.lbHatch = 22;
|
||||||
hPen = ExtCreatePen(PS_GEOMETRIC | PS_DASH, 5, &logbrush, 0, NULL);
|
hPen = ExtCreatePen(PS_GEOMETRIC | PS_DASH, 5, &logbrush, 0, NULL);
|
||||||
|
|
||||||
TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN);
|
RTEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN);
|
||||||
TEST(GetObject((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
RTEST(GetObject((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||||
TEST(GetObject(hPen, sizeof(EXTLOGPEN), NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
RTEST(GetObject(hPen, sizeof(EXTLOGPEN), NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||||
TEST(GetObject(hPen, 0, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
RTEST(GetObject(hPen, 0, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||||
TEST(GetObject((HANDLE)GDI_HANDLE_GET_INDEX(hPen), 0, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
RTEST(GetObject((HANDLE)GDI_HANDLE_GET_INDEX(hPen), 0, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||||
TEST(GetObject(hPen, 5, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
RTEST(GetObject(hPen, 5, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||||
RTEST(GetObject(hPen, -5, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
RTEST(GetObject(hPen, -5, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||||
RTEST(GetObject(hPen, 0, &extlogpen) == 0);
|
RTEST(GetObject(hPen, 0, &extlogpen) == 0);
|
||||||
RTEST(GetObject(hPen, 4, &extlogpen) == 0);
|
RTEST(GetObject(hPen, 4, &extlogpen) == 0);
|
||||||
|
|
|
@ -17,7 +17,7 @@ Test_ScrollDC(PTESTINFO pti)
|
||||||
|
|
||||||
/* Assert that no update region is there */
|
/* Assert that no update region is there */
|
||||||
hrgn = CreateRectRgn(0,0,0,0);
|
hrgn = CreateRectRgn(0,0,0,0);
|
||||||
ASSERT1(GetUpdateRgn(hWnd, hrgn, FALSE) == NULLREGION);
|
ASSERT(GetUpdateRgn(hWnd, hrgn, FALSE) == NULLREGION);
|
||||||
|
|
||||||
/* Test normal scrolling */
|
/* Test normal scrolling */
|
||||||
TEST(ScrollDC(hDC, 0, 0, NULL, NULL, hrgn, NULL) == TRUE);
|
TEST(ScrollDC(hDC, 0, 0, NULL, NULL, hrgn, NULL) == TRUE);
|
||||||
|
|
|
@ -15,7 +15,7 @@ Test_ScrollWindowEx(PTESTINFO pti)
|
||||||
|
|
||||||
/* Assert that no update region is there */
|
/* Assert that no update region is there */
|
||||||
hrgn = CreateRectRgn(0,0,0,0);
|
hrgn = CreateRectRgn(0,0,0,0);
|
||||||
ASSERT1(GetUpdateRgn(hWnd, hrgn, FALSE) == NULLREGION);
|
ASSERT(GetUpdateRgn(hWnd, hrgn, FALSE) == NULLREGION);
|
||||||
|
|
||||||
Result = ScrollWindowEx(hWnd, 20, 0, NULL, NULL, NULL, NULL, 0);
|
Result = ScrollWindowEx(hWnd, 20, 0, NULL, NULL, NULL, NULL, 0);
|
||||||
TEST(Result == SIMPLEREGION);
|
TEST(Result == SIMPLEREGION);
|
||||||
|
|
|
@ -10,48 +10,48 @@ LIBRARY w32kdll.dll
|
||||||
EXPORTS
|
EXPORTS
|
||||||
NtGdiAbortDoc@4
|
NtGdiAbortDoc@4
|
||||||
NtGdiAbortPath@4
|
NtGdiAbortPath@4
|
||||||
;NtGdiAddFontResourceW@24
|
NtGdiAddFontResourceW@24
|
||||||
;NtGdiAddRemoteFontToDC@16
|
NtGdiAddRemoteFontToDC@16
|
||||||
;NtGdiAddFontMemResourceEx@20
|
NtGdiAddFontMemResourceEx@20
|
||||||
;NtGdiRemoveMergeFont@8
|
NtGdiRemoveMergeFont@8
|
||||||
;NtGdiAddRemoteMMInstanceToDC@12
|
NtGdiAddRemoteMMInstanceToDC@12
|
||||||
NtGdiAlphaBlend@48
|
NtGdiAlphaBlend@48
|
||||||
NtGdiAngleArc@24
|
NtGdiAngleArc@24
|
||||||
;NtGdiAnyLinkedFonts@0
|
NtGdiAnyLinkedFonts@0
|
||||||
;NtGdiFontIsLinked@4
|
NtGdiFontIsLinked@4
|
||||||
NtGdiArcInternal@40
|
NtGdiArcInternal@40
|
||||||
NtGdiBeginPath@4
|
NtGdiBeginPath@4
|
||||||
NtGdiBitBlt@44
|
NtGdiBitBlt@44
|
||||||
NtGdiCancelDC@4
|
NtGdiCancelDC@4
|
||||||
;NtGdiCheckBitmapBits@32
|
NtGdiCheckBitmapBits@32
|
||||||
NtGdiCloseFigure@4
|
NtGdiCloseFigure@4
|
||||||
;NtGdiClearBitmapAttributes@8
|
NtGdiClearBitmapAttributes@8
|
||||||
;NtGdiClearBrushAttributes@8
|
NtGdiClearBrushAttributes@8
|
||||||
;NtGdiColorCorrectPalette@24
|
NtGdiColorCorrectPalette@24
|
||||||
NtGdiCombineRgn@16
|
NtGdiCombineRgn@16
|
||||||
NtGdiCombineTransform@12
|
NtGdiCombineTransform@12
|
||||||
;NtGdiComputeXformCoefficients@4
|
NtGdiComputeXformCoefficients@4
|
||||||
;NtGdiConsoleTextOut@16
|
NtGdiConsoleTextOut@16
|
||||||
;NtGdiConvertMetafileRect@8
|
NtGdiConvertMetafileRect@8
|
||||||
NtGdiCreateBitmap@20
|
NtGdiCreateBitmap@20
|
||||||
NtGdiCreateClientObj@4
|
NtGdiCreateClientObj@4
|
||||||
NtGdiCreateColorSpace@4
|
NtGdiCreateColorSpace@4
|
||||||
;NtGdiCreateColorTransform@32
|
NtGdiCreateColorTransform@32
|
||||||
NtGdiCreateCompatibleBitmap@12
|
NtGdiCreateCompatibleBitmap@12
|
||||||
NtGdiCreateCompatibleDC@4
|
NtGdiCreateCompatibleDC@4
|
||||||
NtGdiCreateDIBBrush@24
|
NtGdiCreateDIBBrush@24
|
||||||
;NtGdiCreateDIBitmapInternal@44
|
NtGdiCreateDIBitmapInternal@44
|
||||||
NtGdiCreateDIBSection@36
|
NtGdiCreateDIBSection@36
|
||||||
NtGdiCreateEllipticRgn@16
|
NtGdiCreateEllipticRgn@16
|
||||||
NtGdiCreateHalftonePalette@4
|
NtGdiCreateHalftonePalette@4
|
||||||
NtGdiCreateHatchBrushInternal@12
|
NtGdiCreateHatchBrushInternal@12
|
||||||
;NtGdiCreateMetafileDC@4
|
NtGdiCreateMetafileDC@4
|
||||||
;NtGdiCreatePaletteInternal@8
|
NtGdiCreatePaletteInternal@8
|
||||||
NtGdiCreatePatternBrushInternal@12
|
NtGdiCreatePatternBrushInternal@12
|
||||||
NtGdiCreatePen@16
|
NtGdiCreatePen@16
|
||||||
NtGdiCreateRectRgn@16
|
NtGdiCreateRectRgn@16
|
||||||
NtGdiCreateRoundRectRgn@24
|
NtGdiCreateRoundRectRgn@24
|
||||||
;NtGdiCreateServerMetaFile@24
|
NtGdiCreateServerMetaFile@24
|
||||||
NtGdiCreateSolidBrush@8
|
NtGdiCreateSolidBrush@8
|
||||||
NtGdiD3dContextCreate@16
|
NtGdiD3dContextCreate@16
|
||||||
NtGdiD3dContextDestroy@4
|
NtGdiD3dContextDestroy@4
|
||||||
|
@ -109,44 +109,44 @@ NtGdiDdUnlock@8
|
||||||
NtGdiDdUnlockD3D@8
|
NtGdiDdUnlockD3D@8
|
||||||
NtGdiDdUpdateOverlay@12
|
NtGdiDdUpdateOverlay@12
|
||||||
NtGdiDdWaitForVerticalBlank@8
|
NtGdiDdWaitForVerticalBlank@8
|
||||||
;NtGdiDvpCanCreateVideoPort@8
|
NtGdiDvpCanCreateVideoPort@8
|
||||||
;NtGdiDvpColorControl@8
|
NtGdiDvpColorControl@8
|
||||||
;NtGdiDvpCreateVideoPort@8
|
NtGdiDvpCreateVideoPort@8
|
||||||
;NtGdiDvpDestroyVideoPort@8
|
NtGdiDvpDestroyVideoPort@8
|
||||||
;NtGdiDvpFlipVideoPort@16
|
NtGdiDvpFlipVideoPort@16
|
||||||
;NtGdiDvpGetVideoPortBandwidth@8
|
NtGdiDvpGetVideoPortBandwidth@8
|
||||||
;NtGdiDvpGetVideoPortField@8
|
NtGdiDvpGetVideoPortField@8
|
||||||
;NtGdiDvpGetVideoPortFlipStatus@8
|
NtGdiDvpGetVideoPortFlipStatus@8
|
||||||
;NtGdiDvpGetVideoPortInputFormats@8
|
NtGdiDvpGetVideoPortInputFormats@8
|
||||||
;NtGdiDvpGetVideoPortLine@8
|
NtGdiDvpGetVideoPortLine@8
|
||||||
;NtGdiDvpGetVideoPortOutputFormats@8
|
NtGdiDvpGetVideoPortOutputFormats@8
|
||||||
;NtGdiDvpGetVideoPortConnectInfo@8
|
NtGdiDvpGetVideoPortConnectInfo@8
|
||||||
;NtGdiDvpGetVideoSignalStatus@8
|
NtGdiDvpGetVideoSignalStatus@8
|
||||||
;NtGdiDvpUpdateVideoPort@16
|
NtGdiDvpUpdateVideoPort@16
|
||||||
;NtGdiDvpWaitForVideoPortSync@8
|
NtGdiDvpWaitForVideoPortSync@8
|
||||||
;NtGdiDvpAcquireNotification@12
|
NtGdiDvpAcquireNotification@12
|
||||||
;NtGdiDvpReleaseNotification@8
|
NtGdiDvpReleaseNotification@8
|
||||||
;NtGdiDxgGenericThunk@24
|
NtGdiDxgGenericThunk@24
|
||||||
NtGdiDeleteClientObj@4
|
NtGdiDeleteClientObj@4
|
||||||
NtGdiDeleteColorSpace@4
|
NtGdiDeleteColorSpace@4
|
||||||
;NtGdiDeleteColorTransform@8
|
NtGdiDeleteColorTransform@8
|
||||||
NtGdiDeleteObjectApp@4
|
NtGdiDeleteObjectApp@4
|
||||||
NtGdiDescribePixelFormat@16
|
NtGdiDescribePixelFormat@16
|
||||||
;NtGdiGetPerBandInfo@8
|
NtGdiGetPerBandInfo@8
|
||||||
;NtGdiDoBanding@16
|
NtGdiDoBanding@16
|
||||||
NtGdiDoPalette@24
|
NtGdiDoPalette@24
|
||||||
NtGdiDrawEscape@16
|
NtGdiDrawEscape@16
|
||||||
NtGdiEllipse@20
|
NtGdiEllipse@20
|
||||||
;NtGdiEnableEUDC@4
|
NtGdiEnableEudc@4
|
||||||
NtGdiEndDoc@4
|
NtGdiEndDoc@4
|
||||||
NtGdiEndPage@4
|
NtGdiEndPage@4
|
||||||
NtGdiEndPath@4
|
NtGdiEndPath@4
|
||||||
;NtGdiEnumFontChunk@20
|
NtGdiEnumFontChunk@20
|
||||||
;NtGdiEnumFontClose@4
|
NtGdiEnumFontClose@4
|
||||||
;NtGdiEnumFontOpen@28
|
NtGdiEnumFontOpen@28
|
||||||
NtGdiEnumObjects@16
|
NtGdiEnumObjects@16
|
||||||
NtGdiEqualRgn@8
|
NtGdiEqualRgn@8
|
||||||
;NtGdiEudcLoadUnloadLink@28
|
NtGdiEudcLoadUnloadLink@28
|
||||||
NtGdiExcludeClipRect@20
|
NtGdiExcludeClipRect@20
|
||||||
NtGdiExtCreatePen@44
|
NtGdiExtCreatePen@44
|
||||||
NtGdiExtCreateRegion@12
|
NtGdiExtCreateRegion@12
|
||||||
|
@ -154,37 +154,37 @@ NtGdiExtEscape@32
|
||||||
NtGdiExtFloodFill@20
|
NtGdiExtFloodFill@20
|
||||||
NtGdiExtGetObjectW@12
|
NtGdiExtGetObjectW@12
|
||||||
NtGdiExtSelectClipRgn@12
|
NtGdiExtSelectClipRgn@12
|
||||||
;NtGdiExtTextOutW@36
|
NtGdiExtTextOutW@36
|
||||||
NtGdiFillPath@4
|
NtGdiFillPath@4
|
||||||
NtGdiFillRgn@12
|
NtGdiFillRgn@12
|
||||||
NtGdiFlattenPath@4
|
NtGdiFlattenPath@4
|
||||||
;NtGdiFlushUserBatch@0
|
NtGdiFlushUserBatch@0
|
||||||
NtGdiFlush@0
|
NtGdiFlush@0
|
||||||
;NtGdiForceUFIMapping@8
|
NtGdiForceUFIMapping@8
|
||||||
NtGdiFrameRgn@20
|
NtGdiFrameRgn@20
|
||||||
;NtGdiFullscreenControl@20
|
NtGdiFullscreenControl@20
|
||||||
NtGdiGetAndSetDCDword@16
|
NtGdiGetAndSetDCDword@16
|
||||||
;NtGdiGetAppClipBox@8
|
NtGdiGetAppClipBox@8
|
||||||
NtGdiGetBitmapBits@12
|
NtGdiGetBitmapBits@12
|
||||||
NtGdiGetBitmapDimension@8
|
NtGdiGetBitmapDimension@8
|
||||||
NtGdiGetBoundsRect@12
|
NtGdiGetBoundsRect@12
|
||||||
;NtGdiGetCharABCWidthsW@24
|
NtGdiGetCharABCWidthsW@24
|
||||||
;NtGdiGetCharacterPlacementW@24
|
NtGdiGetCharacterPlacementW@24
|
||||||
NtGdiGetCharSet@4
|
NtGdiGetCharSet@4
|
||||||
;NtGdiGetCharWidthW@24
|
NtGdiGetCharWidthW@24
|
||||||
;NtGdiGetCharWidthInfo@8
|
NtGdiGetCharWidthInfo@8
|
||||||
NtGdiGetColorAdjustment@8
|
NtGdiGetColorAdjustment@8
|
||||||
;NtGdiGetColorSpaceforBitmap@4
|
NtGdiGetColorSpaceforBitmap@4
|
||||||
NtGdiGetDCDword@12
|
NtGdiGetDCDword@12
|
||||||
;NtGdiGetDCforBitmap@4
|
NtGdiGetDCforBitmap@4
|
||||||
;NtGdiGetDCObject@8
|
NtGdiGetDCObject@8
|
||||||
NtGdiGetDCPoint@12
|
NtGdiGetDCPoint@12
|
||||||
NtGdiGetDeviceCaps@8
|
NtGdiGetDeviceCaps@8
|
||||||
NtGdiGetDeviceGammaRamp@8
|
NtGdiGetDeviceGammaRamp@8
|
||||||
;NtGdiGetDeviceCapsAll@8
|
NtGdiGetDeviceCapsAll@8
|
||||||
;NtGdiGetDIBitsInternal@36
|
NtGdiGetDIBitsInternal@36
|
||||||
;NtGdiGetETM@8
|
NtGdiGetETM@8
|
||||||
;NtGdiGetEudcTimeStampEx@12
|
NtGdiGetEudcTimeStampEx@12
|
||||||
NtGdiGetFontData@20
|
NtGdiGetFontData@20
|
||||||
NtGdiGetFontResourceInfoInternalW@28
|
NtGdiGetFontResourceInfoInternalW@28
|
||||||
;NtGdiGetGlyphIndicesW@20
|
;NtGdiGetGlyphIndicesW@20
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<module name="w32kdll_ros" type="win32dll" entrypoint="0" installname="w32kdll_ros.dll">
|
<module name="w32kdll" type="win32dll" entrypoint="0" installname="w32kdll.dll">
|
||||||
<importlibrary definition="w32kdll_ros.def" />
|
<importlibrary definition="w32kdll_ros.def" />
|
||||||
<define name="__USE_W32API" />
|
<define name="__USE_W32API" />
|
||||||
<define name="_WIN32_WINNT">0x0502</define>
|
<define name="_WIN32_WINNT">0x0502</define>
|
||||||
|
|
|
@ -1,22 +1,11 @@
|
||||||
#include "../w32knapi.h"
|
#include "../w32knapi.h"
|
||||||
|
|
||||||
|
|
||||||
W32KAPI
|
|
||||||
HANDLE
|
|
||||||
APIENTRY
|
|
||||||
NtGdiDdCreateDirectDrawObject(
|
|
||||||
IN HDC hdc
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return (HANDLE)Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
|
||||||
}
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
Test_NtGdiDdCreateDirectDrawObject(PTESTINFO pti)
|
Test_NtGdiDdCreateDirectDrawObject(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
HANDLE hDirectDraw;
|
HANDLE hDirectDraw;
|
||||||
HDC hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
HDC hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||||
ASSERT1(hdc != NULL);
|
ASSERT(hdc != NULL);
|
||||||
|
|
||||||
/* Test ReactX */
|
/* Test ReactX */
|
||||||
RTEST(NtGdiDdCreateDirectDrawObject(NULL) == NULL);
|
RTEST(NtGdiDdCreateDirectDrawObject(NULL) == NULL);
|
||||||
|
|
|
@ -15,12 +15,12 @@ Test_NtGdiDdDeleteDirectDrawObject(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
HANDLE hDirectDraw;
|
HANDLE hDirectDraw;
|
||||||
HDC hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
HDC hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||||
ASSERT1(hdc != NULL);
|
ASSERT(hdc != NULL);
|
||||||
|
|
||||||
/* Test ReactX */
|
/* Test ReactX */
|
||||||
RTEST(NtGdiDdDeleteDirectDrawObject(NULL) == FALSE);
|
RTEST(NtGdiDdDeleteDirectDrawObject(NULL) == FALSE);
|
||||||
RTEST((hDirectDraw=NtGdiDdCreateDirectDrawObject(hdc)) != NULL);
|
RTEST((hDirectDraw=NtGdiDdCreateDirectDrawObject(hdc)) != NULL);
|
||||||
ASSERT1(hDirectDraw != NULL);
|
ASSERT(hDirectDraw != NULL);
|
||||||
RTEST(NtGdiDdDeleteDirectDrawObject(hDirectDraw) == TRUE);
|
RTEST(NtGdiDdDeleteDirectDrawObject(hDirectDraw) == TRUE);
|
||||||
|
|
||||||
/* Cleanup ReactX setup */
|
/* Cleanup ReactX setup */
|
||||||
|
|
|
@ -64,10 +64,10 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);
|
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);
|
||||||
|
|
||||||
hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||||
ASSERT1(hdc != NULL);
|
ASSERT(hdc != NULL);
|
||||||
|
|
||||||
hDirectDraw = (HANDLE) Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
hDirectDraw = (HANDLE) Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
||||||
ASSERT1(hDirectDraw != NULL);
|
ASSERT(hDirectDraw != NULL);
|
||||||
|
|
||||||
/* Test ReactX */
|
/* Test ReactX */
|
||||||
hDirectDraw = (HANDLE) Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
hDirectDraw = (HANDLE) Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
||||||
|
@ -123,7 +123,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT(pHalInfo != NULL);
|
||||||
RTEST(puNumHeaps == NULL);
|
RTEST(puNumHeaps == NULL);
|
||||||
RTEST(puvmList == NULL);
|
RTEST(puvmList == NULL);
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
(pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
|
(pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
|
||||||
{
|
{
|
||||||
RTEST(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
RTEST(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
||||||
ASSERT1(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
ASSERT(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pHalInfo->dwSize == sizeof(DD_HALINFO))
|
if (pHalInfo->dwSize == sizeof(DD_HALINFO))
|
||||||
|
@ -149,7 +149,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(pHalInfo->vmiData.lDisplayPitch == 0x1700;
|
RTEST(pHalInfo->vmiData.lDisplayPitch == 0x1700;
|
||||||
*/
|
*/
|
||||||
RTEST(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT) );
|
RTEST(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT) );
|
||||||
ASSERT1(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT));
|
ASSERT(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT));
|
||||||
|
|
||||||
/* Fail on 8bit screen deep */
|
/* Fail on 8bit screen deep */
|
||||||
RTEST(pHalInfo->vmiData.ddpfDisplay.dwFlags == DDPF_RGB);
|
RTEST(pHalInfo->vmiData.ddpfDisplay.dwFlags == DDPF_RGB);
|
||||||
|
@ -225,7 +225,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT(pHalInfo != NULL);
|
||||||
RTEST(puNumHeaps == NULL);
|
RTEST(puNumHeaps == NULL);
|
||||||
RTEST(puvmList == NULL);
|
RTEST(puvmList == NULL);
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
RTEST(puNumHeaps == NULL);
|
RTEST(puNumHeaps == NULL);
|
||||||
RTEST(puvmList == NULL);
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
@ -307,7 +307,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
RTEST(puNumHeaps == NULL);
|
RTEST(puNumHeaps == NULL);
|
||||||
RTEST(puvmList == NULL);
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
@ -351,7 +351,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
RTEST(puNumHeaps == NULL);
|
RTEST(puNumHeaps == NULL);
|
||||||
RTEST(puvmList == NULL);
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
@ -395,7 +395,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
RTEST(puNumHeaps == NULL);
|
RTEST(puNumHeaps == NULL);
|
||||||
RTEST(puvmList == NULL);
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
@ -453,7 +453,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
RTEST(puNumHeaps == NULL);
|
RTEST(puNumHeaps == NULL);
|
||||||
RTEST(puvmList == NULL);
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
|
|
@ -1,22 +1,3 @@
|
||||||
#include "../w32knapi.h"
|
|
||||||
|
|
||||||
BOOL
|
|
||||||
STDCALL
|
|
||||||
NtGdiArcInternal(
|
|
||||||
ARCTYPE arctype,
|
|
||||||
HDC hDC,
|
|
||||||
int LeftRect,
|
|
||||||
int TopRect,
|
|
||||||
int RightRect,
|
|
||||||
int BottomRect,
|
|
||||||
int XStartArc,
|
|
||||||
int YStartArc,
|
|
||||||
int XEndArc,
|
|
||||||
int YEndArc)
|
|
||||||
{
|
|
||||||
return (BOOL)Syscall(L"NtGdiArcInternal", 10, &arctype);
|
|
||||||
}
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
Test_NtGdiArcInternal(PTESTINFO pti)
|
Test_NtGdiArcInternal(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,19 +1,3 @@
|
||||||
#include "../w32knapi.h"
|
|
||||||
|
|
||||||
W32KAPI
|
|
||||||
HBITMAP
|
|
||||||
APIENTRY
|
|
||||||
NtGdiCreateBitmap(
|
|
||||||
IN INT cx,
|
|
||||||
IN INT cy,
|
|
||||||
IN UINT cPlanes,
|
|
||||||
IN UINT cBPP,
|
|
||||||
IN OPTIONAL LPBYTE pjInit
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return (HBITMAP)Syscall(L"NtGdiCreateBitmap", 5, &cx);
|
|
||||||
}
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
|
@ -66,7 +50,7 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
||||||
SetLastError(ERROR_SUCCESS);
|
SetLastError(ERROR_SUCCESS);
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 0, 1, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 0, 1, NULL)) != NULL);
|
||||||
TEST(GetLastError() == ERROR_SUCCESS);
|
TEST(GetLastError() == ERROR_SUCCESS);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmType == 0);
|
TEST(bitmap.bmType == 0);
|
||||||
TEST(bitmap.bmWidth == 1);
|
TEST(bitmap.bmWidth == 1);
|
||||||
TEST(bitmap.bmHeight == 1);
|
TEST(bitmap.bmHeight == 1);
|
||||||
|
@ -88,7 +72,7 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
||||||
SetLastError(ERROR_SUCCESS);
|
SetLastError(ERROR_SUCCESS);
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 0, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 0, NULL)) != NULL);
|
||||||
TEST(GetLastError() == ERROR_SUCCESS);
|
TEST(GetLastError() == ERROR_SUCCESS);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmType == 0);
|
TEST(bitmap.bmType == 0);
|
||||||
TEST(bitmap.bmWidth == 1);
|
TEST(bitmap.bmWidth == 1);
|
||||||
TEST(bitmap.bmHeight == 1);
|
TEST(bitmap.bmHeight == 1);
|
||||||
|
@ -105,32 +89,32 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
||||||
/* Test bad cBPP */
|
/* Test bad cBPP */
|
||||||
SetLastError(ERROR_SUCCESS);
|
SetLastError(ERROR_SUCCESS);
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 3, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 3, NULL)) != NULL);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmBitsPixel == 4);
|
TEST(bitmap.bmBitsPixel == 4);
|
||||||
DeleteObject(hBmp);
|
DeleteObject(hBmp);
|
||||||
|
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 6, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 6, NULL)) != NULL);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmBitsPixel == 8);
|
TEST(bitmap.bmBitsPixel == 8);
|
||||||
DeleteObject(hBmp);
|
DeleteObject(hBmp);
|
||||||
|
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 15, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 15, NULL)) != NULL);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmBitsPixel == 16);
|
TEST(bitmap.bmBitsPixel == 16);
|
||||||
DeleteObject(hBmp);
|
DeleteObject(hBmp);
|
||||||
|
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 17, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 17, NULL)) != NULL);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmBitsPixel == 24);
|
TEST(bitmap.bmBitsPixel == 24);
|
||||||
DeleteObject(hBmp);
|
DeleteObject(hBmp);
|
||||||
|
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 3, 7, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 3, 7, NULL)) != NULL);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmBitsPixel == 24);
|
TEST(bitmap.bmBitsPixel == 24);
|
||||||
DeleteObject(hBmp);
|
DeleteObject(hBmp);
|
||||||
|
|
||||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 25, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 25, NULL)) != NULL);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmBitsPixel == 32);
|
TEST(bitmap.bmBitsPixel == 32);
|
||||||
DeleteObject(hBmp);
|
DeleteObject(hBmp);
|
||||||
|
|
||||||
|
@ -154,7 +138,7 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
||||||
SetLastError(ERROR_SUCCESS);
|
SetLastError(ERROR_SUCCESS);
|
||||||
TEST((hBmp = NtGdiCreateBitmap(5, 7, 2, 4, NULL)) != NULL);
|
TEST((hBmp = NtGdiCreateBitmap(5, 7, 2, 4, NULL)) != NULL);
|
||||||
TEST(GetLastError() == ERROR_SUCCESS);
|
TEST(GetLastError() == ERROR_SUCCESS);
|
||||||
ASSERT1(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
ASSERT(GetObject(hBmp, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
|
||||||
TEST(bitmap.bmType == 0);
|
TEST(bitmap.bmType == 0);
|
||||||
TEST(bitmap.bmWidth == 5);
|
TEST(bitmap.bmWidth == 5);
|
||||||
TEST(bitmap.bmHeight == 7);
|
TEST(bitmap.bmHeight == 7);
|
||||||
|
|
|
@ -1,16 +1,3 @@
|
||||||
#include "../w32knapi.h"
|
|
||||||
|
|
||||||
W32KAPI
|
|
||||||
HBITMAP
|
|
||||||
APIENTRY
|
|
||||||
NtGdiCreateCompatibleBitmap(
|
|
||||||
IN HDC hdc,
|
|
||||||
IN INT cx,
|
|
||||||
IN INT cy
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return (HBITMAP)Syscall(L"NtGdiCreateCompatibleBitmap", 3, &hdc);
|
|
||||||
}
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
Test_NtGdiCreateCompatibleBitmap(PTESTINFO pti)
|
Test_NtGdiCreateCompatibleBitmap(PTESTINFO pti)
|
||||||
|
|
|
@ -1,20 +1,3 @@
|
||||||
#include "../w32knapi.h"
|
|
||||||
|
|
||||||
W32KAPI
|
|
||||||
LONG
|
|
||||||
APIENTRY
|
|
||||||
NtGdiDoPalette(
|
|
||||||
IN HPALETTE hpal,
|
|
||||||
IN WORD iStart,
|
|
||||||
IN WORD cEntries,
|
|
||||||
IN PALETTEENTRY *pPalEntries,
|
|
||||||
IN DWORD iFunc,
|
|
||||||
IN BOOL bInbound
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return (LONG)Syscall(L"NtGdiDoPalette", 6, &hpal);
|
|
||||||
}
|
|
||||||
|
|
||||||
HPALETTE
|
HPALETTE
|
||||||
CreateTestPalette()
|
CreateTestPalette()
|
||||||
{
|
{
|
||||||
|
|
33
rostests/apitests/w32knapi/ntgdi/NtGdiEngCreatePalette.c
Normal file
33
rostests/apitests/w32knapi/ntgdi/NtGdiEngCreatePalette.c
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
|
||||||
|
HPALETTE
|
||||||
|
APIENTRY
|
||||||
|
NtGdiEngCreatePalette(
|
||||||
|
IN ULONG iMode,
|
||||||
|
IN ULONG cColors,
|
||||||
|
IN ULONG *pulColors,
|
||||||
|
IN FLONG flRed,
|
||||||
|
IN FLONG flGreen,
|
||||||
|
IN FLONG flBlue)
|
||||||
|
{
|
||||||
|
return (HPALETTE)Syscall(L"NtGdiEngCreatePalette", 6, &iMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
INT
|
||||||
|
Test_NtGdiEngCreatePalette(PTESTINFO pti)
|
||||||
|
{
|
||||||
|
HPALETTE hPal;
|
||||||
|
ULONG Colors[3] = {1,2,3};
|
||||||
|
PGDI_TABLE_ENTRY pEntry;
|
||||||
|
|
||||||
|
hPal = NtGdiEngCreatePalette(PAL_RGB, 3, Colors, 0xff000000, 0x00ff0000, 0x0000ff00);
|
||||||
|
|
||||||
|
TEST(hPal != 0);
|
||||||
|
TEST(GDI_HANDLE_GET_TYPE(hPal) == GDI_OBJECT_TYPE_PALETTE);
|
||||||
|
pEntry = &GdiHandleTable[GDI_HANDLE_GET_INDEX(hPal)];
|
||||||
|
TEST(pEntry->KernelData != NULL);
|
||||||
|
TEST(pEntry->ProcessId == (HANDLE)GetCurrentProcessId());
|
||||||
|
TEST(pEntry->UserData == 0);
|
||||||
|
TEST(pEntry->Type == (((UINT)hPal >> 16) | GDI_OBJECT_TYPE_PALETTE));
|
||||||
|
|
||||||
|
return APISTATUS_NORMAL;
|
||||||
|
}
|
31
rostests/apitests/w32knapi/ntgdi/NtGdiEnumFontOpen.c
Normal file
31
rostests/apitests/w32knapi/ntgdi/NtGdiEnumFontOpen.c
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
INT
|
||||||
|
Test_NtGdiEnumFontOpen(PTESTINFO pti)
|
||||||
|
{
|
||||||
|
HDC hDC;
|
||||||
|
ULONG_PTR idEnum;
|
||||||
|
ULONG ulCount;
|
||||||
|
PGDI_TABLE_ENTRY pEntry;
|
||||||
|
|
||||||
|
hDC = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||||
|
|
||||||
|
// FIXME: We should load the font first
|
||||||
|
|
||||||
|
idEnum = NtGdiEnumFontOpen(hDC, 2, 0, 32, L"Courier", ANSI_CHARSET, &ulCount);
|
||||||
|
ASSERT(idEnum != 0);
|
||||||
|
|
||||||
|
/* we should have a gdi handle here */
|
||||||
|
TEST(GDI_HANDLE_GET_TYPE(idEnum) == GDI_OBJECT_TYPE_ENUMFONT);
|
||||||
|
pEntry = &GdiHandleTable[GDI_HANDLE_GET_INDEX(idEnum)];
|
||||||
|
TEST(pEntry->KernelData != NULL);
|
||||||
|
TEST(pEntry->ProcessId == (HANDLE)GetCurrentProcessId());
|
||||||
|
TEST(pEntry->UserData == 0);
|
||||||
|
TEST(pEntry->Type == ((idEnum >> 16) | GDI_OBJECT_TYPE_ENUMFONT));
|
||||||
|
|
||||||
|
/* We should not be able to use DeleteObject() on the handle */
|
||||||
|
TEST(DeleteObject((HGDIOBJ)idEnum) == FALSE);
|
||||||
|
|
||||||
|
// FIXME: Close the enum handle
|
||||||
|
|
||||||
|
return APISTATUS_NORMAL;
|
||||||
|
}
|
||||||
|
|
|
@ -1,15 +1,3 @@
|
||||||
#include "../w32knapi.h"
|
|
||||||
|
|
||||||
LONG STDCALL
|
|
||||||
NtGdiGetBitmapBits(
|
|
||||||
HBITMAP hBitmap,
|
|
||||||
DWORD Bytes,
|
|
||||||
IN PBYTE Bits)
|
|
||||||
{
|
|
||||||
return (LONG)Syscall(L"NtGdiGetBitmapBits", 3, &hBitmap);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
Test_NtGdiGetBitmapBits(PTESTINFO pti)
|
Test_NtGdiGetBitmapBits(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,17 +1,3 @@
|
||||||
#include "../w32knapi.h"
|
|
||||||
|
|
||||||
W32KAPI
|
|
||||||
INT
|
|
||||||
APIENTRY
|
|
||||||
NtGdiGetRandomRgn(
|
|
||||||
IN HDC hdc,
|
|
||||||
IN HRGN hrgn,
|
|
||||||
IN INT iRgn)
|
|
||||||
{
|
|
||||||
return (INT)Syscall(L"NtGdiGetRandomRgn", 3, &hdc);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
Test_NtGdiGetRandomRgn(PTESTINFO pti)
|
Test_NtGdiGetRandomRgn(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
|
@ -26,7 +12,7 @@ Test_NtGdiGetRandomRgn(PTESTINFO pti)
|
||||||
// UpdateWindow(hWnd);
|
// UpdateWindow(hWnd);
|
||||||
hDC = GetDC(hWnd);
|
hDC = GetDC(hWnd);
|
||||||
|
|
||||||
ASSERT1(hDC != NULL);
|
ASSERT(hDC != NULL);
|
||||||
|
|
||||||
hrgn = CreateRectRgn(0,0,0,0);
|
hrgn = CreateRectRgn(0,0,0,0);
|
||||||
hrgn2 = CreateRectRgn(3,3,10,10);
|
hrgn2 = CreateRectRgn(3,3,10,10);
|
||||||
|
|
|
@ -1,15 +1,5 @@
|
||||||
#include "../w32knapi.h"
|
#include "../w32knapi.h"
|
||||||
|
|
||||||
LONG STDCALL
|
|
||||||
NtGdiSetBitmapBits(
|
|
||||||
HBITMAP hBitmap,
|
|
||||||
DWORD Bytes,
|
|
||||||
IN PBYTE Bits)
|
|
||||||
{
|
|
||||||
return (LONG)Syscall(L"NtGdiSetBitmapBits", 3, &hBitmap);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
Test_NtGdiSetBitmapBits(PTESTINFO pti)
|
Test_NtGdiSetBitmapBits(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "../apitest.h"
|
#include "w32knapi.h"
|
||||||
|
|
||||||
/* include the tests */
|
/* include the tests */
|
||||||
|
|
||||||
|
@ -10,6 +10,9 @@
|
||||||
#include "ntgdi/NtGdiCreateBitmap.c"
|
#include "ntgdi/NtGdiCreateBitmap.c"
|
||||||
#include "ntgdi/NtGdiCreateCompatibleBitmap.c"
|
#include "ntgdi/NtGdiCreateCompatibleBitmap.c"
|
||||||
#include "ntgdi/NtGdiDoPalette.c"
|
#include "ntgdi/NtGdiDoPalette.c"
|
||||||
|
#include "ntgdi/NtGdiEngCreatePalette.c"
|
||||||
|
//#include "ntgdi/NtGdiEnumFontChunk.c"
|
||||||
|
#include "ntgdi/NtGdiEnumFontOpen.c"
|
||||||
#include "ntgdi/NtGdiGetBitmapBits.c"
|
#include "ntgdi/NtGdiGetBitmapBits.c"
|
||||||
#include "ntgdi/NtGdiGetRandomRgn.c"
|
#include "ntgdi/NtGdiGetRandomRgn.c"
|
||||||
#include "ntgdi/NtGdiSetBitmapBits.c"
|
#include "ntgdi/NtGdiSetBitmapBits.c"
|
||||||
|
@ -30,6 +33,9 @@ TESTENTRY TestList[] =
|
||||||
{ L"NtGdiCreateBitmap", Test_NtGdiCreateBitmap },
|
{ L"NtGdiCreateBitmap", Test_NtGdiCreateBitmap },
|
||||||
{ L"NtGdiCreateCompatibleBitmap", Test_NtGdiCreateCompatibleBitmap },
|
{ L"NtGdiCreateCompatibleBitmap", Test_NtGdiCreateCompatibleBitmap },
|
||||||
{ L"NtGdiDoPalette", Test_NtGdiDoPalette },
|
{ L"NtGdiDoPalette", Test_NtGdiDoPalette },
|
||||||
|
{ L"NtGdiEngCreatePalette", Test_NtGdiEngCreatePalette },
|
||||||
|
// { L"NtGdiEnumFontChunk", Test_NtGdiEnumFontChunk },
|
||||||
|
{ L"NtGdiEnumFontOpen", Test_NtGdiEnumFontOpen },
|
||||||
{ L"NtGdiGetBitmapBits", Test_NtGdiGetBitmapBits },
|
{ L"NtGdiGetBitmapBits", Test_NtGdiGetBitmapBits },
|
||||||
{ L"NtGdiGetRandomRgn", Test_NtGdiGetRandomRgn },
|
{ L"NtGdiGetRandomRgn", Test_NtGdiGetRandomRgn },
|
||||||
{ L"NtGdiSetBitmapBits", Test_NtGdiSetBitmapBits },
|
{ L"NtGdiSetBitmapBits", Test_NtGdiSetBitmapBits },
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
HINSTANCE g_hInstance;
|
HINSTANCE g_hInstance;
|
||||||
HMODULE g_hModule = NULL;
|
HMODULE g_hModule = NULL;
|
||||||
|
PGDI_TABLE_ENTRY GdiHandleTable;
|
||||||
|
|
||||||
static DWORD STDCALL
|
static DWORD STDCALL
|
||||||
IntSyscall(FARPROC proc, UINT cParams, PVOID pFirstParam)
|
IntSyscall(FARPROC proc, UINT cParams, PVOID pFirstParam)
|
||||||
|
@ -58,6 +59,7 @@ WinMain(HINSTANCE hInstance,
|
||||||
int nCmdShow)
|
int nCmdShow)
|
||||||
{
|
{
|
||||||
g_hInstance = hInstance;
|
g_hInstance = hInstance;
|
||||||
|
GDIQUERYPROC GdiQueryHandleTable;
|
||||||
|
|
||||||
printf("Win32k native API test\n");
|
printf("Win32k native API test\n");
|
||||||
|
|
||||||
|
@ -68,7 +70,18 @@ WinMain(HINSTANCE hInstance,
|
||||||
if (!g_hModule)
|
if (!g_hModule)
|
||||||
{
|
{
|
||||||
printf("w32kdll.dll not found!\n");
|
printf("w32kdll.dll not found!\n");
|
||||||
return FALSE;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
GdiQueryHandleTable = (GDIQUERYPROC)GetProcAddress(GetModuleHandleW(L"GDI32.DLL"), "GdiQueryTable");
|
||||||
|
if(!GdiQueryHandleTable)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
GdiHandleTable = GdiQueryHandleTable();
|
||||||
|
if(!GdiHandleTable)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
|
@ -1,10 +1,16 @@
|
||||||
#ifndef _W32KNAPI_H
|
#ifndef _W32KNAPI_H
|
||||||
#define _W32KNAPI_H
|
#define _W32KNAPI_H
|
||||||
|
|
||||||
#include "../apitest.h"
|
#define WIN32_NO_STATUS
|
||||||
|
#define NTOS_MODE_USER
|
||||||
|
#define WINVER 0x501
|
||||||
|
|
||||||
#include <ddk/winddi.h>
|
#include <windows.h>
|
||||||
#include <ddk/ntddk.h>
|
#include <wingdi.h>
|
||||||
|
#include <winddi.h>
|
||||||
|
#include <ntddk.h>
|
||||||
|
#include <d3dnthal.h>
|
||||||
|
#include <prntfont.h>
|
||||||
|
|
||||||
/* Public Win32K Headers */
|
/* Public Win32K Headers */
|
||||||
#include <win32k/callback.h>
|
#include <win32k/callback.h>
|
||||||
|
@ -12,12 +18,14 @@
|
||||||
#include <win32k/ntgdityp.h>
|
#include <win32k/ntgdityp.h>
|
||||||
#include <win32k/ntgdihdl.h>
|
#include <win32k/ntgdihdl.h>
|
||||||
|
|
||||||
|
#include <ntgdi.h>
|
||||||
|
|
||||||
|
#include "../apitest.h"
|
||||||
|
|
||||||
#define OS_UNSUPPORTED 0
|
#define OS_UNSUPPORTED 0
|
||||||
#define OS_REACTOS 1
|
#define OS_REACTOS 1
|
||||||
#define OS_WINDOWS 2
|
#define OS_WINDOWS 2
|
||||||
|
|
||||||
#define W32KAPI
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
LPWSTR lpszFunction;
|
LPWSTR lpszFunction;
|
||||||
|
@ -25,11 +33,11 @@ typedef struct
|
||||||
INT nParams;
|
INT nParams;
|
||||||
} SYCALL_ENTRY, *PSYSCALL_ENTRY;
|
} SYCALL_ENTRY, *PSYSCALL_ENTRY;
|
||||||
|
|
||||||
|
typedef PGDI_TABLE_ENTRY (CALLBACK * GDIQUERYPROC) (void);
|
||||||
|
|
||||||
extern HINSTANCE g_hInstance;
|
extern HINSTANCE g_hInstance;
|
||||||
extern SYCALL_ENTRY SyscallTable_XP_2600[];
|
|
||||||
extern SYCALL_ENTRY SyscallTable_2K_2195[];
|
|
||||||
extern HMODULE g_hModule;
|
extern HMODULE g_hModule;
|
||||||
extern INT g_nOsVer;
|
extern PGDI_TABLE_ENTRY GdiHandleTable;
|
||||||
|
|
||||||
DWORD Syscall(LPWSTR lpszFunction, int cParams, void* pParams);
|
DWORD Syscall(LPWSTR lpszFunction, int cParams, void* pParams);
|
||||||
BOOL InitOsVersion();
|
BOOL InitOsVersion();
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
<library>user32</library>
|
<library>user32</library>
|
||||||
<library>gdi32</library>
|
<library>gdi32</library>
|
||||||
<library>shell32</library>
|
<library>shell32</library>
|
||||||
|
<library>w32kdll</library>
|
||||||
<file>w32knapi.c</file>
|
<file>w32knapi.c</file>
|
||||||
<file>testlist.c</file>
|
<file>testlist.c</file>
|
||||||
</module>
|
</module>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue