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

#ifndef __gen_nsIMsgViewNavigationService_h__
#define __gen_nsIMsgViewNavigationService_h__

#include "nsISupports.h"
#include "xulstubs.h"
#include "domstubs.h"
#include "nsIRDFService.h"

#include "nsIDOMXULTreeElement.h"
#include "nsIDOMXULElement.h"
#include "nsIDOMXULDocument.h"
#include "nsIDOMNode.h"

/* starting interface:    nsIMsgViewNavigationService */
#define NS_IMSGVIEWNAVIGATIONSERVICE_IID_STR "bdd872b6-d02c-11d3-8b2e-0060b0fc04d2"

#define NS_IMSGVIEWNAVIGATIONSERVICE_IID \
  {0xbdd872b6, 0xd02c, 0x11d3, \
    { 0x8b, 0x2e, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xd2 }}

class NS_NO_VTABLE nsIMsgViewNavigationService : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGVIEWNAVIGATIONSERVICE_IID)

  enum { eNavigateAny = 0 };

  enum { eNavigateUnread = 1 };

  enum { eNavigateFlagged = 2 };

  enum { eNavigateNew = 3 };

  /* nsIDOMXULElement FindNextMessage (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document, in boolean wrapAround, in boolean isThreaded); */
  NS_IMETHOD FindNextMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval) = 0;

  /* nsIDOMXULElement FindFirstMessage (in nsIDOMXULTreeElement tree); */
  NS_IMETHOD FindFirstMessage(nsIDOMXULTreeElement *tree, nsIDOMXULElement **_retval) = 0;

  /* nsIDOMXULElement FindNextThread (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document, in boolean wrapAround, in boolean checkOriginalMessage); */
  NS_IMETHOD FindNextThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool checkOriginalMessage, nsIDOMXULElement **_retval) = 0;

  /* nsIDOMXULElement FindNextInThread (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document); */
  NS_IMETHOD FindNextInThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, nsIDOMXULElement **_retval) = 0;

  /* nsIDOMXULElement FindPreviousMessage (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document, in boolean wrapAround, in boolean isThreaded); */
  NS_IMETHOD FindPreviousMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval) = 0;

  /* void OpenTreeitemAndDescendants (in nsIDOMNode treeitem); */
  NS_IMETHOD OpenTreeitemAndDescendants(nsIDOMNode *treeitem) = 0;

  /* void EnsureDocumentIsLoaded (in nsIDOMXULDocument document); */
  NS_IMETHOD EnsureDocumentIsLoaded(nsIDOMXULDocument *document) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGVIEWNAVIGATIONSERVICE \
  NS_IMETHOD FindNextMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval); \
  NS_IMETHOD FindFirstMessage(nsIDOMXULTreeElement *tree, nsIDOMXULElement **_retval); \
  NS_IMETHOD FindNextThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool checkOriginalMessage, nsIDOMXULElement **_retval); \
  NS_IMETHOD FindNextInThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, nsIDOMXULElement **_retval); \
  NS_IMETHOD FindPreviousMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval); \
  NS_IMETHOD OpenTreeitemAndDescendants(nsIDOMNode *treeitem); \
  NS_IMETHOD EnsureDocumentIsLoaded(nsIDOMXULDocument *document); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGVIEWNAVIGATIONSERVICE(_to) \
  NS_IMETHOD FindNextMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval) { return _to ## FindNextMessage(type, tree, originalMessage, rdfService, document, wrapAround, isThreaded, _retval); } \
  NS_IMETHOD FindFirstMessage(nsIDOMXULTreeElement *tree, nsIDOMXULElement **_retval) { return _to ## FindFirstMessage(tree, _retval); } \
  NS_IMETHOD FindNextThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool checkOriginalMessage, nsIDOMXULElement **_retval) { return _to ## FindNextThread(type, tree, originalMessage, rdfService, document, wrapAround, checkOriginalMessage, _retval); } \
  NS_IMETHOD FindNextInThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, nsIDOMXULElement **_retval) { return _to ## FindNextInThread(type, tree, originalMessage, rdfService, document, _retval); } \
  NS_IMETHOD FindPreviousMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval) { return _to ## FindPreviousMessage(type, tree, originalMessage, rdfService, document, wrapAround, isThreaded, _retval); } \
  NS_IMETHOD OpenTreeitemAndDescendants(nsIDOMNode *treeitem) { return _to ## OpenTreeitemAndDescendants(treeitem); } \
  NS_IMETHOD EnsureDocumentIsLoaded(nsIDOMXULDocument *document) { return _to ## EnsureDocumentIsLoaded(document); } 

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

/* Header file */
class nsMsgViewNavigationService : public nsIMsgViewNavigationService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGVIEWNAVIGATIONSERVICE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgViewNavigationService, nsIMsgViewNavigationService)

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

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

/* nsIDOMXULElement FindNextMessage (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document, in boolean wrapAround, in boolean isThreaded); */
NS_IMETHODIMP nsMsgViewNavigationService::FindNextMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMXULElement FindFirstMessage (in nsIDOMXULTreeElement tree); */
NS_IMETHODIMP nsMsgViewNavigationService::FindFirstMessage(nsIDOMXULTreeElement *tree, nsIDOMXULElement **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMXULElement FindNextThread (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document, in boolean wrapAround, in boolean checkOriginalMessage); */
NS_IMETHODIMP nsMsgViewNavigationService::FindNextThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool checkOriginalMessage, nsIDOMXULElement **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMXULElement FindNextInThread (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document); */
NS_IMETHODIMP nsMsgViewNavigationService::FindNextInThread(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, nsIDOMXULElement **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIDOMXULElement FindPreviousMessage (in long type, in nsIDOMXULTreeElement tree, in nsIDOMXULElement originalMessage, in nsIRDFService rdfService, in nsIDOMXULDocument document, in boolean wrapAround, in boolean isThreaded); */
NS_IMETHODIMP nsMsgViewNavigationService::FindPreviousMessage(PRInt32 type, nsIDOMXULTreeElement *tree, nsIDOMXULElement *originalMessage, nsIRDFService *rdfService, nsIDOMXULDocument *document, PRBool wrapAround, PRBool isThreaded, nsIDOMXULElement **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OpenTreeitemAndDescendants (in nsIDOMNode treeitem); */
NS_IMETHODIMP nsMsgViewNavigationService::OpenTreeitemAndDescendants(nsIDOMNode *treeitem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void EnsureDocumentIsLoaded (in nsIDOMXULDocument document); */
NS_IMETHODIMP nsMsgViewNavigationService::EnsureDocumentIsLoaded(nsIDOMXULDocument *document)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgViewNavigationService_h__ */
