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

// Forward Declare
namespace Windows
{
    namespace Data
    {
        namespace Text
        {
            typedef struct TextSegment TextSegment;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        interface IAsyncAction;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace FileProperties
        {
            typedef enum PropertyPrefetchOptions PropertyPrefetchOptions;

            typedef enum ThumbnailMode ThumbnailMode;

            typedef enum ThumbnailOptions ThumbnailOptions;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageItem;

        runtimeclass StorageFile;

        runtimeclass StorageFolder;

        runtimeclass StorageLibraryChangeTracker;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Search
        {
            typedef enum CommonFileQuery CommonFileQuery;

            typedef enum CommonFolderQuery CommonFolderQuery;

            typedef enum DateStackOption DateStackOption;

            typedef enum FolderDepth FolderDepth;

            typedef enum IndexedState IndexedState;

            typedef enum IndexerOption IndexerOption;

            typedef struct SortEntry SortEntry;

            interface IContentIndexer;

            interface IContentIndexerQuery;

            interface IContentIndexerQueryOperations;

            interface IContentIndexerStatics;

            interface IIndexableContent;

            interface IQueryOptions;

            interface IQueryOptionsFactory;

            interface IQueryOptionsWithProviderFilter;

            interface IStorageFileQueryResult;

            interface IStorageFileQueryResult2;

            interface IStorageFolderQueryOperations;

            interface IStorageFolderQueryResult;

            interface IStorageItemQueryResult;

            interface IStorageLibraryChangeTrackerTriggerDetails;

            interface IStorageLibraryContentChangedTriggerDetails;

            interface IStorageQueryResultBase;

            interface IValueAndLanguage;

            runtimeclass ContentIndexer;

            runtimeclass ContentIndexerQuery;

            runtimeclass IndexableContent;

            runtimeclass QueryOptions;

            runtimeclass SortEntryVector;

            runtimeclass StorageFileQueryResult;

            runtimeclass StorageFolderQueryResult;

            runtimeclass StorageItemQueryResult;

            runtimeclass StorageLibraryChangeTrackerTriggerDetails;

            runtimeclass StorageLibraryContentChangedTriggerDetails;

            runtimeclass ValueAndLanguage;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Storage
    {
        namespace Search
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Search.IIndexableContent*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Search.SortEntry>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Search.IIndexableContent*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Storage.Search.SortEntry>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Search.IIndexableContent*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Search.SortEntry>;

                interface Windows.Foundation.Collections.IVector<Windows.Storage.Search.SortEntry>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.Search.IIndexableContent*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Storage.Search.IndexedState>;

                interface Windows.Foundation.TypedEventHandler<Windows.Storage.Search.IStorageQueryResultBase*, IInspectable*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Storage
    {
        namespace Search
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum CommonFileQuery
            {
                DefaultQuery           = 0,
                OrderByName            = 1,
                OrderByTitle           = 2,
                OrderByMusicProperties = 3,
                OrderBySearchRank      = 4,
                OrderByDate            = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum CommonFolderQuery
            {
                DefaultQuery         = 0,
                GroupByYear          = 100,
                GroupByMonth         = 101,
                GroupByArtist        = 102,
                GroupByAlbum         = 103,
                GroupByAlbumArtist   = 104,
                GroupByComposer      = 105,
                GroupByGenre         = 106,
                GroupByPublishedYear = 107,
                GroupByRating        = 108,
                GroupByTag           = 109,
                GroupByAuthor        = 110,
                GroupByType          = 111
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum DateStackOption
            {
                None  = 0,
                Year  = 1,
                Month = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FolderDepth
            {
                Shallow = 0,
                Deep    = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum IndexedState
            {
                Unknown          = 0,
                NotIndexed       = 1,
                PartiallyIndexed = 2,
                FullyIndexed     = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum IndexerOption
            {
                UseIndexerWhenAvailable                       = 0,
                OnlyUseIndexer                                = 1,
                DoNotUseIndexer                               = 2,
                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                OnlyUseIndexerAndOptimizeForIndexedProperties = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            struct SortEntry
            {
                HSTRING PropertyName;
                boolean AscendingOrder;
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.ContentIndexer)]
            [uuid(B1767F8D-F698-4982-B05F-3A6E8CAB01A2)]
            interface IContentIndexer : IInspectable
            {
                HRESULT AddAsync([in] Windows.Storage.Search.IIndexableContent* indexableContent, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT UpdateAsync([in] Windows.Storage.Search.IIndexableContent* indexableContent, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT DeleteAsync([in] HSTRING contentId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT DeleteMultipleAsync([in] Windows.Foundation.Collections.IIterable<HSTRING>* contentIds, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT DeleteAllAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT RetrievePropertiesAsync([in] HSTRING contentId, [in] Windows.Foundation.Collections.IIterable<HSTRING>* propertiesToRetrieve, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>*>** operation);
                [propget] HRESULT Revision([out] [retval] UINT64* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.ContentIndexerQuery)]
            [uuid(70E3B0F8-4BFC-428A-8889-CC51DA9A7B9D)]
            interface IContentIndexerQuery : IInspectable
            {
                HRESULT GetCountAsync([out] [retval] Windows.Foundation.IAsyncOperation<UINT32>** operation);
                [overload("GetPropertiesAsync")] HRESULT GetPropertiesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>*>*>** operation);
                [overload("GetPropertiesAsync")] HRESULT GetPropertiesRangeAsync([in] UINT32 startIndex, [in] UINT32 maxItems, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Foundation.Collections.IMapView<HSTRING, IInspectable*>*>*>** operation);
                [overload("GetAsync")] HRESULT GetAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.Search.IIndexableContent*>*>** operation);
                [overload("GetAsync")] HRESULT GetRangeAsync([in] UINT32 startIndex, [in] UINT32 maxItems, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.Search.IIndexableContent*>*>** operation);
                [propget] HRESULT QueryFolder([out] [retval] Windows.Storage.StorageFolder** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.ContentIndexer)]
            [uuid(28823E10-4786-42F1-9730-792B3566B150)]
            interface IContentIndexerQueryOperations : IInspectable
            {
                [overload("CreateQuery")] HRESULT CreateQueryWithSortOrderAndLanguage([in] HSTRING searchFilter, [in] Windows.Foundation.Collections.IIterable<HSTRING>* propertiesToRetrieve, [in] Windows.Foundation.Collections.IIterable<Windows.Storage.Search.SortEntry>* sortOrder, [in] HSTRING searchFilterLanguage, [out] [retval] Windows.Storage.Search.ContentIndexerQuery** query);
                [overload("CreateQuery")] HRESULT CreateQueryWithSortOrder([in] HSTRING searchFilter, [in] Windows.Foundation.Collections.IIterable<HSTRING>* propertiesToRetrieve, [in] Windows.Foundation.Collections.IIterable<Windows.Storage.Search.SortEntry>* sortOrder, [out] [retval] Windows.Storage.Search.ContentIndexerQuery** query);
                [overload("CreateQuery")] HRESULT CreateQuery([in] HSTRING searchFilter, [in] Windows.Foundation.Collections.IIterable<HSTRING>* propertiesToRetrieve, [out] [retval] Windows.Storage.Search.ContentIndexerQuery** query);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.ContentIndexer)]
            [uuid(8C488375-B37E-4C60-9BA8-B760FDA3E59D)]
            interface IContentIndexerStatics : IInspectable
            {
                [overload("GetIndexer")] HRESULT GetIndexerWithName([in] HSTRING indexName, [out] [retval] Windows.Storage.Search.ContentIndexer** index);
                [overload("GetIndexer")] HRESULT GetIndexer([out] [retval] Windows.Storage.Search.ContentIndexer** index);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(CCF1A05F-D4B5-483A-B06E-E0DB1EC420E4)]
            interface IIndexableContent : IInspectable
            {
                [propget] HRESULT Id([out] [retval] HSTRING* value);
                [propput] HRESULT Id([in] HSTRING value);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, IInspectable*>** value);
                [propget] HRESULT Stream([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
                [propput] HRESULT Stream([in] Windows.Storage.Streams.IRandomAccessStream* value);
                [propget] HRESULT StreamContentType([out] [retval] HSTRING* value);
                [propput] HRESULT StreamContentType([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.QueryOptions)]
            [uuid(1E5E46EE-0F45-4838-A8E9-D0479D446C30)]
            interface IQueryOptions : IInspectable
            {
                [propget] HRESULT FileTypeFilter([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT FolderDepth([out] [retval] Windows.Storage.Search.FolderDepth* value);
                [propput] HRESULT FolderDepth([in] Windows.Storage.Search.FolderDepth value);
                [propget] HRESULT ApplicationSearchFilter([out] [retval] HSTRING* value);
                [propput] HRESULT ApplicationSearchFilter([in] HSTRING value);
                [propget] HRESULT UserSearchFilter([out] [retval] HSTRING* value);
                [propput] HRESULT UserSearchFilter([in] HSTRING value);
                [propget] HRESULT Language([out] [retval] HSTRING* value);
                [propput] HRESULT Language([in] HSTRING value);
                [propget] HRESULT IndexerOption([out] [retval] Windows.Storage.Search.IndexerOption* value);
                [propput] HRESULT IndexerOption([in] Windows.Storage.Search.IndexerOption value);
                [propget] HRESULT SortOrder([out] [retval] Windows.Foundation.Collections.IVector<Windows.Storage.Search.SortEntry>** value);
                [propget] HRESULT GroupPropertyName([out] [retval] HSTRING* value);
                [propget] HRESULT DateStackOption([out] [retval] Windows.Storage.Search.DateStackOption* value);
                HRESULT SaveToString([out] [retval] HSTRING* value);
                HRESULT LoadFromString([in] HSTRING value);
                HRESULT SetThumbnailPrefetch([in] Windows.Storage.FileProperties.ThumbnailMode mode, [in] UINT32 requestedSize, [in] Windows.Storage.FileProperties.ThumbnailOptions options);
                HRESULT SetPropertyPrefetch([in] Windows.Storage.FileProperties.PropertyPrefetchOptions options, [in] Windows.Foundation.Collections.IIterable<HSTRING>* propertiesToRetrieve);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.QueryOptions)]
            [uuid(032E1F8C-A9C1-4E71-8011-0DEE9D4811A3)]
            interface IQueryOptionsFactory : IInspectable
            {
                HRESULT CreateCommonFileQuery([in] Windows.Storage.Search.CommonFileQuery query, [in] Windows.Foundation.Collections.IIterable<HSTRING>* fileTypeFilter, [out] [retval] Windows.Storage.Search.QueryOptions** queryOptions);
                HRESULT CreateCommonFolderQuery([in] Windows.Storage.Search.CommonFolderQuery query, [out] [retval] Windows.Storage.Search.QueryOptions** queryOptions);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.QueryOptions)]
            [uuid(5B9D1026-15C4-44DD-B89A-47A59B7D7C4F)]
            interface IQueryOptionsWithProviderFilter : IInspectable
            {
                [propget] HRESULT StorageProviderIdFilter([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.StorageFileQueryResult)]
            [uuid(52FDA447-2BAA-412C-B29F-D4B1778EFA1E)]
            interface IStorageFileQueryResult : IInspectable
                requires
                    Windows.Storage.Search.IStorageQueryResultBase
            {
                [overload("GetFilesAsync")] HRESULT GetFilesAsync([in] UINT32 startIndex, [in] UINT32 maxNumberOfItems, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile*>*>** operation);
                [overload("GetFilesAsync")] HRESULT GetFilesAsyncDefaultStartAndCount([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile*>*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.StorageFileQueryResult)]
            [uuid(4E5DB9DD-7141-46C4-8BE3-E9DC9E27275C)]
            interface IStorageFileQueryResult2 : IInspectable
                requires
                    Windows.Storage.Search.IStorageQueryResultBase
            {
                HRESULT GetMatchingPropertiesWithRanges([in] Windows.Storage.StorageFile* file, [out] [retval] Windows.Foundation.Collections.IMap<HSTRING, Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(CB43CCC9-446B-4A4F-BE97-757771BE5203)]
            interface IStorageFolderQueryOperations : IInspectable
            {
                HRESULT GetIndexedStateAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Search.IndexedState>** operation);
                [overload("CreateFileQuery")] HRESULT CreateFileQueryOverloadDefault([out] [retval] Windows.Storage.Search.StorageFileQueryResult** value);
                [overload("CreateFileQuery")] HRESULT CreateFileQuery([in] Windows.Storage.Search.CommonFileQuery query, [out] [retval] Windows.Storage.Search.StorageFileQueryResult** value);
                HRESULT CreateFileQueryWithOptions([in] Windows.Storage.Search.QueryOptions* queryOptions, [out] [retval] Windows.Storage.Search.StorageFileQueryResult** value);
                [overload("CreateFolderQuery")] HRESULT CreateFolderQueryOverloadDefault([out] [retval] Windows.Storage.Search.StorageFolderQueryResult** value);
                [overload("CreateFolderQuery")] HRESULT CreateFolderQuery([in] Windows.Storage.Search.CommonFolderQuery query, [out] [retval] Windows.Storage.Search.StorageFolderQueryResult** value);
                HRESULT CreateFolderQueryWithOptions([in] Windows.Storage.Search.QueryOptions* queryOptions, [out] [retval] Windows.Storage.Search.StorageFolderQueryResult** value);
                HRESULT CreateItemQuery([out] [retval] Windows.Storage.Search.StorageItemQueryResult** value);
                HRESULT CreateItemQueryWithOptions([in] Windows.Storage.Search.QueryOptions* queryOptions, [out] [retval] Windows.Storage.Search.StorageItemQueryResult** value);
                [overload("GetFilesAsync")] HRESULT GetFilesAsync([in] Windows.Storage.Search.CommonFileQuery query, [in] UINT32 startIndex, [in] UINT32 maxItemsToRetrieve, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile*>*>** operation);
                [overload("GetFilesAsync")] HRESULT GetFilesAsyncOverloadDefaultStartAndCount([in] Windows.Storage.Search.CommonFileQuery query, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFile*>*>** operation);
                [overload("GetFoldersAsync")] HRESULT GetFoldersAsync([in] Windows.Storage.Search.CommonFolderQuery query, [in] UINT32 startIndex, [in] UINT32 maxItemsToRetrieve, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder*>*>** operation);
                [overload("GetFoldersAsync")] HRESULT GetFoldersAsyncOverloadDefaultStartAndCount([in] Windows.Storage.Search.CommonFolderQuery query, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder*>*>** operation);
                [overload("GetItemsAsync")] HRESULT GetItemsAsync([in] UINT32 startIndex, [in] UINT32 maxItemsToRetrieve, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>*>** operation);
                HRESULT AreQueryOptionsSupported([in] Windows.Storage.Search.QueryOptions* queryOptions, [out] [retval] boolean* value);
                HRESULT IsCommonFolderQuerySupported([in] Windows.Storage.Search.CommonFolderQuery query, [out] [retval] boolean* value);
                HRESULT IsCommonFileQuerySupported([in] Windows.Storage.Search.CommonFileQuery query, [out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.StorageFolderQueryResult)]
            [uuid(6654C911-7D66-46FA-AECF-E4A4BAA93AB8)]
            interface IStorageFolderQueryResult : IInspectable
                requires
                    Windows.Storage.Search.IStorageQueryResultBase
            {
                [overload("GetFoldersAsync")] HRESULT GetFoldersAsync([in] UINT32 startIndex, [in] UINT32 maxNumberOfItems, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder*>*>** operation);
                [overload("GetFoldersAsync")] HRESULT GetFoldersAsyncDefaultStartAndCount([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.StorageFolder*>*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.StorageItemQueryResult)]
            [uuid(E8948079-9D58-47B8-B2B2-41B07F4795F9)]
            interface IStorageItemQueryResult : IInspectable
                requires
                    Windows.Storage.Search.IStorageQueryResultBase
            {
                [overload("GetItemsAsync")] HRESULT GetItemsAsync([in] UINT32 startIndex, [in] UINT32 maxNumberOfItems, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>*>** operation);
                [overload("GetItemsAsync")] HRESULT GetItemsAsyncDefaultStartAndCount([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Storage.IStorageItem*>*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Storage.Search.StorageLibraryChangeTrackerTriggerDetails)]
            [uuid(1DC7A369-B7A3-4DF2-9D61-EBA85A0343D2)]
            interface IStorageLibraryChangeTrackerTriggerDetails : IInspectable
            {
                [propget] HRESULT Folder([out] [retval] Windows.Storage.StorageFolder** value);
                [propget] HRESULT ChangeTracker([out] [retval] Windows.Storage.StorageLibraryChangeTracker** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.StorageLibraryContentChangedTriggerDetails)]
            [uuid(2A371977-ABBF-4E1D-8AA5-6385D8884799)]
            interface IStorageLibraryContentChangedTriggerDetails : IInspectable
            {
                [propget] HRESULT Folder([out] [retval] Windows.Storage.StorageFolder** value);
                HRESULT CreateModifiedSinceQuery([in] Windows.Foundation.DateTime lastQueryTime, [out] [retval] Windows.Storage.Search.StorageItemQueryResult** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(C297D70D-7353-47AB-BA58-8C61425DC54B)]
            interface IStorageQueryResultBase : IInspectable
            {
                HRESULT GetItemCountAsync([out] [retval] Windows.Foundation.IAsyncOperation<UINT32>** operation);
                [propget] HRESULT Folder([out] [retval] Windows.Storage.StorageFolder** container);
                [eventadd] HRESULT ContentsChanged([in] Windows.Foundation.TypedEventHandler<Windows.Storage.Search.IStorageQueryResultBase*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT ContentsChanged([in] EventRegistrationToken eventCookie);
                [eventadd] HRESULT OptionsChanged([in] Windows.Foundation.TypedEventHandler<Windows.Storage.Search.IStorageQueryResultBase*, IInspectable*>* changedHandler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT OptionsChanged([in] EventRegistrationToken eventCookie);
                HRESULT FindStartIndexAsync([in] IInspectable* value, [out] [retval] Windows.Foundation.IAsyncOperation<UINT32>** operation);
                HRESULT GetCurrentQueryOptions([out] [retval] Windows.Storage.Search.QueryOptions** value);
                HRESULT ApplyNewQueryOptions([in] Windows.Storage.Search.QueryOptions* newQueryOptions);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Storage.Search.ValueAndLanguage)]
            [uuid(B9914881-A1EE-4BC4-92A5-466968E30436)]
            interface IValueAndLanguage : IInspectable
            {
                [propget] HRESULT Language([out] [retval] HSTRING* value);
                [propput] HRESULT Language([in] HSTRING value);
                [propget] HRESULT Value([out] [retval] IInspectable** value);
                [propput] HRESULT Value([in] IInspectable* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Storage.Search.IContentIndexerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass ContentIndexer
            {
                [default] interface Windows.Storage.Search.IContentIndexer;
                interface Windows.Storage.Search.IContentIndexerQueryOperations;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass ContentIndexerQuery
            {
                [default] interface Windows.Storage.Search.IContentIndexerQuery;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass IndexableContent
            {
                [default] interface Windows.Storage.Search.IIndexableContent;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Storage.Search.IQueryOptionsFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass QueryOptions
            {
                [default] interface Windows.Storage.Search.IQueryOptions;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.Search.IQueryOptionsWithProviderFilter;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass SortEntryVector
            {
                [default] interface Windows.Foundation.Collections.IVector<Windows.Storage.Search.SortEntry>;
                interface Windows.Foundation.Collections.IIterable<Windows.Storage.Search.SortEntry>;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass StorageFileQueryResult
            {
                [default] interface Windows.Storage.Search.IStorageFileQueryResult;
                interface Windows.Storage.Search.IStorageQueryResultBase;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Storage.Search.IStorageFileQueryResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass StorageFolderQueryResult
            {
                [default] interface Windows.Storage.Search.IStorageFolderQueryResult;
                interface Windows.Storage.Search.IStorageQueryResultBase;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass StorageItemQueryResult
            {
                [default] interface Windows.Storage.Search.IStorageItemQueryResult;
                interface Windows.Storage.Search.IStorageQueryResultBase;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            runtimeclass StorageLibraryChangeTrackerTriggerDetails
            {
                [default] interface Windows.Storage.Search.IStorageLibraryChangeTrackerTriggerDetails;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass StorageLibraryContentChangedTriggerDetails
            {
                [default] interface Windows.Storage.Search.IStorageLibraryContentChangedTriggerDetails;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass ValueAndLanguage
            {
                [default] interface Windows.Storage.Search.IValueAndLanguage;
            }
        }
    }
}
