//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";

// Forward Declare
namespace Windows
{
    namespace UI
    {
        namespace UIAutomation
        {
            apicontract UIAutomationContract;

            interface IAutomationConnection;

            interface IAutomationConnectionBoundObject;

            interface IAutomationElement;

            interface IAutomationTextRange;

            runtimeclass AutomationConnection;

            runtimeclass AutomationConnectionBoundObject;

            runtimeclass AutomationElement;

            runtimeclass AutomationTextRange;
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace UIAutomation
        {
            [contractversion(2.0)]
            apicontract UIAutomationContract
            {
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 2.0)]
            [exclusiveto(Windows.UI.UIAutomation.AutomationConnection)]
            [uuid(AAD262ED-0EF4-5D43-97BE-A834E27B65B9)]
            interface IAutomationConnection : IInspectable
            {
                [propget] HRESULT IsRemoteSystem([out] [retval] boolean* value);
                [propget] HRESULT AppUserModelId([out] [retval] HSTRING* value);
                [propget] HRESULT ExecutableFileName([out] [retval] HSTRING* value);
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 2.0)]
            [exclusiveto(Windows.UI.UIAutomation.AutomationConnectionBoundObject)]
            [uuid(5E8558FB-CA52-5B65-9830-DD2905816093)]
            interface IAutomationConnectionBoundObject : IInspectable
            {
                [propget] HRESULT Connection([out] [retval] Windows.UI.UIAutomation.AutomationConnection** value);
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 1.0)]
            [exclusiveto(Windows.UI.UIAutomation.AutomationElement)]
            [uuid(A1898370-2C07-56FD-993F-61A72A08058C)]
            interface IAutomationElement : IInspectable
            {
                [propget] HRESULT IsRemoteSystem([out] [retval] boolean* value);
                [propget] HRESULT AppUserModelId([out] [retval] HSTRING* value);
                [propget] HRESULT ExecutableFileName([out] [retval] HSTRING* value);
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 1.0)]
            [exclusiveto(Windows.UI.UIAutomation.AutomationTextRange)]
            [uuid(7E101B65-40D3-5994-85A9-0A0CB9A4EC98)]
            interface IAutomationTextRange : IInspectable
            {
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 2.0)]
            [marshaling_behavior(agile)]
            runtimeclass AutomationConnection
            {
                [default] interface Windows.UI.UIAutomation.IAutomationConnection;
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 2.0)]
            [marshaling_behavior(agile)]
            runtimeclass AutomationConnectionBoundObject
            {
                [default] interface Windows.UI.UIAutomation.IAutomationConnectionBoundObject;
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass AutomationElement
            {
                [default] interface Windows.UI.UIAutomation.IAutomationElement;
            }

            [contract(Windows.UI.UIAutomation.UIAutomationContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass AutomationTextRange
            {
                [default] interface Windows.UI.UIAutomation.IAutomationTextRange;
            }
        }
    }
}
