Partager via


Implémentation de fournisseur UI Automation côté client

RemarqueRemarque

Cette documentation s'adresse aux développeurs .NET Framework qui veulent utiliser les classes UI Automation managées définies dans l'espace de noms System.Windows.Automation.Pour obtenir les informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation (page éventuellement en anglais).

Plusieurs infrastructures d'user interface (UI) différentes sont utilisées dans les systèmes d'exploitation Microsoft, notamment Win32, Windows Forms et Windows Presentation Foundation (WPF). Microsoft UI Automation expose des informations sur les éléments d'interface utilisateur aux clients. Toutefois, UI Automation n'a pas connaissance des différents types de contrôles qui existent dans ces infrastructures et des techniques nécessaires pour en extraire des informations. Cette tâche est donc attribuée aux objets appelés fournisseurs. Un fournisseur extrait des informations d'un contrôle spécifique et les donne à UI Automation, qui les présente ensuite au client de façon cohérente.

Des fournisseurs peuvent exister côté serveur ou côté client. Un fournisseur côté serveur est implémenté par le contrôle lui-même. Les éléments WPF implémentent des fournisseurs, comme tout contrôle tiers écrit en considérant UI Automation.

Toutefois, les contrôles plus anciens tels que ceux de Win32 et Windows Forms ne prennent pas directement UI Automation en charge. Ces contrôles sont pris en charge par des fournisseurs qui existent dans le processus client et qui obtiennent des informations sur les contrôles à l'aide de la communication interprocessus, par exemple en surveillant les messages des fenêtres depuis et vers les contrôles. Ces fournisseurs côté client sont parfois appelés proxys.

Windows Vista prévoit des fournisseurs pour les contrôles Win32 et Windows Forms standard. De plus, un fournisseur de secours assure une prise en charge UI Automation partielle à tout contrôle non pris en charge par un autre fournisseur ou proxy côté serveur mais doté d'une implémentation Microsoft Active Accessibility. Tous ces fournisseurs sont automatiquement chargés et disponibles pour les applications clientes.

Pour plus d'informations sur la prise en charge des contrôles Win32 et Windows Forms, consultez Prise en charge d'UI Automation pour les contrôles standard.

Les applications peuvent également inscrire d'autres fournisseurs côté client.

Cette rubrique comprend les sections suivantes.

  • Distribution des fournisseurs côté client
  • Inscription et configuration des fournisseurs côté client
  • Rubriques connexes

Distribution des fournisseurs côté client

UI Automation s'attend à trouver des fournisseurs côté client dans un assembly de code managé. L'espace de noms de cet assembly doit porter le même nom que l'assembly. Par exemple, un assembly appelé ContosoProxies.dll doit contenir l'espace de noms ContosoProxies. Dans l'espace de noms, créez une classe UIAutomationClientSideProviders. Dans l'implémentation du champ ClientSideProviderDescriptionTable statique, créez un tableau de structures ClientSideProviderDescription décrivant les fournisseurs.

Inscription et configuration des fournisseurs côté client

Les fournisseurs côté client d'une dynamic-link library (DLL) sont chargés en appelant RegisterClientSideProviderAssembly. Aucune autre action de l'application cliente n'est requise pour utiliser les fournisseurs.

Les fournisseurs implémentés dans le code du client sont inscrits à l'aide de RegisterClientSideProviders. Cette méthode utilise comme argument un tableau de structures ClientSideProviderDescription qui spécifient chacune les propriétés suivantes :

  • une fonction de rappel qui crée l'objet fournisseur ;

  • le nom de classe des contrôles que le fournisseur prendra en charge ;

  • le nom de l'image de l'application (généralement le nom complet du fichier exécutable) que le fournisseur prendra en charge ;

  • les indicateurs régissant la comparaison du nom de classe aux classes de fenêtres recherchées dans l'application cible.

Les deux derniers paramètres sont facultatifs. Le client peut spécifier le nom de l'image de l'application cible lorsqu'il souhaite utiliser des fournisseurs différents pour des applications différentes. Par exemple, le client peut utiliser un fournisseur pour un contrôle list view Win32 dans une application connue prenant en charge le modèle à vues multiples, et un autre fournisseur pour un contrôle semblable dans une autre application connue ne le prenant pas en charge.

Voir aussi

Tâches

Créer un fournisseur UI Automation côté client

Implémenter des fournisseurs UI Automation dans une application cliente