From a29237f73b954461088a5cd59f9593b9d874ce34 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 13 Aug 2012 18:27:35 +0000 Subject: fix for the Profile Manager plugin. it returned to the plugin's list git-svn-id: http://svn.miranda-ng.org/main/trunk@1446 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/ProfileManager/src/pmanagerEx.cpp | 106 ++++++++++++++++++++++++++++++ plugins/ProfileManager/src/resource.h | 17 +++++ 2 files changed, 123 insertions(+) create mode 100644 plugins/ProfileManager/src/pmanagerEx.cpp create mode 100644 plugins/ProfileManager/src/resource.h (limited to 'plugins/ProfileManager/src') diff --git a/plugins/ProfileManager/src/pmanagerEx.cpp b/plugins/ProfileManager/src/pmanagerEx.cpp new file mode 100644 index 0000000000..e2d9f0a3de --- /dev/null +++ b/plugins/ProfileManager/src/pmanagerEx.cpp @@ -0,0 +1,106 @@ +/* +Miranda plugin template, originally by Richard Hughes +http://miranda-icq.sourceforge.net/ + +This file is placed in the public domain. Anybody is free to use or +modify it as they wish with no restriction. +There is no warranty. +*/ +#define MIRANDA_VER 0x0A00 + +#include +#include + +#include +#include +#include +#include +#include + +#include "resource.h" + +HINSTANCE hInst; + +TCHAR fn[MAX_PATH]; +TCHAR lmn[MAX_PATH]; +TCHAR* pathn; +int hLangpack; +HANDLE hLoadPM, hChangePM; + +PLUGININFOEX pluginInfo={ + sizeof(PLUGININFOEX), + "Miranda IM Profile Changer", + PLUGIN_MAKE_VERSION(0,0,0,3), + "Adds a menu item to change or load a different profile of Miranda IM.", + "Roman Gemini", + "woobind@ukr.net", + "© 2008 - 2010 Roman Gemini", + "http://miranda-ng.org/", + UNICODE_AWARE, + {0x7eeeb55e, 0x9d83, 0x4e1a, { 0xa1, 0x2f, 0x8f, 0x13, 0xf1, 0xa1, 0x24, 0xfb } } +}; + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + hInst = hinstDLL; + return TRUE; +} + +static INT_PTR ChangePM(WPARAM wParam, LPARAM lParam) +{ + GetModuleFileName(GetModuleHandle(NULL), fn, SIZEOF(fn)); + ShellExecute(0, _T("open"), fn, _T("/ForceShowPM"), _T(""), 1); + CallService("CloseAction", 0, 0); + return 0; +} + +static INT_PTR LoadPM(WPARAM wParam, LPARAM lParam) +{ + GetModuleFileName(GetModuleHandle(NULL), fn, SIZEOF(fn)); + ShellExecute(0, _T("open"), fn, _T("/ForceShowPM"), _T(""), 1); + return 0; +} + +extern "C" __declspec(dllexport) int Load(void) +{ + CLISTMENUITEM mi; + + mir_getLP(&pluginInfo); + + hLoadPM = CreateServiceFunction("Database/LoadPM", LoadPM); + ZeroMemory(&mi, sizeof(mi)); + mi.cbSize = sizeof(mi); + mi.position = -500200000; + mi.flags = CMIF_TCHAR; + mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_LoadPM)); + mi.ptszPopupName = _T("Database"); + mi.ptszName = _T("Load profile"); + mi.pszService = "Database/LoadPM"; + Menu_AddMainMenuItem(&mi); + + hChangePM = CreateServiceFunction("Database/ChangePM", ChangePM); + ZeroMemory(&mi, sizeof(mi)); + mi.cbSize = sizeof(mi); + mi.position = -500200000; + mi.flags = CMIF_TCHAR; + mi.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ChangePM)); + mi.ptszPopupName = _T("Database"); + mi.ptszName = _T("Change profile"); + mi.pszService = "Database/ChangePM"; + Menu_AddMainMenuItem(&mi); + + return 0; +} + +extern "C" __declspec(dllexport) int Unload(void) +{ + DestroyServiceFunction(hLoadPM); + DestroyServiceFunction(hChangePM); + + return 0; +} diff --git a/plugins/ProfileManager/src/resource.h b/plugins/ProfileManager/src/resource.h new file mode 100644 index 0000000000..638fcfb4f6 --- /dev/null +++ b/plugins/ProfileManager/src/resource.h @@ -0,0 +1,17 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by resource.rc +// +#define IDI_ChangePM 101 +#define IDI_LoadPM 102 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 105 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1007 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif -- cgit v1.2.3