www.pudn.com > Chesssource.rar > Input.h


#if !defined(_INPUT_H_) 
#define _INPUT_H_ 
 
enum InputDevices  
{ 
	NONE = 0, 
	KEYBOARD, 
	MOUSE, 
}; 
 
/////////////////////////////////////////////////////////////////////// 
// 鼠标定义 
/////////////////////////////////////////////////////////////////////// 
#define BUTTON_RELEASED    FALSE 
#define BUTTON_PRESSED      TRUE 
 
#define BUTTON_UNLOCKED    FALSE 
#define BUTTON_LOCKED       TRUE 
 
#define MOUSE_LBUTTON          0 
#define MOUSE_RBUTTON          1 
#define MOUSE_MBUTTON          2 
 
 
/////////////////////////////////////////////////////////////////////// 
// 类定义 
/////////////////////////////////////////////////////////////////////// 
class cInput; 
class cInputDevice; 
 
class cInput   
{ 
  protected: 
      HWND           m_hWnd; 
      IDirectInput8 *m_pDI; 
 
  public: 
    cInput(); 
    ~cInput(); 
 
    IDirectInput8 *GetDirectInputCOM(); 
    HWND           GethWnd(); 
     
    BOOL Init(HWND hWnd, HINSTANCE hInst); 
    BOOL Shutdown(); 
}; 
 
class cInputDevice 
{ 
  public: 
    cInput               *m_Input; 
 
    short                 m_Type; 
    IDirectInputDevice8  *m_pDIDevice; 
 
    BOOL                  m_Windowed; 
 
    char                  m_State[256]; 
    DIMOUSESTATE         *m_MouseState; 
 
    BOOL                  m_Locks[256]; 
 
    long                  m_XPos, m_YPos; 
 
  public: 
    cInputDevice(); 
    ~cInputDevice(); 
 
    IDirectInputDevice8 *DeviceCOM(); 
 
    BOOL Create(cInput *Input, short Type, BOOL Windowed = TRUE); 
    BOOL Free(); 
 
    BOOL Clear(); 
    BOOL Read(); 
    BOOL Acquire(BOOL Active = TRUE); 
 
    BOOL GetLock(char Num); 
    BOOL SetLock(char Num, BOOL State = TRUE); 
    long GetXPos(); 
    BOOL SetXPos(long XPos); 
    long GetYPos(); 
    BOOL SetYPos(long YPos); 
    long GetXDelta(); 
    long GetYDelta(); 
 
    // 键盘专用函数 
    BOOL  GetKeyState(char Num); 
    BOOL  SetKeyState(char Num, BOOL State); 
    BOOL  GetPureKeyState(char Num); 
    short GetKeypress(long TimeOut = 0); 
    long  GetNumKeyPresses(); 
    long  GetNumPureKeyPresses(); 
 
    // 鼠标专用函数 
    BOOL  GetButtonState(char Num); 
    BOOL  SetButtonState(char Num, BOOL State); 
    BOOL  GetPureButtonState(char Num); 
    long  GetNumButtonPresses(); 
    long  GetNumPureButtonPresses(); 
}; 
 
#endif