mirror of
https://github.com/reactos/reactos.git
synced 2025-07-30 09:41:47 +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
|
||||
#define _APITEST_H
|
||||
|
||||
#define WINVER 0x501
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
@ -84,8 +82,8 @@ typedef struct tagTEST
|
|||
} \
|
||||
}
|
||||
|
||||
|
||||
#define ASSERT1(x) \
|
||||
#undef ASSERT
|
||||
#define ASSERT(x) \
|
||||
if (!(x)) \
|
||||
{ \
|
||||
printf("Assertion failed in %s:%d (%s)\n", __FILE__, __LINE__, #x);\
|
||||
|
|
|
@ -26,12 +26,12 @@ TESTENTRY TestList[] =
|
|||
{ L"CreateRectRgn", Test_CreateRectRgn },
|
||||
{ L"ExtCreatePen", Test_ExtCreatePen },
|
||||
{ L"GetClipRgn", Test_GetClipRgn },
|
||||
{ L"GetObject", Test_GetObject },
|
||||
{ L"GetStockObject", Test_GetStockObject },
|
||||
{ L"SetSysColors", Test_SetSysColors },
|
||||
{ L"SelectObject", Test_SelectObject },
|
||||
{ L"SetDCPenColor", Test_SetDCPenColor },
|
||||
// { L"SetWorldTransform", Test_SetWorldTransform },
|
||||
{ L"GetObject", Test_GetObject }
|
||||
};
|
||||
|
||||
/* The function that gives us the number of tests */
|
||||
|
|
|
@ -3,9 +3,24 @@
|
|||
INT
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -178,21 +178,21 @@ Test_Brush(PTESTINFO pti)
|
|||
TEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_BRUSH, 0, NULL) == sizeof(LOGBRUSH));
|
||||
TEST(GetObject(hBrush, sizeof(WORD), NULL) == sizeof(LOGBRUSH));
|
||||
TEST(GetObject(hBrush, 0, NULL) == sizeof(LOGBRUSH));
|
||||
TEST(GetObject(hBrush, 5, NULL) == sizeof(LOGBRUSH));
|
||||
TEST(GetObject(hBrush, -5, NULL) == sizeof(LOGBRUSH));
|
||||
RTEST(GetObject(hBrush, 5, NULL) == sizeof(LOGBRUSH));
|
||||
RTEST(GetObject(hBrush, -5, NULL) == sizeof(LOGBRUSH));
|
||||
|
||||
TEST(GetObject(hBrush, 0, &logbrush) == 0);
|
||||
TEST(logbrush.lbStyle == 0x77777777);
|
||||
TEST(GetObject(hBrush, 5, &logbrush) == sizeof(LOGBRUSH));
|
||||
TEST(logbrush.lbStyle == 0);
|
||||
TEST(logbrush.lbColor == 0x77777701);
|
||||
RTEST(GetObject(hBrush, 0, &logbrush) == 0);
|
||||
RTEST(logbrush.lbStyle == 0x77777777);
|
||||
RTEST(GetObject(hBrush, 5, &logbrush) == sizeof(LOGBRUSH));
|
||||
RTEST(logbrush.lbStyle == 0);
|
||||
RTEST(logbrush.lbColor == 0x77777701);
|
||||
|
||||
TEST(GetObject(hBrush, sizeof(LOGBRUSH), &logbrush) == sizeof(LOGBRUSH));
|
||||
TEST(GetObject(hBrush, sizeof(LOGBRUSH)+2, &logbrush) == sizeof(LOGBRUSH));
|
||||
TEST(GetObject(hBrush, -1, &logbrush) == sizeof(LOGBRUSH));
|
||||
RTEST(GetObject(hBrush, sizeof(LOGBRUSH), &logbrush) == sizeof(LOGBRUSH));
|
||||
RTEST(GetObject(hBrush, sizeof(LOGBRUSH)+2, &logbrush) == sizeof(LOGBRUSH));
|
||||
RTEST(GetObject(hBrush, -1, &logbrush) == sizeof(LOGBRUSH));
|
||||
// TODO: test all members
|
||||
|
||||
TEST(GetLastError() == ERROR_SUCCESS);
|
||||
RTEST(GetLastError() == ERROR_SUCCESS);
|
||||
DeleteObject(hBrush);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -207,21 +207,21 @@ Test_Pen(PTESTINFO pti)
|
|||
hPen = CreatePen(PS_SOLID, 3, RGB(4,5,6));
|
||||
if (!hPen) return FALSE;
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
TEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
||||
TEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
||||
TEST(GetObject(hPen, sizeof(BITMAP), NULL) == sizeof(LOGPEN));
|
||||
TEST(GetObject(hPen, 0, NULL) == sizeof(LOGPEN));
|
||||
TEST(GetObject(hPen, 5, NULL) == sizeof(LOGPEN));
|
||||
TEST(GetObject(hPen, -5, NULL) == sizeof(LOGPEN));
|
||||
TEST(GetObject(hPen, sizeof(LOGPEN), &logpen) == sizeof(LOGPEN));
|
||||
TEST(GetObject(hPen, sizeof(LOGPEN)-1, &logpen) == 0);
|
||||
TEST(GetObject(hPen, sizeof(LOGPEN)+2, &logpen) == sizeof(LOGPEN));
|
||||
TEST(GetObject(hPen, 0, &logpen) == 0);
|
||||
TEST(GetObject(hPen, -5, &logpen) == sizeof(LOGPEN));
|
||||
TEST(GetLastError() == ERROR_SUCCESS);
|
||||
RTEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
||||
RTEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN));
|
||||
RTEST(GetObject(hPen, sizeof(BITMAP), NULL) == sizeof(LOGPEN));
|
||||
RTEST(GetObject(hPen, 0, NULL) == sizeof(LOGPEN));
|
||||
RTEST(GetObject(hPen, 5, NULL) == sizeof(LOGPEN));
|
||||
RTEST(GetObject(hPen, -5, NULL) == sizeof(LOGPEN));
|
||||
RTEST(GetObject(hPen, sizeof(LOGPEN), &logpen) == sizeof(LOGPEN));
|
||||
RTEST(GetObject(hPen, sizeof(LOGPEN)-1, &logpen) == 0);
|
||||
RTEST(GetObject(hPen, sizeof(LOGPEN)+2, &logpen) == sizeof(LOGPEN));
|
||||
RTEST(GetObject(hPen, 0, &logpen) == 0);
|
||||
RTEST(GetObject(hPen, -5, &logpen) == sizeof(LOGPEN));
|
||||
RTEST(GetLastError() == ERROR_SUCCESS);
|
||||
|
||||
/* test if the fields are filled correctly */
|
||||
TEST(logpen.lopnStyle == PS_SOLID);
|
||||
RTEST(logpen.lopnStyle == PS_SOLID);
|
||||
|
||||
|
||||
DeleteObject(hPen);
|
||||
|
@ -242,8 +242,8 @@ Test_ExtPen(PTESTINFO pti)
|
|||
} elpUserStyle;
|
||||
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
TEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||
TEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||
RTEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||
RTEST(GetObjectW((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||
TEST(GetLastError() == ERROR_INVALID_PARAMETER);
|
||||
|
||||
FillMemory(&extlogpen, sizeof(EXTLOGPEN), 0x77);
|
||||
|
@ -252,12 +252,12 @@ Test_ExtPen(PTESTINFO pti)
|
|||
logbrush.lbHatch = 22;
|
||||
hPen = ExtCreatePen(PS_GEOMETRIC | PS_DASH, 5, &logbrush, 0, NULL);
|
||||
|
||||
TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN);
|
||||
TEST(GetObject((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||
TEST(GetObject(hPen, sizeof(EXTLOGPEN), NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||
TEST(GetObject(hPen, 0, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||
TEST(GetObject((HANDLE)GDI_HANDLE_GET_INDEX(hPen), 0, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||
TEST(GetObject(hPen, 5, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||
RTEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN);
|
||||
RTEST(GetObject((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0);
|
||||
RTEST(GetObject(hPen, sizeof(EXTLOGPEN), NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||
RTEST(GetObject(hPen, 0, NULL) == sizeof(EXTLOGPEN)-sizeof(DWORD));
|
||||
RTEST(GetObject((HANDLE)GDI_HANDLE_GET_INDEX(hPen), 0, 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, 4, &extlogpen) == 0);
|
||||
|
|
|
@ -17,7 +17,7 @@ Test_ScrollDC(PTESTINFO pti)
|
|||
|
||||
/* Assert that no update region is there */
|
||||
hrgn = CreateRectRgn(0,0,0,0);
|
||||
ASSERT1(GetUpdateRgn(hWnd, hrgn, FALSE) == NULLREGION);
|
||||
ASSERT(GetUpdateRgn(hWnd, hrgn, FALSE) == NULLREGION);
|
||||
|
||||
/* Test normal scrolling */
|
||||
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 */
|
||||
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);
|
||||
TEST(Result == SIMPLEREGION);
|
||||
|
|
|
@ -10,48 +10,48 @@ LIBRARY w32kdll.dll
|
|||
EXPORTS
|
||||
NtGdiAbortDoc@4
|
||||
NtGdiAbortPath@4
|
||||
;NtGdiAddFontResourceW@24
|
||||
;NtGdiAddRemoteFontToDC@16
|
||||
;NtGdiAddFontMemResourceEx@20
|
||||
;NtGdiRemoveMergeFont@8
|
||||
;NtGdiAddRemoteMMInstanceToDC@12
|
||||
NtGdiAddFontResourceW@24
|
||||
NtGdiAddRemoteFontToDC@16
|
||||
NtGdiAddFontMemResourceEx@20
|
||||
NtGdiRemoveMergeFont@8
|
||||
NtGdiAddRemoteMMInstanceToDC@12
|
||||
NtGdiAlphaBlend@48
|
||||
NtGdiAngleArc@24
|
||||
;NtGdiAnyLinkedFonts@0
|
||||
;NtGdiFontIsLinked@4
|
||||
NtGdiAnyLinkedFonts@0
|
||||
NtGdiFontIsLinked@4
|
||||
NtGdiArcInternal@40
|
||||
NtGdiBeginPath@4
|
||||
NtGdiBitBlt@44
|
||||
NtGdiCancelDC@4
|
||||
;NtGdiCheckBitmapBits@32
|
||||
NtGdiCheckBitmapBits@32
|
||||
NtGdiCloseFigure@4
|
||||
;NtGdiClearBitmapAttributes@8
|
||||
;NtGdiClearBrushAttributes@8
|
||||
;NtGdiColorCorrectPalette@24
|
||||
NtGdiClearBitmapAttributes@8
|
||||
NtGdiClearBrushAttributes@8
|
||||
NtGdiColorCorrectPalette@24
|
||||
NtGdiCombineRgn@16
|
||||
NtGdiCombineTransform@12
|
||||
;NtGdiComputeXformCoefficients@4
|
||||
;NtGdiConsoleTextOut@16
|
||||
;NtGdiConvertMetafileRect@8
|
||||
NtGdiComputeXformCoefficients@4
|
||||
NtGdiConsoleTextOut@16
|
||||
NtGdiConvertMetafileRect@8
|
||||
NtGdiCreateBitmap@20
|
||||
NtGdiCreateClientObj@4
|
||||
NtGdiCreateColorSpace@4
|
||||
;NtGdiCreateColorTransform@32
|
||||
NtGdiCreateColorTransform@32
|
||||
NtGdiCreateCompatibleBitmap@12
|
||||
NtGdiCreateCompatibleDC@4
|
||||
NtGdiCreateDIBBrush@24
|
||||
;NtGdiCreateDIBitmapInternal@44
|
||||
NtGdiCreateDIBitmapInternal@44
|
||||
NtGdiCreateDIBSection@36
|
||||
NtGdiCreateEllipticRgn@16
|
||||
NtGdiCreateHalftonePalette@4
|
||||
NtGdiCreateHatchBrushInternal@12
|
||||
;NtGdiCreateMetafileDC@4
|
||||
;NtGdiCreatePaletteInternal@8
|
||||
NtGdiCreateMetafileDC@4
|
||||
NtGdiCreatePaletteInternal@8
|
||||
NtGdiCreatePatternBrushInternal@12
|
||||
NtGdiCreatePen@16
|
||||
NtGdiCreateRectRgn@16
|
||||
NtGdiCreateRoundRectRgn@24
|
||||
;NtGdiCreateServerMetaFile@24
|
||||
NtGdiCreateServerMetaFile@24
|
||||
NtGdiCreateSolidBrush@8
|
||||
NtGdiD3dContextCreate@16
|
||||
NtGdiD3dContextDestroy@4
|
||||
|
@ -109,44 +109,44 @@ NtGdiDdUnlock@8
|
|||
NtGdiDdUnlockD3D@8
|
||||
NtGdiDdUpdateOverlay@12
|
||||
NtGdiDdWaitForVerticalBlank@8
|
||||
;NtGdiDvpCanCreateVideoPort@8
|
||||
;NtGdiDvpColorControl@8
|
||||
;NtGdiDvpCreateVideoPort@8
|
||||
;NtGdiDvpDestroyVideoPort@8
|
||||
;NtGdiDvpFlipVideoPort@16
|
||||
;NtGdiDvpGetVideoPortBandwidth@8
|
||||
;NtGdiDvpGetVideoPortField@8
|
||||
;NtGdiDvpGetVideoPortFlipStatus@8
|
||||
;NtGdiDvpGetVideoPortInputFormats@8
|
||||
;NtGdiDvpGetVideoPortLine@8
|
||||
;NtGdiDvpGetVideoPortOutputFormats@8
|
||||
;NtGdiDvpGetVideoPortConnectInfo@8
|
||||
;NtGdiDvpGetVideoSignalStatus@8
|
||||
;NtGdiDvpUpdateVideoPort@16
|
||||
;NtGdiDvpWaitForVideoPortSync@8
|
||||
;NtGdiDvpAcquireNotification@12
|
||||
;NtGdiDvpReleaseNotification@8
|
||||
;NtGdiDxgGenericThunk@24
|
||||
NtGdiDvpCanCreateVideoPort@8
|
||||
NtGdiDvpColorControl@8
|
||||
NtGdiDvpCreateVideoPort@8
|
||||
NtGdiDvpDestroyVideoPort@8
|
||||
NtGdiDvpFlipVideoPort@16
|
||||
NtGdiDvpGetVideoPortBandwidth@8
|
||||
NtGdiDvpGetVideoPortField@8
|
||||
NtGdiDvpGetVideoPortFlipStatus@8
|
||||
NtGdiDvpGetVideoPortInputFormats@8
|
||||
NtGdiDvpGetVideoPortLine@8
|
||||
NtGdiDvpGetVideoPortOutputFormats@8
|
||||
NtGdiDvpGetVideoPortConnectInfo@8
|
||||
NtGdiDvpGetVideoSignalStatus@8
|
||||
NtGdiDvpUpdateVideoPort@16
|
||||
NtGdiDvpWaitForVideoPortSync@8
|
||||
NtGdiDvpAcquireNotification@12
|
||||
NtGdiDvpReleaseNotification@8
|
||||
NtGdiDxgGenericThunk@24
|
||||
NtGdiDeleteClientObj@4
|
||||
NtGdiDeleteColorSpace@4
|
||||
;NtGdiDeleteColorTransform@8
|
||||
NtGdiDeleteColorTransform@8
|
||||
NtGdiDeleteObjectApp@4
|
||||
NtGdiDescribePixelFormat@16
|
||||
;NtGdiGetPerBandInfo@8
|
||||
;NtGdiDoBanding@16
|
||||
NtGdiGetPerBandInfo@8
|
||||
NtGdiDoBanding@16
|
||||
NtGdiDoPalette@24
|
||||
NtGdiDrawEscape@16
|
||||
NtGdiEllipse@20
|
||||
;NtGdiEnableEUDC@4
|
||||
NtGdiEnableEudc@4
|
||||
NtGdiEndDoc@4
|
||||
NtGdiEndPage@4
|
||||
NtGdiEndPath@4
|
||||
;NtGdiEnumFontChunk@20
|
||||
;NtGdiEnumFontClose@4
|
||||
;NtGdiEnumFontOpen@28
|
||||
NtGdiEnumFontChunk@20
|
||||
NtGdiEnumFontClose@4
|
||||
NtGdiEnumFontOpen@28
|
||||
NtGdiEnumObjects@16
|
||||
NtGdiEqualRgn@8
|
||||
;NtGdiEudcLoadUnloadLink@28
|
||||
NtGdiEudcLoadUnloadLink@28
|
||||
NtGdiExcludeClipRect@20
|
||||
NtGdiExtCreatePen@44
|
||||
NtGdiExtCreateRegion@12
|
||||
|
@ -154,37 +154,37 @@ NtGdiExtEscape@32
|
|||
NtGdiExtFloodFill@20
|
||||
NtGdiExtGetObjectW@12
|
||||
NtGdiExtSelectClipRgn@12
|
||||
;NtGdiExtTextOutW@36
|
||||
NtGdiExtTextOutW@36
|
||||
NtGdiFillPath@4
|
||||
NtGdiFillRgn@12
|
||||
NtGdiFlattenPath@4
|
||||
;NtGdiFlushUserBatch@0
|
||||
NtGdiFlushUserBatch@0
|
||||
NtGdiFlush@0
|
||||
;NtGdiForceUFIMapping@8
|
||||
NtGdiForceUFIMapping@8
|
||||
NtGdiFrameRgn@20
|
||||
;NtGdiFullscreenControl@20
|
||||
NtGdiFullscreenControl@20
|
||||
NtGdiGetAndSetDCDword@16
|
||||
;NtGdiGetAppClipBox@8
|
||||
NtGdiGetAppClipBox@8
|
||||
NtGdiGetBitmapBits@12
|
||||
NtGdiGetBitmapDimension@8
|
||||
NtGdiGetBoundsRect@12
|
||||
;NtGdiGetCharABCWidthsW@24
|
||||
;NtGdiGetCharacterPlacementW@24
|
||||
NtGdiGetCharABCWidthsW@24
|
||||
NtGdiGetCharacterPlacementW@24
|
||||
NtGdiGetCharSet@4
|
||||
;NtGdiGetCharWidthW@24
|
||||
;NtGdiGetCharWidthInfo@8
|
||||
NtGdiGetCharWidthW@24
|
||||
NtGdiGetCharWidthInfo@8
|
||||
NtGdiGetColorAdjustment@8
|
||||
;NtGdiGetColorSpaceforBitmap@4
|
||||
NtGdiGetColorSpaceforBitmap@4
|
||||
NtGdiGetDCDword@12
|
||||
;NtGdiGetDCforBitmap@4
|
||||
;NtGdiGetDCObject@8
|
||||
NtGdiGetDCforBitmap@4
|
||||
NtGdiGetDCObject@8
|
||||
NtGdiGetDCPoint@12
|
||||
NtGdiGetDeviceCaps@8
|
||||
NtGdiGetDeviceGammaRamp@8
|
||||
;NtGdiGetDeviceCapsAll@8
|
||||
;NtGdiGetDIBitsInternal@36
|
||||
;NtGdiGetETM@8
|
||||
;NtGdiGetEudcTimeStampEx@12
|
||||
NtGdiGetDeviceCapsAll@8
|
||||
NtGdiGetDIBitsInternal@36
|
||||
NtGdiGetETM@8
|
||||
NtGdiGetEudcTimeStampEx@12
|
||||
NtGdiGetFontData@20
|
||||
NtGdiGetFontResourceInfoInternalW@28
|
||||
;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" />
|
||||
<define name="__USE_W32API" />
|
||||
<define name="_WIN32_WINNT">0x0502</define>
|
||||
|
|
|
@ -1,22 +1,11 @@
|
|||
#include "../w32knapi.h"
|
||||
|
||||
|
||||
W32KAPI
|
||||
HANDLE
|
||||
APIENTRY
|
||||
NtGdiDdCreateDirectDrawObject(
|
||||
IN HDC hdc
|
||||
)
|
||||
{
|
||||
return (HANDLE)Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
||||
}
|
||||
|
||||
INT
|
||||
Test_NtGdiDdCreateDirectDrawObject(PTESTINFO pti)
|
||||
{
|
||||
HANDLE hDirectDraw;
|
||||
HDC hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||
ASSERT1(hdc != NULL);
|
||||
ASSERT(hdc != NULL);
|
||||
|
||||
/* Test ReactX */
|
||||
RTEST(NtGdiDdCreateDirectDrawObject(NULL) == NULL);
|
||||
|
|
|
@ -15,12 +15,12 @@ Test_NtGdiDdDeleteDirectDrawObject(PTESTINFO pti)
|
|||
{
|
||||
HANDLE hDirectDraw;
|
||||
HDC hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||
ASSERT1(hdc != NULL);
|
||||
ASSERT(hdc != NULL);
|
||||
|
||||
/* Test ReactX */
|
||||
RTEST(NtGdiDdDeleteDirectDrawObject(NULL) == FALSE);
|
||||
RTEST((hDirectDraw=NtGdiDdCreateDirectDrawObject(hdc)) != NULL);
|
||||
ASSERT1(hDirectDraw != NULL);
|
||||
ASSERT(hDirectDraw != NULL);
|
||||
RTEST(NtGdiDdDeleteDirectDrawObject(hDirectDraw) == TRUE);
|
||||
|
||||
/* Cleanup ReactX setup */
|
||||
|
|
|
@ -64,10 +64,10 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);
|
||||
|
||||
hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);
|
||||
ASSERT1(hdc != NULL);
|
||||
ASSERT(hdc != NULL);
|
||||
|
||||
hDirectDraw = (HANDLE) Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
||||
ASSERT1(hDirectDraw != NULL);
|
||||
ASSERT(hDirectDraw != NULL);
|
||||
|
||||
/* Test ReactX */
|
||||
hDirectDraw = (HANDLE) Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);
|
||||
|
@ -123,7 +123,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
RTEST(puD3dTextureFormats == NULL);
|
||||
RTEST(puNumFourCC == NULL);
|
||||
RTEST(puFourCC == NULL);
|
||||
ASSERT1(pHalInfo != NULL);
|
||||
ASSERT(pHalInfo != NULL);
|
||||
RTEST(puNumHeaps == NULL);
|
||||
RTEST(puvmList == NULL);
|
||||
|
||||
|
@ -131,7 +131,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
(pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
|
||||
{
|
||||
RTEST(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
||||
ASSERT1(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
||||
ASSERT(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.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT) );
|
||||
ASSERT1(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT));
|
||||
ASSERT(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT));
|
||||
|
||||
/* Fail on 8bit screen deep */
|
||||
RTEST(pHalInfo->vmiData.ddpfDisplay.dwFlags == DDPF_RGB);
|
||||
|
@ -225,7 +225,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
RTEST(puD3dTextureFormats == NULL);
|
||||
RTEST(puNumFourCC == NULL);
|
||||
RTEST(puFourCC == NULL);
|
||||
ASSERT1(pHalInfo != NULL);
|
||||
ASSERT(pHalInfo != NULL);
|
||||
RTEST(puNumHeaps == NULL);
|
||||
RTEST(puvmList == NULL);
|
||||
|
||||
|
@ -266,7 +266,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
RTEST(puFourCC == NULL);
|
||||
RTEST(puNumHeaps == NULL);
|
||||
RTEST(puvmList == NULL);
|
||||
ASSERT1(pHalInfo != NULL);
|
||||
ASSERT(pHalInfo != NULL);
|
||||
|
||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||
|
@ -307,7 +307,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
RTEST(puFourCC == NULL);
|
||||
RTEST(puNumHeaps == NULL);
|
||||
RTEST(puvmList == NULL);
|
||||
ASSERT1(pHalInfo != NULL);
|
||||
ASSERT(pHalInfo != NULL);
|
||||
|
||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||
|
@ -351,7 +351,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
RTEST(puFourCC == NULL);
|
||||
RTEST(puNumHeaps == NULL);
|
||||
RTEST(puvmList == NULL);
|
||||
ASSERT1(pHalInfo != NULL);
|
||||
ASSERT(pHalInfo != NULL);
|
||||
|
||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||
|
@ -395,7 +395,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
RTEST(puFourCC == NULL);
|
||||
RTEST(puNumHeaps == NULL);
|
||||
RTEST(puvmList == NULL);
|
||||
ASSERT1(pHalInfo != NULL);
|
||||
ASSERT(pHalInfo != NULL);
|
||||
|
||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||
|
@ -453,7 +453,7 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
|||
RTEST(puFourCC == NULL);
|
||||
RTEST(puNumHeaps == NULL);
|
||||
RTEST(puvmList == NULL);
|
||||
ASSERT1(pHalInfo != NULL);
|
||||
ASSERT(pHalInfo != NULL);
|
||||
|
||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||
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
|
||||
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
|
||||
Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
||||
{
|
||||
|
@ -66,7 +50,7 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
|||
SetLastError(ERROR_SUCCESS);
|
||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 0, 1, NULL)) != NULL);
|
||||
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.bmWidth == 1);
|
||||
TEST(bitmap.bmHeight == 1);
|
||||
|
@ -88,7 +72,7 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
|||
SetLastError(ERROR_SUCCESS);
|
||||
TEST((hBmp = NtGdiCreateBitmap(1, 1, 1, 0, NULL)) != NULL);
|
||||
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.bmWidth == 1);
|
||||
TEST(bitmap.bmHeight == 1);
|
||||
|
@ -105,32 +89,32 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
|||
/* Test bad cBPP */
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
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);
|
||||
DeleteObject(hBmp);
|
||||
|
||||
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);
|
||||
DeleteObject(hBmp);
|
||||
|
||||
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);
|
||||
DeleteObject(hBmp);
|
||||
|
||||
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);
|
||||
DeleteObject(hBmp);
|
||||
|
||||
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);
|
||||
DeleteObject(hBmp);
|
||||
|
||||
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);
|
||||
DeleteObject(hBmp);
|
||||
|
||||
|
@ -154,7 +138,7 @@ Test_NtGdiCreateBitmap_Params(PTESTINFO pti)
|
|||
SetLastError(ERROR_SUCCESS);
|
||||
TEST((hBmp = NtGdiCreateBitmap(5, 7, 2, 4, NULL)) != NULL);
|
||||
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.bmWidth == 5);
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
Test_NtGdiGetRandomRgn(PTESTINFO pti)
|
||||
{
|
||||
|
@ -26,7 +12,7 @@ Test_NtGdiGetRandomRgn(PTESTINFO pti)
|
|||
// UpdateWindow(hWnd);
|
||||
hDC = GetDC(hWnd);
|
||||
|
||||
ASSERT1(hDC != NULL);
|
||||
ASSERT(hDC != NULL);
|
||||
|
||||
hrgn = CreateRectRgn(0,0,0,0);
|
||||
hrgn2 = CreateRectRgn(3,3,10,10);
|
||||
|
|
|
@ -1,15 +1,5 @@
|
|||
#include "../w32knapi.h"
|
||||
|
||||
LONG STDCALL
|
||||
NtGdiSetBitmapBits(
|
||||
HBITMAP hBitmap,
|
||||
DWORD Bytes,
|
||||
IN PBYTE Bits)
|
||||
{
|
||||
return (LONG)Syscall(L"NtGdiSetBitmapBits", 3, &hBitmap);
|
||||
}
|
||||
|
||||
|
||||
INT
|
||||
Test_NtGdiSetBitmapBits(PTESTINFO pti)
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "../apitest.h"
|
||||
#include "w32knapi.h"
|
||||
|
||||
/* include the tests */
|
||||
|
||||
|
@ -10,6 +10,9 @@
|
|||
#include "ntgdi/NtGdiCreateBitmap.c"
|
||||
#include "ntgdi/NtGdiCreateCompatibleBitmap.c"
|
||||
#include "ntgdi/NtGdiDoPalette.c"
|
||||
#include "ntgdi/NtGdiEngCreatePalette.c"
|
||||
//#include "ntgdi/NtGdiEnumFontChunk.c"
|
||||
#include "ntgdi/NtGdiEnumFontOpen.c"
|
||||
#include "ntgdi/NtGdiGetBitmapBits.c"
|
||||
#include "ntgdi/NtGdiGetRandomRgn.c"
|
||||
#include "ntgdi/NtGdiSetBitmapBits.c"
|
||||
|
@ -30,6 +33,9 @@ TESTENTRY TestList[] =
|
|||
{ L"NtGdiCreateBitmap", Test_NtGdiCreateBitmap },
|
||||
{ L"NtGdiCreateCompatibleBitmap", Test_NtGdiCreateCompatibleBitmap },
|
||||
{ L"NtGdiDoPalette", Test_NtGdiDoPalette },
|
||||
{ L"NtGdiEngCreatePalette", Test_NtGdiEngCreatePalette },
|
||||
// { L"NtGdiEnumFontChunk", Test_NtGdiEnumFontChunk },
|
||||
{ L"NtGdiEnumFontOpen", Test_NtGdiEnumFontOpen },
|
||||
{ L"NtGdiGetBitmapBits", Test_NtGdiGetBitmapBits },
|
||||
{ L"NtGdiGetRandomRgn", Test_NtGdiGetRandomRgn },
|
||||
{ L"NtGdiSetBitmapBits", Test_NtGdiSetBitmapBits },
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
HINSTANCE g_hInstance;
|
||||
HMODULE g_hModule = NULL;
|
||||
PGDI_TABLE_ENTRY GdiHandleTable;
|
||||
|
||||
static DWORD STDCALL
|
||||
IntSyscall(FARPROC proc, UINT cParams, PVOID pFirstParam)
|
||||
|
@ -58,7 +59,8 @@ WinMain(HINSTANCE hInstance,
|
|||
int nCmdShow)
|
||||
{
|
||||
g_hInstance = hInstance;
|
||||
|
||||
GDIQUERYPROC GdiQueryHandleTable;
|
||||
|
||||
printf("Win32k native API test\n");
|
||||
|
||||
/* Convert to gui thread */
|
||||
|
@ -68,7 +70,18 @@ WinMain(HINSTANCE hInstance,
|
|||
if (!g_hModule)
|
||||
{
|
||||
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");
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
#ifndef _W32KNAPI_H
|
||||
#define _W32KNAPI_H
|
||||
|
||||
#include "../apitest.h"
|
||||
#define WIN32_NO_STATUS
|
||||
#define NTOS_MODE_USER
|
||||
#define WINVER 0x501
|
||||
|
||||
#include <ddk/winddi.h>
|
||||
#include <ddk/ntddk.h>
|
||||
#include <windows.h>
|
||||
#include <wingdi.h>
|
||||
#include <winddi.h>
|
||||
#include <ntddk.h>
|
||||
#include <d3dnthal.h>
|
||||
#include <prntfont.h>
|
||||
|
||||
/* Public Win32K Headers */
|
||||
#include <win32k/callback.h>
|
||||
|
@ -12,12 +18,14 @@
|
|||
#include <win32k/ntgdityp.h>
|
||||
#include <win32k/ntgdihdl.h>
|
||||
|
||||
#include <ntgdi.h>
|
||||
|
||||
#include "../apitest.h"
|
||||
|
||||
#define OS_UNSUPPORTED 0
|
||||
#define OS_REACTOS 1
|
||||
#define OS_WINDOWS 2
|
||||
|
||||
#define W32KAPI
|
||||
|
||||
typedef struct
|
||||
{
|
||||
LPWSTR lpszFunction;
|
||||
|
@ -25,11 +33,11 @@ typedef struct
|
|||
INT nParams;
|
||||
} SYCALL_ENTRY, *PSYSCALL_ENTRY;
|
||||
|
||||
typedef PGDI_TABLE_ENTRY (CALLBACK * GDIQUERYPROC) (void);
|
||||
|
||||
extern HINSTANCE g_hInstance;
|
||||
extern SYCALL_ENTRY SyscallTable_XP_2600[];
|
||||
extern SYCALL_ENTRY SyscallTable_2K_2195[];
|
||||
extern HMODULE g_hModule;
|
||||
extern INT g_nOsVer;
|
||||
extern PGDI_TABLE_ENTRY GdiHandleTable;
|
||||
|
||||
DWORD Syscall(LPWSTR lpszFunction, int cParams, void* pParams);
|
||||
BOOL InitOsVersion();
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
<library>shell32</library>
|
||||
<library>w32kdll</library>
|
||||
<file>w32knapi.c</file>
|
||||
<file>testlist.c</file>
|
||||
</module>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue