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
75
76
77
78
79
80
81
82
|
#include <DInput.h>
#include <Windows.h>
#include <CommCtrl.h>
#include <string>
HWND hWnd;
LPDIRECTINPUT8 lpDirectInput=NULL;
LRESULT CALLBACK windowcallback(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK EnumDevices(LPCDIDEVICEINSTANCE pDevice,void *pRef);
void CleanUpDirectInput(void)
{
lpDirectInput->Release();
}
bool InitDirectInput(HINSTANCE inst)
{
if(FAILED(DirectInput8Create(GetModuleHandle( NULL ), DIRECTINPUT_VERSION,IID_IDirectInput8, (void**)(&lpDirectInput), NULL))) return false;
return true;
}
int _stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* lpCmdLine, int nShowCmd)
{
WNDCLASSEX wcx;
wcx.cbClsExtra=NULL;
wcx.cbSize=sizeof(WNDCLASSEX);
wcx.cbWndExtra=NULL;
wcx.hbrBackground=(HBRUSH)COLOR_WINDOW+4;
wcx.hCursor=LoadCursor(hInstance,IDC_ARROW);
wcx.hIcon=NULL;
wcx.hIconSm=NULL;
wcx.hInstance=hInstance;
wcx.lpfnWndProc=(WNDPROC)windowcallback;
wcx.lpszClassName=L"Klasse";
wcx.lpszMenuName=NULL;
wcx.style=CS_HREDRAW|CS_VREDRAW;
if(!RegisterClassEx(&wcx))
abort();
if(!(hWnd=CreateWindowEx(NULL,L"Klasse",L"Fenster",WS_OVERLAPPEDWINDOW&~WS_SIZEBOX&~WS_MAXIMIZEBOX,CW_USEDEFAULT,CW_USEDEFAULT,500,500,NULL,NULL,hInstance,NULL)))
abort();
InitDirectInput(hInstance);
lpDirectInput->EnumDevices(DI8DEVCLASS_ALL,EnumDevices,NULL,DIEDFL_ALLDEVICES);
ShowWindow(hWnd,nShowCmd);
UpdateWindow(hWnd);
MSG msg;
while(GetMessage(&msg,hWnd,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
HDC render;
PAINTSTRUCT ps;
LRESULT CALLBACK windowcallback(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
{
exit(0);
break;
}
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
BOOL CALLBACK EnumDevices(LPCDIDEVICEINSTANCE pDevice,void *pRef)
{
wchar_t acText[1024];
swprintf_s(acText,L"Ein Eingabegerät wurde gefunden!\n\nName %s\nProduktbezeichnung: %s",pDevice->tszInstanceName,pDevice->tszProductName);
MessageBox(NULL,acText,L"",MB_OK);
return DIENUM_CONTINUE;
}
|