with GNATCOM.IInterface;

package MSHTML.IMarkupPointer2_Interface is

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

   procedure Initialize (This : in out IMarkupPointer2_Type);

   function Pointer (This : IMarkupPointer2_Type)
     return Pointer_To_IMarkupPointer2;

   procedure Attach (This    : in out IMarkupPointer2_Type;
                     Pointer : in     Pointer_To_IMarkupPointer2);

   procedure OwningDoc
     (This  : IMarkupPointer2_Type;
      ppDoc : Pointer_To_Pointer_To_IHTMLDocument2);

   procedure Gravity
     (This     : IMarkupPointer2_Type;
      pGravity : Pointer_To_uPOINTER_GRAVITY);

   procedure SetGravity
     (This    : IMarkupPointer2_Type;
      Gravity : uPOINTER_GRAVITY);

   procedure Cling
     (This    : IMarkupPointer2_Type;
      pfCling : GNATCOM.Types.Pointer_To_long);

   procedure SetCling
     (This   : IMarkupPointer2_Type;
      fCLing : Interfaces.C.long);

   procedure Unposition
     (This : IMarkupPointer2_Type);

   procedure IsPositioned
     (This         : IMarkupPointer2_Type;
      pfPositioned : GNATCOM.Types.Pointer_To_long);

   procedure GetContainer
     (This        : IMarkupPointer2_Type;
      ppContainer : Pointer_To_Pointer_To_IMarkupContainer);

   procedure MoveAdjacentToElement
     (This     : IMarkupPointer2_Type;
      pElement : Pointer_To_IHTMLElement;
      eAdj     : uELEMENT_ADJACENCY);

   procedure MoveToPointer
     (This     : IMarkupPointer2_Type;
      pPointer : Pointer_To_IMarkupPointer);

   procedure MoveToContainer
     (This       : IMarkupPointer2_Type;
      pContainer : Pointer_To_IMarkupContainer;
      fAtStart   : Interfaces.C.long);

   procedure left
     (This      : IMarkupPointer2_Type;
      fMove     : Interfaces.C.long;
      pContext  : Pointer_To_uMARKUP_CONTEXT_TYPE;
      ppElement : Pointer_To_Pointer_To_IHTMLElement;
      pcch      : GNATCOM.Types.Pointer_To_long;
      pchText   : GNATCOM.Types.Pointer_To_unsigned_short);

   procedure right
     (This      : IMarkupPointer2_Type;
      fMove     : Interfaces.C.long;
      pContext  : Pointer_To_uMARKUP_CONTEXT_TYPE;
      ppElement : Pointer_To_Pointer_To_IHTMLElement;
      pcch      : GNATCOM.Types.Pointer_To_long;
      pchText   : GNATCOM.Types.Pointer_To_unsigned_short);

   procedure CurrentScope
     (This          : IMarkupPointer2_Type;
      ppElemCurrent : Pointer_To_Pointer_To_IHTMLElement);

   procedure IsLeftOf
     (This         : IMarkupPointer2_Type;
      pPointerThat : Pointer_To_IMarkupPointer;
      pfResult     : GNATCOM.Types.Pointer_To_long);

   procedure IsLeftOfOrEqualTo
     (This         : IMarkupPointer2_Type;
      pPointerThat : Pointer_To_IMarkupPointer;
      pfResult     : GNATCOM.Types.Pointer_To_long);

   procedure IsRightOf
     (This         : IMarkupPointer2_Type;
      pPointerThat : Pointer_To_IMarkupPointer;
      pfResult     : GNATCOM.Types.Pointer_To_long);

   procedure IsRightOfOrEqualTo
     (This         : IMarkupPointer2_Type;
      pPointerThat : Pointer_To_IMarkupPointer;
      pfResult     : GNATCOM.Types.Pointer_To_long);

   procedure IsEqualTo
     (This         : IMarkupPointer2_Type;
      pPointerThat : Pointer_To_IMarkupPointer;
      pfAreEqual   : GNATCOM.Types.Pointer_To_long);

   procedure MoveUnit
     (This     : IMarkupPointer2_Type;
      muAction : uMOVEUNIT_ACTION);

   procedure findText
     (This        : IMarkupPointer2_Type;
      pchFindText : GNATCOM.Types.LPWSTR;
      dwFlags     : Interfaces.C.unsigned_long;
      pIEndMatch  : Pointer_To_IMarkupPointer;
      pIEndSearch : Pointer_To_IMarkupPointer);

   procedure IsAtWordBreak
     (This      : IMarkupPointer2_Type;
      pfAtBreak : GNATCOM.Types.Pointer_To_long);

   procedure GetMarkupPosition
     (This : IMarkupPointer2_Type;
      plMP : GNATCOM.Types.Pointer_To_long);

   procedure MoveToMarkupPosition
     (This       : IMarkupPointer2_Type;
      pContainer : Pointer_To_IMarkupContainer;
      lMP        : Interfaces.C.long);

   procedure MoveUnitBounded
     (This       : IMarkupPointer2_Type;
      muAction   : uMOVEUNIT_ACTION;
      pIBoundary : Pointer_To_IMarkupPointer);

   procedure IsInsideURL
     (This     : IMarkupPointer2_Type;
      pRight   : Pointer_To_IMarkupPointer;
      pfResult : GNATCOM.Types.Pointer_To_long);

   procedure MoveToContent
     (This      : IMarkupPointer2_Type;
      pIElement : Pointer_To_IHTMLElement;
      fAtStart  : Interfaces.C.long);

end MSHTML.IMarkupPointer2_Interface;

