#pragma once #include "syscb/ifc_syscallback.h" #include "foundation/mkncc.h" namespace Service { // {215CDE06-22A6-424F-9C64-DEDC45D84455} static const GUID event_type = { 0x215cde06, 0x22a6, 0x424f, { 0x9c, 0x64, 0xde, 0xdc, 0x45, 0xd8, 0x44, 0x55 } }; static const int on_register = 0; static const int on_deregister = 1; class SystemCallback : public ifc_sysCallback { protected: GUID WASABICALL SysCallback_GetEventType() { return event_type; } int WASABICALL SysCallback_Notify(int msg, intptr_t param1, intptr_t param2) { const GUID *service_id; switch(msg) { case on_register: service_id = (const GUID *)param1; return ServiceSystemCallback_OnRegister(*service_id, (void *)param2); case on_deregister: service_id = (const GUID *)param1; return ServiceSystemCallback_OnDeregister(*service_id, (void *)param2); default: return NErr_Success; } } virtual int WASABICALL ServiceSystemCallback_OnRegister(GUID service_id, void *service) { return NErr_Success; } virtual int WASABICALL ServiceSystemCallback_OnDeregister(GUID service_id, void *service) { return NErr_Success; } }; }