17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-17 09:49:19 +02:00
Files
maszyna/windows.cpp
maj00r 96161dcacb include the platform header where Win32 types are used
windows.cpp and piped_proc.cpp reached windows.h through an imported
module's global module fragment, which does not cross the boundary.
LPT.cpp and zmq_input.cpp never had it at all - the first was in an
MSBuild batch that aborted before reaching it, the second is behind
WITH_ZMQ and has not been compiled by either CI job.

The earlier sweep only looked inside #ifdef _WIN32 blocks, but these
files are gated by CMake instead, so they have no such block.
2026-09-10 02:40:50 +02:00

70 lines
2.0 KiB
C++

#include "winheaders.h"
#include "utilities/utilities_macros.h"
#include <array>
#include <chrono>
#include <cstddef>
#include <deque>
#include <limits>
#include <mutex>
#include <ostream>
#include <sstream>
#include <string>
#include <type_traits>
#include <unordered_map>
#include <utility>
#include <vector>
import eu07.input.messaging;
import eu07.utilities.utilities;
#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 );
};