// C++/WinRT v2.0.200609.3 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #ifndef WINRT_Windows_UI_UIAutomation_Core_H #define WINRT_Windows_UI_UIAutomation_Core_H #include "winrt/base.h" static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.200609.3"), "Mismatched C++/WinRT headers."); #include "winrt/Windows.UI.UIAutomation.h" #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.UI.UIAutomation.2.h" #include "winrt/impl/Windows.UI.UIAutomation.Core.2.h" namespace winrt::impl { template WINRT_IMPL_AUTO(Windows::UI::UIAutomation::Core::AutomationRemoteOperationStatus) consume_Windows_UI_UIAutomation_Core_IAutomationRemoteOperationResult::Status() const { Windows::UI::UIAutomation::Core::AutomationRemoteOperationStatus value{}; check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::IAutomationRemoteOperationResult)->get_Status(reinterpret_cast(&value))); return value; } template WINRT_IMPL_AUTO(winrt::hresult) consume_Windows_UI_UIAutomation_Core_IAutomationRemoteOperationResult::ExtendedError() const { winrt::hresult value{}; check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::IAutomationRemoteOperationResult)->get_ExtendedError(put_abi(value))); return value; } template WINRT_IMPL_AUTO(int32_t) consume_Windows_UI_UIAutomation_Core_IAutomationRemoteOperationResult::ErrorLocation() const { int32_t value{}; check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::IAutomationRemoteOperationResult)->get_ErrorLocation(&value)); return value; } template WINRT_IMPL_AUTO(bool) consume_Windows_UI_UIAutomation_Core_IAutomationRemoteOperationResult::HasOperand(Windows::UI::UIAutomation::Core::AutomationRemoteOperationOperandId const& operandId) const { bool result{}; check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::IAutomationRemoteOperationResult)->HasOperand(impl::bind_in(operandId), &result)); return result; } template WINRT_IMPL_AUTO(Windows::Foundation::IInspectable) consume_Windows_UI_UIAutomation_Core_IAutomationRemoteOperationResult::GetOperand(Windows::UI::UIAutomation::Core::AutomationRemoteOperationOperandId const& operandId) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::IAutomationRemoteOperationResult)->GetOperand(impl::bind_in(operandId), &result)); return Windows::Foundation::IInspectable{ result, take_ownership_from_abi }; } template WINRT_IMPL_AUTO(bool) consume_Windows_UI_UIAutomation_Core_ICoreAutomationRemoteOperation::IsOpcodeSupported(uint32_t opcode) const { bool result{}; check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::ICoreAutomationRemoteOperation)->IsOpcodeSupported(opcode, &result)); return result; } template WINRT_IMPL_AUTO(void) consume_Windows_UI_UIAutomation_Core_ICoreAutomationRemoteOperation::ImportElement(Windows::UI::UIAutomation::Core::AutomationRemoteOperationOperandId const& operandId, Windows::UI::UIAutomation::AutomationElement const& element) const { check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::ICoreAutomationRemoteOperation)->ImportElement(impl::bind_in(operandId), *(void**)(&element))); } template WINRT_IMPL_AUTO(void) consume_Windows_UI_UIAutomation_Core_ICoreAutomationRemoteOperation::ImportTextRange(Windows::UI::UIAutomation::Core::AutomationRemoteOperationOperandId const& operandId, Windows::UI::UIAutomation::AutomationTextRange const& textRange) const { check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::ICoreAutomationRemoteOperation)->ImportTextRange(impl::bind_in(operandId), *(void**)(&textRange))); } template WINRT_IMPL_AUTO(void) consume_Windows_UI_UIAutomation_Core_ICoreAutomationRemoteOperation::AddToResults(Windows::UI::UIAutomation::Core::AutomationRemoteOperationOperandId const& operandId) const { check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::ICoreAutomationRemoteOperation)->AddToResults(impl::bind_in(operandId))); } template WINRT_IMPL_AUTO(Windows::UI::UIAutomation::Core::AutomationRemoteOperationResult) consume_Windows_UI_UIAutomation_Core_ICoreAutomationRemoteOperation::Execute(array_view bytecodeBuffer) const { void* result{}; check_hresult(WINRT_IMPL_SHIM(Windows::UI::UIAutomation::Core::ICoreAutomationRemoteOperation)->Execute(bytecodeBuffer.size(), get_abi(bytecodeBuffer), &result)); return Windows::UI::UIAutomation::Core::AutomationRemoteOperationResult{ result, take_ownership_from_abi }; } #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Status(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Status()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ExtendedError(winrt::hresult* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ExtendedError()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ErrorLocation(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ErrorLocation()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall HasOperand(struct struct_Windows_UI_UIAutomation_Core_AutomationRemoteOperationOperandId operandId, bool* result) noexcept final try { typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().HasOperand(*reinterpret_cast(&operandId))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetOperand(struct struct_Windows_UI_UIAutomation_Core_AutomationRemoteOperationOperandId operandId, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetOperand(*reinterpret_cast(&operandId))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall IsOpcodeSupported(uint32_t opcode, bool* result) noexcept final try { typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().IsOpcodeSupported(opcode)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportElement(struct struct_Windows_UI_UIAutomation_Core_AutomationRemoteOperationOperandId operandId, void* element) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ImportElement(*reinterpret_cast(&operandId), *reinterpret_cast(&element)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportTextRange(struct struct_Windows_UI_UIAutomation_Core_AutomationRemoteOperationOperandId operandId, void* textRange) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ImportTextRange(*reinterpret_cast(&operandId), *reinterpret_cast(&textRange)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall AddToResults(struct struct_Windows_UI_UIAutomation_Core_AutomationRemoteOperationOperandId operandId) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().AddToResults(*reinterpret_cast(&operandId)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall Execute(uint32_t __bytecodeBufferSize, uint8_t* bytecodeBuffer, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().Execute(array_view(reinterpret_cast(bytecodeBuffer), reinterpret_cast(bytecodeBuffer) + __bytecodeBufferSize))); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::UI::UIAutomation::Core { inline CoreAutomationRemoteOperation::CoreAutomationRemoteOperation() : CoreAutomationRemoteOperation(impl::call_factory_cast([](Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } } namespace std { #ifndef WINRT_LEAN_AND_MEAN template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; #endif } #endif