Files
Avancerad_CPP/Lab7/ntvntrdr.cpp
2026-03-05 13:16:26 +01:00

92 lines
2.4 KiB
C++

//## begin module.cm preserve=no
// %X% %Q% %Z% %W%
//## end module.cm
//## begin module.cp preserve=no
//## end module.cp
//## Module: NTEventReader; Pseudo Package body
//## Subsystem: lab7
//## Source file: H:\kurs\avC++\lab7\NTvntRdr.cpp
//## begin module.additionalIncludes preserve=no
//## end module.additionalIncludes
//## begin module.includes preserve=yes
#include <iostream.h>
#include <windows.h>
//## end module.includes
// NTEventReader
#include "NTvntRdr.h"
//## begin module.additionalDeclarations preserve=yes
//## end module.additionalDeclarations
// Class NTEventReader
NTEventReader::NTEventReader()
//## begin NTEventReader::NTEventReader%.hasinit preserve=no
//## end NTEventReader::NTEventReader%.hasinit
//## begin NTEventReader::NTEventReader%.initialization preserve=yes
//## end NTEventReader::NTEventReader%.initialization
{
//## begin NTEventReader::NTEventReader%.body preserve=yes
//## end NTEventReader::NTEventReader%.body
}
NTEventReader::~NTEventReader()
{
//## begin NTEventReader::~NTEventReader%.body preserve=yes
//## end NTEventReader::~NTEventReader%.body
}
//## Other Operations (implementation)
Event NTEventReader::getEvent ()
{
//## begin NTEventReader::getEvent%940854115.body preserve=yes
HANDLE hln = GetStdHandle(STD_INPUT_HANDLE);
_INPUT_RECORD lpBuffer[5];
DWORD length=1;
DWORD lpNumberOfEventsRead=0;
WORD key=0, scan=0;
Event e;
ReadConsoleInput(hln,&lpBuffer[0],length,&lpNumberOfEventsRead);
for(DWORD i=0; i<lpNumberOfEventsRead; i++){
INPUT_RECORD r=lpBuffer[i];
switch(r.EventType){
case MOUSE_EVENT:
switch(r.Event.MouseEvent.dwButtonState){
case FROM_LEFT_1ST_BUTTON_PRESSED:
e.setEventType(MOUSE_E);
e.setxpos(r.Event.MouseEvent.dwMousePosition.X);
e.setypos(r.Event.MouseEvent.dwMousePosition.Y);
return e;
break;
}
; break;
case KEY_EVENT: ; break;
default: ; break;
}
cout.flush();
}
e.setEventType(NO_E);
return e;
//## end NTEventReader::getEvent%940854115.body
}
// Additional Declarations
//## begin NTEventReader.declarations preserve=yes
//## end NTEventReader.declarations
//## begin module.epilog preserve=yes
//## end module.epilog