#pragma once #include #include #include enum {ServiceFactoryPatch, SysCallbackPatch }; class LazyServiceFactory : public MultiPatch, public MultiPatch { public: LazyServiceFactory(FOURCC _service_type, GUID _service_guid, char *_service_name, char *_service_test_string, const wchar_t *_service_filename); ~LazyServiceFactory(); FOURCC GetServiceType(); const char *GetServiceName(); GUID GetGUID(); void *GetInterface(int global_lock); int SupportNonLockingInterface(); int ReleaseInterface(void *ifc); const char *GetTestString(); int ServiceNotify(int msg, intptr_t param1, intptr_t param2); FOURCC GetEventType() { return SysCallback::SERVICE; } int Notify(int msg, intptr_t param1, intptr_t param2); protected: RECVS_MULTIPATCH; FOURCC service_type; char *service_name; GUID service_guid; wchar_t service_filename[MAX_PATH]; char *service_test_string; };