CUIAutomation オブジェクトの作成

このセクションでは、IUIAutomation を実装するオブジェクトをインスタンス化することで、Microsoft UI オートメーション クライアント アプリケーションの記述を開始する方法について説明します。

このトピックは、次のセクションで構成されています。

CUIAutomation オブジェクト

UI オートメーションを使用する最初の手順は、CUIAutomation クラスのオブジェクトを作成することです。 このオブジェクトは、クライアント アプリケーションで使用される他のすべてのオブジェクトとインターフェイスへのゲートウェイである IUIAutomation インターフェイスを公開します。 特に、 IUIAutomation は次のタスクに使用されます。

  • イベントのサブスクライブ。
  • 条件の作成。 条件は、UI オートメーション要素の検索範囲を絞り込むために使用されるオブジェクトです。
  • デスクトップ (ルート要素)、または画面座標またはウィンドウ ハンドルから直接、UI オートメーション要素を取得します。
  • UI オートメーション要素の階層を移動するために使用できるツリー ウォーカー オブジェクトの作成。
  • データ型の変換。

オブジェクトの作成

アプリケーションでUI オートメーションの使用を開始するには、次の手順に従います。

  • UIAutomation.h をプロジェクト ヘッダーに含めます。 UIAutomation.h は、API を定義する他のヘッダーを取り込みます。
  • IUIAutomation へのポインターを宣言します。
  • コンポーネント オブジェクト モデル (COM) を初期化します。
  • CUIAutomation のインスタンスを作成し、ポインターで IUIAutomation インターフェイスを取得します。

次の関数の例では、COM を初期化し、CUIAutomation オブジェクトを作成し、ppAutomation ポインターで IUIAutomation インターフェイスを取得します。

#include <uiautomation.h>

// CoInitialize must be called before calling this function, and the  
// caller must release the returned pointer when finished with it.
// 
HRESULT InitializeUIAutomation(IUIAutomation **ppAutomation)
{
    return CoCreateInstance(CLSID_CUIAutomation, NULL,
        CLSCTX_INPROC_SERVER, IID_IUIAutomation, 
        reinterpret_cast<void**>(ppAutomation));
}

概念

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

UI オートメーション要素の取得