Ok, now I understand what you meant. But in this case, I wouldn't know how to translate the actual C code into pascal.
auto *genericEvent = static_cast<xcb_generic_event_t *>(message);
//Pass to FPC only XCB_KEY_PRESS
if (genericEvent->response_type == XCB_KEY_PRESS) {
Q_GHotkey_hook* sender = this;
// Pass keyCode and Modifiers to FPC
xcb_key_press_event_t *keyEvent = static_cast<xcb_key_press_event_t *>(message);
uint8_t keyCode = (uint8_t) keyEvent->detail;
uint16_t keyState = (uint8_t) keyEvent->state;
And pass eventType as QByteArray and message as ? in lcl?