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

#ifndef __gen_nsMsgFilterCore_h__
#define __gen_nsMsgFilterCore_h__


#ifndef __gen_MailNewsTypes2_h__
#include "MailNewsTypes2.h"
#endif

#ifndef __gen_nsMsgSearchCore_h__
#include "nsMsgSearchCore.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
typedef PRInt32  nsMsgFilterTypeType;


/* starting interface:    nsMsgFilterType */
#define NS_MSGFILTERTYPE_IID_STR "7d368017-e7b4-446c-98ee-e3e256741947"

#define NS_MSGFILTERTYPE_IID \
  {0x7d368017, 0xe7b4, 0x446c, \
    { 0x98, 0xee, 0xe3, 0xe2, 0x56, 0x74, 0x19, 0x47 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsMsgFilterType {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_MSGFILTERTYPE_IID)

  enum { None = 0 };

  enum { InboxRule = 1 };

  enum { InboxJavaScript = 2 };

  enum { Inbox = 3 };

  enum { NewsRule = 4 };

  enum { NewsJavaScript = 8 };

  enum { News = 12 };

  enum { Incoming = 15 };

  enum { Manual = 16 };

  enum { PostPlugin = 32 };

  enum { All = 31 };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsMsgFilterType, NS_MSGFILTERTYPE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSMSGFILTERTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSMSGFILTERTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSMSGFILTERTYPE(_to) \

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

/* Header file */
class _MYCLASS_ : public nsMsgFilterType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSMSGFILTERTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, nsMsgFilterType)

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

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

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

typedef PRInt32  nsMsgFilterMotionValue;

typedef PRInt32  nsMsgFilterIndex;

typedef PRInt32  nsMsgRuleActionType;


/* starting interface:    nsMsgFilterAction */
#define NS_MSGFILTERACTION_IID_STR "7726fe79-afa3-4a39-8292-733aee288737"

#define NS_MSGFILTERACTION_IID \
  {0x7726fe79, 0xafa3, 0x4a39, \
    { 0x82, 0x92, 0x73, 0x3a, 0xee, 0x28, 0x87, 0x37 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsMsgFilterAction {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_MSGFILTERACTION_IID)

  enum { Custom = -1 };

  enum { None = 0 };

  enum { MoveToFolder = 1 };

  enum { ChangePriority = 2 };

  enum { Delete = 3 };

  enum { MarkRead = 4 };

  enum { KillThread = 5 };

  enum { WatchThread = 6 };

  enum { MarkFlagged = 7 };

  enum { Label = 8 };

  enum { Reply = 9 };

  enum { Forward = 10 };

  enum { StopExecution = 11 };

  enum { DeleteFromPop3Server = 12 };

  enum { LeaveOnPop3Server = 13 };

  enum { JunkScore = 14 };

  enum { FetchBodyFromPop3Server = 15 };

  enum { CopyToFolder = 16 };

  enum { AddTag = 17 };

  enum { KillSubthread = 18 };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsMsgFilterAction, NS_MSGFILTERACTION_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSMSGFILTERACTION \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSMSGFILTERACTION(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSMSGFILTERACTION(_to) \

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

/* Header file */
class _MYCLASS_ : public nsMsgFilterAction
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSMSGFILTERACTION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, nsMsgFilterAction)

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

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

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


#endif /* __gen_nsMsgFilterCore_h__ */
