次の方法で共有


IUIAutomation6::AddActiveTextPositionChangedEventHandler メソッド (uiautomationclient.h)

アクティブなテキスト位置が変更されたときに処理するメソッドを登録します。

大事な

Microsoft UI オートメーション クライアントでは、IUIAutomationEventHandlerGroup インターフェイス メソッドを使用して、ここで定義されている個々のイベント登録メソッドではなく、さまざまな IUIAutomation インターフェイス 名前空間にイベント リスナーを登録する必要があります。

構文

HRESULT AddActiveTextPositionChangedEventHandler(
  [in] IUIAutomationElement                               *element,
  [in] TreeScope                                          scope,
  [in] IUIAutomationCacheRequest                          *cacheRequest,
  [in] IUIAutomationActiveTextPositionChangedEventHandler *handler
);

パラメーター

[in] element

イベント ハンドラーに関連付けられている UI オートメーション要素へのポインター。

[in] scope

処理されるイベントのスコープ。つまり、要素自体上にあるか、その先祖と子孫上にあるか。

[in] cacheRequest

キャッシュ要求へのポインター。キャッシュが必要ない場合は NULL。

[in] handler

アクティブなテキスト位置変更イベントを処理するオブジェクトへのポインター。

戻り値

このメソッドが成功すると、S_OKが返されます。 それ以外の場合は、HRESULT エラー コードが返されます。

備考

イベント ハンドラーを実装する前に、「スレッド処理の問題についてで説明されているスレッドの問題について理解しておく必要があります。

アクティブ テキストの位置は、ブックマーク (またはリソース内の場所を参照するフラグメント識別子) を使用して、読み取り専用テキスト要素 (Web ブラウザー、ポータブル ドキュメント形式 (PDF) ドキュメント、または EPUB ドキュメントなど) 内または間のナビゲーション イベントによって示されます。 例を次に示します。

  • 同じ Web ページ内のブックマークに移動する
  • 別の Web ページでブックマークに移動する
  • 同じ PDF 内の別の場所へのリンクをアクティブ化する
  • 同じ PUBPUB 内の別の場所へのリンクをアクティブ化する

このイベント ハンドラーを使用して、ブックマーク/ターゲットの視覚的な場所を読み取り専用のテキスト要素内のフォーカス位置と同期します。これは、ブックマークまたはフラグメント識別子を使用するときに分岐する可能性があります。

たとえば、同じページ アンカー (<a href="#C4">Jump to Chapter 4</a> ...<h1><a name="C4">Chapter 4</a></h1>) が呼び出されると、ビジュアルの場所は更新されますが、UI オートメーション クライアントは元の場所に残ります。 これにより、テキストの読み取りや、新しい場所ではなく、元の場所から開始する次の項目コマンドの移動などのアクションが行われます。

同様に、新しいページ URI (フラグメント識別子: (<a href="www.blah.com#C4">Jump to Chapter 4</a>) を使用してアクティブ化すると、新しいページが読み込まれると、指定したブックマークにジャンプしますが、UI オートメーション クライアントはページの上部に残ります。

編集 やリッチ エディットコントロール など、編集可能なテキスト要素の場合は、SelectionChanged イベントをリッスンできます。

イベントのサブスクライブを解除する要求と同時にイベントを受信した場合、ハンドラーのサブスクライブが解除された後にイベントがイベント ハンドラーに配信される可能性があります。 ベスト プラクティスは、コンポーネント オブジェクト モデル (COM) 標準に従い、参照カウントが 0 に達するまでイベント ハンドラー オブジェクトを破棄しないようにすることです。 イベントのサブスクライブを解除した直後にイベント ハンドラーを破棄すると、イベントが遅れて配信された場合にアクセス違反が発生する可能性があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1809 [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server バージョン 1709 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー uiautomationclient.h (UIAutomation.h を含む)

関連項目

IUIAutomation6::RemoveActiveTextPositionChangedEventHandler, IUIAutomation6 インターフェイス