/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/base/public/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 NS_SCRIPTABLE nsISpamSettings : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISPAMSETTINGS_IID)

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

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

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

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

  enum {
    MOVE_TARGET_MODE_ACCOUNT = 0,
    MOVE_TARGET_MODE_FOLDER = 1
  };

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

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

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

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

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

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

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

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

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

  enum {
    MANUAL_MARK_MODE_MOVE = 0,
    MANUAL_MARK_MODE_DELETE = 1
  };

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

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

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

  enum {
    TRUST_POSITIVES = 1,
    TRUST_NEGATIVES = 2
  };

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

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

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

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

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

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

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

  /* boolean checkWhiteList (in nsIMsgDBHdr aMsgHdr); */
  NS_SCRIPTABLE NS_IMETHOD CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval NS_OUTPARAM) = 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_SCRIPTABLE NS_IMETHOD GetLevel(PRInt32 *aLevel); \
  NS_SCRIPTABLE NS_IMETHOD SetLevel(PRInt32 aLevel); \
  NS_SCRIPTABLE NS_IMETHOD GetMoveOnSpam(bool *aMoveOnSpam); \
  NS_SCRIPTABLE NS_IMETHOD SetMoveOnSpam(bool aMoveOnSpam); \
  NS_SCRIPTABLE NS_IMETHOD GetMarkAsReadOnSpam(bool *aMarkAsReadOnSpam); \
  NS_SCRIPTABLE NS_IMETHOD GetMoveTargetMode(PRInt32 *aMoveTargetMode); \
  NS_SCRIPTABLE NS_IMETHOD SetMoveTargetMode(PRInt32 aMoveTargetMode); \
  NS_SCRIPTABLE NS_IMETHOD GetActionTargetAccount(char * *aActionTargetAccount); \
  NS_SCRIPTABLE NS_IMETHOD SetActionTargetAccount(const char * aActionTargetAccount); \
  NS_SCRIPTABLE NS_IMETHOD GetActionTargetFolder(char * *aActionTargetFolder); \
  NS_SCRIPTABLE NS_IMETHOD SetActionTargetFolder(const char * aActionTargetFolder); \
  NS_SCRIPTABLE NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI); \
  NS_SCRIPTABLE NS_IMETHOD GetPurge(bool *aPurge); \
  NS_SCRIPTABLE NS_IMETHOD SetPurge(bool aPurge); \
  NS_SCRIPTABLE NS_IMETHOD GetPurgeInterval(PRInt32 *aPurgeInterval); \
  NS_SCRIPTABLE NS_IMETHOD SetPurgeInterval(PRInt32 aPurgeInterval); \
  NS_SCRIPTABLE NS_IMETHOD GetUseWhiteList(bool *aUseWhiteList); \
  NS_SCRIPTABLE NS_IMETHOD SetUseWhiteList(bool aUseWhiteList); \
  NS_SCRIPTABLE NS_IMETHOD GetWhiteListAbURI(char * *aWhiteListAbURI); \
  NS_SCRIPTABLE NS_IMETHOD SetWhiteListAbURI(const char * aWhiteListAbURI); \
  NS_SCRIPTABLE NS_IMETHOD GetManualMark(bool *aManualMark); \
  NS_SCRIPTABLE NS_IMETHOD GetManualMarkMode(PRInt32 *aManualMarkMode); \
  NS_SCRIPTABLE NS_IMETHOD GetUseServerFilter(bool *aUseServerFilter); \
  NS_SCRIPTABLE NS_IMETHOD SetUseServerFilter(bool aUseServerFilter); \
  NS_SCRIPTABLE NS_IMETHOD GetServerFilterName(nsACString & aServerFilterName); \
  NS_SCRIPTABLE NS_IMETHOD SetServerFilterName(const nsACString & aServerFilterName); \
  NS_SCRIPTABLE NS_IMETHOD GetServerFilterFile(nsIFile * *aServerFilterFile); \
  NS_SCRIPTABLE NS_IMETHOD GetServerFilterTrustFlags(PRInt32 *aServerFilterTrustFlags); \
  NS_SCRIPTABLE NS_IMETHOD SetServerFilterTrustFlags(PRInt32 aServerFilterTrustFlags); \
  NS_SCRIPTABLE NS_IMETHOD GetLoggingEnabled(bool *aLoggingEnabled); \
  NS_SCRIPTABLE NS_IMETHOD GetLogStream(nsIOutputStream * *aLogStream); \
  NS_SCRIPTABLE NS_IMETHOD SetLogStream(nsIOutputStream *aLogStream); \
  NS_SCRIPTABLE NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, bool aMoveMessage); \
  NS_SCRIPTABLE NS_IMETHOD LogJunkString(const char * aLogText); \
  NS_SCRIPTABLE NS_IMETHOD Clone(nsISpamSettings *aSpamSettings); \
  NS_SCRIPTABLE NS_IMETHOD Initialize(nsIMsgIncomingServer *aServer); \
  NS_SCRIPTABLE NS_IMETHOD CheckWhiteList(nsIMsgDBHdr *aMsgHdr, bool *_retval NS_OUTPARAM); 

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

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

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

/* attribute long level; */
NS_IMETHODIMP nsSpamSettings::GetLevel(PRInt32 *aLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetLevel(PRInt32 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(PRInt32 *aMoveTargetMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetMoveTargetMode(PRInt32 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(PRInt32 *aPurgeInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetPurgeInterval(PRInt32 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(PRInt32 *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(PRInt32 *aServerFilterTrustFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetServerFilterTrustFlags(PRInt32 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 NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsISpamSettings_h__ */
