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); 
}