IRawElementProviderWindowlessSite::GetAdjacentFragment 方法 (uiautomationcore.h)
检索与此控件站点拥有的无窗口 Microsoft ActiveX 控件相邻的片段的片段指针。
语法
HRESULT GetAdjacentFragment(
NavigateDirection direction,
[out, retval] IRawElementProviderFragment **ppParent
);
参数
direction
[out, retval] ppParent
类型: IRawElementProviderFragment**
接收相邻的片段。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。 如果方向NavigateDirection_FirstChild或NavigateDirection_LastChild,则返回值E_INVALIDARG,这对此方法无效。 如果请求的方向中没有相邻片段,该方法将返回S_OK并将 ppRetVal 设置为 NULL。
注解
若要返回片段的父级,实现 IRawElementProviderFragment 接口的对象必须能够实现 Navigate 方法。 对于无窗口 ActiveX 控件来说,实现 Navigate 很困难,因为该控件可能无法确定它在父对象的可访问树中的位置。 GetAdjacentFragment 方法允许无窗口 ActiveX 控件在其站点中查询相邻片段,然后将该片段返回到调用 Navigate 的客户端。
提供程序通常在处理 IRawElementProviderFragment::Navigate 方法时调用此方法。
示例
以下 C++ 代码示例演示如何实现 GetAdjacentFragment 方法。
IFACEMETHODIMP CProviderWindowlessSite::GetAdjacentFragment(
enum NavigateDirection direction, IRawElementProviderFragment **ppFragment)
{
if (ppFragment == NULL)
{
return E_INVALIDARG;
}
*ppFragment = NULL;
HRESULT hr = S_OK;
switch (direction)
{
case NavigateDirection_Parent:
{
IRawElementProviderSimple *pSimple = NULL;
// Call an application-defined function to retrieve the
// parent provider interface.
hr = GetParentProvider(&pSimple);
if (SUCCEEDED(hr))
{
// Get the parent's IRawElementProviderFragment interface.
hr = pSimple->QueryInterface(IID_PPV_ARGS(ppFragment));
pSimple->Release();
}
}
break;
case NavigateDirection_FirstChild:
case NavigateDirection_LastChild:
hr = E_INVALIDARG;
break;
// Ignore NavigateDirection_NextSibling and NavigateDirection_PreviousSibling
// because there are no adjacent fragments.
default:
break;
}
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | uiautomationcore.h (包括 UIAutomation.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈