/* 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. */ #include "headers.h" HINSTANCE hInst = 0; int hLangpack; 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, {0x69b9443b, 0xdc58, 0x4876, { 0xad, 0x39, 0xe3, 0xf4, 0x18, 0xa1, 0x33, 0xc5 } } //{69B9443B-DC58-4876-AD39-E3F418A133C5} }; 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) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) { return &pluginInfoEx; } extern "C" __declspec(dllexport) int Load(void) { mir_getLP(&pluginInfoEx); //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; }