with GNATCOM.Dispinterface;

package MSHTML.IDOMKeyboardEvent_Interface is

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

   procedure Initialize (This : in out IDOMKeyboardEvent_Type);

   function Pointer (This : IDOMKeyboardEvent_Type)
     return Pointer_To_IDOMKeyboardEvent;

   procedure Attach (This    : in out IDOMKeyboardEvent_Type;
                     Pointer : in     Pointer_To_IDOMKeyboardEvent);

   function Get_key
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.BSTR;

   function Get_location
     (This : IDOMKeyboardEvent_Type)
     return Interfaces.C.unsigned_long;

   function Get_ctrlKey
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_shiftKey
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_altKey
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_metaKey
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function Get_repeat
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   function getModifierState
     (This   : IDOMKeyboardEvent_Type;
      keyArg : GNATCOM.Types.BSTR;
      Free   : Boolean := True)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure initKeyboardEvent
     (This             : IDOMKeyboardEvent_Type;
      eventType        : GNATCOM.Types.BSTR;
      canBubble        : GNATCOM.Types.VARIANT_BOOL;
      cancelable       : GNATCOM.Types.VARIANT_BOOL;
      viewArg          : Pointer_To_IHTMLWindow2;
      keyArg           : GNATCOM.Types.BSTR;
      locationArg      : Interfaces.C.unsigned_long;
      modifiersListArg : GNATCOM.Types.BSTR;
      repeat           : GNATCOM.Types.VARIANT_BOOL;
      locale           : GNATCOM.Types.BSTR;
      Free             : Boolean := True);

   function Get_keyCode
     (This : IDOMKeyboardEvent_Type)
     return Interfaces.C.long;

   function Get_charCode
     (This : IDOMKeyboardEvent_Type)
     return Interfaces.C.long;

   function Get_which
     (This : IDOMKeyboardEvent_Type)
     return Interfaces.C.long;

   function Get_ie9_char
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.VARIANT;

   function Get_locale
     (This : IDOMKeyboardEvent_Type)
     return GNATCOM.Types.BSTR;

end MSHTML.IDOMKeyboardEvent_Interface;

