1 BOOL
CreateSurface(LPDIRECTDRAWSURFACE7
* pSurface
);
3 BOOL
Test_PrivateData (INT
* passed
, INT
* failed
)
5 LPDIRECTDRAWSURFACE7 Surface
;
6 DWORD size
, dummy
= 0xBAADF00D;
10 if(!CreateSurface(&Surface
))
14 TEST(Surface
->SetPrivateData(guid
, NULL
, 0, 0) == DDERR_INVALIDPARAMS
);
15 TEST(Surface
->SetPrivateData(guid
, (LPVOID
)&dummy
, 0, 0) == DDERR_INVALIDPARAMS
);
16 TEST(Surface
->SetPrivateData(guid
, (LPVOID
)0xdeadbeef, sizeof(DWORD
), 0) == DDERR_INVALIDPARAMS
);
17 TEST(Surface
->SetPrivateData(guid
, (LPVOID
)&dummy
, sizeof(DWORD
), 0) == DD_OK
);
19 TEST(Surface
->GetPrivateData(guid
, NULL
, 0) == DDERR_INVALIDPARAMS
);
20 TEST(Surface
->GetPrivateData(guid
, &dummy
, 0) == DDERR_INVALIDPARAMS
);
22 TEST(Surface
->GetPrivateData(guid
, &dummy
, &size
) == DDERR_MOREDATA
&& size
== sizeof(DWORD
));
24 TEST(Surface
->GetPrivateData(guid
, NULL
, &size
) == DDERR_MOREDATA
&& size
== sizeof(DWORD
));
25 TEST(Surface
->GetPrivateData(guid
, NULL
, &size
) == DDERR_INVALIDPARAMS
);
26 TEST(Surface
->GetPrivateData(guid
, &dummy
, &size
) == DD_OK
&& dummy
== 0xBAADF00D);
27 TEST(Surface
->GetPrivateData(guid2
, NULL
, 0) == DDERR_NOTFOUND
);
29 TEST(Surface
->FreePrivateData(guid
) == DD_OK
);
30 TEST(Surface
->FreePrivateData(guid
) == DDERR_NOTFOUND
);
32 // Test for DDSPD_VOLATILE flag
33 TEST(Surface
->SetPrivateData(guid
, (LPVOID
)&dummy
, sizeof(DWORD
), DDSPD_VOLATILE
) == DD_OK
);
35 TEST(Surface
->GetPrivateData(guid
, NULL
, &size
) == DDERR_MOREDATA
&& size
== sizeof(DWORD
));
36 TEST(Surface
->GetPrivateData(guid
, &dummy
, &size
) == DD_OK
&& dummy
== 0xBAADF00D);
39 bltfx
.dwSize
= sizeof(DDBLTFX
);
40 bltfx
.dwFillColor
= RGB(0, 0, 0);
41 if(Surface
->Blt(NULL
, NULL
, NULL
, DDBLT_COLORFILL
| DDBLT_WAIT
, &bltfx
) != DD_OK
)
42 printf("ERROR: Failed to draw to surface !");
43 TEST(Surface
->GetPrivateData(guid
, &dummy
, &size
) == DDERR_EXPIRED
);
45 // TODO: Test for DDSPD_IUNKNOWNPOINTER (see http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/ddraw7/directdraw7/ddref_5qyf.asp)