#ifndef ASW_INPUT_W32_H #define ASW_INPUT_W32_H #include "ASW_Window_W32.h" /* InputW32 implements Input using the standard Microsoft Windows mechanism of a WndProc() method to recieve messages from the OS. Refer to comments in the individual class methods for more details. */ class InputW32 : public ASW::Input { friend class ASW::Input; private: bool m_blnMouse; bool m_blnRecievedQuit; char m_chrFocusState; ASW::Point2i m_stuMousePos; ASW::Point2i m_stuMouseDelta; WNDPROC m_ftnWndProc; LONG_PTR m_lngOldValue; WindowW32 * m_ptrWindow; std::vector m_clsKeys; static const ASW::Input::KeyType m_enmMsInputKeys[('z' - 'a') + 1]; static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); protected: virtual bool Sync(ASW::Input::KeyChange * Changes, unsigned int & Amount, ASW::Point3i & MouseMovement); public: InputW32(WindowW32 &); virtual ~InputW32(); virtual bool Acquire(); }; #endif