reactos/modules/rostests/apitests/win32nt/ntgdi/NtGdiGetStockObject.c
Serge Gautherie a5c3bb5bce
[WIN32KNT_APITEST] 2 minor code improvements and a first fix (#5980)
- Update .rc filename; addendum to 7ad21a4 (r70458).
- Move one '#include "resource.h"' around to where it is needed.
  Addendum to e1b2e7a (r29284) then ec5e0ea (r48103).
- Adjust all '#include <win32nt.h>'
2023-11-16 21:57:10 +01:00

145 lines
4.9 KiB
C

/*
* PROJECT: ReactOS api tests
* LICENSE: GPL - See COPYING in the top level directory
* PURPOSE: Test for NtGdiGetStockObject
* PROGRAMMERS:
*/
#include "../win32nt.h"
START_TEST(NtGdiGetStockObject)
{
HANDLE handle = NULL;
BITMAP bitmap;
/* BRUSH testing */
handle = (HANDLE) NtGdiGetStockObject(WHITE_BRUSH);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BRUSH);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(LTGRAY_BRUSH);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BRUSH);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(GRAY_BRUSH);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BRUSH);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(DKGRAY_BRUSH);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BRUSH);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(BLACK_BRUSH);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BRUSH);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(NULL_BRUSH);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BRUSH);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
/* PEN testing */
handle = (HANDLE) NtGdiGetStockObject(WHITE_PEN);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_PEN);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) != 0);
handle = (HANDLE) NtGdiGetStockObject(BLACK_PEN);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_PEN);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) != 0);
handle = (HANDLE) NtGdiGetStockObject(NULL_PEN);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_PEN);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
/* Not inuse ? */
RTEST(NtGdiGetStockObject(9) == 0);
/* FONT testing */
handle = (HANDLE) NtGdiGetStockObject(OEM_FIXED_FONT);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_FONT);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) != 0);
handle = (HANDLE) NtGdiGetStockObject(ANSI_FIXED_FONT);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_FONT);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(ANSI_VAR_FONT);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_FONT);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(SYSTEM_FONT);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_FONT);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(DEVICE_DEFAULT_FONT);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_FONT);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(SYSTEM_FIXED_FONT);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_FONT);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(DEFAULT_GUI_FONT);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_FONT);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
/* PALETTE testing */
handle = (HANDLE) NtGdiGetStockObject(DEFAULT_PALETTE);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_PALETTE);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
/* DC testing */
handle = (HANDLE) NtGdiGetStockObject(DC_BRUSH);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BRUSH);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
handle = (HANDLE) NtGdiGetStockObject(DC_PEN);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_PEN);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
/* ? testing */
handle = (HANDLE) NtGdiGetStockObject(20);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_COLORSPACE);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
/* value 21 is getting back 1x1 1Bpp Bitmap */
handle = (HANDLE) NtGdiGetStockObject(21);
RTEST(handle != 0);
RTEST(GDI_HANDLE_GET_TYPE(handle) == GDI_OBJECT_TYPE_BITMAP);
RTEST(GDI_HANDLE_IS_STOCKOBJ(handle) == TRUE);
RTEST(GetObject(handle, sizeof(BITMAP), &bitmap) == sizeof(BITMAP));
RTEST(bitmap.bmType == 0);
RTEST(bitmap.bmWidth == 1);
RTEST(bitmap.bmHeight == 1);
RTEST(bitmap.bmWidthBytes == 2);
RTEST(bitmap.bmPlanes == 1);
RTEST(bitmap.bmBitsPixel == 1);
RTEST(bitmap.bmBits == 0);
RTEST(NtGdiGetStockObject(22) == 0);
RTEST(NtGdiGetStockObject(23) == 0);
}