// Copyright © 2010 sss // // 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 "commonheaders.h" #define PLUGIN_NAME "juick" HINSTANCE hInst; static HANDLE hAccountsChanges, hDbContactAdded; PLUGINLINK *pluginLink; static int OnModulesLoaded(WPARAM wParam,LPARAM lParam); extern char *date(); list Accounts; struct MM_INTERFACE mmi; struct UTF8_INTERFACE utfi; PLUGININFOEX pluginInfo={ sizeof(PLUGININFOEX), 0, PLUGIN_MAKE_VERSION(0,0,0,1), "Extended juick features support for miranda", "sss", "sss123next@list.ru", "© 2010 sss", "http://sss.chaoslab.ru/tracker/mim_plugs/", 1, //unicode 0, //doesn't replace anything built-in { 0x9bc43876, 0xfc68, 0x43b4, { 0x9c, 0x3a, 0xc7, 0x1d, 0x4, 0x3e, 0x34, 0x47 } } }; BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { hInst=hinstDLL; return TRUE; } extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) { static char plugname[52]; strcpy(plugname, PLUGIN_NAME" ["); strcat(plugname, date()); strcat(plugname, " "); strcat(plugname, __TIME__); strcat(plugname, "]"); pluginInfo.shortName = plugname; return &pluginInfo; } static const MUUID interfaces[] = {MIID_SERVICEMODE, MIID_LAST}; extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) { return interfaces; } extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) { pluginLink=link; HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); mir_getMMI(&mmi); mir_getUTFI(&utfi); return 0; } void InitVars() { } extern int JuickOptInit(WPARAM wParam,LPARAM lParam); extern int GetJabberInterface(WPARAM, LPARAM); extern int HandleDbNewContact(WPARAM w, LPARAM l); extern int HandleDbContactDeleted(WPARAM w, LPARAM l); extern void FindJuickAccounts(); static int OnModulesLoaded(WPARAM wParam,LPARAM lParam) { GetJabberInterface(0,0); HookEvent(ME_OPT_INITIALISE, JuickOptInit); hAccountsChanges = HookEvent(ME_PROTO_ACCLISTCHANGED, GetJabberInterface); hDbContactAdded = HookEvent(ME_DB_CONTACT_ADDED, HandleDbNewContact); hDbContactAdded = HookEvent(ME_DB_CONTACT_DELETED, HandleDbContactDeleted); FindJuickAccounts(); return 0; } extern int GetJabberAPIs(WPARAM, LPARAM); extern "C" int __declspec(dllexport) Unload(void) { return 0; }