115 lines
3.5 KiB
Text
115 lines
3.5 KiB
Text
/*
|
|
* 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";
|
|
import "uiautomationcore.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([in]long flags, [out, retval]VARIANT *ret_val);
|
|
HRESULT attach_event([in]LONG_PTR huiaevent);
|
|
HRESULT respond_to_win_event([in]DWORD win_event, [in]ULONG hwnd, [in]LONG obj_id, [in]LONG child_id,
|
|
[in]IProxyProviderWinEventSink *sink);
|
|
HRESULT create_node_from_prov([in]long flags, [out, retval]VARIANT *ret_val);
|
|
}
|
|
|
|
[
|
|
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);
|
|
}
|
|
}
|