diff options
author | mataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-07-10 19:24:07 +0000 |
---|---|---|
committer | mataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-07-10 19:24:07 +0000 |
commit | 52f1f386d8555632f4ed6e1c74b9628e6cc2e5a0 (patch) | |
tree | 6233a818029c8d25b5279b28b2f0dcbe5837861c | |
parent | 58b0ea8a8ea9ad9509c1921d6ddc349750cccac7 (diff) |
dbeditorpp:
fix unhooking and destroying services
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@145 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
-rw-r--r-- | dbeditorpp/main.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/dbeditorpp/main.cpp b/dbeditorpp/main.cpp index 91563e3..43b2291 100644 --- a/dbeditorpp/main.cpp +++ b/dbeditorpp/main.cpp @@ -19,7 +19,8 @@ HANDLE hUserMenu; HANDLE hRestore;
WatchListArrayStruct WatchListArray;
BYTE UsingIconManager;
-HANDLE sMenuCommand, sRegisterModule, sRegisterSingleModule, sImport;
+HANDLE sMenuCommand, sRegisterModule, sRegisterSingleModule, sImport, sServicemodeLaunch;
+HANDLE hModulesLoadedHook = NULL, hSettingsChangedHook=NULL, hOptInitHook=NULL, hPreShutdownHook=NULL, hTTBHook = NULL;
//========================
// MirandaPluginInfo
@@ -154,7 +155,6 @@ BOOL IsCP_UTF8(void) return GetCPInfo(CP_UTF8, &CPInfo);
}
-HANDLE hTTBHook = NULL;
static int OnTTBLoaded(WPARAM wParam,LPARAM lParam)
{
TTBButtonV2 ttbb = {0};
@@ -178,7 +178,6 @@ static int OnTTBLoaded(WPARAM wParam,LPARAM lParam) return 0;
}
-HANDLE hModulesLoadedHook = NULL;
int ModulesLoaded(WPARAM wParam,LPARAM lParam)
{
DBVARIANT dbv;
@@ -275,9 +274,6 @@ int ModulesLoaded(WPARAM wParam,LPARAM lParam) return 0;
}
-HANDLE hHookedEvents[4] = {0};
-
-
int PreShutdown(WPARAM wParam,LPARAM lParam)
{
int i;
@@ -286,11 +282,11 @@ int PreShutdown(WPARAM wParam,LPARAM lParam) if (hwnd2mainWindow) DestroyWindow(hwnd2mainWindow);
if (hwnd2importWindow) DestroyWindow(hwnd2importWindow);
- for(i=0;i<SIZEOF(hHookedEvents);i++)
- {
- if (hHookedEvents[i]) UnhookEvent(hHookedEvents[i]);
- }
+ UnhookEvent(hSettingsChangedHook);
+ UnhookEvent(hOptInitHook);
+ UnhookEvent(hPreShutdownHook);
+ DestroyServiceFunction(sServicemodeLaunch);
DestroyServiceFunction(sMenuCommand);
DestroyServiceFunction(sRegisterModule);
DestroyServiceFunction(sRegisterSingleModule);
@@ -329,10 +325,9 @@ extern "C" __declspec(dllexport) int Load(PLUGINLINK *link) hwnd2watchedVarsWindow = 0;
hwnd2importWindow = 0;
hRestore = NULL;
- hHookedEvents[0] = HookEvent(ME_DB_CONTACT_SETTINGCHANGED,DBSettingChanged);
- hHookedEvents[1] = HookEvent(ME_OPT_INITIALISE,OptInit);
-// hHookedEvents[2] = HookEvent(ME_CLIST_PREBUILDCONTACTMENU,PrebuildContactMenu);
- HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdown);
+ hSettingsChangedHook = HookEvent(ME_DB_CONTACT_SETTINGCHANGED,DBSettingChanged);
+ hOptInitHook = HookEvent(ME_OPT_INITIALISE,OptInit);
+ hPreShutdownHook = HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdown);
hModulesLoadedHook = HookEvent(ME_SYSTEM_MODULESLOADED,ModulesLoaded);
sMenuCommand = CreateServiceFunction("DBEditorpp/MenuCommand", DBEditorppMenuCommand);
sRegisterModule = CreateServiceFunction("DBEditorpp/RegisterModule", RegisterModule);
@@ -358,7 +353,7 @@ extern "C" __declspec(dllexport) int Load(PLUGINLINK *link) mi.pszContactOwner = NULL;
hUserMenu = (HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM, 0, (LPARAM) & mi);
- hHookedEvents[3] = CreateServiceFunction(MS_SERVICEMODE_LAUNCH, ServiceMode);
+ sServicemodeLaunch = CreateServiceFunction(MS_SERVICEMODE_LAUNCH, ServiceMode);
CallService("DBEditorpp/RegisterSingleModule",(WPARAM)modname,0);
|