1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
CInput::CInput(HINSTANCE hInst,HWND hWnd)
{
HRESULT hr;
m_hInst = hInst;
m_hWnd = hWnd;
m_pDI = 0;
m_pDevice = 0;
hr = DirectInput8Create(m_hInst,
DIRECTINPUT_VERSION,
IID_IDirectInput8,
(void **)&m_pDI,
0);
hr = m_pDI->CreateDevice(GUID_SysKeyboard,
&m_pDevice,
0);
hr = m_pDevice->SetDataFormat(&c_dfDIKeyboard);
hr = m_pDevice->SetCooperativeLevel(m_hWnd,
DISCL_FOREGROUND |
DISCL_NONEXCLUSIVE);
if(m_pDevice)
{
hr = m_pDevice->Acquire();
while(hr == DIERR_OTHERAPPHASPRIO)
{
hr = m_pDevice->Acquire();
MessageBox(0,"DIERR_OTHERAPPHASPRIO","Fehler",0);
}
}
}
CInput::~CInput()
{
if(m_pDI)
{
if(this->m_pDevice)
SAFE_RELEASE(m_pDevice);
SAFE_RELEASE(m_pDI);
}
MessageBox(0,"jop","jop",0);
}
bool CInput::wasKeyboardKeyPressed(UINT Key)
{
HRESULT hr;
hr = m_pDevice->GetDeviceState(sizeof(m_chBuffer),
(void *)&m_chBuffer);
if(hr == DIERR_INPUTLOST)
MessageBox(0,"DIERR_INPUTLOST","FEHLER",0);
if(hr == DIERR_INVALIDPARAM)
MessageBox(0,"DIERR_INVALIDPARAM","FEHLER",0);
if(hr == DIERR_NOTACQUIRED)
MessageBox(0,"DIERR_NOTACQUIRED","FEHLER",0);
if(hr == DIERR_NOTINITIALIZED)
MessageBox(0,"DIERR_NOTINITIALIZED","FEHLER",0);
if(hr == E_PENDING)
MessageBox(0,"E_PENDING","FEHLER",0);
if(m_chBuffer[Key] & 0x80)
return true;
return false;
}
|