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

#ifndef __gen_nsINntpUrl_h__
#define __gen_nsINntpUrl_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

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

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#include "nsINNTPNewsgroupPost.h"
#include "nsIMsgMailNewsUrl.h"
#define NEWS_PORT 119
#define SECURE_NEWS_PORT 563
class nsIMsgDBHdr; /* forward declaration */

class nsINNTPNewsgroupPost; /* forward declaration */

typedef PRInt32 nsNewsAction;


/* starting interface:    nsINntpUrl */
#define NS_INNTPURL_IID_STR "bdd12930-a682-11d2-804c-006008128c4e"

#define NS_INNTPURL_IID \
  {0xbdd12930, 0xa682, 0x11d2, \
    { 0x80, 0x4c, 0x00, 0x60, 0x08, 0x12, 0x8c, 0x4e }}

class NS_NO_VTABLE nsINntpUrl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_INNTPURL_IID)

  /* attribute nsINNTPNewsgroupPost messageToPost; */
  NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) = 0;
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost * aMessageToPost) = 0;

  /* readonly attribute nsIMsgDBHdr messageHeader; */
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader) = 0;

  /* attribute nsNewsAction newsAction; */
  NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) = 0;
  NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) = 0;

  /* attribute boolean getOldMessages; */
  NS_IMETHOD GetGetOldMessages(PRBool *aGetOldMessages) = 0;
  NS_IMETHOD SetGetOldMessages(PRBool aGetOldMessages) = 0;

  enum { ActionUnknown = 0 };

  enum { ActionGetNewNews = 1 };

  enum { ActionFetchArticle = 2 };

  enum { ActionSaveMessageToDisk = 3 };

  enum { ActionCancelArticle = 4 };

  enum { ActionPostArticle = 5 };

  enum { ActionSearch = 6 };

  enum { ActionUpdateCounts = 7 };

  enum { ActionListGroups = 8 };

  enum { ActionFetchPart = 9 };

  enum { ActionAutoSubscribe = 10 };

  enum { ActionListIds = 11 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINNTPURL \
  NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost); \
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost * aMessageToPost); \
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader); \
  NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction); \
  NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction); \
  NS_IMETHOD GetGetOldMessages(PRBool *aGetOldMessages); \
  NS_IMETHOD SetGetOldMessages(PRBool aGetOldMessages); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINNTPURL(_to) \
  NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) { return _to GetMessageToPost(aMessageToPost); } \
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost * aMessageToPost) { return _to SetMessageToPost(aMessageToPost); } \
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader) { return _to GetMessageHeader(aMessageHeader); } \
  NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) { return _to GetNewsAction(aNewsAction); } \
  NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) { return _to SetNewsAction(aNewsAction); } \
  NS_IMETHOD GetGetOldMessages(PRBool *aGetOldMessages) { return _to GetGetOldMessages(aGetOldMessages); } \
  NS_IMETHOD SetGetOldMessages(PRBool aGetOldMessages) { return _to SetGetOldMessages(aGetOldMessages); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSINNTPURL(_to) \
  NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageToPost(aMessageToPost); } \
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost * aMessageToPost) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageToPost(aMessageToPost); } \
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageHeader(aMessageHeader); } \
  NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewsAction(aNewsAction); } \
  NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNewsAction(aNewsAction); } \
  NS_IMETHOD GetGetOldMessages(PRBool *aGetOldMessages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGetOldMessages(aGetOldMessages); } \
  NS_IMETHOD SetGetOldMessages(PRBool aGetOldMessages) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGetOldMessages(aGetOldMessages); } \

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

/* Header file */
class nsNntpUrl : public nsINntpUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSINNTPURL

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsNntpUrl, nsINntpUrl)

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

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

/* attribute nsINNTPNewsgroupPost messageToPost; */
NS_IMETHODIMP nsNntpUrl::GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetMessageToPost(nsINNTPNewsgroupPost * aMessageToPost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgDBHdr messageHeader; */
NS_IMETHODIMP nsNntpUrl::GetMessageHeader(nsIMsgDBHdr * *aMessageHeader)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsNewsAction newsAction; */
NS_IMETHODIMP nsNntpUrl::GetNewsAction(nsNewsAction *aNewsAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetNewsAction(nsNewsAction aNewsAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean getOldMessages; */
NS_IMETHODIMP nsNntpUrl::GetGetOldMessages(PRBool *aGetOldMessages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetGetOldMessages(PRBool aGetOldMessages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsINntpUrl_h__ */
