//
// 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";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Globalization
    {
        namespace Collation
        {
            interface ICharacterGrouping;

            interface ICharacterGroupings;

            interface ICharacterGroupingsFactory;

            runtimeclass CharacterGrouping;

            runtimeclass CharacterGroupings;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Globalization
    {
        namespace Collation
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Globalization.Collation.CharacterGrouping*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Globalization.Collation.CharacterGrouping*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Globalization.Collation.CharacterGrouping*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Globalization
    {
        namespace Collation
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Globalization.Collation.CharacterGrouping)]
            [uuid(FAE761BB-805D-4BB0-95BB-C1F7C3E8EB8E)]
            interface ICharacterGrouping : IInspectable
            {
                [propget] HRESULT First([out] [retval] HSTRING* value);
                [propget] HRESULT Label([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Globalization.Collation.CharacterGroupings)]
            [uuid(B8D20A75-D4CF-4055-80E5-CE169C226496)]
            interface ICharacterGroupings : IInspectable
                requires
                    Windows.Foundation.Collections.IVectorView<Windows.Globalization.Collation.CharacterGrouping*>,
                    Windows.Foundation.Collections.IIterable<Windows.Globalization.Collation.CharacterGrouping*>
            {
                HRESULT Lookup([in] HSTRING text, [out] [retval] HSTRING* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Globalization.Collation.CharacterGroupings)]
            [uuid(99EA9FD9-886D-4401-9F98-69C82D4C2F78)]
            interface ICharacterGroupingsFactory : IInspectable
            {
                HRESULT Create([in] HSTRING language, [out] [retval] Windows.Globalization.Collation.CharacterGroupings** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass CharacterGrouping
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] [default] interface Windows.Globalization.Collation.ICharacterGrouping;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Globalization.Collation.ICharacterGroupingsFactory, Windows.Foundation.UniversalApiContract, 4.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CharacterGroupings
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] [default] interface Windows.Globalization.Collation.ICharacterGroupings;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Foundation.Collections.IVectorView<Windows.Globalization.Collation.CharacterGrouping*>;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Foundation.Collections.IIterable<Windows.Globalization.Collation.CharacterGrouping*>;
            }
        }
    }
}
