diff options
author | Iru Cai <mytbk920423@gmail.com> | 2021-05-13 21:03:06 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2021-05-13 21:03:06 +0800 |
commit | e77e983754542a8b02ac7319655d7658284d6953 (patch) | |
tree | d17817613b954ebc6bcf3c47956400c9e833a1bb /asm/window_util.c | |
parent | bd375c48c12361120ef8891c24a0f804f693cfd3 (diff) | |
download | rich4-e77e983754542a8b02ac7319655d7658284d6953.tar.xz |
use window_util.c
Diffstat (limited to 'asm/window_util.c')
-rw-r--r-- | asm/window_util.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/asm/window_util.c b/asm/window_util.c new file mode 100644 index 0000000..fadc86a --- /dev/null +++ b/asm/window_util.c @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2018 Iru Cai <mytbk920423@gmail.com> + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +#include "window_util.h" + +wProc windowCallbacks[16]; // 48a010 +int callbackSize = 0; // 0x46cad8 + +extern HWND gWindowHandle; + +int Wait_0402_Message(wProc cb, int a2) +{ + callbackSize++; + windowCallbacks[callbackSize] = cb; + PostMessageA(gWindowHandle, 0x401, 0, a2); + while (1) { + MSG msg; + if (PeekMessageA(&msg, 0, 0, 0, 1) == 0) + continue; + if (msg.message == 0x402) { + callbackSize--; + return msg.lParam; + } + TranslateMessage(&msg); + DispatchMessageA(&msg); + } +} + +void Post_0402_Message(LPARAM lp) +{ + PostMessageA(gWindowHandle, 0x402, 0, lp); +} |