Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
87c7f1bd
Commit
87c7f1bd
authored
Oct 11, 2021
by
Rémi Bernon
Committed by
Alexandre Julliard
Oct 11, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dinput: Use wide char string literals.
Signed-off-by:
Rémi Bernon
<
rbernon@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
e4f6ec7d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
18 additions
and
36 deletions
+18
-36
config.c
dlls/dinput/config.c
+1
-2
device.c
dlls/dinput/device.c
+3
-9
dinput_main.c
dlls/dinput/dinput_main.c
+5
-7
joystick_hid.c
dlls/dinput/joystick_hid.c
+2
-4
mouse.c
dlls/dinput/mouse.c
+7
-14
No files found.
dlls/dinput/config.c
View file @
87c7f1bd
...
...
@@ -132,8 +132,7 @@ static int lv_get_item_data(HWND dialog, int index)
static
void
lv_set_action
(
HWND
dialog
,
int
item
,
int
action
,
LPDIACTIONFORMATW
lpdiaf
)
{
static
const
WCHAR
no_action
[]
=
{
'-'
,
'\0'
};
const
WCHAR
*
action_text
=
no_action
;
const
WCHAR
*
action_text
=
L"-"
;
LVITEMW
lvItem
;
if
(
item
<
0
)
return
;
...
...
dlls/dinput/device.c
View file @
87c7f1bd
...
...
@@ -686,11 +686,7 @@ static DWORD semantic_to_obj_id(IDirectInputDeviceImpl* This, DWORD dwSemantic)
*/
static
HKEY
get_mapping_key
(
const
WCHAR
*
device
,
const
WCHAR
*
username
,
const
WCHAR
*
guid
)
{
static
const
WCHAR
subkey
[]
=
{
'S'
,
'o'
,
'f'
,
't'
,
'w'
,
'a'
,
'r'
,
'e'
,
'\\'
,
'W'
,
'i'
,
'n'
,
'e'
,
'\\'
,
'D'
,
'i'
,
'r'
,
'e'
,
'c'
,
't'
,
'I'
,
'n'
,
'p'
,
'u'
,
't'
,
'\\'
,
'M'
,
'a'
,
'p'
,
'p'
,
'i'
,
'n'
,
'g'
,
's'
,
'\\'
,
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'\0'
};
static
const
WCHAR
*
subkey
=
L"Software
\\
Wine
\\
DirectInput
\\
Mappings
\\
%s
\\
%s
\\
%s"
;
HKEY
hkey
;
WCHAR
*
keyname
;
...
...
@@ -733,13 +729,12 @@ static HRESULT save_mapping_settings(IDirectInputDevice8W *iface, LPDIACTIONFORM
*/
for
(
i
=
0
;
i
<
lpdiaf
->
dwNumActions
;
i
++
)
{
static
const
WCHAR
format
[]
=
{
'%'
,
'x'
,
'\0'
};
WCHAR
label
[
9
];
if
(
IsEqualGUID
(
&
didev
.
guidInstance
,
&
lpdiaf
->
rgoAction
[
i
].
guidInstance
)
&&
lpdiaf
->
rgoAction
[
i
].
dwHow
!=
DIAH_UNMAPPED
)
{
swprintf
(
label
,
9
,
format
,
lpdiaf
->
rgoAction
[
i
].
dwSemantic
);
swprintf
(
label
,
9
,
L"%x"
,
lpdiaf
->
rgoAction
[
i
].
dwSemantic
);
RegSetValueExW
(
hkey
,
label
,
0
,
REG_DWORD
,
(
const
BYTE
*
)
&
lpdiaf
->
rgoAction
[
i
].
dwObjID
,
sizeof
(
DWORD
)
);
}
...
...
@@ -775,11 +770,10 @@ static BOOL load_mapping_settings(IDirectInputDeviceImpl *This, LPDIACTIONFORMAT
/* Try to read each action in the DIACTIONFORMAT from registry */
for
(
i
=
0
;
i
<
lpdiaf
->
dwNumActions
;
i
++
)
{
static
const
WCHAR
format
[]
=
{
'%'
,
'x'
,
'\0'
};
DWORD
id
,
size
=
sizeof
(
DWORD
);
WCHAR
label
[
9
];
swprintf
(
label
,
9
,
format
,
lpdiaf
->
rgoAction
[
i
].
dwSemantic
);
swprintf
(
label
,
9
,
L"%x"
,
lpdiaf
->
rgoAction
[
i
].
dwSemantic
);
if
(
!
RegQueryValueExW
(
hkey
,
label
,
0
,
NULL
,
(
LPBYTE
)
&
id
,
&
size
))
{
...
...
dlls/dinput/dinput_main.c
View file @
87c7f1bd
...
...
@@ -83,7 +83,6 @@ static const struct dinput_device *dinput_devices[] =
HINSTANCE
DINPUT_instance
;
static
const
WCHAR
di_em_win_w
[]
=
{
'D'
,
'I'
,
'E'
,
'm'
,
'W'
,
'i'
,
'n'
,
0
};
static
HWND
di_em_win
;
static
BOOL
check_hook_thread
(
void
);
...
...
@@ -498,7 +497,7 @@ static void register_di_em_win_class(void)
class
.
cbSize
=
sizeof
(
class
);
class
.
lpfnWndProc
=
di_em_win_wndproc
;
class
.
hInstance
=
DINPUT_instance
;
class
.
lpszClassName
=
di_em_win_w
;
class
.
lpszClassName
=
L"DIEmWin"
;
if
(
!
RegisterClassExW
(
&
class
)
&&
GetLastError
()
!=
ERROR_CLASS_ALREADY_EXISTS
)
WARN
(
"Unable to register message window class
\n
"
);
...
...
@@ -506,7 +505,7 @@ static void register_di_em_win_class(void)
static
void
unregister_di_em_win_class
(
void
)
{
if
(
!
UnregisterClassW
(
di_em_win_w
,
NULL
)
&&
GetLastError
()
!=
ERROR_CLASS_DOES_NOT_EXIST
)
if
(
!
UnregisterClassW
(
L"DIEmWin"
,
NULL
)
&&
GetLastError
()
!=
ERROR_CLASS_DOES_NOT_EXIST
)
WARN
(
"Unable to unregister message window class
\n
"
);
}
...
...
@@ -611,7 +610,7 @@ static HRESULT WINAPI IDirectInputWImpl_GetDeviceStatus( IDirectInput7W *iface,
static
HRESULT
WINAPI
IDirectInputWImpl_RunControlPanel
(
IDirectInput7W
*
iface
,
HWND
hwndOwner
,
DWORD
dwFlags
)
{
IDirectInputImpl
*
This
=
impl_from_IDirectInput7W
(
iface
);
WCHAR
control_exe
W
[]
=
{
'c'
,
'o'
,
'n'
,
't'
,
'r'
,
'o'
,
'l'
,
'.'
,
'e'
,
'x'
,
'e'
,
0
};
WCHAR
control_exe
[]
=
{
L"control.exe"
};
STARTUPINFOW
si
=
{
0
};
PROCESS_INFORMATION
pi
;
...
...
@@ -626,7 +625,7 @@ static HRESULT WINAPI IDirectInputWImpl_RunControlPanel( IDirectInput7W *iface,
if
(
!
This
->
initialized
)
return
DIERR_NOTINITIALIZED
;
if
(
!
CreateProcessW
(
NULL
,
control_exeW
,
NULL
,
NULL
,
FALSE
,
DETACHED_PROCESS
,
NULL
,
NULL
,
&
si
,
&
pi
))
if
(
!
CreateProcessW
(
NULL
,
control_exe
,
NULL
,
NULL
,
FALSE
,
DETACHED_PROCESS
,
NULL
,
NULL
,
&
si
,
&
pi
))
return
HRESULT_FROM_WIN32
(
GetLastError
());
return
DI_OK
;
...
...
@@ -1294,8 +1293,7 @@ static DWORD WINAPI hook_thread_proc(void *param)
DWORD
ret
;
MSG
msg
;
di_em_win
=
CreateWindowW
(
di_em_win_w
,
di_em_win_w
,
0
,
0
,
0
,
0
,
0
,
HWND_MESSAGE
,
0
,
DINPUT_instance
,
NULL
);
di_em_win
=
CreateWindowW
(
L"DIEmWin"
,
L"DIEmWin"
,
0
,
0
,
0
,
0
,
0
,
HWND_MESSAGE
,
0
,
DINPUT_instance
,
NULL
);
/* Force creation of the message queue */
PeekMessageW
(
&
msg
,
0
,
0
,
0
,
PM_NOREMOVE
);
...
...
dlls/dinput/joystick_hid.c
View file @
87c7f1bd
...
...
@@ -1812,8 +1812,6 @@ static HRESULT hid_joystick_device_open( int index, DIDEVICEINSTANCEW *filter, W
HANDLE
*
device
,
PHIDP_PREPARSED_DATA
*
preparsed
,
HIDD_ATTRIBUTES
*
attrs
,
HIDP_CAPS
*
caps
,
DWORD
version
)
{
static
const
WCHAR
ig_w
[]
=
{
'&'
,
'I'
,
'G'
,
'_'
,
0
};
static
const
WCHAR
xi_w
[]
=
{
'&'
,
'X'
,
'I'
,
'_'
,
0
};
char
buffer
[
sizeof
(
SP_DEVICE_INTERFACE_DETAIL_DATA_W
)
+
MAX_PATH
*
sizeof
(
WCHAR
)];
SP_DEVICE_INTERFACE_DETAIL_DATA_W
*
detail
=
(
void
*
)
buffer
;
SP_DEVICE_INTERFACE_DATA
iface
=
{.
cbSize
=
sizeof
(
iface
)};
...
...
@@ -1856,9 +1854,9 @@ static HRESULT hid_joystick_device_open( int index, DIDEVICEINSTANCEW *filter, W
if
(
override
)
{
if
(
!
SetupDiGetDeviceInstanceIdW
(
set
,
&
devinfo
,
device_id
,
MAX_PATH
,
NULL
)
||
!
(
tmp
=
wcsstr
(
device_id
,
ig_w
)))
!
(
tmp
=
wcsstr
(
device_id
,
L"&IG_"
)))
goto
next
;
memcpy
(
tmp
,
xi_w
,
sizeof
(
xi_w
)
-
sizeof
(
WCHAR
)
);
memcpy
(
tmp
,
L"&XI_"
,
sizeof
(
L"&XI_"
)
-
sizeof
(
WCHAR
)
);
if
(
!
SetupDiOpenDeviceInfoW
(
xi_set
,
device_id
,
NULL
,
0
,
&
devinfo
))
goto
next
;
if
(
!
SetupDiEnumDeviceInterfaces
(
xi_set
,
&
devinfo
,
&
GUID_DEVINTERFACE_WINEXINPUT
,
0
,
&
iface
))
...
...
dlls/dinput/mouse.c
View file @
87c7f1bd
...
...
@@ -136,9 +136,6 @@ static HRESULT mousedev_enum_device(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEIN
static
HRESULT
alloc_device
(
REFGUID
rguid
,
IDirectInputImpl
*
dinput
,
SysMouseImpl
**
out
)
{
static
const
WCHAR
mouse_wrap_override_w
[]
=
{
'M'
,
'o'
,
'u'
,
's'
,
'e'
,
'W'
,
'a'
,
'r'
,
'p'
,
'O'
,
'v'
,
'e'
,
'r'
,
'r'
,
'i'
,
'd'
,
'e'
,
0
};
static
const
WCHAR
disable_w
[]
=
{
'd'
,
'i'
,
's'
,
'a'
,
'b'
,
'l'
,
'e'
,
0
};
static
const
WCHAR
force_w
[]
=
{
'f'
,
'o'
,
'r'
,
'c'
,
'e'
,
0
};
SysMouseImpl
*
newDevice
;
LPDIDATAFORMAT
df
=
NULL
;
unsigned
i
;
...
...
@@ -154,10 +151,10 @@ static HRESULT alloc_device( REFGUID rguid, IDirectInputImpl *dinput, SysMouseIm
newDevice
->
base
.
dwCoopLevel
=
DISCL_NONEXCLUSIVE
|
DISCL_BACKGROUND
;
get_app_key
(
&
hkey
,
&
appkey
);
if
(
!
get_config_key
(
hkey
,
appkey
,
mouse_wrap_override_w
,
buffer
,
sizeof
(
buffer
)
))
if
(
!
get_config_key
(
hkey
,
appkey
,
L"MouseWarpOverride"
,
buffer
,
sizeof
(
buffer
)
))
{
if
(
!
wcsnicmp
(
buffer
,
disable_w
,
-
1
))
newDevice
->
warp_override
=
WARP_DISABLE
;
else
if
(
!
wcsnicmp
(
buffer
,
force_w
,
-
1
))
newDevice
->
warp_override
=
WARP_FORCE_ON
;
if
(
!
wcsnicmp
(
buffer
,
L"disable"
,
-
1
))
newDevice
->
warp_override
=
WARP_DISABLE
;
else
if
(
!
wcsnicmp
(
buffer
,
L"force"
,
-
1
))
newDevice
->
warp_override
=
WARP_FORCE_ON
;
}
if
(
appkey
)
RegCloseKey
(
appkey
);
if
(
hkey
)
RegCloseKey
(
hkey
);
...
...
@@ -687,23 +684,19 @@ static HRESULT WINAPI SysMouseWImpl_GetCapabilities(LPDIRECTINPUTDEVICE8W iface,
static
HRESULT
WINAPI
SysMouseWImpl_GetObjectInfo
(
LPDIRECTINPUTDEVICE8W
iface
,
LPDIDEVICEOBJECTINSTANCEW
pdidoi
,
DWORD
dwObj
,
DWORD
dwHow
)
{
static
const
WCHAR
x_axisW
[]
=
{
'X'
,
'-'
,
'A'
,
'x'
,
'i'
,
's'
,
0
};
static
const
WCHAR
y_axisW
[]
=
{
'Y'
,
'-'
,
'A'
,
'x'
,
'i'
,
's'
,
0
};
static
const
WCHAR
wheelW
[]
=
{
'W'
,
'h'
,
'e'
,
'e'
,
'l'
,
0
};
static
const
WCHAR
buttonW
[]
=
{
'B'
,
'u'
,
't'
,
't'
,
'o'
,
'n'
,
' '
,
'%'
,
'd'
,
0
};
HRESULT
res
;
res
=
IDirectInputDevice2WImpl_GetObjectInfo
(
iface
,
pdidoi
,
dwObj
,
dwHow
);
if
(
res
!=
DI_OK
)
return
res
;
if
(
IsEqualGUID
(
&
pdidoi
->
guidType
,
&
GUID_XAxis
))
wcscpy
(
pdidoi
->
tszName
,
x_axisW
);
wcscpy
(
pdidoi
->
tszName
,
L"X-Axis"
);
else
if
(
IsEqualGUID
(
&
pdidoi
->
guidType
,
&
GUID_YAxis
))
wcscpy
(
pdidoi
->
tszName
,
y_axisW
);
wcscpy
(
pdidoi
->
tszName
,
L"Y-Axis"
);
else
if
(
IsEqualGUID
(
&
pdidoi
->
guidType
,
&
GUID_ZAxis
))
wcscpy
(
pdidoi
->
tszName
,
wheelW
);
wcscpy
(
pdidoi
->
tszName
,
L"Wheel"
);
else
if
(
pdidoi
->
dwType
&
DIDFT_BUTTON
)
swprintf
(
pdidoi
->
tszName
,
MAX_PATH
,
buttonW
,
DIDFT_GETINSTANCE
(
pdidoi
->
dwType
)
-
3
);
swprintf
(
pdidoi
->
tszName
,
MAX_PATH
,
L"Button %d"
,
DIDFT_GETINSTANCE
(
pdidoi
->
dwType
)
-
3
);
if
(
pdidoi
->
dwType
&
DIDFT_AXIS
)
pdidoi
->
dwFlags
|=
DIDOI_ASPECTPOSITION
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment