Включение навигации в поставщике фрагментов автоматизации пользовательского интерфейса
В этом разделе содержится пример кода, показывающий, как включить навигацию в поставщике автоматизации пользовательского интерфейса Майкрософт для элемента в фрагменте.
Следующий пример кода реализует метод IRawElementProviderFragment::Navigate для элемента списка в пользовательском элементе управления списком. Родительский элемент — это пользовательский элемент управления списком, а соседние элементы — это другие элементы в списке. Метод устанавливает параметр pRetVal в значение NULL, если в указанном направлении нет элемента.
// Implementation of IRawElementProviderFragment::Navigate.
// Enables UI Automation to locate the element in the tree.
HRESULT STDMETHODCALLTYPE ListItemProvider::Navigate(NavigateDirection direction, IRawElementProviderFragment ** pRetVal)
{
if (pRetVal == NULL)
{
return E_INVALIDARG;
}
IRawElementProviderFragment* pFrag = NULL;
switch(direction)
{
case NavigateDirection_Parent:
pFrag = (IRawElementProviderFragment*) m_parentProvider;
break;
case NavigateDirection_NextSibling:
pFrag = (IRawElementProviderFragment*) m_nextSiblingProvider;
break;
case NavigateDirection_PreviousSibling:
pFrag = (IRawElementProviderFragment*) m_previousSiblingProvider;
break;
}
*pRetVal = pFrag;
if (pFrag != NULL)
{
pFrag->AddRef();
}
return S_OK;
}
Связанные разделы
-
концептуальные
-
реализация Server-Side поставщика автоматизации пользовательского интерфейса
-
темы How-To для поставщиков автоматизации пользовательского интерфейса