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

#ifndef __gen_nsIMsgWindow_h__
#define __gen_nsIMsgWindow_h__


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

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

class nsIMsgFolder; /* forward declaration */

class nsITransactionManager; /* forward declaration */

class nsIDocShell; /* forward declaration */

class nsIDOMWindowInternal; /* forward declaration */

class nsIMsgHeaderSink; /* forward declaration */

class nsIPrompt; /* forward declaration */

class nsIInterfaceRequestor; /* forward declaration */


/* starting interface:    nsIMsgWindowCommands */
#define NS_IMSGWINDOWCOMMANDS_IID_STR "7b8f4a65-cfc4-4b3f-bf5c-152aa8d5cd10"

#define NS_IMSGWINDOWCOMMANDS_IID \
  {0x7b8f4a65, 0xcfc4, 0x4b3f, \
    { 0xbf, 0x5c, 0x15, 0x2a, 0xa8, 0xd5, 0xcd, 0x10 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMsgWindowCommands : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGWINDOWCOMMANDS_IID)

  /* void selectFolder (in ACString folderUri); */
  NS_SCRIPTABLE NS_IMETHOD SelectFolder(const nsACString & folderUri) = 0;

  /* void selectMessage (in ACString messageUri); */
  NS_SCRIPTABLE NS_IMETHOD SelectMessage(const nsACString & messageUri) = 0;

  /* void clearMsgPane (); */
  NS_SCRIPTABLE NS_IMETHOD ClearMsgPane(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgWindowCommands, NS_IMSGWINDOWCOMMANDS_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGWINDOWCOMMANDS \
  NS_SCRIPTABLE NS_IMETHOD SelectFolder(const nsACString & folderUri); \
  NS_SCRIPTABLE NS_IMETHOD SelectMessage(const nsACString & messageUri); \
  NS_SCRIPTABLE NS_IMETHOD ClearMsgPane(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGWINDOWCOMMANDS(_to) \
  NS_SCRIPTABLE NS_IMETHOD SelectFolder(const nsACString & folderUri) { return _to SelectFolder(folderUri); } \
  NS_SCRIPTABLE NS_IMETHOD SelectMessage(const nsACString & messageUri) { return _to SelectMessage(messageUri); } \
  NS_SCRIPTABLE NS_IMETHOD ClearMsgPane(void) { return _to ClearMsgPane(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGWINDOWCOMMANDS(_to) \
  NS_SCRIPTABLE NS_IMETHOD SelectFolder(const nsACString & folderUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectFolder(folderUri); } \
  NS_SCRIPTABLE NS_IMETHOD SelectMessage(const nsACString & messageUri) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectMessage(messageUri); } \
  NS_SCRIPTABLE NS_IMETHOD ClearMsgPane(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearMsgPane(); } 

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

/* Header file */
class nsMsgWindowCommands : public nsIMsgWindowCommands
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGWINDOWCOMMANDS

  nsMsgWindowCommands();

private:
  ~nsMsgWindowCommands();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgWindowCommands, nsIMsgWindowCommands)

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

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

/* void selectFolder (in ACString folderUri); */
NS_IMETHODIMP nsMsgWindowCommands::SelectFolder(const nsACString & folderUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectMessage (in ACString messageUri); */
NS_IMETHODIMP nsMsgWindowCommands::SelectMessage(const nsACString & messageUri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearMsgPane (); */
NS_IMETHODIMP nsMsgWindowCommands::ClearMsgPane()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgWindow */
#define NS_IMSGWINDOW_IID_STR "8ad06f07-2230-4917-968c-2269588dbf7d"

#define NS_IMSGWINDOW_IID \
  {0x8ad06f07, 0x2230, 0x4917, \
    { 0x96, 0x8c, 0x22, 0x69, 0x58, 0x8d, 0xbf, 0x7d }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMsgWindow : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGWINDOW_IID)

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

  /* attribute nsIMsgWindowCommands windowCommands; */
  NS_SCRIPTABLE NS_IMETHOD GetWindowCommands(nsIMsgWindowCommands **aWindowCommands) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetWindowCommands(nsIMsgWindowCommands *aWindowCommands) = 0;

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

  /* attribute nsITransactionManager transactionManager; */
  NS_SCRIPTABLE NS_IMETHOD GetTransactionManager(nsITransactionManager **aTransactionManager) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetTransactionManager(nsITransactionManager *aTransactionManager) = 0;

  /* attribute nsIMsgFolder openFolder; */
  NS_SCRIPTABLE NS_IMETHOD GetOpenFolder(nsIMsgFolder **aOpenFolder) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetOpenFolder(nsIMsgFolder *aOpenFolder) = 0;

  /**
   * @note Setting this attribute has various side effects, including
   * wiring up this object as the parent nsIURIContentListener for the
   * passed-in docshell as well as setting the message content policy service
   * to listen for OnLocationChange notifications.
   */
  /* attribute nsIDocShell rootDocShell; */
  NS_SCRIPTABLE NS_IMETHOD GetRootDocShell(nsIDocShell **aRootDocShell) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRootDocShell(nsIDocShell *aRootDocShell) = 0;

  /**
   * @note Small helper function used to optimize our use of a weak reference
   * on the message window docshell. Under no circumstances should you be
   * holding on to the docshell returned here outside the scope of your routine.
   */
  /* readonly attribute nsIDocShell messageWindowDocShell; */
  NS_SCRIPTABLE NS_IMETHOD GetMessageWindowDocShell(nsIDocShell **aMessageWindowDocShell) = 0;

  /**
   * These are currently used to set notification callbacks on
   * protocol channels to handle things like bad cert exceptions.
   */
  /* attribute nsIInterfaceRequestor notificationCallbacks; */
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks) = 0;

  /* void displayHTMLInMessagePane (in AString title, in AString body, in boolean clearMsgHdr); */
  NS_SCRIPTABLE NS_IMETHOD DisplayHTMLInMessagePane(const nsAString & title, const nsAString & body, PRBool clearMsgHdr) = 0;

  /* readonly attribute nsIPrompt promptDialog; */
  NS_SCRIPTABLE NS_IMETHOD GetPromptDialog(nsIPrompt **aPromptDialog) = 0;

  /* attribute ACString mailCharacterSet; */
  NS_SCRIPTABLE NS_IMETHOD GetMailCharacterSet(nsACString & aMailCharacterSet) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMailCharacterSet(const nsACString & aMailCharacterSet) = 0;

  /**
    Remember the message's charaset was overridden, so it can be inherited (e.g for quoting).
   */
  /* attribute boolean charsetOverride; */
  NS_SCRIPTABLE NS_IMETHOD GetCharsetOverride(PRBool *aCharsetOverride) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCharsetOverride(PRBool aCharsetOverride) = 0;

  /**
    Has a running url been stopped? If you care about checking
    this flag, you need to clear it before you start your operation since
    there's no convenient place to clear it.
  */
  /* attribute boolean stopped; */
  NS_SCRIPTABLE NS_IMETHOD GetStopped(PRBool *aStopped) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetStopped(PRBool aStopped) = 0;

  /* attribute nsIDOMWindowInternal domWindow; */
  NS_SCRIPTABLE NS_IMETHOD GetDomWindow(nsIDOMWindowInternal **aDomWindow) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDomWindow(nsIDOMWindowInternal *aDomWindow) = 0;

  /* void StopUrls (); */
  NS_SCRIPTABLE NS_IMETHOD StopUrls(void) = 0;

  /**
    when the msg window is being unloaded from the content window,
    we can use this notification to force a flush on anything the
    msg window hangs on too. For some reason xpconnect is still hanging
    onto the msg window even though all of our objects have let go of it
    this forces a release...
   */
  /* void closeWindow (); */
  NS_SCRIPTABLE NS_IMETHOD CloseWindow(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgWindow, NS_IMSGWINDOW_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGWINDOW \
  NS_SCRIPTABLE NS_IMETHOD GetStatusFeedback(nsIMsgStatusFeedback **aStatusFeedback); \
  NS_SCRIPTABLE NS_IMETHOD SetStatusFeedback(nsIMsgStatusFeedback *aStatusFeedback); \
  NS_SCRIPTABLE NS_IMETHOD GetWindowCommands(nsIMsgWindowCommands **aWindowCommands); \
  NS_SCRIPTABLE NS_IMETHOD SetWindowCommands(nsIMsgWindowCommands *aWindowCommands); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgHeaderSink(nsIMsgHeaderSink **aMsgHeaderSink); \
  NS_SCRIPTABLE NS_IMETHOD SetMsgHeaderSink(nsIMsgHeaderSink *aMsgHeaderSink); \
  NS_SCRIPTABLE NS_IMETHOD GetTransactionManager(nsITransactionManager **aTransactionManager); \
  NS_SCRIPTABLE NS_IMETHOD SetTransactionManager(nsITransactionManager *aTransactionManager); \
  NS_SCRIPTABLE NS_IMETHOD GetOpenFolder(nsIMsgFolder **aOpenFolder); \
  NS_SCRIPTABLE NS_IMETHOD SetOpenFolder(nsIMsgFolder *aOpenFolder); \
  NS_SCRIPTABLE NS_IMETHOD GetRootDocShell(nsIDocShell **aRootDocShell); \
  NS_SCRIPTABLE NS_IMETHOD SetRootDocShell(nsIDocShell *aRootDocShell); \
  NS_SCRIPTABLE NS_IMETHOD GetMessageWindowDocShell(nsIDocShell **aMessageWindowDocShell); \
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks); \
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks); \
  NS_SCRIPTABLE NS_IMETHOD DisplayHTMLInMessagePane(const nsAString & title, const nsAString & body, PRBool clearMsgHdr); \
  NS_SCRIPTABLE NS_IMETHOD GetPromptDialog(nsIPrompt **aPromptDialog); \
  NS_SCRIPTABLE NS_IMETHOD GetMailCharacterSet(nsACString & aMailCharacterSet); \
  NS_SCRIPTABLE NS_IMETHOD SetMailCharacterSet(const nsACString & aMailCharacterSet); \
  NS_SCRIPTABLE NS_IMETHOD GetCharsetOverride(PRBool *aCharsetOverride); \
  NS_SCRIPTABLE NS_IMETHOD SetCharsetOverride(PRBool aCharsetOverride); \
  NS_SCRIPTABLE NS_IMETHOD GetStopped(PRBool *aStopped); \
  NS_SCRIPTABLE NS_IMETHOD SetStopped(PRBool aStopped); \
  NS_SCRIPTABLE NS_IMETHOD GetDomWindow(nsIDOMWindowInternal **aDomWindow); \
  NS_SCRIPTABLE NS_IMETHOD SetDomWindow(nsIDOMWindowInternal *aDomWindow); \
  NS_SCRIPTABLE NS_IMETHOD StopUrls(void); \
  NS_SCRIPTABLE NS_IMETHOD CloseWindow(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGWINDOW(_to) \
  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 GetWindowCommands(nsIMsgWindowCommands **aWindowCommands) { return _to GetWindowCommands(aWindowCommands); } \
  NS_SCRIPTABLE NS_IMETHOD SetWindowCommands(nsIMsgWindowCommands *aWindowCommands) { return _to SetWindowCommands(aWindowCommands); } \
  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 GetTransactionManager(nsITransactionManager **aTransactionManager) { return _to GetTransactionManager(aTransactionManager); } \
  NS_SCRIPTABLE NS_IMETHOD SetTransactionManager(nsITransactionManager *aTransactionManager) { return _to SetTransactionManager(aTransactionManager); } \
  NS_SCRIPTABLE NS_IMETHOD GetOpenFolder(nsIMsgFolder **aOpenFolder) { return _to GetOpenFolder(aOpenFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetOpenFolder(nsIMsgFolder *aOpenFolder) { return _to SetOpenFolder(aOpenFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetRootDocShell(nsIDocShell **aRootDocShell) { return _to GetRootDocShell(aRootDocShell); } \
  NS_SCRIPTABLE NS_IMETHOD SetRootDocShell(nsIDocShell *aRootDocShell) { return _to SetRootDocShell(aRootDocShell); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageWindowDocShell(nsIDocShell **aMessageWindowDocShell) { return _to GetMessageWindowDocShell(aMessageWindowDocShell); } \
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks) { return _to GetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks) { return _to SetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD DisplayHTMLInMessagePane(const nsAString & title, const nsAString & body, PRBool clearMsgHdr) { return _to DisplayHTMLInMessagePane(title, body, clearMsgHdr); } \
  NS_SCRIPTABLE NS_IMETHOD GetPromptDialog(nsIPrompt **aPromptDialog) { return _to GetPromptDialog(aPromptDialog); } \
  NS_SCRIPTABLE NS_IMETHOD GetMailCharacterSet(nsACString & aMailCharacterSet) { return _to GetMailCharacterSet(aMailCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailCharacterSet(const nsACString & aMailCharacterSet) { return _to SetMailCharacterSet(aMailCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharsetOverride(PRBool *aCharsetOverride) { return _to GetCharsetOverride(aCharsetOverride); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharsetOverride(PRBool aCharsetOverride) { return _to SetCharsetOverride(aCharsetOverride); } \
  NS_SCRIPTABLE NS_IMETHOD GetStopped(PRBool *aStopped) { return _to GetStopped(aStopped); } \
  NS_SCRIPTABLE NS_IMETHOD SetStopped(PRBool aStopped) { return _to SetStopped(aStopped); } \
  NS_SCRIPTABLE NS_IMETHOD GetDomWindow(nsIDOMWindowInternal **aDomWindow) { return _to GetDomWindow(aDomWindow); } \
  NS_SCRIPTABLE NS_IMETHOD SetDomWindow(nsIDOMWindowInternal *aDomWindow) { return _to SetDomWindow(aDomWindow); } \
  NS_SCRIPTABLE NS_IMETHOD StopUrls(void) { return _to StopUrls(); } \
  NS_SCRIPTABLE NS_IMETHOD CloseWindow(void) { return _to CloseWindow(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGWINDOW(_to) \
  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 GetWindowCommands(nsIMsgWindowCommands **aWindowCommands) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWindowCommands(aWindowCommands); } \
  NS_SCRIPTABLE NS_IMETHOD SetWindowCommands(nsIMsgWindowCommands *aWindowCommands) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWindowCommands(aWindowCommands); } \
  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 GetTransactionManager(nsITransactionManager **aTransactionManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTransactionManager(aTransactionManager); } \
  NS_SCRIPTABLE NS_IMETHOD SetTransactionManager(nsITransactionManager *aTransactionManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTransactionManager(aTransactionManager); } \
  NS_SCRIPTABLE NS_IMETHOD GetOpenFolder(nsIMsgFolder **aOpenFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOpenFolder(aOpenFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetOpenFolder(nsIMsgFolder *aOpenFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOpenFolder(aOpenFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetRootDocShell(nsIDocShell **aRootDocShell) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRootDocShell(aRootDocShell); } \
  NS_SCRIPTABLE NS_IMETHOD SetRootDocShell(nsIDocShell *aRootDocShell) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRootDocShell(aRootDocShell); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageWindowDocShell(nsIDocShell **aMessageWindowDocShell) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageWindowDocShell(aMessageWindowDocShell); } \
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD DisplayHTMLInMessagePane(const nsAString & title, const nsAString & body, PRBool clearMsgHdr) { return !_to ? NS_ERROR_NULL_POINTER : _to->DisplayHTMLInMessagePane(title, body, clearMsgHdr); } \
  NS_SCRIPTABLE NS_IMETHOD GetPromptDialog(nsIPrompt **aPromptDialog) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPromptDialog(aPromptDialog); } \
  NS_SCRIPTABLE NS_IMETHOD GetMailCharacterSet(nsACString & aMailCharacterSet) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMailCharacterSet(aMailCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailCharacterSet(const nsACString & aMailCharacterSet) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailCharacterSet(aMailCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharsetOverride(PRBool *aCharsetOverride) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharsetOverride(aCharsetOverride); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharsetOverride(PRBool aCharsetOverride) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharsetOverride(aCharsetOverride); } \
  NS_SCRIPTABLE NS_IMETHOD GetStopped(PRBool *aStopped) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStopped(aStopped); } \
  NS_SCRIPTABLE NS_IMETHOD SetStopped(PRBool aStopped) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStopped(aStopped); } \
  NS_SCRIPTABLE NS_IMETHOD GetDomWindow(nsIDOMWindowInternal **aDomWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomWindow(aDomWindow); } \
  NS_SCRIPTABLE NS_IMETHOD SetDomWindow(nsIDOMWindowInternal *aDomWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDomWindow(aDomWindow); } \
  NS_SCRIPTABLE NS_IMETHOD StopUrls(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->StopUrls(); } \
  NS_SCRIPTABLE NS_IMETHOD CloseWindow(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseWindow(); } 

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

/* Header file */
class nsMsgWindow : public nsIMsgWindow
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGWINDOW

  nsMsgWindow();

private:
  ~nsMsgWindow();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgWindow, nsIMsgWindow)

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

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

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

/* attribute nsIMsgWindowCommands windowCommands; */
NS_IMETHODIMP nsMsgWindow::GetWindowCommands(nsIMsgWindowCommands **aWindowCommands)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetWindowCommands(nsIMsgWindowCommands *aWindowCommands)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute nsITransactionManager transactionManager; */
NS_IMETHODIMP nsMsgWindow::GetTransactionManager(nsITransactionManager **aTransactionManager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetTransactionManager(nsITransactionManager *aTransactionManager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgFolder openFolder; */
NS_IMETHODIMP nsMsgWindow::GetOpenFolder(nsIMsgFolder **aOpenFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetOpenFolder(nsIMsgFolder *aOpenFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIDocShell rootDocShell; */
NS_IMETHODIMP nsMsgWindow::GetRootDocShell(nsIDocShell **aRootDocShell)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetRootDocShell(nsIDocShell *aRootDocShell)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDocShell messageWindowDocShell; */
NS_IMETHODIMP nsMsgWindow::GetMessageWindowDocShell(nsIDocShell **aMessageWindowDocShell)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIInterfaceRequestor notificationCallbacks; */
NS_IMETHODIMP nsMsgWindow::GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void displayHTMLInMessagePane (in AString title, in AString body, in boolean clearMsgHdr); */
NS_IMETHODIMP nsMsgWindow::DisplayHTMLInMessagePane(const nsAString & title, const nsAString & body, PRBool clearMsgHdr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIPrompt promptDialog; */
NS_IMETHODIMP nsMsgWindow::GetPromptDialog(nsIPrompt **aPromptDialog)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString mailCharacterSet; */
NS_IMETHODIMP nsMsgWindow::GetMailCharacterSet(nsACString & aMailCharacterSet)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetMailCharacterSet(const nsACString & aMailCharacterSet)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean charsetOverride; */
NS_IMETHODIMP nsMsgWindow::GetCharsetOverride(PRBool *aCharsetOverride)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetCharsetOverride(PRBool aCharsetOverride)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean stopped; */
NS_IMETHODIMP nsMsgWindow::GetStopped(PRBool *aStopped)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetStopped(PRBool aStopped)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIDOMWindowInternal domWindow; */
NS_IMETHODIMP nsMsgWindow::GetDomWindow(nsIDOMWindowInternal **aDomWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgWindow::SetDomWindow(nsIDOMWindowInternal *aDomWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void StopUrls (); */
NS_IMETHODIMP nsMsgWindow::StopUrls()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void closeWindow (); */
NS_IMETHODIMP nsMsgWindow::CloseWindow()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgWindow_h__ */
