Commit c4debff5 authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

dinput: Improve returned flags in Mouse GetObjectInfo.

parent 099b05ce
...@@ -730,6 +730,9 @@ static HRESULT WINAPI SysMouseWImpl_GetObjectInfo(LPDIRECTINPUTDEVICE8W iface, ...@@ -730,6 +730,9 @@ static HRESULT WINAPI SysMouseWImpl_GetObjectInfo(LPDIRECTINPUTDEVICE8W iface,
else if (pdidoi->dwType & DIDFT_BUTTON) else if (pdidoi->dwType & DIDFT_BUTTON)
wsprintfW(pdidoi->tszName, buttonW, DIDFT_GETINSTANCE(pdidoi->dwType) - 3); wsprintfW(pdidoi->tszName, buttonW, DIDFT_GETINSTANCE(pdidoi->dwType) - 3);
if(pdidoi->dwType & DIDFT_AXIS)
pdidoi->dwFlags |= DIDOI_ASPECTPOSITION;
_dump_OBJECTINSTANCEW(pdidoi); _dump_OBJECTINSTANCEW(pdidoi);
return res; return res;
} }
......
...@@ -227,6 +227,36 @@ static void test_GetDeviceInfo(IDirectInputA *pDI) ...@@ -227,6 +227,36 @@ static void test_GetDeviceInfo(IDirectInputA *pDI)
if (pMouse) IUnknown_Release(pMouse); if (pMouse) IUnknown_Release(pMouse);
} }
static BOOL CALLBACK EnumAxes(const DIDEVICEOBJECTINSTANCEA *pdidoi, void *pContext)
{
if (IsEqualIID(&pdidoi->guidType, &GUID_XAxis) ||
IsEqualIID(&pdidoi->guidType, &GUID_YAxis) ||
IsEqualIID(&pdidoi->guidType, &GUID_ZAxis))
{
ok(pdidoi->dwFlags & DIDOI_ASPECTPOSITION, "Missing DIDOI_ASPECTPOSITION, flags are 0x%x\n",
pdidoi->dwFlags);
}
else
ok(pdidoi->dwFlags == 0, "Flags are 0x%x\n", pdidoi->dwFlags);
return DIENUM_CONTINUE;
}
static void test_mouse_EnumObjects(IDirectInputA *pDI)
{
HRESULT hr;
IDirectInputDeviceA *pMouse = NULL;
hr = IDirectInput_CreateDevice(pDI, &GUID_SysMouse, &pMouse, NULL);
ok(SUCCEEDED(hr), "IDirectInput_CreateDevice() failed: %08x\n", hr);
if (FAILED(hr)) return;
hr = IDirectInputDevice_EnumObjects(pMouse, EnumAxes, NULL, DIDFT_ALL);
ok(hr==DI_OK,"IDirectInputDevice_EnumObjects() failed: %08x\n", hr);
if (pMouse) IUnknown_Release(pMouse);
}
static void mouse_tests(void) static void mouse_tests(void)
{ {
HRESULT hr; HRESULT hr;
...@@ -254,6 +284,7 @@ static void mouse_tests(void) ...@@ -254,6 +284,7 @@ static void mouse_tests(void)
test_set_coop(pDI, hwnd); test_set_coop(pDI, hwnd);
test_acquire(pDI, hwnd); test_acquire(pDI, hwnd);
test_GetDeviceInfo(pDI); test_GetDeviceInfo(pDI);
test_mouse_EnumObjects(pDI);
DestroyWindow(hwnd); DestroyWindow(hwnd);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment