/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/nsISpamSettings.idl
 */

#ifndef __gen_nsISpamSettings_h__
#define __gen_nsISpamSettings_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIOutputStream; /* forward declaration */

class nsIMsgIncomingServer; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

class nsIFile; /* forward declaration */


/* starting interface:    nsISpamSettings */
#define NS_ISPAMSETTINGS_IID_STR "1772be95-fda9-4dfd-a663-8af92c1e3024"

#define NS_ISPAMSETTINGS_IID \
  {0x1772be95, 0xfda9, 0x4dfd, \
    { 0xa6, 0x63, 0x8a, 0xf9, 0x2c, 0x1e, 0x30, 0x24 }}

class NS_NO_VTABLE nsISpamSettings : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISPAMSETTINGS_IID)

  /* attribute long level; */
  NS_IMETHOD GetLevel(int32_t *aLevel) = 0;
  NS_IMETHOD SetLevel(int32_t aLevel) = 0;

  /* attribute boolean moveOnSpam; */
  NS_IMETHOD GetMoveOnSpam(bool *aMoveOnSpam) = 0;
  NS_IMETHOD SetMoveOnSpam(bool aMoveOnSpam) = 0;

  /* readonly attribute boolean markAsReadOnSpam; */
  NS_IMETHOD GetMarkAsReadOnSpam(bool *aMarkAsReadOnSpam) = 0;

  /* attribute long moveTargetMode; */
  NS_IMETHOD GetMoveTargetMode(int32_t *aMoveTargetMode) = 0;
  NS_IMETHOD SetMoveTargetMode(int32_t aMoveTargetMode) = 0;

  enum {
    MOVE_TARGET_MODE_ACCOUNT = 0,
    MOVE_TARGET_MODE_FOLDER = 1
  };

  /* attribute string actionTargetAccount; */
  NS_IMETHOD GetActionTargetAccount(char * *aActionTargetAccount) = 0;
  NS_IMETHOD SetActionTargetAccount(const char * aActionTargetAccount) = 0;

  /* attribute string actionTargetFolder; */
  NS_IMETHOD GetActionTargetFolder(char * *aActionTargetFolder) = 0;
  NS_IMETHOD SetActionTargetFolder(const char * aActionTargetFolder) = 0;

  /* readonly attribute string spamFolderURI; */
  NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI) = 0;

  /* attribute boolean purge; */
  NS_IMETHOD GetPurge(bool *aPurge) = 0;
  NS_IMETHOD SetPurge(bool aPurge) = 0;

  /* attribute long purgeInterval; */
  NS_IMETHOD GetPurgeInterval(int32_t *aPurgeInterval) = 0;
  NS_IMETHOD SetPurgeInterval(int32_t aPurgeInterval) = 0;

  /* attribute boolean useWhiteList; */
  NS_IMETHOD GetUseWhiteList(bool *aUseWhiteList) = 0;
  NS_IMETHOD SetUseWhiteList(bool aUseWhiteList) = 0;

  /* attribute string whiteListAbURI; */
  NS_IMETHOD GetWhiteListAbURI(char * *aWhiteListAbURI) = 0;
  NS_IMETHOD SetWhiteListAbURI(const char * aWhiteListAbURI) = 0;

  /* readonly attribute boolean manualMark; */
  NS_IMETHOD GetManualMark(bool *aManualMark) = 0;

  /* readonly attribute long manualMarkMode; */
  NS_IMETHOD GetManualMarkMode(int32_t *aManualMarkMode) = 0;

  enum {
    MANUAL_MARK_MODE_MOVE = 0,
    MANUAL_MARK_MODE_DELETE = 1
  };

  /* attribute boolean useServerFilter; */
  NS_IMETHOD GetUseServerFilter(bool *aUseServerFilter) = 0;
  NS_IMETHOD SetUseServerFilter(bool aUseServerFilter) = 0;

  /* attribute ACString serverFilterName; */
  NS_IMETHOD GetServerFilterName(nsACString & aServerFilterName) = 0;
  NS_IMETHOD SetServerFilterName(const nsACString & aServerFilterName) = 0;

  /* readonly attribute nsIFile serverFilterFile; */
  NS_IMETHOD GetServerFilterFile(nsIFile * *aServerFilterFile) = 0;

  enum {
    TRUST_POSITIVES = 1,
    TRUST_NEGATIVES = 2
  };

  /* attribute long serverFilterTrustFlags; */
  NS_IMETHOD GetServerFilterTrustFlags(int32_t *aServerFilterTrustFlags) = 0;
  NS_IMETHOD SetServerFilterTrustFlags(int32_t aServerFilterTrustFlags) = 0;

  /* readonly attribute boolean loggingEnabled; */
  NS_IMETHOD GetLoggingEnabled(bool *aLoggingEnabled) = 0;

  /* attribute nsIOutputStream logStream; */
  NS_IMETHOD GetLogStream(nsIOutputStream * *aLogStream) = 0;
  NS_IMETHOD SetLogStream(nsIOutputStream *aLogStream) = 0;

  /* void logJunkHit (in nsIMsgDBHdr aMsgHdr, in boolean aMoveMessage); */
  NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, bool aMoveMessage) = 0;

  /* void logJunkString (in string aLogText); */
  NS_IMETHOD LogJunkString(const char * aLogText) = 0;

  /* void clone (in nsISpamSettings aSpamSettings); */
  NS_IMETHOD Clone(nsISpamSettings *aSpamSettings) = 0;

  /* void initialize (in nsIMsgIncomingServer aServer); */
  NS_IMETHOD Initialize(nsIMsgIncomingServer *aServer) = 0;

  /* boolean checkWhiteList (in nsIMsgDBHdr aMsgHdr); */
  NS_IMETHOD CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsISpamSettings, NS_ISPAMSETTINGS_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISPAMSETTINGS \
  NS_IMETHOD GetLevel(int32_t *aLevel) override; \
  NS_IMETHOD SetLevel(int32_t aLevel) override; \
  NS_IMETHOD GetMoveOnSpam(bool *aMoveOnSpam) override; \
  NS_IMETHOD SetMoveOnSpam(bool aMoveOnSpam) override; \
  NS_IMETHOD GetMarkAsReadOnSpam(bool *aMarkAsReadOnSpam) override; \
  NS_IMETHOD GetMoveTargetMode(int32_t *aMoveTargetMode) override; \
  NS_IMETHOD SetMoveTargetMode(int32_t aMoveTargetMode) override; \
  NS_IMETHOD GetActionTargetAccount(char * *aActionTargetAccount) override; \
  NS_IMETHOD SetActionTargetAccount(const char * aActionTargetAccount) override; \
  NS_IMETHOD GetActionTargetFolder(char * *aActionTargetFolder) override; \
  NS_IMETHOD SetActionTargetFolder(const char * aActionTargetFolder) override; \
  NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI) override; \
  NS_IMETHOD GetPurge(bool *aPurge) override; \
  NS_IMETHOD SetPurge(bool aPurge) override; \
  NS_IMETHOD GetPurgeInterval(int32_t *aPurgeInterval) override; \
  NS_IMETHOD SetPurgeInterval(int32_t aPurgeInterval) override; \
  NS_IMETHOD GetUseWhiteList(bool *aUseWhiteList) override; \
  NS_IMETHOD SetUseWhiteList(bool aUseWhiteList) override; \
  NS_IMETHOD GetWhiteListAbURI(char * *aWhiteListAbURI) override; \
  NS_IMETHOD SetWhiteListAbURI(const char * aWhiteListAbURI) override; \
  NS_IMETHOD GetManualMark(bool *aManualMark) override; \
  NS_IMETHOD GetManualMarkMode(int32_t *aManualMarkMode) override; \
  NS_IMETHOD GetUseServerFilter(bool *aUseServerFilter) override; \
  NS_IMETHOD SetUseServerFilter(bool aUseServerFilter) override; \
  NS_IMETHOD GetServerFilterName(nsACString & aServerFilterName) override; \
  NS_IMETHOD SetServerFilterName(const nsACString & aServerFilterName) override; \
  NS_IMETHOD GetServerFilterFile(nsIFile * *aServerFilterFile) override; \
  NS_IMETHOD GetServerFilterTrustFlags(int32_t *aServerFilterTrustFlags) override; \
  NS_IMETHOD SetServerFilterTrustFlags(int32_t aServerFilterTrustFlags) override; \
  NS_IMETHOD GetLoggingEnabled(bool *aLoggingEnabled) override; \
  NS_IMETHOD GetLogStream(nsIOutputStream * *aLogStream) override; \
  NS_IMETHOD SetLogStream(nsIOutputStream *aLogStream) override; \
  NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, bool aMoveMessage) override; \
  NS_IMETHOD LogJunkString(const char * aLogText) override; \
  NS_IMETHOD Clone(nsISpamSettings *aSpamSettings) override; \
  NS_IMETHOD Initialize(nsIMsgIncomingServer *aServer) override; \
  NS_IMETHOD CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSISPAMSETTINGS \
  NS_METHOD GetLevel(int32_t *aLevel); \
  NS_METHOD SetLevel(int32_t aLevel); \
  NS_METHOD GetMoveOnSpam(bool *aMoveOnSpam); \
  NS_METHOD SetMoveOnSpam(bool aMoveOnSpam); \
  NS_METHOD GetMarkAsReadOnSpam(bool *aMarkAsReadOnSpam); \
  NS_METHOD GetMoveTargetMode(int32_t *aMoveTargetMode); \
  NS_METHOD SetMoveTargetMode(int32_t aMoveTargetMode); \
  NS_METHOD GetActionTargetAccount(char * *aActionTargetAccount); \
  NS_METHOD SetActionTargetAccount(const char * aActionTargetAccount); \
  NS_METHOD GetActionTargetFolder(char * *aActionTargetFolder); \
  NS_METHOD SetActionTargetFolder(const char * aActionTargetFolder); \
  NS_METHOD GetSpamFolderURI(char * *aSpamFolderURI); \
  NS_METHOD GetPurge(bool *aPurge); \
  NS_METHOD SetPurge(bool aPurge); \
  NS_METHOD GetPurgeInterval(int32_t *aPurgeInterval); \
  NS_METHOD SetPurgeInterval(int32_t aPurgeInterval); \
  NS_METHOD GetUseWhiteList(bool *aUseWhiteList); \
  NS_METHOD SetUseWhiteList(bool aUseWhiteList); \
  NS_METHOD GetWhiteListAbURI(char * *aWhiteListAbURI); \
  NS_METHOD SetWhiteListAbURI(const char * aWhiteListAbURI); \
  NS_METHOD GetManualMark(bool *aManualMark); \
  NS_METHOD GetManualMarkMode(int32_t *aManualMarkMode); \
  NS_METHOD GetUseServerFilter(bool *aUseServerFilter); \
  NS_METHOD SetUseServerFilter(bool aUseServerFilter); \
  NS_METHOD GetServerFilterName(nsACString & aServerFilterName); \
  NS_METHOD SetServerFilterName(const nsACString & aServerFilterName); \
  NS_METHOD GetServerFilterFile(nsIFile * *aServerFilterFile); \
  NS_METHOD GetServerFilterTrustFlags(int32_t *aServerFilterTrustFlags); \
  NS_METHOD SetServerFilterTrustFlags(int32_t aServerFilterTrustFlags); \
  NS_METHOD GetLoggingEnabled(bool *aLoggingEnabled); \
  NS_METHOD GetLogStream(nsIOutputStream * *aLogStream); \
  NS_METHOD SetLogStream(nsIOutputStream *aLogStream); \
  NS_METHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, bool aMoveMessage); \
  NS_METHOD LogJunkString(const char * aLogText); \
  NS_METHOD Clone(nsISpamSettings *aSpamSettings); \
  NS_METHOD Initialize(nsIMsgIncomingServer *aServer); \
  NS_METHOD CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISPAMSETTINGS(_to) \
  NS_IMETHOD GetLevel(int32_t *aLevel) override { return _to GetLevel(aLevel); } \
  NS_IMETHOD SetLevel(int32_t aLevel) override { return _to SetLevel(aLevel); } \
  NS_IMETHOD GetMoveOnSpam(bool *aMoveOnSpam) override { return _to GetMoveOnSpam(aMoveOnSpam); } \
  NS_IMETHOD SetMoveOnSpam(bool aMoveOnSpam) override { return _to SetMoveOnSpam(aMoveOnSpam); } \
  NS_IMETHOD GetMarkAsReadOnSpam(bool *aMarkAsReadOnSpam) override { return _to GetMarkAsReadOnSpam(aMarkAsReadOnSpam); } \
  NS_IMETHOD GetMoveTargetMode(int32_t *aMoveTargetMode) override { return _to GetMoveTargetMode(aMoveTargetMode); } \
  NS_IMETHOD SetMoveTargetMode(int32_t aMoveTargetMode) override { return _to SetMoveTargetMode(aMoveTargetMode); } \
  NS_IMETHOD GetActionTargetAccount(char * *aActionTargetAccount) override { return _to GetActionTargetAccount(aActionTargetAccount); } \
  NS_IMETHOD SetActionTargetAccount(const char * aActionTargetAccount) override { return _to SetActionTargetAccount(aActionTargetAccount); } \
  NS_IMETHOD GetActionTargetFolder(char * *aActionTargetFolder) override { return _to GetActionTargetFolder(aActionTargetFolder); } \
  NS_IMETHOD SetActionTargetFolder(const char * aActionTargetFolder) override { return _to SetActionTargetFolder(aActionTargetFolder); } \
  NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI) override { return _to GetSpamFolderURI(aSpamFolderURI); } \
  NS_IMETHOD GetPurge(bool *aPurge) override { return _to GetPurge(aPurge); } \
  NS_IMETHOD SetPurge(bool aPurge) override { return _to SetPurge(aPurge); } \
  NS_IMETHOD GetPurgeInterval(int32_t *aPurgeInterval) override { return _to GetPurgeInterval(aPurgeInterval); } \
  NS_IMETHOD SetPurgeInterval(int32_t aPurgeInterval) override { return _to SetPurgeInterval(aPurgeInterval); } \
  NS_IMETHOD GetUseWhiteList(bool *aUseWhiteList) override { return _to GetUseWhiteList(aUseWhiteList); } \
  NS_IMETHOD SetUseWhiteList(bool aUseWhiteList) override { return _to SetUseWhiteList(aUseWhiteList); } \
  NS_IMETHOD GetWhiteListAbURI(char * *aWhiteListAbURI) override { return _to GetWhiteListAbURI(aWhiteListAbURI); } \
  NS_IMETHOD SetWhiteListAbURI(const char * aWhiteListAbURI) override { return _to SetWhiteListAbURI(aWhiteListAbURI); } \
  NS_IMETHOD GetManualMark(bool *aManualMark) override { return _to GetManualMark(aManualMark); } \
  NS_IMETHOD GetManualMarkMode(int32_t *aManualMarkMode) override { return _to GetManualMarkMode(aManualMarkMode); } \
  NS_IMETHOD GetUseServerFilter(bool *aUseServerFilter) override { return _to GetUseServerFilter(aUseServerFilter); } \
  NS_IMETHOD SetUseServerFilter(bool aUseServerFilter) override { return _to SetUseServerFilter(aUseServerFilter); } \
  NS_IMETHOD GetServerFilterName(nsACString & aServerFilterName) override { return _to GetServerFilterName(aServerFilterName); } \
  NS_IMETHOD SetServerFilterName(const nsACString & aServerFilterName) override { return _to SetServerFilterName(aServerFilterName); } \
  NS_IMETHOD GetServerFilterFile(nsIFile * *aServerFilterFile) override { return _to GetServerFilterFile(aServerFilterFile); } \
  NS_IMETHOD GetServerFilterTrustFlags(int32_t *aServerFilterTrustFlags) override { return _to GetServerFilterTrustFlags(aServerFilterTrustFlags); } \
  NS_IMETHOD SetServerFilterTrustFlags(int32_t aServerFilterTrustFlags) override { return _to SetServerFilterTrustFlags(aServerFilterTrustFlags); } \
  NS_IMETHOD GetLoggingEnabled(bool *aLoggingEnabled) override { return _to GetLoggingEnabled(aLoggingEnabled); } \
  NS_IMETHOD GetLogStream(nsIOutputStream * *aLogStream) override { return _to GetLogStream(aLogStream); } \
  NS_IMETHOD SetLogStream(nsIOutputStream *aLogStream) override { return _to SetLogStream(aLogStream); } \
  NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, bool aMoveMessage) override { return _to LogJunkHit(aMsgHdr, aMoveMessage); } \
  NS_IMETHOD LogJunkString(const char * aLogText) override { return _to LogJunkString(aLogText); } \
  NS_IMETHOD Clone(nsISpamSettings *aSpamSettings) override { return _to Clone(aSpamSettings); } \
  NS_IMETHOD Initialize(nsIMsgIncomingServer *aServer) override { return _to Initialize(aServer); } \
  NS_IMETHOD CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval) override { return _to CheckWhiteList(aMsgHdr, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSISPAMSETTINGS(_to) \
  NS_IMETHOD GetLevel(int32_t *aLevel) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLevel(aLevel); } \
  NS_IMETHOD SetLevel(int32_t aLevel) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLevel(aLevel); } \
  NS_IMETHOD GetMoveOnSpam(bool *aMoveOnSpam) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMoveOnSpam(aMoveOnSpam); } \
  NS_IMETHOD SetMoveOnSpam(bool aMoveOnSpam) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMoveOnSpam(aMoveOnSpam); } \
  NS_IMETHOD GetMarkAsReadOnSpam(bool *aMarkAsReadOnSpam) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMarkAsReadOnSpam(aMarkAsReadOnSpam); } \
  NS_IMETHOD GetMoveTargetMode(int32_t *aMoveTargetMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMoveTargetMode(aMoveTargetMode); } \
  NS_IMETHOD SetMoveTargetMode(int32_t aMoveTargetMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMoveTargetMode(aMoveTargetMode); } \
  NS_IMETHOD GetActionTargetAccount(char * *aActionTargetAccount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActionTargetAccount(aActionTargetAccount); } \
  NS_IMETHOD SetActionTargetAccount(const char * aActionTargetAccount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetActionTargetAccount(aActionTargetAccount); } \
  NS_IMETHOD GetActionTargetFolder(char * *aActionTargetFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActionTargetFolder(aActionTargetFolder); } \
  NS_IMETHOD SetActionTargetFolder(const char * aActionTargetFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetActionTargetFolder(aActionTargetFolder); } \
  NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSpamFolderURI(aSpamFolderURI); } \
  NS_IMETHOD GetPurge(bool *aPurge) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPurge(aPurge); } \
  NS_IMETHOD SetPurge(bool aPurge) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPurge(aPurge); } \
  NS_IMETHOD GetPurgeInterval(int32_t *aPurgeInterval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPurgeInterval(aPurgeInterval); } \
  NS_IMETHOD SetPurgeInterval(int32_t aPurgeInterval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPurgeInterval(aPurgeInterval); } \
  NS_IMETHOD GetUseWhiteList(bool *aUseWhiteList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseWhiteList(aUseWhiteList); } \
  NS_IMETHOD SetUseWhiteList(bool aUseWhiteList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseWhiteList(aUseWhiteList); } \
  NS_IMETHOD GetWhiteListAbURI(char * *aWhiteListAbURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWhiteListAbURI(aWhiteListAbURI); } \
  NS_IMETHOD SetWhiteListAbURI(const char * aWhiteListAbURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWhiteListAbURI(aWhiteListAbURI); } \
  NS_IMETHOD GetManualMark(bool *aManualMark) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManualMark(aManualMark); } \
  NS_IMETHOD GetManualMarkMode(int32_t *aManualMarkMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManualMarkMode(aManualMarkMode); } \
  NS_IMETHOD GetUseServerFilter(bool *aUseServerFilter) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseServerFilter(aUseServerFilter); } \
  NS_IMETHOD SetUseServerFilter(bool aUseServerFilter) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseServerFilter(aUseServerFilter); } \
  NS_IMETHOD GetServerFilterName(nsACString & aServerFilterName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerFilterName(aServerFilterName); } \
  NS_IMETHOD SetServerFilterName(const nsACString & aServerFilterName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerFilterName(aServerFilterName); } \
  NS_IMETHOD GetServerFilterFile(nsIFile * *aServerFilterFile) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerFilterFile(aServerFilterFile); } \
  NS_IMETHOD GetServerFilterTrustFlags(int32_t *aServerFilterTrustFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerFilterTrustFlags(aServerFilterTrustFlags); } \
  NS_IMETHOD SetServerFilterTrustFlags(int32_t aServerFilterTrustFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerFilterTrustFlags(aServerFilterTrustFlags); } \
  NS_IMETHOD GetLoggingEnabled(bool *aLoggingEnabled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoggingEnabled(aLoggingEnabled); } \
  NS_IMETHOD GetLogStream(nsIOutputStream * *aLogStream) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogStream(aLogStream); } \
  NS_IMETHOD SetLogStream(nsIOutputStream *aLogStream) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogStream(aLogStream); } \
  NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, bool aMoveMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LogJunkHit(aMsgHdr, aMoveMessage); } \
  NS_IMETHOD LogJunkString(const char * aLogText) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LogJunkString(aLogText); } \
  NS_IMETHOD Clone(nsISpamSettings *aSpamSettings) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Clone(aSpamSettings); } \
  NS_IMETHOD Initialize(nsIMsgIncomingServer *aServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Initialize(aServer); } \
  NS_IMETHOD CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckWhiteList(aMsgHdr, _retval); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsSpamSettings : public nsISpamSettings
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSISPAMSETTINGS

  nsSpamSettings();

private:
  ~nsSpamSettings();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsSpamSettings, nsISpamSettings)

nsSpamSettings::nsSpamSettings()
{
  /* member initializers and constructor code */
}

nsSpamSettings::~nsSpamSettings()
{
  /* destructor code */
}

/* attribute long level; */
NS_IMETHODIMP nsSpamSettings::GetLevel(int32_t *aLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetLevel(int32_t aLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean moveOnSpam; */
NS_IMETHODIMP nsSpamSettings::GetMoveOnSpam(bool *aMoveOnSpam)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetMoveOnSpam(bool aMoveOnSpam)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean markAsReadOnSpam; */
NS_IMETHODIMP nsSpamSettings::GetMarkAsReadOnSpam(bool *aMarkAsReadOnSpam)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long moveTargetMode; */
NS_IMETHODIMP nsSpamSettings::GetMoveTargetMode(int32_t *aMoveTargetMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetMoveTargetMode(int32_t aMoveTargetMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string actionTargetAccount; */
NS_IMETHODIMP nsSpamSettings::GetActionTargetAccount(char * *aActionTargetAccount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetActionTargetAccount(const char * aActionTargetAccount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string actionTargetFolder; */
NS_IMETHODIMP nsSpamSettings::GetActionTargetFolder(char * *aActionTargetFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetActionTargetFolder(const char * aActionTargetFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string spamFolderURI; */
NS_IMETHODIMP nsSpamSettings::GetSpamFolderURI(char * *aSpamFolderURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean purge; */
NS_IMETHODIMP nsSpamSettings::GetPurge(bool *aPurge)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetPurge(bool aPurge)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long purgeInterval; */
NS_IMETHODIMP nsSpamSettings::GetPurgeInterval(int32_t *aPurgeInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetPurgeInterval(int32_t aPurgeInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useWhiteList; */
NS_IMETHODIMP nsSpamSettings::GetUseWhiteList(bool *aUseWhiteList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetUseWhiteList(bool aUseWhiteList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string whiteListAbURI; */
NS_IMETHODIMP nsSpamSettings::GetWhiteListAbURI(char * *aWhiteListAbURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetWhiteListAbURI(const char * aWhiteListAbURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean manualMark; */
NS_IMETHODIMP nsSpamSettings::GetManualMark(bool *aManualMark)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long manualMarkMode; */
NS_IMETHODIMP nsSpamSettings::GetManualMarkMode(int32_t *aManualMarkMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useServerFilter; */
NS_IMETHODIMP nsSpamSettings::GetUseServerFilter(bool *aUseServerFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetUseServerFilter(bool aUseServerFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString serverFilterName; */
NS_IMETHODIMP nsSpamSettings::GetServerFilterName(nsACString & aServerFilterName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetServerFilterName(const nsACString & aServerFilterName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIFile serverFilterFile; */
NS_IMETHODIMP nsSpamSettings::GetServerFilterFile(nsIFile * *aServerFilterFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long serverFilterTrustFlags; */
NS_IMETHODIMP nsSpamSettings::GetServerFilterTrustFlags(int32_t *aServerFilterTrustFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetServerFilterTrustFlags(int32_t aServerFilterTrustFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean loggingEnabled; */
NS_IMETHODIMP nsSpamSettings::GetLoggingEnabled(bool *aLoggingEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIOutputStream logStream; */
NS_IMETHODIMP nsSpamSettings::GetLogStream(nsIOutputStream * *aLogStream)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetLogStream(nsIOutputStream *aLogStream)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void logJunkHit (in nsIMsgDBHdr aMsgHdr, in boolean aMoveMessage); */
NS_IMETHODIMP nsSpamSettings::LogJunkHit(nsIMsgDBHdr *aMsgHdr, bool aMoveMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void logJunkString (in string aLogText); */
NS_IMETHODIMP nsSpamSettings::LogJunkString(const char * aLogText)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clone (in nsISpamSettings aSpamSettings); */
NS_IMETHODIMP nsSpamSettings::Clone(nsISpamSettings *aSpamSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void initialize (in nsIMsgIncomingServer aServer); */
NS_IMETHODIMP nsSpamSettings::Initialize(nsIMsgIncomingServer *aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean checkWhiteList (in nsIMsgDBHdr aMsgHdr); */
NS_IMETHODIMP nsSpamSettings::CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsISpamSettings_h__ */
