diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-02 01:29:14 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-02 01:29:14 +0300 |
commit | e81f9d9a479fd7851caa32ef6d8939ce246b901c (patch) | |
tree | 4f9e7fb5fbc4252ea887652f4574961e28c77b92 /core | |
parent | 952247ad9720ca579d2f6eac596896bc2cddfe6b (diff) |
basic pluglink implementation //it may be completely broken
Diffstat (limited to 'core')
-rw-r--r-- | core/main.cpp | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/core/main.cpp b/core/main.cpp index bcb0e74..44add56 100644 --- a/core/main.cpp +++ b/core/main.cpp @@ -104,12 +104,41 @@ plugin::~plugin() FreeLibrary(hModule); free(szPluginName); } +service::service(const char *name, const SERVICE &service) +{ + szName = new char [strlen(name)+1]; + strcpy(szName, name); + *pService = service; +} +const char *service::getName() +{ + return szName; +} +const SERVICE *service::getService() +{ + return pService; +} INT_PTR CallService(const char *name, WPARAM w, LPARAM l) { + for(list<service*>::iterator p = services.begin(); p != services.end(); p++) + { + if(!strcmp((*p)->getName(), name)) + { + SERVICE s = *(*p)->getService(); + return s(w, l); + } + } + return 0; } -HANDLE CreateServiceFunction(const char *name, SERVICE pService) +HANDLE CreateServiceFunction(const char *name, const SERVICE pService) { + services.push_back(new service(name, pService)); } int ServiceExists(const char *name) { + for(list<service*>::iterator p = services.begin(); p != services.end(); p++) + if(!strcmp((*p)->getName(), name)) + return 1; + return 0; } + |