SDL_dinputjoystick.c (IsXInputDevice): adjust to be ANSI/UNICODE-agnostic

cf. bug #5435.
main
Ozkan Sezer 2021-01-04 01:23:50 +03:00
parent ed39f2f3f9
commit f09e0af7aa
1 changed files with 10 additions and 4 deletions

View File

@ -232,6 +232,12 @@ SetDIerror(const char *function, HRESULT code)
return SDL_SetError("%s() DirectX error 0x%8.8lx", function, code); return SDL_SetError("%s() DirectX error 0x%8.8lx", function, code);
} }
#ifdef UNICODE
#define SDL_tcsstr SDL_wcsstr
#else
#define SDL_tcsstr SDL_strstr
#endif
#if 0 /* Microsoft recommended implementation, but slower than checking raw devices */ #if 0 /* Microsoft recommended implementation, but slower than checking raw devices */
#define COBJMACROS #define COBJMACROS
#include <wbemidl.h> #include <wbemidl.h>
@ -241,7 +247,7 @@ static const IID CLSID_WbemLocator = { 0x4590f811, 0x1d3a, 0x11d0,{ 0x89, 0x1f,
static const IID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf,{ 0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24 } }; static const IID IID_IWbemLocator = { 0xdc12a687, 0x737f, 0x11cf,{ 0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24 } };
static SDL_bool static SDL_bool
WIN_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput) WIN_IsXInputDevice(const TCHAR *name, const GUID* pGuidProductFromDirectInput)
{ {
IWbemLocator* pIWbemLocator = NULL; IWbemLocator* pIWbemLocator = NULL;
IEnumWbemClassObject* pEnumDevices = NULL; IEnumWbemClassObject* pEnumDevices = NULL;
@ -260,7 +266,7 @@ WIN_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput)
return SDL_FALSE; return SDL_FALSE;
} }
if (SDL_wcsstr(name, L" XINPUT ") != NULL) { if (SDL_tcsstr(name, TEXT(" XINPUT ")) != NULL) {
/* This is a duplicate interface for a controller that will show up with XInput, /* This is a duplicate interface for a controller that will show up with XInput,
e.g. Xbox One Elite Series 2 in Bluetooth mode. e.g. Xbox One Elite Series 2 in Bluetooth mode.
*/ */
@ -371,7 +377,7 @@ LCleanup:
#endif /* 0 */ #endif /* 0 */
static SDL_bool static SDL_bool
SDL_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput) SDL_IsXInputDevice(const TCHAR *name, const GUID* pGuidProductFromDirectInput)
{ {
UINT i; UINT i;
@ -379,7 +385,7 @@ SDL_IsXInputDevice(const WCHAR *name, const GUID* pGuidProductFromDirectInput)
return SDL_FALSE; return SDL_FALSE;
} }
if (SDL_wcsstr(name, L" XINPUT ") != NULL) { if (SDL_tcsstr(name, TEXT(" XINPUT ")) != NULL) {
/* This is a duplicate interface for a controller that will show up with XInput, /* This is a duplicate interface for a controller that will show up with XInput,
e.g. Xbox One Elite Series 2 in Bluetooth mode. e.g. Xbox One Elite Series 2 in Bluetooth mode.
*/ */