with GNATCOM.IInterface;

package MSHTML.IDebugCallbackNotificationHandler_Interface is

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

   procedure Initialize (This : in out IDebugCallbackNotificationHandler_Type);

   function Pointer (This : IDebugCallbackNotificationHandler_Type)
     return Pointer_To_IDebugCallbackNotificationHandler;

   procedure Attach (This    : in out IDebugCallbackNotificationHandler_Type;
                     Pointer : in     Pointer_To_IDebugCallbackNotificationHandler);

   procedure RequestedCallbackTypes
     (This          : IDebugCallbackNotificationHandler_Type;
      pCallbackMask : GNATCOM.Types.Pointer_To_unsigned_long);

   procedure BeforeDispatchEvent
     (This   : IDebugCallbackNotificationHandler_Type;
      pEvent : GNATCOM.Types.Pointer_To_IUnknown);

   procedure DispatchEventComplete
     (This              : IDebugCallbackNotificationHandler_Type;
      pEvent            : GNATCOM.Types.Pointer_To_IUnknown;
      propagationStatus : Interfaces.C.unsigned_long);

   procedure BeforeInvokeDomCallback
     (This              : IDebugCallbackNotificationHandler_Type;
      pEvent            : GNATCOM.Types.Pointer_To_IUnknown;
      pCallback         : Pointer_To_IScriptEventHandler;
      eStage            : uDOM_EVENT_PHASE;
      propagationStatus : Interfaces.C.unsigned_long);

   procedure InvokeDomCallbackComplete
     (This              : IDebugCallbackNotificationHandler_Type;
      pEvent            : GNATCOM.Types.Pointer_To_IUnknown;
      pCallback         : Pointer_To_IScriptEventHandler;
      eStage            : uDOM_EVENT_PHASE;
      propagationStatus : Interfaces.C.unsigned_long);

   procedure BeforeInvokeCallback
     (This                  : IDebugCallbackNotificationHandler_Type;
      eCallbackType         : uSCRIPT_TIMER_TYPE;
      callbackCookie        : Interfaces.C.unsigned_long;
      pdispHandler          : GNATCOM.Types.Pointer_To_IDispatch;
      ullHandlerCookie      : GNATCOM.Types.DWORDLONG;
      FunctionName          : GNATCOM.Types.BSTR;
      line                  : Interfaces.C.unsigned;
      column                : Interfaces.C.unsigned;
      cchLength             : Interfaces.C.unsigned;
      pDebugDocumentContext : GNATCOM.Types.Pointer_To_IUnknown;
      Free                  : Boolean := True);

   procedure InvokeCallbackComplete
     (This                  : IDebugCallbackNotificationHandler_Type;
      eCallbackType         : uSCRIPT_TIMER_TYPE;
      callbackCookie        : Interfaces.C.unsigned_long;
      pdispHandler          : GNATCOM.Types.Pointer_To_IDispatch;
      ullHandlerCookie      : GNATCOM.Types.DWORDLONG;
      FunctionName          : GNATCOM.Types.BSTR;
      line                  : Interfaces.C.unsigned;
      column                : Interfaces.C.unsigned;
      cchLength             : Interfaces.C.unsigned;
      pDebugDocumentContext : GNATCOM.Types.Pointer_To_IUnknown;
      Free                  : Boolean := True);

end MSHTML.IDebugCallbackNotificationHandler_Interface;

