From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- stopspam/src/stopspam.cpp | 103 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 stopspam/src/stopspam.cpp (limited to 'stopspam/src/stopspam.cpp') diff --git a/stopspam/src/stopspam.cpp b/stopspam/src/stopspam.cpp new file mode 100644 index 0000000..4b84d10 --- /dev/null +++ b/stopspam/src/stopspam.cpp @@ -0,0 +1,103 @@ +#include "../headers.h" + +struct MM_INTERFACE mmi; + +UTF8_INTERFACE utfi; + +HANDLE hFunc; + + +///////////////////////////////////////////////////////////////////////////////////////// +// returns plugin's extended information + +// {553811EE-DEB6-48b8-8902-A8A00C1FD679} +#define MIID_STOPSPAM { 0x553811ee, 0xdeb6, 0x48b8, { 0x89, 0x2, 0xa8, 0xa0, 0xc, 0x1f, 0xd6, 0x79 } } + +PLUGININFOEX pluginInfoEx = { + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), + __DESC, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + 0, + MIID_STOPSPAM +}; + +PLUGINLINK *pluginLink; +HINSTANCE hInst; + +_inline unsigned int MakeVer(int a,int b,int c,int d) +{ + return PLUGIN_MAKE_VERSION(a,b,c,d); +} + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + if ( mirandaVersion < MakeVer(__PRODVERSION_STRING)) + return NULL; + + return &pluginInfoEx; +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) +{ + hInst = hinstDLL; + return TRUE; +} + + +///////////////////////////////////////////////////////////////////////////////////////// +// returns plugin's interfaces information + +static const MUUID interfaces[] = { MIID_STOPSPAM, MIID_LAST }; + +extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) +{ + return interfaces; +} + +extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) +{ + CLISTMENUITEM mi; + pluginLink = link; + mir_getMMI(&mmi); + mir_getUTFI(&utfi); + + plSets=new Settings; + + hFunc = CreateServiceFunction(MS_STOPSPAM_CONTACTPASSED, IsContactPassed); + + HookEvent(ME_SYSTEM_MODULESLOADED, OnSystemModulesLoaded); + + // Add deliting temporary contacts + CreateServiceFunction(pluginName"/RemoveTempContacts", RemoveTempContacts); + ZeroMemory(&mi, sizeof(mi)); + mi.cbSize = sizeof(mi); + mi.position = -0x7FFFFFFF; + mi.flags = CMIF_TCHAR; + mi.hIcon=LoadSkinnedIcon(SKINICON_OTHER_MIRANDA); + mi.ptszName = _T("Remove Temporary Contacts"); + mi.pszService = pluginName"/RemoveTempContacts"; + CallService(MS_CLIST_ADDMAINMENUITEM, 0, (LPARAM)&mi); + + miranda::EventHooker::HookAll(); + return 0; +} + +extern "C" int __declspec(dllexport) Unload(void) +{ + miranda::EventHooker::UnhookAll(); + + if(hFunc) + { + DestroyServiceFunction(hFunc); + hFunc = 0; + } + delete plSets; + + return 0; +} \ No newline at end of file -- cgit v1.2.3