/
windows.cpp
55 lines (51 loc) · 1.73 KB
/
windows.cpp
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
#include "stdafx.h"
#include "messaging.h"
#include "utilities.h"
#pragma warning (disable: 4091)
extern "C"
{
__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
__declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001;
}
HWND Hwnd;
WNDPROC BaseWindowProc;
PCOPYDATASTRUCT pDane;
LRESULT APIENTRY WndProc( HWND hWnd, // handle for this window
UINT uMsg, // message for this window
WPARAM wParam, // additional message information
LPARAM lParam) // additional message information
{
switch( uMsg ) // check for windows messages
{
case WM_COPYDATA: {
// obsługa danych przesłanych przez program sterujący
pDane = (PCOPYDATASTRUCT)lParam;
if( pDane->dwData == MAKE_ID4('E', 'U', '0', '7')) // sygnatura danych
multiplayer::OnCommandGet( ( multiplayer::DaneRozkaz *)( pDane->lpData ) );
break;
}
case WM_KEYDOWN:
case WM_KEYUP: {
if (wParam == VK_INSERT || wParam == VK_DELETE || wParam == VK_HOME || wParam == VK_END ||
wParam == VK_PRIOR || wParam == VK_NEXT || wParam == VK_SNAPSHOT)
lParam &= ~0x1ff0000;
if (wParam == VK_INSERT)
lParam |= 0x152 << 16;
else if (wParam == VK_DELETE)
lParam |= 0x153 << 16;
else if (wParam == VK_HOME)
lParam |= 0x147 << 16;
else if (wParam == VK_END)
lParam |= 0x14F << 16;
else if (wParam == VK_PRIOR)
lParam |= 0x149 << 16;
else if (wParam == VK_NEXT)
lParam |= 0x151 << 16;
else if (wParam == VK_SNAPSHOT)
lParam |= 0x137 << 16;
break;
}
}
// pass all messages to DefWindowProc
return CallWindowProc( BaseWindowProc, Hwnd, uMsg, wParam, lParam );
};