Como gerar eventos de um provedor de Automação da Interface do Usuário

Este tópico contém um código de exemplo que mostra como um provedor do Microsoft Automação da Interface do Usuário gera um evento.

O código de exemplo a seguir mostra um método de um aplicativo que implementa um botão personalizado. O aplicativo chama o método sempre que o botão personalizado é invocado. O método verifica se algum cliente está escutando eventos e, nesse caso, aciona o evento UIA_Invoke_InvokedEventId para notificar os clientes de que o botão foi invocado.

// Responds to a button click. The source of the click could 
// be the mouse, the keyboard, or a client's call to 
// IUIAutomationInvokePattern::Invoke.
void CustomButton::InvokeButton(HWND hwnd)
{
    // TODO: Perform program actions invoked by the control.

    // Check whether any clients are listening for UI Automation 
    // events.
    if (UiaClientsAreListening())
    {
        // Raise an Invoked event. GetUIAutomationProvider is an
        // application-defined method that returns a pointer to
        // the application's IRawElementProviderSimple interface.
        UiaRaiseAutomationEvent(
            GetUIAutomationProvider(hwnd), UIA_Invoke_InvokedEventId); 
    }
}

Conceitual

Visão geral sobre eventos de automação de interface do usuário

Tópicos de instruções para provedores de Automação da Interface do Usuário