diff options
Diffstat (limited to 'plugins/MirLua/src/main.cpp')
-rw-r--r-- | plugins/MirLua/src/main.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/plugins/MirLua/src/main.cpp b/plugins/MirLua/src/main.cpp index 08390a557a..f65f6293ad 100644 --- a/plugins/MirLua/src/main.cpp +++ b/plugins/MirLua/src/main.cpp @@ -3,6 +3,8 @@ int &hLangpack(g_plugin.m_hLang);
CMPlugin g_plugin;
+CMLua *g_mLua;
+
HANDLE g_hCLibsFolder;
HANDLE g_hScriptsFolder;
@@ -25,6 +27,10 @@ PLUGININFOEX pluginInfoEx = };
+CMPlugin::CMPlugin() :
+ PLUGIN<CMPlugin>(MODULENAME, pluginInfoEx)
+{}
+
extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)
{
return &pluginInfoEx;
@@ -40,7 +46,7 @@ int OnOptionsInit(WPARAM wParam, LPARAM) odp.szGroup.w = LPGENW("Services");
odp.szTitle.w = L"Lua";
odp.szTab.w = LPGENW("Scripts");
- odp.pDialog = new CMLuaOptions();
+ odp.pDialog = new CMLuaOptions(g_mLua);
Options_AddPage(wParam, &odp);
return 0;
}
@@ -64,10 +70,15 @@ extern "C" int __declspec(dllexport) Load(void) nlu.szSettingsModule = MODULENAME;
hNetlib = Netlib_RegisterUser(&nlu);
- HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
+ Proto_RegisterModule(PROTOTYPE_FILTER, MODULENAME);
- g_plugin.Load();
+ hRecvMessage = CreateHookableEvent(MODULENAME PSR_MESSAGE);
+ CreateProtoServiceFunction(MODULENAME, PSR_MESSAGE, FilterRecvMessage);
+ g_mLua = new CMLua();
+ g_mLua->Load();
+
+ HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
return 0;
}
@@ -75,6 +86,8 @@ extern "C" int __declspec(dllexport) Load(void) extern "C" int __declspec(dllexport) Unload(void)
{
+ delete g_mLua;
+
if (hNetlib) {
Netlib_CloseHandle(hNetlib);
hNetlib = nullptr;
|