Метод 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).
Примеры
В следующем примере показана реализация для списка, размещенного в HWND , дескриптор которого m_controlHwnd. IndexFromY получает индекс элемента списка в позиции курсора, а GetItemByIndex — поставщик модель автоматизации пользовательского интерфейса для этого элемента.
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 |
Header | uiautomationcore.h (включая UIAutomation.h) |