Commit adc2d362baf96e2b133d63e5dfe6c178a458c8ac

Dimitriy Ryazantcev 2021-02-26T15:33:41

Remove outdated and not used WIN_IsXInputDevice code

diff --git a/src/joystick/windows/SDL_dinputjoystick.c b/src/joystick/windows/SDL_dinputjoystick.c
index 4c934a2..98f4aaf 100644
--- a/src/joystick/windows/SDL_dinputjoystick.c
+++ b/src/joystick/windows/SDL_dinputjoystick.c
@@ -235,144 +235,6 @@ SetDIerror(const char *function, HRESULT code)
     return SDL_SetError("%s() DirectX error 0x%8.8lx", function, code);
 }
 
-#if 0 /* Microsoft recommended implementation, but slower than checking raw devices */
-#define COBJMACROS
-#include <wbemidl.h>
-#include <oleauto.h>
-
-static const IID CLSID_WbemLocator = { 0x4590f811, 0x1d3a, 0x11d0,{ 0x89, 0x1f, 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
-WIN_IsXInputDevice(const TCHAR *name, const GUID* pGuidProductFromDirectInput)
-{
-    IWbemLocator*           pIWbemLocator = NULL;
-    IEnumWbemClassObject*   pEnumDevices = NULL;
-    IWbemClassObject*       pDevices[20];
-    IWbemServices*          pIWbemServices = NULL;
-    BSTR                    bstrNamespace = NULL;
-    BSTR                    bstrDeviceID = NULL;
-    BSTR                    bstrClassName = NULL;
-    DWORD                   uReturned = 0;
-    SDL_bool                bIsXinputDevice = SDL_FALSE;
-    UINT                    iDevice = 0;
-    VARIANT                 var;
-    HRESULT                 hr;
-
-    if (!SDL_XINPUT_Enabled()) {
-        return SDL_FALSE;
-    }
-
-    if (SDL_tcsstr(name, TEXT(" XINPUT ")) != NULL) {
-        /* This is a duplicate interface for a controller that will show up with XInput,
-           e.g. Xbox One Elite Series 2 in Bluetooth mode.
-         */
-        return SDL_TRUE;
-    }
-
-    SDL_zeroa(pDevices);
-
-    // Create WMI
-    hr = CoCreateInstance(&CLSID_WbemLocator,
-        NULL,
-        CLSCTX_INPROC_SERVER,
-        &IID_IWbemLocator,
-        (LPVOID*)&pIWbemLocator);
-    if (FAILED(hr) || pIWbemLocator == NULL)
-        goto LCleanup;
-
-    bstrNamespace = SysAllocString(L"\\\\.\\root\\cimv2"); if (bstrNamespace == NULL) goto LCleanup;
-    bstrClassName = SysAllocString(L"Win32_PNPEntity");   if (bstrClassName == NULL) goto LCleanup;
-    bstrDeviceID = SysAllocString(L"DeviceID");          if (bstrDeviceID == NULL)  goto LCleanup;
-
-    // Connect to WMI 
-    hr = IWbemLocator_ConnectServer(pIWbemLocator, bstrNamespace, NULL, NULL, 0L,
-        0L, NULL, NULL, &pIWbemServices);
-    if (FAILED(hr) || pIWbemServices == NULL) {
-        goto LCleanup;
-    }
-
-    // Switch security level to IMPERSONATE. 
-    CoSetProxyBlanket((IUnknown *)pIWbemServices, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL,
-        RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE);
-
-    hr = IWbemServices_CreateInstanceEnum(pIWbemServices, bstrClassName, 0, NULL, &pEnumDevices);
-    if (FAILED(hr) || pEnumDevices == NULL)
-        goto LCleanup;
-
-    // Loop over all devices
-    for (;;) {
-        // Get 20 at a time
-        hr = IEnumWbemClassObject_Next(pEnumDevices, 10000, SDL_arraysize(pDevices), pDevices, &uReturned);
-        if (FAILED(hr)) {
-            goto LCleanup;
-        }
-        if (uReturned == 0) {
-            break;
-        }
-
-        for (iDevice = 0; iDevice < uReturned; iDevice++) {
-            // For each device, get its device ID
-            hr = IWbemClassObject_Get(pDevices[iDevice], bstrDeviceID, 0L, &var, NULL, NULL);
-            if (SUCCEEDED(hr) && var.vt == VT_BSTR && var.bstrVal != NULL) {
-                // Check if the device ID contains "IG_".  If it does, then it's an XInput device
-                // This information can not be found from DirectInput 
-                if (SDL_wcsstr(var.bstrVal, L"IG_")) {
-                    char *bstrVal = WIN_StringToUTF8W(var.bstrVal);
-
-                    // If it does, then get the VID/PID from var.bstrVal
-                    DWORD dwPid = 0, dwVid = 0, dwVidPid;
-                    const char *strVid, *strPid;
-                    strVid = SDL_strstr(bstrVal, "VID_");
-                    if (strVid && SDL_sscanf(strVid, "VID_%4X", &dwVid) != 1)
-                        dwVid = 0;
-                    strPid = SDL_strstr(bstrVal, "PID_");
-                    if (strPid && SDL_sscanf(strPid, "PID_%4X", &dwPid) != 1)
-                        dwPid = 0;
-
-                    SDL_free(bstrVal);
-
-                    // Compare the VID/PID to the DInput device
-                    dwVidPid = MAKELONG(dwVid, dwPid);
-                    if (dwVidPid == pGuidProductFromDirectInput->Data1) {
-                        bIsXinputDevice = SDL_TRUE;
-                        goto LCleanup;
-                    }
-                }
-            }
-            IWbemClassObject_Release(pDevices[iDevice]);
-        }
-    }
-
-LCleanup:
-    if (bstrNamespace) {
-        SysFreeString(bstrNamespace);
-    }
-    if (bstrDeviceID) {
-        SysFreeString(bstrDeviceID);
-    }
-    if (bstrClassName) {
-        SysFreeString(bstrClassName);
-    }
-    for (iDevice = 0; iDevice < SDL_arraysize(pDevices); iDevice++) {
-        if (pDevices[iDevice]) {
-            IWbemClassObject_Release(pDevices[iDevice]);
-        }
-    }
-    if (pEnumDevices) {
-        IEnumWbemClassObject_Release(pEnumDevices);
-    }
-    if (pIWbemLocator) {
-        IWbemLocator_Release(pIWbemLocator);
-    }
-    if (pIWbemServices) {
-        IWbemServices_Release(pIWbemServices);
-    }
-
-    return bIsXinputDevice;
-}
-#endif /* 0 */
-
 static SDL_bool
 SDL_IsXInputDevice(const TCHAR *name, const GUID* pGuidProductFromDirectInput)
 {