From 63ca8bdac66f5b91d22bff6ea5b649aea8b8f1f9 Mon Sep 17 00:00:00 2001 From: sje Date: Mon, 2 Jul 2007 05:52:03 +0000 Subject: allow for multiple accounts (module name from filename - ala dll copy) git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@240 4f64403b-2f21-0410-a795-97e2b3489a10 --- MySpace/MySpace.cpp | 18 ++++++++++++++++++ MySpace/common.h | 2 +- MySpace/menu.cpp | 12 +++++++----- MySpace/net.cpp | 5 ++++- MySpace/options.cpp | 2 +- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/MySpace/MySpace.cpp b/MySpace/MySpace.cpp index c06690d..e9c9276 100644 --- a/MySpace/MySpace.cpp +++ b/MySpace/MySpace.cpp @@ -16,6 +16,8 @@ PLUGINLINK *pluginLink; HANDLE mainThread; int code_page; +char MODULE[256]; + PLUGININFOEX pluginInfo={ sizeof(PLUGININFOEX), __PLUGIN_NAME, @@ -116,6 +118,22 @@ extern "C" __declspec (dllexport) int Load(PLUGINLINK *link) { code_page = (int)CallService(MS_LANGPACK_GETCODEPAGE, 0, 0); + + // Get module name from DLL file name + { + char* str1; + char str2[MAX_PATH]; + + GetModuleFileNameA(hInst, str2, MAX_PATH); + str1 = strrchr(str2, '\\'); + if (str1 != NULL && strlen(str1+1) > 4) { + strncpy(MODULE, str1+1, strlen(str1+1)-4); + MODULE[strlen(str1+1)-3] = 0; + } + CharUpperA(MODULE); + } + + if(ServiceExists(MS_DB_SETSETTINGRESIDENT)) { // 0.6+ char buff[256]; mir_snprintf(buff, 256, "%s/%s", MODULE, "Status"); diff --git a/MySpace/common.h b/MySpace/common.h index 4a4f3de..36a072c 100644 --- a/MySpace/common.h +++ b/MySpace/common.h @@ -61,7 +61,7 @@ #endif //////////// -#define MODULE "MySpace" +extern char MODULE[256]; #define CLIENT_VER 673 diff --git a/MySpace/menu.cpp b/MySpace/menu.cpp index 20ba408..d23b94e 100644 --- a/MySpace/menu.cpp +++ b/MySpace/menu.cpp @@ -46,21 +46,23 @@ int PrebuildContactMenu(WPARAM wParam, LPARAM lParam) { void InitMenu() { CLISTMENUITEM menu = {0}; menu.cbSize=sizeof(menu); + char buff[512]; menu.flags = CMIM_ALL | CMIF_TCHAR; menu.hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, 0, 0, 0); - // main menu item - hServiceMenuMain = CreateServiceFunction(MODULE "/MainMenu", MainMenuService); + hServiceMenuMain = CreateProtoServiceFunction(MODULE, "/MainMenu", MainMenuService); menu.ptszName = TranslateT(MODULE); - menu.pszService = MODULE "/MainMenu"; + mir_snprintf(buff, 512, "%s%s", MODULE, "/MainMenu"); + menu.pszService = buff; menu.position = 0; hMenuMain = (HANDLE)CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&menu); // contact menu item - hServiceMenuContact = CreateServiceFunction(MODULE "/ContactMenu", ContactMenuService); + hServiceMenuContact = CreateProtoServiceFunction(MODULE, "/ContactMenu", ContactMenuService); menu.ptszName = TranslateT(MODULE); - menu.pszService = MODULE "/ContactMenu"; + mir_snprintf(buff, 512, "%s%s", MODULE, "/ContactMenu"); + menu.pszService = buff; menu.position = 0; menu.flags = CMIF_NOTOFFLINE; // only show for not-offline contacts hMenuContact = (HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,0,(LPARAM)&menu); diff --git a/MySpace/net.cpp b/MySpace/net.cpp index 812c551..998e3cf 100644 --- a/MySpace/net.cpp +++ b/MySpace/net.cpp @@ -8,7 +8,10 @@ void InitNetlib() { nl_user.cbSize = sizeof(nl_user); nl_user.szSettingsModule = MODULE; nl_user.flags = NUF_OUTGOING | NUF_HTTPCONNS; - nl_user.szDescriptiveName = MODULE; + + char buff[512]; + mir_snprintf(buff, 512, "%s server connection", MODULE); + nl_user.szDescriptiveName = buff; hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nl_user); } diff --git a/MySpace/options.cpp b/MySpace/options.cpp index 5257798..308a5ca 100644 --- a/MySpace/options.cpp +++ b/MySpace/options.cpp @@ -114,7 +114,7 @@ int OptInit(WPARAM wParam, LPARAM lParam) { odp.hInstance = hInst; odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT1); - odp.ptszTitle = TranslateT(MODULE); + odp.ptszTitle = TranslateTS(MODULE); odp.ptszGroup = TranslateT("Network"); odp.ptszTab = TranslateT("Account"); odp.nIDBottomSimpleControl = 0; -- cgit v1.2.3