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

#ifndef __gen_nsIMsgMailNewsUrl_h__
#define __gen_nsIMsgMailNewsUrl_h__


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

#ifndef __gen_nsIURL_h__
#include "nsIURL.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIFileSpec; /* forward declaration */

class nsIUrlListener; /* forward declaration */

class nsIMsgStatusFeedback; /* forward declaration */

class nsIMsgIncomingServer; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

class nsILoadGroup; /* forward declaration */

class nsIMsgSearchSession; /* forward declaration */

class nsICacheEntryDescriptor; /* forward declaration */


/* starting interface:    nsIMsgMailNewsUrl */
#define NS_IMSGMAILNEWSURL_IID_STR "6cffceb0-cb8c-11d2-8065-006008128c4e"

#define NS_IMSGMAILNEWSURL_IID \
  {0x6cffceb0, 0xcb8c, 0x11d2, \
    { 0x80, 0x65, 0x00, 0x60, 0x08, 0x12, 0x8c, 0x4e }}

class NS_NO_VTABLE nsIMsgMailNewsUrl : public nsIURL {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGMAILNEWSURL_IID)

  /* void RegisterListener (in nsIUrlListener aUrlListener); */
  NS_IMETHOD RegisterListener(nsIUrlListener *aUrlListener) = 0;

  /* void UnRegisterListener (in nsIUrlListener aUrlListener); */
  NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) = 0;

  /* attribute string errorMessage; */
  NS_IMETHOD GetErrorMessage(char * *aErrorMessage) = 0;
  NS_IMETHOD SetErrorMessage(const char * aErrorMessage) = 0;

  /* void SetUrlState (in boolean runningUrl, in nsresult aStatusCode); */
  NS_IMETHOD SetUrlState(PRBool runningUrl, nsresult aStatusCode) = 0;

  /* void GetUrlState (out boolean runningUrl); */
  NS_IMETHOD GetUrlState(PRBool *runningUrl) = 0;

  /* readonly attribute nsIMsgIncomingServer server; */
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer) = 0;

  /* attribute nsIMsgStatusFeedback statusFeedback; */
  NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback) = 0;
  NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback * aStatusFeedback) = 0;

  /* attribute nsIMsgWindow msgWindow; */
  NS_IMETHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow) = 0;
  NS_IMETHOD SetMsgWindow(nsIMsgWindow * aMsgWindow) = 0;

  /* readonly attribute nsILoadGroup loadGroup; */
  NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) = 0;

  /* attribute nsIMsgSearchSession searchSession; */
  NS_IMETHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession) = 0;
  NS_IMETHOD SetSearchSession(nsIMsgSearchSession * aSearchSession) = 0;

  /* attribute boolean updatingFolder; */
  NS_IMETHOD GetUpdatingFolder(PRBool *aUpdatingFolder) = 0;
  NS_IMETHOD SetUpdatingFolder(PRBool aUpdatingFolder) = 0;

  /* attribute boolean addToMemoryCache; */
  NS_IMETHOD GetAddToMemoryCache(PRBool *aAddToMemoryCache) = 0;
  NS_IMETHOD SetAddToMemoryCache(PRBool aAddToMemoryCache) = 0;

  /* attribute boolean msgIsInLocalCache; */
  NS_IMETHOD GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache) = 0;
  NS_IMETHOD SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache) = 0;

  /* attribute boolean suppressErrorMsgs; */
  NS_IMETHOD GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs) = 0;
  NS_IMETHOD SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs) = 0;

  /* attribute nsICacheEntryDescriptor memCacheEntry; */
  NS_IMETHOD GetMemCacheEntry(nsICacheEntryDescriptor * *aMemCacheEntry) = 0;
  NS_IMETHOD SetMemCacheEntry(nsICacheEntryDescriptor * aMemCacheEntry) = 0;

  enum { eCopy = 0U };

  enum { eMove = 1U };

  enum { eDisplay = 2U };

  /* boolean IsUrlType (in unsigned long type); */
  NS_IMETHOD IsUrlType(PRUint32 type, PRBool *_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGMAILNEWSURL \
  NS_IMETHOD RegisterListener(nsIUrlListener *aUrlListener); \
  NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener); \
  NS_IMETHOD GetErrorMessage(char * *aErrorMessage); \
  NS_IMETHOD SetErrorMessage(const char * aErrorMessage); \
  NS_IMETHOD SetUrlState(PRBool runningUrl, nsresult aStatusCode); \
  NS_IMETHOD GetUrlState(PRBool *runningUrl); \
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer); \
  NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback); \
  NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback * aStatusFeedback); \
  NS_IMETHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow); \
  NS_IMETHOD SetMsgWindow(nsIMsgWindow * aMsgWindow); \
  NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup); \
  NS_IMETHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession); \
  NS_IMETHOD SetSearchSession(nsIMsgSearchSession * aSearchSession); \
  NS_IMETHOD GetUpdatingFolder(PRBool *aUpdatingFolder); \
  NS_IMETHOD SetUpdatingFolder(PRBool aUpdatingFolder); \
  NS_IMETHOD GetAddToMemoryCache(PRBool *aAddToMemoryCache); \
  NS_IMETHOD SetAddToMemoryCache(PRBool aAddToMemoryCache); \
  NS_IMETHOD GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache); \
  NS_IMETHOD SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache); \
  NS_IMETHOD GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs); \
  NS_IMETHOD SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs); \
  NS_IMETHOD GetMemCacheEntry(nsICacheEntryDescriptor * *aMemCacheEntry); \
  NS_IMETHOD SetMemCacheEntry(nsICacheEntryDescriptor * aMemCacheEntry); \
  NS_IMETHOD IsUrlType(PRUint32 type, PRBool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGMAILNEWSURL(_to) \
  NS_IMETHOD RegisterListener(nsIUrlListener *aUrlListener) { return _to RegisterListener(aUrlListener); } \
  NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) { return _to UnRegisterListener(aUrlListener); } \
  NS_IMETHOD GetErrorMessage(char * *aErrorMessage) { return _to GetErrorMessage(aErrorMessage); } \
  NS_IMETHOD SetErrorMessage(const char * aErrorMessage) { return _to SetErrorMessage(aErrorMessage); } \
  NS_IMETHOD SetUrlState(PRBool runningUrl, nsresult aStatusCode) { return _to SetUrlState(runningUrl, aStatusCode); } \
  NS_IMETHOD GetUrlState(PRBool *runningUrl) { return _to GetUrlState(runningUrl); } \
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer) { return _to GetServer(aServer); } \
  NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback) { return _to GetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback * aStatusFeedback) { return _to SetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow) { return _to GetMsgWindow(aMsgWindow); } \
  NS_IMETHOD SetMsgWindow(nsIMsgWindow * aMsgWindow) { return _to SetMsgWindow(aMsgWindow); } \
  NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) { return _to GetLoadGroup(aLoadGroup); } \
  NS_IMETHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession) { return _to GetSearchSession(aSearchSession); } \
  NS_IMETHOD SetSearchSession(nsIMsgSearchSession * aSearchSession) { return _to SetSearchSession(aSearchSession); } \
  NS_IMETHOD GetUpdatingFolder(PRBool *aUpdatingFolder) { return _to GetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD SetUpdatingFolder(PRBool aUpdatingFolder) { return _to SetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD GetAddToMemoryCache(PRBool *aAddToMemoryCache) { return _to GetAddToMemoryCache(aAddToMemoryCache); } \
  NS_IMETHOD SetAddToMemoryCache(PRBool aAddToMemoryCache) { return _to SetAddToMemoryCache(aAddToMemoryCache); } \
  NS_IMETHOD GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache) { return _to GetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache) { return _to SetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs) { return _to GetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs) { return _to SetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD GetMemCacheEntry(nsICacheEntryDescriptor * *aMemCacheEntry) { return _to GetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD SetMemCacheEntry(nsICacheEntryDescriptor * aMemCacheEntry) { return _to SetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD IsUrlType(PRUint32 type, PRBool *_retval) { return _to IsUrlType(type, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGMAILNEWSURL(_to) \
  NS_IMETHOD RegisterListener(nsIUrlListener *aUrlListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterListener(aUrlListener); } \
  NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnRegisterListener(aUrlListener); } \
  NS_IMETHOD GetErrorMessage(char * *aErrorMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetErrorMessage(aErrorMessage); } \
  NS_IMETHOD SetErrorMessage(const char * aErrorMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetErrorMessage(aErrorMessage); } \
  NS_IMETHOD SetUrlState(PRBool runningUrl, nsresult aStatusCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUrlState(runningUrl, aStatusCode); } \
  NS_IMETHOD GetUrlState(PRBool *runningUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrlState(runningUrl); } \
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServer(aServer); } \
  NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback * aStatusFeedback) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgWindow(aMsgWindow); } \
  NS_IMETHOD SetMsgWindow(nsIMsgWindow * aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgWindow(aMsgWindow); } \
  NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoadGroup(aLoadGroup); } \
  NS_IMETHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchSession(aSearchSession); } \
  NS_IMETHOD SetSearchSession(nsIMsgSearchSession * aSearchSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSearchSession(aSearchSession); } \
  NS_IMETHOD GetUpdatingFolder(PRBool *aUpdatingFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD SetUpdatingFolder(PRBool aUpdatingFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD GetAddToMemoryCache(PRBool *aAddToMemoryCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddToMemoryCache(aAddToMemoryCache); } \
  NS_IMETHOD SetAddToMemoryCache(PRBool aAddToMemoryCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAddToMemoryCache(aAddToMemoryCache); } \
  NS_IMETHOD GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD GetMemCacheEntry(nsICacheEntryDescriptor * *aMemCacheEntry) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD SetMemCacheEntry(nsICacheEntryDescriptor * aMemCacheEntry) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD IsUrlType(PRUint32 type, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsUrlType(type, _retval); } 

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

/* Header file */
class nsMsgMailNewsUrl : public nsIMsgMailNewsUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGMAILNEWSURL

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgMailNewsUrl, nsIMsgMailNewsUrl)

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

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

/* void RegisterListener (in nsIUrlListener aUrlListener); */
NS_IMETHODIMP nsMsgMailNewsUrl::RegisterListener(nsIUrlListener *aUrlListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void UnRegisterListener (in nsIUrlListener aUrlListener); */
NS_IMETHODIMP nsMsgMailNewsUrl::UnRegisterListener(nsIUrlListener *aUrlListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string errorMessage; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetErrorMessage(char * *aErrorMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetErrorMessage(const char * aErrorMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetUrlState (in boolean runningUrl, in nsresult aStatusCode); */
NS_IMETHODIMP nsMsgMailNewsUrl::SetUrlState(PRBool runningUrl, nsresult aStatusCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetUrlState (out boolean runningUrl); */
NS_IMETHODIMP nsMsgMailNewsUrl::GetUrlState(PRBool *runningUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgIncomingServer server; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetServer(nsIMsgIncomingServer * *aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgStatusFeedback statusFeedback; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetStatusFeedback(nsIMsgStatusFeedback * aStatusFeedback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgWindow msgWindow; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetMsgWindow(nsIMsgWindow * *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetMsgWindow(nsIMsgWindow * aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsILoadGroup loadGroup; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetLoadGroup(nsILoadGroup * *aLoadGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgSearchSession searchSession; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetSearchSession(nsIMsgSearchSession * *aSearchSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetSearchSession(nsIMsgSearchSession * aSearchSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean updatingFolder; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetUpdatingFolder(PRBool *aUpdatingFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetUpdatingFolder(PRBool aUpdatingFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean addToMemoryCache; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetAddToMemoryCache(PRBool *aAddToMemoryCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetAddToMemoryCache(PRBool aAddToMemoryCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean msgIsInLocalCache; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean suppressErrorMsgs; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsICacheEntryDescriptor memCacheEntry; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetMemCacheEntry(nsICacheEntryDescriptor * *aMemCacheEntry)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetMemCacheEntry(nsICacheEntryDescriptor * aMemCacheEntry)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean IsUrlType (in unsigned long type); */
NS_IMETHODIMP nsMsgMailNewsUrl::IsUrlType(PRUint32 type, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgMessageUrl */
#define NS_IMSGMESSAGEURL_IID_STR "02338dd2-e7b9-11d2-8070-006008128c4e"

#define NS_IMSGMESSAGEURL_IID \
  {0x02338dd2, 0xe7b9, 0x11d2, \
    { 0x80, 0x70, 0x00, 0x60, 0x08, 0x12, 0x8c, 0x4e }}

class NS_NO_VTABLE nsIMsgMessageUrl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGMESSAGEURL_IID)

  /* attribute string uri; */
  NS_IMETHOD GetUri(char * *aUri) = 0;
  NS_IMETHOD SetUri(const char * aUri) = 0;

  /* attribute nsIFileSpec messageFile; */
  NS_IMETHOD GetMessageFile(nsIFileSpec * *aMessageFile) = 0;
  NS_IMETHOD SetMessageFile(nsIFileSpec * aMessageFile) = 0;

  /* attribute boolean AddDummyEnvelope; */
  NS_IMETHOD GetAddDummyEnvelope(PRBool *aAddDummyEnvelope) = 0;
  NS_IMETHOD SetAddDummyEnvelope(PRBool aAddDummyEnvelope) = 0;

  /* attribute boolean canonicalLineEnding; */
  NS_IMETHOD GetCanonicalLineEnding(PRBool *aCanonicalLineEnding) = 0;
  NS_IMETHOD SetCanonicalLineEnding(PRBool aCanonicalLineEnding) = 0;

  /* attribute string originalSpec; */
  NS_IMETHOD GetOriginalSpec(char * *aOriginalSpec) = 0;
  NS_IMETHOD SetOriginalSpec(const char * aOriginalSpec) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGMESSAGEURL \
  NS_IMETHOD GetUri(char * *aUri); \
  NS_IMETHOD SetUri(const char * aUri); \
  NS_IMETHOD GetMessageFile(nsIFileSpec * *aMessageFile); \
  NS_IMETHOD SetMessageFile(nsIFileSpec * aMessageFile); \
  NS_IMETHOD GetAddDummyEnvelope(PRBool *aAddDummyEnvelope); \
  NS_IMETHOD SetAddDummyEnvelope(PRBool aAddDummyEnvelope); \
  NS_IMETHOD GetCanonicalLineEnding(PRBool *aCanonicalLineEnding); \
  NS_IMETHOD SetCanonicalLineEnding(PRBool aCanonicalLineEnding); \
  NS_IMETHOD GetOriginalSpec(char * *aOriginalSpec); \
  NS_IMETHOD SetOriginalSpec(const char * aOriginalSpec); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGMESSAGEURL(_to) \
  NS_IMETHOD GetUri(char * *aUri) { return _to GetUri(aUri); } \
  NS_IMETHOD SetUri(const char * aUri) { return _to SetUri(aUri); } \
  NS_IMETHOD GetMessageFile(nsIFileSpec * *aMessageFile) { return _to GetMessageFile(aMessageFile); } \
  NS_IMETHOD SetMessageFile(nsIFileSpec * aMessageFile) { return _to SetMessageFile(aMessageFile); } \
  NS_IMETHOD GetAddDummyEnvelope(PRBool *aAddDummyEnvelope) { return _to GetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD SetAddDummyEnvelope(PRBool aAddDummyEnvelope) { return _to SetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD GetCanonicalLineEnding(PRBool *aCanonicalLineEnding) { return _to GetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD SetCanonicalLineEnding(PRBool aCanonicalLineEnding) { return _to SetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD GetOriginalSpec(char * *aOriginalSpec) { return _to GetOriginalSpec(aOriginalSpec); } \
  NS_IMETHOD SetOriginalSpec(const char * aOriginalSpec) { return _to SetOriginalSpec(aOriginalSpec); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGMESSAGEURL(_to) \
  NS_IMETHOD GetUri(char * *aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUri(aUri); } \
  NS_IMETHOD SetUri(const char * aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUri(aUri); } \
  NS_IMETHOD GetMessageFile(nsIFileSpec * *aMessageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageFile(aMessageFile); } \
  NS_IMETHOD SetMessageFile(nsIFileSpec * aMessageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageFile(aMessageFile); } \
  NS_IMETHOD GetAddDummyEnvelope(PRBool *aAddDummyEnvelope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD SetAddDummyEnvelope(PRBool aAddDummyEnvelope) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD GetCanonicalLineEnding(PRBool *aCanonicalLineEnding) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD SetCanonicalLineEnding(PRBool aCanonicalLineEnding) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD GetOriginalSpec(char * *aOriginalSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginalSpec(aOriginalSpec); } \
  NS_IMETHOD SetOriginalSpec(const char * aOriginalSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOriginalSpec(aOriginalSpec); } 

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

/* Header file */
class nsMsgMessageUrl : public nsIMsgMessageUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGMESSAGEURL

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgMessageUrl, nsIMsgMessageUrl)

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

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

/* attribute string uri; */
NS_IMETHODIMP nsMsgMessageUrl::GetUri(char * *aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetUri(const char * aUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIFileSpec messageFile; */
NS_IMETHODIMP nsMsgMessageUrl::GetMessageFile(nsIFileSpec * *aMessageFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetMessageFile(nsIFileSpec * aMessageFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean AddDummyEnvelope; */
NS_IMETHODIMP nsMsgMessageUrl::GetAddDummyEnvelope(PRBool *aAddDummyEnvelope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetAddDummyEnvelope(PRBool aAddDummyEnvelope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean canonicalLineEnding; */
NS_IMETHODIMP nsMsgMessageUrl::GetCanonicalLineEnding(PRBool *aCanonicalLineEnding)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetCanonicalLineEnding(PRBool aCanonicalLineEnding)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string originalSpec; */
NS_IMETHODIMP nsMsgMessageUrl::GetOriginalSpec(char * *aOriginalSpec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetOriginalSpec(const char * aOriginalSpec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgI18NUrl */
#define NS_IMSGI18NURL_IID_STR "d71e0785-2862-11d4-98c1-001083010e9b"

#define NS_IMSGI18NURL_IID \
  {0xd71e0785, 0x2862, 0x11d4, \
    { 0x98, 0xc1, 0x00, 0x10, 0x83, 0x01, 0x0e, 0x9b }}

class NS_NO_VTABLE nsIMsgI18NUrl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGI18NURL_IID)

  /* readonly attribute wstring folderCharset; */
  NS_IMETHOD GetFolderCharset(PRUnichar * *aFolderCharset) = 0;

  /* readonly attribute boolean folderCharsetOverride; */
  NS_IMETHOD GetFolderCharsetOverride(PRBool *aFolderCharsetOverride) = 0;

  /* attribute wstring charsetOverRide; */
  NS_IMETHOD GetCharsetOverRide(PRUnichar * *aCharsetOverRide) = 0;
  NS_IMETHOD SetCharsetOverRide(const PRUnichar * aCharsetOverRide) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGI18NURL \
  NS_IMETHOD GetFolderCharset(PRUnichar * *aFolderCharset); \
  NS_IMETHOD GetFolderCharsetOverride(PRBool *aFolderCharsetOverride); \
  NS_IMETHOD GetCharsetOverRide(PRUnichar * *aCharsetOverRide); \
  NS_IMETHOD SetCharsetOverRide(const PRUnichar * aCharsetOverRide); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGI18NURL(_to) \
  NS_IMETHOD GetFolderCharset(PRUnichar * *aFolderCharset) { return _to GetFolderCharset(aFolderCharset); } \
  NS_IMETHOD GetFolderCharsetOverride(PRBool *aFolderCharsetOverride) { return _to GetFolderCharsetOverride(aFolderCharsetOverride); } \
  NS_IMETHOD GetCharsetOverRide(PRUnichar * *aCharsetOverRide) { return _to GetCharsetOverRide(aCharsetOverRide); } \
  NS_IMETHOD SetCharsetOverRide(const PRUnichar * aCharsetOverRide) { return _to SetCharsetOverRide(aCharsetOverRide); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGI18NURL(_to) \
  NS_IMETHOD GetFolderCharset(PRUnichar * *aFolderCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderCharset(aFolderCharset); } \
  NS_IMETHOD GetFolderCharsetOverride(PRBool *aFolderCharsetOverride) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderCharsetOverride(aFolderCharsetOverride); } \
  NS_IMETHOD GetCharsetOverRide(PRUnichar * *aCharsetOverRide) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharsetOverRide(aCharsetOverRide); } \
  NS_IMETHOD SetCharsetOverRide(const PRUnichar * aCharsetOverRide) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharsetOverRide(aCharsetOverRide); } 

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

/* Header file */
class nsMsgI18NUrl : public nsIMsgI18NUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGI18NURL

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgI18NUrl, nsIMsgI18NUrl)

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

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

/* readonly attribute wstring folderCharset; */
NS_IMETHODIMP nsMsgI18NUrl::GetFolderCharset(PRUnichar * *aFolderCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean folderCharsetOverride; */
NS_IMETHODIMP nsMsgI18NUrl::GetFolderCharsetOverride(PRBool *aFolderCharsetOverride)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring charsetOverRide; */
NS_IMETHODIMP nsMsgI18NUrl::GetCharsetOverRide(PRUnichar * *aCharsetOverRide)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgI18NUrl::SetCharsetOverRide(const PRUnichar * aCharsetOverRide)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgMailNewsUrl_h__ */
