/*
 * 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 nsIFile; /* 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 */

class nsICacheSession; /* forward declaration */

class nsIMimeHeaders; /* forward declaration */

class nsIStreamListener; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

class nsIMsgHeaderSink; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */


/* starting interface:    nsIMsgMailNewsUrl */
#define NS_IMSGMAILNEWSURL_IID_STR "01850820-e382-4b0f-a109-23d69280876b"

#define NS_IMSGMAILNEWSURL_IID \
  {0x01850820, 0xe382, 0x4b0f, \
    { 0xa1, 0x09, 0x23, 0xd6, 0x92, 0x80, 0x87, 0x6b }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMsgMailNewsUrl : public nsIURL {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGMAILNEWSURL_IID)

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

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

  /* readonly attribute nsIURI baseURI; */
  NS_SCRIPTABLE NS_IMETHOD GetBaseURI(nsIURI **aBaseURI) = 0;

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

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

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

  /**
   * The folder associated with this url.
   * 
   * @exception NS_ERROR_FAILURE    May be thrown if the url does not
   *                                relate to a folder, e.g. standalone
   *                                .eml messages.
   */
  /* attribute nsIMsgFolder folder; */
  NS_SCRIPTABLE NS_IMETHOD GetFolder(nsIMsgFolder **aFolder) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFolder(nsIMsgFolder *aFolder) = 0;

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

  /**
   * The maximum progress for this URL. This might be a count, or it might
   * be a number of bytes. A value of -1 indicates that this is unknown.
   */
  /* attribute long long maxProgress; */
  NS_SCRIPTABLE NS_IMETHOD GetMaxProgress(PRInt64 *aMaxProgress) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMaxProgress(PRInt64 aMaxProgress) = 0;

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

  /* attribute nsIMimeHeaders mimeHeaders; */
  NS_SCRIPTABLE NS_IMETHOD GetMimeHeaders(nsIMimeHeaders **aMimeHeaders) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders) = 0;

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

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

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

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

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

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

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

  /* attribute nsICacheSession imageCacheSession; */
  NS_SCRIPTABLE NS_IMETHOD GetImageCacheSession(nsICacheSession **aImageCacheSession) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetImageCacheSession(nsICacheSession *aImageCacheSession) = 0;

  /* void cacheCacheEntry (in nsICacheEntryDescriptor cacheEntry); */
  NS_SCRIPTABLE NS_IMETHOD CacheCacheEntry(nsICacheEntryDescriptor *cacheEntry) = 0;

  /* void removeCacheEntry (in nsICacheEntryDescriptor cacheEntry); */
  NS_SCRIPTABLE NS_IMETHOD RemoveCacheEntry(nsICacheEntryDescriptor *cacheEntry) = 0;

  enum { eCopy = 0U };

  enum { eMove = 1U };

  enum { eDisplay = 2U };

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

  /* nsIStreamListener getSaveAsListener (in boolean addDummyEnvelope, in nsIFile aFile); */
  NS_SCRIPTABLE NS_IMETHOD GetSaveAsListener(PRBool addDummyEnvelope, nsIFile *aFile, nsIStreamListener **_retval NS_OUTPARAM) = 0;

  /* attribute nsIMsgHeaderSink msgHeaderSink; */
  NS_SCRIPTABLE NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink **aMsgHeaderSink) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink) = 0;

  /* readonly attribute boolean isMessageUri; */
  NS_SCRIPTABLE NS_IMETHOD GetIsMessageUri(PRBool *aIsMessageUri) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgMailNewsUrl, NS_IMSGMAILNEWSURL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGMAILNEWSURL \
  NS_SCRIPTABLE NS_IMETHOD RegisterListener(nsIUrlListener *aUrlListener); \
  NS_SCRIPTABLE NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener); \
  NS_SCRIPTABLE NS_IMETHOD GetBaseURI(nsIURI **aBaseURI); \
  NS_SCRIPTABLE NS_IMETHOD SetUrlState(PRBool runningUrl, nsresult aStatusCode); \
  NS_SCRIPTABLE NS_IMETHOD GetUrlState(PRBool *runningUrl NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetServer(nsIMsgIncomingServer **aServer); \
  NS_SCRIPTABLE NS_IMETHOD GetFolder(nsIMsgFolder **aFolder); \
  NS_SCRIPTABLE NS_IMETHOD SetFolder(nsIMsgFolder *aFolder); \
  NS_SCRIPTABLE NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback **aStatusFeedback); \
  NS_SCRIPTABLE NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback); \
  NS_SCRIPTABLE NS_IMETHOD GetMaxProgress(PRInt64 *aMaxProgress); \
  NS_SCRIPTABLE NS_IMETHOD SetMaxProgress(PRInt64 aMaxProgress); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgWindow(nsIMsgWindow **aMsgWindow); \
  NS_SCRIPTABLE NS_IMETHOD SetMsgWindow(nsIMsgWindow *aMsgWindow); \
  NS_SCRIPTABLE NS_IMETHOD GetMimeHeaders(nsIMimeHeaders **aMimeHeaders); \
  NS_SCRIPTABLE NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders); \
  NS_SCRIPTABLE NS_IMETHOD GetLoadGroup(nsILoadGroup **aLoadGroup); \
  NS_SCRIPTABLE NS_IMETHOD GetSearchSession(nsIMsgSearchSession **aSearchSession); \
  NS_SCRIPTABLE NS_IMETHOD SetSearchSession(nsIMsgSearchSession *aSearchSession); \
  NS_SCRIPTABLE NS_IMETHOD GetUpdatingFolder(PRBool *aUpdatingFolder); \
  NS_SCRIPTABLE NS_IMETHOD SetUpdatingFolder(PRBool aUpdatingFolder); \
  NS_SCRIPTABLE NS_IMETHOD GetAddToMemoryCache(PRBool *aAddToMemoryCache); \
  NS_SCRIPTABLE NS_IMETHOD SetAddToMemoryCache(PRBool aAddToMemoryCache); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache); \
  NS_SCRIPTABLE NS_IMETHOD SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache); \
  NS_SCRIPTABLE NS_IMETHOD GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs); \
  NS_SCRIPTABLE NS_IMETHOD SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs); \
  NS_SCRIPTABLE NS_IMETHOD GetMemCacheEntry(nsICacheEntryDescriptor **aMemCacheEntry); \
  NS_SCRIPTABLE NS_IMETHOD SetMemCacheEntry(nsICacheEntryDescriptor *aMemCacheEntry); \
  NS_SCRIPTABLE NS_IMETHOD GetImageCacheSession(nsICacheSession **aImageCacheSession); \
  NS_SCRIPTABLE NS_IMETHOD SetImageCacheSession(nsICacheSession *aImageCacheSession); \
  NS_SCRIPTABLE NS_IMETHOD CacheCacheEntry(nsICacheEntryDescriptor *cacheEntry); \
  NS_SCRIPTABLE NS_IMETHOD RemoveCacheEntry(nsICacheEntryDescriptor *cacheEntry); \
  NS_SCRIPTABLE NS_IMETHOD IsUrlType(PRUint32 type, PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetSaveAsListener(PRBool addDummyEnvelope, nsIFile *aFile, nsIStreamListener **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink **aMsgHeaderSink); \
  NS_SCRIPTABLE NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink); \
  NS_SCRIPTABLE NS_IMETHOD GetIsMessageUri(PRBool *aIsMessageUri); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGMAILNEWSURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD RegisterListener(nsIUrlListener *aUrlListener) { return _to RegisterListener(aUrlListener); } \
  NS_SCRIPTABLE NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) { return _to UnRegisterListener(aUrlListener); } \
  NS_SCRIPTABLE NS_IMETHOD GetBaseURI(nsIURI **aBaseURI) { return _to GetBaseURI(aBaseURI); } \
  NS_SCRIPTABLE NS_IMETHOD SetUrlState(PRBool runningUrl, nsresult aStatusCode) { return _to SetUrlState(runningUrl, aStatusCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrlState(PRBool *runningUrl NS_OUTPARAM) { return _to GetUrlState(runningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetServer(nsIMsgIncomingServer **aServer) { return _to GetServer(aServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetFolder(nsIMsgFolder **aFolder) { return _to GetFolder(aFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetFolder(nsIMsgFolder *aFolder) { return _to SetFolder(aFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback **aStatusFeedback) { return _to GetStatusFeedback(aStatusFeedback); } \
  NS_SCRIPTABLE NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback) { return _to SetStatusFeedback(aStatusFeedback); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxProgress(PRInt64 *aMaxProgress) { return _to GetMaxProgress(aMaxProgress); } \
  NS_SCRIPTABLE NS_IMETHOD SetMaxProgress(PRInt64 aMaxProgress) { return _to SetMaxProgress(aMaxProgress); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgWindow(nsIMsgWindow **aMsgWindow) { return _to GetMsgWindow(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgWindow(nsIMsgWindow *aMsgWindow) { return _to SetMsgWindow(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD GetMimeHeaders(nsIMimeHeaders **aMimeHeaders) { return _to GetMimeHeaders(aMimeHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders) { return _to SetMimeHeaders(aMimeHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoadGroup(nsILoadGroup **aLoadGroup) { return _to GetLoadGroup(aLoadGroup); } \
  NS_SCRIPTABLE NS_IMETHOD GetSearchSession(nsIMsgSearchSession **aSearchSession) { return _to GetSearchSession(aSearchSession); } \
  NS_SCRIPTABLE NS_IMETHOD SetSearchSession(nsIMsgSearchSession *aSearchSession) { return _to SetSearchSession(aSearchSession); } \
  NS_SCRIPTABLE NS_IMETHOD GetUpdatingFolder(PRBool *aUpdatingFolder) { return _to GetUpdatingFolder(aUpdatingFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetUpdatingFolder(PRBool aUpdatingFolder) { return _to SetUpdatingFolder(aUpdatingFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetAddToMemoryCache(PRBool *aAddToMemoryCache) { return _to GetAddToMemoryCache(aAddToMemoryCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetAddToMemoryCache(PRBool aAddToMemoryCache) { return _to SetAddToMemoryCache(aAddToMemoryCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache) { return _to GetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache) { return _to SetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs) { return _to GetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_SCRIPTABLE NS_IMETHOD SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs) { return _to SetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_SCRIPTABLE NS_IMETHOD GetMemCacheEntry(nsICacheEntryDescriptor **aMemCacheEntry) { return _to GetMemCacheEntry(aMemCacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD SetMemCacheEntry(nsICacheEntryDescriptor *aMemCacheEntry) { return _to SetMemCacheEntry(aMemCacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD GetImageCacheSession(nsICacheSession **aImageCacheSession) { return _to GetImageCacheSession(aImageCacheSession); } \
  NS_SCRIPTABLE NS_IMETHOD SetImageCacheSession(nsICacheSession *aImageCacheSession) { return _to SetImageCacheSession(aImageCacheSession); } \
  NS_SCRIPTABLE NS_IMETHOD CacheCacheEntry(nsICacheEntryDescriptor *cacheEntry) { return _to CacheCacheEntry(cacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveCacheEntry(nsICacheEntryDescriptor *cacheEntry) { return _to RemoveCacheEntry(cacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD IsUrlType(PRUint32 type, PRBool *_retval NS_OUTPARAM) { return _to IsUrlType(type, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSaveAsListener(PRBool addDummyEnvelope, nsIFile *aFile, nsIStreamListener **_retval NS_OUTPARAM) { return _to GetSaveAsListener(addDummyEnvelope, aFile, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink **aMsgHeaderSink) { return _to GetMsgHeaderSink(aMsgHeaderSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink) { return _to SetMsgHeaderSink(aMsgHeaderSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsMessageUri(PRBool *aIsMessageUri) { return _to GetIsMessageUri(aIsMessageUri); } 

/* 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_SCRIPTABLE NS_IMETHOD RegisterListener(nsIUrlListener *aUrlListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterListener(aUrlListener); } \
  NS_SCRIPTABLE NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnRegisterListener(aUrlListener); } \
  NS_SCRIPTABLE NS_IMETHOD GetBaseURI(nsIURI **aBaseURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBaseURI(aBaseURI); } \
  NS_SCRIPTABLE NS_IMETHOD SetUrlState(PRBool runningUrl, nsresult aStatusCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUrlState(runningUrl, aStatusCode); } \
  NS_SCRIPTABLE NS_IMETHOD GetUrlState(PRBool *runningUrl NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrlState(runningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetServer(nsIMsgIncomingServer **aServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServer(aServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetFolder(nsIMsgFolder **aFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolder(aFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetFolder(nsIMsgFolder *aFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolder(aFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback **aStatusFeedback) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatusFeedback(aStatusFeedback); } \
  NS_SCRIPTABLE NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStatusFeedback(aStatusFeedback); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxProgress(PRInt64 *aMaxProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxProgress(aMaxProgress); } \
  NS_SCRIPTABLE NS_IMETHOD SetMaxProgress(PRInt64 aMaxProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxProgress(aMaxProgress); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgWindow(nsIMsgWindow **aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgWindow(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgWindow(nsIMsgWindow *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgWindow(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD GetMimeHeaders(nsIMimeHeaders **aMimeHeaders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimeHeaders(aMimeHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimeHeaders(aMimeHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoadGroup(nsILoadGroup **aLoadGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoadGroup(aLoadGroup); } \
  NS_SCRIPTABLE NS_IMETHOD GetSearchSession(nsIMsgSearchSession **aSearchSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchSession(aSearchSession); } \
  NS_SCRIPTABLE NS_IMETHOD SetSearchSession(nsIMsgSearchSession *aSearchSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSearchSession(aSearchSession); } \
  NS_SCRIPTABLE NS_IMETHOD GetUpdatingFolder(PRBool *aUpdatingFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpdatingFolder(aUpdatingFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetUpdatingFolder(PRBool aUpdatingFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUpdatingFolder(aUpdatingFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetAddToMemoryCache(PRBool *aAddToMemoryCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddToMemoryCache(aAddToMemoryCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetAddToMemoryCache(PRBool aAddToMemoryCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAddToMemoryCache(aAddToMemoryCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgIsInLocalCache(PRBool *aMsgIsInLocalCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgIsInLocalCache(PRBool aMsgIsInLocalCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetSuppressErrorMsgs(PRBool *aSuppressErrorMsgs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_SCRIPTABLE NS_IMETHOD SetSuppressErrorMsgs(PRBool aSuppressErrorMsgs) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_SCRIPTABLE NS_IMETHOD GetMemCacheEntry(nsICacheEntryDescriptor **aMemCacheEntry) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemCacheEntry(aMemCacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD SetMemCacheEntry(nsICacheEntryDescriptor *aMemCacheEntry) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMemCacheEntry(aMemCacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD GetImageCacheSession(nsICacheSession **aImageCacheSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageCacheSession(aImageCacheSession); } \
  NS_SCRIPTABLE NS_IMETHOD SetImageCacheSession(nsICacheSession *aImageCacheSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImageCacheSession(aImageCacheSession); } \
  NS_SCRIPTABLE NS_IMETHOD CacheCacheEntry(nsICacheEntryDescriptor *cacheEntry) { return !_to ? NS_ERROR_NULL_POINTER : _to->CacheCacheEntry(cacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveCacheEntry(nsICacheEntryDescriptor *cacheEntry) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveCacheEntry(cacheEntry); } \
  NS_SCRIPTABLE NS_IMETHOD IsUrlType(PRUint32 type, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsUrlType(type, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSaveAsListener(PRBool addDummyEnvelope, nsIFile *aFile, nsIStreamListener **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSaveAsListener(addDummyEnvelope, aFile, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink **aMsgHeaderSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgHeaderSink(aMsgHeaderSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgHeaderSink(aMsgHeaderSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsMessageUri(PRBool *aIsMessageUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsMessageUri(aIsMessageUri); } 

#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();

private:
  ~nsMsgMailNewsUrl();

protected:
  /* additional members */
};

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

nsMsgMailNewsUrl::nsMsgMailNewsUrl()
{
  /* 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;
}

/* readonly attribute nsIURI baseURI; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetBaseURI(nsIURI **aBaseURI)
{
    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 NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute nsIMsgFolder folder; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetFolder(nsIMsgFolder **aFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetFolder(nsIMsgFolder *aFolder)
{
    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 long long maxProgress; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetMaxProgress(PRInt64 *aMaxProgress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetMaxProgress(PRInt64 aMaxProgress)
{
    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;
}

/* attribute nsIMimeHeaders mimeHeaders; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetMimeHeaders(nsIMimeHeaders **aMimeHeaders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetMimeHeaders(nsIMimeHeaders *aMimeHeaders)
{
    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;
}

/* attribute nsICacheSession imageCacheSession; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetImageCacheSession(nsICacheSession **aImageCacheSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetImageCacheSession(nsICacheSession *aImageCacheSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cacheCacheEntry (in nsICacheEntryDescriptor cacheEntry); */
NS_IMETHODIMP nsMsgMailNewsUrl::CacheCacheEntry(nsICacheEntryDescriptor *cacheEntry)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeCacheEntry (in nsICacheEntryDescriptor cacheEntry); */
NS_IMETHODIMP nsMsgMailNewsUrl::RemoveCacheEntry(nsICacheEntryDescriptor *cacheEntry)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* nsIStreamListener getSaveAsListener (in boolean addDummyEnvelope, in nsIFile aFile); */
NS_IMETHODIMP nsMsgMailNewsUrl::GetSaveAsListener(PRBool addDummyEnvelope, nsIFile *aFile, nsIStreamListener **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgHeaderSink msgHeaderSink; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetMsgHeaderSink(nsIMsgHeaderSink **aMsgHeaderSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isMessageUri; */
NS_IMETHODIMP nsMsgMailNewsUrl::GetIsMessageUri(PRBool *aIsMessageUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgMessageUrl */
#define NS_IMSGMESSAGEURL_IID_STR "1a7340d8-be3c-4fb6-919d-152fb3074da7"

#define NS_IMSGMESSAGEURL_IID \
  {0x1a7340d8, 0xbe3c, 0x4fb6, \
    { 0x91, 0x9d, 0x15, 0x2f, 0xb3, 0x07, 0x4d, 0xa7 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMsgMessageUrl : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGMESSAGEURL_IID)

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

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

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

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

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

  /**
   *  A message db header for that message.
   *  
   *  @note This attribute is not guaranteed to be set, so callers that
   *  actually require an nsIMsgDBHdr will need to use the uri attribute
   *  on this interface to get the  appropriate nsIMsgMessageService and
   *  then get the header from there.
   */
  /* readonly attribute nsIMsgDBHdr messageHeader; */
  NS_SCRIPTABLE NS_IMETHOD GetMessageHeader(nsIMsgDBHdr **aMessageHeader) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgMessageUrl, NS_IMSGMESSAGEURL_IID)

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

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

/* 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_SCRIPTABLE NS_IMETHOD GetUri(char **aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUri(aUri); } \
  NS_SCRIPTABLE NS_IMETHOD SetUri(const char *aUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUri(aUri); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageFile(nsIFile **aMessageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageFile(aMessageFile); } \
  NS_SCRIPTABLE NS_IMETHOD SetMessageFile(nsIFile *aMessageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageFile(aMessageFile); } \
  NS_SCRIPTABLE NS_IMETHOD GetAddDummyEnvelope(PRBool *aAddDummyEnvelope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_SCRIPTABLE NS_IMETHOD SetAddDummyEnvelope(PRBool aAddDummyEnvelope) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanonicalLineEnding(PRBool *aCanonicalLineEnding) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanonicalLineEnding(PRBool aCanonicalLineEnding) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_SCRIPTABLE NS_IMETHOD GetOriginalSpec(char **aOriginalSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginalSpec(aOriginalSpec); } \
  NS_SCRIPTABLE NS_IMETHOD SetOriginalSpec(const char *aOriginalSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOriginalSpec(aOriginalSpec); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageHeader(nsIMsgDBHdr **aMessageHeader) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageHeader(aMessageHeader); } 

#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();

private:
  ~nsMsgMessageUrl();

protected:
  /* additional members */
};

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

nsMsgMessageUrl::nsMsgMessageUrl()
{
  /* 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 nsIFile messageFile; */
NS_IMETHODIMP nsMsgMessageUrl::GetMessageFile(nsIFile **aMessageFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetMessageFile(nsIFile *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;
}

/* readonly attribute nsIMsgDBHdr messageHeader; */
NS_IMETHODIMP nsMsgMessageUrl::GetMessageHeader(nsIMsgDBHdr **aMessageHeader)
{
    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 NS_SCRIPTABLE nsIMsgI18NUrl : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGI18NURL_IID)

  /**
   * the charset associated with a folder for this url.
   * 
   * @exception NS_ERROR_FAILURE    May be thrown if the url does not
   *                                relate to a folder, e.g. standalone
   *                                .eml messages.
   */
  /* readonly attribute string folderCharset; */
  NS_SCRIPTABLE NS_IMETHOD GetFolderCharset(char **aFolderCharset) = 0;

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

  /* attribute string charsetOverRide; */
  NS_SCRIPTABLE NS_IMETHOD GetCharsetOverRide(char **aCharsetOverRide) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCharsetOverRide(const char *aCharsetOverRide) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgI18NUrl, NS_IMSGI18NURL_IID)

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGI18NURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetFolderCharset(char **aFolderCharset) { return _to GetFolderCharset(aFolderCharset); } \
  NS_SCRIPTABLE NS_IMETHOD GetFolderCharsetOverride(PRBool *aFolderCharsetOverride) { return _to GetFolderCharsetOverride(aFolderCharsetOverride); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharsetOverRide(char **aCharsetOverRide) { return _to GetCharsetOverRide(aCharsetOverRide); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharsetOverRide(const char *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_SCRIPTABLE NS_IMETHOD GetFolderCharset(char **aFolderCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderCharset(aFolderCharset); } \
  NS_SCRIPTABLE NS_IMETHOD GetFolderCharsetOverride(PRBool *aFolderCharsetOverride) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderCharsetOverride(aFolderCharsetOverride); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharsetOverRide(char **aCharsetOverRide) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharsetOverRide(aCharsetOverRide); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharsetOverRide(const char *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();

private:
  ~nsMsgI18NUrl();

protected:
  /* additional members */
};

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

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

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

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

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

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

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


#endif /* __gen_nsIMsgMailNewsUrl_h__ */
