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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.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(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;
    }
}
namespace Windows
{
    namespace Globalization
    {
        typedef enum DayOfWeek DayOfWeek;

        interface IJapanesePhoneticAnalyzerStatics;

        interface IJapanesePhoneme;

        interface ICalendarIdentifiersStatics;

        interface IClockIdentifiersStatics;

        interface INumeralSystemIdentifiersStatics;

        interface ICurrencyIdentifiersStatics;

        interface IGeographicRegion;

        interface IGeographicRegionFactory;

        interface IGeographicRegionStatics;

        interface ILanguage;

        interface ILanguageExtensionSubtags;

        interface ILanguageFactory;

        interface ILanguageStatics;

        interface ICalendar;

        interface ICalendarFactory2;

        interface ITimeZoneOnCalendar;

        interface ICalendarFactory;

        interface IApplicationLanguagesStatics;

        runtimeclass JapanesePhoneme;

        runtimeclass JapanesePhoneticAnalyzer;

        runtimeclass CalendarIdentifiers;

        runtimeclass ClockIdentifiers;

        runtimeclass NumeralSystemIdentifiers;

        runtimeclass CurrencyIdentifiers;

        runtimeclass GeographicRegion;

        runtimeclass Language;

        runtimeclass Calendar;

        runtimeclass ApplicationLanguages;
    }
}

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

            interface Windows.Foundation.Collections.IIterable<Windows.Globalization.Language*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Globalization.JapanesePhoneme*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Globalization.Language*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Globalization.JapanesePhoneme*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Globalization.Language*>;

            interface Windows.Foundation.Collections.IVector<Windows.Globalization.Language*>;
        }
    }
}

// Type definition
namespace Windows
{
    namespace Globalization
    {
        [version(0x06020000)]
        enum DayOfWeek
        {
            Sunday    = 0,
            Monday    = 1,
            Tuesday   = 2,
            Wednesday = 3,
            Thursday  = 4,
            Friday    = 5,
            Saturday  = 6
        };

        [exclusiveto(Windows.Globalization.JapanesePhoneticAnalyzer)]
        [uuid(88AB9E90-93DE-41B2-B4D5-8EDB227FD1C2)]
        [version(0x06030000)]
        interface IJapanesePhoneticAnalyzerStatics : IInspectable
        {
            [overload("GetWords")] HRESULT GetWords([in] HSTRING input, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Globalization.JapanesePhoneme*>** result);
            [overload("GetWords")] HRESULT GetWordsWithMonoRubyOption([in] HSTRING input, [in] boolean monoRuby, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Globalization.JapanesePhoneme*>** result);
        }

        [exclusiveto(Windows.Globalization.JapanesePhoneme)]
        [uuid(2F6A9300-E85B-43E6-897D-5D82F862DF21)]
        [version(0x06030000)]
        interface IJapanesePhoneme : IInspectable
        {
            [propget] HRESULT DisplayText([out] [retval] HSTRING* value);
            [propget] HRESULT YomiText([out] [retval] HSTRING* value);
            [propget] HRESULT IsPhraseStart([out] [retval] boolean* value);
        }

        [exclusiveto(Windows.Globalization.CalendarIdentifiers)]
        [uuid(80653F68-2CB2-4C1F-B590-F0F52BF4FD1A)]
        [version(0x06020000)]
        interface ICalendarIdentifiersStatics : IInspectable
        {
            [propget] HRESULT Gregorian([out] [retval] HSTRING* value);
            [propget] HRESULT Hebrew([out] [retval] HSTRING* value);
            [propget] HRESULT Hijri([out] [retval] HSTRING* value);
            [propget] HRESULT Japanese([out] [retval] HSTRING* value);
            [propget] HRESULT Julian([out] [retval] HSTRING* value);
            [propget] HRESULT Korean([out] [retval] HSTRING* value);
            [propget] HRESULT Taiwan([out] [retval] HSTRING* value);
            [propget] HRESULT Thai([out] [retval] HSTRING* value);
            [propget] HRESULT UmAlQura([out] [retval] HSTRING* value);
        }

        [exclusiveto(Windows.Globalization.ClockIdentifiers)]
        [uuid(523805BB-12EC-4F83-BC31-B1B4376B0808)]
        [version(0x06020000)]
        interface IClockIdentifiersStatics : IInspectable
        {
            [propget] HRESULT TwelveHour([out] [retval] HSTRING* value);
            [propget] HRESULT TwentyFourHour([out] [retval] HSTRING* value);
        }

        [exclusiveto(Windows.Globalization.NumeralSystemIdentifiers)]
        [uuid(A5C662C3-68C9-4D3D-B765-972029E21DEC)]
        [version(0x06030000)]
        interface INumeralSystemIdentifiersStatics : IInspectable
        {
            [propget] HRESULT Arab([out] [retval] HSTRING* value);
            [propget] HRESULT ArabExt([out] [retval] HSTRING* value);
            [propget] HRESULT Bali([out] [retval] HSTRING* value);
            [propget] HRESULT Beng([out] [retval] HSTRING* value);
            [propget] HRESULT Cham([out] [retval] HSTRING* value);
            [propget] HRESULT Deva([out] [retval] HSTRING* value);
            [propget] HRESULT FullWide([out] [retval] HSTRING* value);
            [propget] HRESULT Gujr([out] [retval] HSTRING* value);
            [propget] HRESULT Guru([out] [retval] HSTRING* value);
            [propget] HRESULT HaniDec([out] [retval] HSTRING* value);
            [propget] HRESULT Java([out] [retval] HSTRING* value);
            [propget] HRESULT Kali([out] [retval] HSTRING* value);
            [propget] HRESULT Khmr([out] [retval] HSTRING* value);
            [propget] HRESULT Knda([out] [retval] HSTRING* value);
            [propget] HRESULT Lana([out] [retval] HSTRING* value);
            [propget] HRESULT LanaTham([out] [retval] HSTRING* value);
            [propget] HRESULT Laoo([out] [retval] HSTRING* value);
            [propget] HRESULT Latn([out] [retval] HSTRING* value);
            [propget] HRESULT Lepc([out] [retval] HSTRING* value);
            [propget] HRESULT Limb([out] [retval] HSTRING* value);
            [propget] HRESULT Mlym([out] [retval] HSTRING* value);
            [propget] HRESULT Mong([out] [retval] HSTRING* value);
            [propget] HRESULT Mtei([out] [retval] HSTRING* value);
            [propget] HRESULT Mymr([out] [retval] HSTRING* value);
            [propget] HRESULT MymrShan([out] [retval] HSTRING* value);
            [propget] HRESULT Nkoo([out] [retval] HSTRING* value);
            [propget] HRESULT Olck([out] [retval] HSTRING* value);
            [propget] HRESULT Orya([out] [retval] HSTRING* value);
            [propget] HRESULT Saur([out] [retval] HSTRING* value);
            [propget] HRESULT Sund([out] [retval] HSTRING* value);
            [propget] HRESULT Talu([out] [retval] HSTRING* value);
            [propget] HRESULT TamlDec([out] [retval] HSTRING* value);
            [propget] HRESULT Telu([out] [retval] HSTRING* value);
            [propget] HRESULT Thai([out] [retval] HSTRING* value);
            [propget] HRESULT Tibt([out] [retval] HSTRING* value);
            [propget] HRESULT Vaii([out] [retval] HSTRING* value);
        }

        [exclusiveto(Windows.Globalization.CurrencyIdentifiers)]
        [uuid(9F1D091B-D586-4913-9B6A-A9BD2DC12874)]
        [version(0x06030000)]
        interface ICurrencyIdentifiersStatics : IInspectable
        {
            [propget] HRESULT AED([out] [retval] HSTRING* value);
            [propget] HRESULT AFN([out] [retval] HSTRING* value);
            [propget] HRESULT ALL([out] [retval] HSTRING* value);
            [propget] HRESULT AMD([out] [retval] HSTRING* value);
            [propget] HRESULT ANG([out] [retval] HSTRING* value);
            [propget] HRESULT AOA([out] [retval] HSTRING* value);
            [propget] HRESULT ARS([out] [retval] HSTRING* value);
            [propget] HRESULT AUD([out] [retval] HSTRING* value);
            [propget] HRESULT AWG([out] [retval] HSTRING* value);
            [propget] HRESULT AZN([out] [retval] HSTRING* value);
            [propget] HRESULT BAM([out] [retval] HSTRING* value);
            [propget] HRESULT BBD([out] [retval] HSTRING* value);
            [propget] HRESULT BDT([out] [retval] HSTRING* value);
            [propget] HRESULT BGN([out] [retval] HSTRING* value);
            [propget] HRESULT BHD([out] [retval] HSTRING* value);
            [propget] HRESULT BIF([out] [retval] HSTRING* value);
            [propget] HRESULT BMD([out] [retval] HSTRING* value);
            [propget] HRESULT BND([out] [retval] HSTRING* value);
            [propget] HRESULT BOB([out] [retval] HSTRING* value);
            [propget] HRESULT BRL([out] [retval] HSTRING* value);
            [propget] HRESULT BSD([out] [retval] HSTRING* value);
            [propget] HRESULT BTN([out] [retval] HSTRING* value);
            [propget] HRESULT BWP([out] [retval] HSTRING* value);
            [propget] HRESULT BYR([out] [retval] HSTRING* value);
            [propget] HRESULT BZD([out] [retval] HSTRING* value);
            [propget] HRESULT CAD([out] [retval] HSTRING* value);
            [propget] HRESULT CDF([out] [retval] HSTRING* value);
            [propget] HRESULT CHF([out] [retval] HSTRING* value);
            [propget] HRESULT CLP([out] [retval] HSTRING* value);
            [propget] HRESULT CNY([out] [retval] HSTRING* value);
            [propget] HRESULT COP([out] [retval] HSTRING* value);
            [propget] HRESULT CRC([out] [retval] HSTRING* value);
            [propget] HRESULT CUP([out] [retval] HSTRING* value);
            [propget] HRESULT CVE([out] [retval] HSTRING* value);
            [propget] HRESULT CZK([out] [retval] HSTRING* value);
            [propget] HRESULT DJF([out] [retval] HSTRING* value);
            [propget] HRESULT DKK([out] [retval] HSTRING* value);
            [propget] HRESULT DOP([out] [retval] HSTRING* value);
            [propget] HRESULT DZD([out] [retval] HSTRING* value);
            [propget] HRESULT EGP([out] [retval] HSTRING* value);
            [propget] HRESULT ERN([out] [retval] HSTRING* value);
            [propget] HRESULT ETB([out] [retval] HSTRING* value);
            [propget] HRESULT EUR([out] [retval] HSTRING* value);
            [propget] HRESULT FJD([out] [retval] HSTRING* value);
            [propget] HRESULT FKP([out] [retval] HSTRING* value);
            [propget] HRESULT GBP([out] [retval] HSTRING* value);
            [propget] HRESULT GEL([out] [retval] HSTRING* value);
            [propget] HRESULT GHS([out] [retval] HSTRING* value);
            [propget] HRESULT GIP([out] [retval] HSTRING* value);
            [propget] HRESULT GMD([out] [retval] HSTRING* value);
            [propget] HRESULT GNF([out] [retval] HSTRING* value);
            [propget] HRESULT GTQ([out] [retval] HSTRING* value);
            [propget] HRESULT GYD([out] [retval] HSTRING* value);
            [propget] HRESULT HKD([out] [retval] HSTRING* value);
            [propget] HRESULT HNL([out] [retval] HSTRING* value);
            [propget] HRESULT HRK([out] [retval] HSTRING* value);
            [propget] HRESULT HTG([out] [retval] HSTRING* value);
            [propget] HRESULT HUF([out] [retval] HSTRING* value);
            [propget] HRESULT IDR([out] [retval] HSTRING* value);
            [propget] HRESULT ILS([out] [retval] HSTRING* value);
            [propget] HRESULT INR([out] [retval] HSTRING* value);
            [propget] HRESULT IQD([out] [retval] HSTRING* value);
            [propget] HRESULT IRR([out] [retval] HSTRING* value);
            [propget] HRESULT ISK([out] [retval] HSTRING* value);
            [propget] HRESULT JMD([out] [retval] HSTRING* value);
            [propget] HRESULT JOD([out] [retval] HSTRING* value);
            [propget] HRESULT JPY([out] [retval] HSTRING* value);
            [propget] HRESULT KES([out] [retval] HSTRING* value);
            [propget] HRESULT KGS([out] [retval] HSTRING* value);
            [propget] HRESULT KHR([out] [retval] HSTRING* value);
            [propget] HRESULT KMF([out] [retval] HSTRING* value);
            [propget] HRESULT KPW([out] [retval] HSTRING* value);
            [propget] HRESULT KRW([out] [retval] HSTRING* value);
            [propget] HRESULT KWD([out] [retval] HSTRING* value);
            [propget] HRESULT KYD([out] [retval] HSTRING* value);
            [propget] HRESULT KZT([out] [retval] HSTRING* value);
            [propget] HRESULT LAK([out] [retval] HSTRING* value);
            [propget] HRESULT LBP([out] [retval] HSTRING* value);
            [propget] HRESULT LKR([out] [retval] HSTRING* value);
            [propget] HRESULT LRD([out] [retval] HSTRING* value);
            [propget] HRESULT LSL([out] [retval] HSTRING* value);
            [propget] HRESULT LTL([out] [retval] HSTRING* value);
            [propget] HRESULT LVL([out] [retval] HSTRING* value);
            [propget] HRESULT LYD([out] [retval] HSTRING* value);
            [propget] HRESULT MAD([out] [retval] HSTRING* value);
            [propget] HRESULT MDL([out] [retval] HSTRING* value);
            [propget] HRESULT MGA([out] [retval] HSTRING* value);
            [propget] HRESULT MKD([out] [retval] HSTRING* value);
            [propget] HRESULT MMK([out] [retval] HSTRING* value);
            [propget] HRESULT MNT([out] [retval] HSTRING* value);
            [propget] HRESULT MOP([out] [retval] HSTRING* value);
            [propget] HRESULT MRO([out] [retval] HSTRING* value);
            [propget] HRESULT MUR([out] [retval] HSTRING* value);
            [propget] HRESULT MVR([out] [retval] HSTRING* value);
            [propget] HRESULT MWK([out] [retval] HSTRING* value);
            [propget] HRESULT MXN([out] [retval] HSTRING* value);
            [propget] HRESULT MYR([out] [retval] HSTRING* value);
            [propget] HRESULT MZN([out] [retval] HSTRING* value);
            [propget] HRESULT NAD([out] [retval] HSTRING* value);
            [propget] HRESULT NGN([out] [retval] HSTRING* value);
            [propget] HRESULT NIO([out] [retval] HSTRING* value);
            [propget] HRESULT NOK([out] [retval] HSTRING* value);
            [propget] HRESULT NPR([out] [retval] HSTRING* value);
            [propget] HRESULT NZD([out] [retval] HSTRING* value);
            [propget] HRESULT OMR([out] [retval] HSTRING* value);
            [propget] HRESULT PAB([out] [retval] HSTRING* value);
            [propget] HRESULT PEN([out] [retval] HSTRING* value);
            [propget] HRESULT PGK([out] [retval] HSTRING* value);
            [propget] HRESULT PHP([out] [retval] HSTRING* value);
            [propget] HRESULT PKR([out] [retval] HSTRING* value);
            [propget] HRESULT PLN([out] [retval] HSTRING* value);
            [propget] HRESULT PYG([out] [retval] HSTRING* value);
            [propget] HRESULT QAR([out] [retval] HSTRING* value);
            [propget] HRESULT RON([out] [retval] HSTRING* value);
            [propget] HRESULT RSD([out] [retval] HSTRING* value);
            [propget] HRESULT RUB([out] [retval] HSTRING* value);
            [propget] HRESULT RWF([out] [retval] HSTRING* value);
            [propget] HRESULT SAR([out] [retval] HSTRING* value);
            [propget] HRESULT SBD([out] [retval] HSTRING* value);
            [propget] HRESULT SCR([out] [retval] HSTRING* value);
            [propget] HRESULT SDG([out] [retval] HSTRING* value);
            [propget] HRESULT SEK([out] [retval] HSTRING* value);
            [propget] HRESULT SGD([out] [retval] HSTRING* value);
            [propget] HRESULT SHP([out] [retval] HSTRING* value);
            [propget] HRESULT SLL([out] [retval] HSTRING* value);
            [propget] HRESULT SOS([out] [retval] HSTRING* value);
            [propget] HRESULT SRD([out] [retval] HSTRING* value);
            [propget] HRESULT STD([out] [retval] HSTRING* value);
            [propget] HRESULT SYP([out] [retval] HSTRING* value);
            [propget] HRESULT SZL([out] [retval] HSTRING* value);
            [propget] HRESULT THB([out] [retval] HSTRING* value);
            [propget] HRESULT TJS([out] [retval] HSTRING* value);
            [propget] HRESULT TMT([out] [retval] HSTRING* value);
            [propget] HRESULT TND([out] [retval] HSTRING* value);
            [propget] HRESULT TOP([out] [retval] HSTRING* value);
            [propget] HRESULT TRY([out] [retval] HSTRING* value);
            [propget] HRESULT TTD([out] [retval] HSTRING* value);
            [propget] HRESULT TWD([out] [retval] HSTRING* value);
            [propget] HRESULT TZS([out] [retval] HSTRING* value);
            [propget] HRESULT UAH([out] [retval] HSTRING* value);
            [propget] HRESULT UGX([out] [retval] HSTRING* value);
            [propget] HRESULT USD([out] [retval] HSTRING* value);
            [propget] HRESULT UYU([out] [retval] HSTRING* value);
            [propget] HRESULT UZS([out] [retval] HSTRING* value);
            [propget] HRESULT VEF([out] [retval] HSTRING* value);
            [propget] HRESULT VND([out] [retval] HSTRING* value);
            [propget] HRESULT VUV([out] [retval] HSTRING* value);
            [propget] HRESULT WST([out] [retval] HSTRING* value);
            [propget] HRESULT XAF([out] [retval] HSTRING* value);
            [propget] HRESULT XCD([out] [retval] HSTRING* value);
            [propget] HRESULT XOF([out] [retval] HSTRING* value);
            [propget] HRESULT XPF([out] [retval] HSTRING* value);
            [propget] HRESULT XXX([out] [retval] HSTRING* value);
            [propget] HRESULT YER([out] [retval] HSTRING* value);
            [propget] HRESULT ZAR([out] [retval] HSTRING* value);
            [propget] HRESULT ZMW([out] [retval] HSTRING* value);
            [propget] HRESULT ZWL([out] [retval] HSTRING* value);
        }

        [exclusiveto(Windows.Globalization.GeographicRegion)]
        [uuid(01E9A621-4A64-4ED9-954F-9EDEB07BD903)]
        [version(0x06020000)]
        interface IGeographicRegion : IInspectable
        {
            [propget] HRESULT Code([out] [retval] HSTRING* value);
            [propget] HRESULT CodeTwoLetter([out] [retval] HSTRING* value);
            [propget] HRESULT CodeThreeLetter([out] [retval] HSTRING* value);
            [propget] HRESULT CodeThreeDigit([out] [retval] HSTRING* value);
            [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
            [propget] HRESULT NativeName([out] [retval] HSTRING* value);
            [propget] HRESULT CurrenciesInUse([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
        }

        [exclusiveto(Windows.Globalization.GeographicRegion)]
        [uuid(53425270-77B4-426B-859F-81E19D512546)]
        [version(0x06020000)]
        interface IGeographicRegionFactory : IInspectable
        {
            HRESULT CreateGeographicRegion([in] HSTRING geographicRegionCode, [out] [retval] Windows.Globalization.GeographicRegion** result);
        }

        [exclusiveto(Windows.Globalization.GeographicRegion)]
        [uuid(29E28974-7AD9-4EF4-8799-B3B44FADEC08)]
        [version(0x06020000)]
        interface IGeographicRegionStatics : IInspectable
        {
            HRESULT IsSupported([in] HSTRING geographicRegionCode, [out] [retval] boolean* result);
        }

        [exclusiveto(Windows.Globalization.Language)]
        [uuid(EA79A752-F7C2-4265-B1BD-C4DEC4E4F080)]
        [version(0x06020000)]
        interface ILanguage : IInspectable
        {
            [propget] HRESULT LanguageTag([out] [retval] HSTRING* value);
            [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
            [propget] HRESULT NativeName([out] [retval] HSTRING* value);
            [propget] HRESULT Script([out] [retval] HSTRING* value);
        }

        [exclusiveto(Windows.Globalization.Language)]
        [uuid(7D7DAF45-368D-4364-852B-DEC927037B85)]
        [version(0x06030000)]
        interface ILanguageExtensionSubtags : IInspectable
        {
            HRESULT GetExtensionSubtags([in] HSTRING singleton, [out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
        }

        [exclusiveto(Windows.Globalization.Language)]
        [uuid(9B0252AC-0C27-44F8-B792-9793FB66C63E)]
        [version(0x06020000)]
        interface ILanguageFactory : IInspectable
        {
            HRESULT CreateLanguage([in] HSTRING languageTag, [out] [retval] Windows.Globalization.Language** result);
        }

        [exclusiveto(Windows.Globalization.Language)]
        [uuid(B23CD557-0865-46D4-89B8-D59BE8990F0D)]
        [version(0x06020000)]
        interface ILanguageStatics : IInspectable
        {
            HRESULT IsWellFormed([in] HSTRING languageTag, [out] [retval] boolean* result);
            [propget] HRESULT CurrentInputMethodLanguageTag([out] [retval] HSTRING* value);
        }

        [exclusiveto(Windows.Globalization.Calendar)]
        [uuid(CA30221D-86D9-40FB-A26B-D44EB7CF08EA)]
        [version(0x06020000)]
        interface ICalendar : IInspectable
        {
            HRESULT Clone([out] [retval] Windows.Globalization.Calendar** value);
            HRESULT SetToMin();
            HRESULT SetToMax();
            [propget] HRESULT Languages([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
            [propget] HRESULT NumeralSystem([out] [retval] HSTRING* value);
            [propput] HRESULT NumeralSystem([in] HSTRING value);
            HRESULT GetCalendarSystem([out] [retval] HSTRING* value);
            HRESULT ChangeCalendarSystem([in] HSTRING value);
            HRESULT GetClock([out] [retval] HSTRING* value);
            HRESULT ChangeClock([in] HSTRING value);
            HRESULT GetDateTime([out] [retval] Windows.Foundation.DateTime* result);
            HRESULT SetDateTime([in] Windows.Foundation.DateTime value);
            HRESULT SetToNow();
            [propget] HRESULT FirstEra([out] [retval] INT32* value);
            [propget] HRESULT LastEra([out] [retval] INT32* value);
            [propget] HRESULT NumberOfEras([out] [retval] INT32* value);
            [propget] HRESULT Era([out] [retval] INT32* value);
            [propput] HRESULT Era([in] INT32 value);
            HRESULT AddEras([in] INT32 eras);
            [overload("EraAsString")] HRESULT EraAsFullString([out] [retval] HSTRING* result);
            [overload("EraAsString")] HRESULT EraAsString([in] INT32 idealLength, [out] [retval] HSTRING* result);
            [propget] HRESULT FirstYearInThisEra([out] [retval] INT32* value);
            [propget] HRESULT LastYearInThisEra([out] [retval] INT32* value);
            [propget] HRESULT NumberOfYearsInThisEra([out] [retval] INT32* value);
            [propget] HRESULT Year([out] [retval] INT32* value);
            [propput] HRESULT Year([in] INT32 value);
            HRESULT AddYears([in] INT32 years);
            HRESULT YearAsString([out] [retval] HSTRING* result);
            HRESULT YearAsTruncatedString([in] INT32 remainingDigits, [out] [retval] HSTRING* result);
            HRESULT YearAsPaddedString([in] INT32 minDigits, [out] [retval] HSTRING* result);
            [propget] HRESULT FirstMonthInThisYear([out] [retval] INT32* value);
            [propget] HRESULT LastMonthInThisYear([out] [retval] INT32* value);
            [propget] HRESULT NumberOfMonthsInThisYear([out] [retval] INT32* value);
            [propget] HRESULT Month([out] [retval] INT32* value);
            [propput] HRESULT Month([in] INT32 value);
            HRESULT AddMonths([in] INT32 months);
            [overload("MonthAsString")] HRESULT MonthAsFullString([out] [retval] HSTRING* result);
            [overload("MonthAsString")] HRESULT MonthAsString([in] INT32 idealLength, [out] [retval] HSTRING* result);
            [overload("MonthAsSoloString")] HRESULT MonthAsFullSoloString([out] [retval] HSTRING* result);
            [overload("MonthAsSoloString")] HRESULT MonthAsSoloString([in] INT32 idealLength, [out] [retval] HSTRING* result);
            HRESULT MonthAsNumericString([out] [retval] HSTRING* result);
            HRESULT MonthAsPaddedNumericString([in] INT32 minDigits, [out] [retval] HSTRING* result);
            HRESULT AddWeeks([in] INT32 weeks);
            [propget] HRESULT FirstDayInThisMonth([out] [retval] INT32* value);
            [propget] HRESULT LastDayInThisMonth([out] [retval] INT32* value);
            [propget] HRESULT NumberOfDaysInThisMonth([out] [retval] INT32* value);
            [propget] HRESULT Day([out] [retval] INT32* value);
            [propput] HRESULT Day([in] INT32 value);
            HRESULT AddDays([in] INT32 days);
            HRESULT DayAsString([out] [retval] HSTRING* result);
            HRESULT DayAsPaddedString([in] INT32 minDigits, [out] [retval] HSTRING* result);
            [propget] HRESULT DayOfWeek([out] [retval] Windows.Globalization.DayOfWeek* value);
            [overload("DayOfWeekAsString")] HRESULT DayOfWeekAsFullString([out] [retval] HSTRING* result);
            [overload("DayOfWeekAsString")] HRESULT DayOfWeekAsString([in] INT32 idealLength, [out] [retval] HSTRING* result);
            [overload("DayOfWeekAsSoloString")] HRESULT DayOfWeekAsFullSoloString([out] [retval] HSTRING* result);
            [overload("DayOfWeekAsSoloString")] HRESULT DayOfWeekAsSoloString([in] INT32 idealLength, [out] [retval] HSTRING* result);
            [propget] HRESULT FirstPeriodInThisDay([out] [retval] INT32* value);
            [propget] HRESULT LastPeriodInThisDay([out] [retval] INT32* value);
            [propget] HRESULT NumberOfPeriodsInThisDay([out] [retval] INT32* value);
            [propget] HRESULT Period([out] [retval] INT32* value);
            [propput] HRESULT Period([in] INT32 value);
            HRESULT AddPeriods([in] INT32 periods);
            [overload("PeriodAsString")] HRESULT PeriodAsFullString([out] [retval] HSTRING* result);
            [overload("PeriodAsString")] HRESULT PeriodAsString([in] INT32 idealLength, [out] [retval] HSTRING* result);
            [propget] HRESULT FirstHourInThisPeriod([out] [retval] INT32* value);
            [propget] HRESULT LastHourInThisPeriod([out] [retval] INT32* value);
            [propget] HRESULT NumberOfHoursInThisPeriod([out] [retval] INT32* value);
            [propget] HRESULT Hour([out] [retval] INT32* value);
            [propput] HRESULT Hour([in] INT32 value);
            HRESULT AddHours([in] INT32 hours);
            HRESULT HourAsString([out] [retval] HSTRING* result);
            HRESULT HourAsPaddedString([in] INT32 minDigits, [out] [retval] HSTRING* result);
            [propget] HRESULT Minute([out] [retval] INT32* value);
            [propput] HRESULT Minute([in] INT32 value);
            HRESULT AddMinutes([in] INT32 minutes);
            HRESULT MinuteAsString([out] [retval] HSTRING* result);
            HRESULT MinuteAsPaddedString([in] INT32 minDigits, [out] [retval] HSTRING* result);
            [propget] HRESULT Second([out] [retval] INT32* value);
            [propput] HRESULT Second([in] INT32 value);
            HRESULT AddSeconds([in] INT32 seconds);
            HRESULT SecondAsString([out] [retval] HSTRING* result);
            HRESULT SecondAsPaddedString([in] INT32 minDigits, [out] [retval] HSTRING* result);
            [propget] HRESULT Nanosecond([out] [retval] INT32* value);
            [propput] HRESULT Nanosecond([in] INT32 value);
            HRESULT AddNanoseconds([in] INT32 nanoseconds);
            HRESULT NanosecondAsString([out] [retval] HSTRING* result);
            HRESULT NanosecondAsPaddedString([in] INT32 minDigits, [out] [retval] HSTRING* result);
            HRESULT Compare([in] Windows.Globalization.Calendar* other, [out] [retval] INT32* result);
            HRESULT CompareDateTime([in] Windows.Foundation.DateTime other, [out] [retval] INT32* result);
            HRESULT CopyTo([in] Windows.Globalization.Calendar* other);
            [propget] HRESULT FirstMinuteInThisHour([out] [retval] INT32* value);
            [propget] HRESULT LastMinuteInThisHour([out] [retval] INT32* value);
            [propget] HRESULT NumberOfMinutesInThisHour([out] [retval] INT32* value);
            [propget] HRESULT FirstSecondInThisMinute([out] [retval] INT32* value);
            [propget] HRESULT LastSecondInThisMinute([out] [retval] INT32* value);
            [propget] HRESULT NumberOfSecondsInThisMinute([out] [retval] INT32* value);
            [propget] HRESULT ResolvedLanguage([out] [retval] HSTRING* value);
            [propget] HRESULT IsDaylightSavingTime([out] [retval] boolean* value);
        }

        [exclusiveto(Windows.Globalization.Calendar)]
        [uuid(B44B378C-CA7E-4590-9E72-EA2BEC1A5115)]
        [version(0x06030000)]
        interface ICalendarFactory2 : IInspectable
        {
            HRESULT CreateCalendarWithTimeZone([in] Windows.Foundation.Collections.IIterable<HSTRING>* languages, [in] HSTRING calendar, [in] HSTRING clock, [in] HSTRING timeZoneId, [out] [retval] Windows.Globalization.Calendar** result);
        }

        [exclusiveto(Windows.Globalization.Calendar)]
        [uuid(BB3C25E5-46CF-4317-A3F5-02621AD54478)]
        [version(0x06030000)]
        interface ITimeZoneOnCalendar : IInspectable
        {
            HRESULT GetTimeZone([out] [retval] HSTRING* value);
            HRESULT ChangeTimeZone([in] HSTRING timeZoneId);
            [overload("TimeZoneAsString")] HRESULT TimeZoneAsFullString([out] [retval] HSTRING* result);
            [overload("TimeZoneAsString")] HRESULT TimeZoneAsString([in] INT32 idealLength, [out] [retval] HSTRING* result);
        }

        [exclusiveto(Windows.Globalization.Calendar)]
        [uuid(83F58412-E56B-4C75-A66E-0F63D57758A6)]
        [version(0x06020000)]
        interface ICalendarFactory : IInspectable
        {
            HRESULT CreateCalendarDefaultCalendarAndClock([in] Windows.Foundation.Collections.IIterable<HSTRING>* languages, [out] [retval] Windows.Globalization.Calendar** result);
            HRESULT CreateCalendar([in] Windows.Foundation.Collections.IIterable<HSTRING>* languages, [in] HSTRING calendar, [in] HSTRING clock, [out] [retval] Windows.Globalization.Calendar** result);
        }

        [exclusiveto(Windows.Globalization.ApplicationLanguages)]
        [uuid(75B40847-0A4C-4A92-9565-FD63C95F7AED)]
        [version(0x06020000)]
        interface IApplicationLanguagesStatics : IInspectable
        {
            [propget] HRESULT PrimaryLanguageOverride([out] [retval] HSTRING* value);
            [propput] HRESULT PrimaryLanguageOverride([in] HSTRING value);
            [propget] HRESULT Languages([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
            [propget] HRESULT ManifestLanguages([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
        }

        [marshaling_behavior(standard)]
        [threading(sta)]
        [version(0x06030000)]
        runtimeclass JapanesePhoneme
        {
            [default] interface Windows.Globalization.IJapanesePhoneme;
        }

        [marshaling_behavior(standard)]
        [static(Windows.Globalization.IJapanesePhoneticAnalyzerStatics, 0x06030000)]
        [threading(sta)]
        [version(0x06030000)]
        runtimeclass JapanesePhoneticAnalyzer
        {
        }

        [marshaling_behavior(agile)]
        [static(Windows.Globalization.ICalendarIdentifiersStatics, 0x06020000)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass CalendarIdentifiers
        {
        }

        [marshaling_behavior(agile)]
        [static(Windows.Globalization.IClockIdentifiersStatics, 0x06020000)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass ClockIdentifiers
        {
        }

        [marshaling_behavior(agile)]
        [static(Windows.Globalization.INumeralSystemIdentifiersStatics, 0x06030000)]
        [threading(both)]
        [version(0x06030000)]
        runtimeclass NumeralSystemIdentifiers
        {
        }

        [marshaling_behavior(agile)]
        [static(Windows.Globalization.ICurrencyIdentifiersStatics, 0x06030000)]
        [threading(both)]
        [version(0x06030000)]
        runtimeclass CurrencyIdentifiers
        {
        }

        [activatable(Windows.Globalization.IGeographicRegionFactory, 0x06020000)]
        [activatable(0x06020000)]
        [marshaling_behavior(agile)]
        [static(Windows.Globalization.IGeographicRegionStatics, 0x06020000)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass GeographicRegion
        {
            [default] [version(0x06020000)] interface Windows.Globalization.IGeographicRegion;
        }

        [activatable(Windows.Globalization.ILanguageFactory, 0x06020000)]
        [marshaling_behavior(agile)]
        [static(Windows.Globalization.ILanguageStatics, 0x06020000)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass Language
        {
            [default] [version(0x06020000)] interface Windows.Globalization.ILanguage;
            [version(0x06030000)] interface Windows.Globalization.ILanguageExtensionSubtags;
        }

        [activatable(Windows.Globalization.ICalendarFactory, 0x06020000)]
        [activatable(Windows.Globalization.ICalendarFactory2, 0x06030000)]
        [activatable(0x06020000)]
        [marshaling_behavior(agile)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass Calendar
        {
            [default] [version(0x06020000)] interface Windows.Globalization.ICalendar;
            [version(0x06030000)] interface Windows.Globalization.ITimeZoneOnCalendar;
        }

        [marshaling_behavior(agile)]
        [static(Windows.Globalization.IApplicationLanguagesStatics, 0x06020000)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass ApplicationLanguages
        {
        }
    }
}
