/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/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 nsICacheEntry; /* forward declaration */

class nsIMimeHeaders; /* forward declaration */

class nsIStreamListener; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

class nsIMsgHeaderSink; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

class nsIDocShellLoadInfo; /* forward declaration */

class nsIDocShell; /* forward declaration */


/* starting interface:    nsIMsgMailNewsUrl */
#define NS_IMSGMAILNEWSURL_IID_STR "995455ba-5bb4-4643-8d70-2b877a2e1320"

#define NS_IMSGMAILNEWSURL_IID \
  {0x995455ba, 0x5bb4, 0x4643, \
    { 0x8d, 0x70, 0x2b, 0x87, 0x7a, 0x2e, 0x13, 0x20 }}

class NS_NO_VTABLE nsIMsgMailNewsUrl : public nsIURL {
 public:

  NS_DECLARE_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;

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

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

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

  enum {
    IGNORE_REF = 0U,
    HONOR_REF = 1U,
    REPLACE_REF = 2U
  };

  /* nsIURI cloneInternal (in unsigned long aRefHandlingMode, in AUTF8String aNewRef); */
  NS_IMETHOD CloneInternal(uint32_t aRefHandlingMode, const nsACString & aNewRef, nsIURI * *_retval) = 0;

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

  /* attribute nsIMsgFolder folder; */
  NS_IMETHOD GetFolder(nsIMsgFolder * *aFolder) = 0;
  NS_IMETHOD SetFolder(nsIMsgFolder *aFolder) = 0;

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

  /* attribute long long maxProgress; */
  NS_IMETHOD GetMaxProgress(int64_t *aMaxProgress) = 0;
  NS_IMETHOD SetMaxProgress(int64_t aMaxProgress) = 0;

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

  /* attribute nsIMimeHeaders mimeHeaders; */
  NS_IMETHOD GetMimeHeaders(nsIMimeHeaders * *aMimeHeaders) = 0;
  NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders) = 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(bool *aUpdatingFolder) = 0;
  NS_IMETHOD SetUpdatingFolder(bool aUpdatingFolder) = 0;

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

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

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

  enum {
    eCopy = 0U,
    eMove = 1U,
    eDisplay = 2U
  };

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

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

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

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

  /* void loadURI (in nsIDocShell docshell, in nsIDocShellLoadInfo loadInfo, in unsigned long aLoadFlags); */
  NS_IMETHOD LoadURI(nsIDocShell *docshell, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags) = 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_IMETHOD RegisterListener(nsIUrlListener *aUrlListener) override; \
  NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) override; \
  NS_IMETHOD GetBaseURI(nsIURI * *aBaseURI) override; \
  NS_IMETHOD SetUrlState(bool runningUrl, nsresult aStatusCode) override; \
  NS_IMETHOD GetUrlState(bool *runningUrl) override; \
  NS_IMETHOD CloneInternal(uint32_t aRefHandlingMode, const nsACString & aNewRef, nsIURI * *_retval) override; \
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer) override; \
  NS_IMETHOD GetFolder(nsIMsgFolder * *aFolder) override; \
  NS_IMETHOD SetFolder(nsIMsgFolder *aFolder) override; \
  NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback) override; \
  NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback) override; \
  NS_IMETHOD GetMaxProgress(int64_t *aMaxProgress) override; \
  NS_IMETHOD SetMaxProgress(int64_t aMaxProgress) override; \
  NS_IMETHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow) override; \
  NS_IMETHOD SetMsgWindow(nsIMsgWindow *aMsgWindow) override; \
  NS_IMETHOD GetMimeHeaders(nsIMimeHeaders * *aMimeHeaders) override; \
  NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders) override; \
  NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) override; \
  NS_IMETHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession) override; \
  NS_IMETHOD SetSearchSession(nsIMsgSearchSession *aSearchSession) override; \
  NS_IMETHOD GetUpdatingFolder(bool *aUpdatingFolder) override; \
  NS_IMETHOD SetUpdatingFolder(bool aUpdatingFolder) override; \
  NS_IMETHOD GetMsgIsInLocalCache(bool *aMsgIsInLocalCache) override; \
  NS_IMETHOD SetMsgIsInLocalCache(bool aMsgIsInLocalCache) override; \
  NS_IMETHOD GetSuppressErrorMsgs(bool *aSuppressErrorMsgs) override; \
  NS_IMETHOD SetSuppressErrorMsgs(bool aSuppressErrorMsgs) override; \
  NS_IMETHOD GetMemCacheEntry(nsICacheEntry * *aMemCacheEntry) override; \
  NS_IMETHOD SetMemCacheEntry(nsICacheEntry *aMemCacheEntry) override; \
  NS_IMETHOD IsUrlType(uint32_t type, bool *_retval) override; \
  NS_IMETHOD GetSaveAsListener(bool addDummyEnvelope, nsIFile *aFile, nsIStreamListener * *_retval) override; \
  NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink * *aMsgHeaderSink) override; \
  NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink) override; \
  NS_IMETHOD GetIsMessageUri(bool *aIsMessageUri) override; \
  NS_IMETHOD LoadURI(nsIDocShell *docshell, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIMSGMAILNEWSURL \
  NS_METHOD RegisterListener(nsIUrlListener *aUrlListener); \
  NS_METHOD UnRegisterListener(nsIUrlListener *aUrlListener); \
  NS_METHOD GetBaseURI(nsIURI * *aBaseURI); \
  NS_METHOD SetUrlState(bool runningUrl, nsresult aStatusCode); \
  NS_METHOD GetUrlState(bool *runningUrl); \
  NS_METHOD CloneInternal(uint32_t aRefHandlingMode, const nsACString & aNewRef, nsIURI * *_retval); \
  NS_METHOD GetServer(nsIMsgIncomingServer * *aServer); \
  NS_METHOD GetFolder(nsIMsgFolder * *aFolder); \
  NS_METHOD SetFolder(nsIMsgFolder *aFolder); \
  NS_METHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback); \
  NS_METHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback); \
  NS_METHOD GetMaxProgress(int64_t *aMaxProgress); \
  NS_METHOD SetMaxProgress(int64_t aMaxProgress); \
  NS_METHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow); \
  NS_METHOD SetMsgWindow(nsIMsgWindow *aMsgWindow); \
  NS_METHOD GetMimeHeaders(nsIMimeHeaders * *aMimeHeaders); \
  NS_METHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders); \
  NS_METHOD GetLoadGroup(nsILoadGroup * *aLoadGroup); \
  NS_METHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession); \
  NS_METHOD SetSearchSession(nsIMsgSearchSession *aSearchSession); \
  NS_METHOD GetUpdatingFolder(bool *aUpdatingFolder); \
  NS_METHOD SetUpdatingFolder(bool aUpdatingFolder); \
  NS_METHOD GetMsgIsInLocalCache(bool *aMsgIsInLocalCache); \
  NS_METHOD SetMsgIsInLocalCache(bool aMsgIsInLocalCache); \
  NS_METHOD GetSuppressErrorMsgs(bool *aSuppressErrorMsgs); \
  NS_METHOD SetSuppressErrorMsgs(bool aSuppressErrorMsgs); \
  NS_METHOD GetMemCacheEntry(nsICacheEntry * *aMemCacheEntry); \
  NS_METHOD SetMemCacheEntry(nsICacheEntry *aMemCacheEntry); \
  NS_METHOD IsUrlType(uint32_t type, bool *_retval); \
  NS_METHOD GetSaveAsListener(bool addDummyEnvelope, nsIFile *aFile, nsIStreamListener * *_retval); \
  NS_METHOD GetMsgHeaderSink(nsIMsgHeaderSink * *aMsgHeaderSink); \
  NS_METHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink); \
  NS_METHOD GetIsMessageUri(bool *aIsMessageUri); \
  NS_METHOD LoadURI(nsIDocShell *docshell, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags); 

/* 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) override { return _to RegisterListener(aUrlListener); } \
  NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) override { return _to UnRegisterListener(aUrlListener); } \
  NS_IMETHOD GetBaseURI(nsIURI * *aBaseURI) override { return _to GetBaseURI(aBaseURI); } \
  NS_IMETHOD SetUrlState(bool runningUrl, nsresult aStatusCode) override { return _to SetUrlState(runningUrl, aStatusCode); } \
  NS_IMETHOD GetUrlState(bool *runningUrl) override { return _to GetUrlState(runningUrl); } \
  NS_IMETHOD CloneInternal(uint32_t aRefHandlingMode, const nsACString & aNewRef, nsIURI * *_retval) override { return _to CloneInternal(aRefHandlingMode, aNewRef, _retval); } \
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer) override { return _to GetServer(aServer); } \
  NS_IMETHOD GetFolder(nsIMsgFolder * *aFolder) override { return _to GetFolder(aFolder); } \
  NS_IMETHOD SetFolder(nsIMsgFolder *aFolder) override { return _to SetFolder(aFolder); } \
  NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback) override { return _to GetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback) override { return _to SetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD GetMaxProgress(int64_t *aMaxProgress) override { return _to GetMaxProgress(aMaxProgress); } \
  NS_IMETHOD SetMaxProgress(int64_t aMaxProgress) override { return _to SetMaxProgress(aMaxProgress); } \
  NS_IMETHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow) override { return _to GetMsgWindow(aMsgWindow); } \
  NS_IMETHOD SetMsgWindow(nsIMsgWindow *aMsgWindow) override { return _to SetMsgWindow(aMsgWindow); } \
  NS_IMETHOD GetMimeHeaders(nsIMimeHeaders * *aMimeHeaders) override { return _to GetMimeHeaders(aMimeHeaders); } \
  NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders) override { return _to SetMimeHeaders(aMimeHeaders); } \
  NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) override { return _to GetLoadGroup(aLoadGroup); } \
  NS_IMETHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession) override { return _to GetSearchSession(aSearchSession); } \
  NS_IMETHOD SetSearchSession(nsIMsgSearchSession *aSearchSession) override { return _to SetSearchSession(aSearchSession); } \
  NS_IMETHOD GetUpdatingFolder(bool *aUpdatingFolder) override { return _to GetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD SetUpdatingFolder(bool aUpdatingFolder) override { return _to SetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD GetMsgIsInLocalCache(bool *aMsgIsInLocalCache) override { return _to GetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD SetMsgIsInLocalCache(bool aMsgIsInLocalCache) override { return _to SetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD GetSuppressErrorMsgs(bool *aSuppressErrorMsgs) override { return _to GetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD SetSuppressErrorMsgs(bool aSuppressErrorMsgs) override { return _to SetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD GetMemCacheEntry(nsICacheEntry * *aMemCacheEntry) override { return _to GetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD SetMemCacheEntry(nsICacheEntry *aMemCacheEntry) override { return _to SetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD IsUrlType(uint32_t type, bool *_retval) override { return _to IsUrlType(type, _retval); } \
  NS_IMETHOD GetSaveAsListener(bool addDummyEnvelope, nsIFile *aFile, nsIStreamListener * *_retval) override { return _to GetSaveAsListener(addDummyEnvelope, aFile, _retval); } \
  NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink * *aMsgHeaderSink) override { return _to GetMsgHeaderSink(aMsgHeaderSink); } \
  NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink) override { return _to SetMsgHeaderSink(aMsgHeaderSink); } \
  NS_IMETHOD GetIsMessageUri(bool *aIsMessageUri) override { return _to GetIsMessageUri(aIsMessageUri); } \
  NS_IMETHOD LoadURI(nsIDocShell *docshell, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags) override { return _to LoadURI(docshell, loadInfo, aLoadFlags); } 

/* 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) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterListener(aUrlListener); } \
  NS_IMETHOD UnRegisterListener(nsIUrlListener *aUrlListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnRegisterListener(aUrlListener); } \
  NS_IMETHOD GetBaseURI(nsIURI * *aBaseURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBaseURI(aBaseURI); } \
  NS_IMETHOD SetUrlState(bool runningUrl, nsresult aStatusCode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUrlState(runningUrl, aStatusCode); } \
  NS_IMETHOD GetUrlState(bool *runningUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUrlState(runningUrl); } \
  NS_IMETHOD CloneInternal(uint32_t aRefHandlingMode, const nsACString & aNewRef, nsIURI * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneInternal(aRefHandlingMode, aNewRef, _retval); } \
  NS_IMETHOD GetServer(nsIMsgIncomingServer * *aServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServer(aServer); } \
  NS_IMETHOD GetFolder(nsIMsgFolder * *aFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolder(aFolder); } \
  NS_IMETHOD SetFolder(nsIMsgFolder *aFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolder(aFolder); } \
  NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStatusFeedback(aStatusFeedback); } \
  NS_IMETHOD GetMaxProgress(int64_t *aMaxProgress) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxProgress(aMaxProgress); } \
  NS_IMETHOD SetMaxProgress(int64_t aMaxProgress) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxProgress(aMaxProgress); } \
  NS_IMETHOD GetMsgWindow(nsIMsgWindow * *aMsgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgWindow(aMsgWindow); } \
  NS_IMETHOD SetMsgWindow(nsIMsgWindow *aMsgWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgWindow(aMsgWindow); } \
  NS_IMETHOD GetMimeHeaders(nsIMimeHeaders * *aMimeHeaders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimeHeaders(aMimeHeaders); } \
  NS_IMETHOD SetMimeHeaders(nsIMimeHeaders *aMimeHeaders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimeHeaders(aMimeHeaders); } \
  NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoadGroup(aLoadGroup); } \
  NS_IMETHOD GetSearchSession(nsIMsgSearchSession * *aSearchSession) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchSession(aSearchSession); } \
  NS_IMETHOD SetSearchSession(nsIMsgSearchSession *aSearchSession) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSearchSession(aSearchSession); } \
  NS_IMETHOD GetUpdatingFolder(bool *aUpdatingFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD SetUpdatingFolder(bool aUpdatingFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUpdatingFolder(aUpdatingFolder); } \
  NS_IMETHOD GetMsgIsInLocalCache(bool *aMsgIsInLocalCache) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD SetMsgIsInLocalCache(bool aMsgIsInLocalCache) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgIsInLocalCache(aMsgIsInLocalCache); } \
  NS_IMETHOD GetSuppressErrorMsgs(bool *aSuppressErrorMsgs) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD SetSuppressErrorMsgs(bool aSuppressErrorMsgs) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSuppressErrorMsgs(aSuppressErrorMsgs); } \
  NS_IMETHOD GetMemCacheEntry(nsICacheEntry * *aMemCacheEntry) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD SetMemCacheEntry(nsICacheEntry *aMemCacheEntry) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMemCacheEntry(aMemCacheEntry); } \
  NS_IMETHOD IsUrlType(uint32_t type, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsUrlType(type, _retval); } \
  NS_IMETHOD GetSaveAsListener(bool addDummyEnvelope, nsIFile *aFile, nsIStreamListener * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSaveAsListener(addDummyEnvelope, aFile, _retval); } \
  NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink * *aMsgHeaderSink) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgHeaderSink(aMsgHeaderSink); } \
  NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgHeaderSink(aMsgHeaderSink); } \
  NS_IMETHOD GetIsMessageUri(bool *aIsMessageUri) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsMessageUri(aIsMessageUri); } \
  NS_IMETHOD LoadURI(nsIDocShell *docshell, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LoadURI(docshell, loadInfo, aLoadFlags); } 

#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_ISUPPORTS(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(bool runningUrl, nsresult aStatusCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* nsIURI cloneInternal (in unsigned long aRefHandlingMode, in AUTF8String aNewRef); */
NS_IMETHODIMP nsMsgMailNewsUrl::CloneInternal(uint32_t aRefHandlingMode, const nsACString & aNewRef, nsIURI * *_retval)
{
    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(int64_t *aMaxProgress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetMaxProgress(int64_t 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(bool *aUpdatingFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMailNewsUrl::SetUpdatingFolder(bool aUpdatingFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

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

/* nsIStreamListener getSaveAsListener (in boolean addDummyEnvelope, in nsIFile aFile); */
NS_IMETHODIMP nsMsgMailNewsUrl::GetSaveAsListener(bool addDummyEnvelope, nsIFile *aFile, nsIStreamListener * *_retval)
{
    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(bool *aIsMessageUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void loadURI (in nsIDocShell docshell, in nsIDocShellLoadInfo loadInfo, in unsigned long aLoadFlags); */
NS_IMETHODIMP nsMsgMailNewsUrl::LoadURI(nsIDocShell *docshell, nsIDocShellLoadInfo *loadInfo, uint32_t aLoadFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgMessageUrl */
#define NS_IMSGMESSAGEURL_IID_STR "388a37ec-2e1a-4a4f-9d8b-189bedf1bda2"

#define NS_IMSGMESSAGEURL_IID \
  {0x388a37ec, 0x2e1a, 0x4a4f, \
    { 0x9d, 0x8b, 0x18, 0x9b, 0xed, 0xf1, 0xbd, 0xa2 }}

class NS_NO_VTABLE nsIMsgMessageUrl : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGMESSAGEURL_IID)

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

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

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

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

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

  /* readonly attribute AUTF8String principalSpec; */
  NS_IMETHOD GetPrincipalSpec(nsACString & aPrincipalSpec) = 0;

  /* attribute nsIMsgDBHdr messageHeader; */
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader) = 0;
  NS_IMETHOD SetMessageHeader(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_IMETHOD GetUri(char * *aUri) override; \
  NS_IMETHOD SetUri(const char * aUri) override; \
  NS_IMETHOD GetMessageFile(nsIFile * *aMessageFile) override; \
  NS_IMETHOD SetMessageFile(nsIFile *aMessageFile) override; \
  NS_IMETHOD GetAddDummyEnvelope(bool *aAddDummyEnvelope) override; \
  NS_IMETHOD SetAddDummyEnvelope(bool aAddDummyEnvelope) override; \
  NS_IMETHOD GetCanonicalLineEnding(bool *aCanonicalLineEnding) override; \
  NS_IMETHOD SetCanonicalLineEnding(bool aCanonicalLineEnding) override; \
  NS_IMETHOD GetOriginalSpec(char * *aOriginalSpec) override; \
  NS_IMETHOD SetOriginalSpec(const char * aOriginalSpec) override; \
  NS_IMETHOD GetPrincipalSpec(nsACString & aPrincipalSpec) override; \
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader) override; \
  NS_IMETHOD SetMessageHeader(nsIMsgDBHdr *aMessageHeader) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIMSGMESSAGEURL \
  NS_METHOD GetUri(char * *aUri); \
  NS_METHOD SetUri(const char * aUri); \
  NS_METHOD GetMessageFile(nsIFile * *aMessageFile); \
  NS_METHOD SetMessageFile(nsIFile *aMessageFile); \
  NS_METHOD GetAddDummyEnvelope(bool *aAddDummyEnvelope); \
  NS_METHOD SetAddDummyEnvelope(bool aAddDummyEnvelope); \
  NS_METHOD GetCanonicalLineEnding(bool *aCanonicalLineEnding); \
  NS_METHOD SetCanonicalLineEnding(bool aCanonicalLineEnding); \
  NS_METHOD GetOriginalSpec(char * *aOriginalSpec); \
  NS_METHOD SetOriginalSpec(const char * aOriginalSpec); \
  NS_METHOD GetPrincipalSpec(nsACString & aPrincipalSpec); \
  NS_METHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader); \
  NS_METHOD SetMessageHeader(nsIMsgDBHdr *aMessageHeader); 

/* 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) override { return _to GetUri(aUri); } \
  NS_IMETHOD SetUri(const char * aUri) override { return _to SetUri(aUri); } \
  NS_IMETHOD GetMessageFile(nsIFile * *aMessageFile) override { return _to GetMessageFile(aMessageFile); } \
  NS_IMETHOD SetMessageFile(nsIFile *aMessageFile) override { return _to SetMessageFile(aMessageFile); } \
  NS_IMETHOD GetAddDummyEnvelope(bool *aAddDummyEnvelope) override { return _to GetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD SetAddDummyEnvelope(bool aAddDummyEnvelope) override { return _to SetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD GetCanonicalLineEnding(bool *aCanonicalLineEnding) override { return _to GetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD SetCanonicalLineEnding(bool aCanonicalLineEnding) override { return _to SetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD GetOriginalSpec(char * *aOriginalSpec) override { return _to GetOriginalSpec(aOriginalSpec); } \
  NS_IMETHOD SetOriginalSpec(const char * aOriginalSpec) override { return _to SetOriginalSpec(aOriginalSpec); } \
  NS_IMETHOD GetPrincipalSpec(nsACString & aPrincipalSpec) override { return _to GetPrincipalSpec(aPrincipalSpec); } \
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader) override { return _to GetMessageHeader(aMessageHeader); } \
  NS_IMETHOD SetMessageHeader(nsIMsgDBHdr *aMessageHeader) override { return _to SetMessageHeader(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_IMETHOD GetUri(char * *aUri) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUri(aUri); } \
  NS_IMETHOD SetUri(const char * aUri) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUri(aUri); } \
  NS_IMETHOD GetMessageFile(nsIFile * *aMessageFile) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageFile(aMessageFile); } \
  NS_IMETHOD SetMessageFile(nsIFile *aMessageFile) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageFile(aMessageFile); } \
  NS_IMETHOD GetAddDummyEnvelope(bool *aAddDummyEnvelope) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD SetAddDummyEnvelope(bool aAddDummyEnvelope) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAddDummyEnvelope(aAddDummyEnvelope); } \
  NS_IMETHOD GetCanonicalLineEnding(bool *aCanonicalLineEnding) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD SetCanonicalLineEnding(bool aCanonicalLineEnding) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCanonicalLineEnding(aCanonicalLineEnding); } \
  NS_IMETHOD GetOriginalSpec(char * *aOriginalSpec) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginalSpec(aOriginalSpec); } \
  NS_IMETHOD SetOriginalSpec(const char * aOriginalSpec) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOriginalSpec(aOriginalSpec); } \
  NS_IMETHOD GetPrincipalSpec(nsACString & aPrincipalSpec) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrincipalSpec(aPrincipalSpec); } \
  NS_IMETHOD GetMessageHeader(nsIMsgDBHdr * *aMessageHeader) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageHeader(aMessageHeader); } \
  NS_IMETHOD SetMessageHeader(nsIMsgDBHdr *aMessageHeader) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageHeader(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_ISUPPORTS(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(bool *aAddDummyEnvelope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetAddDummyEnvelope(bool aAddDummyEnvelope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean canonicalLineEnding; */
NS_IMETHODIMP nsMsgMessageUrl::GetCanonicalLineEnding(bool *aCanonicalLineEnding)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgMessageUrl::SetCanonicalLineEnding(bool 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 AUTF8String principalSpec; */
NS_IMETHODIMP nsMsgMessageUrl::GetPrincipalSpec(nsACString & aPrincipalSpec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGI18NURL_IID)

  /* readonly attribute string folderCharset; */
  NS_IMETHOD GetFolderCharset(char * *aFolderCharset) = 0;

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

  /* attribute string charsetOverRide; */
  NS_IMETHOD GetCharsetOverRide(char * *aCharsetOverRide) = 0;
  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_IMETHOD GetFolderCharset(char * *aFolderCharset) override; \
  NS_IMETHOD GetFolderCharsetOverride(bool *aFolderCharsetOverride) override; \
  NS_IMETHOD GetCharsetOverRide(char * *aCharsetOverRide) override; \
  NS_IMETHOD SetCharsetOverRide(const char * aCharsetOverRide) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIMSGI18NURL \
  NS_METHOD GetFolderCharset(char * *aFolderCharset); \
  NS_METHOD GetFolderCharsetOverride(bool *aFolderCharsetOverride); \
  NS_METHOD GetCharsetOverRide(char * *aCharsetOverRide); \
  NS_METHOD 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_IMETHOD GetFolderCharset(char * *aFolderCharset) override { return _to GetFolderCharset(aFolderCharset); } \
  NS_IMETHOD GetFolderCharsetOverride(bool *aFolderCharsetOverride) override { return _to GetFolderCharsetOverride(aFolderCharsetOverride); } \
  NS_IMETHOD GetCharsetOverRide(char * *aCharsetOverRide) override { return _to GetCharsetOverRide(aCharsetOverRide); } \
  NS_IMETHOD SetCharsetOverRide(const char * aCharsetOverRide) override { 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(char * *aFolderCharset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderCharset(aFolderCharset); } \
  NS_IMETHOD GetFolderCharsetOverride(bool *aFolderCharsetOverride) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderCharsetOverride(aFolderCharsetOverride); } \
  NS_IMETHOD GetCharsetOverRide(char * *aCharsetOverRide) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharsetOverRide(aCharsetOverRide); } \
  NS_IMETHOD SetCharsetOverRide(const char * aCharsetOverRide) override { 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_ISUPPORTS(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(bool *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__ */
