/* * 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); } }