// ----------------------------------------------------------------------------
// Generated by InterfaceFactory [Wed May 07 00:58:36 2003]
// 
// File        : syscb.h
// Class       : SysCallback
// class layer : Dispatchable Interface
// ----------------------------------------------------------------------------

#ifndef __SYSCALLBACK_H
#define __SYSCALLBACK_H

#include <bfc/dispatch.h>
#include <bfc/platform/types.h>
//#include <bfc/common.h>
#include <bfc/std_mkncc.h>
#include <stddef.h>

// ----------------------------------------------------------------------------

class SysCallback: public Dispatchable {
  protected:
    SysCallback() {}
    ~SysCallback() {}
  public:
    
public:
// -- begin generated - edit in syscbi.h
enum {	// event types
 NONE = 0,
 RUNLEVEL	= MK4CC('r','u','n','l'),	// system runlevel
 CONSOLE	= MK3CC('c','o','n'),	// debug messages
 SKINCB	= MK4CC('s','k','i','n'),	// skin unloading/loading
 DB		= MK2CC('d','b'),		// database change messages
 WINDOW	= MK3CC('w','n','d'),	// window events
 GC		= MK2CC('g','c'),		// garbage collection event
 POPUPEXIT	= MK4CC('p','o','p','x'), // popup exit 
 CMDLINE	= MK4CC('c','m','d','l'),	// command line sent (possibly from outside)
 SYSMEM	= MK4CC('s','y','s','m'),	// api->sysMalloc/sysFree
 SERVICE	= MK3CC('s','v','c'),
 BROWSER = MK3CC('u','r','l'), // browser open requests
 META = MK4CC('m','e','t','a'), // metadata changes
 AUTH = MK4CC('a','u','t','h'), // credentials change
};
// -- end generated

  public:
    FOURCC getEventType();
    int notify(int msg, intptr_t param1 = 0, intptr_t param2 = 0);
  
  protected:
    enum {
      SYSCALLBACK_GETEVENTTYPE = 101,
      SYSCALLBACK_NOTIFY = 200,
    };
};

// ----------------------------------------------------------------------------

inline FOURCC SysCallback::getEventType() {
  FOURCC __retval = _call(SYSCALLBACK_GETEVENTTYPE, (FOURCC)NULL);
  return __retval;
}
#pragma warning(push)
#pragma warning(disable:4244)
inline int SysCallback::notify(int msg, intptr_t param1, intptr_t param2) {
  int __retval = _call(SYSCALLBACK_NOTIFY, (int)0, msg, param1, param2);
  return __retval;
}
#pragma warning(pop)

// ----------------------------------------------------------------------------

#endif // __SYSCALLBACK_H
