MCPcopy Create free account
hub / github.com/deskflow/deskflow / getEvent

Method getEvent

src/lib/platform/MSWindowsEventQueueBuffer.cpp:59–89  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57}
58
59IEventQueueBuffer::Type MSWindowsEventQueueBuffer::getEvent(Event &event, uint32_t &dataID)
60{
61 using enum IEventQueueBuffer::Type;
62 // NOTE: QS_ALLINPUT was replaced with m_supportedMessages.
63 //
64 // peek at messages first. waiting for QS_ALLINPUT will return
65 // if a message has been sent to our window but GetMessage will
66 // dispatch that message behind our backs and block. PeekMessage
67 // will also dispatch behind our backs but won't block.
68 if (!PeekMessage(&m_event, nullptr, 0, 0, PM_NOREMOVE) && !PeekMessage(&m_event, (HWND)-1, 0, 0, PM_NOREMOVE)) {
69 return Unknown;
70 }
71
72 // BOOL. yeah, right.
73 BOOL result = GetMessage(&m_event, nullptr, 0, 0);
74 if (result == -1) {
75 return Unknown;
76 } else if (result == 0) {
77 event = Event(EventTypes::Quit);
78 return System;
79 } else if (m_daemonQuit != 0 && m_event.message == m_daemonQuit) {
80 event = Event(EventTypes::Quit);
81 return System;
82 } else if (m_event.message == m_userEvent) {
83 dataID = static_cast<uint32_t>(m_event.wParam);
84 return User;
85 } else {
86 event = Event(EventTypes::System, m_events->getSystemTarget(), &m_event);
87 return System;
88 }
89}
90
91bool MSWindowsEventQueueBuffer::addEvent(uint32_t dataID)
92{

Callers

nothing calls this directly

Calls 2

getSystemTargetMethod · 0.80
EventClass · 0.70

Tested by

no test coverage detected