www.pudn.com > 3D_Tank.rar > Input.cpp
#include "Input.h"
CInput::CInput()
{}
CInput::~CInput()
{}
VOID CInput::InitKeyboardAndMouse(HWND hwnd, HINSTANCE instance)
{
HRESULT hr;
IDirectInput8 *input = 0;
hr = DirectInput8Create(instance, DIRECTINPUT_VERSION,
IID_IDirectInput8,reinterpret_cast(&input), 0);
IDirectInputDevice8 *keyboard;
input->CreateDevice(GUID_SysKeyboard, &keyboard, 0);
m_Keyboard.Reset(keyboard);
IDirectInputDevice8 *mouse;
input->CreateDevice(GUID_SysMouse, &mouse, 0);
m_Mouse.Reset(mouse);
input->Release();
m_Keyboard->SetDataFormat(&c_dfDIKeyboard);
m_Keyboard->SetCooperativeLevel(hwnd, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE);
m_Keyboard->Acquire();
m_Mouse->SetDataFormat(&c_dfDIMouse);
m_Mouse->SetCooperativeLevel(hwnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE);
m_Mouse->Acquire();
}
VOID CInput::GetKeyboardInput()
{
m_Keyboard->Acquire();
ZeroMemory(m_KeyboardState, sizeof(m_KeyboardState));
m_Keyboard->GetDeviceState(sizeof(m_KeyboardState), m_KeyboardState);
}
VOID CInput::GetMouseInput()
{
m_Mouse->Acquire();
ZeroMemory(&m_MouseState, sizeof(DIMOUSESTATE));
m_Mouse->GetDeviceState(sizeof(DIMOUSESTATE), &m_MouseState);
}