include: Define more provider interfaces in uiautomationcore.idl.

Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Connor McAdams 2021-11-06 15:57:20 -04:00 committed by Alexandre Julliard
parent 273d3255d5
commit a077f98ee3
1 changed files with 59 additions and 0 deletions

View File

@ -20,6 +20,14 @@
import "oaidl.idl";
import "oleacc.idl";
enum NavigateDirection {
NavigateDirection_Parent = 0x0000,
NavigateDirection_NextSibling = 0x0001,
NavigateDirection_PreviousSibling = 0x0002,
NavigateDirection_FirstChild = 0x0003,
NavigateDirection_LastChild = 0x0004,
};
enum ProviderOptions {
ProviderOptions_ClientSideProvider = 0x0001,
ProviderOptions_ServerSideProvider = 0x0002,
@ -38,6 +46,13 @@ typedef int EVENTID;
typedef int TEXTATTRIBUTEID;
typedef int CONTROLTYPEID;
struct UiaRect {
double left;
double top;
double width;
double height;
};
[
version(1.0),
uuid(930299ce-9965-4dec-b0f4-a54848d4b667),
@ -92,4 +107,48 @@ library UIA
[in] IRawElementProviderSimple *pIn,
[out] IAccessibleEx **ppRetValOut);
}
interface IRawElementProviderFragmentRoot;
[
object,
uuid(f7063da8-8359-439c-9297-bbc5299a7d87),
pointer_default(unique),
oleautomation
]
interface IRawElementProviderFragment : IUnknown
{
HRESULT Navigate(
[in] enum NavigateDirection direction,
[out, retval] IRawElementProviderFragment **pRetVal);
HRESULT GetRuntimeId([out, retval] SAFEARRAY(int) *pRetVal);
HRESULT get_BoundingRectangle([out, retval] struct UiaRect *pRetVal);
/*
* FIXME: Current versions of Windows SDK use
* SAFEARRAY(IRawElementProviderFragmentRoot *) instead of
* SAFEARRAY(VARIANT). The new type is currently unsupported
* in widl, we should switch to it when it is.
*/
HRESULT GetEmbeddedFragmentRoots([out, retval] SAFEARRAY(VARIANT) *pRetVal);
HRESULT SetFocus();
[propget] HRESULT FragmentRoot([out, retval] IRawElementProviderFragmentRoot **pRetVal);
}
[
object,
uuid(620ce2a5-ab8f-40a9-86cb-de3c75599b58),
pointer_default(unique),
oleautomation
]
interface IRawElementProviderFragmentRoot : IUnknown
{
HRESULT ElementProviderFromPoint(
[in] double x,
[in] double y,
[out, retval] IRawElementProviderFragment **pRetVal);
HRESULT GetFocus([out, retval] IRawElementProviderFragment **pRetVal);
}
}