Operations of IMM under XP.
IMM32 is loaded by
_InitializeImmEntryTable. It loads the library (if not already) and fill in a structure of function pointers
gImmApiEntries. This function is supposed to be called in the DllMain of USER32 but the relevant code is currently commented out.
In ReactOS, the related functions are located under
win32ss\user\user32\misc\imm.c. The functions it loads is different from that of Windows XP.
A simple trace (hopefully I got it correct):
- GetModuleHandle (and fail)
- GetProcAddress and fill in the function table
TODO: Log all calls to Imm* functions with stack traces.