diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-05-15 10:38:20 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-05-15 10:38:20 +0000 |
commit | 48540940b6c28bb4378abfeb500ec45a625b37b6 (patch) | |
tree | 2ef294c0763e802f91d868bdef4229b6868527de /plugins/mTextControl/src/main.cpp | |
parent | 5c350913f011e119127baeb32a6aedeb4f0d33bc (diff) |
initial commit
git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/mTextControl/src/main.cpp')
-rw-r--r-- | plugins/mTextControl/src/main.cpp | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/plugins/mTextControl/src/main.cpp b/plugins/mTextControl/src/main.cpp new file mode 100644 index 0000000000..16dbc20015 --- /dev/null +++ b/plugins/mTextControl/src/main.cpp @@ -0,0 +1,143 @@ +/*
+Miranda Text Control - Plugin for Miranda IM
+
+Copyright © 2005 Victor Pavlychko (nullbie@gmail.com),
+ © 2010 Merlin_de
+
+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.
+
+===============================================================================
+
+File name : $HeadURL: main.cpp $
+Revision : $Revision: $
+Last change on : $Date: 2010-07-03 15:25:00 $
+Last change by : $Author: Merlin_de $
+
+===============================================================================
+*/
+
+#include "headers.h"
+
+HINSTANCE hInst = 0;
+PLUGINLINK *pluginLink = 0;
+
+HMODULE hMsfteditDll = 0;
+HRESULT (WINAPI *MyCreateTextServices)(IUnknown *punkOuter, ITextHost *pITextHost, IUnknown **ppUnk);
+
+PLUGININFOEX pluginInfoEx =
+{
+ sizeof(PLUGININFOEX),
+ MTEXT_DISPLAYNAME,
+ PLUGIN_MAKE_VERSION(__MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM),
+ MTEXT_DESCRIPTION,
+ MTEXT_AUTHOR,
+ MTEXT_EMAIL,
+ MTEXT_COPYRIGHT,
+ MTEXT_WEBPAGE,
+ UNICODE_AWARE,
+ 0,
+ MTEXT_UUID
+};
+
+PLUGININFO pluginInfo =
+{
+ sizeof(PLUGININFO),
+ pluginInfoEx.shortName,
+ pluginInfoEx.version,
+ pluginInfoEx.description,
+ pluginInfoEx.author,
+ pluginInfoEx.authorEmail,
+ pluginInfoEx.copyright,
+ pluginInfoEx.homepage,
+ pluginInfoEx.flags,
+ pluginInfoEx.replacesDefaultModule
+};
+
+extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
+{
+ hInst=hinstDLL;
+ return TRUE;
+}
+
+static HANDLE hModulesLoaded = 0;
+static int ModulesLoaded(WPARAM wParam,LPARAM lParam);
+
+extern "C" __declspec(dllexport) PLUGININFO *MirandaPluginInfo(DWORD mirandaVersion)
+{
+ pluginInfo.cbSize = sizeof(PLUGININFO);
+ return &pluginInfo;
+}
+
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ pluginInfoEx.cbSize = sizeof(PLUGININFOEX);
+ return &pluginInfoEx;
+}
+
+extern "C" __declspec(dllexport) const MUUID *MirandaPluginInterfaces(void)
+{
+ static const MUUID interfaces[] = { MTEXT_UUID, MIID_LAST };
+ return interfaces;
+}
+
+extern "C" __declspec(dllexport) int Load(PLUGINLINK *link)
+{
+ pluginLink = link;
+
+ //6.0A SDK is missing RichEd20.lib for x64
+ //http://connect.microsoft.com/VisualStudio/feedback/details/551071/the-6-0a-sdk-is-missing-riched20-lib-for-x64
+ MyCreateTextServices = 0;
+ hMsfteditDll = LoadLibrary(_T("msftedit.dll"));
+ if (hMsfteditDll) {
+ MyCreateTextServices = (HRESULT (WINAPI *)(
+ IUnknown *punkOuter,
+ ITextHost *pITextHost,
+ IUnknown **ppUnk))
+ GetProcAddress(hMsfteditDll, "CreateTextServices");
+ }
+
+// LoadFancy();
+ LoadEmfCache();
+ LoadRichEdit();
+ LoadTextUsers();
+ LoadServices();
+ //LoadOptions();
+
+ MTextControl_RegisterClass();
+ hModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded);
+ return 0;
+}
+
+static int ModulesLoaded(WPARAM wParam,LPARAM lParam)
+{
+// char fn[MAX_PATH+1];
+// GetModuleFileName(hInst, fn, MAX_PATH);
+// InitFancy();
+// InitIcons(icons, fn, iconCount);
+ return 0;
+}
+
+extern "C" __declspec(dllexport) int Unload(void)
+{
+ UnhookEvent(hModulesLoaded);
+// UnloadOptions();
+ UnloadServices();
+ UnloadTextUsers();
+ UnloadRichEdit();
+ UnloadEmfCache();
+// UnloadFancy();
+ FreeLibrary(hMsfteditDll);
+ return 0;
+}
|