package body MSHTML.DispHTMLDOMImplementation_Object is

   function hasFeature
     (This        : DispHTMLDOMImplementation_Type;
      bstrfeature : GNATCOM.Types.VARIANT;
      version     : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispHTMLDOMImplementation_hasFeature,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => version,
          2 => bstrfeature),
         Free);
   end hasFeature;

   function createDocumentType
     (This              : DispHTMLDOMImplementation_Type;
      bstrQualifiedName : GNATCOM.Types.VARIANT;
      pvarPublicId      : GNATCOM.Types.VARIANT;
      pvarSystemId      : GNATCOM.Types.VARIANT;
      Free              : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispHTMLDOMImplementation_createDocumentType,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarSystemId,
          2 => pvarPublicId,
          3 => bstrQualifiedName),
         Free);
   end createDocumentType;

   function createDocument
     (This          : DispHTMLDOMImplementation_Type;
      pvarNS        : GNATCOM.Types.VARIANT;
      pvarTagName   : GNATCOM.Types.VARIANT;
      pDocumentType : GNATCOM.Types.VARIANT;
      Free          : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispHTMLDOMImplementation_createDocument,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pDocumentType,
          2 => pvarTagName,
          3 => pvarNS),
         Free);
   end createDocument;

   function createHTMLDocument
     (This      : DispHTMLDOMImplementation_Type;
      bstrTitle : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispHTMLDOMImplementation_createHTMLDocument,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrTitle),
         Free);
   end createHTMLDocument;

   function ie9_hasFeature
     (This        : DispHTMLDOMImplementation_Type;
      bstrfeature : GNATCOM.Types.VARIANT;
      version     : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispHTMLDOMImplementation_ie9_hasFeature,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => version,
          2 => bstrfeature),
         Free);
   end ie9_hasFeature;

   function Get_constructor
     (This : DispHTMLDOMImplementation_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLDOMImplementation_Get_constructor);
   end Get_constructor;

end MSHTML.DispHTMLDOMImplementation_Object;

