From 4b6899c098f97960bf58456313ac8d643336dcd0 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sun, 14 Oct 2012 09:45:11 +0000 Subject: YAMN: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1919 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/YAMN/filterplugin.cpp | 204 ---------------------------------------- 1 file changed, 204 deletions(-) delete mode 100644 protocols/YAMN/filterplugin.cpp (limited to 'protocols/YAMN/filterplugin.cpp') diff --git a/protocols/YAMN/filterplugin.cpp b/protocols/YAMN/filterplugin.cpp deleted file mode 100644 index 8f61003293..0000000000 --- a/protocols/YAMN/filterplugin.cpp +++ /dev/null @@ -1,204 +0,0 @@ -/* - * YAMN plugin export functions for filtering - * - * (c) majvan 2002-2004 - */ - -#include "yamn.h" - -//-------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------- - -PYAMN_FILTERPLUGINQUEUE FirstFilterPlugin=NULL; - -INT_PTR RegisterFilterPluginSvc(WPARAM,LPARAM); - -//Removes plugin from queue and deletes its structures -INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin); - -INT_PTR UnregisterFilterPluginSvc(WPARAM wParam,LPARAM lParam); - -//Removes all filter plugins -INT_PTR UnregisterFilterPlugins(); - -INT_PTR FilterMailSvc(WPARAM,LPARAM); - -//Sets imported functions for an plugin and therefore it starts plugin to be registered and running -// Plugin- plugin, which wants to set its functions -// Importance- importance of plugin (see m_filterplugin.h) -// YAMNFilterFcn- pointer to imported functions -// YAMNfilterFcnVer- version of YAMN_FILTERIMPORTFCN, use YAMN_FILTERIMPORTFCNVERSION -// returns nonzero if success -int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin,DWORD Importance,PYAMN_FILTERIMPORTFCN YAMNFilterFcn,DWORD YAMNFilterFcnVer); - -struct CExportedFunctions FilterPluginExportedFcn[]= -{ - {YAMN_SETFILTERPLUGINFCNIMPORTID,(void *)SetFilterPluginFcnImportFcn}, -}; - -struct CExportedServices FilterPluginExportedSvc[]= -{ - {MS_YAMN_REGISTERFILTERPLUGIN,RegisterFilterPluginSvc}, - {MS_YAMN_UNREGISTERFILTERPLUGIN,UnregisterFilterPluginSvc}, -}; - -//-------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------- - -INT_PTR RegisterFilterPluginSvc(WPARAM wParam,LPARAM lParam) -{ - PYAMN_FILTERREGISTRATION Registration=(PYAMN_FILTERREGISTRATION)wParam; - HYAMNFILTERPLUGIN Plugin; - - if (lParam!=YAMN_FILTERREGISTRATIONVERSION) - return 0; - if ((Registration->Name==NULL) || (Registration->Ver==NULL)) - return NULL; - if (NULL==(Plugin=new YAMN_FILTERPLUGIN)) - return NULL; - - Plugin->PluginInfo=Registration; - - Plugin->FilterFcn=NULL; - -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"::: YAMN- new filter registered: %0x (%s) :::\n",Plugin,Registration->Name); -#endif - return (INT_PTR)Plugin; -} - -INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin) -{ - PYAMN_FILTERPLUGINQUEUE Parser,Found; - - if (FirstFilterPlugin->Plugin==Plugin) - { - Found=FirstFilterPlugin; - FirstFilterPlugin=FirstFilterPlugin->Next; - } - else - { - for (Parser=FirstFilterPlugin;(Parser->Next!=NULL) && (Plugin!=Parser->Next->Plugin);Parser=Parser->Next); - if (Parser->Next!=NULL) - { - Found=Parser->Next; - Parser->Next=Parser->Next->Next; - } - else - Found=NULL; - } - if (Found!=NULL) - { - if (Plugin->FilterFcn->UnLoadFcn!=NULL) - Plugin->FilterFcn->UnLoadFcn((void *)0); - - delete Found->Plugin; - delete Found; -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"::: YAMN- filter %0x unregistered :::\n",Plugin); -#endif - } - else - return 0; - return 1; -} - -INT_PTR UnregisterFilterPluginSvc(WPARAM wParam,LPARAM lParam) -{ - HYAMNFILTERPLUGIN Plugin=(HYAMNFILTERPLUGIN)wParam; - - EnterCriticalSection(&PluginRegCS); - UnregisterFilterPlugin(Plugin); - LeaveCriticalSection(&PluginRegCS); - return 1; -} - -INT_PTR UnregisterFilterPlugins() -{ - EnterCriticalSection(&PluginRegCS); -//We remove protocols from the protocol list - while(FirstFilterPlugin!=NULL) - UnregisterFilterPlugin(FirstFilterPlugin->Plugin); - LeaveCriticalSection(&PluginRegCS); - return 1; -} - -int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin,DWORD Importance,PYAMN_FILTERIMPORTFCN YAMNFilterFcn,DWORD YAMNFilterFcnVer) -{ - PYAMN_FILTERPLUGINQUEUE Parser,Previous; - - if (YAMNFilterFcnVer!=YAMN_FILTERIMPORTFCNVERSION) - return 0; - if (YAMNFilterFcn==NULL) - return 0; - -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"::: YAMN- filter %0x import succeed :::\n",Plugin); -#endif - Plugin->Importance=Importance; - Plugin->FilterFcn=YAMNFilterFcn; - - EnterCriticalSection(&PluginRegCS); -//We add protocol to the protocol list - for (Previous=NULL,Parser=FirstFilterPlugin;Parser!=NULL && Parser->Next!=NULL && Parser->Plugin->Importance<=Importance;Previous=Parser,Parser=Parser->Next); - if (Previous==NULL) //insert to the beginnig of queue - { - FirstFilterPlugin=new YAMN_FILTERPLUGINQUEUE; - FirstFilterPlugin->Plugin=Plugin; - FirstFilterPlugin->Next=Parser; - } - else - { - Previous->Next=new YAMN_FILTERPLUGINQUEUE; - Previous=Previous->Next; //leave previous, go to actual plugin - Previous->Plugin=Plugin; - Previous->Next=Parser; //and in actual plugin set, that next plugin is the one we insert in front of - } - - LeaveCriticalSection(&PluginRegCS); - return 1; -} - -INT_PTR FilterMailSvc(WPARAM wParam,LPARAM lParam) -{ - HACCOUNT Account=(HACCOUNT)wParam; - HYAMNMAIL Mail=(HYAMNMAIL)lParam; - PYAMN_FILTERPLUGINQUEUE ActualPlugin; - - EnterCriticalSection(&PluginRegCS); -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"FilterMail:ActualAccountMsgsSO-write wait\n"); -#endif - WaitToWriteFcn(Account->MessagesAccessSO); -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"FilterMail:ActualAccountMsgsSO-write enter\n"); -#endif - for (ActualPlugin=FirstFilterPlugin;ActualPlugin!=NULL;ActualPlugin=ActualPlugin->Next) - { - if (ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr!=NULL) - { -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"\tFiltering Mail, running plugin %0x to filter mail\n",ActualPlugin->Plugin); -#endif - ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr(Account,YAMN_ACCOUNTVERSION,Mail,YAMN_MAILVERSION); -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"\tFiltering Mail done\n"); -#endif - } - } - Mail->Flags|=YAMN_MSG_FILTERED; - -//Set mail flags according to spamlevel settings - if ((Mail->Flags & YAMN_MSG_SPAMMASK) > YAMN_MSG_SPAML1) - Mail->Flags=Mail->Flags & ~(YAMN_MSG_BROWSER | YAMN_MSG_POPUP | YAMN_MSG_SYSTRAY | YAMN_MSG_SOUND | YAMN_MSG_APP | YAMN_MSG_NEVENT); - if (YAMN_MSG_SPAML(Mail->Flags,YAMN_MSG_SPAML3) || YAMN_MSG_SPAML(Mail->Flags,YAMN_MSG_SPAML4)) - Mail->Flags=Mail->Flags | (YAMN_MSG_AUTODELETE | YAMN_MSG_DELETEOK); //set message to delete - if (YAMN_MSG_SPAML(Mail->Flags,YAMN_MSG_SPAML3)) - Mail->Flags=Mail->Flags & ~(YAMN_MSG_MEMDELETE); //set message not to delete it immidiatelly from memory -#ifdef DEBUG_SYNCHRO - DebugLog(SynchroFile,"FilterMail:ActualAccountMsgsSO-write done\n"); -#endif - WriteDoneFcn(Account->MessagesAccessSO); - LeaveCriticalSection(&PluginRegCS); - return 1; -} -- cgit v1.2.3