//
// 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";
import "Windows.ApplicationModel.Contacts.idl";
import "Windows.ApplicationModel.DataTransfer.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Contacts
        {
            runtimeclass Contact;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace DataTransfer
        {
            runtimeclass DataPackageView;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            runtimeclass RandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace DataTransfer
        {
            namespace ShareTarget
            {
                interface IQuickLink;

                interface IShareOperation;

                interface IShareOperation2;

                interface IShareOperation3;

                runtimeclass QuickLink;

                runtimeclass ShareOperation;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace DataTransfer
        {
            namespace ShareTarget
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.DataTransfer.ShareTarget.QuickLink)]
                [uuid(603E4308-F0BE-4ADC-ACC9-8B27AB9CF556)]
                interface IQuickLink : IInspectable
                {
                    [propget] HRESULT Title([out] [retval] HSTRING* value);
                    [propput] HRESULT Title([in] HSTRING value);
                    [propget] HRESULT Thumbnail([out] [retval] Windows.Storage.Streams.RandomAccessStreamReference** value);
                    [propput] HRESULT Thumbnail([in] Windows.Storage.Streams.RandomAccessStreamReference* value);
                    [propget] HRESULT Id([out] [retval] HSTRING* value);
                    [propput] HRESULT Id([in] HSTRING value);
                    [propget] HRESULT SupportedDataFormats([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                    [propget] HRESULT SupportedFileTypes([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.DataTransfer.ShareTarget.ShareOperation)]
                [uuid(2246BAB8-D0F8-41C1-A82A-4137DB6504FB)]
                interface IShareOperation : IInspectable
                {
                    [propget] HRESULT Data([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackageView** value);
                    [propget] HRESULT QuickLinkId([out] [retval] HSTRING* value);
                    HRESULT RemoveThisQuickLink();
                    HRESULT ReportStarted();
                    HRESULT ReportDataRetrieved();
                    HRESULT ReportSubmittedBackgroundTask();
                    [overload("ReportCompleted")] HRESULT ReportCompletedWithQuickLink([in] Windows.ApplicationModel.DataTransfer.ShareTarget.QuickLink* quicklink);
                    [overload("ReportCompleted")] HRESULT ReportCompleted();
                    HRESULT ReportError([in] HSTRING value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.DataTransfer.ShareTarget.ShareOperation)]
                [uuid(0FFB97C1-9778-4A09-8E5B-CB5E482D0555)]
                interface IShareOperation2 : IInspectable
                {
                    HRESULT DismissUI();
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.ApplicationModel.DataTransfer.ShareTarget.ShareOperation)]
                [uuid(5EF6B382-B7A7-4571-A2A6-994A034988B2)]
                interface IShareOperation3 : IInspectable
                {
                    [propget] HRESULT Contacts([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Contacts.Contact*>** value);
                }

                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(standard)]
                [threading(both)]
                runtimeclass QuickLink
                {
                    [default] interface Windows.ApplicationModel.DataTransfer.ShareTarget.IQuickLink;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(standard)]
                runtimeclass ShareOperation
                {
                    [default] interface Windows.ApplicationModel.DataTransfer.ShareTarget.IShareOperation;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.DataTransfer.ShareTarget.IShareOperation2;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.ApplicationModel.DataTransfer.ShareTarget.IShareOperation3;
                }
            }
        }
    }
}
