d3drm/tests: Modify all QI tests to compare vtables.

Signed-off-by: Aaryaman Vasishta <jem456.vasishta@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Aaryaman Vasishta 2016-06-19 03:59:11 +05:30 committed by Alexandre Julliard
parent f585faff6b
commit 88f6c2aa2e
3 changed files with 290 additions and 280 deletions

View File

@ -996,19 +996,19 @@ static HRESULT WINAPI d3drm_device3_QueryInterface(IDirect3DRMDevice3 *iface, RE
TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
if (IsEqualGUID(riid, &IID_IDirect3DRMDevice3)
if (IsEqualGUID(riid, &IID_IDirect3DRMDevice)
|| IsEqualGUID(riid, &IID_IDirect3DRMObject)
|| IsEqualGUID(riid, &IID_IUnknown))
{
*out = &device->IDirect3DRMDevice3_iface;
*out = &device->IDirect3DRMDevice_iface;
}
else if (IsEqualGUID(riid, &IID_IDirect3DRMDevice2))
{
*out = &device->IDirect3DRMDevice2_iface;
}
else if (IsEqualGUID(riid, &IID_IDirect3DRMDevice))
else if (IsEqualGUID(riid, &IID_IDirect3DRMDevice3))
{
*out = &device->IDirect3DRMDevice_iface;
*out = &device->IDirect3DRMDevice3_iface;
}
else if (IsEqualGUID(riid, &IID_IDirect3DRMWinDevice))
{

View File

@ -2352,6 +2352,7 @@ struct qi_test
{
REFIID iid;
REFIID refcount_iid;
REFIID vtable_iid;
HRESULT hr;
};
@ -2383,6 +2384,14 @@ static void test_qi(const char *test_name, IUnknown *base_iface,
refcount = IUnknown_Release(iface2);
ok(refcount == expected_refcount, "Got refcount %u for test \"%s\" %u, %u, expected %u.\n",
refcount, test_name, i, j, expected_refcount);
if (tests[i].vtable_iid && tests[j].vtable_iid && IsEqualGUID(tests[i].vtable_iid, tests[j].vtable_iid))
ok(iface1 == iface2,
"Expected iface1 == iface2 for test \"%s\" %u, %u. Got iface1 = %p, iface 2 = %p.\n",
test_name, i, j, iface1, iface2);
else if (tests[i].vtable_iid && tests[j].vtable_iid)
ok(iface1 != iface2,
"Expected iface1 != iface2 for test \"%s\" %u, %u. Got iface1 == iface2 == %p.\n",
test_name, i, j, iface1);
}
}
@ -2400,74 +2409,74 @@ static void test_d3drm_qi(void)
{
static const struct qi_test tests[] =
{
{ &IID_IDirect3DRM3, &IID_IDirect3DRM3, S_OK, },
{ &IID_IDirect3DRM2, &IID_IDirect3DRM2, S_OK, },
{ &IID_IDirect3DRM, &IID_IDirect3DRM, S_OK, },
{ &IID_IDirect3DRMDevice, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisual, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMesh, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLight, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMWrap, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObjectArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDeviceArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewportArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrameArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisualArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLightArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPickedArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFaceArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMUserVisual, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMInterpolator, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMProgressiveMesh, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPicked2Array, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMClippedVisual, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawClipper, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface4, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw4, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DLight, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IUnknown, &IID_IDirect3DRM, S_OK },
{ &IID_IDirect3DRM3, &IID_IDirect3DRM3, &IID_IDirect3DRM3, S_OK },
{ &IID_IDirect3DRM2, &IID_IDirect3DRM2, &IID_IDirect3DRM2, S_OK },
{ &IID_IDirect3DRM, &IID_IDirect3DRM, &IID_IDirect3DRM, S_OK },
{ &IID_IDirect3DRMDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMWrap, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObjectArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDeviceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewportArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrameArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisualArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLightArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPickedArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFaceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMUserVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMInterpolator, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMProgressiveMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPicked2Array, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMClippedVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawClipper, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IUnknown, &IID_IDirect3DRM, &IID_IDirect3DRM, S_OK },
};
HRESULT hr;
IDirect3DRM *d3drm;
@ -2484,73 +2493,73 @@ static void test_frame_qi(void)
{
static const struct qi_test tests[] =
{
{ &IID_IDirect3DRMFrame3, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMFrame2, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMFrame, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRM, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMDevice2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisual, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMMesh, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLight, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMWrap, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObjectArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDeviceArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewportArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrameArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisualArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLightArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPickedArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFaceArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMUserVisual, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMInterpolator, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMProgressiveMesh, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPicked2Array, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMClippedVisual, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawClipper, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface4, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw4, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DLight, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IUnknown, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMFrame3, &IID_IUnknown, &IID_IDirect3DRMFrame3, S_OK },
{ &IID_IDirect3DRMFrame2, &IID_IUnknown, &IID_IDirect3DRMFrame2, S_OK },
{ &IID_IDirect3DRMFrame, &IID_IUnknown, &IID_IDirect3DRMFrame, S_OK },
{ &IID_IDirect3DRM, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject, &IID_IUnknown, &IID_IDirect3DRMFrame, S_OK },
{ &IID_IDirect3DRMDevice2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisual, &IID_IUnknown, &IID_IDirect3DRMFrame, S_OK },
{ &IID_IDirect3DRMMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMWrap, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObjectArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDeviceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewportArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrameArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisualArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLightArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPickedArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFaceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMUserVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMInterpolator, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMProgressiveMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPicked2Array, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMClippedVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawClipper, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IUnknown, &IID_IUnknown, NULL, S_OK },
};
HRESULT hr;
IDirect3DRM *d3drm1;
@ -2601,74 +2610,74 @@ static void test_device_qi(void)
{
static const struct qi_test tests[] =
{
{ &IID_IDirect3DRM3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRM2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRM, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMDevice, &IID_IUnknown, S_OK, },
{ &IID_IDirect3DRMDevice2, &IID_IUnknown, S_OK, },
{ &IID_IDirect3DRMDevice3, &IID_IUnknown, S_OK, },
{ &IID_IDirect3DRMWinDevice, &IID_IUnknown, S_OK, },
{ &IID_IDirect3DRMObject, &IID_IUnknown, S_OK, },
{ &IID_IDirect3DRMViewport, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMViewport2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMFrame, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMFrame2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMFrame3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMVisual, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMMesh, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMMeshBuilder, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMMeshBuilder2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMMeshBuilder3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMFace, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMFace2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMLight, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMTexture, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMTexture2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMTexture3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMWrap, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMMaterial, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMMaterial2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMAnimation, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMAnimation2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMAnimationSet, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMAnimationSet2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMObjectArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMDeviceArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMViewportArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMFrameArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMVisualArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMLightArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMPickedArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMFaceArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMAnimationArray, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMUserVisual, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMShadow, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMShadow2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMInterpolator, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMProgressiveMesh, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMPicked2Array, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DRMClippedVisual, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDrawClipper, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDrawSurface7, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDrawSurface4, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDrawSurface3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDrawSurface2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDrawSurface, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DDevice7, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DDevice3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DDevice2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DDevice, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3D7, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3D3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3D2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3D, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDraw7, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDraw4, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDraw3, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDraw2, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirectDraw, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IDirect3DLight, NULL, CLASS_E_CLASSNOTAVAILABLE},
{ &IID_IUnknown, &IID_IUnknown, S_OK, },
{ &IID_IDirect3DRM3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice, &IID_IUnknown, &IID_IDirect3DRMDevice, S_OK, },
{ &IID_IDirect3DRMDevice2, &IID_IUnknown, &IID_IDirect3DRMDevice2, S_OK, },
{ &IID_IDirect3DRMDevice3, &IID_IUnknown, &IID_IDirect3DRMDevice3, S_OK, },
{ &IID_IDirect3DRMWinDevice, &IID_IUnknown, &IID_IDirect3DRMWinDevice, S_OK, },
{ &IID_IDirect3DRMObject, &IID_IUnknown, &IID_IDirect3DRMDevice, S_OK, },
{ &IID_IDirect3DRMViewport, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMWrap, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObjectArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDeviceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewportArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrameArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisualArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLightArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPickedArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFaceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMUserVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMInterpolator, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMProgressiveMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPicked2Array, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMClippedVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawClipper, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IUnknown, &IID_IUnknown, NULL, S_OK, },
};
HRESULT hr;
IDirect3DRM *d3drm1;
@ -2728,6 +2737,7 @@ static void test_device_qi(void)
DestroyWindow(window);
}
static HRESULT CALLBACK surface_callback(IDirectDrawSurface *surface, DDSURFACEDESC *desc, void *context)
{
IDirectDrawSurface **primary = context;
@ -4620,74 +4630,74 @@ static void test_texture_qi(void)
{
static const struct qi_test tests[] =
{
{ &IID_IDirect3DRM3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMWinDevice, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMViewport, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisual, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMMesh, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLight, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMTexture2, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMTexture3, &IID_IUnknown, S_OK },
{ &IID_IDirect3DRMWrap, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObjectArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDeviceArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewportArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrameArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisualArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLightArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPickedArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFaceArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationArray, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMUserVisual, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMInterpolator, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMProgressiveMesh, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPicked2Array, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMClippedVisual, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawClipper, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface4, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw7, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw4, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw3, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw2, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DLight, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IUnknown, &IID_IUnknown, S_OK, },
{ &IID_IDirect3DRM3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRM, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDevice3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMWinDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObject, &IID_IUnknown, &IID_IDirect3DRMTexture, S_OK },
{ &IID_IDirect3DRMViewport, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewport2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrame3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisual, &IID_IUnknown, &IID_IDirect3DRMTexture, S_OK },
{ &IID_IDirect3DRMMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMeshBuilder3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFace2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMTexture, &IID_IUnknown, &IID_IDirect3DRMTexture, S_OK },
{ &IID_IDirect3DRMTexture2, &IID_IUnknown, &IID_IDirect3DRMTexture2, S_OK },
{ &IID_IDirect3DRMTexture3, &IID_IUnknown, &IID_IDirect3DRMTexture3, S_OK },
{ &IID_IDirect3DRMWrap, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMMaterial2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimation2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationSet2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMObjectArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMDeviceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMViewportArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFrameArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMVisualArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMLightArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPickedArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMFaceArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMAnimationArray, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMUserVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMShadow2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMInterpolator, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMProgressiveMesh, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMPicked2Array, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DRMClippedVisual, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawClipper, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDrawSurface, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DDevice, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3D, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw7, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw4, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw3, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw2, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirectDraw, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IDirect3DLight, NULL, NULL, CLASS_E_CLASSNOTAVAILABLE },
{ &IID_IUnknown, &IID_IUnknown, NULL, S_OK, },
};
HRESULT hr;
IDirect3DRM *d3drm1;

View File

@ -48,7 +48,7 @@ static void d3drm_texture_destroy(struct d3drm_texture *texture)
{
TRACE("texture %p is being destroyed.\n", texture);
d3drm_object_cleanup((IDirect3DRMObject*)&texture->IDirect3DRMTexture3_iface, &texture->obj);
d3drm_object_cleanup((IDirect3DRMObject*)&texture->IDirect3DRMTexture_iface, &texture->obj);
if (texture->image)
IDirect3DRM_Release(texture->d3drm);
HeapFree(GetProcessHeap(), 0, texture);
@ -705,20 +705,20 @@ static HRESULT WINAPI d3drm_texture3_QueryInterface(IDirect3DRMTexture3 *iface,
TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
if (IsEqualGUID(riid, &IID_IDirect3DRMTexture3)
if (IsEqualGUID(riid, &IID_IDirect3DRMTexture)
|| IsEqualGUID(riid, &IID_IDirect3DRMVisual)
|| IsEqualGUID(riid, &IID_IDirect3DRMObject)
|| IsEqualGUID(riid, &IID_IUnknown))
{
*out = &texture->IDirect3DRMTexture3_iface;
*out = &texture->IDirect3DRMTexture_iface;
}
else if (IsEqualGUID(riid, &IID_IDirect3DRMTexture2))
{
*out = &texture->IDirect3DRMTexture2_iface;
}
else if (IsEqualGUID(riid, &IID_IDirect3DRMTexture))
else if (IsEqualGUID(riid, &IID_IDirect3DRMTexture3))
{
*out = &texture->IDirect3DRMTexture_iface;
*out = &texture->IDirect3DRMTexture3_iface;
}
else
{