#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
+#include "wine/winternl.h"
#include "winuser.h"
#include "winerror.h"
#include "winreg.h"
if (id != 0)
return E_FAIL;
+ if (dwFlags & DIEDFL_FORCEFEEDBACK)
+ return S_FALSE;
+
if ((dwDevType == 0) ||
((dwDevType == DIDEVTYPE_MOUSE) && (version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_POINTER) || (dwDevType == DI8DEVTYPE_MOUSE)) && (version >= 0x0800))) {
if (id != 0)
return E_FAIL;
+ if (dwFlags & DIEDFL_FORCEFEEDBACK)
+ return S_FALSE;
+
if ((dwDevType == 0) ||
((dwDevType == DIDEVTYPE_MOUSE) && (version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_POINTER) || (dwDevType == DI8DEVTYPE_MOUSE)) && (version >= 0x0800))) {
get_app_key(&hkey, &appkey);
if (!get_config_key(hkey, appkey, "MouseWarpOverride", buffer, sizeof(buffer)))
{
- if (!strcasecmp(buffer, "disable"))
+ if (!_strnicmp(buffer, "disable", -1))
newDevice->warp_override = WARP_DISABLE;
- else if (!strcasecmp(buffer, "force"))
+ else if (!_strnicmp(buffer, "force", -1))
newDevice->warp_override = WARP_FORCE_ON;
}
if (appkey) RegCloseKey(appkey);
else if (pdidoi->dwType & DIDFT_BUTTON)
wsprintfW(pdidoi->tszName, buttonW, DIDFT_GETINSTANCE(pdidoi->dwType) - 3);
+ if(pdidoi->dwType & DIDFT_AXIS)
+ pdidoi->dwFlags |= DIDOI_ASPECTPOSITION;
+
_dump_OBJECTINSTANCEW(pdidoi);
return res;
}
SysMouseImpl *This = impl_from_IDirectInputDevice8A(iface);
TRACE("(this=%p,%p)\n", This, pdidi);
- if (pdidi->dwSize != sizeof(DIDEVICEINSTANCEA)) {
- WARN(" dinput3 not supported yet...\n");
- return DI_OK;
- }
-
fill_mouse_dideviceinstanceA(pdidi, This->base.dinput->dwVersion);
return DI_OK;
LPCWSTR lpszUserName,
DWORD dwFlags)
{
- FIXME("(%p)->(%p,%s,%08x): semi-stub !\n", iface, lpdiaf, debugstr_w(lpszUserName), dwFlags);
+ SysMouseImpl *This = impl_from_IDirectInputDevice8W(iface);
+ FIXME("(%p)->(%p,%s,%08x): semi-stub !\n", This, lpdiaf, debugstr_w(lpszUserName), dwFlags);
return _set_action_map(iface, lpdiaf, lpszUserName, dwFlags, &c_dfDIMouse2);
}
hr = SysMouseWImpl_SetActionMap(&This->base.IDirectInputDevice8W_iface, &diafW, lpszUserNameW, dwFlags);
+ lpdiaf->dwCRC = diafW.dwCRC;
+
HeapFree(GetProcessHeap(), 0, diafW.rgoAction);
HeapFree(GetProcessHeap(), 0, lpszUserNameW);