1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
#ifndef __SURROGATE_DIMM_H__
#define __SURROGATE_DIMM_H__
/* The Win32api headers doesn't include <dimm.h>, thus we need
* this file, which coverr just the stuff we need from <dimm.h>.
*/
typedef struct IActiveIMMApp IActiveIMMApp;
typedef struct IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner;
/* Dummy vtable structs that contain real names and prototypes for
* only those methods we need.
*/
typedef struct {
HRESULT (__stdcall *QueryInterface) (IActiveIMMApp *This,
REFIID riid,
void *ppvObject);
/* Dummy method prototypes for those we don't use */
ULONG (__stdcall *dummy_AddRef)();
ULONG (__stdcall *dummy_Release)();
HRESULT (__stdcall *dummy_AssociateContext)();
HRESULT (__stdcall *dummy_ConfigureIMEA)();
HRESULT (__stdcall *dummy_ConfigureIMEW)();
HRESULT (__stdcall *dummy_CreateContext)();
HRESULT (__stdcall *dummy_DestroyContext)();
HRESULT (__stdcall *dummy_EnumRegisterWordA)();
HRESULT (__stdcall *dummy_EnumRegisterWordW)();
HRESULT (__stdcall *dummy_EscapeA)();
HRESULT (__stdcall *dummy_EscapeW)();
HRESULT (__stdcall *dummy_GetCandidateListA)();
HRESULT (__stdcall *dummy_GetCandidateListW)();
HRESULT (__stdcall *dummy_GetCandidateListCountA)();
HRESULT (__stdcall *dummy_GetCandidateListCountW)();
HRESULT (__stdcall *dummy_GetCandidateWindow)();
HRESULT (__stdcall *dummy_GetCompositionFontA)();
HRESULT (__stdcall *dummy_GetCompositionFontW)();
HRESULT (__stdcall *dummy_GetCompositionStringA)();
HRESULT (__stdcall *dummy_GetCompositionStringW)();
HRESULT (__stdcall *dummy_GetCompositionWindow)();
HRESULT (__stdcall *dummy_GetContext)();
HRESULT (__stdcall *dummy_GetConversionListA)();
HRESULT (__stdcall *dummy_GetConversionListW)();
HRESULT (__stdcall *dummy_GetConversionStatus)();
HRESULT (__stdcall *GetDefaultIMEWnd)(IActiveIMMApp *This,
HWND hWnd,
HWND *phDefWnd);
HRESULT (__stdcall *dummy_GetDescriptionA)();
HRESULT (__stdcall *dummy_GetDescriptionW)();
HRESULT (__stdcall *dummy_GetGuideLineA)();
HRESULT (__stdcall *dummy_GetGuideLineW)();
HRESULT (__stdcall *dummy_GetIMEFileNameA)();
HRESULT (__stdcall *dummy_GetIMEFileNameW)();
HRESULT (__stdcall *dummy_GetOpenStatus)();
HRESULT (__stdcall *dummy_GetProperty)();
HRESULT (__stdcall *dummy_GetRegisterWordStyleA)();
HRESULT (__stdcall *dummy_GetRegisterWordStyleW)();
HRESULT (__stdcall *dummy_GetStatusWindowPos)();
HRESULT (__stdcall *dummy_GetVirtualKey)();
HRESULT (__stdcall *dummy_InstallIMEA)();
HRESULT (__stdcall *dummy_InstallIMEW)();
HRESULT (__stdcall *IsIME)(IActiveIMMApp *This,
HKL hKL);
HRESULT (__stdcall *IsUIMessageA )(IActiveIMMApp *This,
HWND hWndIME,
UINT msg,
WPARAM wParam,
LPARAM lParam);
HRESULT (__stdcall *dummy_IsUIMessageW)();
HRESULT (__stdcall *dummy_NotifyIME)();
HRESULT (__stdcall *dummy_RegisterWordA)();
HRESULT (__stdcall *dummy_RegisterWordW)();
HRESULT (__stdcall *dummy_ReleaseContext)();
HRESULT (__stdcall *dummy_SetCandidateWindow)();
HRESULT (__stdcall *dummy_SetCompositionFontA)();
HRESULT (__stdcall *dummy_SetCompositionFontW)();
HRESULT (__stdcall *dummy_SetCompositionStringA)();
HRESULT (__stdcall *dummy_SetCompositionStringW)();
HRESULT (__stdcall *dummy_SetCompositionWindow)();
HRESULT (__stdcall *dummy_SetConversionStatus)();
HRESULT (__stdcall *dummy_SetOpenStatus)();
HRESULT (__stdcall *dummy_SetStatusWindowPos)();
HRESULT (__stdcall *dummy_SimulateHotKey)();
HRESULT (__stdcall *dummy_UnregisterWordA)();
HRESULT (__stdcall *dummy_UnregisterWordW)();
HRESULT (__stdcall *Activate)(IActiveIMMApp *This,
BOOL restore);
HRESULT (__stdcall *Deactivate)(IActiveIMMApp *This);
HRESULT (__stdcall *OnDefWindowProc)(IActiveIMMApp *This,
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam,
LRESULT *plResult);
HRESULT (__stdcall *dummy_FilterClientWindows)();
HRESULT (__stdcall *GetCodePageA)(IActiveIMMApp *This,
HKL hKL,
UINT *uCodePage);
HRESULT (__stdcall *GetLangId)(IActiveIMMApp *This,
HKL hKL,
LANGID *plid);
HRESULT (__stdcall *dummy_AssociateContextEx)();
HRESULT (__stdcall *dummy_DisableIME)();
HRESULT (__stdcall *dummy_GetImeMenuItemsA)();
HRESULT (__stdcall *dummy_GetImeMenuItemsW)();
HRESULT (__stdcall *dummy_EnumInputContext)();
} IActiveIMMAppVtbl;
struct IActiveIMMApp {
IActiveIMMAppVtbl *lpVtbl;
};
typedef struct {
HRESULT (__stdcall *dummy_QueryInterface)();
ULONG (__stdcall *dummy_AddRef)();
ULONG (__stdcall *dummy_Release)();
HRESULT (__stdcall *Start)(IActiveIMMMessagePumpOwner *This);
HRESULT (__stdcall *End)(IActiveIMMMessagePumpOwner *This);
HRESULT (__stdcall *OnTranslateMessage)(IActiveIMMMessagePumpOwner *This,
MSG *pMSG);
HRESULT (__stdcall *dummy_Pause)();
HRESULT (__stdcall *dummy_Resume)();
} IActiveIMMMessagePumpOwnerVtbl;
struct IActiveIMMMessagePumpOwner {
IActiveIMMMessagePumpOwnerVtbl *lpVtbl;
};
static UUID CLSID_CActiveIMM = {
0x4955DD33, 0xB159, 0x11d0, { 0x8F,0xCF,0x00,0xAA,0x00,0x6B,0xCC,0x59 } };
static IID IID_IActiveIMMApp = {
0x08C0E040, 0x62D1, 0x11D1, { 0x93,0x26,0x00,0x60,0xB0,0x67,0xB8,0x6E } };
static IID IID_IActiveIMMMessagePumpOwner = {
0xB5CF2CFA, 0x8AEB, 0x11D1, { 0x93,0x64,0x00,0x60,0xB0,0x67,0xB8,0x6E } };
#endif /* __SURROGATE_DIMM_H__ */
|