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

#ifndef __gen_nsIMessageView_h__
#define __gen_nsIMessageView_h__

#include "nsISupports.h"
#include "nsIRDFResource.h"
#include "nsIEnumerator.h"

class nsIMsgWindow; /* forward declaration */


/* starting interface:    nsIMessageView */
#define NS_IMESSAGEVIEW_IID_STR "14495572-e945-11d2-8a52-0060b0fc04d2"

#define NS_IMESSAGEVIEW_IID \
  {0x14495572, 0xe945, 0x11d2, \
    { 0x8a, 0x52, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xd2 }}

class nsIMessageView : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMESSAGEVIEW_IID)

  enum {  eShowAll =0, eShowRead =1, eShowUnread =2 , eShowWatched =3};
  /* attribute unsigned long viewType; */
  NS_IMETHOD GetViewType(PRUint32 *aViewType) = 0;
  NS_IMETHOD SetViewType(PRUint32 aViewType) = 0;

  /* attribute boolean showThreads; */
  NS_IMETHOD GetShowThreads(PRBool *aShowThreads) = 0;
  NS_IMETHOD SetShowThreads(PRBool aShowThreads) = 0;

  /* void GetMessages (in nsIRDFResource parentResource, in nsIMsgWindow msgWindow, out nsISimpleEnumerator messages); */
  NS_IMETHOD GetMessages(nsIRDFResource *parentResource, nsIMsgWindow *msgWindow, nsISimpleEnumerator **messages) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMESSAGEVIEW \
  NS_IMETHOD GetViewType(PRUint32 *aViewType); \
  NS_IMETHOD SetViewType(PRUint32 aViewType); \
  NS_IMETHOD GetShowThreads(PRBool *aShowThreads); \
  NS_IMETHOD SetShowThreads(PRBool aShowThreads); \
  NS_IMETHOD GetMessages(nsIRDFResource *parentResource, nsIMsgWindow *msgWindow, nsISimpleEnumerator **messages); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMESSAGEVIEW(_to) \
  NS_IMETHOD GetViewType(PRUint32 *aViewType) { return _to ## GetViewType(aViewType); } \
  NS_IMETHOD SetViewType(PRUint32 aViewType) { return _to ## SetViewType(aViewType); } \
  NS_IMETHOD GetShowThreads(PRBool *aShowThreads) { return _to ## GetShowThreads(aShowThreads); } \
  NS_IMETHOD SetShowThreads(PRBool aShowThreads) { return _to ## SetShowThreads(aShowThreads); } \
  NS_IMETHOD GetMessages(nsIRDFResource *parentResource, nsIMsgWindow *msgWindow, nsISimpleEnumerator **messages) { return _to ## GetMessages(parentResource, msgWindow, messages); } 

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

/* Header file */
class nsMessageView : public nsIMessageView
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMESSAGEVIEW

  nsMessageView();
  virtual ~nsMessageView();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMessageView, nsIMessageView)

nsMessageView::nsMessageView()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* attribute unsigned long viewType; */
NS_IMETHODIMP nsMessageView::GetViewType(PRUint32 *aViewType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMessageView::SetViewType(PRUint32 aViewType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean showThreads; */
NS_IMETHODIMP nsMessageView::GetShowThreads(PRBool *aShowThreads)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMessageView::SetShowThreads(PRBool aShowThreads)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetMessages (in nsIRDFResource parentResource, in nsIMsgWindow msgWindow, out nsISimpleEnumerator messages); */
NS_IMETHODIMP nsMessageView::GetMessages(nsIRDFResource *parentResource, nsIMsgWindow *msgWindow, nsISimpleEnumerator **messages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMessageView_h__ */
