with GNATCOM.Dispinterface;

package MSHTML.IHTMLDOMImplementation2_Interface is

   type IHTMLDOMImplementation2_Type is
     new GNATCOM.Dispinterface.Dispinterface_Type with null record;

   procedure Initialize (This : in out IHTMLDOMImplementation2_Type);

   function Pointer (This : IHTMLDOMImplementation2_Type)
     return Pointer_To_IHTMLDOMImplementation2;

   procedure Attach (This    : in out IHTMLDOMImplementation2_Type;
                     Pointer : in     Pointer_To_IHTMLDOMImplementation2);

   function createDocumentType
     (This              : IHTMLDOMImplementation2_Type;
      bstrQualifiedName : GNATCOM.Types.BSTR;
      pvarPublicId      : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      pvarSystemId      : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      Free              : Boolean := True)
     return Pointer_To_IDOMDocumentType;

   function createDocument
     (This          : IHTMLDOMImplementation2_Type;
      pvarNS        : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      pvarTagName   : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      pDocumentType : Pointer_To_IDOMDocumentType)
     return Pointer_To_IHTMLDocument7;

   function createHTMLDocument
     (This          : IHTMLDOMImplementation2_Type;
      bstrTitle     : GNATCOM.Types.BSTR;
      Free          : Boolean := True)
     return Pointer_To_IHTMLDocument7;

   function hasFeature
     (This         : IHTMLDOMImplementation2_Type;
      bstrfeature  : GNATCOM.Types.BSTR;
      version      : GNATCOM.Types.VARIANT  := GNATCOM.Types.VARIANT_MISSING;
      Free         : Boolean := True)
     return GNATCOM.Types.VARIANT_BOOL;

end MSHTML.IHTMLDOMImplementation2_Interface;

