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

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

        interface IAsyncAction;

        interface IClosable;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFolder;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Import
        {
            typedef enum PhotoImportAccessMode PhotoImportAccessMode;

            typedef enum PhotoImportConnectionTransport PhotoImportConnectionTransport;

            typedef enum PhotoImportContentType PhotoImportContentType;

            typedef enum PhotoImportContentTypeFilter PhotoImportContentTypeFilter;

            typedef enum PhotoImportImportMode PhotoImportImportMode;

            typedef enum PhotoImportItemSelectionMode PhotoImportItemSelectionMode;

            typedef enum PhotoImportPowerSource PhotoImportPowerSource;

            typedef enum PhotoImportSourceType PhotoImportSourceType;

            typedef enum PhotoImportStage PhotoImportStage;

            typedef enum PhotoImportStorageMediumType PhotoImportStorageMediumType;

            typedef enum PhotoImportSubfolderCreationMode PhotoImportSubfolderCreationMode;

            typedef enum PhotoImportSubfolderDateFormat PhotoImportSubfolderDateFormat;

            typedef struct PhotoImportProgress PhotoImportProgress;

            interface IPhotoImportDeleteImportedItemsFromSourceResult;

            interface IPhotoImportFindItemsResult;

            interface IPhotoImportFindItemsResult2;

            interface IPhotoImportImportItemsResult;

            interface IPhotoImportItem;

            interface IPhotoImportItem2;

            interface IPhotoImportItemImportedEventArgs;

            interface IPhotoImportManagerStatics;

            interface IPhotoImportOperation;

            interface IPhotoImportSelectionChangedEventArgs;

            interface IPhotoImportSession;

            interface IPhotoImportSession2;

            interface IPhotoImportSidecar;

            interface IPhotoImportSource;

            interface IPhotoImportSourceStatics;

            interface IPhotoImportStorageMedium;

            interface IPhotoImportVideoSegment;

            runtimeclass PhotoImportDeleteImportedItemsFromSourceResult;

            runtimeclass PhotoImportFindItemsResult;

            runtimeclass PhotoImportImportItemsResult;

            runtimeclass PhotoImportItem;

            runtimeclass PhotoImportItemImportedEventArgs;

            runtimeclass PhotoImportManager;

            runtimeclass PhotoImportOperation;

            runtimeclass PhotoImportSelectionChangedEventArgs;

            runtimeclass PhotoImportSession;

            runtimeclass PhotoImportSidecar;

            runtimeclass PhotoImportSource;

            runtimeclass PhotoImportStorageMedium;

            runtimeclass PhotoImportVideoSegment;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Media
    {
        namespace Import
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Media.Import.PhotoImportItem*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Import.PhotoImportOperation*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Import.PhotoImportSidecar*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Import.PhotoImportSource*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Import.PhotoImportStorageMedium*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Import.PhotoImportVideoSegment*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Import.PhotoImportItem*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Import.PhotoImportOperation*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Import.PhotoImportSidecar*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Import.PhotoImportSource*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Import.PhotoImportStorageMedium*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Import.PhotoImportVideoSegment*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportItem*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportOperation*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportSidecar*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportSource*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportStorageMedium*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportVideoSegment*>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult*, DOUBLE>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportFindItemsResult*, UINT32>;

                interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportImportItemsResult*, Windows.Media.Import.PhotoImportProgress>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportSource*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Import.PhotoImportSource*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Import.PhotoImportFindItemsResult*, Windows.Media.Import.PhotoImportItemImportedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Import.PhotoImportFindItemsResult*, Windows.Media.Import.PhotoImportSelectionChangedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Media
    {
        namespace Import
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportAccessMode
            {
                ReadWrite     = 0,
                ReadOnly      = 1,
                ReadAndDelete = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportConnectionTransport
            {
                Unknown   = 0,
                Usb       = 1,
                IP        = 2,
                Bluetooth = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportContentType
            {
                Unknown = 0,
                Image   = 1,
                Video   = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportContentTypeFilter
            {
                OnlyImages                    = 0,
                OnlyVideos                    = 1,
                ImagesAndVideos               = 2,
                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                ImagesAndVideosFromCameraRoll = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportImportMode
            {
                ImportEverything          = 0,
                IgnoreSidecars            = 1,
                IgnoreSiblings            = 2,
                IgnoreSidecarsAndSiblings = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportItemSelectionMode
            {
                SelectAll  = 0,
                SelectNone = 1,
                SelectNew  = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportPowerSource
            {
                Unknown  = 0,
                Battery  = 1,
                External = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportSourceType
            {
                Generic             = 0,
                Camera              = 1,
                MediaPlayer         = 2,
                Phone               = 3,
                Video               = 4,
                PersonalInfoManager = 5,
                AudioRecorder       = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportStage
            {
                NotStarted                      = 0,
                FindingItems                    = 1,
                ImportingItems                  = 2,
                DeletingImportedItemsFromSource = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportStorageMediumType
            {
                Undefined = 0,
                Fixed     = 1,
                Removable = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum PhotoImportSubfolderCreationMode
            {
                DoNotCreateSubfolders        = 0,
                CreateSubfoldersFromFileDate = 1,
                CreateSubfoldersFromExifDate = 2,
                KeepOriginalFolderStructure  = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum PhotoImportSubfolderDateFormat
            {
                Year         = 0,
                YearMonth    = 1,
                YearMonthDay = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            struct PhotoImportProgress
            {
                UINT32 ItemsImported;
                UINT32 TotalItemsToImport;
                UINT64 BytesImported;
                UINT64 TotalBytesToImport;
                DOUBLE ImportProgress;
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult)]
            [uuid(F4E112F8-843D-428A-A1A6-81510292B0AE)]
            interface IPhotoImportDeleteImportedItemsFromSourceResult : IInspectable
            {
                [propget] HRESULT Session([out] [retval] Windows.Media.Import.PhotoImportSession** value);
                [propget] HRESULT HasSucceeded([out] [retval] boolean* value);
                [propget] HRESULT DeletedItems([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportItem*>** value);
                [propget] HRESULT PhotosCount([out] [retval] UINT32* value);
                [propget] HRESULT PhotosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT VideosCount([out] [retval] UINT32* value);
                [propget] HRESULT VideosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SidecarsCount([out] [retval] UINT32* value);
                [propget] HRESULT SidecarsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SiblingsCount([out] [retval] UINT32* value);
                [propget] HRESULT SiblingsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT TotalCount([out] [retval] UINT32* value);
                [propget] HRESULT TotalSizeInBytes([out] [retval] UINT64* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportFindItemsResult)]
            [uuid(3915E647-6C78-492B-844E-8FE5E8F6BFB9)]
            interface IPhotoImportFindItemsResult : IInspectable
            {
                [propget] HRESULT Session([out] [retval] Windows.Media.Import.PhotoImportSession** value);
                [propget] HRESULT HasSucceeded([out] [retval] boolean* value);
                [propget] HRESULT FoundItems([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportItem*>** value);
                [propget] HRESULT PhotosCount([out] [retval] UINT32* value);
                [propget] HRESULT PhotosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT VideosCount([out] [retval] UINT32* value);
                [propget] HRESULT VideosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SidecarsCount([out] [retval] UINT32* value);
                [propget] HRESULT SidecarsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SiblingsCount([out] [retval] UINT32* value);
                [propget] HRESULT SiblingsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT TotalCount([out] [retval] UINT32* value);
                [propget] HRESULT TotalSizeInBytes([out] [retval] UINT64* value);
                HRESULT SelectAll();
                HRESULT SelectNone();
                HRESULT SelectNewAsync([out] [retval] Windows.Foundation.IAsyncAction** action);
                HRESULT SetImportMode([in] Windows.Media.Import.PhotoImportImportMode value);
                [propget] HRESULT ImportMode([out] [retval] Windows.Media.Import.PhotoImportImportMode* value);
                [propget] HRESULT SelectedPhotosCount([out] [retval] UINT32* value);
                [propget] HRESULT SelectedPhotosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SelectedVideosCount([out] [retval] UINT32* value);
                [propget] HRESULT SelectedVideosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SelectedSidecarsCount([out] [retval] UINT32* value);
                [propget] HRESULT SelectedSidecarsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SelectedSiblingsCount([out] [retval] UINT32* value);
                [propget] HRESULT SelectedSiblingsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SelectedTotalCount([out] [retval] UINT32* value);
                [propget] HRESULT SelectedTotalSizeInBytes([out] [retval] UINT64* value);
                [eventadd] HRESULT SelectionChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Import.PhotoImportFindItemsResult*, Windows.Media.Import.PhotoImportSelectionChangedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SelectionChanged([in] EventRegistrationToken token);
                HRESULT ImportItemsAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportImportItemsResult*, Windows.Media.Import.PhotoImportProgress>** operation);
                [eventadd] HRESULT ItemImported([in] Windows.Foundation.TypedEventHandler<Windows.Media.Import.PhotoImportFindItemsResult*, Windows.Media.Import.PhotoImportItemImportedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ItemImported([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportFindItemsResult)]
            [uuid(FBDD6A3B-ECF9-406A-815E-5015625B0A88)]
            interface IPhotoImportFindItemsResult2 : IInspectable
            {
                HRESULT AddItemsInDateRangeToSelection([in] Windows.Foundation.DateTime rangeStart, [in] Windows.Foundation.TimeSpan rangeLength);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportImportItemsResult)]
            [uuid(E4D4F478-D419-4443-A84E-F06A850C0B00)]
            interface IPhotoImportImportItemsResult : IInspectable
            {
                [propget] HRESULT Session([out] [retval] Windows.Media.Import.PhotoImportSession** value);
                [propget] HRESULT HasSucceeded([out] [retval] boolean* value);
                [propget] HRESULT ImportedItems([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportItem*>** value);
                [propget] HRESULT PhotosCount([out] [retval] UINT32* value);
                [propget] HRESULT PhotosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT VideosCount([out] [retval] UINT32* value);
                [propget] HRESULT VideosSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SidecarsCount([out] [retval] UINT32* value);
                [propget] HRESULT SidecarsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT SiblingsCount([out] [retval] UINT32* value);
                [propget] HRESULT SiblingsSizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT TotalCount([out] [retval] UINT32* value);
                [propget] HRESULT TotalSizeInBytes([out] [retval] UINT64* value);
                HRESULT DeleteImportedItemsFromSourceAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult*, DOUBLE>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportItem)]
            [uuid(A9D07E76-9BFC-43B8-B356-633B6A988C9E)]
            interface IPhotoImportItem : IInspectable
            {
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propget] HRESULT ItemKey([out] [retval] UINT64* value);
                [propget] HRESULT ContentType([out] [retval] Windows.Media.Import.PhotoImportContentType* value);
                [propget] HRESULT SizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT Date([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT Sibling([out] [retval] Windows.Media.Import.PhotoImportSidecar** value);
                [propget] HRESULT Sidecars([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportSidecar*>** value);
                [propget] HRESULT VideoSegments([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportVideoSegment*>** value);
                [propget] HRESULT IsSelected([out] [retval] boolean* value);
                [propput] HRESULT IsSelected([in] boolean value);
                [propget] HRESULT Thumbnail([out] [retval] Windows.Storage.Streams.IRandomAccessStreamReference** value);
                [propget] HRESULT ImportedFileNames([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT DeletedFileNames([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportItem)]
            [uuid(F1053505-F53B-46A3-9E30-3610791A9110)]
            interface IPhotoImportItem2 : IInspectable
            {
                [propget] HRESULT Path([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportItemImportedEventArgs)]
            [uuid(42CB2FDD-7D68-47B5-BC7C-CEB73E0C77DC)]
            interface IPhotoImportItemImportedEventArgs : IInspectable
            {
                [propget] HRESULT ImportedItem([out] [retval] Windows.Media.Import.PhotoImportItem** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportManager)]
            [uuid(2771903D-A046-4F06-9B9C-BFD662E83287)]
            interface IPhotoImportManagerStatics : IInspectable
            {
                HRESULT IsSupportedAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                HRESULT FindAllSourcesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportSource*>*>** operation);
                HRESULT GetPendingOperations([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportOperation*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportOperation)]
            [uuid(D9F797E4-A09A-4EE4-A4B1-20940277A5BE)]
            interface IPhotoImportOperation : IInspectable
            {
                [propget] HRESULT Stage([out] [retval] Windows.Media.Import.PhotoImportStage* value);
                [propget] HRESULT Session([out] [retval] Windows.Media.Import.PhotoImportSession** value);
                [propget] HRESULT ContinueFindingItemsAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportFindItemsResult*, UINT32>** operation);
                [propget] HRESULT ContinueImportingItemsAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportImportItemsResult*, Windows.Media.Import.PhotoImportProgress>** operation);
                [propget] HRESULT ContinueDeletingImportedItemsFromSourceAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportDeleteImportedItemsFromSourceResult*, DOUBLE>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportSelectionChangedEventArgs)]
            [uuid(10461782-FA9D-4C30-8BC9-4D64911572D5)]
            interface IPhotoImportSelectionChangedEventArgs : IInspectable
            {
                [propget] HRESULT IsSelectionEmpty([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportSession)]
            [uuid(AA63916E-ECDB-4EFE-94C6-5F5CAFE34CFB)]
            interface IPhotoImportSession : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT Source([out] [retval] Windows.Media.Import.PhotoImportSource** value);
                [propget] HRESULT SessionId([out] [retval] GUID* value);
                [propput] HRESULT DestinationFolder([in] Windows.Storage.IStorageFolder* value);
                [propget] HRESULT DestinationFolder([out] [retval] Windows.Storage.IStorageFolder** value);
                [propput] HRESULT AppendSessionDateToDestinationFolder([in] boolean value);
                [propget] HRESULT AppendSessionDateToDestinationFolder([out] [retval] boolean* value);
                [propput] HRESULT SubfolderCreationMode([in] Windows.Media.Import.PhotoImportSubfolderCreationMode value);
                [propget] HRESULT SubfolderCreationMode([out] [retval] Windows.Media.Import.PhotoImportSubfolderCreationMode* value);
                [propput] HRESULT DestinationFileNamePrefix([in] HSTRING value);
                [propget] HRESULT DestinationFileNamePrefix([out] [retval] HSTRING* value);
                HRESULT FindItemsAsync([in] Windows.Media.Import.PhotoImportContentTypeFilter contentTypeFilter, [in] Windows.Media.Import.PhotoImportItemSelectionMode itemSelectionMode, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Media.Import.PhotoImportFindItemsResult*, UINT32>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportSession)]
            [uuid(2A526710-3EC6-469D-A375-2B9F4785391E)]
            interface IPhotoImportSession2 : IInspectable
            {
                [propput] HRESULT SubfolderDateFormat([in] Windows.Media.Import.PhotoImportSubfolderDateFormat value);
                [propget] HRESULT SubfolderDateFormat([out] [retval] Windows.Media.Import.PhotoImportSubfolderDateFormat* value);
                [propput] HRESULT RememberDeselectedItems([in] boolean value);
                [propget] HRESULT RememberDeselectedItems([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportSidecar)]
            [uuid(46D7D757-F802-44C7-9C98-7A71F4BC1486)]
            interface IPhotoImportSidecar : IInspectable
            {
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propget] HRESULT SizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT Date([out] [retval] Windows.Foundation.DateTime* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportSource)]
            [uuid(1F8EA35E-145B-4CD6-87F1-54965A982FEF)]
            interface IPhotoImportSource : IInspectable
            {
                [propget] HRESULT Id([out] [retval] HSTRING* value);
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT Manufacturer([out] [retval] HSTRING* value);
                [propget] HRESULT Model([out] [retval] HSTRING* value);
                [propget] HRESULT SerialNumber([out] [retval] HSTRING* value);
                [propget] HRESULT ConnectionProtocol([out] [retval] HSTRING* value);
                [propget] HRESULT ConnectionTransport([out] [retval] Windows.Media.Import.PhotoImportConnectionTransport* value);
                [propget] HRESULT Type([out] [retval] Windows.Media.Import.PhotoImportSourceType* value);
                [propget] HRESULT PowerSource([out] [retval] Windows.Media.Import.PhotoImportPowerSource* value);
                [propget] HRESULT BatteryLevelPercent([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                [propget] HRESULT DateTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                [propget] HRESULT StorageMedia([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportStorageMedium*>** value);
                [propget] HRESULT IsLocked([out] [retval] Windows.Foundation.IReference<boolean>** value);
                [propget] HRESULT IsMassStorage([out] [retval] boolean* value);
                [propget] HRESULT Thumbnail([out] [retval] Windows.Storage.Streams.IRandomAccessStreamReference** value);
                HRESULT CreateImportSession([out] [retval] Windows.Media.Import.PhotoImportSession** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportSource)]
            [uuid(0528E586-32D8-467C-8CEE-23A1B2F43E85)]
            interface IPhotoImportSourceStatics : IInspectable
            {
                HRESULT FromIdAsync([in] HSTRING sourceId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Import.PhotoImportSource*>** operation);
                HRESULT FromFolderAsync([in] Windows.Storage.IStorageFolder* sourceRootFolder, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Import.PhotoImportSource*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportStorageMedium)]
            [uuid(F2B9B093-FC85-487F-87C2-58D675D05B07)]
            interface IPhotoImportStorageMedium : IInspectable
            {
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propget] HRESULT SerialNumber([out] [retval] HSTRING* value);
                [propget] HRESULT StorageMediumType([out] [retval] Windows.Media.Import.PhotoImportStorageMediumType* value);
                [propget] HRESULT SupportedAccessMode([out] [retval] Windows.Media.Import.PhotoImportAccessMode* value);
                [propget] HRESULT CapacityInBytes([out] [retval] UINT64* value);
                [propget] HRESULT AvailableSpaceInBytes([out] [retval] UINT64* value);
                HRESULT Refresh();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Import.PhotoImportVideoSegment)]
            [uuid(623C0289-321A-41D8-9166-8C62A333276C)]
            interface IPhotoImportVideoSegment : IInspectable
            {
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propget] HRESULT SizeInBytes([out] [retval] UINT64* value);
                [propget] HRESULT Date([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT Sibling([out] [retval] Windows.Media.Import.PhotoImportSidecar** value);
                [propget] HRESULT Sidecars([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Import.PhotoImportSidecar*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportDeleteImportedItemsFromSourceResult
            {
                [default] interface Windows.Media.Import.IPhotoImportDeleteImportedItemsFromSourceResult;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportFindItemsResult
            {
                [default] interface Windows.Media.Import.IPhotoImportFindItemsResult;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Import.IPhotoImportFindItemsResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportImportItemsResult
            {
                [default] interface Windows.Media.Import.IPhotoImportImportItemsResult;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportItem
            {
                [default] interface Windows.Media.Import.IPhotoImportItem;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Media.Import.IPhotoImportItem2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportItemImportedEventArgs
            {
                [default] interface Windows.Media.Import.IPhotoImportItemImportedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Import.IPhotoImportManagerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass PhotoImportManager
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportOperation
            {
                [default] interface Windows.Media.Import.IPhotoImportOperation;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportSelectionChangedEventArgs
            {
                [default] interface Windows.Media.Import.IPhotoImportSelectionChangedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportSession
            {
                [default] interface Windows.Media.Import.IPhotoImportSession;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Import.IPhotoImportSession2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportSidecar
            {
                [default] interface Windows.Media.Import.IPhotoImportSidecar;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Import.IPhotoImportSourceStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass PhotoImportSource
            {
                [default] interface Windows.Media.Import.IPhotoImportSource;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportStorageMedium
            {
                [default] interface Windows.Media.Import.IPhotoImportStorageMedium;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PhotoImportVideoSegment
            {
                [default] interface Windows.Media.Import.IPhotoImportVideoSegment;
            }
        }
    }
}
