IME should be callable across the processes, the instance data of IME should be kept in shared memory. It is safe to use the Private Part(which can be allocated by ImCreateIMIPart function) to hold such instance data in IMInstance.