// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.250303.1

#pragma once
#ifndef WINRT_Microsoft_Graphics_Canvas_Text_0_H
#define WINRT_Microsoft_Graphics_Canvas_Text_0_H
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas
{
    enum class CanvasAntialiasing : int32_t;
    struct CanvasDevice;
    struct CanvasDrawingSession;
    struct ICanvasResourceCreator;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Brushes
{
    struct ICanvasBrush;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct Rect;
    struct Size;
    struct Uri;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
{
    template <typename K, typename V> struct WINRT_IMPL_EMPTY_BASES IKeyValuePair;
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IVectorView;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Numerics
{
}
WINRT_EXPORT namespace winrt::Windows::UI
{
    struct Color;
}
WINRT_EXPORT namespace winrt::Windows::UI::Text
{
    enum class FontStretch : int32_t;
    enum class FontStyle : int32_t;
    struct FontWeight;
}
WINRT_EXPORT namespace winrt::Microsoft::Graphics::Canvas::Text
{
    enum class CanvasClusterProperties : uint32_t
    {
        None = 0,
        CanWrapLineAfter = 0x1,
        Whitespace = 0x2,
        Newline = 0x4,
        SoftHyphen = 0x8,
        RightToLeft = 0x10,
    };
    enum class CanvasDrawTextOptions : uint32_t
    {
        Default = 0,
        NoPixelSnap = 0x1,
        Clip = 0x2,
        EnableColorFont = 0x4,
    };
    enum class CanvasFontFileFormatType : int32_t
    {
        Cff = 0,
        TrueType = 1,
        TrueTypeCollection = 2,
        Type1 = 3,
        Vector = 4,
        Bitmap = 5,
        Unknown = 6,
        RawCff = 7,
    };
    enum class CanvasFontInformation : int32_t
    {
        None = 0,
        CopyrightNotice = 1,
        VersionStrings = 2,
        Trademark = 3,
        Manufacturer = 4,
        Designer = 5,
        DesignerUrl = 6,
        Description = 7,
        FontVendorUrl = 8,
        LicenseDescription = 9,
        LicenseInfoUrl = 10,
        Win32FamilyNames = 11,
        Win32SubfamilyNames = 12,
        PreferredFamilyNames = 13,
        PreferredSubfamilyNames = 14,
        SampleText = 15,
        FullName = 16,
        PostscriptName = 17,
        PostscriptCidName = 18,
        WwsFamilyName = 19,
        DesignScriptLanguageTag = 20,
        SupportedScriptLanguageTag = 21,
    };
    enum class CanvasFontPropertyIdentifier : int32_t
    {
        None = 0,
        FamilyName = 1,
        PreferredFamilyName = 2,
        FaceName = 3,
        FullName = 4,
        Win32FamilyName = 5,
        PostscriptName = 6,
        DesignScriptLanguageTag = 7,
        SupportedScriptLanguageTag = 8,
        SemanticTag = 9,
        Weight = 10,
        Stretch = 11,
        Style = 12,
        Total = 13,
    };
    enum class CanvasFontSimulations : uint32_t
    {
        None = 0,
        Bold = 0x1,
        Oblique = 0x2,
    };
    enum class CanvasGlyphJustification : int32_t
    {
        None = 0,
        ArabicBlank = 1,
        Character = 2,
        Blank = 4,
        ArabicNormal = 7,
        ArabicKashida = 8,
        ArabicAlef = 9,
        ArabicHa = 10,
        ArabicRa = 11,
        ArabicBa = 12,
        ArabicBara = 13,
        ArabicSeen = 14,
        ArabicSeenM = 15,
    };
    enum class CanvasGlyphOrientation : int32_t
    {
        Upright = 0,
        Clockwise90Degrees = 1,
        Clockwise180Degrees = 2,
        Clockwise270Degrees = 3,
    };
    enum class CanvasHorizontalAlignment : int32_t
    {
        Left = 0,
        Right = 1,
        Center = 2,
        Justified = 3,
    };
    enum class CanvasLineBreakCondition : int32_t
    {
        Neutral = 0,
        CanBreak = 1,
        CannotBreak = 2,
        MustBreak = 3,
    };
    enum class CanvasLineSpacingMode : int32_t
    {
        Default = 0,
        Uniform = 1,
        Proportional = 2,
    };
    enum class CanvasNumberSubstitutionMethod : int32_t
    {
        FromCulture = 0,
        Contextual = 1,
        Disabled = 2,
        National = 3,
        Traditional = 4,
    };
    enum class CanvasOpticalAlignment : int32_t
    {
        Default = 0,
        NoSideBearings = 1,
    };
    enum class CanvasScriptShape : int32_t
    {
        Default = 0,
        NoVisual = 1,
    };
    enum class CanvasTextAntialiasing : int32_t
    {
        Auto = 0,
        ClearType = 1,
        Grayscale = 2,
        Aliased = 3,
    };
    enum class CanvasTextDirection : int32_t
    {
        LeftToRightThenTopToBottom = 0,
        RightToLeftThenTopToBottom = 1,
        LeftToRightThenBottomToTop = 2,
        RightToLeftThenBottomToTop = 3,
        TopToBottomThenLeftToRight = 4,
        BottomToTopThenLeftToRight = 5,
        TopToBottomThenRightToLeft = 6,
        BottomToTopThenRightToLeft = 7,
    };
    enum class CanvasTextGridFit : int32_t
    {
        Default = 0,
        Disable = 1,
        Enable = 2,
    };
    enum class CanvasTextMeasuringMode : int32_t
    {
        Natural = 0,
        GdiClassic = 1,
        GdiNatural = 2,
    };
    enum class CanvasTextRenderingMode : int32_t
    {
        Default = 0,
        Aliased = 1,
        GdiClassic = 2,
        GdiNatural = 3,
        Natural = 4,
        NaturalSymmetric = 5,
        Outline = 6,
        NaturalSymmetricDownsampled = 7,
    };
    enum class CanvasTextTrimmingGranularity : int32_t
    {
        None = 0,
        Character = 1,
        Word = 2,
    };
    enum class CanvasTrimmingSign : int32_t
    {
        None = 0,
        Ellipsis = 1,
    };
    enum class CanvasTypographyFeatureName : int32_t
    {
        None = 0,
        Default = 1953261156,
        VerticalWriting = 1953654134,
        VerticalAlternatesAndRotation = 846492278,
        AlternativeFractions = 1668441697,
        PetiteCapitalsFromCapitals = 1668297315,
        SmallCapitalsFromCapitals = 1668493923,
        ContextualAlternates = 1953259875,
        CaseSensitiveForms = 1702060387,
        GlyphCompositionDecomposition = 1886217059,
        ContextualLigatures = 1734962275,
        CapitalSpacing = 1886613603,
        ContextualSwash = 1752658787,
        CursivePositioning = 1936880995,
        DiscretionaryLigatures = 1734962276,
        ExpertForms = 1953527909,
        Fractions = 1667330662,
        FullWidth = 1684633446,
        HalfForms = 1718378856,
        HalantForms = 1852596584,
        AlternateHalfWidth = 1953259880,
        HistoricalForms = 1953720680,
        HorizontalKanaAlternates = 1634626408,
        HistoricalLigatures = 1734962280,
        HalfWidth = 1684633448,
        HojoKanjiForms = 1869246312,
        Jis04Forms = 875589738,
        Jis78Forms = 943157354,
        Jis83Forms = 859336810,
        Jis90Forms = 809070698,
        Kerning = 1852990827,
        StandardLigatures = 1634167148,
        LiningFigures = 1836412524,
        LocalizedForms = 1818455916,
        MarkPositioning = 1802658157,
        MathematicalGreek = 1802659693,
        MarkToMarkPositioning = 1802333037,
        AlternateAnnotationForms = 1953259886,
        NlcKanjiForms = 1801677934,
        OldStyleFigures = 1836412527,
        Ordinals = 1852076655,
        ProportionalAlternateWidth = 1953259888,
        PetiteCapitals = 1885430640,
        ProportionalFigures = 1836412528,
        ProportionalWidths = 1684633456,
        QuarterWidths = 1684633457,
        RequiredLigatures = 1734962290,
        RubyNotationForms = 2036495730,
        StylisticAlternates = 1953259891,
        ScientificInferiors = 1718511987,
        SmallCapitals = 1885564275,
        SimplifiedForms = 1819307379,
        StylisticSet1 = 825258867,
        StylisticSet2 = 842036083,
        StylisticSet3 = 858813299,
        StylisticSet4 = 875590515,
        StylisticSet5 = 892367731,
        StylisticSet6 = 909144947,
        StylisticSet7 = 925922163,
        StylisticSet8 = 942699379,
        StylisticSet9 = 959476595,
        StylisticSet10 = 808547187,
        StylisticSet11 = 825324403,
        StylisticSet12 = 842101619,
        StylisticSet13 = 858878835,
        StylisticSet14 = 875656051,
        StylisticSet15 = 892433267,
        StylisticSet16 = 909210483,
        StylisticSet17 = 925987699,
        StylisticSet18 = 942764915,
        StylisticSet19 = 959542131,
        StylisticSet20 = 808612723,
        Subscript = 1935832435,
        Superscript = 1936749939,
        Swash = 1752397683,
        Titling = 1819568500,
        TraditionalNameForms = 1835101812,
        TabularFigures = 1836412532,
        TraditionalForms = 1684107892,
        ThirdWidths = 1684633460,
        Unicase = 1667853941,
        SlashedZero = 1869768058,
    };
    enum class CanvasVerticalAlignment : int32_t
    {
        Top = 0,
        Bottom = 1,
        Center = 2,
    };
    enum class CanvasVerticalGlyphOrientation : int32_t
    {
        Default = 0,
        Stacked = 1,
    };
    enum class CanvasWordWrapping : int32_t
    {
        Wrap = 0,
        NoWrap = 1,
        EmergencyBreak = 2,
        WholeWord = 3,
        Character = 4,
    };
    struct ICanvasFontFace;
    struct ICanvasFontSet;
    struct ICanvasFontSetFactory;
    struct ICanvasFontSetStatics;
    struct ICanvasNumberSubstitution;
    struct ICanvasNumberSubstitutionFactory;
    struct ICanvasScaledFont;
    struct ICanvasTextAnalyzer;
    struct ICanvasTextAnalyzerFactory;
    struct ICanvasTextAnalyzerOptions;
    struct ICanvasTextFormat;
    struct ICanvasTextFormatStatics;
    struct ICanvasTextInlineObject;
    struct ICanvasTextLayout;
    struct ICanvasTextLayoutFactory;
    struct ICanvasTextLayoutStatics;
    struct ICanvasTextRenderer;
    struct ICanvasTextRenderingParameters;
    struct ICanvasTextRenderingParametersFactory;
    struct ICanvasTypography;
    struct CanvasFontFace;
    struct CanvasFontSet;
    struct CanvasNumberSubstitution;
    struct CanvasScaledFont;
    struct CanvasTextAnalyzer;
    struct CanvasTextFormat;
    struct CanvasTextLayout;
    struct CanvasTextRenderingParameters;
    struct CanvasTypography;
    struct CanvasAnalyzedBidi;
    struct CanvasAnalyzedBreakpoint;
    struct CanvasAnalyzedGlyphOrientation;
    struct CanvasAnalyzedScript;
    struct CanvasCharacterRange;
    struct CanvasClusterMetrics;
    struct CanvasFontProperty;
    struct CanvasGlyph;
    struct CanvasGlyphMetrics;
    struct CanvasGlyphShaping;
    struct CanvasJustificationOpportunity;
    struct CanvasLineMetrics;
    struct CanvasScriptProperties;
    struct CanvasTextLayoutRegion;
    struct CanvasTypographyFeature;
    struct CanvasUnicodeRange;
}
namespace winrt::impl
{
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontFace>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSet>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitution>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitutionFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasScaledFont>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzer>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerOptions>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormat>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormatStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayout>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParameters>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParametersFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTypography>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontSet>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitution>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasScaledFont>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextAnalyzer>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayout>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingParameters>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypography>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasClusterProperties>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasDrawTextOptions>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFileFormatType>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontInformation>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontPropertyIdentifier>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontSimulations>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphJustification>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasHorizontalAlignment>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasLineBreakCondition>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasLineSpacingMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitutionMethod>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasOpticalAlignment>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasScriptShape>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextAntialiasing>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextGridFit>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextTrimmingGranularity>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTrimmingSign>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeatureName>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalAlignment>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalGlyphOrientation>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasWordWrapping>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedBidi>{ using type = struct_category<uint32_t, uint32_t>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedBreakpoint>{ using type = struct_category<winrt::Microsoft::Graphics::Canvas::Text::CanvasLineBreakCondition, winrt::Microsoft::Graphics::Canvas::Text::CanvasLineBreakCondition, bool, bool>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedGlyphOrientation>{ using type = struct_category<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation, uint32_t, bool, bool>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript>{ using type = struct_category<int32_t, winrt::Microsoft::Graphics::Canvas::Text::CanvasScriptShape>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasCharacterRange>{ using type = struct_category<int32_t, int32_t>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasClusterMetrics>{ using type = struct_category<int32_t, float, winrt::Microsoft::Graphics::Canvas::Text::CanvasClusterProperties>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontProperty>{ using type = struct_category<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontPropertyIdentifier, hstring, hstring>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph>{ using type = struct_category<int32_t, float, float, float>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphMetrics>{ using type = struct_category<float, float, float, float, float, float, float, winrt::Windows::Foundation::Rect>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphShaping>{ using type = struct_category<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphJustification, bool, bool, bool>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasJustificationOpportunity>{ using type = struct_category<float, float, float, uint8_t, uint8_t, bool, bool, bool, bool>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasLineMetrics>{ using type = struct_category<int32_t, int32_t, int32_t, float, float, bool, float, float>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasScriptProperties>{ using type = struct_category<hstring, int32_t, int32_t, hstring, bool, bool, bool, bool, bool, bool, bool>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion>{ using type = struct_category<int32_t, int32_t, winrt::Windows::Foundation::Rect>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeature>{ using type = struct_category<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeatureName, uint32_t>; };
    template <> struct category<winrt::Microsoft::Graphics::Canvas::Text::CanvasUnicodeRange>{ using type = struct_category<uint32_t, uint32_t>; };
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace> = L"Microsoft.Graphics.Canvas.Text.CanvasFontFace";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontSet> = L"Microsoft.Graphics.Canvas.Text.CanvasFontSet";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitution> = L"Microsoft.Graphics.Canvas.Text.CanvasNumberSubstitution";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasScaledFont> = L"Microsoft.Graphics.Canvas.Text.CanvasScaledFont";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextAnalyzer> = L"Microsoft.Graphics.Canvas.Text.CanvasTextAnalyzer";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat> = L"Microsoft.Graphics.Canvas.Text.CanvasTextFormat";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayout> = L"Microsoft.Graphics.Canvas.Text.CanvasTextLayout";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingParameters> = L"Microsoft.Graphics.Canvas.Text.CanvasTextRenderingParameters";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypography> = L"Microsoft.Graphics.Canvas.Text.CanvasTypography";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasClusterProperties> = L"Microsoft.Graphics.Canvas.Text.CanvasClusterProperties";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasDrawTextOptions> = L"Microsoft.Graphics.Canvas.Text.CanvasDrawTextOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFileFormatType> = L"Microsoft.Graphics.Canvas.Text.CanvasFontFileFormatType";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontInformation> = L"Microsoft.Graphics.Canvas.Text.CanvasFontInformation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontPropertyIdentifier> = L"Microsoft.Graphics.Canvas.Text.CanvasFontPropertyIdentifier";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontSimulations> = L"Microsoft.Graphics.Canvas.Text.CanvasFontSimulations";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphJustification> = L"Microsoft.Graphics.Canvas.Text.CanvasGlyphJustification";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation> = L"Microsoft.Graphics.Canvas.Text.CanvasGlyphOrientation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasHorizontalAlignment> = L"Microsoft.Graphics.Canvas.Text.CanvasHorizontalAlignment";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasLineBreakCondition> = L"Microsoft.Graphics.Canvas.Text.CanvasLineBreakCondition";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasLineSpacingMode> = L"Microsoft.Graphics.Canvas.Text.CanvasLineSpacingMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitutionMethod> = L"Microsoft.Graphics.Canvas.Text.CanvasNumberSubstitutionMethod";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasOpticalAlignment> = L"Microsoft.Graphics.Canvas.Text.CanvasOpticalAlignment";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasScriptShape> = L"Microsoft.Graphics.Canvas.Text.CanvasScriptShape";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextAntialiasing> = L"Microsoft.Graphics.Canvas.Text.CanvasTextAntialiasing";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection> = L"Microsoft.Graphics.Canvas.Text.CanvasTextDirection";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextGridFit> = L"Microsoft.Graphics.Canvas.Text.CanvasTextGridFit";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode> = L"Microsoft.Graphics.Canvas.Text.CanvasTextMeasuringMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingMode> = L"Microsoft.Graphics.Canvas.Text.CanvasTextRenderingMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextTrimmingGranularity> = L"Microsoft.Graphics.Canvas.Text.CanvasTextTrimmingGranularity";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTrimmingSign> = L"Microsoft.Graphics.Canvas.Text.CanvasTrimmingSign";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeatureName> = L"Microsoft.Graphics.Canvas.Text.CanvasTypographyFeatureName";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalAlignment> = L"Microsoft.Graphics.Canvas.Text.CanvasVerticalAlignment";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalGlyphOrientation> = L"Microsoft.Graphics.Canvas.Text.CanvasVerticalGlyphOrientation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasWordWrapping> = L"Microsoft.Graphics.Canvas.Text.CanvasWordWrapping";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedBidi> = L"Microsoft.Graphics.Canvas.Text.CanvasAnalyzedBidi";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedBreakpoint> = L"Microsoft.Graphics.Canvas.Text.CanvasAnalyzedBreakpoint";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedGlyphOrientation> = L"Microsoft.Graphics.Canvas.Text.CanvasAnalyzedGlyphOrientation";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript> = L"Microsoft.Graphics.Canvas.Text.CanvasAnalyzedScript";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasCharacterRange> = L"Microsoft.Graphics.Canvas.Text.CanvasCharacterRange";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasClusterMetrics> = L"Microsoft.Graphics.Canvas.Text.CanvasClusterMetrics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontProperty> = L"Microsoft.Graphics.Canvas.Text.CanvasFontProperty";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph> = L"Microsoft.Graphics.Canvas.Text.CanvasGlyph";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphMetrics> = L"Microsoft.Graphics.Canvas.Text.CanvasGlyphMetrics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphShaping> = L"Microsoft.Graphics.Canvas.Text.CanvasGlyphShaping";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasJustificationOpportunity> = L"Microsoft.Graphics.Canvas.Text.CanvasJustificationOpportunity";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasLineMetrics> = L"Microsoft.Graphics.Canvas.Text.CanvasLineMetrics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasScriptProperties> = L"Microsoft.Graphics.Canvas.Text.CanvasScriptProperties";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion> = L"Microsoft.Graphics.Canvas.Text.CanvasTextLayoutRegion";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeature> = L"Microsoft.Graphics.Canvas.Text.CanvasTypographyFeature";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::CanvasUnicodeRange> = L"Microsoft.Graphics.Canvas.Text.CanvasUnicodeRange";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontFace> = L"Microsoft.Graphics.Canvas.Text.ICanvasFontFace";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSet> = L"Microsoft.Graphics.Canvas.Text.ICanvasFontSet";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetFactory> = L"Microsoft.Graphics.Canvas.Text.ICanvasFontSetFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetStatics> = L"Microsoft.Graphics.Canvas.Text.ICanvasFontSetStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitution> = L"Microsoft.Graphics.Canvas.Text.ICanvasNumberSubstitution";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitutionFactory> = L"Microsoft.Graphics.Canvas.Text.ICanvasNumberSubstitutionFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasScaledFont> = L"Microsoft.Graphics.Canvas.Text.ICanvasScaledFont";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzer> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextAnalyzer";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerFactory> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextAnalyzerFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerOptions> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextAnalyzerOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormat> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextFormat";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormatStatics> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextFormatStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextInlineObject";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayout> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextLayout";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutFactory> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextLayoutFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutStatics> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextLayoutStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextRenderer";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParameters> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextRenderingParameters";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParametersFactory> = L"Microsoft.Graphics.Canvas.Text.ICanvasTextRenderingParametersFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTypography> = L"Microsoft.Graphics.Canvas.Text.ICanvasTypography";
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontFace>{ 0x5199D129,0x4EF9,0x4DEE,{ 0xB7,0x4C,0x4D,0xC9,0x10,0x20,0x1A,0x7F } }; // 5199D129-4EF9-4DEE-B74C-4DC910201A7F
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSet>{ 0x0A5BFB92,0x1F3C,0x459F,{ 0x9D,0x7E,0xA6,0x28,0x9D,0xD0,0x93,0xC0 } }; // 0A5BFB92-1F3C-459F-9D7E-A6289DD093C0
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetFactory>{ 0x3C9C9BDA,0x70F9,0x4FF9,{ 0xAA,0xB2,0x3B,0x42,0x92,0x32,0x86,0xEE } }; // 3C9C9BDA-70F9-4FF9-AAB2-3B42923286EE
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetStatics>{ 0x5F4275CE,0xBCFA,0x48C5,{ 0x9E,0x67,0xFB,0xE9,0x86,0x6D,0x49,0x24 } }; // 5F4275CE-BCFA-48C5-9E67-FBE9866D4924
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitution>{ 0xC81A67AD,0x0639,0x4F8F,{ 0x87,0x8B,0xD9,0x37,0xF8,0xA1,0x42,0x93 } }; // C81A67AD-0639-4F8F-878B-D937F8A14293
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitutionFactory>{ 0x7496A822,0xC781,0x4EB0,{ 0xAA,0xFB,0xC0,0x78,0xE7,0xFA,0x8E,0x24 } }; // 7496A822-C781-4EB0-AAFB-C078E7FA8E24
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasScaledFont>{ 0xBBC4F8D2,0xEB2B,0x45F1,{ 0xAC,0x2A,0xCF,0xC1,0xF5,0x98,0xBA,0xE3 } }; // BBC4F8D2-EB2B-45F1-AC2A-CFC1F598BAE3
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzer>{ 0x4298F3D1,0x645B,0x40E3,{ 0xB9,0x1B,0x81,0x98,0x6D,0x76,0x7F,0xC0 } }; // 4298F3D1-645B-40E3-B91B-81986D767FC0
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerFactory>{ 0x521E433F,0xF698,0x44C0,{ 0x8D,0x7F,0xFE,0x37,0x4F,0xE5,0x39,0xE1 } }; // 521E433F-F698-44C0-8D7F-FE374FE539E1
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerOptions>{ 0x31F2406A,0x8C5F,0x4E12,{ 0x8B,0xD6,0xCF,0xBB,0xC7,0x21,0x4D,0x02 } }; // 31F2406A-8C5F-4E12-8BD6-CFBBC7214D02
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormat>{ 0xAF61BFDC,0xEABB,0x4D38,{ 0xBA,0x1B,0xAF,0xB3,0x40,0x61,0x2D,0x33 } }; // AF61BFDC-EABB-4D38-BA1B-AFB340612D33
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormatStatics>{ 0x8A927515,0x33FC,0x4C92,{ 0xA6,0xAA,0x94,0xA8,0xF2,0x9C,0x14,0x0B } }; // 8A927515-33FC-4C92-A6AA-94A8F29C140B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject>{ 0x7A89EE99,0xCE2A,0x47FA,{ 0x9D,0xD2,0x0A,0x68,0x25,0xF6,0x05,0x3F } }; // 7A89EE99-CE2A-47FA-9DD2-0A6825F6053F
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayout>{ 0xBAE63E54,0x48AE,0x4446,{ 0xA2,0xC7,0xB6,0xEF,0x93,0x80,0x6C,0x20 } }; // BAE63E54-48AE-4446-A2C7-B6EF93806C20
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutFactory>{ 0x9C1F7179,0xACD0,0x4680,{ 0x93,0xD5,0x95,0xA6,0x24,0x7E,0x8F,0x6B } }; // 9C1F7179-ACD0-4680-93D5-95A6247E8F6B
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutStatics>{ 0x7F2B8FFD,0x6935,0x4F60,{ 0xB4,0x09,0x63,0x94,0xA1,0x9C,0x5E,0xBC } }; // 7F2B8FFD-6935-4F60-B409-6394A19C5EBC
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer>{ 0x9AAEECE5,0x8D09,0x4A64,{ 0xB3,0x22,0xAF,0x03,0x04,0x21,0xB2,0xE4 } }; // 9AAEECE5-8D09-4A64-B322-AF030421B2E4
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParameters>{ 0xB20BF738,0xEDB9,0x4EEC,{ 0xA1,0x2F,0xB6,0xAE,0x32,0xE8,0xAC,0xE6 } }; // B20BF738-EDB9-4EEC-A12F-B6AE32E8ACE6
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParametersFactory>{ 0xD240AC25,0x4D23,0x4964,{ 0x9D,0x9A,0xDB,0x2F,0xC8,0xAF,0x18,0x5D } }; // D240AC25-4D23-4964-9D9A-DB2FC8AF185D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTypography>{ 0xF15BC312,0x447F,0x44ED,{ 0x8B,0xEC,0x7E,0x40,0xF4,0xA4,0xDF,0xC8 } }; // F15BC312-447F-44ED-8BEC-7E40F4A4DFC8
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontFace; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontSet>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSet; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitution>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitution; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasScaledFont>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasScaledFont; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextAnalyzer>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzer; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormat; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayout>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayout; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingParameters>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParameters; };
    template <> struct default_interface<winrt::Microsoft::Graphics::Canvas::Text::CanvasTypography>{ using type = winrt::Microsoft::Graphics::Canvas::Text::ICanvasTypography; };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontFace>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetRecommendedRenderingMode(float, float, int32_t, void*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetRecommendedRenderingModeWithAllOptions(float, float, int32_t, void*, winrt::Windows::Foundation::Numerics::float3x2, bool, int32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetRecommendedGridFit(float, float, int32_t, void*, winrt::Windows::Foundation::Numerics::float3x2, bool, int32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_GlyphBox(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall get_SubscriptPosition(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall get_SubscriptSize(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall get_SuperscriptPosition(winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall get_SuperscriptSize(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall get_HasTypographicMetrics(bool*) noexcept = 0;
            virtual int32_t __stdcall get_Ascent(float*) noexcept = 0;
            virtual int32_t __stdcall get_Descent(float*) noexcept = 0;
            virtual int32_t __stdcall get_LineGap(float*) noexcept = 0;
            virtual int32_t __stdcall get_CapHeight(float*) noexcept = 0;
            virtual int32_t __stdcall get_LowercaseLetterHeight(float*) noexcept = 0;
            virtual int32_t __stdcall get_UnderlinePosition(float*) noexcept = 0;
            virtual int32_t __stdcall get_UnderlineThickness(float*) noexcept = 0;
            virtual int32_t __stdcall get_StrikethroughPosition(float*) noexcept = 0;
            virtual int32_t __stdcall get_StrikethroughThickness(float*) noexcept = 0;
            virtual int32_t __stdcall get_CaretSlopeRise(float*) noexcept = 0;
            virtual int32_t __stdcall get_CaretSlopeRun(float*) noexcept = 0;
            virtual int32_t __stdcall get_CaretOffset(float*) noexcept = 0;
            virtual int32_t __stdcall get_UnicodeRanges(uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasUnicodeRange**) noexcept = 0;
            virtual int32_t __stdcall get_IsMonospaced(bool*) noexcept = 0;
            virtual int32_t __stdcall GetVerticalGlyphVariants(uint32_t, int32_t*, uint32_t* __outputElementsSize, int32_t**) noexcept = 0;
            virtual int32_t __stdcall get_HasVerticalGlyphVariants(bool*) noexcept = 0;
            virtual int32_t __stdcall get_FileFormatType(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Simulations(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_IsSymbolFont(bool*) noexcept = 0;
            virtual int32_t __stdcall get_GlyphCount(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall GetGlyphIndices(uint32_t, uint32_t*, uint32_t* __outputElementsSize, int32_t**) noexcept = 0;
            virtual int32_t __stdcall GetGlyphMetrics(uint32_t, int32_t*, bool, uint32_t* __outputElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphMetrics**) noexcept = 0;
            virtual int32_t __stdcall GetGdiCompatibleGlyphMetrics(float, float, winrt::Windows::Foundation::Numerics::float3x2, bool, uint32_t, int32_t*, bool, uint32_t* __outputElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphMetrics**) noexcept = 0;
            virtual int32_t __stdcall get_Weight(struct struct_Windows_UI_Text_FontWeight*) noexcept = 0;
            virtual int32_t __stdcall get_Stretch(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Style(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_FamilyNames(void**) noexcept = 0;
            virtual int32_t __stdcall get_FaceNames(void**) noexcept = 0;
            virtual int32_t __stdcall GetInformationalStrings(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall HasCharacter(uint32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall GetGlyphRunBounds(void*, winrt::Windows::Foundation::Numerics::float2, float, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, bool, uint32_t, winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall GetGlyphRunBoundsWithMeasuringMode(void*, winrt::Windows::Foundation::Numerics::float2, float, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, bool, uint32_t, int32_t, winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall get_Panose(uint32_t* __valueElementsSize, uint8_t**) noexcept = 0;
            virtual int32_t __stdcall GetSupportedTypographicFeatureNames(struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, uint32_t* __valueElementsSize, int32_t**) noexcept = 0;
            virtual int32_t __stdcall GetSupportedTypographicFeatureNamesWithLocale(struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, void*, uint32_t* __valueElementsSize, int32_t**) noexcept = 0;
            virtual int32_t __stdcall GetTypographicFeatureGlyphSupport(struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, int32_t, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, uint32_t* __valueElementsSize, bool**) noexcept = 0;
            virtual int32_t __stdcall GetTypographicFeatureGlyphSupportWithLocale(struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, int32_t, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, void*, uint32_t* __valueElementsSize, bool**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSet>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Fonts(void**) noexcept = 0;
            virtual int32_t __stdcall TryFindFontFace(void*, int32_t*, bool*) noexcept = 0;
            virtual int32_t __stdcall GetMatchingFontsFromProperties(uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasFontProperty*, void**) noexcept = 0;
            virtual int32_t __stdcall GetMatchingFontsFromWwsFamily(void*, struct struct_Windows_UI_Text_FontWeight, int32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CountFontsMatchingProperty(struct struct_Microsoft_Graphics_Canvas_Text_CanvasFontProperty, uint32_t*) noexcept = 0;
            virtual int32_t __stdcall GetPropertyValuesFromIndex(uint32_t, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetPropertyValuesFromIdentifier(int32_t, void*, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasFontProperty**) noexcept = 0;
            virtual int32_t __stdcall GetPropertyValues(int32_t, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasFontProperty**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetSystemFontSet(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitution>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitutionFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithLocaleAndIgnoreOverrides(int32_t, void*, bool, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasScaledFont>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FontFace(void**) noexcept = 0;
            virtual int32_t __stdcall get_ScaleFactor(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzer>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetFontsUsingSystemFontSet(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetFonts(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetBidi(void**) noexcept = 0;
            virtual int32_t __stdcall GetBidiWithLocale(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetBreakpoints(uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedBreakpoint**) noexcept = 0;
            virtual int32_t __stdcall GetBreakpointsWithLocale(void*, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedBreakpoint**) noexcept = 0;
            virtual int32_t __stdcall GetNumberSubstitutions(void**) noexcept = 0;
            virtual int32_t __stdcall GetScript(void**) noexcept = 0;
            virtual int32_t __stdcall GetScriptWithLocale(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetGlyphOrientations(void**) noexcept = 0;
            virtual int32_t __stdcall GetGlyphOrientationsWithLocale(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetScriptProperties(struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, struct struct_Microsoft_Graphics_Canvas_Text_CanvasScriptProperties*) noexcept = 0;
            virtual int32_t __stdcall GetGlyphs(struct struct_Microsoft_Graphics_Canvas_Text_CanvasCharacterRange, void*, float, bool, bool, struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph**) noexcept = 0;
            virtual int32_t __stdcall GetGlyphsWithAllOptions(struct struct_Microsoft_Graphics_Canvas_Text_CanvasCharacterRange, void*, float, bool, bool, struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, void*, void*, void*, uint32_t*, int32_t**, uint32_t*, bool**, uint32_t*, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphShaping**, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph**) noexcept = 0;
            virtual int32_t __stdcall GetJustificationOpportunities(struct struct_Microsoft_Graphics_Canvas_Text_CanvasCharacterRange, void*, float, struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, uint32_t, int32_t*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphShaping*, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasJustificationOpportunity**) noexcept = 0;
            virtual int32_t __stdcall ApplyJustificationOpportunities(float, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasJustificationOpportunity*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph**) noexcept = 0;
            virtual int32_t __stdcall AddGlyphsAfterJustification(void*, float, struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, uint32_t, int32_t*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphShaping*, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph**) noexcept = 0;
            virtual int32_t __stdcall AddGlyphsAfterJustificationWithClusterMap(void*, float, struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript, uint32_t, int32_t*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphShaping*, uint32_t*, int32_t**, uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithNumberSubstitutionAndVerticalGlyphOrientationAndBidiLevel(void*, int32_t, void*, int32_t, uint32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithOptions(void*, int32_t, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetLocaleName(int32_t, int32_t*, void**) noexcept = 0;
            virtual int32_t __stdcall GetNumberSubstitution(int32_t, int32_t*, void**) noexcept = 0;
            virtual int32_t __stdcall GetVerticalGlyphOrientation(int32_t, int32_t*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetBidiLevel(int32_t, int32_t*, uint32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormat>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Direction(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Direction(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_FontFamily(void**) noexcept = 0;
            virtual int32_t __stdcall put_FontFamily(void*) noexcept = 0;
            virtual int32_t __stdcall get_FontSize(float*) noexcept = 0;
            virtual int32_t __stdcall put_FontSize(float) noexcept = 0;
            virtual int32_t __stdcall get_FontStretch(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_FontStretch(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_FontStyle(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_FontStyle(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_FontWeight(struct struct_Windows_UI_Text_FontWeight*) noexcept = 0;
            virtual int32_t __stdcall put_FontWeight(struct struct_Windows_UI_Text_FontWeight) noexcept = 0;
            virtual int32_t __stdcall get_IncrementalTabStop(float*) noexcept = 0;
            virtual int32_t __stdcall put_IncrementalTabStop(float) noexcept = 0;
            virtual int32_t __stdcall get_LineSpacing(float*) noexcept = 0;
            virtual int32_t __stdcall put_LineSpacing(float) noexcept = 0;
            virtual int32_t __stdcall get_LineSpacingBaseline(float*) noexcept = 0;
            virtual int32_t __stdcall put_LineSpacingBaseline(float) noexcept = 0;
            virtual int32_t __stdcall get_LocaleName(void**) noexcept = 0;
            virtual int32_t __stdcall put_LocaleName(void*) noexcept = 0;
            virtual int32_t __stdcall get_VerticalAlignment(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_VerticalAlignment(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_HorizontalAlignment(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HorizontalAlignment(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingGranularity(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingGranularity(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingDelimiter(void**) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingDelimiter(void*) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingDelimiterCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingDelimiterCount(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_WordWrapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_WordWrapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Options(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Options(uint32_t) noexcept = 0;
            virtual int32_t __stdcall get_VerticalGlyphOrientation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_VerticalGlyphOrientation(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_OpticalAlignment(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_OpticalAlignment(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LastLineWrapping(bool*) noexcept = 0;
            virtual int32_t __stdcall put_LastLineWrapping(bool) noexcept = 0;
            virtual int32_t __stdcall get_LineSpacingMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_LineSpacingMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingSign(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingSign(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_CustomTrimmingSign(void**) noexcept = 0;
            virtual int32_t __stdcall put_CustomTrimmingSign(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormatStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetSystemFontFamilies(uint32_t* __valueElementsSize, void***) noexcept = 0;
            virtual int32_t __stdcall GetSystemFontFamiliesFromLocaleList(void*, uint32_t* __valueElementsSize, void***) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Draw(void*, winrt::Windows::Foundation::Numerics::float2, bool, bool, void*) noexcept = 0;
            virtual int32_t __stdcall get_Size(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall get_Baseline(float*) noexcept = 0;
            virtual int32_t __stdcall get_SupportsSideways(bool*) noexcept = 0;
            virtual int32_t __stdcall get_DrawBounds(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall get_BreakBefore(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_BreakAfter(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayout>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetFormatChangeIndices(uint32_t* __stopsSize, int32_t**) noexcept = 0;
            virtual int32_t __stdcall get_Direction(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Direction(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_DefaultFontFamily(void**) noexcept = 0;
            virtual int32_t __stdcall get_DefaultFontSize(float*) noexcept = 0;
            virtual int32_t __stdcall get_DefaultFontStretch(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_DefaultFontStyle(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_DefaultFontWeight(struct struct_Windows_UI_Text_FontWeight*) noexcept = 0;
            virtual int32_t __stdcall get_IncrementalTabStop(float*) noexcept = 0;
            virtual int32_t __stdcall put_IncrementalTabStop(float) noexcept = 0;
            virtual int32_t __stdcall get_LineSpacing(float*) noexcept = 0;
            virtual int32_t __stdcall put_LineSpacing(float) noexcept = 0;
            virtual int32_t __stdcall get_LineSpacingBaseline(float*) noexcept = 0;
            virtual int32_t __stdcall put_LineSpacingBaseline(float) noexcept = 0;
            virtual int32_t __stdcall get_DefaultLocaleName(void**) noexcept = 0;
            virtual int32_t __stdcall get_VerticalAlignment(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_VerticalAlignment(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_HorizontalAlignment(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_HorizontalAlignment(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingGranularity(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingGranularity(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingDelimiter(void**) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingDelimiter(void*) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingDelimiterCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingDelimiterCount(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_WordWrapping(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_WordWrapping(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Options(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Options(uint32_t) noexcept = 0;
            virtual int32_t __stdcall get_LineSpacingMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_LineSpacingMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_TrimmingSign(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_TrimmingSign(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_CustomTrimmingSign(void**) noexcept = 0;
            virtual int32_t __stdcall put_CustomTrimmingSign(void*) noexcept = 0;
            virtual int32_t __stdcall get_RequestedSize(winrt::Windows::Foundation::Size*) noexcept = 0;
            virtual int32_t __stdcall put_RequestedSize(winrt::Windows::Foundation::Size) noexcept = 0;
            virtual int32_t __stdcall GetMinimumLineLength(float*) noexcept = 0;
            virtual int32_t __stdcall GetBrush(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetCustomBrush(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetFontFamily(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetFontSize(int32_t, float*) noexcept = 0;
            virtual int32_t __stdcall GetFontStretch(int32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetFontStyle(int32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetFontWeight(int32_t, struct struct_Windows_UI_Text_FontWeight*) noexcept = 0;
            virtual int32_t __stdcall GetLocaleName(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetStrikethrough(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall GetUnderline(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall GetInlineObject(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall SetColor(int32_t, int32_t, struct struct_Windows_UI_Color) noexcept = 0;
            virtual int32_t __stdcall SetBrush(int32_t, int32_t, void*) noexcept = 0;
            virtual int32_t __stdcall SetCustomBrush(int32_t, int32_t, void*) noexcept = 0;
            virtual int32_t __stdcall SetFontFamily(int32_t, int32_t, void*) noexcept = 0;
            virtual int32_t __stdcall SetFontSize(int32_t, int32_t, float) noexcept = 0;
            virtual int32_t __stdcall SetFontStretch(int32_t, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall SetFontStyle(int32_t, int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall SetFontWeight(int32_t, int32_t, struct struct_Windows_UI_Text_FontWeight) noexcept = 0;
            virtual int32_t __stdcall SetLocaleName(int32_t, int32_t, void*) noexcept = 0;
            virtual int32_t __stdcall SetStrikethrough(int32_t, int32_t, bool) noexcept = 0;
            virtual int32_t __stdcall SetUnderline(int32_t, int32_t, bool) noexcept = 0;
            virtual int32_t __stdcall SetInlineObject(int32_t, int32_t, void*) noexcept = 0;
            virtual int32_t __stdcall DrawToTextRenderer(void*, winrt::Windows::Foundation::Numerics::float2) noexcept = 0;
            virtual int32_t __stdcall DrawToTextRendererWithCoords(void*, float, float) noexcept = 0;
            virtual int32_t __stdcall get_LineMetrics(uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasLineMetrics**) noexcept = 0;
            virtual int32_t __stdcall get_ClusterMetrics(uint32_t* __valueElementsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasClusterMetrics**) noexcept = 0;
            virtual int32_t __stdcall SetTypography(int32_t, int32_t, void*) noexcept = 0;
            virtual int32_t __stdcall GetTypography(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall get_LayoutBounds(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall get_LayoutBoundsIncludingTrailingWhitespace(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall get_LineCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_MaximumBidiReorderingDepth(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_DrawBounds(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall HitTest(winrt::Windows::Foundation::Numerics::float2, bool*) noexcept = 0;
            virtual int32_t __stdcall HitTestWithCoords(float, float, bool*) noexcept = 0;
            virtual int32_t __stdcall HitTestWithDescription(winrt::Windows::Foundation::Numerics::float2, struct struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion*, bool*) noexcept = 0;
            virtual int32_t __stdcall HitTestWithDescriptionAndCoords(float, float, struct struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion*, bool*) noexcept = 0;
            virtual int32_t __stdcall HitTestWithDescriptionAndTrailingSide(winrt::Windows::Foundation::Numerics::float2, struct struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion*, bool*, bool*) noexcept = 0;
            virtual int32_t __stdcall HitTestWithDescriptionAndCoordsAndTrailingSide(float, float, struct struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion*, bool*, bool*) noexcept = 0;
            virtual int32_t __stdcall GetCaretPosition(int32_t, bool, winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall GetCaretPositionWithDescription(int32_t, bool, struct struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion*, winrt::Windows::Foundation::Numerics::float2*) noexcept = 0;
            virtual int32_t __stdcall GetCharacterRegions(int32_t, int32_t, uint32_t* __hitTestDescriptionsSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion**) noexcept = 0;
            virtual int32_t __stdcall GetPairKerning(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall SetPairKerning(int32_t, int32_t, bool) noexcept = 0;
            virtual int32_t __stdcall GetLeadingCharacterSpacing(int32_t, float*) noexcept = 0;
            virtual int32_t __stdcall GetTrailingCharacterSpacing(int32_t, float*) noexcept = 0;
            virtual int32_t __stdcall GetMinimumCharacterAdvance(int32_t, float*) noexcept = 0;
            virtual int32_t __stdcall SetCharacterSpacing(int32_t, int32_t, float, float, float) noexcept = 0;
            virtual int32_t __stdcall get_VerticalGlyphOrientation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_VerticalGlyphOrientation(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_OpticalAlignment(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_OpticalAlignment(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_LastLineWrapping(bool*) noexcept = 0;
            virtual int32_t __stdcall put_LastLineWrapping(bool) noexcept = 0;
            virtual int32_t __stdcall get_Device(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(void*, void*, void*, float, float, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetGlyphOrientationTransform(int32_t, bool, winrt::Windows::Foundation::Numerics::float2, winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall DrawGlyphRun(winrt::Windows::Foundation::Numerics::float2, void*, float, uint32_t, struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph*, bool, uint32_t, void*, int32_t, void*, void*, uint32_t, int32_t*, uint32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawStrikethrough(winrt::Windows::Foundation::Numerics::float2, float, float, float, int32_t, void*, int32_t, void*, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawUnderline(winrt::Windows::Foundation::Numerics::float2, float, float, float, float, int32_t, void*, int32_t, void*, int32_t) noexcept = 0;
            virtual int32_t __stdcall DrawInlineObject(winrt::Windows::Foundation::Numerics::float2, void*, bool, bool, void*, int32_t) noexcept = 0;
            virtual int32_t __stdcall get_PixelSnappingDisabled(bool*) noexcept = 0;
            virtual int32_t __stdcall get_Transform(winrt::Windows::Foundation::Numerics::float3x2*) noexcept = 0;
            virtual int32_t __stdcall get_Dpi(float*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParameters>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RenderingMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_GridFit(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParametersFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Create(int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTypography>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall AddFeature(struct struct_Microsoft_Graphics_Canvas_Text_CanvasTypographyFeature) noexcept = 0;
            virtual int32_t __stdcall AddFeatureWithNameAndParameter(int32_t, uint32_t) noexcept = 0;
            virtual int32_t __stdcall GetFeatures(uint32_t* __featuresSize, struct struct_Microsoft_Graphics_Canvas_Text_CanvasTypographyFeature**) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasFontFace
    {
        auto GetRecommendedRenderingMode(float fontSize, float dpi, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& measuringMode, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingParameters const& renderingParameters) const;
        auto GetRecommendedRenderingMode(float fontSize, float dpi, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& measuringMode, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingParameters const& renderingParameters, winrt::Windows::Foundation::Numerics::float3x2 const& transform, bool isSideways, winrt::Microsoft::Graphics::Canvas::CanvasAntialiasing const& outlineThreshold) const;
        auto GetRecommendedGridFit(float fontSize, float dpi, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& measuringMode, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingParameters const& renderingParameters, winrt::Windows::Foundation::Numerics::float3x2 const& transform, bool isSideways, winrt::Microsoft::Graphics::Canvas::CanvasAntialiasing const& outlineThreshold) const;
        [[nodiscard]] auto GlyphBox() const;
        [[nodiscard]] auto SubscriptPosition() const;
        [[nodiscard]] auto SubscriptSize() const;
        [[nodiscard]] auto SuperscriptPosition() const;
        [[nodiscard]] auto SuperscriptSize() const;
        [[nodiscard]] auto HasTypographicMetrics() const;
        [[nodiscard]] auto Ascent() const;
        [[nodiscard]] auto Descent() const;
        [[nodiscard]] auto LineGap() const;
        [[nodiscard]] auto CapHeight() const;
        [[nodiscard]] auto LowercaseLetterHeight() const;
        [[nodiscard]] auto UnderlinePosition() const;
        [[nodiscard]] auto UnderlineThickness() const;
        [[nodiscard]] auto StrikethroughPosition() const;
        [[nodiscard]] auto StrikethroughThickness() const;
        [[nodiscard]] auto CaretSlopeRise() const;
        [[nodiscard]] auto CaretSlopeRun() const;
        [[nodiscard]] auto CaretOffset() const;
        [[nodiscard]] auto UnicodeRanges() const;
        [[nodiscard]] auto IsMonospaced() const;
        auto GetVerticalGlyphVariants(array_view<int32_t const> inputElements) const;
        [[nodiscard]] auto HasVerticalGlyphVariants() const;
        [[nodiscard]] auto FileFormatType() const;
        [[nodiscard]] auto Simulations() const;
        [[nodiscard]] auto IsSymbolFont() const;
        [[nodiscard]] auto GlyphCount() const;
        auto GetGlyphIndices(array_view<uint32_t const> inputElements) const;
        auto GetGlyphMetrics(array_view<int32_t const> inputElements, bool isSideways) const;
        auto GetGdiCompatibleGlyphMetrics(float fontSize, float dpi, winrt::Windows::Foundation::Numerics::float3x2 const& transform, bool useGdiNatural, array_view<int32_t const> inputElements, bool isSideways) const;
        [[nodiscard]] auto Weight() const;
        [[nodiscard]] auto Stretch() const;
        [[nodiscard]] auto Style() const;
        [[nodiscard]] auto FamilyNames() const;
        [[nodiscard]] auto FaceNames() const;
        auto GetInformationalStrings(winrt::Microsoft::Graphics::Canvas::Text::CanvasFontInformation const& fontInformation) const;
        auto HasCharacter(uint32_t unicodeValue) const;
        auto GetGlyphRunBounds(winrt::Microsoft::Graphics::Canvas::CanvasDrawingSession const& drawingSession, winrt::Windows::Foundation::Numerics::float2 const& point, float fontSize, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphs, bool isSideways, uint32_t bidiLevel) const;
        auto GetGlyphRunBounds(winrt::Microsoft::Graphics::Canvas::CanvasDrawingSession const& drawingSession, winrt::Windows::Foundation::Numerics::float2 const& point, float fontSize, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphs, bool isSideways, uint32_t bidiLevel, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& measuringMode) const;
        [[nodiscard]] auto Panose() const;
        auto GetSupportedTypographicFeatureNames(winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script) const;
        auto GetSupportedTypographicFeatureNames(winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script, param::hstring const& locale) const;
        auto GetTypographicFeatureGlyphSupport(winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script, winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeatureName const& typographicFeatureName, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphsElements) const;
        auto GetTypographicFeatureGlyphSupport(winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script, winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeatureName const& typographicFeatureName, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphsElements, param::hstring const& locale) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontFace>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasFontFace<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasFontSet
    {
        [[nodiscard]] auto Fonts() const;
        auto TryFindFontFace(winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, int32_t& index) const;
        auto GetMatchingFonts(array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasFontProperty const> propertyElements) const;
        auto GetMatchingFonts(param::hstring const& familyName, winrt::Windows::UI::Text::FontWeight const& weight, winrt::Windows::UI::Text::FontStretch const& stretch, winrt::Windows::UI::Text::FontStyle const& style) const;
        auto CountFontsMatchingProperty(winrt::Microsoft::Graphics::Canvas::Text::CanvasFontProperty const& property) const;
        auto GetPropertyValues(uint32_t fontIndex, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontPropertyIdentifier const& propertyIdentifier) const;
        auto GetPropertyValues(winrt::Microsoft::Graphics::Canvas::Text::CanvasFontPropertyIdentifier const& propertyIdentifier, param::hstring const& preferredLocaleNames) const;
        auto GetPropertyValues(winrt::Microsoft::Graphics::Canvas::Text::CanvasFontPropertyIdentifier const& propertyIdentifier) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSet>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasFontSet<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasFontSetFactory
    {
        auto Create(winrt::Windows::Foundation::Uri const& uri) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasFontSetFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasFontSetStatics
    {
        auto GetSystemFontSet() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasFontSetStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasFontSetStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasNumberSubstitution
    {
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitution>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasNumberSubstitution<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasNumberSubstitutionFactory
    {
        auto Create(winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitutionMethod const& method) const;
        auto CreateWithLocaleAndIgnoreOverrides(winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitutionMethod const& method, param::hstring const& localeName, bool ignoreEnvironmentOverrides) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasNumberSubstitutionFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasNumberSubstitutionFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasScaledFont
    {
        [[nodiscard]] auto FontFace() const;
        [[nodiscard]] auto ScaleFactor() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasScaledFont>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasScaledFont<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextAnalyzer
    {
        auto GetFonts(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& textFormat) const;
        auto GetFonts(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& textFormat, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontSet const& fontSet) const;
        auto GetBidi() const;
        auto GetBidi(param::hstring const& locale) const;
        auto GetBreakpoints() const;
        auto GetBreakpoints(param::hstring const& locale) const;
        auto GetNumberSubstitutions() const;
        auto GetScript() const;
        auto GetScript(param::hstring const& locale) const;
        auto GetGlyphOrientations() const;
        auto GetGlyphOrientations(param::hstring const& locale) const;
        auto GetScriptProperties(winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& analyzedScript) const;
        auto GetGlyphs(winrt::Microsoft::Graphics::Canvas::Text::CanvasCharacterRange const& characterRange, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, bool isSideways, bool isRightToLeft, winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script) const;
        auto GetGlyphs(winrt::Microsoft::Graphics::Canvas::Text::CanvasCharacterRange const& characterRange, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, bool isSideways, bool isRightToLeft, winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script, param::hstring const& locale, winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitution const& numberSubstitution, param::vector_view<winrt::Windows::Foundation::Collections::IKeyValuePair<winrt::Microsoft::Graphics::Canvas::Text::CanvasCharacterRange, winrt::Microsoft::Graphics::Canvas::Text::CanvasTypography>> const& typographyRanges, com_array<int32_t>& clusterMapIndicesElements, com_array<bool>& isShapedAloneGlyphsElements, com_array<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphShaping>& glyphShapingResultsElements) const;
        auto GetJustificationOpportunities(winrt::Microsoft::Graphics::Canvas::Text::CanvasCharacterRange const& characterRange, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script, array_view<int32_t const> clusterMapIndicesElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphShaping const> glyphShapingResultsElements) const;
        auto ApplyJustificationOpportunities(float lineWidth, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasJustificationOpportunity const> justificationOpportunitiesElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> sourceGlyphsElements) const;
        auto AddGlyphsAfterJustification(winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script, array_view<int32_t const> clusterMapIndicesElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> originalGlyphsElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> justifiedGlyphsElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphShaping const> glyphShapingResultsElements) const;
        auto AddGlyphsAfterJustification(winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, winrt::Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript const& script, array_view<int32_t const> clusterMapIndicesElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> originalGlyphsElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> justifiedGlyphsElements, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphShaping const> glyphShapingResultsElements, com_array<int32_t>& outputClusterMapIndicesElements) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzer>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextAnalyzer<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextAnalyzerFactory
    {
        auto Create(param::hstring const& text, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection const& textDirection) const;
        auto CreateWithNumberSubstitutionAndVerticalGlyphOrientationAndBidiLevel(param::hstring const& text, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection const& textDirection, winrt::Microsoft::Graphics::Canvas::Text::CanvasNumberSubstitution const& numberSubstitution, winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalGlyphOrientation const& verticalGlyphOrientation, uint32_t bidiLevel) const;
        auto CreateWithOptions(param::hstring const& text, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection const& textDirection, winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerOptions const& options) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextAnalyzerFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextAnalyzerOptions
    {
        auto GetLocaleName(int32_t characterIndex, int32_t& characterCount) const;
        auto GetNumberSubstitution(int32_t characterIndex, int32_t& characterCount) const;
        auto GetVerticalGlyphOrientation(int32_t characterIndex, int32_t& characterCount) const;
        auto GetBidiLevel(int32_t characterIndex, int32_t& characterCount) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextAnalyzerOptions>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextAnalyzerOptions<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextFormat
    {
        [[nodiscard]] auto Direction() const;
        auto Direction(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection const& value) const;
        [[nodiscard]] auto FontFamily() const;
        auto FontFamily(param::hstring const& value) const;
        [[nodiscard]] auto FontSize() const;
        auto FontSize(float value) const;
        [[nodiscard]] auto FontStretch() const;
        auto FontStretch(winrt::Windows::UI::Text::FontStretch const& value) const;
        [[nodiscard]] auto FontStyle() const;
        auto FontStyle(winrt::Windows::UI::Text::FontStyle const& value) const;
        [[nodiscard]] auto FontWeight() const;
        auto FontWeight(winrt::Windows::UI::Text::FontWeight const& value) const;
        [[nodiscard]] auto IncrementalTabStop() const;
        auto IncrementalTabStop(float value) const;
        [[nodiscard]] auto LineSpacing() const;
        auto LineSpacing(float value) const;
        [[nodiscard]] auto LineSpacingBaseline() const;
        auto LineSpacingBaseline(float value) const;
        [[nodiscard]] auto LocaleName() const;
        auto LocaleName(param::hstring const& value) const;
        [[nodiscard]] auto VerticalAlignment() const;
        auto VerticalAlignment(winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalAlignment const& value) const;
        [[nodiscard]] auto HorizontalAlignment() const;
        auto HorizontalAlignment(winrt::Microsoft::Graphics::Canvas::Text::CanvasHorizontalAlignment const& value) const;
        [[nodiscard]] auto TrimmingGranularity() const;
        auto TrimmingGranularity(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextTrimmingGranularity const& value) const;
        [[nodiscard]] auto TrimmingDelimiter() const;
        auto TrimmingDelimiter(param::hstring const& value) const;
        [[nodiscard]] auto TrimmingDelimiterCount() const;
        auto TrimmingDelimiterCount(int32_t value) const;
        [[nodiscard]] auto WordWrapping() const;
        auto WordWrapping(winrt::Microsoft::Graphics::Canvas::Text::CanvasWordWrapping const& value) const;
        [[nodiscard]] auto Options() const;
        auto Options(winrt::Microsoft::Graphics::Canvas::Text::CanvasDrawTextOptions const& value) const;
        [[nodiscard]] auto VerticalGlyphOrientation() const;
        auto VerticalGlyphOrientation(winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalGlyphOrientation const& value) const;
        [[nodiscard]] auto OpticalAlignment() const;
        auto OpticalAlignment(winrt::Microsoft::Graphics::Canvas::Text::CanvasOpticalAlignment const& value) const;
        [[nodiscard]] auto LastLineWrapping() const;
        auto LastLineWrapping(bool value) const;
        [[nodiscard]] auto LineSpacingMode() const;
        auto LineSpacingMode(winrt::Microsoft::Graphics::Canvas::Text::CanvasLineSpacingMode const& value) const;
        [[nodiscard]] auto TrimmingSign() const;
        auto TrimmingSign(winrt::Microsoft::Graphics::Canvas::Text::CanvasTrimmingSign const& value) const;
        [[nodiscard]] auto CustomTrimmingSign() const;
        auto CustomTrimmingSign(winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject const& value) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormat>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextFormat<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextFormatStatics
    {
        auto GetSystemFontFamilies() const;
        auto GetSystemFontFamilies(param::vector_view<hstring> const& localeList) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextFormatStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextFormatStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextInlineObject
    {
        auto Draw(winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer const& textRenderer, winrt::Windows::Foundation::Numerics::float2 const& point, bool isSideways, bool isRightToLeft, winrt::Windows::Foundation::IInspectable const& brush) const;
        [[nodiscard]] auto Size() const;
        [[nodiscard]] auto Baseline() const;
        [[nodiscard]] auto SupportsSideways() const;
        [[nodiscard]] auto DrawBounds() const;
        [[nodiscard]] auto BreakBefore() const;
        [[nodiscard]] auto BreakAfter() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextInlineObject<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextLayout
    {
        auto GetFormatChangeIndices() const;
        [[nodiscard]] auto Direction() const;
        auto Direction(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection const& value) const;
        [[nodiscard]] auto DefaultFontFamily() const;
        [[nodiscard]] auto DefaultFontSize() const;
        [[nodiscard]] auto DefaultFontStretch() const;
        [[nodiscard]] auto DefaultFontStyle() const;
        [[nodiscard]] auto DefaultFontWeight() const;
        [[nodiscard]] auto IncrementalTabStop() const;
        auto IncrementalTabStop(float value) const;
        [[nodiscard]] auto LineSpacing() const;
        auto LineSpacing(float value) const;
        [[nodiscard]] auto LineSpacingBaseline() const;
        auto LineSpacingBaseline(float value) const;
        [[nodiscard]] auto DefaultLocaleName() const;
        [[nodiscard]] auto VerticalAlignment() const;
        auto VerticalAlignment(winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalAlignment const& value) const;
        [[nodiscard]] auto HorizontalAlignment() const;
        auto HorizontalAlignment(winrt::Microsoft::Graphics::Canvas::Text::CanvasHorizontalAlignment const& value) const;
        [[nodiscard]] auto TrimmingGranularity() const;
        auto TrimmingGranularity(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextTrimmingGranularity const& value) const;
        [[nodiscard]] auto TrimmingDelimiter() const;
        auto TrimmingDelimiter(param::hstring const& value) const;
        [[nodiscard]] auto TrimmingDelimiterCount() const;
        auto TrimmingDelimiterCount(int32_t value) const;
        [[nodiscard]] auto WordWrapping() const;
        auto WordWrapping(winrt::Microsoft::Graphics::Canvas::Text::CanvasWordWrapping const& value) const;
        [[nodiscard]] auto Options() const;
        auto Options(winrt::Microsoft::Graphics::Canvas::Text::CanvasDrawTextOptions const& value) const;
        [[nodiscard]] auto LineSpacingMode() const;
        auto LineSpacingMode(winrt::Microsoft::Graphics::Canvas::Text::CanvasLineSpacingMode const& value) const;
        [[nodiscard]] auto TrimmingSign() const;
        auto TrimmingSign(winrt::Microsoft::Graphics::Canvas::Text::CanvasTrimmingSign const& value) const;
        [[nodiscard]] auto CustomTrimmingSign() const;
        auto CustomTrimmingSign(winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject const& value) const;
        [[nodiscard]] auto RequestedSize() const;
        auto RequestedSize(winrt::Windows::Foundation::Size const& value) const;
        auto GetMinimumLineLength() const;
        auto GetBrush(int32_t characterIndex) const;
        auto GetCustomBrush(int32_t characterIndex) const;
        auto GetFontFamily(int32_t characterIndex) const;
        auto GetFontSize(int32_t characterIndex) const;
        auto GetFontStretch(int32_t characterIndex) const;
        auto GetFontStyle(int32_t characterIndex) const;
        auto GetFontWeight(int32_t characterIndex) const;
        auto GetLocaleName(int32_t characterIndex) const;
        auto GetStrikethrough(int32_t characterIndex) const;
        auto GetUnderline(int32_t characterIndex) const;
        auto GetInlineObject(int32_t characterIndex) const;
        auto SetColor(int32_t characterIndex, int32_t characterCount, winrt::Windows::UI::Color const& color) const;
        auto SetBrush(int32_t characterIndex, int32_t characterCount, winrt::Microsoft::Graphics::Canvas::Brushes::ICanvasBrush const& brush) const;
        auto SetCustomBrush(int32_t characterIndex, int32_t characterCount, winrt::Windows::Foundation::IInspectable const& brush) const;
        auto SetFontFamily(int32_t characterIndex, int32_t characterCount, param::hstring const& fontFamily) const;
        auto SetFontSize(int32_t characterIndex, int32_t characterCount, float fontSize) const;
        auto SetFontStretch(int32_t characterIndex, int32_t characterCount, winrt::Windows::UI::Text::FontStretch const& fontStretch) const;
        auto SetFontStyle(int32_t characterIndex, int32_t characterCount, winrt::Windows::UI::Text::FontStyle const& fontStyle) const;
        auto SetFontWeight(int32_t characterIndex, int32_t characterCount, winrt::Windows::UI::Text::FontWeight const& fontWeight) const;
        auto SetLocaleName(int32_t characterIndex, int32_t characterCount, param::hstring const& name) const;
        auto SetStrikethrough(int32_t characterIndex, int32_t characterCount, bool hasStrikethrough) const;
        auto SetUnderline(int32_t characterIndex, int32_t characterCount, bool hasUnderline) const;
        auto SetInlineObject(int32_t characterIndex, int32_t characterCount, winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject const& inlineObject) const;
        auto DrawToTextRenderer(winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer const& textRenderer, winrt::Windows::Foundation::Numerics::float2 const& position) const;
        auto DrawToTextRenderer(winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer const& textRenderer, float x, float y) const;
        [[nodiscard]] auto LineMetrics() const;
        [[nodiscard]] auto ClusterMetrics() const;
        auto SetTypography(int32_t characterIndex, int32_t characterCount, winrt::Microsoft::Graphics::Canvas::Text::CanvasTypography const& typography) const;
        auto GetTypography(int32_t characterIndex) const;
        [[nodiscard]] auto LayoutBounds() const;
        [[nodiscard]] auto LayoutBoundsIncludingTrailingWhitespace() const;
        [[nodiscard]] auto LineCount() const;
        [[nodiscard]] auto MaximumBidiReorderingDepth() const;
        [[nodiscard]] auto DrawBounds() const;
        auto HitTest(winrt::Windows::Foundation::Numerics::float2 const& point) const;
        auto HitTest(float x, float y) const;
        auto HitTest(winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion& textLayoutRegion) const;
        auto HitTest(float x, float y, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion& textLayoutRegion) const;
        auto HitTest(winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion& textLayoutRegion, bool& trailingSideOfCharacter) const;
        auto HitTest(float x, float y, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion& textLayoutRegion, bool& trailingSideOfCharacter) const;
        auto GetCaretPosition(int32_t characterIndex, bool trailingSideOfCharacter) const;
        auto GetCaretPosition(int32_t characterIndex, bool trailingSideOfCharacter, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion& textLayoutRegion) const;
        auto GetCharacterRegions(int32_t characterIndex, int32_t characterCount) const;
        auto GetPairKerning(int32_t characterIndex) const;
        auto SetPairKerning(int32_t characterIndex, int32_t characterCount, bool hasPairKerning) const;
        auto GetLeadingCharacterSpacing(int32_t characterIndex) const;
        auto GetTrailingCharacterSpacing(int32_t characterIndex) const;
        auto GetMinimumCharacterAdvance(int32_t characterIndex) const;
        auto SetCharacterSpacing(int32_t characterIndex, int32_t characterCount, float leadingSpacing, float trailingSpacing, float minimumAdvance) const;
        [[nodiscard]] auto VerticalGlyphOrientation() const;
        auto VerticalGlyphOrientation(winrt::Microsoft::Graphics::Canvas::Text::CanvasVerticalGlyphOrientation const& value) const;
        [[nodiscard]] auto OpticalAlignment() const;
        auto OpticalAlignment(winrt::Microsoft::Graphics::Canvas::Text::CanvasOpticalAlignment const& value) const;
        [[nodiscard]] auto LastLineWrapping() const;
        auto LastLineWrapping(bool value) const;
        [[nodiscard]] auto Device() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayout>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextLayout<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextLayoutFactory
    {
        auto Create(winrt::Microsoft::Graphics::Canvas::ICanvasResourceCreator const& resourceCreator, param::hstring const& textString, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextFormat const& textFormat, float requestedWidth, float requestedHeight) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextLayoutFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextLayoutStatics
    {
        auto GetGlyphOrientationTransform(winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation const& glyphOrientation, bool isSideways, winrt::Windows::Foundation::Numerics::float2 const& position) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextLayoutStatics>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextLayoutStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextRenderer
    {
        auto DrawGlyphRun(winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Text::CanvasFontFace const& fontFace, float fontSize, array_view<winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyph const> glyphs, bool isSideways, uint32_t bidiLevel, winrt::Windows::Foundation::IInspectable const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& measuringMode, param::hstring const& localeName, param::hstring const& textString, array_view<int32_t const> clusterMapIndices, uint32_t characterIndex, winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation const& glyphOrientation) const;
        auto DrawStrikethrough(winrt::Windows::Foundation::Numerics::float2 const& point, float strikethroughWidth, float strikethroughThickness, float strikethroughOffset, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection const& textDirection, winrt::Windows::Foundation::IInspectable const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& textMeasuringMode, param::hstring const& localeName, winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation const& glyphOrientation) const;
        auto DrawUnderline(winrt::Windows::Foundation::Numerics::float2 const& point, float underlineWidth, float underlineThickness, float underlineOffset, float runHeight, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextDirection const& textDirection, winrt::Windows::Foundation::IInspectable const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextMeasuringMode const& textMeasuringMode, param::hstring const& localeName, winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation const& glyphOrientation) const;
        auto DrawInlineObject(winrt::Windows::Foundation::Numerics::float2 const& point, winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextInlineObject const& inlineObject, bool isSideways, bool isRightToLeft, winrt::Windows::Foundation::IInspectable const& brush, winrt::Microsoft::Graphics::Canvas::Text::CanvasGlyphOrientation const& glyphOrientation) const;
        [[nodiscard]] auto PixelSnappingDisabled() const;
        [[nodiscard]] auto Transform() const;
        [[nodiscard]] auto Dpi() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderer>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextRenderer<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextRenderingParameters
    {
        [[nodiscard]] auto RenderingMode() const;
        [[nodiscard]] auto GridFit() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParameters>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextRenderingParameters<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTextRenderingParametersFactory
    {
        auto Create(winrt::Microsoft::Graphics::Canvas::Text::CanvasTextRenderingMode const& textRenderingMode, winrt::Microsoft::Graphics::Canvas::Text::CanvasTextGridFit const& gridFit) const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTextRenderingParametersFactory>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTextRenderingParametersFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_Graphics_Canvas_Text_ICanvasTypography
    {
        auto AddFeature(winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeature const& feature) const;
        auto AddFeature(winrt::Microsoft::Graphics::Canvas::Text::CanvasTypographyFeatureName const& name, uint32_t parameter) const;
        auto GetFeatures() const;
    };
    template <> struct consume<winrt::Microsoft::Graphics::Canvas::Text::ICanvasTypography>
    {
        template <typename D> using type = consume_Microsoft_Graphics_Canvas_Text_ICanvasTypography<D>;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedBidi
    {
        uint32_t ExplicitLevel;
        uint32_t ResolvedLevel;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasAnalyzedBidi>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedBidi;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedBreakpoint
    {
        int32_t BreakBefore;
        int32_t BreakAfter;
        bool IsWhitespace;
        bool IsSoftHyphen;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasAnalyzedBreakpoint>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedBreakpoint;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedGlyphOrientation
    {
        int32_t GlyphOrientation;
        uint32_t AdjustedBidiLevel;
        bool IsSideways;
        bool IsRightToLeft;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasAnalyzedGlyphOrientation>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedGlyphOrientation;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript
    {
        int32_t ScriptIdentifier;
        int32_t Shape;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasAnalyzedScript>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasAnalyzedScript;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasCharacterRange
    {
        int32_t CharacterIndex;
        int32_t CharacterCount;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasCharacterRange>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasCharacterRange;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasClusterMetrics
    {
        int32_t CharacterCount;
        float Width;
        uint32_t Properties;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasClusterMetrics>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasClusterMetrics;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasFontProperty
    {
        int32_t Identifier;
        void* Value;
        void* Locale;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasFontProperty>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasFontProperty;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph
    {
        int32_t Index;
        float Advance;
        float AdvanceOffset;
        float AscenderOffset;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasGlyph>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasGlyph;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphMetrics
    {
        float LeftSideBearing;
        float AdvanceWidth;
        float RightSideBearing;
        float TopSideBearing;
        float AdvanceHeight;
        float BottomSideBearing;
        float VerticalOrigin;
        winrt::Windows::Foundation::Rect DrawBounds;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasGlyphMetrics>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphMetrics;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphShaping
    {
        int32_t Justification;
        bool IsClusterStart;
        bool IsDiacritic;
        bool IsZeroWidthSpace;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasGlyphShaping>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasGlyphShaping;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasJustificationOpportunity
    {
        float ExpansionMinimum;
        float ExpansionMaximum;
        float CompressionMaximum;
        uint8_t ExpansionPriority;
        uint8_t CompressionPriority;
        bool AllowResidualExpansion;
        bool AllowResidualCompression;
        bool ApplyToLeadingEdge;
        bool ApplyToTrailingEdge;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasJustificationOpportunity>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasJustificationOpportunity;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasLineMetrics
    {
        int32_t CharacterCount;
        int32_t TrailingWhitespaceCount;
        int32_t TerminalNewlineCount;
        float Height;
        float Baseline;
        bool IsTrimmed;
        float LeadingWhitespaceBefore;
        float LeadingWhitespaceAfter;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasLineMetrics>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasLineMetrics;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasScriptProperties
    {
        void* IsoScriptCode;
        int32_t IsoScriptNumber;
        int32_t ClusterLookahead;
        void* JustificationCharacter;
        bool RestrictCaretToClusters;
        bool UsesWordDividers;
        bool IsDiscreteWriting;
        bool IsBlockWriting;
        bool IsDistributedWithinCluster;
        bool IsConnectedWriting;
        bool IsCursiveWriting;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasScriptProperties>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasScriptProperties;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion
    {
        int32_t CharacterIndex;
        int32_t CharacterCount;
        winrt::Windows::Foundation::Rect LayoutBounds;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasTextLayoutRegion>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasTextLayoutRegion;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasTypographyFeature
    {
        int32_t Name;
        uint32_t Parameter;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasTypographyFeature>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasTypographyFeature;
    };
    struct struct_Microsoft_Graphics_Canvas_Text_CanvasUnicodeRange
    {
        uint32_t First;
        uint32_t Last;
    };
    template <> struct abi<Microsoft::Graphics::Canvas::Text::CanvasUnicodeRange>
    {
        using type = struct_Microsoft_Graphics_Canvas_Text_CanvasUnicodeRange;
    };
}
#endif
