30 lines
1.0 KiB
C
30 lines
1.0 KiB
C
|
#pragma once
|
||
|
|
||
|
#include <api/service/waservicefactory.h>
|
||
|
#include <bfc/multipatch.h>
|
||
|
#include <api/syscb/callbacks/svccb.h>
|
||
|
enum {ServiceFactoryPatch, SysCallbackPatch };
|
||
|
class LazyServiceFactory : public MultiPatch<ServiceFactoryPatch, waServiceFactory>, public MultiPatch<SysCallbackPatch, SysCallback>
|
||
|
{
|
||
|
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;
|
||
|
};
|