From da9f6e8a856fc87172fb0d5997c607b4a930c102 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 20 Jul 2012 09:19:04 +0000 Subject: IEView, IgnoreState: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1070 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/IEView/src/ieview_main.cpp | 118 +++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 plugins/IEView/src/ieview_main.cpp (limited to 'plugins/IEView/src/ieview_main.cpp') diff --git a/plugins/IEView/src/ieview_main.cpp b/plugins/IEView/src/ieview_main.cpp new file mode 100644 index 0000000000..84277c6750 --- /dev/null +++ b/plugins/IEView/src/ieview_main.cpp @@ -0,0 +1,118 @@ +/* + +IEView Plugin for Miranda IM +Copyright (C) 2005-2010 Piotr Piastucki + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ +#include "IEView.h" +#include "m_ieview.h" +#include "ieview_services.h" +#include "Options.h" +#include "Utils.h" +#include "Version.h" + +char *ieviewModuleName; +HINSTANCE hInstance; + +char *workingDirUtf8; +static int ModulesLoaded(WPARAM wParam, LPARAM lParam); +static int PreShutdown(WPARAM wParam, LPARAM lParam); +int hLangpack; + +PLUGININFOEX pluginInfoEx = { + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + {0x0495171b, 0x7137, 0x4ded, {0x97, 0xf8, 0xce, 0x6f, 0xed, 0x67, 0xd6, 0x91}} +}; + +extern "C" BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpvReserved) +{ + hInstance = hModule; + return TRUE; +} + +extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfoEx; +} + +extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_LOGWINDOW, MIID_LAST}; + +extern "C" int __declspec(dllexport) Load(void) +{ + char text[_MAX_PATH]; + char *p, *q; + + int wdsize = GetCurrentDirectory(0, NULL); + TCHAR *workingDir = new TCHAR[wdsize]; + GetCurrentDirectory(wdsize, workingDir); + Utils::convertPath(workingDir); + workingDirUtf8 = Utils::UTF8Encode(workingDir); + delete workingDir; + + GetModuleFileNameA(hInstance, text, sizeof(text)); + p = strrchr(text, '\\'); + p++; + q = strrchr(p, '.'); + *q = '\0'; + ieviewModuleName = _strdup(p); + _strupr(ieviewModuleName); + + + mir_getLP(&pluginInfoEx); + + Utils::hookEvent_Ex(ME_OPT_INITIALISE, IEViewOptInit); + Utils::hookEvent_Ex(ME_SYSTEM_MODULESLOADED, ModulesLoaded); + Utils::hookEvent_Ex(ME_SYSTEM_PRESHUTDOWN, PreShutdown); + + Utils::createServiceFunction_Ex(MS_IEVIEW_WINDOW, HandleIEWindow); + Utils::createServiceFunction_Ex(MS_IEVIEW_EVENT, HandleIEEvent); + Utils::createServiceFunction_Ex(MS_IEVIEW_NAVIGATE, HandleIENavigate); + hHookOptionsChanged = CreateHookableEvent(ME_IEVIEW_OPTIONSCHANGED); + return 0; +} + +static int ModulesLoaded(WPARAM wParam, LPARAM lParam) +{ + IEView::init(); + Options::init(); + return 0; +} + +static int PreShutdown(WPARAM wParam, LPARAM lParam) +{ + return 0; +} + +extern "C" int __declspec(dllexport) Unload(void) +{ + Options::uninit(); + Utils::unhookEvents_Ex(); + Utils::destroyServices_Ex(); + DestroyHookableEvent(hHookOptionsChanged); + IEView::release(); + delete workingDirUtf8; + free( ieviewModuleName ); + return 0; +} -- cgit v1.2.3