Share via


IUIAutomation ::AddFocusChangedEventHandler, méthode (uiautomationclient.h)

Inscrit une méthode qui gère les événements de modification du focus.

Note Avant d’implémenter un gestionnaire d’événements, vous devez être familiarisé avec les problèmes de thread décrits dans Présentation des problèmes liés aux threads.
 

Syntaxe

HRESULT AddFocusChangedEventHandler(
  [in] IUIAutomationCacheRequest             *cacheRequest,
  [in] IUIAutomationFocusChangedEventHandler *handler
);

Paramètres

[in] cacheRequest

Type : IUIAutomationCacheRequest*

Pointeur vers une demande de cache ou NULL si aucune mise en cache n’est souhaitée.

[in] handler

Type : IUIAutomationFocusChangedEventHandler*

Pointeur vers l’objet qui gère l’événement.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Les événements ayant changé de focus sont à l’échelle du système ; vous ne pouvez pas définir une étendue plus étroite.

Un client UI Automation ne doit pas utiliser plusieurs threads pour ajouter ou supprimer des gestionnaires d’événements. Un comportement inattendu peut se produire si un gestionnaire d’événements est ajouté ou supprimé tandis qu’un autre est ajouté ou supprimé dans le même processus client.

Exemples

L’exemple de fonction suivant crée un objet qui implémente IUIAutomationFocusChangedEventHandler et s’abonne à l’événement en ajoutant le gestionnaire.

HRESULT AddFocusHandler(IUIAutomation* pAutomation)
{ 
    // CFocusHandler is a class that implements IUIAutomationFocusChangedEventHandler. 
    CFocusHandler* pFocusHandler = new CFocusHandler();
    if (!pFocusHandler)
    {
        return E_OUTOFMEMORY;
    }
    IUIAutomationFocusChangedEventHandler* pHandler;
    pFocusHandler->QueryInterface(IID_IUIAutomationFocusChangedEventHandler, (void**)&pHandler);
    HRESULT hr = pAutomation->AddFocusChangedEventHandler(NULL, pHandler);
    pFocusHandler->Release();
    return hr;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista, Windows XP avec SP3 et Mise à jour de plateforme pour Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008, Windows Server 2003 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête uiautomationclient.h (incluez UIAutomation.h)

Voir aussi

Mise en cache des propriétés UI Automation et des modèles de contrôle

Conceptuel

IUIAutomation

IUIAutomationFocusChangedEventHandler

Référence

RemoveAllEventHandlers

RemoveFocusChangedEventHandler

Abonnement aux événements UI Automation

Présentation des problèmes liés au threading