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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.idl";
import "Windows.Storage.Streams.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Estorage_h__)")
cpp_quote("#include <Windows.Storage.h>")
cpp_quote("#endif // !defined(__windows2Estorage_h__)")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageItem;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStreamReference;

            runtimeclass RandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace DataTransfer
        {
            typedef enum DataPackageOperation DataPackageOperation;

            delegate DataProviderHandler;

            interface IStandardDataFormatsStatics;

            interface IDataPackagePropertySetView;

            interface IDataPackagePropertySet;

            interface IDataProviderDeferral;

            interface IDataProviderRequest;

            interface IOperationCompletedEventArgs;

            interface IDataPackageView;

            interface IDataPackage;

            interface IHtmlFormatHelperStatics;

            interface IClipboardStatics;

            interface IDataRequestDeferral;

            interface IDataRequest;

            interface IDataRequestedEventArgs;

            interface ITargetApplicationChosenEventArgs;

            interface IDataTransferManager;

            interface IDataTransferManagerStatics;

            runtimeclass StandardDataFormats;

            runtimeclass DataPackagePropertySetView;

            runtimeclass DataPackagePropertySet;

            runtimeclass DataProviderDeferral;

            runtimeclass DataProviderRequest;

            runtimeclass OperationCompletedEventArgs;

            runtimeclass DataPackageView;

            runtimeclass DataPackage;

            runtimeclass HtmlFormatHelper;

            runtimeclass Clipboard;

            runtimeclass DataRequestDeferral;

            runtimeclass DataRequest;

            runtimeclass DataRequestedEventArgs;

            runtimeclass TargetApplicationChosenEventArgs;

            runtimeclass DataTransferManager;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace DataTransfer
        {
            declare
            {
                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataPackage*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataPackage*, Windows.ApplicationModel.DataTransfer.OperationCompletedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataTransferManager*, Windows.ApplicationModel.DataTransfer.DataRequestedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataTransferManager*, Windows.ApplicationModel.DataTransfer.TargetApplicationChosenEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace DataTransfer
        {
            [version(0x06020000)]
            enum DataPackageOperation
            {
                None = 0,
                Copy = 1,
                Move = 2,
                Link = 4
            };

            [uuid(E7ECD720-F2F4-4A2D-920E-170A2F482A27)]
            [version(0x06020000)]
            delegate
                HRESULT DataProviderHandler([in] Windows.ApplicationModel.DataTransfer.DataProviderRequest* request);

            [uuid(7ED681A1-A880-40C9-B4ED-0BEE1E15F549)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.StandardDataFormats)]
            interface IStandardDataFormatsStatics : IInspectable
            {
                [propget] HRESULT Text([out] [retval] HSTRING* value);
                [propget] HRESULT Uri([out] [retval] HSTRING* value);
                [propget] HRESULT Html([out] [retval] HSTRING* value);
                [propget] HRESULT Rtf([out] [retval] HSTRING* value);
                [propget] HRESULT Bitmap([out] [retval] HSTRING* value);
                [propget] HRESULT StorageItems([out] [retval] HSTRING* value);
            }

            [uuid(B94CEC01-0C1A-4C57-BE55-75D01289735D)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataPackagePropertySetView)]
            interface IDataPackagePropertySetView : IInspectable
                requires
                    Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>,
                    Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>
            {
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT Thumbnail([out] [retval] Windows.Storage.Streams.RandomAccessStreamReference** value);
                [propget] HRESULT FileTypes([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT ApplicationName([out] [retval] HSTRING* value);
                [propget] HRESULT ApplicationListingUri([out] [retval] Windows.Foundation.Uri** value);
            }

            [uuid(CD1C93EB-4C4C-443A-A8D3-F5C241E91689)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataPackagePropertySet)]
            interface IDataPackagePropertySet : IInspectable
                requires
                    Windows.Foundation.Collections.IMap<HSTRING, IInspectable*>,
                    Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>
            {
                [propget] HRESULT Title([out] [retval] HSTRING* value);
                [propput] HRESULT Title([in] HSTRING value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propput] HRESULT Description([in] HSTRING value);
                [propget] HRESULT Thumbnail([out] [retval] Windows.Storage.Streams.IRandomAccessStreamReference** value);
                [propput] HRESULT Thumbnail([in] Windows.Storage.Streams.IRandomAccessStreamReference* value);
                [propget] HRESULT FileTypes([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT ApplicationName([out] [retval] HSTRING* value);
                [propput] HRESULT ApplicationName([in] HSTRING value);
                [propget] HRESULT ApplicationListingUri([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT ApplicationListingUri([in] Windows.Foundation.Uri* value);
            }

            [uuid(C2CF2373-2D26-43D9-B69D-DCB86D03F6DA)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataProviderDeferral)]
            [version(0x06020000)]
            interface IDataProviderDeferral : IInspectable
            {
                HRESULT Complete();
            }

            [uuid(EBBC7157-D3C8-47DA-ACDE-F82388D5F716)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataProviderRequest)]
            [version(0x06020000)]
            interface IDataProviderRequest : IInspectable
            {
                [propget] HRESULT FormatId([out] [retval] HSTRING* value);
                [propget] HRESULT Deadline([out] [retval] Windows.Foundation.DateTime* value);
                HRESULT GetDeferral([out] [retval] Windows.ApplicationModel.DataTransfer.DataProviderDeferral** value);
                HRESULT SetData([in] IInspectable* value);
            }

            [uuid(E7AF329D-051D-4FAB-B1A9-47FD77F70A41)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.OperationCompletedEventArgs)]
            interface IOperationCompletedEventArgs : IInspectable
            {
                [propget] HRESULT Operation([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackageOperation* value);
            }

            [uuid(7B840471-5900-4D85-A90B-10CB85FE3552)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataPackageView)]
            interface IDataPackageView : IInspectable
            {
                [propget] HRESULT Properties([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackagePropertySetView** value);
                [propget] HRESULT RequestedOperation([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackageOperation* value);
                HRESULT ReportOperationCompleted([in] Windows.ApplicationModel.DataTransfer.DataPackageOperation value);
                [propget] HRESULT AvailableFormats([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** formatIds);
                HRESULT Contains([in] HSTRING formatId, [out] [retval] boolean* value);
                HRESULT GetDataAsync([in] HSTRING formatId, [out] [retval] Windows.Foundation.IAsyncOperation<IInspectable*>** operation);
                [overload("GetTextAsync")] HRESULT GetTextAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                [overload("GetTextAsync")] HRESULT GetCustomTextAsync([in] HSTRING formatId, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                HRESULT GetUriAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Uri*>** operation);
                HRESULT GetHtmlFormatAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                HRESULT GetResourceMapAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.Streams.RandomAccessStreamReference*>*>** operation);
                HRESULT GetRtfAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                HRESULT GetBitmapAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.RandomAccessStreamReference*>** operation);
                HRESULT GetStorageItemsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>*>** operation);
            }

            [uuid(61EBF5C7-EFEA-4346-9554-981D7E198FFE)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataPackage)]
            [version(0x06020000)]
            interface IDataPackage : IInspectable
            {
                HRESULT GetView([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackageView** value);
                [propget] HRESULT Properties([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackagePropertySet** value);
                [propget] HRESULT RequestedOperation([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackageOperation* value);
                [propput] HRESULT RequestedOperation([in] Windows.ApplicationModel.DataTransfer.DataPackageOperation value);
                [eventadd] HRESULT OperationCompleted([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataPackage*, Windows.ApplicationModel.DataTransfer.OperationCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT OperationCompleted([in] EventRegistrationToken eventCookie);
                [eventadd] HRESULT Destroyed([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataPackage*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT Destroyed([in] EventRegistrationToken eventCookie);
                HRESULT SetData([in] HSTRING formatId, [in] IInspectable* value);
                HRESULT SetDataProvider([in] HSTRING formatId, [in] Windows.ApplicationModel.DataTransfer.DataProviderHandler* delayRenderer);
                HRESULT SetText([in] HSTRING value);
                HRESULT SetUri([in] Windows.Foundation.Uri* value);
                HRESULT SetHtmlFormat([in] HSTRING value);
                [propget] HRESULT ResourceMap([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, Windows.Storage.Streams.RandomAccessStreamReference*>** value);
                HRESULT SetRtf([in] HSTRING value);
                HRESULT SetBitmap([in] Windows.Storage.Streams.RandomAccessStreamReference* value);
                [overload("SetStorageItems")] HRESULT SetStorageItemsReadOnly([in] Windows.Foundation.Collections.IIterable<Windows.Storage.IStorageItem*>* value);
                [overload("SetStorageItems")] HRESULT SetStorageItems([in] Windows.Foundation.Collections.IIterable<Windows.Storage.IStorageItem*>* value, [in] boolean readOnly);
            }

            [uuid(E22E7749-DD70-446F-AEFC-61CEE59F655E)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.HtmlFormatHelper)]
            interface IHtmlFormatHelperStatics : IInspectable
            {
                HRESULT GetStaticFragment([in] HSTRING htmlFormat, [out] [retval] HSTRING* htmlFragment);
                HRESULT CreateHtmlFormat([in] HSTRING htmlFragment, [out] [retval] HSTRING* htmlFormat);
            }

            [uuid(C627E291-34E2-4963-8EED-93CBB0EA3D70)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.Clipboard)]
            [version(0x06020000)]
            interface IClipboardStatics : IInspectable
            {
                HRESULT GetContent([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackageView** content);
                HRESULT SetContent([in] Windows.ApplicationModel.DataTransfer.DataPackage* content);
                HRESULT Flush();
                HRESULT Clear();
                [eventadd] HRESULT ContentChanged([in] Windows.Foundation.EventHandler<IInspectable*>* changeHandler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ContentChanged([in] EventRegistrationToken token);
            }

            [uuid(6DC4B89F-0386-4263-87C1-ED7DCE30890E)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataRequestDeferral)]
            [version(0x06020000)]
            interface IDataRequestDeferral : IInspectable
            {
                HRESULT Complete();
            }

            [uuid(4341AE3B-FC12-4E53-8C02-AC714C415A27)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataRequest)]
            [version(0x06020000)]
            interface IDataRequest : IInspectable
            {
                [propget] HRESULT Data([out] [retval] Windows.ApplicationModel.DataTransfer.DataPackage** value);
                [propput] HRESULT Data([in] Windows.ApplicationModel.DataTransfer.DataPackage* value);
                [propget] HRESULT Deadline([out] [retval] Windows.Foundation.DateTime* value);
                HRESULT FailWithDisplayText([in] HSTRING value);
                HRESULT GetDeferral([out] [retval] Windows.ApplicationModel.DataTransfer.DataRequestDeferral** value);
            }

            [uuid(CB8BA807-6AC5-43C9-8AC5-9BA232163182)]
            [version(0x06020000)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataRequestedEventArgs)]
            interface IDataRequestedEventArgs : IInspectable
            {
                [propget] HRESULT Request([out] [retval] Windows.ApplicationModel.DataTransfer.DataRequest** value);
            }

            [uuid(CA6FB8AC-2987-4EE3-9C54-D8AFBCB86C1D)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.TargetApplicationChosenEventArgs)]
            [version(0x06020000)]
            interface ITargetApplicationChosenEventArgs : IInspectable
            {
                [propget] HRESULT ApplicationName([out] [retval] HSTRING* value);
            }

            [uuid(A5CAEE9B-8708-49D1-8D36-67D25A8DA00C)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataTransferManager)]
            [version(0x06020000)]
            interface IDataTransferManager : IInspectable
            {
                [eventadd] HRESULT DataRequested([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataTransferManager*, Windows.ApplicationModel.DataTransfer.DataRequestedEventArgs*>* eventHandler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT DataRequested([in] EventRegistrationToken eventCookie);
                [eventadd] HRESULT TargetApplicationChosen([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.DataTransfer.DataTransferManager*, Windows.ApplicationModel.DataTransfer.TargetApplicationChosenEventArgs*>* eventHandler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT TargetApplicationChosen([in] EventRegistrationToken eventCookie);
            }

            [uuid(A9DA01AA-E00E-4CFE-AA44-2DD932DCA3D8)]
            [exclusiveto(Windows.ApplicationModel.DataTransfer.DataTransferManager)]
            [version(0x06020000)]
            interface IDataTransferManagerStatics : IInspectable
            {
                HRESULT ShowShareUI();
                HRESULT GetForCurrentView([out] [retval] Windows.ApplicationModel.DataTransfer.DataTransferManager** value);
            }

            [version(0x06020000)]
            [static(Windows.ApplicationModel.DataTransfer.IStandardDataFormatsStatics, 0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass StandardDataFormats
            {
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass DataPackagePropertySetView
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataPackagePropertySetView;
                interface Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>;
                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>;
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass DataPackagePropertySet
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataPackagePropertySet;
                interface Windows.Foundation.Collections.IMap<HSTRING, IInspectable*>;
                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, IInspectable*>*>;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataProviderDeferral
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataProviderDeferral;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataProviderRequest
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataProviderRequest;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass OperationCompletedEventArgs
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IOperationCompletedEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataPackageView
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataPackageView;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            [activatable(0x06020000)]
            runtimeclass DataPackage
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataPackage;
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.DataTransfer.IHtmlFormatHelperStatics, 0x06020000)]
            runtimeclass HtmlFormatHelper
            {
            }

            [static(Windows.ApplicationModel.DataTransfer.IClipboardStatics, 0x06020000)]
            [version(0x06020000)]
            [marshaling_behavior(standard)]
            runtimeclass Clipboard
            {
            }

            [version(0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass DataRequestDeferral
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataRequestDeferral;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataRequest
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataRequest;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass DataRequestedEventArgs
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataRequestedEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x06020000)]
            runtimeclass TargetApplicationChosenEventArgs
            {
                [default] interface Windows.ApplicationModel.DataTransfer.ITargetApplicationChosenEventArgs;
            }

            [static(Windows.ApplicationModel.DataTransfer.IDataTransferManagerStatics, 0x06020000)]
            [marshaling_behavior(standard)]
            [version(0x06020000)]
            runtimeclass DataTransferManager
            {
                [default] interface Windows.ApplicationModel.DataTransfer.IDataTransferManager;
            }
        }
    }
}
