wine/dlls/uiautomationcore/uia_classes.idl
Connor McAdams 2622745083 uiautomationcore: Add support for matching serverside events through navigation.
Signed-off-by: Connor McAdams <cmcadams@codeweavers.com>
2023-07-10 12:18:34 +02:00

112 lines
3.2 KiB
Plaintext

/*
* Copyright 2022 Connor McAdams for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#pragma makedep regtypelib
import "oaidl.idl";
struct uia_prop_info {
const GUID *guid;
int prop_id;
int prop_type;
int type;
int pattern_id;
};
struct uia_event_info {
const GUID *guid;
int event_id;
int event_arg_type;
};
struct uia_pattern_info {
const GUID *guid;
int pattern_id;
const GUID *pattern_iid;
};
struct uia_control_type_info {
const GUID *guid;
int control_type_id;
};
[
version(1.0),
uuid(8a9ca8eb-856b-43d9-abd7-4a590054064f),
id(1),
]
library UIA_wine_private
{
importlib("stdole2.tlb");
[
object,
uuid(9a754e12-e570-49ab-b223-6f6871007d28),
pointer_default(unique),
]
interface IWineUiaEventAdviser : IUnknown
{
HRESULT advise([in]BOOL advise_added, [in]LONG_PTR huiaevent);
}
[
object,
uuid(5e60162c-ab0e-4e22-a61d-3a3acd442aba),
pointer_default(unique),
oleautomation,
]
interface IWineUiaEvent : IUnknown
{
HRESULT advise_events([in]BOOL advise_added, [in]long adviser_start_idx);
HRESULT set_event_data([in]const GUID *event_guid, [in]long scope, [in]VARIANT runtime_id,
[in]IWineUiaEvent *event_iface);
HRESULT raise_event([in]VARIANT in_node, [in]VARIANT in_nav_start_node);
}
[
object,
uuid(57865755-6c05-4522-98df-4ca658b768ef),
pointer_default(unique),
oleautomation,
]
interface IWineUiaProvider : IUnknown
{
HRESULT get_prop_val([in]const struct uia_prop_info *prop_info, [out, retval]VARIANT *ret_val);
HRESULT get_prov_opts([out, retval]int *out_opts);
HRESULT has_parent([out, retval]BOOL *out_val);
HRESULT navigate([in]int nav_dir, [out, retval]VARIANT *ret_val);
HRESULT get_focus([out, retval]VARIANT *ret_val);
HRESULT attach_event([in]LONG_PTR huiaevent);
}
[
object,
uuid(bccb6799-d831-4057-bd50-6425823ff1a3),
pointer_default(unique),
oleautomation,
]
interface IWineUiaNode : IUnknown
{
HRESULT get_provider([in]int idx, [out, retval]IWineUiaProvider **out_prov);
HRESULT get_prop_val([in]const GUID *prop_guid, [out, retval]VARIANT *ret_val);
HRESULT disconnect();
HRESULT get_hwnd([out, retval]ULONG *out_hwnd);
HRESULT attach_event([in]long proc_id, [in]long event_cookie, [out, retval]IWineUiaEvent **ret_event);
}
}