ReactOS 0.4.15-dev-7654-g6bc40d3
create.cpp File Reference
#include "caps_tests.h"
Include dependency graph for create.cpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

BOOL TestCaps (const char *dummy, DWORD Caps, HRESULT test1, HRESULT test2)
 
BOOL Test_CreateSurface (INT *passed, INT *failed)
 

Variables

HWND CreateBasicWindow (VOID)
 
LPDIRECTDRAW7 DirectDraw
 

Function Documentation

◆ Test_CreateSurface()

BOOL Test_CreateSurface ( INT passed,
INT failed 
)

Definition at line 26 of file create.cpp.

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 * LPDIRECTDRAWSURFACE7
Definition: vmrender.idl:7
#define printf
Definition: freeldr.h:94
#define TEST(x)
Definition: precomp.h:20
HWND CreateBasicWindow(VOID)
#define DDSCL_NORMAL
Definition: ddraw.h:535
struct _DDSURFACEDESC2 DDSURFACEDESC2
#define DDERR_NOCOOPERATIVELEVELSET
Definition: ddraw.h:89
#define DD_OK
Definition: ddraw.h:186
#define DDERR_INVALIDPARAMS
Definition: ddraw.h:79
DWORD dwWidth
Definition: ddraw.h:1155
DWORD dwHeight
Definition: ddraw.h:1154
DWORD dwSize
Definition: ddraw.h:1152
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662

◆ TestCaps()

BOOL TestCaps ( const char dummy,
DWORD  Caps,
HRESULT  test1,
HRESULT  test2 
)

Definition at line 5 of file create.cpp.

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}
void test2()
Definition: ehthrow.cxx:284
void test1()
Definition: ehthrow.cxx:277
unsigned int BOOL
Definition: ntddk_ex.h:94
nsrefcnt Release()
#define DDSD_WIDTH
Definition: ddraw.h:210
#define DDSD_HEIGHT
Definition: ddraw.h:209
#define DDSD_CAPS
Definition: ddraw.h:208
DWORD dwCaps
Definition: ddraw.h:732
DDSCAPS2 ddsCaps
Definition: ddraw.h:1188
DWORD dwFlags
Definition: ddraw.h:1153
int ret

Variable Documentation

◆ CreateBasicWindow

HWND CreateBasicWindow(VOID) ( VOID  )

◆ DirectDraw

Definition at line 3 of file create.cpp.