/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM 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 */


/* starting interface:    nsISpamSettings */
#define NS_ISPAMSETTINGS_IID_STR "3d6a6bcf-b374-4c97-b8c7-cdbbfc5e447b"

#define NS_ISPAMSETTINGS_IID \
  {0x3d6a6bcf, 0xb374, 0x4c97, \
    { 0xb8, 0xc7, 0xcd, 0xbb, 0xfc, 0x5e, 0x44, 0x7b }}

class NS_NO_VTABLE nsISpamSettings : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISPAMSETTINGS_IID)

  /* attribute nsIMsgIncomingServer server; */
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer) = 0;
  NS_IMETHOD SetServer(nsIMsgIncomingServer * aServer) = 0;

  /**
   * 0 for nothing, 100 for highest
   */
  /* attribute long level; */
  NS_IMETHOD GetLevel(PRInt32 *aLevel) = 0;
  NS_IMETHOD SetLevel(PRInt32 aLevel) = 0;

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

  /* attribute boolean markAsReadOnSpam; */
  NS_IMETHOD GetMarkAsReadOnSpam(PRBool *aMarkAsReadOnSpam) = 0;
  NS_IMETHOD SetMarkAsReadOnSpam(PRBool aMarkAsReadOnSpam) = 0;

  /**
   * Most consumers will just use spamFolderURI rather than accessing any of
   * target attributes directly.
   */
  /* attribute long moveTargetMode; */
  NS_IMETHOD GetMoveTargetMode(PRInt32 *aMoveTargetMode) = 0;
  NS_IMETHOD SetMoveTargetMode(PRInt32 aMoveTargetMode) = 0;

  enum { MOVE_TARGET_MODE_ACCOUNT = 0 };

  enum { 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;

  /**
   * built from moveTargetMode, actionTargetAccount, actionTargetFolder
   */
  /* readonly attribute string spamFolderURI; */
  NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI) = 0;

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

  /**
   * interval, in days
   */
  /* attribute long purgeInterval; */
  NS_IMETHOD GetPurgeInterval(PRInt32 *aPurgeInterval) = 0;
  NS_IMETHOD SetPurgeInterval(PRInt32 aPurgeInterval) = 0;

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

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

  /**
   * should we do something (move or delete)
   * when the user manually marks a message as junk?
   */
  /* attribute boolean manualMark; */
  NS_IMETHOD GetManualMark(PRBool *aManualMark) = 0;
  NS_IMETHOD SetManualMark(PRBool aManualMark) = 0;

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

  enum { MANUAL_MARK_MODE_MOVE = 0 };

  enum { MANUAL_MARK_MODE_DELETE = 1 };

  /**
   * integrate with server-side spam detection programs
   */
  /* attribute boolean useServerFilter; */
  NS_IMETHOD GetUseServerFilter(PRBool *aUseServerFilter) = 0;
  NS_IMETHOD SetUseServerFilter(PRBool aUseServerFilter) = 0;

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

  enum { TRUST_POSITIVES = 1 };

  enum { TRUST_NEGATIVES = 2 };

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

  /* attribute boolean loggingEnabled; */
  NS_IMETHOD GetLoggingEnabled(PRBool *aLoggingEnabled) = 0;
  NS_IMETHOD SetLoggingEnabled(PRBool aLoggingEnabled) = 0;

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

  /* readonly attribute string logURL; */
  NS_IMETHOD GetLogURL(char * *aLogURL) = 0;

  /* void clearLog (); */
  NS_IMETHOD ClearLog(void) = 0;

  /* void ensureLogFile (); */
  NS_IMETHOD EnsureLogFile(void) = 0;

  /* void flushLogIfNecessary (); */
  NS_IMETHOD FlushLogIfNecessary(void) = 0;

  /* void logJunkHit (in nsIMsgDBHdr aMsgHdr, in boolean aMoveMessage); */
  NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, PRBool 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;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISPAMSETTINGS \
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer); \
  NS_IMETHOD SetServer(nsIMsgIncomingServer * aServer); \
  NS_IMETHOD GetLevel(PRInt32 *aLevel); \
  NS_IMETHOD SetLevel(PRInt32 aLevel); \
  NS_IMETHOD GetMoveOnSpam(PRBool *aMoveOnSpam); \
  NS_IMETHOD SetMoveOnSpam(PRBool aMoveOnSpam); \
  NS_IMETHOD GetMarkAsReadOnSpam(PRBool *aMarkAsReadOnSpam); \
  NS_IMETHOD SetMarkAsReadOnSpam(PRBool aMarkAsReadOnSpam); \
  NS_IMETHOD GetMoveTargetMode(PRInt32 *aMoveTargetMode); \
  NS_IMETHOD SetMoveTargetMode(PRInt32 aMoveTargetMode); \
  NS_IMETHOD GetActionTargetAccount(char * *aActionTargetAccount); \
  NS_IMETHOD SetActionTargetAccount(const char * aActionTargetAccount); \
  NS_IMETHOD GetActionTargetFolder(char * *aActionTargetFolder); \
  NS_IMETHOD SetActionTargetFolder(const char * aActionTargetFolder); \
  NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI); \
  NS_IMETHOD GetPurge(PRBool *aPurge); \
  NS_IMETHOD SetPurge(PRBool aPurge); \
  NS_IMETHOD GetPurgeInterval(PRInt32 *aPurgeInterval); \
  NS_IMETHOD SetPurgeInterval(PRInt32 aPurgeInterval); \
  NS_IMETHOD GetUseWhiteList(PRBool *aUseWhiteList); \
  NS_IMETHOD SetUseWhiteList(PRBool aUseWhiteList); \
  NS_IMETHOD GetWhiteListAbURI(char * *aWhiteListAbURI); \
  NS_IMETHOD SetWhiteListAbURI(const char * aWhiteListAbURI); \
  NS_IMETHOD GetManualMark(PRBool *aManualMark); \
  NS_IMETHOD SetManualMark(PRBool aManualMark); \
  NS_IMETHOD GetManualMarkMode(PRInt32 *aManualMarkMode); \
  NS_IMETHOD SetManualMarkMode(PRInt32 aManualMarkMode); \
  NS_IMETHOD GetUseServerFilter(PRBool *aUseServerFilter); \
  NS_IMETHOD SetUseServerFilter(PRBool aUseServerFilter); \
  NS_IMETHOD GetServerFilterName(nsACString & aServerFilterName); \
  NS_IMETHOD SetServerFilterName(const nsACString & aServerFilterName); \
  NS_IMETHOD GetServerFilterTrustFlags(PRInt32 *aServerFilterTrustFlags); \
  NS_IMETHOD SetServerFilterTrustFlags(PRInt32 aServerFilterTrustFlags); \
  NS_IMETHOD GetLoggingEnabled(PRBool *aLoggingEnabled); \
  NS_IMETHOD SetLoggingEnabled(PRBool aLoggingEnabled); \
  NS_IMETHOD GetLogStream(nsIOutputStream * *aLogStream); \
  NS_IMETHOD SetLogStream(nsIOutputStream * aLogStream); \
  NS_IMETHOD GetLogURL(char * *aLogURL); \
  NS_IMETHOD ClearLog(void); \
  NS_IMETHOD EnsureLogFile(void); \
  NS_IMETHOD FlushLogIfNecessary(void); \
  NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, PRBool aMoveMessage); \
  NS_IMETHOD LogJunkString(const char *aLogText); \
  NS_IMETHOD Clone(nsISpamSettings *aSpamSettings); 

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

/* 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 GetServer(nsIMsgIncomingServer * *aServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServer(aServer); } \
  NS_IMETHOD SetServer(nsIMsgIncomingServer * aServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServer(aServer); } \
  NS_IMETHOD GetLevel(PRInt32 *aLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLevel(aLevel); } \
  NS_IMETHOD SetLevel(PRInt32 aLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLevel(aLevel); } \
  NS_IMETHOD GetMoveOnSpam(PRBool *aMoveOnSpam) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMoveOnSpam(aMoveOnSpam); } \
  NS_IMETHOD SetMoveOnSpam(PRBool aMoveOnSpam) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMoveOnSpam(aMoveOnSpam); } \
  NS_IMETHOD GetMarkAsReadOnSpam(PRBool *aMarkAsReadOnSpam) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMarkAsReadOnSpam(aMarkAsReadOnSpam); } \
  NS_IMETHOD SetMarkAsReadOnSpam(PRBool aMarkAsReadOnSpam) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMarkAsReadOnSpam(aMarkAsReadOnSpam); } \
  NS_IMETHOD GetMoveTargetMode(PRInt32 *aMoveTargetMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMoveTargetMode(aMoveTargetMode); } \
  NS_IMETHOD SetMoveTargetMode(PRInt32 aMoveTargetMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMoveTargetMode(aMoveTargetMode); } \
  NS_IMETHOD GetActionTargetAccount(char * *aActionTargetAccount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActionTargetAccount(aActionTargetAccount); } \
  NS_IMETHOD SetActionTargetAccount(const char * aActionTargetAccount) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetActionTargetAccount(aActionTargetAccount); } \
  NS_IMETHOD GetActionTargetFolder(char * *aActionTargetFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActionTargetFolder(aActionTargetFolder); } \
  NS_IMETHOD SetActionTargetFolder(const char * aActionTargetFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetActionTargetFolder(aActionTargetFolder); } \
  NS_IMETHOD GetSpamFolderURI(char * *aSpamFolderURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSpamFolderURI(aSpamFolderURI); } \
  NS_IMETHOD GetPurge(PRBool *aPurge) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPurge(aPurge); } \
  NS_IMETHOD SetPurge(PRBool aPurge) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPurge(aPurge); } \
  NS_IMETHOD GetPurgeInterval(PRInt32 *aPurgeInterval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPurgeInterval(aPurgeInterval); } \
  NS_IMETHOD SetPurgeInterval(PRInt32 aPurgeInterval) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPurgeInterval(aPurgeInterval); } \
  NS_IMETHOD GetUseWhiteList(PRBool *aUseWhiteList) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseWhiteList(aUseWhiteList); } \
  NS_IMETHOD SetUseWhiteList(PRBool aUseWhiteList) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseWhiteList(aUseWhiteList); } \
  NS_IMETHOD GetWhiteListAbURI(char * *aWhiteListAbURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWhiteListAbURI(aWhiteListAbURI); } \
  NS_IMETHOD SetWhiteListAbURI(const char * aWhiteListAbURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWhiteListAbURI(aWhiteListAbURI); } \
  NS_IMETHOD GetManualMark(PRBool *aManualMark) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManualMark(aManualMark); } \
  NS_IMETHOD SetManualMark(PRBool aManualMark) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetManualMark(aManualMark); } \
  NS_IMETHOD GetManualMarkMode(PRInt32 *aManualMarkMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManualMarkMode(aManualMarkMode); } \
  NS_IMETHOD SetManualMarkMode(PRInt32 aManualMarkMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetManualMarkMode(aManualMarkMode); } \
  NS_IMETHOD GetUseServerFilter(PRBool *aUseServerFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseServerFilter(aUseServerFilter); } \
  NS_IMETHOD SetUseServerFilter(PRBool aUseServerFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseServerFilter(aUseServerFilter); } \
  NS_IMETHOD GetServerFilterName(nsACString & aServerFilterName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerFilterName(aServerFilterName); } \
  NS_IMETHOD SetServerFilterName(const nsACString & aServerFilterName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerFilterName(aServerFilterName); } \
  NS_IMETHOD GetServerFilterTrustFlags(PRInt32 *aServerFilterTrustFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerFilterTrustFlags(aServerFilterTrustFlags); } \
  NS_IMETHOD SetServerFilterTrustFlags(PRInt32 aServerFilterTrustFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerFilterTrustFlags(aServerFilterTrustFlags); } \
  NS_IMETHOD GetLoggingEnabled(PRBool *aLoggingEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoggingEnabled(aLoggingEnabled); } \
  NS_IMETHOD SetLoggingEnabled(PRBool aLoggingEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLoggingEnabled(aLoggingEnabled); } \
  NS_IMETHOD GetLogStream(nsIOutputStream * *aLogStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogStream(aLogStream); } \
  NS_IMETHOD SetLogStream(nsIOutputStream * aLogStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogStream(aLogStream); } \
  NS_IMETHOD GetLogURL(char * *aLogURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogURL(aLogURL); } \
  NS_IMETHOD ClearLog(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearLog(); } \
  NS_IMETHOD EnsureLogFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnsureLogFile(); } \
  NS_IMETHOD FlushLogIfNecessary(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->FlushLogIfNecessary(); } \
  NS_IMETHOD LogJunkHit(nsIMsgDBHdr *aMsgHdr, PRBool aMoveMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->LogJunkHit(aMsgHdr, aMoveMessage); } \
  NS_IMETHOD LogJunkString(const char *aLogText) { return !_to ? NS_ERROR_NULL_POINTER : _to->LogJunkString(aLogText); } \
  NS_IMETHOD Clone(nsISpamSettings *aSpamSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->Clone(aSpamSettings); } 

#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 nsIMsgIncomingServer server; */
NS_IMETHODIMP nsSpamSettings::GetServer(nsIMsgIncomingServer * *aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetServer(nsIMsgIncomingServer * aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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(PRBool *aMoveOnSpam)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetMoveOnSpam(PRBool aMoveOnSpam)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean markAsReadOnSpam; */
NS_IMETHODIMP nsSpamSettings::GetMarkAsReadOnSpam(PRBool *aMarkAsReadOnSpam)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetMarkAsReadOnSpam(PRBool 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(PRBool *aPurge)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetPurge(PRBool 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(PRBool *aUseWhiteList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetUseWhiteList(PRBool 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;
}

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

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

/* attribute boolean useServerFilter; */
NS_IMETHODIMP nsSpamSettings::GetUseServerFilter(PRBool *aUseServerFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetUseServerFilter(PRBool 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;
}

/* 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;
}

/* attribute boolean loggingEnabled; */
NS_IMETHODIMP nsSpamSettings::GetLoggingEnabled(PRBool *aLoggingEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSpamSettings::SetLoggingEnabled(PRBool 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;
}

/* readonly attribute string logURL; */
NS_IMETHODIMP nsSpamSettings::GetLogURL(char * *aLogURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearLog (); */
NS_IMETHODIMP nsSpamSettings::ClearLog()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ensureLogFile (); */
NS_IMETHODIMP nsSpamSettings::EnsureLogFile()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void flushLogIfNecessary (); */
NS_IMETHODIMP nsSpamSettings::FlushLogIfNecessary()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void logJunkHit (in nsIMsgDBHdr aMsgHdr, in boolean aMoveMessage); */
NS_IMETHODIMP nsSpamSettings::LogJunkHit(nsIMsgDBHdr *aMsgHdr, PRBool 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;
}

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


#endif /* __gen_nsISpamSettings_h__ */
