ReactOS  0.4.15-dev-3203-gacde1e0
imm.h
Go to the documentation of this file.
1 
2 #ifndef _WINE_IMM_H_
3 #define _WINE_IMM_H_
4 
5 #include <wingdi.h>
6 
7 #ifdef WINE_NO_UNICODE_MACROS
8 # define WINELIB_NAME_AW(func) \
9  func##_must_be_suffixed_with_W_or_A_in_this_context \
10  func##_must_be_suffixed_with_W_or_A_in_this_context
11 #else /* WINE_NO_UNICODE_MACROS */
12 # ifdef UNICODE
13 # define WINELIB_NAME_AW(func) func##W
14 # else
15 # define WINELIB_NAME_AW(func) func##A
16 # endif
17 #endif /* WINE_NO_UNICODE_MACROS */
18 
19 #ifdef WINE_NO_UNICODE_MACROS
20 # define DECL_WINELIB_TYPE_AW(type) /* nothing */
21 #else
22 # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
23 #endif
24 
25 #include <psdk/imm.h>
26 
27 typedef struct _tagINPUTCONTEXT {
34  union {
37  } lfFont;
49 
50 #ifdef _WIN64
52 C_ASSERT(offsetof(INPUTCONTEXT, fOpen) == 0x8);
53 C_ASSERT(offsetof(INPUTCONTEXT, ptStatusWndPos) == 0xc);
54 C_ASSERT(offsetof(INPUTCONTEXT, ptSoftKbdPos) == 0x14);
55 C_ASSERT(offsetof(INPUTCONTEXT, fdwConversion) == 0x1c);
56 C_ASSERT(offsetof(INPUTCONTEXT, fdwSentence) == 0x20);
57 C_ASSERT(offsetof(INPUTCONTEXT, lfFont) == 0x24);
58 C_ASSERT(offsetof(INPUTCONTEXT, cfCompForm) == 0x80);
59 C_ASSERT(offsetof(INPUTCONTEXT, cfCandForm) == 0x9c);
60 C_ASSERT(offsetof(INPUTCONTEXT, hCompStr) == 0x120);
61 C_ASSERT(offsetof(INPUTCONTEXT, hCandInfo) == 0x128);
62 C_ASSERT(offsetof(INPUTCONTEXT, hGuideLine) == 0x130);
63 C_ASSERT(offsetof(INPUTCONTEXT, hPrivate) == 0x138);
64 C_ASSERT(offsetof(INPUTCONTEXT, dwNumMsgBuf) == 0x140);
65 C_ASSERT(offsetof(INPUTCONTEXT, hMsgBuf) == 0x148);
66 C_ASSERT(offsetof(INPUTCONTEXT, fdwInit) == 0x150);
67 C_ASSERT(offsetof(INPUTCONTEXT, dwReserve) == 0x154);
68 C_ASSERT(sizeof(INPUTCONTEXT) == 0x160);
69 #else
71 C_ASSERT(offsetof(INPUTCONTEXT, fOpen) == 0x4);
72 C_ASSERT(offsetof(INPUTCONTEXT, ptStatusWndPos) == 0x8);
73 C_ASSERT(offsetof(INPUTCONTEXT, ptSoftKbdPos) == 0x10);
74 C_ASSERT(offsetof(INPUTCONTEXT, fdwConversion) == 0x18);
75 C_ASSERT(offsetof(INPUTCONTEXT, fdwSentence) == 0x1c);
76 C_ASSERT(offsetof(INPUTCONTEXT, lfFont) == 0x20);
77 C_ASSERT(offsetof(INPUTCONTEXT, cfCompForm) == 0x7c);
78 C_ASSERT(offsetof(INPUTCONTEXT, cfCandForm) == 0x98);
79 C_ASSERT(offsetof(INPUTCONTEXT, hCompStr) == 0x118);
80 C_ASSERT(offsetof(INPUTCONTEXT, hCandInfo) == 0x11c);
81 C_ASSERT(offsetof(INPUTCONTEXT, hGuideLine) == 0x120);
82 C_ASSERT(offsetof(INPUTCONTEXT, hPrivate) == 0x124);
83 C_ASSERT(offsetof(INPUTCONTEXT, dwNumMsgBuf) == 0x128);
84 C_ASSERT(offsetof(INPUTCONTEXT, hMsgBuf) == 0x12c);
85 C_ASSERT(offsetof(INPUTCONTEXT, fdwInit) == 0x130);
86 C_ASSERT(offsetof(INPUTCONTEXT, dwReserve) == 0x134);
87 C_ASSERT(sizeof(INPUTCONTEXT) == 0x140);
88 #endif
89 
90 typedef struct INPUTCONTEXTDX /* unconfirmed */
91 {
98  void *pUnknownFox;
99  /* ... */
101 
102 #ifndef _WIN64
103 C_ASSERT(offsetof(INPUTCONTEXTDX, nVKey) == 0x140);
104 C_ASSERT(offsetof(INPUTCONTEXTDX, bNeedsTrans) == 0x144);
105 C_ASSERT(offsetof(INPUTCONTEXTDX, dwUIFlags) == 0x14c);
106 #endif
107 
108 // bits of fdwInit of INPUTCONTEXT
109 #define INIT_STATUSWNDPOS 0x00000001
110 #define INIT_CONVERSION 0x00000002
111 #define INIT_SENTENCE 0x00000004
112 #define INIT_LOGFONT 0x00000008
113 #define INIT_COMPFORM 0x00000010
114 #define INIT_SOFTKBDPOS 0x00000020
115 
116 #ifndef WM_IME_REPORT
117  #define WM_IME_REPORT 0x280
118 #endif
119 
120 // WM_IME_REPORT wParam
121 #define IR_STRINGSTART 0x100
122 #define IR_STRINGEND 0x101
123 #define IR_OPENCONVERT 0x120
124 #define IR_CHANGECONVERT 0x121
125 #define IR_CLOSECONVERT 0x122
126 #define IR_FULLCONVERT 0x123
127 #define IR_IMESELECT 0x130
128 #define IR_STRING 0x140
129 #define IR_DBCSCHAR 0x160
130 #define IR_UNDETERMINE 0x170
131 #define IR_STRINGEX 0x180
132 #define IR_MODEINFO 0x190
133 
134 // for IR_UNDETERMINE
135 typedef struct tagUNDETERMINESTRUCT
136 {
152 
154 
155 #endif /* _WINE_IMM_H_ */
struct _tagINPUTCONTEXT * LPINPUTCONTEXT
DWORD HIMCC
Definition: dimm.idl:76
LOGFONTA A
Definition: imm.h:35
DWORD dwUnknownCat
Definition: imm.h:95
DWORD dwUIFlags
Definition: imm.h:96
GLint x0
Definition: linetemp.h:95
C_ASSERT(offsetof(INPUTCONTEXT, hWnd)==0x0)
void * pUnknownFox
Definition: imm.h:98
LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC)
Definition: imm.c:933
struct tagUNDETERMINESTRUCT UNDETERMINESTRUCT
INPUTCONTEXT
Definition: imm.h:92
CANDIDATEFORM cfCandForm[4]
Definition: imm.h:39
HWND hWnd
Definition: settings.c:17
UINT uYomiTextLen
Definition: imm.h:148
DWORD fdwConversion
Definition: imm.h:32
HIMCC hPrivate
Definition: imm.h:43
BOOL fOpen
Definition: imm.h:29
UINT uUndetTextLen
Definition: imm.h:140
POINT ptSoftKbdPos
Definition: imm.h:31
HIMCC hCandInfo
Definition: imm.h:41
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOL bNeedsTrans
Definition: imm.h:94
struct tagUNDETERMINESTRUCT * LPUNDETERMINESTRUCT
UINT nVKey
Definition: imm.h:93
UINT uDetermineTextPos
Definition: imm.h:146
DWORD dwReserve[3]
Definition: imm.h:47
POINT ptStatusWndPos
Definition: imm.h:30
DWORD dwUnknownDog
Definition: imm.h:97
#define offsetof(TYPE, MEMBER)
DWORD HIMC
Definition: dimm.idl:75
UINT uUndetTextPos
Definition: imm.h:141
struct _tagINPUTCONTEXT INPUTCONTEXT
#define WINAPI
Definition: msvc.h:6
unsigned long DWORD
Definition: ntddk_ex.h:95
HWND hWnd
Definition: imm.h:28
COMPOSITIONFORM cfCompForm
Definition: imm.h:38
HIMCC hMsgBuf
Definition: imm.h:45
struct tagUNDETERMINESTRUCT * PUNDETERMINESTRUCT
HIMCC hCompStr
Definition: imm.h:40
UINT uDetermineDelimPos
Definition: imm.h:147
DWORD fdwInit
Definition: imm.h:46
HIMCC hGuideLine
Definition: imm.h:42
DWORD dwNumMsgBuf
Definition: imm.h:44
unsigned int UINT
Definition: ndis.h:50
UINT uDetermineTextLen
Definition: imm.h:145
DWORD fdwSentence
Definition: imm.h:33
union _tagINPUTCONTEXT::@3481 lfFont
UINT uYomiTextPos
Definition: imm.h:149
UINT uDeltaStart
Definition: imm.h:144
UINT uYomiDelimPos
Definition: imm.h:150
UINT uDefIMESize
Definition: imm.h:138
LOGFONTW W
Definition: imm.h:36
struct INPUTCONTEXTDX INPUTCONTEXTDX
UINT uUndetAttrPos
Definition: imm.h:142
struct INPUTCONTEXTDX * LPINPUTCONTEXTDX