IRawElementProviderFragmentRoot::ElementProviderFromPoint 메서드(uiautomationcore.h)
이 조각의 지정된 지점에 있는 요소의 공급자를 검색합니다.
구문
HRESULT ElementProviderFromPoint(
[in] double x,
[in] double y,
[out, retval] IRawElementProviderFragment **pRetVal
);
매개 변수
[in] x
형식: double
가로 화면 좌표입니다.
[in] y
형식: double
세로 화면 좌표입니다.
[out, retval] pRetVal
형식: IRawElementProviderFragment**
가 없는 경우 (x, y) 또는 NULL 에서 요소의 공급자에 대한 포인터를 받습니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
반환된 공급자는 지정된 지점에서 마우스 입력을 수신하는 요소에 해당해야 합니다.
지점이 이 요소에 있지만 자식 요소가 아닌 경우 NULL 또는 조각 루트 공급자가 반환됩니다. 점이 이 조각에서 호스트되는 다른 프레임워크의 요소에 있는 경우 메서드는 해당 조각을 호스트하는 요소를 반환합니다( IRawElementProviderFragment::GetEmbeddedFragmentRoots로 표시됨).
예제
다음 예제에서는 핸들이 m_controlHwndHWND에서 호스트되는 목록 상자에 대한 구현을 보여줍니다. IndexFromY는 커서 위치에서 목록 항목의 인덱스를 검색하고 GetItemByIndex는 해당 항목에 대한 UI 자동화 공급자를 검색합니다.
HRESULT STDMETHODCALLTYPE ListProvider::ElementProviderFromPoint(double x, double y, IRawElementProviderFragment** pRetVal)
{
if (pRetVal == NULL)
{
return E_INVALIDARG;
}
POINT pt;
pt.x = (LONG)x;
pt.y = (LONG)y;
ScreenToClient(m_controlHwnd, &pt);
int itemIndex = this->m_pControl->IndexFromY(m_controlHwnd, pt.y);
ListItemProvider* pItem = GetItemByIndex(itemIndex);
if (pItem != NULL)
{
*pRetVal = (IRawElementProviderFragment*)pItem;
pItem->AddRef();
}
else
{
pRetVal = (IRawElementProviderFragment*)this;
pItem->AddRef();
}
return S_OK;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | uiautomationcore.h(UIAutomation.h 포함) |