--  Generated by             : BindCOM
--  Generated on             : 3/13/2009 3:47:52 PM
--  Library Name             : tom
--  Library Documentation    :
--  Library Version          : 1.0
--  Library LIBID            : {8CC497C9-A1DF-11CE-8098-00AA0047BE5D}
--  Elements in Type Library : 7

with Ada.Unchecked_Conversion;
with Interfaces.C;

with GNATCOM.Types;
with GNATCOM.GUID;

package TOM is

   subtype tomConstants is Interfaces.C.long;
   type ITextDocument;
   type ITextSelection;
   type ITextRange;
   type ITextFont;
   type ITextPara;
   type ITextStoryRanges;

   type Pointer_To_ITextDocument is access all ITextDocument;
   type Pointer_To_ITextSelection is access all ITextSelection;
   type Pointer_To_ITextRange is access all ITextRange;
   type Pointer_To_Pointer_To_ITextRange is access all Pointer_To_ITextRange;
   type Pointer_To_ITextFont is access all ITextFont;
   type Pointer_To_Pointer_To_ITextFont is access all Pointer_To_ITextFont;
   type Pointer_To_ITextPara is access all ITextPara;
   type Pointer_To_Pointer_To_ITextPara is access all Pointer_To_ITextPara;
   type Pointer_To_Pointer_To_ITextSelection
      is access all Pointer_To_ITextSelection;
   type Pointer_To_ITextStoryRanges is access all ITextStoryRanges;
   type Pointer_To_Pointer_To_ITextStoryRanges
      is access all Pointer_To_ITextStoryRanges;

   LIBID_tom : aliased GNATCOM.Types.GUID :=
     GNATCOM.GUID.To_GUID ("{8CC497C9-A1DF-11CE-8098-00AA0047BE5D}");

   --  Element Index         : 0
   --  Element Name          : tomConstants
   --  Element Type          : Enumeration

   tomFalse                : constant := 0;
   tomTrue                 : constant := -1;
   tomUndefined            : constant := -9999999;
   tomToggle               : constant := -9999998;
   tomAutoColor            : constant := -9999997;
   tomDefault              : constant := -9999996;
   tomBackward             : constant := -1073741823;
   tomForward              : constant := 1073741823;
   tomMove                 : constant := 0;
   tomExtend               : constant := 1;
   tomNoSelection          : constant := 0;
   tomSelectionIP          : constant := 1;
   tomSelectionNormal      : constant := 2;
   tomSelectionFrame       : constant := 3;
   tomSelectionColumn      : constant := 4;
   tomSelectionRow         : constant := 5;
   tomSelectionBlock       : constant := 6;
   tomSelectionInlineShape : constant := 7;
   tomSelectionShape       : constant := 8;
   tomSelStartActive       : constant := 1;
   tomSelAtEOL             : constant := 2;
   tomSelOvertype          : constant := 4;
   tomSelActive            : constant := 8;
   tomSelReplace           : constant := 16;
   tomEnd                  : constant := 0;
   tomStart                : constant := 32;
   tomCollapseEnd          : constant := 0;
   tomCollapseStart        : constant := 1;
   tomNone                 : constant := 0;
   tomSingle               : constant := 1;
   tomWords                : constant := 2;
   tomDouble               : constant := 3;
   tomDotted               : constant := 4;
   tomLineSpaceSingle      : constant := 0;
   tomLineSpace1pt5        : constant := 1;
   tomLineSpaceDouble      : constant := 2;
   tomLineSpaceAtLeast     : constant := 3;
   tomLineSpaceExactly     : constant := 4;
   tomLineSpaceMultiple    : constant := 5;
   tomAlignLeft            : constant := 0;
   tomAlignCenter          : constant := 1;
   tomAlignRight           : constant := 2;
   tomAlignJustify         : constant := 3;
   tomAlignDecimal         : constant := 3;
   tomAlignBar             : constant := 4;
   tomSpaces               : constant := 0;
   tomDots                 : constant := 1;
   tomDashes               : constant := 2;
   tomLines                : constant := 3;
   tomTabBack              : constant := -3;
   tomTabNext              : constant := -2;
   tomTabHere              : constant := -1;
   tomListNone             : constant := 0;
   tomListBullet           : constant := 1;
   tomListNumberAsArabic   : constant := 2;
   tomListNumberAsLCLetter : constant := 3;
   tomListNumberAsUCLetter : constant := 4;
   tomListNumberAsLCRoman  : constant := 5;
   tomListNumberAsUCRoman  : constant := 6;
   tomListNumberAsSequence : constant := 7;
   tomListParentheses      : constant := 65536;
   tomListPeriod           : constant := 131072;
   tomListPlain            : constant := 196608;
   tomCharacter            : constant := 1;
   tomWord                 : constant := 2;
   tomSentence             : constant := 3;
   tomParagraph            : constant := 4;
   tomLine                 : constant := 5;
   tomStory                : constant := 6;
   tomScreen               : constant := 7;
   tomSection              : constant := 8;
   tomColumn               : constant := 9;
   tomRow                  : constant := 10;
   tomWindow               : constant := 11;
   tomCell                 : constant := 12;
   tomCharFormat           : constant := 13;
   tomParaFormat           : constant := 14;
   tomTable                : constant := 15;
   tomObject               : constant := 16;
   tomMatchWord            : constant := 2;
   tomMatchCase            : constant := 4;
   tomMatchPattern         : constant := 8;
   tomUnknownStory         : constant := 0;
   tomMainTextStory        : constant := 1;
   tomFootnotesStory       : constant := 2;
   tomEndnotesStory        : constant := 3;
   tomCommentsStory        : constant := 4;
   tomTextFrameStory       : constant := 5;
   tomEvenPagesHeaderStory : constant := 6;
   tomPrimaryHeaderStory   : constant := 7;
   tomEvenPagesFooterStory : constant := 8;
   tomPrimaryFooterStory   : constant := 9;
   tomFirstPageHeaderStory : constant := 10;
   tomFirstPageFooterStory : constant := 11;
   tomNoAnimation          : constant := 0;
   tomLasVegasLights       : constant := 1;
   tomBlinkingBackground   : constant := 2;
   tomSparkleText          : constant := 3;
   tomMarchingBlackAnts    : constant := 4;
   tomMarchingRedAnts      : constant := 5;
   tomShimmer              : constant := 6;
   tomWipeDown             : constant := 7;
   tomWipeRight            : constant := 8;
   tomAnimationMax         : constant := 8;
   tomLowerCase            : constant := 0;
   tomUpperCase            : constant := 1;
   tomTitleCase            : constant := 2;
   tomSentenceCase         : constant := 4;
   tomToggleCase           : constant := 5;
   tomReadOnly             : constant := 256;
   tomShareDenyRead        : constant := 512;
   tomShareDenyWrite       : constant := 1024;
   tomPasteFile            : constant := 4096;
   tomCreateNew            : constant := 16;
   tomCreateAlways         : constant := 32;
   tomOpenExisting         : constant := 48;
   tomOpenAlways           : constant := 64;
   tomTruncateExisting     : constant := 80;
   tomRTF                  : constant := 1;
   tomText                 : constant := 2;
   tomHTML                 : constant := 3;
   tomWordDocument         : constant := 4;

   --  Element Index         : 4
   --  Element Name          : ITextFont
   --  Element Type          : Dispatch

   IID_ITextFont : aliased GNATCOM.Types.GUID :=
     GNATCOM.GUID.To_GUID ("{8CC497C3-A1DF-11CE-8098-00AA0047BE5D}");

   type af_ITextFont_QueryInterface is access
     function (This   : access ITextFont;
               riid   : GNATCOM.Types.Pointer_To_GUID;
               ppvObj : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_QueryInterface);

   type af_ITextFont_AddRef is access
     function (This : access ITextFont)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextFont_AddRef);

   type af_ITextFont_Release is access
     function (This : access ITextFont)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextFont_Release);

   type af_ITextFont_GetTypeInfoCount is access
     function (This    : access ITextFont;
               pctinfo : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_GetTypeInfoCount);

   type af_ITextFont_GetTypeInfo is access
     function (This    : access ITextFont;
               itinfo  : Interfaces.C.unsigned;
               lcid    : Interfaces.C.unsigned_long;
               pptinfo : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_GetTypeInfo);

   type af_ITextFont_GetIDsOfNames is access
     function (This      : access ITextFont;
               riid      : GNATCOM.Types.Pointer_To_GUID;
               rgszNames : GNATCOM.Types.Pointer_To_Pointer_To_char;
               cNames    : Interfaces.C.unsigned;
               lcid      : Interfaces.C.unsigned_long;
               rgdispid  : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_GetIDsOfNames);

   type af_ITextFont_Invoke is access
     function (This         : access ITextFont;
               dispidMember : Interfaces.C.long;
               riid         : GNATCOM.Types.Pointer_To_GUID;
               lcid         : Interfaces.C.unsigned_long;
               wFlags       : Interfaces.C.unsigned_short;
               pdispparams  : GNATCOM.Types.Pointer_To_DISPPARAMS;
               pvarResult   : access GNATCOM.Types.VARIANT;
               pexcepinfo   : GNATCOM.Types.Pointer_To_EXCEPINFO;
               puArgErr     : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Invoke);

   type af_ITextFont_Get_Duplicate is access
     function (This   : access ITextFont;
               RetVal : Pointer_To_Pointer_To_ITextFont)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Duplicate);

   type af_ITextFont_Put_Duplicate is access
     function (This   : access ITextFont;
               ppFont : Pointer_To_ITextFont)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Duplicate);

   type af_ITextFont_CanChange is access
     function (This : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_CanChange);

   type af_ITextFont_IsEqual is access
     function (This  : access ITextFont;
               pFont : Pointer_To_ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_IsEqual);

   type af_ITextFont_Reset is access
     function (This  : access ITextFont;
               Value : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Reset);

   type af_ITextFont_Get_Style is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Style);

   type af_ITextFont_Put_Style is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Style);

   type af_ITextFont_Get_AllCaps is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_AllCaps);

   type af_ITextFont_Put_AllCaps is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_AllCaps);

   type af_ITextFont_Get_Animation is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Animation);

   type af_ITextFont_Put_Animation is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Animation);

   type af_ITextFont_Get_BackColor is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_BackColor);

   type af_ITextFont_Put_BackColor is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_BackColor);

   type af_ITextFont_Get_Bold is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Bold);

   type af_ITextFont_Put_Bold is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Bold);

   type af_ITextFont_Get_Emboss is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Emboss);

   type af_ITextFont_Put_Emboss is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Emboss);

   type af_ITextFont_Get_ForeColor is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_ForeColor);

   type af_ITextFont_Put_ForeColor is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_ForeColor);

   type af_ITextFont_Get_Hidden is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Hidden);

   type af_ITextFont_Put_Hidden is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Hidden);

   type af_ITextFont_Get_Engrave is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Engrave);

   type af_ITextFont_Put_Engrave is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Engrave);

   type af_ITextFont_Get_Italic is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Italic);

   type af_ITextFont_Put_Italic is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Italic);

   type af_ITextFont_Get_Kerning is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Kerning);

   type af_ITextFont_Put_Kerning is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Kerning);

   type af_ITextFont_Get_LanguageID is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_LanguageID);

   type af_ITextFont_Put_LanguageID is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_LanguageID);

   type af_ITextFont_Get_Name is access
     function (This  : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Name);

   type af_ITextFont_Put_Name is access
     function (This  : access ITextFont;
               pbstr : GNATCOM.Types.BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Name);

   type af_ITextFont_Get_Outline is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Outline);

   type af_ITextFont_Put_Outline is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Outline);

   type af_ITextFont_Get_Position is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Position);

   type af_ITextFont_Put_Position is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Position);

   type af_ITextFont_Get_Protected is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Protected);

   type af_ITextFont_Put_Protected is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Protected);

   type af_ITextFont_Get_Shadow is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Shadow);

   type af_ITextFont_Put_Shadow is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Shadow);

   type af_ITextFont_Get_Size is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Size);

   type af_ITextFont_Put_Size is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Size);

   type af_ITextFont_Get_SmallCaps is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_SmallCaps);

   type af_ITextFont_Put_SmallCaps is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_SmallCaps);

   type af_ITextFont_Get_Spacing is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Spacing);

   type af_ITextFont_Put_Spacing is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Spacing);

   type af_ITextFont_Get_StrikeThrough is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_StrikeThrough);

   type af_ITextFont_Put_StrikeThrough is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_StrikeThrough);

   type af_ITextFont_Get_Subscript is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Subscript);

   type af_ITextFont_Put_Subscript is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Subscript);

   type af_ITextFont_Get_Superscript is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Superscript);

   type af_ITextFont_Put_Superscript is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Superscript);

   type af_ITextFont_Get_Underline is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Underline);

   type af_ITextFont_Put_Underline is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Underline);

   type af_ITextFont_Get_Weight is access
     function (This   : access ITextFont;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Get_Weight);

   type af_ITextFont_Put_Weight is access
     function (This   : access ITextFont;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextFont_Put_Weight);

   type ITextFontVtbl;
   type Pointer_To_ITextFontVtbl is access all ITextFontVtbl;

   type ITextFont is
      record
         Vtbl : Pointer_To_ITextFontVtbl;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextFont);

   type ITextFontVtbl is
      record
         QueryInterface    : af_ITextFont_QueryInterface;
         AddRef            : af_ITextFont_AddRef;
         Release           : af_ITextFont_Release;
         GetTypeInfoCount  : af_ITextFont_GetTypeInfoCount;
         GetTypeInfo       : af_ITextFont_GetTypeInfo;
         GetIDsOfNames     : af_ITextFont_GetIDsOfNames;
         Invoke            : af_ITextFont_Invoke;
         Get_Duplicate     : af_ITextFont_Get_Duplicate;
         Put_Duplicate     : af_ITextFont_Put_Duplicate;
         CanChange         : af_ITextFont_CanChange;
         IsEqual           : af_ITextFont_IsEqual;
         Reset             : af_ITextFont_Reset;
         Get_Style         : af_ITextFont_Get_Style;
         Put_Style         : af_ITextFont_Put_Style;
         Get_AllCaps       : af_ITextFont_Get_AllCaps;
         Put_AllCaps       : af_ITextFont_Put_AllCaps;
         Get_Animation     : af_ITextFont_Get_Animation;
         Put_Animation     : af_ITextFont_Put_Animation;
         Get_BackColor     : af_ITextFont_Get_BackColor;
         Put_BackColor     : af_ITextFont_Put_BackColor;
         Get_Bold          : af_ITextFont_Get_Bold;
         Put_Bold          : af_ITextFont_Put_Bold;
         Get_Emboss        : af_ITextFont_Get_Emboss;
         Put_Emboss        : af_ITextFont_Put_Emboss;
         Get_ForeColor     : af_ITextFont_Get_ForeColor;
         Put_ForeColor     : af_ITextFont_Put_ForeColor;
         Get_Hidden        : af_ITextFont_Get_Hidden;
         Put_Hidden        : af_ITextFont_Put_Hidden;
         Get_Engrave       : af_ITextFont_Get_Engrave;
         Put_Engrave       : af_ITextFont_Put_Engrave;
         Get_Italic        : af_ITextFont_Get_Italic;
         Put_Italic        : af_ITextFont_Put_Italic;
         Get_Kerning       : af_ITextFont_Get_Kerning;
         Put_Kerning       : af_ITextFont_Put_Kerning;
         Get_LanguageID    : af_ITextFont_Get_LanguageID;
         Put_LanguageID    : af_ITextFont_Put_LanguageID;
         Get_Name          : af_ITextFont_Get_Name;
         Put_Name          : af_ITextFont_Put_Name;
         Get_Outline       : af_ITextFont_Get_Outline;
         Put_Outline       : af_ITextFont_Put_Outline;
         Get_Position      : af_ITextFont_Get_Position;
         Put_Position      : af_ITextFont_Put_Position;
         Get_Protected     : af_ITextFont_Get_Protected;
         Put_Protected     : af_ITextFont_Put_Protected;
         Get_Shadow        : af_ITextFont_Get_Shadow;
         Put_Shadow        : af_ITextFont_Put_Shadow;
         Get_Size          : af_ITextFont_Get_Size;
         Put_Size          : af_ITextFont_Put_Size;
         Get_SmallCaps     : af_ITextFont_Get_SmallCaps;
         Put_SmallCaps     : af_ITextFont_Put_SmallCaps;
         Get_Spacing       : af_ITextFont_Get_Spacing;
         Put_Spacing       : af_ITextFont_Put_Spacing;
         Get_StrikeThrough : af_ITextFont_Get_StrikeThrough;
         Put_StrikeThrough : af_ITextFont_Put_StrikeThrough;
         Get_Subscript     : af_ITextFont_Get_Subscript;
         Put_Subscript     : af_ITextFont_Put_Subscript;
         Get_Superscript   : af_ITextFont_Get_Superscript;
         Put_Superscript   : af_ITextFont_Put_Superscript;
         Get_Underline     : af_ITextFont_Get_Underline;
         Put_Underline     : af_ITextFont_Put_Underline;
         Get_Weight        : af_ITextFont_Get_Weight;
         Put_Weight        : af_ITextFont_Put_Weight;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextFontVtbl);

   function To_Pointer_To_ITextFont is
     new Ada.Unchecked_Conversion
     (GNATCOM.Types.Pointer_To_Void, Pointer_To_ITextFont);

   --  Element Index         : 4
   --  Element Name          : ITextFont
   --  Element Type          : Dispatch

   ITextFont_Get_Duplicate     : constant := 0;
   ITextFont_Put_Duplicate     : constant := 0;
   ITextFont_CanChange         : constant := 769;
   ITextFont_IsEqual           : constant := 770;
   ITextFont_Reset             : constant := 771;
   ITextFont_Get_Style         : constant := 772;
   ITextFont_Put_Style         : constant := 772;
   ITextFont_Get_AllCaps       : constant := 773;
   ITextFont_Put_AllCaps       : constant := 773;
   ITextFont_Get_Animation     : constant := 774;
   ITextFont_Put_Animation     : constant := 774;
   ITextFont_Get_BackColor     : constant := 775;
   ITextFont_Put_BackColor     : constant := 775;
   ITextFont_Get_Bold          : constant := 776;
   ITextFont_Put_Bold          : constant := 776;
   ITextFont_Get_Emboss        : constant := 777;
   ITextFont_Put_Emboss        : constant := 777;
   ITextFont_Get_ForeColor     : constant := 784;
   ITextFont_Put_ForeColor     : constant := 784;
   ITextFont_Get_Hidden        : constant := 785;
   ITextFont_Put_Hidden        : constant := 785;
   ITextFont_Get_Engrave       : constant := 786;
   ITextFont_Put_Engrave       : constant := 786;
   ITextFont_Get_Italic        : constant := 787;
   ITextFont_Put_Italic        : constant := 787;
   ITextFont_Get_Kerning       : constant := 788;
   ITextFont_Put_Kerning       : constant := 788;
   ITextFont_Get_LanguageID    : constant := 789;
   ITextFont_Put_LanguageID    : constant := 789;
   ITextFont_Get_Name          : constant := 790;
   ITextFont_Put_Name          : constant := 790;
   ITextFont_Get_Outline       : constant := 791;
   ITextFont_Put_Outline       : constant := 791;
   ITextFont_Get_Position      : constant := 792;
   ITextFont_Put_Position      : constant := 792;
   ITextFont_Get_Protected     : constant := 793;
   ITextFont_Put_Protected     : constant := 793;
   ITextFont_Get_Shadow        : constant := 800;
   ITextFont_Put_Shadow        : constant := 800;
   ITextFont_Get_Size          : constant := 801;
   ITextFont_Put_Size          : constant := 801;
   ITextFont_Get_SmallCaps     : constant := 802;
   ITextFont_Put_SmallCaps     : constant := 802;
   ITextFont_Get_Spacing       : constant := 803;
   ITextFont_Put_Spacing       : constant := 803;
   ITextFont_Get_StrikeThrough : constant := 804;
   ITextFont_Put_StrikeThrough : constant := 804;
   ITextFont_Get_Subscript     : constant := 805;
   ITextFont_Put_Subscript     : constant := 805;
   ITextFont_Get_Superscript   : constant := 806;
   ITextFont_Put_Superscript   : constant := 806;
   ITextFont_Get_Underline     : constant := 807;
   ITextFont_Put_Underline     : constant := 807;
   ITextFont_Get_Weight        : constant := 808;
   ITextFont_Put_Weight        : constant := 808;

   --  Element Index         : 5
   --  Element Name          : ITextPara
   --  Element Type          : Dispatch

   IID_ITextPara : aliased GNATCOM.Types.GUID :=
     GNATCOM.GUID.To_GUID ("{8CC497C4-A1DF-11CE-8098-00AA0047BE5D}");

   type af_ITextPara_QueryInterface is access
     function (This   : access ITextPara;
               riid   : GNATCOM.Types.Pointer_To_GUID;
               ppvObj : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_QueryInterface);

   type af_ITextPara_AddRef is access
     function (This : access ITextPara)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextPara_AddRef);

   type af_ITextPara_Release is access
     function (This : access ITextPara)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextPara_Release);

   type af_ITextPara_GetTypeInfoCount is access
     function (This    : access ITextPara;
               pctinfo : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_GetTypeInfoCount);

   type af_ITextPara_GetTypeInfo is access
     function (This    : access ITextPara;
               itinfo  : Interfaces.C.unsigned;
               lcid    : Interfaces.C.unsigned_long;
               pptinfo : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_GetTypeInfo);

   type af_ITextPara_GetIDsOfNames is access
     function (This      : access ITextPara;
               riid      : GNATCOM.Types.Pointer_To_GUID;
               rgszNames : GNATCOM.Types.Pointer_To_Pointer_To_char;
               cNames    : Interfaces.C.unsigned;
               lcid      : Interfaces.C.unsigned_long;
               rgdispid  : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_GetIDsOfNames);

   type af_ITextPara_Invoke is access
     function (This         : access ITextPara;
               dispidMember : Interfaces.C.long;
               riid         : GNATCOM.Types.Pointer_To_GUID;
               lcid         : Interfaces.C.unsigned_long;
               wFlags       : Interfaces.C.unsigned_short;
               pdispparams  : GNATCOM.Types.Pointer_To_DISPPARAMS;
               pvarResult   : access GNATCOM.Types.VARIANT;
               pexcepinfo   : GNATCOM.Types.Pointer_To_EXCEPINFO;
               puArgErr     : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Invoke);

   type af_ITextPara_Get_Duplicate is access
     function (This   : access ITextPara;
               RetVal : Pointer_To_Pointer_To_ITextPara)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_Duplicate);

   type af_ITextPara_Put_Duplicate is access
     function (This   : access ITextPara;
               ppPara : Pointer_To_ITextPara)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_Duplicate);

   type af_ITextPara_CanChange is access
     function (This : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_CanChange);

   type af_ITextPara_IsEqual is access
     function (This  : access ITextPara;
               pPara : Pointer_To_ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_IsEqual);

   type af_ITextPara_Reset is access
     function (This  : access ITextPara;
               Value : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Reset);

   type af_ITextPara_Get_Style is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_Style);

   type af_ITextPara_Put_Style is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_Style);

   type af_ITextPara_Get_Alignment is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_Alignment);

   type af_ITextPara_Put_Alignment is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_Alignment);

   type af_ITextPara_Get_Hyphenation is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_Hyphenation);

   type af_ITextPara_Put_Hyphenation is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_Hyphenation);

   type af_ITextPara_Get_FirstLineIndent is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_FirstLineIndent);

   type af_ITextPara_Get_KeepTogether is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_KeepTogether);

   type af_ITextPara_Put_KeepTogether is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_KeepTogether);

   type af_ITextPara_Get_KeepWithNext is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_KeepWithNext);

   type af_ITextPara_Put_KeepWithNext is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_KeepWithNext);

   type af_ITextPara_Get_LeftIndent is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_LeftIndent);

   type af_ITextPara_Get_LineSpacing is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_LineSpacing);

   type af_ITextPara_Get_LineSpacingRule is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_LineSpacingRule);

   type af_ITextPara_Get_ListAlignment is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_ListAlignment);

   type af_ITextPara_Put_ListAlignment is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_ListAlignment);

   type af_ITextPara_Get_ListLevelIndex is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_ListLevelIndex);

   type af_ITextPara_Put_ListLevelIndex is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_ListLevelIndex);

   type af_ITextPara_Get_ListStart is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_ListStart);

   type af_ITextPara_Put_ListStart is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_ListStart);

   type af_ITextPara_Get_ListTab is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_ListTab);

   type af_ITextPara_Put_ListTab is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_ListTab);

   type af_ITextPara_Get_ListType is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_ListType);

   type af_ITextPara_Put_ListType is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_ListType);

   type af_ITextPara_Get_NoLineNumber is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_NoLineNumber);

   type af_ITextPara_Put_NoLineNumber is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_NoLineNumber);

   type af_ITextPara_Get_PageBreakBefore is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_PageBreakBefore);

   type af_ITextPara_Put_PageBreakBefore is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_PageBreakBefore);

   type af_ITextPara_Get_RightIndent is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_RightIndent);

   type af_ITextPara_Put_RightIndent is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_RightIndent);

   type af_ITextPara_SetIndents is access
     function (This        : access ITextPara;
               StartIndent : Interfaces.C.C_float;
               LeftIndent  : Interfaces.C.C_float;
               RightIndent : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_SetIndents);

   type af_ITextPara_SetLineSpacing is access
     function (This            : access ITextPara;
               LineSpacingRule : Interfaces.C.long;
               LineSpacing     : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_SetLineSpacing);

   type af_ITextPara_Get_SpaceAfter is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_SpaceAfter);

   type af_ITextPara_Put_SpaceAfter is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_SpaceAfter);

   type af_ITextPara_Get_SpaceBefore is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_SpaceBefore);

   type af_ITextPara_Put_SpaceBefore is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_SpaceBefore);

   type af_ITextPara_Get_WidowControl is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_WidowControl);

   type af_ITextPara_Put_WidowControl is access
     function (This   : access ITextPara;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Put_WidowControl);

   type af_ITextPara_Get_TabCount is access
     function (This   : access ITextPara;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_Get_TabCount);

   type af_ITextPara_AddTab is access
     function (This     : access ITextPara;
               tbPos    : Interfaces.C.C_float;
               tbAlign  : Interfaces.C.long;
               tbLeader : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_AddTab);

   type af_ITextPara_ClearAllTabs is access
     function (This : access ITextPara)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_ClearAllTabs);

   type af_ITextPara_DeleteTab is access
     function (This  : access ITextPara;
               tbPos : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_DeleteTab);

   type af_ITextPara_GetTab is access
     function (This      : access ITextPara;
               iTab      : Interfaces.C.long;
               ptbPos    : GNATCOM.Types.Pointer_To_C_float;
               ptbAlign  : GNATCOM.Types.Pointer_To_long;
               ptbLeader : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextPara_GetTab);

   type ITextParaVtbl;
   type Pointer_To_ITextParaVtbl is access all ITextParaVtbl;

   type ITextPara is
      record
         Vtbl : Pointer_To_ITextParaVtbl;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextPara);

   type ITextParaVtbl is
      record
         QueryInterface      : af_ITextPara_QueryInterface;
         AddRef              : af_ITextPara_AddRef;
         Release             : af_ITextPara_Release;
         GetTypeInfoCount    : af_ITextPara_GetTypeInfoCount;
         GetTypeInfo         : af_ITextPara_GetTypeInfo;
         GetIDsOfNames       : af_ITextPara_GetIDsOfNames;
         Invoke              : af_ITextPara_Invoke;
         Get_Duplicate       : af_ITextPara_Get_Duplicate;
         Put_Duplicate       : af_ITextPara_Put_Duplicate;
         CanChange           : af_ITextPara_CanChange;
         IsEqual             : af_ITextPara_IsEqual;
         Reset               : af_ITextPara_Reset;
         Get_Style           : af_ITextPara_Get_Style;
         Put_Style           : af_ITextPara_Put_Style;
         Get_Alignment       : af_ITextPara_Get_Alignment;
         Put_Alignment       : af_ITextPara_Put_Alignment;
         Get_Hyphenation     : af_ITextPara_Get_Hyphenation;
         Put_Hyphenation     : af_ITextPara_Put_Hyphenation;
         Get_FirstLineIndent : af_ITextPara_Get_FirstLineIndent;
         Get_KeepTogether    : af_ITextPara_Get_KeepTogether;
         Put_KeepTogether    : af_ITextPara_Put_KeepTogether;
         Get_KeepWithNext    : af_ITextPara_Get_KeepWithNext;
         Put_KeepWithNext    : af_ITextPara_Put_KeepWithNext;
         Get_LeftIndent      : af_ITextPara_Get_LeftIndent;
         Get_LineSpacing     : af_ITextPara_Get_LineSpacing;
         Get_LineSpacingRule : af_ITextPara_Get_LineSpacingRule;
         Get_ListAlignment   : af_ITextPara_Get_ListAlignment;
         Put_ListAlignment   : af_ITextPara_Put_ListAlignment;
         Get_ListLevelIndex  : af_ITextPara_Get_ListLevelIndex;
         Put_ListLevelIndex  : af_ITextPara_Put_ListLevelIndex;
         Get_ListStart       : af_ITextPara_Get_ListStart;
         Put_ListStart       : af_ITextPara_Put_ListStart;
         Get_ListTab         : af_ITextPara_Get_ListTab;
         Put_ListTab         : af_ITextPara_Put_ListTab;
         Get_ListType        : af_ITextPara_Get_ListType;
         Put_ListType        : af_ITextPara_Put_ListType;
         Get_NoLineNumber    : af_ITextPara_Get_NoLineNumber;
         Put_NoLineNumber    : af_ITextPara_Put_NoLineNumber;
         Get_PageBreakBefore : af_ITextPara_Get_PageBreakBefore;
         Put_PageBreakBefore : af_ITextPara_Put_PageBreakBefore;
         Get_RightIndent     : af_ITextPara_Get_RightIndent;
         Put_RightIndent     : af_ITextPara_Put_RightIndent;
         SetIndents          : af_ITextPara_SetIndents;
         SetLineSpacing      : af_ITextPara_SetLineSpacing;
         Get_SpaceAfter      : af_ITextPara_Get_SpaceAfter;
         Put_SpaceAfter      : af_ITextPara_Put_SpaceAfter;
         Get_SpaceBefore     : af_ITextPara_Get_SpaceBefore;
         Put_SpaceBefore     : af_ITextPara_Put_SpaceBefore;
         Get_WidowControl    : af_ITextPara_Get_WidowControl;
         Put_WidowControl    : af_ITextPara_Put_WidowControl;
         Get_TabCount        : af_ITextPara_Get_TabCount;
         AddTab              : af_ITextPara_AddTab;
         ClearAllTabs        : af_ITextPara_ClearAllTabs;
         DeleteTab           : af_ITextPara_DeleteTab;
         GetTab              : af_ITextPara_GetTab;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextParaVtbl);

   function To_Pointer_To_ITextPara is
     new Ada.Unchecked_Conversion
     (GNATCOM.Types.Pointer_To_Void, Pointer_To_ITextPara);

   --  Element Index         : 5
   --  Element Name          : ITextPara
   --  Element Type          : Dispatch

   ITextPara_Get_Duplicate       : constant := 0;
   ITextPara_Put_Duplicate       : constant := 0;
   ITextPara_CanChange           : constant := 1025;
   ITextPara_IsEqual             : constant := 1026;
   ITextPara_Reset               : constant := 1027;
   ITextPara_Get_Style           : constant := 1028;
   ITextPara_Put_Style           : constant := 1028;
   ITextPara_Get_Alignment       : constant := 1029;
   ITextPara_Put_Alignment       : constant := 1029;
   ITextPara_Get_Hyphenation     : constant := 1030;
   ITextPara_Put_Hyphenation     : constant := 1030;
   ITextPara_Get_FirstLineIndent : constant := 1031;
   ITextPara_Get_KeepTogether    : constant := 1032;
   ITextPara_Put_KeepTogether    : constant := 1032;
   ITextPara_Get_KeepWithNext    : constant := 1033;
   ITextPara_Put_KeepWithNext    : constant := 1033;
   ITextPara_Get_LeftIndent      : constant := 1040;
   ITextPara_Get_LineSpacing     : constant := 1041;
   ITextPara_Get_LineSpacingRule : constant := 1042;
   ITextPara_Get_ListAlignment   : constant := 1043;
   ITextPara_Put_ListAlignment   : constant := 1043;
   ITextPara_Get_ListLevelIndex  : constant := 1044;
   ITextPara_Put_ListLevelIndex  : constant := 1044;
   ITextPara_Get_ListStart       : constant := 1045;
   ITextPara_Put_ListStart       : constant := 1045;
   ITextPara_Get_ListTab         : constant := 1046;
   ITextPara_Put_ListTab         : constant := 1046;
   ITextPara_Get_ListType        : constant := 1047;
   ITextPara_Put_ListType        : constant := 1047;
   ITextPara_Get_NoLineNumber    : constant := 1048;
   ITextPara_Put_NoLineNumber    : constant := 1048;
   ITextPara_Get_PageBreakBefore : constant := 1049;
   ITextPara_Put_PageBreakBefore : constant := 1049;
   ITextPara_Get_RightIndent     : constant := 1056;
   ITextPara_Put_RightIndent     : constant := 1056;
   ITextPara_SetIndents          : constant := 1057;
   ITextPara_SetLineSpacing      : constant := 1058;
   ITextPara_Get_SpaceAfter      : constant := 1059;
   ITextPara_Put_SpaceAfter      : constant := 1059;
   ITextPara_Get_SpaceBefore     : constant := 1060;
   ITextPara_Put_SpaceBefore     : constant := 1060;
   ITextPara_Get_WidowControl    : constant := 1061;
   ITextPara_Put_WidowControl    : constant := 1061;
   ITextPara_Get_TabCount        : constant := 1062;
   ITextPara_AddTab              : constant := 1063;
   ITextPara_ClearAllTabs        : constant := 1064;
   ITextPara_DeleteTab           : constant := 1065;
   ITextPara_GetTab              : constant := 1072;

   --  Element Index         : 2
   --  Element Name          : ITextRange
   --  Element Type          : Dispatch

   IID_ITextRange : aliased GNATCOM.Types.GUID :=
     GNATCOM.GUID.To_GUID ("{8CC497C2-A1DF-11CE-8098-00AA0047BE5D}");

   type af_ITextRange_QueryInterface is access
     function (This   : access ITextRange;
               riid   : GNATCOM.Types.Pointer_To_GUID;
               ppvObj : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_QueryInterface);

   type af_ITextRange_AddRef is access
     function (This : access ITextRange)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextRange_AddRef);

   type af_ITextRange_Release is access
     function (This : access ITextRange)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextRange_Release);

   type af_ITextRange_GetTypeInfoCount is access
     function (This    : access ITextRange;
               pctinfo : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_GetTypeInfoCount);

   type af_ITextRange_GetTypeInfo is access
     function (This    : access ITextRange;
               itinfo  : Interfaces.C.unsigned;
               lcid    : Interfaces.C.unsigned_long;
               pptinfo : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_GetTypeInfo);

   type af_ITextRange_GetIDsOfNames is access
     function (This      : access ITextRange;
               riid      : GNATCOM.Types.Pointer_To_GUID;
               rgszNames : GNATCOM.Types.Pointer_To_Pointer_To_char;
               cNames    : Interfaces.C.unsigned;
               lcid      : Interfaces.C.unsigned_long;
               rgdispid  : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_GetIDsOfNames);

   type af_ITextRange_Invoke is access
     function (This         : access ITextRange;
               dispidMember : Interfaces.C.long;
               riid         : GNATCOM.Types.Pointer_To_GUID;
               lcid         : Interfaces.C.unsigned_long;
               wFlags       : Interfaces.C.unsigned_short;
               pdispparams  : GNATCOM.Types.Pointer_To_DISPPARAMS;
               pvarResult   : access GNATCOM.Types.VARIANT;
               pexcepinfo   : GNATCOM.Types.Pointer_To_EXCEPINFO;
               puArgErr     : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Invoke);

   type af_ITextRange_Get_Text is access
     function (This  : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_Text);

   type af_ITextRange_Put_Text is access
     function (This  : access ITextRange;
               pbstr : GNATCOM.Types.BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Put_Text);

   type af_ITextRange_Get_Char is access
     function (This : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_Char);

   type af_ITextRange_Put_Char is access
     function (This : access ITextRange;
               pch  : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Put_Char);

   type af_ITextRange_Get_Duplicate is access
     function (This    : access ITextRange;
               RetVal : Pointer_To_Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_Duplicate);

   type af_ITextRange_Get_FormattedText is access
     function (This    : access ITextRange;
               RetVal : Pointer_To_Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_FormattedText);

   type af_ITextRange_Put_FormattedText is access
     function (This    : access ITextRange;
               ppRange : Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Put_FormattedText);

   type af_ITextRange_Get_Start is access
     function (This     : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_Start);

   type af_ITextRange_Put_Start is access
     function (This     : access ITextRange;
               pcpFirst : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Put_Start);

   type af_ITextRange_Get_End is access
     function (This   : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_End);

   type af_ITextRange_Put_End is access
     function (This   : access ITextRange;
               pcpLim : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Put_End);

   type af_ITextRange_Get_Font is access
     function (This  : access ITextRange;
               RetVal : Pointer_To_Pointer_To_ITextFont)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_Font);

   type af_ITextRange_Put_Font is access
     function (This  : access ITextRange;
               pFont : Pointer_To_ITextFont)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Put_Font);

   type af_ITextRange_Get_Para is access
     function (This  : access ITextRange;
               RetVal : Pointer_To_Pointer_To_ITextPara)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_Para);

   type af_ITextRange_Put_Para is access
     function (This  : access ITextRange;
               pPara : Pointer_To_ITextPara)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Put_Para);

   type af_ITextRange_Get_StoryLength is access
     function (This : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_StoryLength);

   type af_ITextRange_Get_StoryType is access
     function (This   : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Get_StoryType);

   type af_ITextRange_Collapse is access
     function (This   : access ITextRange;
               bStart : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Collapse);

   type af_ITextRange_Expand is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Expand);

   type af_ITextRange_GetIndex is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_GetIndex);

   type af_ITextRange_SetIndex is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               Index  : Interfaces.C.long;
               Extend : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_SetIndex);

   type af_ITextRange_SetRange is access
     function (This     : access ITextRange;
               cpActive : Interfaces.C.long;
               cpOther  : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_SetRange);

   type af_ITextRange_InRange is access
     function (This   : access ITextRange;
               pRange : Pointer_To_ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_InRange);

   type af_ITextRange_InStory is access
     function (This   : access ITextRange;
               pRange : Pointer_To_ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_InStory);

   type af_ITextRange_IsEqual is access
     function (This   : access ITextRange;
               pRange : Pointer_To_ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_IsEqual);

   type af_ITextRange_uSelect is access
     function (This : access ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_uSelect);

   type af_ITextRange_StartOf is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_StartOf);

   type af_ITextRange_EndOf is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_EndOf);

   type af_ITextRange_Move is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Move);

   type af_ITextRange_MoveStart is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveStart);

   type af_ITextRange_MoveEnd is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveEnd);

   type af_ITextRange_MoveWhile is access
     function (This   : access ITextRange;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveWhile);

   type af_ITextRange_MoveStartWhile is access
     function (This   : access ITextRange;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveStartWhile);

   type af_ITextRange_MoveEndWhile is access
     function (This   : access ITextRange;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveEndWhile);

   type af_ITextRange_MoveUntil is access
     function (This   : access ITextRange;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveUntil);

   type af_ITextRange_MoveStartUntil is access
     function (This   : access ITextRange;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveStartUntil);

   type af_ITextRange_MoveEndUntil is access
     function (This   : access ITextRange;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_MoveEndUntil);

   type af_ITextRange_FindText is access
     function (This    : access ITextRange;
               bstr    : GNATCOM.Types.BSTR;
               cch     : Interfaces.C.long;
               Flags   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_FindText);

   type af_ITextRange_FindTextStart is access
     function (This    : access ITextRange;
               bstr    : GNATCOM.Types.BSTR;
               cch     : Interfaces.C.long;
               Flags   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_FindTextStart);

   type af_ITextRange_FindTextEnd is access
     function (This    : access ITextRange;
               bstr    : GNATCOM.Types.BSTR;
               cch     : Interfaces.C.long;
               Flags   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_FindTextEnd);

   type af_ITextRange_Delete is access
     function (This   : access ITextRange;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Delete);

   type af_ITextRange_Cut is access
     function (This : access ITextRange;
               pVar : access GNATCOM.Types.VARIANT)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Cut);

   type af_ITextRange_Copy is access
     function (This : access ITextRange;
               pVar : access GNATCOM.Types.VARIANT)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Copy);

   type af_ITextRange_Paste is access
     function (This   : access ITextRange;
               pVar   : access GNATCOM.Types.VARIANT;
               Format : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_Paste);

   type af_ITextRange_CanPaste is access
     function (This   : access ITextRange;
               pVar   : access GNATCOM.Types.VARIANT;
               Format : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_CanPaste);

   type af_ITextRange_CanEdit is access
     function (This      : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_CanEdit);

   type af_ITextRange_ChangeCase is access
     function (This  : access ITextRange;
               uType : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_ChangeCase);

   type af_ITextRange_GetPoint is access
     function (This  : access ITextRange;
               uType : Interfaces.C.long;
               px    : GNATCOM.Types.Pointer_To_long;
               py    : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_GetPoint);

   type af_ITextRange_SetPoint is access
     function (This   : access ITextRange;
               x      : Interfaces.C.long;
               y      : Interfaces.C.long;
               uType  : Interfaces.C.long;
               Extend : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_SetPoint);

   type af_ITextRange_ScrollIntoView is access
     function (This  : access ITextRange;
               Value : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_ScrollIntoView);

   type af_ITextRange_GetEmbeddedObject is access
     function (This : access ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_Pointer_To_IUnknown)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextRange_GetEmbeddedObject);

   type ITextRangeVtbl;
   type Pointer_To_ITextRangeVtbl is access all ITextRangeVtbl;

   type ITextRange is
      record
         Vtbl : Pointer_To_ITextRangeVtbl;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextRange);

   type ITextRangeVtbl is
      record
         QueryInterface    : af_ITextRange_QueryInterface;
         AddRef            : af_ITextRange_AddRef;
         Release           : af_ITextRange_Release;
         GetTypeInfoCount  : af_ITextRange_GetTypeInfoCount;
         GetTypeInfo       : af_ITextRange_GetTypeInfo;
         GetIDsOfNames     : af_ITextRange_GetIDsOfNames;
         Invoke            : af_ITextRange_Invoke;
         Get_Text          : af_ITextRange_Get_Text;
         Put_Text          : af_ITextRange_Put_Text;
         Get_Char          : af_ITextRange_Get_Char;
         Put_Char          : af_ITextRange_Put_Char;
         Get_Duplicate     : af_ITextRange_Get_Duplicate;
         Get_FormattedText : af_ITextRange_Get_FormattedText;
         Put_FormattedText : af_ITextRange_Put_FormattedText;
         Get_Start         : af_ITextRange_Get_Start;
         Put_Start         : af_ITextRange_Put_Start;
         Get_End           : af_ITextRange_Get_End;
         Put_End           : af_ITextRange_Put_End;
         Get_Font          : af_ITextRange_Get_Font;
         Put_Font          : af_ITextRange_Put_Font;
         Get_Para          : af_ITextRange_Get_Para;
         Put_Para          : af_ITextRange_Put_Para;
         Get_StoryLength   : af_ITextRange_Get_StoryLength;
         Get_StoryType     : af_ITextRange_Get_StoryType;
         Collapse          : af_ITextRange_Collapse;
         Expand            : af_ITextRange_Expand;
         GetIndex          : af_ITextRange_GetIndex;
         SetIndex          : af_ITextRange_SetIndex;
         SetRange          : af_ITextRange_SetRange;
         InRange           : af_ITextRange_InRange;
         InStory           : af_ITextRange_InStory;
         IsEqual           : af_ITextRange_IsEqual;
         uSelect           : af_ITextRange_uSelect;
         StartOf           : af_ITextRange_StartOf;
         EndOf             : af_ITextRange_EndOf;
         Move              : af_ITextRange_Move;
         MoveStart         : af_ITextRange_MoveStart;
         MoveEnd           : af_ITextRange_MoveEnd;
         MoveWhile         : af_ITextRange_MoveWhile;
         MoveStartWhile    : af_ITextRange_MoveStartWhile;
         MoveEndWhile      : af_ITextRange_MoveEndWhile;
         MoveUntil         : af_ITextRange_MoveUntil;
         MoveStartUntil    : af_ITextRange_MoveStartUntil;
         MoveEndUntil      : af_ITextRange_MoveEndUntil;
         FindText          : af_ITextRange_FindText;
         FindTextStart     : af_ITextRange_FindTextStart;
         FindTextEnd       : af_ITextRange_FindTextEnd;
         Delete            : af_ITextRange_Delete;
         Cut               : af_ITextRange_Cut;
         Copy              : af_ITextRange_Copy;
         Paste             : af_ITextRange_Paste;
         CanPaste          : af_ITextRange_CanPaste;
         CanEdit           : af_ITextRange_CanEdit;
         ChangeCase        : af_ITextRange_ChangeCase;
         GetPoint          : af_ITextRange_GetPoint;
         SetPoint          : af_ITextRange_SetPoint;
         ScrollIntoView    : af_ITextRange_ScrollIntoView;
         GetEmbeddedObject : af_ITextRange_GetEmbeddedObject;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextRangeVtbl);

   function To_Pointer_To_ITextRange is
     new Ada.Unchecked_Conversion
     (GNATCOM.Types.Pointer_To_Void, Pointer_To_ITextRange);

   --  Element Index         : 2
   --  Element Name          : ITextRange
   --  Element Type          : Dispatch

   ITextRange_Get_Text          : constant := 0;
   ITextRange_Put_Text          : constant := 0;
   ITextRange_Get_Char          : constant := 513;
   ITextRange_Put_Char          : constant := 513;
   ITextRange_Get_Duplicate     : constant := 514;
   ITextRange_Get_FormattedText : constant := 515;
   ITextRange_Put_FormattedText : constant := 515;
   ITextRange_Get_Start         : constant := 516;
   ITextRange_Put_Start         : constant := 516;
   ITextRange_Get_End           : constant := 517;
   ITextRange_Put_End           : constant := 517;
   ITextRange_Get_Font          : constant := 518;
   ITextRange_Put_Font          : constant := 518;
   ITextRange_Get_Para          : constant := 519;
   ITextRange_Put_Para          : constant := 519;
   ITextRange_Get_StoryLength   : constant := 520;
   ITextRange_Get_StoryType     : constant := 521;
   ITextRange_Collapse          : constant := 528;
   ITextRange_Expand            : constant := 529;
   ITextRange_GetIndex          : constant := 530;
   ITextRange_SetIndex          : constant := 531;
   ITextRange_SetRange          : constant := 532;
   ITextRange_InRange           : constant := 533;
   ITextRange_InStory           : constant := 534;
   ITextRange_IsEqual           : constant := 535;
   ITextRange_uSelect           : constant := 536;
   ITextRange_StartOf           : constant := 537;
   ITextRange_EndOf             : constant := 544;
   ITextRange_Move              : constant := 545;
   ITextRange_MoveStart         : constant := 546;
   ITextRange_MoveEnd           : constant := 547;
   ITextRange_MoveWhile         : constant := 548;
   ITextRange_MoveStartWhile    : constant := 549;
   ITextRange_MoveEndWhile      : constant := 550;
   ITextRange_MoveUntil         : constant := 551;
   ITextRange_MoveStartUntil    : constant := 552;
   ITextRange_MoveEndUntil      : constant := 553;
   ITextRange_FindText          : constant := 560;
   ITextRange_FindTextStart     : constant := 561;
   ITextRange_FindTextEnd       : constant := 562;
   ITextRange_Delete            : constant := 563;
   ITextRange_Cut               : constant := 564;
   ITextRange_Copy              : constant := 565;
   ITextRange_Paste             : constant := 566;
   ITextRange_CanPaste          : constant := 567;
   ITextRange_CanEdit           : constant := 568;
   ITextRange_ChangeCase        : constant := 569;
   ITextRange_GetPoint          : constant := 576;
   ITextRange_SetPoint          : constant := 577;
   ITextRange_ScrollIntoView    : constant := 578;
   ITextRange_GetEmbeddedObject : constant := 579;

   --  Element Index         : 3
   --  Element Name          : ITextSelection
   --  Element Type          : Dispatch

   IID_ITextSelection : aliased GNATCOM.Types.GUID :=
     GNATCOM.GUID.To_GUID ("{8CC497C1-A1DF-11CE-8098-00AA0047BE5D}");

   type af_ITextSelection_QueryInterface is access
     function (This   : access ITextSelection;
               riid   : GNATCOM.Types.Pointer_To_GUID;
               ppvObj : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_QueryInterface);

   type af_ITextSelection_AddRef is access
     function (This : access ITextSelection)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextSelection_AddRef);

   type af_ITextSelection_Release is access
     function (This : access ITextSelection)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextSelection_Release);

   type af_ITextSelection_GetTypeInfoCount is access
     function (This    : access ITextSelection;
               pctinfo : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_GetTypeInfoCount);

   type af_ITextSelection_GetTypeInfo is access
     function (This    : access ITextSelection;
               itinfo  : Interfaces.C.unsigned;
               lcid    : Interfaces.C.unsigned_long;
               pptinfo : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_GetTypeInfo);

   type af_ITextSelection_GetIDsOfNames is access
     function (This      : access ITextSelection;
               riid      : GNATCOM.Types.Pointer_To_GUID;
               rgszNames : GNATCOM.Types.Pointer_To_Pointer_To_char;
               cNames    : Interfaces.C.unsigned;
               lcid      : Interfaces.C.unsigned_long;
               rgdispid  : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_GetIDsOfNames);

   type af_ITextSelection_Invoke is access
     function (This         : access ITextSelection;
               dispidMember : Interfaces.C.long;
               riid         : GNATCOM.Types.Pointer_To_GUID;
               lcid         : Interfaces.C.unsigned_long;
               wFlags       : Interfaces.C.unsigned_short;
               pdispparams  : GNATCOM.Types.Pointer_To_DISPPARAMS;
               pvarResult   : access GNATCOM.Types.VARIANT;
               pexcepinfo   : GNATCOM.Types.Pointer_To_EXCEPINFO;
               puArgErr     : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Invoke);

   type af_ITextSelection_Get_Text is access
     function (This  : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Text);

   type af_ITextSelection_Put_Text is access
     function (This  : access ITextSelection;
               pbstr : GNATCOM.Types.BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_Text);

   type af_ITextSelection_Get_Char is access
     function (This : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Char);

   type af_ITextSelection_Put_Char is access
     function (This : access ITextSelection;
               pch  : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_Char);

   type af_ITextSelection_Get_Duplicate is access
     function (This    : access ITextSelection;
               RetVal : Pointer_To_Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Duplicate);

   type af_ITextSelection_Get_FormattedText is access
     function (This    : access ITextSelection;
               RetVal : Pointer_To_Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_FormattedText);

   type af_ITextSelection_Put_FormattedText is access
     function (This    : access ITextSelection;
               ppRange : Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_FormattedText);

   type af_ITextSelection_Get_Start is access
     function (This     : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Start);

   type af_ITextSelection_Put_Start is access
     function (This     : access ITextSelection;
               pcpFirst : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_Start);

   type af_ITextSelection_Get_End is access
     function (This   : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_End);

   type af_ITextSelection_Put_End is access
     function (This   : access ITextSelection;
               pcpLim : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_End);

   type af_ITextSelection_Get_Font is access
     function (This  : access ITextSelection;
               RetVal : Pointer_To_Pointer_To_ITextFont)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Font);

   type af_ITextSelection_Put_Font is access
     function (This  : access ITextSelection;
               pFont : Pointer_To_ITextFont)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_Font);

   type af_ITextSelection_Get_Para is access
     function (This  : access ITextSelection;
               RetVal : Pointer_To_Pointer_To_ITextPara)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Para);

   type af_ITextSelection_Put_Para is access
     function (This  : access ITextSelection;
               pPara : Pointer_To_ITextPara)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_Para);

   type af_ITextSelection_Get_StoryLength is access
     function (This : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_StoryLength);

   type af_ITextSelection_Get_StoryType is access
     function (This   : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_StoryType);

   type af_ITextSelection_Collapse is access
     function (This   : access ITextSelection;
               bStart : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Collapse);

   type af_ITextSelection_Expand is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Expand);

   type af_ITextSelection_GetIndex is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_GetIndex);

   type af_ITextSelection_SetIndex is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Index  : Interfaces.C.long;
               Extend : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_SetIndex);

   type af_ITextSelection_SetRange is access
     function (This     : access ITextSelection;
               cpActive : Interfaces.C.long;
               cpOther  : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_SetRange);

   type af_ITextSelection_InRange is access
     function (This   : access ITextSelection;
               pRange : Pointer_To_ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_InRange);

   type af_ITextSelection_InStory is access
     function (This   : access ITextSelection;
               pRange : Pointer_To_ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_InStory);

   type af_ITextSelection_IsEqual is access
     function (This   : access ITextSelection;
               pRange : Pointer_To_ITextRange;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_IsEqual);

   type af_ITextSelection_uSelect is access
     function (This : access ITextSelection)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_uSelect);

   type af_ITextSelection_StartOf is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_StartOf);

   type af_ITextSelection_EndOf is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_EndOf);

   type af_ITextSelection_Move is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Move);

   type af_ITextSelection_MoveStart is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveStart);

   type af_ITextSelection_MoveEnd is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveEnd);

   type af_ITextSelection_MoveWhile is access
     function (This   : access ITextSelection;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveWhile);

   type af_ITextSelection_MoveStartWhile is access
     function (This   : access ITextSelection;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveStartWhile);

   type af_ITextSelection_MoveEndWhile is access
     function (This   : access ITextSelection;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveEndWhile);

   type af_ITextSelection_MoveUntil is access
     function (This   : access ITextSelection;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveUntil);

   type af_ITextSelection_MoveStartUntil is access
     function (This   : access ITextSelection;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveStartUntil);

   type af_ITextSelection_MoveEndUntil is access
     function (This   : access ITextSelection;
               Cset   : access GNATCOM.Types.VARIANT;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveEndUntil);

   type af_ITextSelection_FindText is access
     function (This    : access ITextSelection;
               bstr    : GNATCOM.Types.BSTR;
               cch     : Interfaces.C.long;
               Flags   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_FindText);

   type af_ITextSelection_FindTextStart is access
     function (This    : access ITextSelection;
               bstr    : GNATCOM.Types.BSTR;
               cch     : Interfaces.C.long;
               Flags   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_FindTextStart);

   type af_ITextSelection_FindTextEnd is access
     function (This    : access ITextSelection;
               bstr    : GNATCOM.Types.BSTR;
               cch     : Interfaces.C.long;
               Flags   : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_FindTextEnd);

   type af_ITextSelection_Delete is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Delete);

   type af_ITextSelection_Cut is access
     function (This : access ITextSelection;
               pVar : access GNATCOM.Types.VARIANT)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Cut);

   type af_ITextSelection_Copy is access
     function (This : access ITextSelection;
               pVar : access GNATCOM.Types.VARIANT)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Copy);

   type af_ITextSelection_Paste is access
     function (This   : access ITextSelection;
               pVar   : access GNATCOM.Types.VARIANT;
               Format : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Paste);

   type af_ITextSelection_CanPaste is access
     function (This   : access ITextSelection;
               pVar   : access GNATCOM.Types.VARIANT;
               Format : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_CanPaste);

   type af_ITextSelection_CanEdit is access
     function (This      : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_CanEdit);

   type af_ITextSelection_ChangeCase is access
     function (This  : access ITextSelection;
               uType : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_ChangeCase);

   type af_ITextSelection_GetPoint is access
     function (This  : access ITextSelection;
               uType : Interfaces.C.long;
               px    : GNATCOM.Types.Pointer_To_long;
               py    : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_GetPoint);

   type af_ITextSelection_SetPoint is access
     function (This   : access ITextSelection;
               x      : Interfaces.C.long;
               y      : Interfaces.C.long;
               uType  : Interfaces.C.long;
               Extend : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_SetPoint);

   type af_ITextSelection_ScrollIntoView is access
     function (This  : access ITextSelection;
               Value : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_ScrollIntoView);

   type af_ITextSelection_GetEmbeddedObject is access
     function (This : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_Pointer_To_IUnknown)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_GetEmbeddedObject);

   type af_ITextSelection_Get_Flags is access
     function (This   : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Flags);

   type af_ITextSelection_Put_Flags is access
     function (This   : access ITextSelection;
               pFlags : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Put_Flags);

   type af_ITextSelection_Get_Type is access
     function (This  : access ITextSelection;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_Get_Type);

   type af_ITextSelection_MoveLeft is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveLeft);

   type af_ITextSelection_MoveRight is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveRight);

   type af_ITextSelection_MoveUp is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveUp);

   type af_ITextSelection_MoveDown is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Count  : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_MoveDown);

   type af_ITextSelection_HomeKey is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_HomeKey);

   type af_ITextSelection_EndKey is access
     function (This   : access ITextSelection;
               Unit   : Interfaces.C.long;
               Extend : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_EndKey);

   type af_ITextSelection_TypeText is access
     function (This : access ITextSelection;
               bstr : GNATCOM.Types.BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextSelection_TypeText);

   type ITextSelectionVtbl;
   type Pointer_To_ITextSelectionVtbl is access all ITextSelectionVtbl;

   type ITextSelection is
      record
         Vtbl : Pointer_To_ITextSelectionVtbl;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextSelection);

   type ITextSelectionVtbl is
      record
         QueryInterface    : af_ITextSelection_QueryInterface;
         AddRef            : af_ITextSelection_AddRef;
         Release           : af_ITextSelection_Release;
         GetTypeInfoCount  : af_ITextSelection_GetTypeInfoCount;
         GetTypeInfo       : af_ITextSelection_GetTypeInfo;
         GetIDsOfNames     : af_ITextSelection_GetIDsOfNames;
         Invoke            : af_ITextSelection_Invoke;
         Get_Text          : af_ITextSelection_Get_Text;
         Put_Text          : af_ITextSelection_Put_Text;
         Get_Char          : af_ITextSelection_Get_Char;
         Put_Char          : af_ITextSelection_Put_Char;
         Get_Duplicate     : af_ITextSelection_Get_Duplicate;
         Get_FormattedText : af_ITextSelection_Get_FormattedText;
         Put_FormattedText : af_ITextSelection_Put_FormattedText;
         Get_Start         : af_ITextSelection_Get_Start;
         Put_Start         : af_ITextSelection_Put_Start;
         Get_End           : af_ITextSelection_Get_End;
         Put_End           : af_ITextSelection_Put_End;
         Get_Font          : af_ITextSelection_Get_Font;
         Put_Font          : af_ITextSelection_Put_Font;
         Get_Para          : af_ITextSelection_Get_Para;
         Put_Para          : af_ITextSelection_Put_Para;
         Get_StoryLength   : af_ITextSelection_Get_StoryLength;
         Get_StoryType     : af_ITextSelection_Get_StoryType;
         Collapse          : af_ITextSelection_Collapse;
         Expand            : af_ITextSelection_Expand;
         GetIndex          : af_ITextSelection_GetIndex;
         SetIndex          : af_ITextSelection_SetIndex;
         SetRange          : af_ITextSelection_SetRange;
         InRange           : af_ITextSelection_InRange;
         InStory           : af_ITextSelection_InStory;
         IsEqual           : af_ITextSelection_IsEqual;
         uSelect           : af_ITextSelection_uSelect;
         StartOf           : af_ITextSelection_StartOf;
         EndOf             : af_ITextSelection_EndOf;
         Move              : af_ITextSelection_Move;
         MoveStart         : af_ITextSelection_MoveStart;
         MoveEnd           : af_ITextSelection_MoveEnd;
         MoveWhile         : af_ITextSelection_MoveWhile;
         MoveStartWhile    : af_ITextSelection_MoveStartWhile;
         MoveEndWhile      : af_ITextSelection_MoveEndWhile;
         MoveUntil         : af_ITextSelection_MoveUntil;
         MoveStartUntil    : af_ITextSelection_MoveStartUntil;
         MoveEndUntil      : af_ITextSelection_MoveEndUntil;
         FindText          : af_ITextSelection_FindText;
         FindTextStart     : af_ITextSelection_FindTextStart;
         FindTextEnd       : af_ITextSelection_FindTextEnd;
         Delete            : af_ITextSelection_Delete;
         Cut               : af_ITextSelection_Cut;
         Copy              : af_ITextSelection_Copy;
         Paste             : af_ITextSelection_Paste;
         CanPaste          : af_ITextSelection_CanPaste;
         CanEdit           : af_ITextSelection_CanEdit;
         ChangeCase        : af_ITextSelection_ChangeCase;
         GetPoint          : af_ITextSelection_GetPoint;
         SetPoint          : af_ITextSelection_SetPoint;
         ScrollIntoView    : af_ITextSelection_ScrollIntoView;
         GetEmbeddedObject : af_ITextSelection_GetEmbeddedObject;
         Get_Flags         : af_ITextSelection_Get_Flags;
         Put_Flags         : af_ITextSelection_Put_Flags;
         Get_Type          : af_ITextSelection_Get_Type;
         MoveLeft          : af_ITextSelection_MoveLeft;
         MoveRight         : af_ITextSelection_MoveRight;
         MoveUp            : af_ITextSelection_MoveUp;
         MoveDown          : af_ITextSelection_MoveDown;
         HomeKey           : af_ITextSelection_HomeKey;
         EndKey            : af_ITextSelection_EndKey;
         TypeText          : af_ITextSelection_TypeText;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextSelectionVtbl);

   function To_Pointer_To_ITextSelection is
     new Ada.Unchecked_Conversion
     (GNATCOM.Types.Pointer_To_Void, Pointer_To_ITextSelection);

   --  Element Index         : 3
   --  Element Name          : ITextSelection
   --  Element Type          : Dispatch

   ITextSelection_Get_Text          : constant := 0;
   ITextSelection_Put_Text          : constant := 0;
   ITextSelection_Get_Char          : constant := 513;
   ITextSelection_Put_Char          : constant := 513;
   ITextSelection_Get_Duplicate     : constant := 514;
   ITextSelection_Get_FormattedText : constant := 515;
   ITextSelection_Put_FormattedText : constant := 515;
   ITextSelection_Get_Start         : constant := 516;
   ITextSelection_Put_Start         : constant := 516;
   ITextSelection_Get_End           : constant := 517;
   ITextSelection_Put_End           : constant := 517;
   ITextSelection_Get_Font          : constant := 518;
   ITextSelection_Put_Font          : constant := 518;
   ITextSelection_Get_Para          : constant := 519;
   ITextSelection_Put_Para          : constant := 519;
   ITextSelection_Get_StoryLength   : constant := 520;
   ITextSelection_Get_StoryType     : constant := 521;
   ITextSelection_Collapse          : constant := 528;
   ITextSelection_Expand            : constant := 529;
   ITextSelection_GetIndex          : constant := 530;
   ITextSelection_SetIndex          : constant := 531;
   ITextSelection_SetRange          : constant := 532;
   ITextSelection_InRange           : constant := 533;
   ITextSelection_InStory           : constant := 534;
   ITextSelection_IsEqual           : constant := 535;
   ITextSelection_uSelect           : constant := 536;
   ITextSelection_StartOf           : constant := 537;
   ITextSelection_EndOf             : constant := 544;
   ITextSelection_Move              : constant := 545;
   ITextSelection_MoveStart         : constant := 546;
   ITextSelection_MoveEnd           : constant := 547;
   ITextSelection_MoveWhile         : constant := 548;
   ITextSelection_MoveStartWhile    : constant := 549;
   ITextSelection_MoveEndWhile      : constant := 550;
   ITextSelection_MoveUntil         : constant := 551;
   ITextSelection_MoveStartUntil    : constant := 552;
   ITextSelection_MoveEndUntil      : constant := 553;
   ITextSelection_FindText          : constant := 560;
   ITextSelection_FindTextStart     : constant := 561;
   ITextSelection_FindTextEnd       : constant := 562;
   ITextSelection_Delete            : constant := 563;
   ITextSelection_Cut               : constant := 564;
   ITextSelection_Copy              : constant := 565;
   ITextSelection_Paste             : constant := 566;
   ITextSelection_CanPaste          : constant := 567;
   ITextSelection_CanEdit           : constant := 568;
   ITextSelection_ChangeCase        : constant := 569;
   ITextSelection_GetPoint          : constant := 576;
   ITextSelection_SetPoint          : constant := 577;
   ITextSelection_ScrollIntoView    : constant := 578;
   ITextSelection_GetEmbeddedObject : constant := 579;
   ITextSelection_Get_Flags         : constant := 257;
   ITextSelection_Put_Flags         : constant := 257;
   ITextSelection_Get_Type          : constant := 258;
   ITextSelection_MoveLeft          : constant := 259;
   ITextSelection_MoveRight         : constant := 260;
   ITextSelection_MoveUp            : constant := 261;
   ITextSelection_MoveDown          : constant := 262;
   ITextSelection_HomeKey           : constant := 263;
   ITextSelection_EndKey            : constant := 264;
   ITextSelection_TypeText          : constant := 265;

   --  Element Index         : 6
   --  Element Name          : ITextStoryRanges
   --  Element Type          : Dispatch

   IID_ITextStoryRanges : aliased GNATCOM.Types.GUID :=
     GNATCOM.GUID.To_GUID ("{8CC497C5-A1DF-11CE-8098-00AA0047BE5D}");

   type af_ITextStoryRanges_QueryInterface is access
     function (This   : access ITextStoryRanges;
               riid   : GNATCOM.Types.Pointer_To_GUID;
               ppvObj : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_QueryInterface);

   type af_ITextStoryRanges_AddRef is access
     function (This : access ITextStoryRanges)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextStoryRanges_AddRef);

   type af_ITextStoryRanges_Release is access
     function (This : access ITextStoryRanges)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextStoryRanges_Release);

   type af_ITextStoryRanges_GetTypeInfoCount is access
     function (This    : access ITextStoryRanges;
               pctinfo : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_GetTypeInfoCount);

   type af_ITextStoryRanges_GetTypeInfo is access
     function (This    : access ITextStoryRanges;
               itinfo  : Interfaces.C.unsigned;
               lcid    : Interfaces.C.unsigned_long;
               pptinfo : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_GetTypeInfo);

   type af_ITextStoryRanges_GetIDsOfNames is access
     function (This      : access ITextStoryRanges;
               riid      : GNATCOM.Types.Pointer_To_GUID;
               rgszNames : GNATCOM.Types.Pointer_To_Pointer_To_char;
               cNames    : Interfaces.C.unsigned;
               lcid      : Interfaces.C.unsigned_long;
               rgdispid  : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_GetIDsOfNames);

   type af_ITextStoryRanges_Invoke is access
     function (This         : access ITextStoryRanges;
               dispidMember : Interfaces.C.long;
               riid         : GNATCOM.Types.Pointer_To_GUID;
               lcid         : Interfaces.C.unsigned_long;
               wFlags       : Interfaces.C.unsigned_short;
               pdispparams  : GNATCOM.Types.Pointer_To_DISPPARAMS;
               pvarResult   : access GNATCOM.Types.VARIANT;
               pexcepinfo   : GNATCOM.Types.Pointer_To_EXCEPINFO;
               puArgErr     : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_Invoke);

   type af_ITextStoryRanges_uNewEnum is access
     function (This      : access ITextStoryRanges;
               RetVal : GNATCOM.Types.Pointer_To_Pointer_To_IUnknown)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_uNewEnum);

   type af_ITextStoryRanges_Item is access
     function (This    : access ITextStoryRanges;
               Index   : Interfaces.C.long;
               RetVal : Pointer_To_Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_Item);

   type af_ITextStoryRanges_Get_Count is access
     function (This   : access ITextStoryRanges;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextStoryRanges_Get_Count);

   type ITextStoryRangesVtbl;
   type Pointer_To_ITextStoryRangesVtbl is access all ITextStoryRangesVtbl;

   type ITextStoryRanges is
      record
         Vtbl : Pointer_To_ITextStoryRangesVtbl;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextStoryRanges);

   type ITextStoryRangesVtbl is
      record
         QueryInterface   : af_ITextStoryRanges_QueryInterface;
         AddRef           : af_ITextStoryRanges_AddRef;
         Release          : af_ITextStoryRanges_Release;
         GetTypeInfoCount : af_ITextStoryRanges_GetTypeInfoCount;
         GetTypeInfo      : af_ITextStoryRanges_GetTypeInfo;
         GetIDsOfNames    : af_ITextStoryRanges_GetIDsOfNames;
         Invoke           : af_ITextStoryRanges_Invoke;
         uNewEnum         : af_ITextStoryRanges_uNewEnum;
         Item             : af_ITextStoryRanges_Item;
         Get_Count        : af_ITextStoryRanges_Get_Count;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextStoryRangesVtbl);

   function To_Pointer_To_ITextStoryRanges is
     new Ada.Unchecked_Conversion
     (GNATCOM.Types.Pointer_To_Void, Pointer_To_ITextStoryRanges);

   --  Element Index         : 6
   --  Element Name          : ITextStoryRanges
   --  Element Type          : Dispatch

   ITextStoryRanges_uNewEnum  : constant := -4;
   ITextStoryRanges_Item      : constant := 0;
   ITextStoryRanges_Get_Count : constant := 2;

   --  Element Index         : 1
   --  Element Name          : ITextDocument
   --  Element Type          : Dispatch

   IID_ITextDocument : aliased GNATCOM.Types.GUID :=
     GNATCOM.GUID.To_GUID ("{8CC497C0-A1DF-11CE-8098-00AA0047BE5D}");

   type af_ITextDocument_QueryInterface is access
     function (This   : access ITextDocument;
               riid   : GNATCOM.Types.Pointer_To_GUID;
               ppvObj : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_QueryInterface);

   type af_ITextDocument_AddRef is access
     function (This : access ITextDocument)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextDocument_AddRef);

   type af_ITextDocument_Release is access
     function (This : access ITextDocument)
     return Interfaces.C.unsigned_long;
   pragma Convention (StdCall, af_ITextDocument_Release);

   type af_ITextDocument_GetTypeInfoCount is access
     function (This    : access ITextDocument;
               pctinfo : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_GetTypeInfoCount);

   type af_ITextDocument_GetTypeInfo is access
     function (This    : access ITextDocument;
               itinfo  : Interfaces.C.unsigned;
               lcid    : Interfaces.C.unsigned_long;
               pptinfo : GNATCOM.Types.Pointer_To_Pointer_To_Void)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_GetTypeInfo);

   type af_ITextDocument_GetIDsOfNames is access
     function (This      : access ITextDocument;
               riid      : GNATCOM.Types.Pointer_To_GUID;
               rgszNames : GNATCOM.Types.Pointer_To_Pointer_To_char;
               cNames    : Interfaces.C.unsigned;
               lcid      : Interfaces.C.unsigned_long;
               rgdispid  : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_GetIDsOfNames);

   type af_ITextDocument_Invoke is access
     function (This         : access ITextDocument;
               dispidMember : Interfaces.C.long;
               riid         : GNATCOM.Types.Pointer_To_GUID;
               lcid         : Interfaces.C.unsigned_long;
               wFlags       : Interfaces.C.unsigned_short;
               pdispparams  : GNATCOM.Types.Pointer_To_DISPPARAMS;
               pvarResult   : access GNATCOM.Types.VARIANT;
               pexcepinfo   : GNATCOM.Types.Pointer_To_EXCEPINFO;
               puArgErr     : GNATCOM.Types.Pointer_To_unsigned)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Invoke);

   type af_ITextDocument_Get_Name is access
     function (This  : access ITextDocument;
               RetVal : GNATCOM.Types.Pointer_To_BSTR)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Get_Name);

   type af_ITextDocument_Get_Selection is access
     function (This  : access ITextDocument;
               RetVal : Pointer_To_Pointer_To_ITextSelection)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Get_Selection);

   type af_ITextDocument_Get_StoryCount is access
     function (This   : access ITextDocument;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Get_StoryCount);

   type af_ITextDocument_Get_StoryRanges is access
     function (This      : access ITextDocument;
               RetVal : Pointer_To_Pointer_To_ITextStoryRanges)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Get_StoryRanges);

   type af_ITextDocument_Get_Saved is access
     function (This   : access ITextDocument;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Get_Saved);

   type af_ITextDocument_Put_Saved is access
     function (This   : access ITextDocument;
               pValue : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Put_Saved);

   type af_ITextDocument_Get_DefaultTabStop is access
     function (This   : access ITextDocument;
               RetVal : GNATCOM.Types.Pointer_To_C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Get_DefaultTabStop);

   type af_ITextDocument_Put_DefaultTabStop is access
     function (This   : access ITextDocument;
               pValue : Interfaces.C.C_float)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Put_DefaultTabStop);

   type af_ITextDocument_uNew is access
     function (This : access ITextDocument)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_uNew);

   type af_ITextDocument_Open is access
     function (This     : access ITextDocument;
               pVar     : access GNATCOM.Types.VARIANT;
               Flags    : Interfaces.C.long;
               CodePage : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Open);

   type af_ITextDocument_Save is access
     function (This     : access ITextDocument;
               pVar     : access GNATCOM.Types.VARIANT;
               Flags    : Interfaces.C.long;
               CodePage : Interfaces.C.long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Save);

   type af_ITextDocument_Freeze is access
     function (This   : access ITextDocument;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Freeze);

   type af_ITextDocument_Unfreeze is access
     function (This   : access ITextDocument;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Unfreeze);

   type af_ITextDocument_BeginEditCollection is access
     function (This : access ITextDocument)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_BeginEditCollection);

   type af_ITextDocument_EndEditCollection is access
     function (This : access ITextDocument)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_EndEditCollection);

   type af_ITextDocument_Undo is access
     function (This  : access ITextDocument;
               Count : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Undo);

   type af_ITextDocument_Redo is access
     function (This  : access ITextDocument;
               Count : Interfaces.C.long;
               RetVal : GNATCOM.Types.Pointer_To_long)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_Redo);

   type af_ITextDocument_uRange is access
     function (This    : access ITextDocument;
               cp1     : Interfaces.C.long;
               cp2     : Interfaces.C.long;
               RetVal : Pointer_To_Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_uRange);

   type af_ITextDocument_RangeFromPoint is access
     function (This    : access ITextDocument;
               x       : Interfaces.C.long;
               y       : Interfaces.C.long;
               RetVal : Pointer_To_Pointer_To_ITextRange)
     return GNATCOM.Types.HRESULT;
   pragma Convention (StdCall, af_ITextDocument_RangeFromPoint);

   type ITextDocumentVtbl;
   type Pointer_To_ITextDocumentVtbl is access all ITextDocumentVtbl;

   type ITextDocument is
      record
         Vtbl : Pointer_To_ITextDocumentVtbl;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextDocument);

   type ITextDocumentVtbl is
      record
         QueryInterface      : af_ITextDocument_QueryInterface;
         AddRef              : af_ITextDocument_AddRef;
         Release             : af_ITextDocument_Release;
         GetTypeInfoCount    : af_ITextDocument_GetTypeInfoCount;
         GetTypeInfo         : af_ITextDocument_GetTypeInfo;
         GetIDsOfNames       : af_ITextDocument_GetIDsOfNames;
         Invoke              : af_ITextDocument_Invoke;
         Get_Name            : af_ITextDocument_Get_Name;
         Get_Selection       : af_ITextDocument_Get_Selection;
         Get_StoryCount      : af_ITextDocument_Get_StoryCount;
         Get_StoryRanges     : af_ITextDocument_Get_StoryRanges;
         Get_Saved           : af_ITextDocument_Get_Saved;
         Put_Saved           : af_ITextDocument_Put_Saved;
         Get_DefaultTabStop  : af_ITextDocument_Get_DefaultTabStop;
         Put_DefaultTabStop  : af_ITextDocument_Put_DefaultTabStop;
         uNew                : af_ITextDocument_uNew;
         Open                : af_ITextDocument_Open;
         Save                : af_ITextDocument_Save;
         Freeze              : af_ITextDocument_Freeze;
         Unfreeze            : af_ITextDocument_Unfreeze;
         BeginEditCollection : af_ITextDocument_BeginEditCollection;
         EndEditCollection   : af_ITextDocument_EndEditCollection;
         Undo                : af_ITextDocument_Undo;
         Redo                : af_ITextDocument_Redo;
         uRange              : af_ITextDocument_uRange;
         RangeFromPoint      : af_ITextDocument_RangeFromPoint;
      end record;
   pragma Convention (C_Pass_By_Copy, ITextDocumentVtbl);

   function To_Pointer_To_ITextDocument is
     new Ada.Unchecked_Conversion
     (GNATCOM.Types.Pointer_To_Void, Pointer_To_ITextDocument);

   --  Element Index         : 1
   --  Element Name          : ITextDocument
   --  Element Type          : Dispatch

   ITextDocument_Get_Name            : constant := 0;
   ITextDocument_Get_Selection       : constant := 1;
   ITextDocument_Get_StoryCount      : constant := 2;
   ITextDocument_Get_StoryRanges     : constant := 3;
   ITextDocument_Get_Saved           : constant := 4;
   ITextDocument_Put_Saved           : constant := 4;
   ITextDocument_Get_DefaultTabStop  : constant := 5;
   ITextDocument_Put_DefaultTabStop  : constant := 5;
   ITextDocument_uNew                : constant := 6;
   ITextDocument_Open                : constant := 7;
   ITextDocument_Save                : constant := 8;
   ITextDocument_Freeze              : constant := 9;
   ITextDocument_Unfreeze            : constant := 10;
   ITextDocument_BeginEditCollection : constant := 11;
   ITextDocument_EndEditCollection   : constant := 12;
   ITextDocument_Undo                : constant := 13;
   ITextDocument_Redo                : constant := 14;
   ITextDocument_uRange              : constant := 15;
   ITextDocument_RangeFromPoint      : constant := 16;

end TOM;
