static Int32 XInputGetState_Hooked(Int32 dwUserIndex, out RawState state) { Int32 ret = 0; try { XInputHook This = (XInputHook)HookRuntimeInfo.Callback; ret = XInputGetState(dwUserIndex, out state); //This.Interface.Notify(String.Format("Called XInputGetState index {0} return {1} state {2}", dwUserIndex, ret, state)); This.stateMtx.WaitOne(); state.dwPacketNumber = This.state.dwPacketNumber; state.Gamepad.wButtons = This.state.Gamepad.wButtons; state.Gamepad.bLeftTrigger = This.state.Gamepad.bLeftTrigger; state.Gamepad.bRightTrigger = This.state.Gamepad.bRightTrigger; state.Gamepad.sThumbLX = This.state.Gamepad.sThumbLX; state.Gamepad.sThumbLY = This.state.Gamepad.sThumbLY; state.Gamepad.sThumbRX = This.state.Gamepad.sThumbRX; state.Gamepad.sThumbRY = This.state.Gamepad.sThumbRY; This.stateMtx.ReleaseMutex(); } catch { state = new RawState(); } return(ret); }
static Int32 XInputGetCapabilities_Hooked(Int32 dwUserIndex, Int32 dwFlags, out SharpDX.XInput.Capabilities caps) { Int32 ret = 0; try { XInputHook This = (XInputHook)HookRuntimeInfo.Callback; ret = XInputGetCapabilities(dwUserIndex, dwFlags, out caps); //This.Interface.Notify(String.Format("Called XInputGetCapabilities index {0} flags {1} ret {2} caps {3}", dwUserIndex, dwFlags, caps)); } catch { caps = new SharpDX.XInput.Capabilities(); } return(ret); }