14 #ifndef WININPUTDEVICEMANAGER_H
15 #define WININPUTDEVICEMANAGER_H
19 #if defined(_WIN32) && !defined(CPPPARSER)
26 class WinRawInputDevice;
34 WinInputDeviceManager();
35 ~WinInputDeviceManager();
38 void device_destroyed(WinRawInputDevice *device);
40 void on_input(HRAWINPUT handle);
41 void on_input_device_arrival(HANDLE handle);
42 void on_input_device_removal(HANDLE handle);
44 HWND setup_message_loop();
45 void destroy_message_loop();
47 static void stop_thread();
51 XInputDevice _xinput_device0;
52 XInputDevice _xinput_device1;
53 XInputDevice _xinput_device2;
54 XInputDevice _xinput_device3;
60 virtual void update()
override;
62 static LRESULT WINAPI window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
64 typedef CONFIGRET (WINAPI *pCM_Get_DevNode_Property)(DEVINST,
const DEVPROPKEY *, DEVPROPTYPE *, PBYTE, PULONG, ULONG);
65 pCM_Get_DevNode_Property _CM_Get_DevNode_PropertyW;
This is our own Panda specialization on the default STL map.