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

#ifndef __gen_nsINntpUrl_h__
#define __gen_nsINntpUrl_h__

#include "nsISupports.h"
#include "MailNewsTypes2.h"

#include "nsINNTPHost.h"
#include "nsINNTPArticleList.h"
#include "nsINNTPNewsgroup.h"
#include "nsIMsgOfflineNewsState.h"
#include "nsINNTPNewsgroupList.h"  
#include "nsINNTPNewsgroupPost.h"
#include "nsIMsgMailNewsUrl.h"
#define NEWS_PORT 119
#define SECURE_NEWS_PORT 563
class nsIMsgDBHdr; /* forward declaration */

class nsINNTPHost; /* forward declaration */

class nsINNTPArticleList; /* forward declaration */

class nsINNTPNewsgroup; /* forward declaration */

class nsIMsgOfflineNewsState; /* forward declaration */

class nsINNTPNewsgroupList; /* 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 nsINNTPHost nntpHost; */
  NS_IMETHOD GetNntpHost(nsINNTPHost * *aNntpHost) = 0;
  NS_IMETHOD SetNntpHost(nsINNTPHost * aNntpHost) = 0;

  /* attribute nsINNTPArticleList nntpArticleList; */
  NS_IMETHOD GetNntpArticleList(nsINNTPArticleList * *aNntpArticleList) = 0;
  NS_IMETHOD SetNntpArticleList(nsINNTPArticleList * aNntpArticleList) = 0;

  /* attribute nsINNTPNewsgroup newsgroup; */
  NS_IMETHOD GetNewsgroup(nsINNTPNewsgroup * *aNewsgroup) = 0;
  NS_IMETHOD SetNewsgroup(nsINNTPNewsgroup * aNewsgroup) = 0;

  /* attribute nsIMsgOfflineNewsState offlineNewsState; */
  NS_IMETHOD GetOfflineNewsState(nsIMsgOfflineNewsState * *aOfflineNewsState) = 0;
  NS_IMETHOD SetOfflineNewsState(nsIMsgOfflineNewsState * aOfflineNewsState) = 0;

  /* attribute nsINNTPNewsgroupList newsgroupList; */
  NS_IMETHOD GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList) = 0;
  NS_IMETHOD SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList) = 0;

  /* 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 nsMsgKey messageKey; */
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) = 0;
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) = 0;

  /* attribute string newsgroupName; */
  NS_IMETHOD GetNewsgroupName(char * *aNewsgroupName) = 0;
  NS_IMETHOD SetNewsgroupName(const char * aNewsgroupName) = 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 { ActionGetNewNews = 0 };

  enum { ActionDisplayArticle = 1 };

  enum { ActionSaveMessageToDisk = 2 };

  enum { ActionCancelArticle = 3 };

  enum { ActionPostArticle = 4 };

  enum { ActionSearch = 5 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINNTPURL \
  NS_IMETHOD GetNntpHost(nsINNTPHost * *aNntpHost); \
  NS_IMETHOD SetNntpHost(nsINNTPHost * aNntpHost); \
  NS_IMETHOD GetNntpArticleList(nsINNTPArticleList * *aNntpArticleList); \
  NS_IMETHOD SetNntpArticleList(nsINNTPArticleList * aNntpArticleList); \
  NS_IMETHOD GetNewsgroup(nsINNTPNewsgroup * *aNewsgroup); \
  NS_IMETHOD SetNewsgroup(nsINNTPNewsgroup * aNewsgroup); \
  NS_IMETHOD GetOfflineNewsState(nsIMsgOfflineNewsState * *aOfflineNewsState); \
  NS_IMETHOD SetOfflineNewsState(nsIMsgOfflineNewsState * aOfflineNewsState); \
  NS_IMETHOD GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList); \
  NS_IMETHOD SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList); \
  NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost); \
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost * aMessageToPost); \
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader); \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey); \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey); \
  NS_IMETHOD GetNewsgroupName(char * *aNewsgroupName); \
  NS_IMETHOD SetNewsgroupName(const char * aNewsgroupName); \
  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 GetNntpHost(nsINNTPHost * *aNntpHost) { return _to ## GetNntpHost(aNntpHost); } \
  NS_IMETHOD SetNntpHost(nsINNTPHost * aNntpHost) { return _to ## SetNntpHost(aNntpHost); } \
  NS_IMETHOD GetNntpArticleList(nsINNTPArticleList * *aNntpArticleList) { return _to ## GetNntpArticleList(aNntpArticleList); } \
  NS_IMETHOD SetNntpArticleList(nsINNTPArticleList * aNntpArticleList) { return _to ## SetNntpArticleList(aNntpArticleList); } \
  NS_IMETHOD GetNewsgroup(nsINNTPNewsgroup * *aNewsgroup) { return _to ## GetNewsgroup(aNewsgroup); } \
  NS_IMETHOD SetNewsgroup(nsINNTPNewsgroup * aNewsgroup) { return _to ## SetNewsgroup(aNewsgroup); } \
  NS_IMETHOD GetOfflineNewsState(nsIMsgOfflineNewsState * *aOfflineNewsState) { return _to ## GetOfflineNewsState(aOfflineNewsState); } \
  NS_IMETHOD SetOfflineNewsState(nsIMsgOfflineNewsState * aOfflineNewsState) { return _to ## SetOfflineNewsState(aOfflineNewsState); } \
  NS_IMETHOD GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList) { return _to ## GetNewsgroupList(aNewsgroupList); } \
  NS_IMETHOD SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList) { return _to ## SetNewsgroupList(aNewsgroupList); } \
  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 GetMessageKey(nsMsgKey *aMessageKey) { return _to ## GetMessageKey(aMessageKey); } \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) { return _to ## SetMessageKey(aMessageKey); } \
  NS_IMETHOD GetNewsgroupName(char * *aNewsgroupName) { return _to ## GetNewsgroupName(aNewsgroupName); } \
  NS_IMETHOD SetNewsgroupName(const char * aNewsgroupName) { return _to ## SetNewsgroupName(aNewsgroupName); } \
  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); } \

#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 nsINNTPHost nntpHost; */
NS_IMETHODIMP nsNntpUrl::GetNntpHost(nsINNTPHost * *aNntpHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetNntpHost(nsINNTPHost * aNntpHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsINNTPArticleList nntpArticleList; */
NS_IMETHODIMP nsNntpUrl::GetNntpArticleList(nsINNTPArticleList * *aNntpArticleList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetNntpArticleList(nsINNTPArticleList * aNntpArticleList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsINNTPNewsgroup newsgroup; */
NS_IMETHODIMP nsNntpUrl::GetNewsgroup(nsINNTPNewsgroup * *aNewsgroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetNewsgroup(nsINNTPNewsgroup * aNewsgroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgOfflineNewsState offlineNewsState; */
NS_IMETHODIMP nsNntpUrl::GetOfflineNewsState(nsIMsgOfflineNewsState * *aOfflineNewsState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetOfflineNewsState(nsIMsgOfflineNewsState * aOfflineNewsState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsINNTPNewsgroupList newsgroupList; */
NS_IMETHODIMP nsNntpUrl::GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 nsMsgKey messageKey; */
NS_IMETHODIMP nsNntpUrl::GetMessageKey(nsMsgKey *aMessageKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetMessageKey(nsMsgKey aMessageKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string newsgroupName; */
NS_IMETHODIMP nsNntpUrl::GetNewsgroupName(char * *aNewsgroupName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetNewsgroupName(const char * aNewsgroupName)
{
    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__ */
