summaryrefslogtreecommitdiff
path: root/plugins/MirLua/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/MirLua/src/main.cpp')
-rw-r--r--plugins/MirLua/src/main.cpp19
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;