Win32 API 日本語リファレンス
ホーム › UI.Accessibility › LPFNACCESSIBLEOBJECTFROMPOINT

LPFNACCESSIBLEOBJECTFROMPOINT

コールバック

シグネチャ

HRESULT LPFNACCESSIBLEOBJECTFROMPOINT(
    POINT ptScreen,
    IAccessible** ppacc,
    VARIANT* pvarChild
);

パラメーター

フィールド型説明
ptScreenPOINT調べる対象の位置を、物理的なスクリーン座標で指定します。
ppaccIAccessible**オブジェクトの IAccessible インターフェイスのアドレスを受け取るポインター変数のアドレスです。
pvarChildVARIANT*ppacc に返される IAccessible インターフェイスポインターが、指定された位置に表示されているオブジェクトのものか、それともその位置にある要素の親のものかを示す VARIANT 構造体のアドレスです。VARIANT の vt メンバーは常に VT_I4 です。lVal メンバーが CHILDID_SELF の場合、ppacc にある IAccessible インターフェイスポインターは、その位置にあるオブジェクトのものです。lVal メンバーが CHILDID_SELF でない場合、ppacc は子要素の親オブジェクトの IAccessible インターフェイスのアドレスです。クライアントは、取得した VARIANT パラメーターの使用を終えたら VariantClear を呼び出す必要があります。

公式ドキュメント

画面上の指定された位置に表示されているオブジェクトの IAccessible インターフェイスポインターのアドレスを取得します。

戻り値

成功した場合は S_OK を返します。

失敗した場合は、次のいずれか、またはその他の標準的な COM エラーコード を返します。

戻り値 説明
E_INVALIDARG
引数が無効です。

解説(Remarks)

この関数は、指定された位置にあるオブジェクト階層のうち、最下位のアクセシブルオブジェクトを取得します。その位置にある要素がアクセシブルオブジェクトでない場合 (つまり IAccessible をサポートしていない場合)、この関数は親オブジェクトの IAccessible インターフェイスを取得します。親オブジェクトは、IAccessible インターフェイスを通じて子要素に関する情報を提供する必要があります。指定されたスクリーン座標にある子要素を特定するには、IAccessible::accHitTest を呼び出してください。

他の IAccessible のメソッドや関数と同様に、ユーザーの操作が原因で、IAccessible インターフェイスポインターに対するエラーをクライアントが受け取ることがあります。詳細については、Receiving Errors for IAccessible Interface Pointers を参照してください。

クライアントの例

次の例の関数は、画面上の指定された位置にある項目を選択します。ここでは単一の項目を選択することを想定しています。

HRESULT SelectItemAtPoint(POINT point)
{
    VARIANT varItem;
    IAccessible* pAcc;
    HRESULT hr = AccessibleObjectFromPoint(point, &pAcc, &varItem);
    if ((hr == S_OK))
    {
        hr = pAcc->accSelect((SELFLAG_TAKEFOCUS | SELFLAG_TAKESELECTION), varItem);
        VariantClear(&varItem);
        pAcc->Release();
    }
    return hr;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)