https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2fa04363728fe187bf9b8…
commit 2fa04363728fe187bf9b8ac9f9219e7abfdbcbd7
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Fri Jul 9 23:31:42 2021 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Fri Jul 9 23:31:42 2021 +0900
[SDK][INCLUDE] Add offset info to INPUTCONTEXT (#3809)
Add offset and size information to INPUTCONTEXT structure for information help.
CORE-11700
---
sdk/include/reactos/wine/ddk/imm.h | 40 ++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/sdk/include/reactos/wine/ddk/imm.h b/sdk/include/reactos/wine/ddk/imm.h
index 0ee7ee52904..583dbd63cc1 100644
--- a/sdk/include/reactos/wine/ddk/imm.h
+++ b/sdk/include/reactos/wine/ddk/imm.h
@@ -47,6 +47,46 @@ typedef struct _tagINPUTCONTEXT {
DWORD dwReserve[3];
} INPUTCONTEXT, *LPINPUTCONTEXT;
+#ifdef _WIN64
+C_ASSERT(offsetof(INPUTCONTEXT, hWnd) == 0x0);
+C_ASSERT(offsetof(INPUTCONTEXT, fOpen) == 0x8);
+C_ASSERT(offsetof(INPUTCONTEXT, ptStatusWndPos) == 0xc);
+C_ASSERT(offsetof(INPUTCONTEXT, ptSoftKbdPos) == 0x14);
+C_ASSERT(offsetof(INPUTCONTEXT, fdwConversion) == 0x1c);
+C_ASSERT(offsetof(INPUTCONTEXT, fdwSentence) == 0x20);
+C_ASSERT(offsetof(INPUTCONTEXT, lfFont) == 0x24);
+C_ASSERT(offsetof(INPUTCONTEXT, cfCompForm) == 0x80);
+C_ASSERT(offsetof(INPUTCONTEXT, cfCandForm) == 0x9c);
+C_ASSERT(offsetof(INPUTCONTEXT, hCompStr) == 0x120);
+C_ASSERT(offsetof(INPUTCONTEXT, hCandInfo) == 0x128);
+C_ASSERT(offsetof(INPUTCONTEXT, hGuideLine) == 0x130);
+C_ASSERT(offsetof(INPUTCONTEXT, hPrivate) == 0x138);
+C_ASSERT(offsetof(INPUTCONTEXT, dwNumMsgBuf) == 0x140);
+C_ASSERT(offsetof(INPUTCONTEXT, hMsgBuf) == 0x148);
+C_ASSERT(offsetof(INPUTCONTEXT, fdwInit) == 0x150);
+C_ASSERT(offsetof(INPUTCONTEXT, dwReserve) == 0x154);
+C_ASSERT(sizeof(INPUTCONTEXT) == 0x160);
+#else
+C_ASSERT(offsetof(INPUTCONTEXT, hWnd) == 0x0);
+C_ASSERT(offsetof(INPUTCONTEXT, fOpen) == 0x4);
+C_ASSERT(offsetof(INPUTCONTEXT, ptStatusWndPos) == 0x8);
+C_ASSERT(offsetof(INPUTCONTEXT, ptSoftKbdPos) == 0x10);
+C_ASSERT(offsetof(INPUTCONTEXT, fdwConversion) == 0x18);
+C_ASSERT(offsetof(INPUTCONTEXT, fdwSentence) == 0x1c);
+C_ASSERT(offsetof(INPUTCONTEXT, lfFont) == 0x20);
+C_ASSERT(offsetof(INPUTCONTEXT, cfCompForm) == 0x7c);
+C_ASSERT(offsetof(INPUTCONTEXT, cfCandForm) == 0x98);
+C_ASSERT(offsetof(INPUTCONTEXT, hCompStr) == 0x118);
+C_ASSERT(offsetof(INPUTCONTEXT, hCandInfo) == 0x11c);
+C_ASSERT(offsetof(INPUTCONTEXT, hGuideLine) == 0x120);
+C_ASSERT(offsetof(INPUTCONTEXT, hPrivate) == 0x124);
+C_ASSERT(offsetof(INPUTCONTEXT, dwNumMsgBuf) == 0x128);
+C_ASSERT(offsetof(INPUTCONTEXT, hMsgBuf) == 0x12c);
+C_ASSERT(offsetof(INPUTCONTEXT, fdwInit) == 0x130);
+C_ASSERT(offsetof(INPUTCONTEXT, dwReserve) == 0x134);
+C_ASSERT(sizeof(INPUTCONTEXT) == 0x140);
+#endif
+
LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC);
#endif /* _WINE_IMM_H_ */