with GNATCOM.Dispinterface;

package MSHTML.IHTMLStyleSheet_Interface is

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

   procedure Initialize (This : in out IHTMLStyleSheet_Type);

   function Pointer (This : IHTMLStyleSheet_Type)
     return Pointer_To_IHTMLStyleSheet;

   procedure Attach (This    : in out IHTMLStyleSheet_Type;
                     Pointer : in     Pointer_To_IHTMLStyleSheet);

   procedure Put_title
     (This : IHTMLStyleSheet_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_title
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.BSTR;

   function Get_parentStyleSheet
     (This : IHTMLStyleSheet_Type)
     return Pointer_To_IHTMLStyleSheet;

   function Get_owningElement
     (This : IHTMLStyleSheet_Type)
     return Pointer_To_IHTMLElement;

   procedure Put_disabled
     (This : IHTMLStyleSheet_Type;
      p    : GNATCOM.Types.VARIANT_BOOL);

   function Get_disabled
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_readOnly
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_imports
     (This : IHTMLStyleSheet_Type)
     return Pointer_To_IHTMLStyleSheetsCollection;

   procedure Put_href
     (This : IHTMLStyleSheet_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_href
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.BSTR;

   function Get_type
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.BSTR;

   function Get_id
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.BSTR;

   function addImport
     (This    : IHTMLStyleSheet_Type;
      bstrURL : GNATCOM.Types.BSTR;
      lIndex  : Interfaces.C.long;
      Free    : Boolean := True)
     return Interfaces.C.long;

   function addRule
     (This         : IHTMLStyleSheet_Type;
      bstrSelector : GNATCOM.Types.BSTR;
      bstrStyle    : GNATCOM.Types.BSTR;
      lIndex       : Interfaces.C.long;
      Free         : Boolean := True)
     return Interfaces.C.long;

   procedure removeImport
     (This   : IHTMLStyleSheet_Type;
      lIndex : Interfaces.C.long);

   procedure removeRule
     (This   : IHTMLStyleSheet_Type;
      lIndex : Interfaces.C.long);

   procedure Put_media
     (This : IHTMLStyleSheet_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_media
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_cssText
     (This : IHTMLStyleSheet_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_cssText
     (This : IHTMLStyleSheet_Type)
     return GNATCOM.Types.BSTR;

   function Get_rules
     (This : IHTMLStyleSheet_Type)
     return Pointer_To_IHTMLStyleSheetRulesCollection;

end MSHTML.IHTMLStyleSheet_Interface;

