Entwickeln von IME-Aware Anwendungen mit mehreren Threads

Der IMM umfasst eine Threadidentifikationsprüfung, die bestimmt, ob ein aufrufende Thread der Ersteller eines angegebenen Eingabemethodenkontexthandles (HIMC-Typs) oder eines Fensterhandles (HWND-Typ) ist. Wenn der Thread nicht der Ersteller des Handles ist, schlägt die aufgerufene IMM-Funktion fehl, und ein nachfolgender Aufruf von GetLastError gibt ERROR_INVALID_ACCESS zurück.

Hinweis

Die aktuelle IMM-Architektur bietet keine Synchronisierungsfunktion für den Zugriff auf IMM-Handles.

 

Um die Überprüfung der Threadidentifikation verwenden zu können, müssen Ihre Anwendungen die folgenden Richtlinien einhalten:

  • Ein Thread sollte nicht auf den von einem anderen Thread erstellten Eingabekontext zugreifen.
  • Ein Thread sollte einem Fenster, das von einem anderen Thread erstellt wurde, keinen Eingabekontext zuordnen und umgekehrt.

Verwenden des Eingabemethoden-Managers