I realized this patch and the next are wrong and don't work, despite the tests passing. No need to bother reading them.
2011/7/8 Lucas Fialho Zawacki lfzawacki@gmail.com:
dlls/dinput/device.c | 22 ++++++++++++++++++++++ dlls/dinput/device_private.h | 1 + 2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index 5d81227..99c854c 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -953,6 +953,16 @@ HRESULT WINAPI IDirectInputDevice2WImpl_GetProperty(LPDIRECTINPUTDEVICE8W iface, TRACE("buffersize = %d\n", pd->dwData); break; }
- case (DWORD_PTR) DIPROP_USERNAME:
- {
- LPDIPROPSTRING ps = (LPDIPROPSTRING)pdiph;
- if (pdiph->dwSize != sizeof(DIPROPSTRING)) return DIERR_INVALIDPARAM;
- if (strlenW(This->owner) == 0) return S_FALSE;
- memcpy(ps->wsz, This->owner, strlenW(This->owner)*sizeof(WCHAR));
- break;
- }
case (DWORD_PTR) DIPROP_VIDPID: FIXME("DIPROP_VIDPID not implemented\n"); return DIERR_UNSUPPORTED; @@ -1459,10 +1469,22 @@ HRESULT WINAPI IDirectInputDevice8WImpl_SetActionMap(LPDIRECTINPUTDEVICE8W iface LPCWSTR lpszUserName, DWORD dwFlags) {
- IDirectInputDeviceImpl *This = impl_from_IDirectInputDevice8W(iface);
DIPROPDWORD dp;
- DWORD username_size = MAX_PATH;
- WCHAR username[MAX_PATH];
FIXME("(%p)->(%p,%s,%08x): semi-stub !\n", iface, lpdiaf, debugstr_w(lpszUserName), dwFlags);
- /* NULL username defaults to the logged user */
- if (lpszUserName == NULL)
- {
- GetUserNameW(username, &username_size);
- lpszUserName = username;
- }
- memcpy(This->owner, lpszUserName, strlenW(lpszUserName)*sizeof(WCHAR));
if (lpdiaf->dwBufferSize > 0) { dp.diph.dwSize = sizeof(DIPROPDWORD); diff --git a/dlls/dinput/device_private.h b/dlls/dinput/device_private.h index 503698a..6df8d93 100644 --- a/dlls/dinput/device_private.h +++ b/dlls/dinput/device_private.h @@ -81,6 +81,7 @@ struct IDirectInputDeviceImpl /* Action mapping */ int num_actions; /* number of actions mapped */ ActionMap *action_map; /* array of mappings */
- WCHAR owner[MAX_PATH]; /* username of the device's owner */
};
extern BOOL get_app_key(HKEY*, HKEY*) DECLSPEC_HIDDEN;
1.7.0.4