Определить структуру MSG для вызова собственной функции Windows GetMessage (), используя golang .org / x / sys / windows? - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу вызвать собственную Windows функцию GetMessageA, которая находится в user32.dll. Я могу извлечь и вызвать функцию следующим образом:

https://godoc.org/golang.org/x/sys/windows

dllUser32 := windows.MustLoadDLL("user32.dll")
procGetMessage := dllUser32.MustFindProc("GetMessageA")
r, _, _ := procGetMessage.Call(&msg, 0, 0, 0)

Однако функция GetMessageA ожидает указатель на MSG структура (см. Ниже), которая нигде не определена в golang.org/x/sys/windows.

Как я могу сам определить такую ​​MSG структуру, такую, что макет памяти структуры - это то, что Windows ожидает?

Если MSG уже где-то определен, где я могу его найти?

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getmessage

BOOL GetMessageA(
  LPMSG lpMsg,
  HWND  hWnd,
  UINT  wMsgFilterMin,
  UINT  wMsgFilterMax
);

https://docs.microsoft.com/en-gb/windows/win32/api/winuser/ns-winuser-msg

typedef struct tagMSG {
  HWND   hwnd;
  UINT   message;
  WPARAM wParam;
  LPARAM lParam;
  DWORD  time;
  POINT  pt;
  DWORD  lPrivate;
} MSG, *PMSG, *NPMSG, *LPMSG;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...