Free Web Hosting by Netfirms
Web Hosting by Netfirms | Free Domain Names by Netfirms


// *********************************************************************//
// Declaration of Enumerations defined in Type Library                    
// *********************************************************************//
typedef enum CapabilityFlags
{
  cfHaveGlobalSettings = 1, 
  cfHaveRuleSettings = 2, 
  cfSelfLearning = 4, 
  cfCanGiveReason = 8
} CapabilityFlags;

typedef enum HostStatusFlags
{
  hsStopped = 0, 
  hsRunning = 1, 
  hsActive = 2
} HostStatusFlags;

// *********************************************************************//
// Interface: IMessageHeaderFilter
// Flags:     (256) OleAutomation
// GUID:      {22A4CFC1-5A57-11D7-95CD-525405F076AF}
// *********************************************************************//
interface IMessageHeaderFilter  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_FieldCount(long* Value/*[out,retval]*/) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE get_Field(long Index/*[in]*/, BSTR* Value/*[out,retval]*/) = 0; // [2]
  virtual HRESULT STDMETHODCALLTYPE get_FieldValue(long Index/*[in]*/, BSTR* Value/*[out,retval]*/) = 0; // [3]
  virtual HRESULT STDMETHODCALLTYPE get_FieldValueByName(BSTR Name/*[in]*/, 
                                                         BSTR* Value/*[out,retval]*/) = 0; // [4]
  virtual HRESULT STDMETHODCALLTYPE get_DoesFieldExist(BSTR Name/*[in]*/, 
                                                       TOLEBOOL* Value/*[out,retval]*/) = 0; // [5]
  virtual HRESULT STDMETHODCALLTYPE get_ClientEMailAddress(BSTR* Value/*[out,retval]*/) = 0; // [6]
  virtual HRESULT STDMETHODCALLTYPE get_ClientPOPServerName(BSTR* Value/*[out,retval]*/) = 0; // [7]
};

// *********************************************************************//
// Interface: IFilterPlugin
// Flags:     (256) OleAutomation
// GUID:      {59F77AE2-4042-44E1-9567-A769EBF2211D}
// *********************************************************************//
interface IFilterPlugin  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_InternalName(BSTR* Value/*[out,retval]*/) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE get_FriendlyName(BSTR* Value/*[out,retval]*/) = 0; // [2]
  virtual HRESULT STDMETHODCALLTYPE get_Version(long* Value/*[out,retval]*/) = 0; // [3]
  virtual HRESULT STDMETHODCALLTYPE Init(LPUNKNOWN Parent/*[in]*/) = 0; // [4]
  virtual HRESULT STDMETHODCALLTYPE Free(void) = 0; // [5]
  virtual HRESULT STDMETHODCALLTYPE ProcessMailMessage(Antispammailfilter_tlb::IMessageHeaderFilter* Header/*[in]*/,
                                                       float* IsSPAM/*[out,retval]*/) = 0; // [6]
  virtual HRESULT STDMETHODCALLTYPE AfterProcessMailMessage(Antispammailfilter_tlb::IMessageHeaderFilter* Header/*[in]*/, 
                                                            float WasSPAM/*[in]*/) = 0; // [7]
  virtual HRESULT STDMETHODCALLTYPE GiveReasonOfDecision(BSTR* Reason/*[out,retval]*/) = 0; // [8]
  virtual HRESULT STDMETHODCALLTYPE get_CapabilityFlags(unsigned_long* Value/*[out,retval]*/) = 0; // [9]
};

// *********************************************************************//
// Interface: IClientSideMailFilter
// Flags:     (256) OleAutomation
// GUID:      {A093F7A0-5EF1-11D7-95CD-525405F076AF}
// *********************************************************************//
interface IClientSideMailFilter  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_HostVersion(unsigned_long* Value/*[out,retval]*/) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE get_HostStatus(unsigned_long* Value/*[out,retval]*/) = 0; // [2]
};

// *********************************************************************//
// Interface: IFilterPluginSetup
// Flags:     (256) OleAutomation
// GUID:      {736908E0-8C98-11D7-95CD-525405F076AF}
// *********************************************************************//
interface IFilterPluginSetup  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE OpenSettingsDialog(void) = 0; // [1]
  virtual HRESULT STDMETHODCALLTYPE CustomizeRule(BSTR OldParams/*[in]*/, BSTR* NewParams/*[out]*/, 
                                                  __int64* dwCookie/*[in,out]*/) = 0; // [2]
};