UI オートメーション プロバイダーからイベントを発生させる方法

このトピックには、Microsoft UI オートメーション プロバイダーがイベントを発生させる方法を示すコード例が含まれています。

次のコード例は、カスタム ボタンを実装するアプリケーションのメソッドを示しています。 アプリケーションは、カスタム ボタンが呼び出されるたびに メソッドを呼び出します。 メソッドは、クライアントがイベントをリッスンしているかどうかを確認し、その場合は UIA_Invoke_InvokedEventId イベントを発生させ、ボタンが呼び出されたことをクライアントに通知します。

// 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); 
    }
}

概念

UI オートメーション イベントの概要

UI オートメーション プロバイダーの使い方に関するトピック