Contexte d’entrée
Un « contexte d’entrée » est une structure interne gérée par l’IMM. Il contient des informations sur la status de l’IME et est utilisé par les fenêtres IME. Par défaut, le système d’exploitation crée et affecte un contexte d’entrée à chaque thread. Dans le thread, ce contexte d’entrée par défaut est une ressource partagée et est associé à chaque fenêtre nouvellement créée.
Pour récupérer ou définir des informations dans l’IME, une application prenant en charge l’IME doit d’abord récupérer un handle dans le contexte d’entrée associé à une fenêtre spécifiée. L’application récupère le handle à l’aide de la fonction ImmGetContext . Il peut utiliser le handle récupéré dans les appels suivants aux fonctions IMM pour récupérer et définir des valeurs IME, telles que le style de la fenêtre de composition, le style de composition et la position de la fenêtre status. Une fois que l’application a terminé d’utiliser le contexte, elle doit libérer le contexte à l’aide de la fonction ImmReleaseContext .
Étant donné que le contexte d’entrée par défaut est une ressource partagée, toutes les modifications apportées par l’application s’appliquent à toutes les fenêtres du thread. Toutefois, l’application peut remplacer ce comportement par défaut en créant son propre contexte d’entrée et en l’associant à une ou plusieurs fenêtres du thread. Les modifications apportées à un contexte d’entrée spécifique à l’application s’appliquent uniquement aux fenêtres associées au contexte.
Votre application peut créer un contexte d’entrée à l’aide de la fonction ImmCreateContext . Pour affecter le contexte à une fenêtre, l’application appelle la fonction ImmAssociateContext . Cette fonction retourne un handle au contexte d’entrée précédemment associé. Si l’application n’a pas encore associé un contexte d’entrée à la fenêtre, le handle retourné correspond au contexte d’entrée par défaut. En règle générale, l’application enregistre ce handle et le réassocie ultérieurement à la fenêtre lorsque le contexte d’entrée personnalisé n’est plus nécessaire.
Une fois qu’un contexte d’entrée est associé à une fenêtre, le système d’exploitation sélectionne automatiquement ce contexte lorsque la fenêtre est activée et reçoit le focus d’entrée. Le style et d’autres informations dans le contexte d’entrée affectent les entrées clavier suivantes pour cette fenêtre, déterminant le fonctionnement de l’IME.
Votre application doit détruire tout contexte d’entrée personnalisé avant qu’il ne se termine. Tout d’abord, l’application supprime le contexte d’entrée de toute association qu’elle a établie avec les fenêtres dans le thread à l’aide de la fonction ImmAssociateContext . Ensuite, il appelle la fonction ImmDestroyContext .
Rubriques connexes