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

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Search
        {
            runtimeclass LocalContentSuggestionSettings;

            runtimeclass SearchQueryLinguisticDetails;

            runtimeclass SearchSuggestionsRequest;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Search
        {
            namespace Core
            {
                apicontract SearchCoreContract;

                typedef enum SearchSuggestionKind SearchSuggestionKind;

                interface IRequestingFocusOnKeyboardInputEventArgs;

                interface ISearchSuggestion;

                interface ISearchSuggestionManager;

                interface ISearchSuggestionsRequestedEventArgs;

                runtimeclass RequestingFocusOnKeyboardInputEventArgs;

                runtimeclass SearchSuggestion;

                runtimeclass SearchSuggestionManager;

                runtimeclass SearchSuggestionsRequestedEventArgs;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Search
        {
            namespace Core
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Search.Core.SearchSuggestion*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Search.Core.SearchSuggestion*>;

                    interface Windows.Foundation.Collections.IObservableVector<Windows.ApplicationModel.Search.Core.SearchSuggestion*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Search.Core.SearchSuggestion*>;

                    interface Windows.Foundation.Collections.IVector<Windows.ApplicationModel.Search.Core.SearchSuggestion*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Search.Core.SearchSuggestionManager*, Windows.ApplicationModel.Search.Core.RequestingFocusOnKeyboardInputEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Search.Core.SearchSuggestionManager*, Windows.ApplicationModel.Search.Core.SearchSuggestionsRequestedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Search
        {
            namespace Core
            {
                [contractversion(1.0)]
                apicontract SearchCoreContract
                {
                }

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                enum SearchSuggestionKind
                {
                    Query     = 0,
                    Result    = 1,
                    Separator = 2
                };

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Search.Core.RequestingFocusOnKeyboardInputEventArgs)]
                [uuid(A1195F27-B1A7-41A2-879D-6A68687E5985)]
                interface IRequestingFocusOnKeyboardInputEventArgs : IInspectable
                {
                }

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Search.Core.SearchSuggestion)]
                [uuid(5B5554B0-1527-437B-95C5-8D18D2B8AF55)]
                interface ISearchSuggestion : IInspectable
                {
                    [propget] HRESULT Kind([out] [retval] Windows.ApplicationModel.Search.Core.SearchSuggestionKind* value);
                    [propget] HRESULT Text([out] [retval] HSTRING* value);
                    [propget] HRESULT Tag([out] [retval] HSTRING* value);
                    [propget] HRESULT DetailText([out] [retval] HSTRING* value);
                    [propget] HRESULT Image([out] [retval] Windows.Storage.Streams.IRandomAccessStreamReference** value);
                    [propget] HRESULT ImageAlternateText([out] [retval] HSTRING* value);
                }

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Search.Core.SearchSuggestionManager)]
                [uuid(3F0C50A1-CB9D-497B-B500-3C04AC959AD2)]
                interface ISearchSuggestionManager : IInspectable
                {
                    [propget] HRESULT SearchHistoryEnabled([out] [retval] boolean* value);
                    [propput] HRESULT SearchHistoryEnabled([in] boolean value);
                    [propget] HRESULT SearchHistoryContext([out] [retval] HSTRING* value);
                    [propput] HRESULT SearchHistoryContext([in] HSTRING value);
                    HRESULT SetLocalContentSuggestionSettings([in] Windows.ApplicationModel.Search.LocalContentSuggestionSettings* settings);
                    [overload("SetQuery")] HRESULT SetQuery([in] HSTRING queryText);
                    [overload("SetQuery")] HRESULT SetQueryWithLanguage([in] HSTRING queryText, [in] HSTRING language);
                    [overload("SetQuery")] HRESULT SetQueryWithSearchQueryLinguisticDetails([in] HSTRING queryText, [in] HSTRING language, [in] Windows.ApplicationModel.Search.SearchQueryLinguisticDetails* linguisticDetails);
                    [propget] HRESULT Suggestions([out] [retval] Windows.Foundation.Collections.IObservableVector<Windows.ApplicationModel.Search.Core.SearchSuggestion*>** value);
                    [overload("AddToHistory")] HRESULT AddToHistory([in] HSTRING queryText);
                    [overload("AddToHistory")] HRESULT AddToHistoryWithLanguage([in] HSTRING queryText, [in] HSTRING language);
                    HRESULT ClearHistory();
                    [eventadd] HRESULT SuggestionsRequested([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Search.Core.SearchSuggestionManager*, Windows.ApplicationModel.Search.Core.SearchSuggestionsRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SuggestionsRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT RequestingFocusOnKeyboardInput([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.Search.Core.SearchSuggestionManager*, Windows.ApplicationModel.Search.Core.RequestingFocusOnKeyboardInputEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT RequestingFocusOnKeyboardInput([in] EventRegistrationToken token);
                }

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Search.Core.SearchSuggestionsRequestedEventArgs)]
                [uuid(6FD519E5-9E7E-4AB4-8BE3-C76B1BD4344A)]
                interface ISearchSuggestionsRequestedEventArgs : IInspectable
                {
                    [propget] HRESULT QueryText([out] [retval] HSTRING* value);
                    [propget] HRESULT Language([out] [retval] HSTRING* value);
                    [propget] HRESULT LinguisticDetails([out] [retval] Windows.ApplicationModel.Search.SearchQueryLinguisticDetails** value);
                    [propget] HRESULT Request([out] [retval] Windows.ApplicationModel.Search.SearchSuggestionsRequest** value);
                }

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass RequestingFocusOnKeyboardInputEventArgs
                {
                    [default] interface Windows.ApplicationModel.Search.Core.IRequestingFocusOnKeyboardInputEventArgs;
                }

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [marshaling_behavior(standard)]
                runtimeclass SearchSuggestion
                {
                    [default] interface Windows.ApplicationModel.Search.Core.ISearchSuggestion;
                }

                [activatable(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [marshaling_behavior(standard)]
                runtimeclass SearchSuggestionManager
                {
                    [default] interface Windows.ApplicationModel.Search.Core.ISearchSuggestionManager;
                }

                [contract(Windows.ApplicationModel.Search.Core.SearchCoreContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass SearchSuggestionsRequestedEventArgs
                {
                    [default] interface Windows.ApplicationModel.Search.Core.ISearchSuggestionsRequestedEventArgs;
                }
            }
        }
    }
}
