with GNATCOM.IInterface;

package MSHTML.IMarkupServices2_Interface is

   type IMarkupServices2_Type is
     new GNATCOM.IInterface.Interface_Type with null record;

   procedure Initialize (This : in out IMarkupServices2_Type);

   function Pointer (This : IMarkupServices2_Type)
     return Pointer_To_IMarkupServices2;

   procedure Attach (This    : in out IMarkupServices2_Type;
                     Pointer : in     Pointer_To_IMarkupServices2);

   procedure CreateMarkupPointer
     (This      : IMarkupServices2_Type;
      ppPointer : Pointer_To_Pointer_To_IMarkupPointer);

   procedure CreateMarkupContainer
     (This              : IMarkupServices2_Type;
      ppMarkupContainer : Pointer_To_Pointer_To_IMarkupContainer);

   procedure createElement
     (This          : IMarkupServices2_Type;
      tagID         : uELEMENT_TAG_ID;
      pchAttributes : GNATCOM.Types.Pointer_To_unsigned_short;
      ppElement     : Pointer_To_Pointer_To_IHTMLElement);

   procedure CloneElement
     (This              : IMarkupServices2_Type;
      pElemCloneThis    : Pointer_To_IHTMLElement;
      ppElementTheClone : Pointer_To_Pointer_To_IHTMLElement);

   procedure InsertElement
     (This           : IMarkupServices2_Type;
      pElementInsert : Pointer_To_IHTMLElement;
      pPointerStart  : Pointer_To_IMarkupPointer;
      pPointerFinish : Pointer_To_IMarkupPointer);

   procedure RemoveElement
     (This           : IMarkupServices2_Type;
      pElementRemove : Pointer_To_IHTMLElement);

   procedure remove
     (This           : IMarkupServices2_Type;
      pPointerStart  : Pointer_To_IMarkupPointer;
      pPointerFinish : Pointer_To_IMarkupPointer);

   procedure Copy
     (This                 : IMarkupServices2_Type;
      pPointerSourceStart  : Pointer_To_IMarkupPointer;
      pPointerSourceFinish : Pointer_To_IMarkupPointer;
      pPointerTarget       : Pointer_To_IMarkupPointer);

   procedure move
     (This                 : IMarkupServices2_Type;
      pPointerSourceStart  : Pointer_To_IMarkupPointer;
      pPointerSourceFinish : Pointer_To_IMarkupPointer;
      pPointerTarget       : Pointer_To_IMarkupPointer);

   procedure InsertText
     (This           : IMarkupServices2_Type;
      pchText        : GNATCOM.Types.Pointer_To_unsigned_short;
      cch            : Interfaces.C.long;
      pPointerTarget : Pointer_To_IMarkupPointer);

   procedure ParseString
     (This              : IMarkupServices2_Type;
      pchHTML           : GNATCOM.Types.Pointer_To_unsigned_short;
      dwFlags           : Interfaces.C.unsigned_long;
      ppContainerResult : Pointer_To_Pointer_To_IMarkupContainer;
      ppPointerStart    : Pointer_To_IMarkupPointer;
      ppPointerFinish   : Pointer_To_IMarkupPointer);

   procedure ParseGlobal
     (This              : IMarkupServices2_Type;
      hglobalHTML       : wireHGLOBAL;
      dwFlags           : Interfaces.C.unsigned_long;
      ppContainerResult : Pointer_To_Pointer_To_IMarkupContainer;
      pPointerStart     : Pointer_To_IMarkupPointer;
      pPointerFinish    : Pointer_To_IMarkupPointer);

   procedure IsScopedElement
     (This     : IMarkupServices2_Type;
      pElement : Pointer_To_IHTMLElement;
      pfScoped : GNATCOM.Types.Pointer_To_long);

   procedure GetElementTagId
     (This     : IMarkupServices2_Type;
      pElement : Pointer_To_IHTMLElement;
      ptagId   : Pointer_To_uELEMENT_TAG_ID);

   procedure GetTagIDForName
     (This     : IMarkupServices2_Type;
      bstrName : GNATCOM.Types.BSTR;
      ptagId   : Pointer_To_uELEMENT_TAG_ID;
      Free     : Boolean := True);

   procedure GetNameForTagID
     (This      : IMarkupServices2_Type;
      tagID     : uELEMENT_TAG_ID;
      pbstrName : GNATCOM.Types.Pointer_To_BSTR);

   procedure MovePointersToRange
     (This           : IMarkupServices2_Type;
      pIRange        : Pointer_To_IHTMLTxtRange;
      pPointerStart  : Pointer_To_IMarkupPointer;
      pPointerFinish : Pointer_To_IMarkupPointer);

   procedure MoveRangeToPointers
     (This           : IMarkupServices2_Type;
      pPointerStart  : Pointer_To_IMarkupPointer;
      pPointerFinish : Pointer_To_IMarkupPointer;
      pIRange        : Pointer_To_IHTMLTxtRange);

   procedure BeginUndoUnit
     (This     : IMarkupServices2_Type;
      pchTitle : GNATCOM.Types.Pointer_To_unsigned_short);

   procedure EndUndoUnit
     (This : IMarkupServices2_Type);

   procedure ParseGlobalEx
     (This              : IMarkupServices2_Type;
      hglobalHTML       : wireHGLOBAL;
      dwFlags           : Interfaces.C.unsigned_long;
      pContext          : Pointer_To_IMarkupContainer;
      ppContainerResult : Pointer_To_Pointer_To_IMarkupContainer;
      pPointerStart     : Pointer_To_IMarkupPointer;
      pPointerFinish    : Pointer_To_IMarkupPointer);

   procedure ValidateElements
     (This             : IMarkupServices2_Type;
      pPointerStart    : Pointer_To_IMarkupPointer;
      pPointerFinish   : Pointer_To_IMarkupPointer;
      pPointerTarget   : Pointer_To_IMarkupPointer;
      pPointerStatus   : Pointer_To_IMarkupPointer;
      ppElemFailBottom : Pointer_To_Pointer_To_IHTMLElement;
      ppElemFailTop    : Pointer_To_Pointer_To_IHTMLElement);

   procedure SaveSegmentsToClipboard
     (This         : IMarkupServices2_Type;
      pSegmentList : Pointer_To_ISegmentList;
      dwFlags      : Interfaces.C.unsigned_long);

end MSHTML.IMarkupServices2_Interface;

