d3drm: Implement IDirect3DRMWinDevice_GetClassName.

oldstable
André Hentschel 2012-06-17 19:04:50 +02:00 committed by Alexandre Julliard
parent 069e93f715
commit d9ec2b6dfd
2 changed files with 29 additions and 3 deletions

View File

@ -1115,13 +1115,13 @@ static HRESULT WINAPI IDirect3DRMWinDeviceImpl_GetName(IDirect3DRMWinDevice* ifa
}
static HRESULT WINAPI IDirect3DRMWinDeviceImpl_GetClassName(IDirect3DRMWinDevice* iface,
LPDWORD size, LPSTR name)
LPDWORD size, LPSTR name)
{
IDirect3DRMDeviceImpl *This = impl_from_IDirect3DRMWinDevice(iface);
FIXME("(%p/%p)->(%p, %p): stub\n", iface, This, size, name);
TRACE("(%p/%p)->(%p, %p)\n", iface, This, size, name);
return E_NOTIMPL;
return IDirect3DRMDevice3_GetClassName(&This->IDirect3DRMDevice3_iface, size, name);
}
/*** IDirect3DRMWinDevice methods ***/

View File

@ -20,6 +20,7 @@
#define COBJMACROS
#include <d3drm.h>
#include <initguid.h>
#include <d3drmwin.h>
#include "wine/test.h"
@ -1086,6 +1087,7 @@ static void test_Device(void)
LPDIRECT3DRM pD3DRM;
LPDIRECTDRAWCLIPPER pClipper;
LPDIRECT3DRMDEVICE pDevice;
LPDIRECT3DRMWINDEVICE pWinDevice;
GUID driver;
HWND window;
RECT rc;
@ -1121,6 +1123,30 @@ static void test_Device(void)
ok(size == sizeof("Device"), "wrong size: %u\n", size);
ok(!strcmp(cname, "Device"), "Expected cname to be \"Device\", but got \"%s\"\n", cname);
/* WinDevice */
hr = IDirect3DRMDevice_QueryInterface(pDevice, &IID_IDirect3DRMWinDevice, (LPVOID*)&pWinDevice);
if (FAILED(hr))
{
win_skip("Cannot get IDirect3DRMWinDevice interface (hr = %x), skipping tests\n", hr);
goto cleanup;
}
hr = IDirect3DRMWinDevice_GetClassName(pWinDevice, NULL, cname);
ok(hr == E_INVALIDARG, "GetClassName failed with %x\n", hr);
hr = IDirect3DRMWinDevice_GetClassName(pWinDevice, NULL, NULL);
ok(hr == E_INVALIDARG, "GetClassName failed with %x\n", hr);
size = 1;
hr = IDirect3DRMWinDevice_GetClassName(pWinDevice, &size, cname);
ok(hr == E_INVALIDARG, "GetClassName failed with %x\n", hr);
size = sizeof(cname);
hr = IDirect3DRMWinDevice_GetClassName(pWinDevice, &size, cname);
ok(hr == D3DRM_OK, "Cannot get classname (hr = %x)\n", hr);
ok(size == sizeof("Device"), "wrong size: %u\n", size);
ok(!strcmp(cname, "Device"), "Expected cname to be \"Device\", but got \"%s\"\n", cname);
IDirect3DRMWinDevice_Release(pWinDevice);
cleanup:
IDirect3DRMDevice_Release(pDevice);
IDirectDrawClipper_Release(pClipper);