[WIN32KNT_APITEST:NTDD] Improve failure handling
[reactos.git] / modules / rostests / apitests / win32nt / ntdd / NtGdiDdCreateDirectDrawObject.c
1 /*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for NtGdiDdCreateDirectDrawObject
5 * PROGRAMMERS:
6 */
7
8 #include <win32nt.h>
9
10 START_TEST(NtGdiDdCreateDirectDrawObject)
11 {
12 HANDLE hDirectDraw;
13 HDC hdc = CreateDCW(L"DISPLAY", NULL, NULL, NULL);
14 ok(hdc != NULL, "CreateDCW() failed\n");
15
16 hDirectDraw = NtGdiDdCreateDirectDrawObject(NULL);
17 ok(hDirectDraw == NULL,
18 "NtGdiDdCreateDirectDrawObject() succeeded on NULL device context\n");
19 if (hDirectDraw != NULL)
20 {
21 ok(NtGdiDdDeleteDirectDrawObject(hDirectDraw) == TRUE,
22 "NtGdiDdDeleteDirectDrawObject() failed on unwanted object\n");
23 }
24
25 if (hdc == NULL)
26 {
27 skip("No DC\n");
28 return;
29 }
30
31 hDirectDraw = NtGdiDdCreateDirectDrawObject(hdc);
32 ok(hDirectDraw != NULL, "NtGdiDdCreateDirectDrawObject() failed\n");
33 if (hDirectDraw != NULL)
34 {
35 ok(NtGdiDdDeleteDirectDrawObject(hDirectDraw) == TRUE,
36 "NtGdiDdDeleteDirectDrawObject() failed\n");
37 }
38
39 ok(DeleteDC(hdc) != 0, "DeleteDC() failed\n");
40 }