diff options
-rw-r--r-- | plugins/ExternalAPI/m_filterplugin.h | 139 | ||||
-rw-r--r-- | plugins/ExternalAPI/m_yamn.h | 7 | ||||
-rw-r--r-- | protocols/YAMN/YAMN.vcxproj | 1 | ||||
-rw-r--r-- | protocols/YAMN/YAMN.vcxproj.filters | 3 | ||||
-rw-r--r-- | protocols/YAMN/src/filterplugin.cpp | 168 | ||||
-rw-r--r-- | protocols/YAMN/src/proto/pop3/pop3comm.cpp | 53 | ||||
-rw-r--r-- | protocols/YAMN/src/services.cpp | 10 | ||||
-rw-r--r-- | protocols/YAMN/src/stdafx.h | 19 |
8 files changed, 29 insertions, 371 deletions
diff --git a/plugins/ExternalAPI/m_filterplugin.h b/plugins/ExternalAPI/m_filterplugin.h deleted file mode 100644 index 80f7ccd910..0000000000 --- a/plugins/ExternalAPI/m_filterplugin.h +++ /dev/null @@ -1,139 +0,0 @@ -#ifndef __M_FILTERPLUGIN_H
-#define __M_FILTERPLUGIN_H
-
-#include <windows.h>
-#include "m_mails.h" //for mail definition
-
-//
-//================================== IMPORTED FUNCTIONS ==================================
-//
-
-#ifndef YAMN_STANDARDFCN
-typedef DWORD (WINAPI *YAMN_STANDARDFCN)(LPVOID);
-#endif
-typedef DWORD (WINAPI *YAMN_FILTERMAILFCN)(CAccount *,DWORD,HYAMNMAIL,DWORD);
-
-typedef struct CFilterImportFcn
-{
-//If changes are made in this structure, version is changed.
-//So then YAMN does not initialize your structure, if version does not match.
-#define YAMN_FILTERIMPORTFCNVERSION 2
-
-//Function is called to get info from mail and mark mail as spam or not...
- YAMN_FILTERMAILFCN FilterMailFcnPtr;
-
-//Function is called when application exits. Plugin should unload
- YAMN_STANDARDFCN UnLoadFcn;
-} YAMN_FILTERIMPORTFCN, *PYAMN_FILTERIMPORTFCN;
-
-//
-//================================== FILTER PLUGIN REGISTRATION STRUCTURES ==================================
-//
-
-typedef struct CFilterPluginRegistration
-{
-#define YAMN_FILTERREGISTRATIONVERSION 2
-//Name of plugin
-//this member CANNOT be NULL. Just write here description, i.e. "PopFile filter plugin for YAMN"
- char *Name;
-
-//The version of plugin. CANNOT be NULL.
- char *Ver;
-
-//Plugin copyright
-//Write here your copyright if you want (or NULL)
- char *Copyright;
-
-//Plugin description. Can be NULL.
- char *Description;
-
-//Your contact (email). Can be NULL.
- char *Email;
-
-//The web page. Can be NULL.
- char *WWW;
-} YAMN_FILTERREGISTRATION, *PYAMN_FILTERREGISTRATION;
-
-typedef struct CYAMNFilterPlugin
-{
-//Importance of plugin. Mails are filtered in the way, that filter with smallest importance number
-//filters and marks mails first and the filter using the highest number marks mails the last. It means,
-//that number with highest number is the most important, because it can set or clear flags as it wants,
-//if another plugin set some flag, plugin with higher number can clear it.
- DWORD Importance;
-
-//All needed other info from plugin
- PYAMN_FILTERREGISTRATION PluginInfo;
-
-//Imported functions
- PYAMN_FILTERIMPORTFCN FilterFcn;
-} YAMN_FILTERPLUGIN, *PYAMN_FILTERPLUGIN, *HYAMNFILTERPLUGIN;
-
-typedef struct CFilterPluginQueue
-{
- HYAMNFILTERPLUGIN Plugin;
- struct CFilterPluginQueue *Next;
-} YAMN_FILTERPLUGINQUEUE,*PYAMN_FILTERPLUGINQUEUE;
-
-//
-//================================== YAMN SERVICES FOR PROTOCOL PLUGIN ==================================
-//
-
-//RegisterFilterPlugin Service
-//Registers filter plugin
-//WPARAM- pointer to YAMN_FILTERREGISTRATION structure. Plugin must not delete this structure from memory.
-//LPARAM- version of YAMN_FILTERREGISTRATION structure (use YAMN_PROTOREGISTRATIONVERSION definition)
-//returns handle to plugin (HYAMNFILTERPLUGIN), if registration failed (plugin not registered) returns NULL
-//You need next to call SetFilterPluginFcnImportFcn to have your plugin cooperated with YAMN.
-#define MS_YAMN_REGISTERFILTERPLUGIN "YAMN/Service/RegisterFilterPlugin"
-
-//UnregisterFilterPlugin Service
-//Unregisters filter plugin
-//WPARAM- (HYAMNFILTERPLUGIN) plugin handle
-//LPARAM- any value
-//returns nonzero if success
-#define MS_YAMN_UNREGISTERFILTERPLUGIN "YAMN/Service/UnregisterFilterPlugin"
-
-//
-//================================== FUNCTIONS DEFINITIONS ========================================
-//
-
-typedef int (WINAPI *YAMN_SETFILTERPLUGINFCNIMPORTFCN)(HYAMNFILTERPLUGIN Plugin,DWORD Importance,PYAMN_FILTERIMPORTFCN YAMNFilterFcn,DWORD YAMNFilterFcnVer);
-
-//
-//================================== QUICK FUNCTION CALL DEFINITIONS ========================================
-//
-
-//These are defininitions for YAMN exported functions. Your plugin can use them.
-//pYAMNFcn is global variable, it is pointer to your structure containing YAMN functions.
-//It is something similar like pluginLink variable in Miranda plugin. If you use
-//this name of variable, you have already defined these functions and you can use them.
-//It's similar to Miranda's CreateService function.
-
-//How to use YAMN functions:
-//Create a structure containing pointer to functions you want to use in your plugin
-//This structure can look something like this:
-//
-// struct
-// {
-// YAMN_SETFILTERPLUGINFCNIMPORTFCN SetFilterPluginFcnImportFcn;
-// } *pYAMNFcn;
-//
-//then you have to fill this structure with pointers... If you use Miranda services, you will do it like this
-//
-// pYAMNFcn->SetFilterPluginFcnImportFcn=(YAMN_SETFILTERPLUGINFCNIMPORTFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_SETFILTERPLUGINFCNIMPORTID,0);
-//
-//If you do not use Miranda services, call service MS_YAMN_GETFCNPTR directly. The address to the MS_YAMN_GETFCNPTR is sent to you in LoadFilter function:
-//
-// pYAMNFcn->SetFilterPluginFcnImportFcn=(YAMN_SETFILTERPLUGINFCNIMPORTFCN)YAMN_GetFcnPtr((WPARAM)YAMN_SETFILTERPLUGINFCNIMPORTID,0);
-//
-//and in your plugin just simply use e.g.:
-//
-// SetFilterPluginFcnImport(...);
-//
-
-#define YAMN_SETFILTERPLUGINFCNIMPORTID "YAMN/SetFilterPluginFcnImport"
-
-#define SetFilterPluginFcnImport(a,b,c,d) pYAMNFcn->SetFilterPluginFcnImportFcn(a,b,c,d)
-
-#endif
diff --git a/plugins/ExternalAPI/m_yamn.h b/plugins/ExternalAPI/m_yamn.h index 10b4f94513..77ea3cb676 100644 --- a/plugins/ExternalAPI/m_yamn.h +++ b/plugins/ExternalAPI/m_yamn.h @@ -110,13 +110,6 @@ struct CExportedServices //sense to store all this information in memory, etc.
#define MS_YAMN_CLISTDBLCLICK "YAMN/Service/ClistContactDoubleclicked"
-//FilterMail Service
-//Ask YAMN to process mail filtering. YAMN calls filter plugins to mark mail as spam etc... Warning! Leave all
-//read or write access to mail as this function waits for write-access to mail!
-//WPARAM- (HACCOUNT) account to which mail belongs
-//LPARAM- (HYAMNMAIL) mail to filter
-#define MS_YAMN_FILTERMAIL "YAMN/Service/FilterMail"
-
//MailBrowser Service
//runs mail browser window (or tray icon only or popups only)
//WPARAM- pointer to YAMN_MAILBROWSERPARAM structure, data to mailbrowser. You do not need to fill ThreadRunningEV event member.
diff --git a/protocols/YAMN/YAMN.vcxproj b/protocols/YAMN/YAMN.vcxproj index 203ab9c98b..0f6af4ca09 100644 --- a/protocols/YAMN/YAMN.vcxproj +++ b/protocols/YAMN/YAMN.vcxproj @@ -34,7 +34,6 @@ <PrecompiledHeaderFile>..\stdafx.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="src\debug.cpp" />
- <ClCompile Include="src\filterplugin.cpp" />
<ClCompile Include="src\mails\decode.cpp">
<PrecompiledHeaderFile>..\stdafx.h</PrecompiledHeaderFile>
</ClCompile>
diff --git a/protocols/YAMN/YAMN.vcxproj.filters b/protocols/YAMN/YAMN.vcxproj.filters index 0f2b3632b4..3d9a1b8eb9 100644 --- a/protocols/YAMN/YAMN.vcxproj.filters +++ b/protocols/YAMN/YAMN.vcxproj.filters @@ -14,9 +14,6 @@ <ClCompile Include="src\debug.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="src\filterplugin.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="src\mails\decode.cpp">
<Filter>Source Files</Filter>
</ClCompile>
diff --git a/protocols/YAMN/src/filterplugin.cpp b/protocols/YAMN/src/filterplugin.cpp deleted file mode 100644 index 9d22962b8f..0000000000 --- a/protocols/YAMN/src/filterplugin.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/*
- * YAMN plugin export functions for filtering
- *
- * (c) majvan 2002-2004
- */
-
-#include "stdafx.h"
-
- //--------------------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------------------
-
-PYAMN_FILTERPLUGINQUEUE FirstFilterPlugin = nullptr;
-
-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, uint32_t Importance, PYAMN_FILTERIMPORTFCN YAMNFilterFcn, uint32_t 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 == nullptr) || (Registration->Ver == nullptr))
- return NULL;
- if (nullptr == (Plugin = new YAMN_FILTERPLUGIN))
- return NULL;
-
- Plugin->PluginInfo = Registration;
- Plugin->FilterFcn = nullptr;
- 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 != nullptr) && (Plugin != Parser->Next->Plugin); Parser = Parser->Next);
- if (Parser->Next != nullptr) {
- Found = Parser->Next;
- Parser->Next = Parser->Next->Next;
- }
- else
- Found = nullptr;
- }
- if (Found != nullptr) {
- if (Plugin->FilterFcn->UnLoadFcn != nullptr)
- Plugin->FilterFcn->UnLoadFcn((void *)nullptr);
-
- delete Found->Plugin;
- delete Found;
- return 1;
- }
-
- return 0;
-}
-
-INT_PTR UnregisterFilterPluginSvc(WPARAM wParam, LPARAM)
-{
- HYAMNFILTERPLUGIN Plugin = (HYAMNFILTERPLUGIN)wParam;
-
- mir_cslock lck(PluginRegCS);
- UnregisterFilterPlugin(Plugin);
- return 1;
-}
-
-INT_PTR UnregisterFilterPlugins()
-{
- mir_cslock lck(PluginRegCS);
-
- // We remove protocols from the protocol list
- while (FirstFilterPlugin != nullptr)
- UnregisterFilterPlugin(FirstFilterPlugin->Plugin);
- return 1;
-}
-
-int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin, uint32_t Importance, PYAMN_FILTERIMPORTFCN YAMNFilterFcn, uint32_t YAMNFilterFcnVer)
-{
- PYAMN_FILTERPLUGINQUEUE Parser, Previous;
-
- if (YAMNFilterFcnVer != YAMN_FILTERIMPORTFCNVERSION)
- return 0;
- if (YAMNFilterFcn == nullptr)
- return 0;
-
- Plugin->Importance = Importance;
- Plugin->FilterFcn = YAMNFilterFcn;
-
- mir_cslock lck(PluginRegCS);
-
- // We add protocol to the protocol list
- for (Previous = nullptr, Parser = FirstFilterPlugin; Parser != nullptr && Parser->Next != nullptr && Parser->Plugin->Importance <= Importance; Previous = Parser, Parser = Parser->Next);
-
- if (Previous == nullptr) { //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
- }
- return 1;
-}
-
-INT_PTR FilterMailSvc(WPARAM wParam, LPARAM lParam)
-{
- CAccount *Account = (CAccount *)wParam;
- HYAMNMAIL Mail = (HYAMNMAIL)lParam;
- PYAMN_FILTERPLUGINQUEUE ActualPlugin;
-
- mir_cslock lck(PluginRegCS);
- SWriteGuard swa(Account->MessagesAccessSO);
-
- for (ActualPlugin = FirstFilterPlugin; ActualPlugin != nullptr; ActualPlugin = ActualPlugin->Next)
- if (ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr != nullptr)
- ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr(Account, YAMN_ACCOUNTVERSION, Mail, YAMN_MAILVERSION);
-
- 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
-
- return 1;
-}
diff --git a/protocols/YAMN/src/proto/pop3/pop3comm.cpp b/protocols/YAMN/src/proto/pop3/pop3comm.cpp index ba793cd9d3..9d65132475 100644 --- a/protocols/YAMN/src/proto/pop3/pop3comm.cpp +++ b/protocols/YAMN/src/proto/pop3/pop3comm.cpp @@ -405,7 +405,7 @@ DWORD WINAPI SynchroPOP3(struct CheckParam *WhichTemp) CPOP3Account* ActualAccount;
CPop3Client *MyClient;
HYAMNMAIL NewMails = nullptr, MsgQueuePtr = nullptr;
- char *DataRX = nullptr, *Temp;
+ char *DataRX = nullptr;
int mboxsize, msgs, i;
SYSTEMTIME now;
LPVOID YAMNParam;
@@ -567,17 +567,19 @@ DWORD WINAPI SynchroPOP3(struct CheckParam *WhichTemp) mir_snwprintf(accstatus, TranslateT("Reading body %s"), NewMsgsPtr->ID);
SetStatusFcn(ActualAccount, accstatus);
DataRX = MyClient->Top(MsgQueuePtr->Number, 100);
- if (DataRX != nullptr) {
- Temp = DataRX;
- while ((Temp < DataRX + MyClient->NetClient->Rcv) && (WS(Temp) || ENDLINE(Temp))) Temp++;
-
- if (OKLINE(DataRX))
- for (Temp = DataRX; (Temp < DataRX + MyClient->NetClient->Rcv) && (!ENDLINE(Temp)); Temp++);
- while ((Temp < DataRX + MyClient->NetClient->Rcv) && ENDLINE(Temp)) Temp++;
- }
- else
+ if (DataRX == nullptr)
continue;
- //delete all the headers of the old mail MsgQueuePtr->MailData->TranslatedHeader
+
+ char *Temp = DataRX;
+ while ((Temp < DataRX + MyClient->NetClient->Rcv) && (WS(Temp) || ENDLINE(Temp)))
+ Temp++;
+
+ if (OKLINE(DataRX))
+ for (Temp = DataRX; (Temp < DataRX + MyClient->NetClient->Rcv) && (!ENDLINE(Temp)); Temp++);
+ while ((Temp < DataRX + MyClient->NetClient->Rcv) && ENDLINE(Temp))
+ Temp++;
+
+ // delete all the headers of the old mail MsgQueuePtr->MailData->TranslatedHeader
struct CMimeItem *TH = MsgQueuePtr->MailData->TranslatedHeader;
if (TH) for (; MsgQueuePtr->MailData->TranslatedHeader != nullptr;) {
TH = TH->Next;
@@ -624,31 +626,26 @@ DWORD WINAPI SynchroPOP3(struct CheckParam *WhichTemp) mir_snwprintf(accstatus, TranslateT("Reading new mail messages (%d%% done)"), 100 * i / msgs);
SetStatusFcn(ActualAccount, accstatus);
- if (DataRX != nullptr) {
- Temp = DataRX;
- while ((Temp < DataRX + MyClient->NetClient->Rcv) && (WS(Temp) || ENDLINE(Temp))) Temp++;
-
- if (OKLINE(DataRX))
- for (Temp = DataRX; (Temp < DataRX + MyClient->NetClient->Rcv) && (!ENDLINE(Temp)); Temp++);
- while ((Temp < DataRX + MyClient->NetClient->Rcv) && ENDLINE(Temp)) Temp++;
- }
- else
+ if (DataRX == nullptr)
continue;
+
+ char *Temp = DataRX;
+ while ((Temp < DataRX + MyClient->NetClient->Rcv) && (WS(Temp) || ENDLINE(Temp)))
+ Temp++;
- TranslateHeaderFcn(Temp, MyClient->NetClient->Rcv - (Temp - DataRX), &MsgQueuePtr->MailData->TranslatedHeader);
+ if (OKLINE(DataRX))
+ for (Temp = DataRX; (Temp < DataRX + MyClient->NetClient->Rcv) && (!ENDLINE(Temp)); Temp++);
+ while ((Temp < DataRX + MyClient->NetClient->Rcv) && ENDLINE(Temp))
+ Temp++;
+ TranslateHeaderFcn(Temp, MyClient->NetClient->Rcv - (Temp - DataRX), &MsgQueuePtr->MailData->TranslatedHeader);
#ifdef DEBUG_DECODE
DebugLog(DecodeFile, "</New mail>\n");
#endif
MsgQueuePtr->Flags |= YAMN_MSG_NORMALNEW;
- if (autoretr) MsgQueuePtr->Flags |= YAMN_MSG_BODYRECEIVED;
-
- //We are going to filter mail. Warning!- we must not be in read access neither write access to mails when calling this service
- //This is done, because the "NewMails" queue is not synchronised. It is because it is new queue. Only this thread uses new queue yet, it is not
- //connected to account mail queue.
- // CallService(MS_YAMN_FILTERMAIL,(WPARAM)ActualAccount,(LPARAM)MsgQueuePtr);
- FilterMailSvc((WPARAM)ActualAccount, (LPARAM)MsgQueuePtr);
+ if (autoretr)
+ MsgQueuePtr->Flags |= YAMN_MSG_BODYRECEIVED;
if (DataRX != nullptr)
free(DataRX);
diff --git a/protocols/YAMN/src/services.cpp b/protocols/YAMN/src/services.cpp index 180b035a06..d1ce51c96a 100644 --- a/protocols/YAMN/src/services.cpp +++ b/protocols/YAMN/src/services.cpp @@ -254,7 +254,6 @@ int Shutdown(WPARAM, LPARAM) KillTimer(nullptr, SecTimer);
UnregisterProtoPlugins();
- UnregisterFilterPlugins();
return 0;
}
@@ -321,15 +320,6 @@ void CreateServiceFunctions(void) // Function deletes plugin account
CreateServiceFunction(MS_YAMN_DELETEACCOUNTMAIL, DeleteAccountMailSvc);
- // Function with which filter plugin can register
- CreateServiceFunction(MS_YAMN_REGISTERFILTERPLUGIN, RegisterFilterPluginSvc);
-
- // Function with which filter plugin can unregister
- CreateServiceFunction(MS_YAMN_UNREGISTERFILTERPLUGIN, UnregisterFilterPluginSvc);
-
- // Function filters mail
- CreateServiceFunction(MS_YAMN_FILTERMAIL, FilterMailSvc);
-
// Function contact list double click
CreateServiceFunction(MS_YAMN_CLISTDBLCLICK, ClistContactDoubleclicked);
diff --git a/protocols/YAMN/src/stdafx.h b/protocols/YAMN/src/stdafx.h index 25dda0a5f5..0cfd60cda2 100644 --- a/protocols/YAMN/src/stdafx.h +++ b/protocols/YAMN/src/stdafx.h @@ -25,7 +25,6 @@ #include <m_toptoolbar.h>
#include <m_kbdnotify.h>
-#include <m_filterplugin.h>
#include <m_yamn.h>
#include <m_protoplugin.h>
#include <m_folders.h>
@@ -115,23 +114,16 @@ INT_PTR UnregisterProtocolPluginSvc(WPARAM, LPARAM); INT_PTR GetFileNameSvc(WPARAM, LPARAM);
INT_PTR DeleteFileNameSvc(WPARAM, LPARAM);
-//From filterplugin.cpp
-//struct CExportedFunctions FilterPluginExported[];
-INT_PTR UnregisterFilterPlugins();
-INT_PTR RegisterFilterPluginSvc(WPARAM, LPARAM);
-INT_PTR UnregisterFilterPluginSvc(WPARAM, LPARAM);
-INT_PTR FilterMailSvc(WPARAM, LPARAM);
-
-//From mails.cpp (MIME)
-//struct CExportedFunctions MailExported[];
+// From mails.cpp (MIME)
+// struct CExportedFunctions MailExported[];
INT_PTR CreateAccountMailSvc(WPARAM wParam, LPARAM lParam);
INT_PTR DeleteAccountMailSvc(WPARAM wParam, LPARAM lParam);
INT_PTR LoadMailDataSvc(WPARAM wParam, LPARAM lParam);
INT_PTR UnloadMailDataSvc(WPARAM wParam, LPARAM);
INT_PTR SaveMailDataSvc(WPARAM wParam, LPARAM lParam);
-//From mime.cpp
-//void WINAPI ExtractHeaderFcn(char *,int,uint16_t,HYAMNMAIL); //already in MailExported
+// From mime.cpp
+// void WINAPI ExtractHeaderFcn(char *,int,uint16_t,HYAMNMAIL); //already in MailExported
struct _tcptable
{
char *NameBase, *NameSub;
@@ -206,9 +198,6 @@ extern YAMN_PROTOPLUGIN *POP3Plugin; int DecodeQuotedPrintable(char *Src, char *Dst, int DstLen, BOOL isQ);
int DecodeBase64(char *Src, char *Dst, int DstLen);
-//From filterplugin.cpp
-extern PYAMN_FILTERPLUGINQUEUE FirstFilterPlugin;
-
//From protoplugin.cpp
extern YAMN_PROTOPLUGINQUEUE *FirstProtoPlugin;
|