ReactOS 0.4.16-dev-125-g798ea90
create.cpp
Go to the documentation of this file.
2
4
6{
8 DDSURFACEDESC2 Desc = { 0 };
9 Desc.dwHeight = 200;
10 Desc.dwWidth = 200;
11 Desc.dwSize = sizeof (DDSURFACEDESC2);
12 Desc.ddsCaps.dwCaps = Caps;
13
14 Desc.dwFlags = DDSD_CAPS;
15 BOOL ret = DirectDraw->CreateSurface(&Desc, &Surface, NULL) == test1;
16
18 ret = ret && DirectDraw->CreateSurface(&Desc, &Surface, NULL) == test2;
19
20 if ( Surface )
21 Surface->Release();
22
23 return ret;
24}
25
26BOOL Test_CreateSurface (INT* passed, INT* failed)
27{
28 LPDIRECTDRAWSURFACE7 Surface = NULL;
29 HWND hwnd;
30
31 /* Preparations */
32 if (DirectDrawCreateEx(NULL, (VOID**)&DirectDraw, IID_IDirectDraw7, NULL) != DD_OK)
33 {
34 printf("ERROR: Failed to set up ddraw\n");
35 return FALSE;
36 }
37
39
40 if(!( hwnd = CreateBasicWindow() ))
41 {
42 printf("ERROR: Failed to create window\n");
43 DirectDraw->Release();
44 return FALSE;
45 }
46
47 if (DirectDraw->SetCooperativeLevel (hwnd, DDSCL_NORMAL) != DD_OK)
48 {
49 printf("ERROR: Could not set cooperative level\n");
50 DirectDraw->Release();
51 return 0;
52 }
53
54 /* The Test */
55 DDSURFACEDESC2 Desc = { 0 };
56 Desc.dwSize = sizeof (DDSURFACEDESC2);
57 Desc.dwHeight = 200;
58 Desc.dwWidth = 200;
59
60 TEST ( DirectDraw->CreateSurface(&Desc, &Surface, (IUnknown*)0xdeadbeef) == CLASS_E_NOAGGREGATION );
61 TEST ( DirectDraw->CreateSurface(NULL, &Surface, NULL) == DDERR_INVALIDPARAMS );
62 TEST ( DirectDraw->CreateSurface(&Desc, NULL, NULL) == DDERR_INVALIDPARAMS );
63 TEST ( DirectDraw->CreateSurface(&Desc, &Surface, NULL) == DDERR_INVALIDPARAMS );
64
65 // Test (nearly) all possible cap combinations
66 #include "caps_tests.h"
67
68 DirectDraw->Release();
69
70 return TRUE;
71}
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HRESULT WINAPI DirectDrawCreateEx(LPGUID lpGUID, LPVOID *lplpDD, REFIID id, LPUNKNOWN pUnkOuter)
Definition: main.c:139
DWORD * LPDIRECTDRAW7
Definition: vmrender.idl:6
DWORD * LPDIRECTDRAWSURFACE7
Definition: vmrender.idl:7
void test2()
Definition: ehthrow.cxx:284
void test1()
Definition: ehthrow.cxx:277
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define printf
Definition: freeldr.h:97
nsrefcnt Release()
#define TEST(x)
Definition: precomp.h:20
HWND CreateBasicWindow(VOID)
BOOL Test_CreateSurface(INT *passed, INT *failed)
Definition: create.cpp:26
BOOL TestCaps(const char *dummy, DWORD Caps, HRESULT test1, HRESULT test2)
Definition: create.cpp:5
#define DDSD_WIDTH
Definition: ddraw.h:210
#define DDSCL_NORMAL
Definition: ddraw.h:535
struct _DDSURFACEDESC2 DDSURFACEDESC2
#define DDSD_HEIGHT
Definition: ddraw.h:209
#define DDERR_NOCOOPERATIVELEVELSET
Definition: ddraw.h:89
#define DD_OK
Definition: ddraw.h:186
#define DDERR_INVALIDPARAMS
Definition: ddraw.h:79
#define DDSD_CAPS
Definition: ddraw.h:208
DWORD dwCaps
Definition: ddraw.h:732
DWORD dwWidth
Definition: ddraw.h:1155
DWORD dwHeight
Definition: ddraw.h:1154
DDSCAPS2 ddsCaps
Definition: ddraw.h:1188
DWORD dwFlags
Definition: ddraw.h:1153
DWORD dwSize
Definition: ddraw.h:1152
int32_t INT
Definition: typedefs.h:58
int ret
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662