16#define IME_MASK (0xE0000000UL)
17#define SUBST_MASK (0xD0000000UL)
18#define SPECIAL_MASK (0xF0000000UL)
20#define IS_IME_HKL(hKL) ((((ULONG_PTR)(hKL)) & 0xF0000000) == IME_MASK)
21#define IS_SPECIAL_HKL(hKL) ((((ULONG_PTR)(hKL)) & 0xF0000000) == SPECIAL_MASK)
22#define SPECIALIDFROMHKL(hKL) ((WORD)(HIWORD(hKL) & 0x0FFF))
24#define IS_IME_KLID(dwKLID) ((((ULONG)(dwKLID)) & 0xF0000000) == IME_MASK)
25#define IS_SUBST_KLID(dwKLID) ((((ULONG)(dwKLID)) & 0xF0000000) == SUBST_MASK)
28#define HKL_SWITCH_TO_NON_IME ((HKL)UlongToHandle(1))
29#define HKL_RELEASE_IME ((HKL)UlongToHandle(2))
58#define DEFINE_IME_ENTRY(type, name, params, extended) typedef type (WINAPI *FN_##name) params;
60#undef DEFINE_IME_ENTRY
72#define DEFINE_IME_ENTRY(type, name, params, extended) FN_##name name;
74#undef DEFINE_IME_ENTRY
111#define IMEDPI_FLAG_UNLOADED 0x1
112#define IMEDPI_FLAG_LOCKED 0x2
142#define CLIENTIMC_WIDE 0x1
143#define CLIENTIMC_ACTIVE 0x2
144#define CLIENTIMC_UNKNOWN4 0x20
145#define CLIENTIMC_DESTROY 0x40
146#define CLIENTIMC_DISABLEIME 0x80
147#define CLIENTIMC_UNKNOWN2 0x100
struct tagCLIENTIMC * PCLIENTIMC
HRESULT WINAPI CtfAImmActivate(_Out_opt_ HINSTANCE *phinstCtfIme)
struct IME_SUBSTATE * NPIME_SUBSTATE
HRESULT WINAPI CtfImmLastEnabledWndDestroy(_In_ BOOL bCreate)
struct tagUNDETERMINESTRUCT * PUNDETERMINESTRUCT
DWORD WINAPI ImmProcessKey(_In_ HWND, _In_ HKL, _In_ UINT, _In_ LPARAM, _In_ DWORD)
struct tagIMEINFOEX * PIMEINFOEX
VOID WINAPI ImmUnlockImeDpi(_Inout_ PIMEDPI pImeDpi)
struct tagCLIENTIMC * LPCLIENTIMC
VOID WINAPI CtfImmEnterCoInitCountSkipMode(VOID)
DWORD WINAPI ImmGetAppCompatFlags(_In_ HIMC hIMC)
struct IME_SUBSTATE * PIME_SUBSTATE
UINT WINAPI GetKeyboardLayoutCP(_In_ LANGID wLangId)
VOID WINAPI CtfImmRestoreToolbarWnd(_In_ LPVOID pUnused, _In_ DWORD dwShowFlags)
struct tagIMEINFOEX * NPIMEINFOEX
BOOL WINAPI CtfImmIsCiceroStartedInThread(VOID)
LRESULT WINAPI CtfImmDispatchDefImeMessage(_In_ HWND hWnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam)
struct tagIMEINFOEX IMEINFOEX
VOID WINAPI CtfImmSetAppCompatFlags(_In_ DWORD dwFlags)
BOOL WINAPI ImmLoadIME(_In_ HKL hKL)
PCLIENTIMC WINAPI ImmLockClientImc(_In_ HIMC hImc)
struct IME_STATE * LPIME_STATE
HRESULT WINAPI CtfImmTIMActivate(_In_ HKL hKL)
BOOL WINAPI CtfImmGenerateMessage(_In_ HIMC hIMC, _In_ BOOL bSend)
VOID WINAPI CtfImmCoUninitialize(VOID)
struct INPUTCONTEXTDX * LPINPUTCONTEXTDX
struct tagIMEINFOEX * LPIMEINFOEX
DWORD WINAPI CtfImmHideToolbarWnd(VOID)
BOOL WINAPI CtfImmIsTextFrameServiceDisabled(VOID)
PIMEDPI WINAPI ImmLockImeDpi(_In_ HKL hKL)
HRESULT WINAPI CtfAImmDeactivate(_In_ BOOL bDestroy)
struct tagUNDETERMINESTRUCT * LPUNDETERMINESTRUCT
BOOL WINAPI CtfImmLeaveCoInitCountSkipMode(VOID)
struct IME_STATE * NPIME_STATE
BOOL WINAPI ImmGetImeInfoEx(_Out_ PIMEINFOEX pImeInfoEx, _In_ IMEINFOEXCLASS SearchType, _In_ PVOID pvSearchKey)
struct INPUTCONTEXTDX * NPINPUTCONTEXTDX
VOID WINAPI CtfImmSetCiceroStartInThread(_In_ BOOL bStarted)
@ ImeInfoExKeyboardLayoutTFS
@ ImeInfoExKeyboardLayout
BOOL WINAPI CtfAImmIsIME(_In_ HKL hKL)
struct IME_STATE * PIME_STATE
struct tagUNDETERMINESTRUCT UNDETERMINESTRUCT
struct tagCLIENTIMC CLIENTIMC
VOID WINAPI ImmUnlockClientImc(_Inout_ PCLIENTIMC pClientImc)
struct tagCLIENTIMC * NPCLIENTIMC
BOOL WINAPI ImmLoadLayout(_In_ HKL hKL, _Inout_ PIMEINFOEX pImeInfoEx)
BOOL WINAPI ImmSetActiveContext(_In_ HWND hwnd, _In_ HIMC hIMC, _In_ BOOL fFlag)
struct INPUTCONTEXTDX * PINPUTCONTEXTDX
DWORD WINAPI ImeGetImeMenuItems(_In_ HIMC hIMC, _In_ DWORD dwFlags, _In_ DWORD dwType, _Inout_opt_ LPIMEMENUITEMINFO lpImeParentMenu, _Inout_opt_ LPIMEMENUITEMINFO lpImeMenu, _In_ DWORD dwSize)
EXTERN_C UINT WINAPI ImeEnumRegisterWord(_In_ REGISTERWORDENUMPROCW lpfnEnumProc, _In_opt_ LPCWSTR lpszReading, _In_ DWORD dwStyle, _In_opt_ LPCWSTR lpszString, _In_opt_ LPVOID lpData)
EXTERN_C BOOL WINAPI ImeSetCompositionString(_In_ HIMC hIMC, _In_ DWORD dwIndex, _In_opt_ LPCVOID lpComp, _In_ DWORD dwCompLen, _In_opt_ LPCVOID lpRead, _In_ DWORD dwReadLen)
EXTERN_C DWORD WINAPI ImeConversionList(_In_ HIMC hIMC, _In_ LPCWSTR lpSrc, _Out_ LPCANDIDATELIST lpDst, _In_ DWORD dwBufLen, _In_ UINT uFlag)
EXTERN_C UINT WINAPI ImeGetRegisterWordStyle(_In_ UINT nItem, _Out_ LPSTYLEBUFW lpStyleBuf)
EXTERN_C HRESULT WINAPI CtfImeInquireExW(_Out_ LPIMEINFO lpIMEInfo, _Out_ LPWSTR lpszWndClass, _In_ DWORD dwSystemInfoFlags, _In_ HKL hKL)
EXTERN_C LRESULT WINAPI ImeEscape(_In_ HIMC hIMC, _In_ UINT uEscape, _Inout_opt_ LPVOID lpData)
EXTERN_C BOOL WINAPI ImeProcessKey(_In_ HIMC hIMC, _In_ UINT uVirtKey, _In_ LPARAM lParam, _In_ CONST LPBYTE lpbKeyState)
EXTERN_C BOOL WINAPI CtfImeIsGuidMapEnable(_In_ HIMC hIMC)
EXTERN_C BOOL WINAPI ImeDestroy(_In_ UINT uReserved)
EXTERN_C BOOL WINAPI ImeSetActiveContext(_In_ HIMC hIMC, _In_ BOOL fFlag)
EXTERN_C BOOL WINAPI NotifyIME(_In_ HIMC hIMC, _In_ DWORD dwAction, _In_ DWORD dwIndex, _In_ DWORD_PTR dwValue)
EXTERN_C BOOL WINAPI ImeInquire(_Out_ LPIMEINFO lpIMEInfo, _Out_ LPWSTR lpszWndClass, _In_ DWORD dwSystemInfoFlags)
EXTERN_C BOOL WINAPI CtfImeSelectEx(_In_ HIMC hIMC, _In_ BOOL fSelect, _In_ HKL hKL)
EXTERN_C BOOL WINAPI ImeRegisterWord(_In_ LPCWSTR lpszReading, _In_ DWORD dwStyle, _In_ LPCWSTR lpszString)
EXTERN_C LRESULT WINAPI CtfImeEscapeEx(_In_ HIMC hIMC, _In_ UINT uSubFunc, _Inout_opt_ LPVOID lpData, _In_ HKL hKL)
EXTERN_C BOOL WINAPI ImeConfigure(_In_ HKL hKL, _In_ HWND hWnd, _In_ DWORD dwMode, _Inout_opt_ LPVOID lpData)
EXTERN_C BOOL WINAPI ImeSelect(_In_ HIMC hIMC, _In_ BOOL fSelect)
EXTERN_C UINT WINAPI ImeToAsciiEx(_In_ UINT uVirtKey, _In_ UINT uScanCode, _In_ CONST LPBYTE lpbKeyState, _Out_ LPTRANSMSGLIST lpTransMsgList, _In_ UINT fuState, _In_ HIMC hIMC)
EXTERN_C HRESULT WINAPI CtfImeGetGuidAtom(_In_ HIMC hIMC, _In_ DWORD dwUnknown, _Out_opt_ LPDWORD pdwGuidAtom)
EXTERN_C BOOL WINAPI ImeUnregisterWord(_In_ LPCWSTR lpszReading, _In_ DWORD dwStyle, _In_ LPCWSTR lpszString)
#define offsetof(TYPE, MEMBER)
_In_ int _In_ BOOL bCreate
struct IME_SUBSTATE * pNext
struct IME_STATE * pState
WCHAR wszImeDescription[50]
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags