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

#ifndef __gen_nsIMsgCompose_h__
#define __gen_nsIMsgCompose_h__

#include "nsISupports.h"
#include "domstubs.h"
#include "nsIMsgCompFields.h"
#include "nsIEditorShell.h"
#include "nsIMsgIdentity.h"

#include "nsIDOMWindowInternal.h"
#include "nsIEditorShell.h"
typedef PRInt32 MSG_ComposeType;


/* starting interface:    nsIMsgCompType */
#define NS_IMSGCOMPTYPE_IID_STR "c7035852-7531-11d3-9a73-006008948010"

#define NS_IMSGCOMPTYPE_IID \
  {0xc7035852, 0x7531, 0x11d3, \
    { 0x9a, 0x73, 0x00, 0x60, 0x08, 0x94, 0x80, 0x10 }}

class NS_NO_VTABLE nsIMsgCompType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPTYPE_IID)

  enum { New = 0 };

  enum { Reply = 1 };

  enum { ReplyAll = 2 };

  enum { ForwardAsAttachment = 3 };

  enum { ForwardInline = 4 };

  enum { NewsPost = 5 };

  enum { ReplyToGroup = 6 };

  enum { ReplyToSenderAndGroup = 7 };

  enum { Draft = 8 };

  enum { Template = 9 };

  enum { MailToUrl = 10 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPTYPE(_to) \

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

/* Header file */
class nsMsgCompType : public nsIMsgCompType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPTYPE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompType, nsIMsgCompType)

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

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

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

typedef PRInt32 MSG_ComposeFormat;


/* starting interface:    nsIMsgCompFormat */
#define NS_IMSGCOMPFORMAT_IID_STR "a28325e8-7531-11d3-8f1c-006008948010"

#define NS_IMSGCOMPFORMAT_IID \
  {0xa28325e8, 0x7531, 0x11d3, \
    { 0x8f, 0x1c, 0x00, 0x60, 0x08, 0x94, 0x80, 0x10 }}

class NS_NO_VTABLE nsIMsgCompFormat {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPFORMAT_IID)

  enum { Default = 0 };

  enum { HTML = 1 };

  enum { PlainText = 2 };

  enum { OppositeOfDefault = 3 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPFORMAT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPFORMAT(_to) \

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

/* Header file */
class nsMsgCompFormat : public nsIMsgCompFormat
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPFORMAT

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompFormat, nsIMsgCompFormat)

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

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

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

typedef PRInt32 MSG_ComposeSaveType;


/* starting interface:    nsIMsgCompSaveType */
#define NS_IMSGCOMPSAVETYPE_IID_STR "6953e50a-7531-11d3-85fe-006008948010"

#define NS_IMSGCOMPSAVETYPE_IID \
  {0x6953e50a, 0x7531, 0x11d3, \
    { 0x85, 0xfe, 0x00, 0x60, 0x08, 0x94, 0x80, 0x10 }}

class NS_NO_VTABLE nsIMsgCompSaveType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPSAVETYPE_IID)

  enum { File = 0 };

  enum { Template = 1 };

  enum { Draft = 2 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPSAVETYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPSAVETYPE(_to) \

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

/* Header file */
class nsMsgCompSaveType : public nsIMsgCompSaveType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPSAVETYPE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompSaveType, nsIMsgCompSaveType)

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

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

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

typedef PRInt32 MSG_DeliverMode;


/* starting interface:    nsIMsgCompDeliverMode */
#define NS_IMSGCOMPDELIVERMODE_IID_STR "f338eba4-7530-11d3-8833-006008948010"

#define NS_IMSGCOMPDELIVERMODE_IID \
  {0xf338eba4, 0x7530, 0x11d3, \
    { 0x88, 0x33, 0x00, 0x60, 0x08, 0x94, 0x80, 0x10 }}

class NS_NO_VTABLE nsIMsgCompDeliverMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPDELIVERMODE_IID)

  enum { Now = 0 };

  enum { Later = 1 };

  enum { Save = 2 };

  enum { SaveAs = 3 };

  enum { SaveAsDraft = 4 };

  enum { SaveAsTemplate = 5 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPDELIVERMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPDELIVERMODE(_to) \

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

/* Header file */
class nsMsgCompDeliverMode : public nsIMsgCompDeliverMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPDELIVERMODE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompDeliverMode, nsIMsgCompDeliverMode)

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

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

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


/* starting interface:    nsIMsgCompSendFormat */
#define NS_IMSGCOMPSENDFORMAT_IID_STR "f38ea280-e090-11d3-a449-e3153319347c"

#define NS_IMSGCOMPSENDFORMAT_IID \
  {0xf38ea280, 0xe090, 0x11d3, \
    { 0xa4, 0x49, 0xe3, 0x15, 0x33, 0x19, 0x34, 0x7c }}

class NS_NO_VTABLE nsIMsgCompSendFormat {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPSENDFORMAT_IID)

  enum { AskUser = 4 };

  enum { PlainText = 1 };

  enum { HTML = 2 };

  enum { Both = 3 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPSENDFORMAT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPSENDFORMAT(_to) \

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

/* Header file */
class nsMsgCompSendFormat : public nsIMsgCompSendFormat
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPSENDFORMAT

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompSendFormat, nsIMsgCompSendFormat)

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

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

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


/* starting interface:    nsIMsgCompConvertible */
#define NS_IMSGCOMPCONVERTIBLE_IID_STR "9638af92-1dd1-11b2-bef1-ca5fee0abc62"

#define NS_IMSGCOMPCONVERTIBLE_IID \
  {0x9638af92, 0x1dd1, 0x11b2, \
    { 0xbe, 0xf1, 0xca, 0x5f, 0xee, 0x0a, 0xbc, 0x62 }}

class NS_NO_VTABLE nsIMsgCompConvertible {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPCONVERTIBLE_IID)

  enum { Plain = 1 };

  enum { Yes = 2 };

  enum { Altering = 3 };

  enum { No = 4 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPCONVERTIBLE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPCONVERTIBLE(_to) \

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

/* Header file */
class nsMsgCompConvertible : public nsIMsgCompConvertible
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPCONVERTIBLE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompConvertible, nsIMsgCompConvertible)

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

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

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


/* starting interface:    nsIMsgComposeStateListener */
#define NS_IMSGCOMPOSESTATELISTENER_IID_STR "e72c6981-992a-11d3-a449-eb15bb19bc7c"

#define NS_IMSGCOMPOSESTATELISTENER_IID \
  {0xe72c6981, 0x992a, 0x11d3, \
    { 0xa4, 0x49, 0xeb, 0x15, 0xbb, 0x19, 0xbc, 0x7c }}

class NS_NO_VTABLE nsIMsgComposeStateListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPOSESTATELISTENER_IID)

  /* void NotifyComposeFieldsReady (); */
  NS_IMETHOD NotifyComposeFieldsReady(void) = 0;

  /* void SendAndSaveProcessDone (); */
  NS_IMETHOD SendAndSaveProcessDone(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPOSESTATELISTENER \
  NS_IMETHOD NotifyComposeFieldsReady(void); \
  NS_IMETHOD SendAndSaveProcessDone(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPOSESTATELISTENER(_to) \
  NS_IMETHOD NotifyComposeFieldsReady(void) { return _to ## NotifyComposeFieldsReady(); } \
  NS_IMETHOD SendAndSaveProcessDone(void) { return _to ## SendAndSaveProcessDone(); } 

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

/* Header file */
class nsMsgComposeStateListener : public nsIMsgComposeStateListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPOSESTATELISTENER

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgComposeStateListener, nsIMsgComposeStateListener)

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

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

/* void NotifyComposeFieldsReady (); */
NS_IMETHODIMP nsMsgComposeStateListener::NotifyComposeFieldsReady()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SendAndSaveProcessDone (); */
NS_IMETHODIMP nsMsgComposeStateListener::SendAndSaveProcessDone()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgCompose */
#define NS_IMSGCOMPOSE_IID_STR "4e606270-b588-11d2-8289-00805f2a0107"

#define NS_IMSGCOMPOSE_IID \
  {0x4e606270, 0xb588, 0x11d2, \
    { 0x82, 0x89, 0x00, 0x80, 0x5f, 0x2a, 0x01, 0x07 }}

class NS_NO_VTABLE nsIMsgCompose : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGCOMPOSE_IID)

  /* void Initialize (in nsIDOMWindowInternal aWindow, in wstring originalMsgURI, in MSG_ComposeType type, in MSG_ComposeFormat format, in nsIMsgCompFields compFields, in nsIMsgIdentity identity); */
  NS_IMETHOD Initialize(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity) = 0;

  /* void SetDocumentCharset (in wstring charset); */
  NS_IMETHOD SetDocumentCharset(const PRUnichar *charset) = 0;

  /* void RegisterStateListener (in nsIMsgComposeStateListener stateListener); */
  NS_IMETHOD RegisterStateListener(nsIMsgComposeStateListener *stateListener) = 0;

  /* void UnregisterStateListener (in nsIMsgComposeStateListener stateListener); */
  NS_IMETHOD UnregisterStateListener(nsIMsgComposeStateListener *stateListener) = 0;

  /* void SendMsg (in MSG_DeliverMode deliverMode, in nsIMsgIdentity identity); */
  NS_IMETHOD SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity) = 0;

  /* void SendMsgEx (in MSG_DeliverMode deliverMode, in nsIMsgIdentity identity, in wstring addrTo, in wstring addrCc, in wstring addrBcc, in wstring newsgroup, in wstring subject, in wstring body); */
  NS_IMETHOD SendMsgEx(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const PRUnichar *addrTo, const PRUnichar *addrCc, const PRUnichar *addrBcc, const PRUnichar *newsgroup, const PRUnichar *subject, const PRUnichar *body) = 0;

  /* void CloseWindow (); */
  NS_IMETHOD CloseWindow(void) = 0;

  /* wstring AttachmentPrettyName (in wstring url); */
  NS_IMETHOD AttachmentPrettyName(const PRUnichar *url, PRUnichar **_retval) = 0;

  /* wstring CheckAndPopulateRecipients (in boolean populateMailList, in boolean returnNoHTMLRecipients); */
  NS_IMETHOD CheckAndPopulateRecipients(PRBool populateMailList, PRBool returnNoHTMLRecipients, PRUnichar **_retval) = 0;

  /* wstring GetNoHtmlNewsgroups (in wstring newsgroups); */
  NS_IMETHOD GetNoHtmlNewsgroups(const PRUnichar *newsgroups, PRUnichar **_retval) = 0;

  /* long bodyConvertible (); */
  NS_IMETHOD BodyConvertible(PRInt32 *_retval) = 0;

  /* void SetSignature (in nsIMsgIdentity identity); */
  NS_IMETHOD SetSignature(nsIMsgIdentity *identity) = 0;

  /* void ResetNodeEventHandlers (in nsIDOMNode node); */
  NS_IMETHOD ResetNodeEventHandlers(nsIDOMNode *node) = 0;

  /* attribute nsIEditorShell editor; */
  NS_IMETHOD GetEditor(nsIEditorShell * *aEditor) = 0;
  NS_IMETHOD SetEditor(nsIEditorShell * aEditor) = 0;

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

  /* readonly attribute nsIMsgCompFields compFields; */
  NS_IMETHOD GetCompFields(nsIMsgCompFields * *aCompFields) = 0;

  /* readonly attribute boolean composeHTML; */
  NS_IMETHOD GetComposeHTML(PRBool *aComposeHTML) = 0;

  /* readonly attribute long wrapLength; */
  NS_IMETHOD GetWrapLength(PRInt32 *aWrapLength) = 0;

  /* attribute boolean bodyModified; */
  NS_IMETHOD GetBodyModified(PRBool *aBodyModified) = 0;
  NS_IMETHOD SetBodyModified(PRBool aBodyModified) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPOSE \
  NS_IMETHOD Initialize(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity); \
  NS_IMETHOD SetDocumentCharset(const PRUnichar *charset); \
  NS_IMETHOD RegisterStateListener(nsIMsgComposeStateListener *stateListener); \
  NS_IMETHOD UnregisterStateListener(nsIMsgComposeStateListener *stateListener); \
  NS_IMETHOD SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity); \
  NS_IMETHOD SendMsgEx(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const PRUnichar *addrTo, const PRUnichar *addrCc, const PRUnichar *addrBcc, const PRUnichar *newsgroup, const PRUnichar *subject, const PRUnichar *body); \
  NS_IMETHOD CloseWindow(void); \
  NS_IMETHOD AttachmentPrettyName(const PRUnichar *url, PRUnichar **_retval); \
  NS_IMETHOD CheckAndPopulateRecipients(PRBool populateMailList, PRBool returnNoHTMLRecipients, PRUnichar **_retval); \
  NS_IMETHOD GetNoHtmlNewsgroups(const PRUnichar *newsgroups, PRUnichar **_retval); \
  NS_IMETHOD BodyConvertible(PRInt32 *_retval); \
  NS_IMETHOD SetSignature(nsIMsgIdentity *identity); \
  NS_IMETHOD ResetNodeEventHandlers(nsIDOMNode *node); \
  NS_IMETHOD GetEditor(nsIEditorShell * *aEditor); \
  NS_IMETHOD SetEditor(nsIEditorShell * aEditor); \
  NS_IMETHOD GetDomWindow(nsIDOMWindowInternal * *aDomWindow); \
  NS_IMETHOD GetCompFields(nsIMsgCompFields * *aCompFields); \
  NS_IMETHOD GetComposeHTML(PRBool *aComposeHTML); \
  NS_IMETHOD GetWrapLength(PRInt32 *aWrapLength); \
  NS_IMETHOD GetBodyModified(PRBool *aBodyModified); \
  NS_IMETHOD SetBodyModified(PRBool aBodyModified); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPOSE(_to) \
  NS_IMETHOD Initialize(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity) { return _to ## Initialize(aWindow, originalMsgURI, type, format, compFields, identity); } \
  NS_IMETHOD SetDocumentCharset(const PRUnichar *charset) { return _to ## SetDocumentCharset(charset); } \
  NS_IMETHOD RegisterStateListener(nsIMsgComposeStateListener *stateListener) { return _to ## RegisterStateListener(stateListener); } \
  NS_IMETHOD UnregisterStateListener(nsIMsgComposeStateListener *stateListener) { return _to ## UnregisterStateListener(stateListener); } \
  NS_IMETHOD SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity) { return _to ## SendMsg(deliverMode, identity); } \
  NS_IMETHOD SendMsgEx(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const PRUnichar *addrTo, const PRUnichar *addrCc, const PRUnichar *addrBcc, const PRUnichar *newsgroup, const PRUnichar *subject, const PRUnichar *body) { return _to ## SendMsgEx(deliverMode, identity, addrTo, addrCc, addrBcc, newsgroup, subject, body); } \
  NS_IMETHOD CloseWindow(void) { return _to ## CloseWindow(); } \
  NS_IMETHOD AttachmentPrettyName(const PRUnichar *url, PRUnichar **_retval) { return _to ## AttachmentPrettyName(url, _retval); } \
  NS_IMETHOD CheckAndPopulateRecipients(PRBool populateMailList, PRBool returnNoHTMLRecipients, PRUnichar **_retval) { return _to ## CheckAndPopulateRecipients(populateMailList, returnNoHTMLRecipients, _retval); } \
  NS_IMETHOD GetNoHtmlNewsgroups(const PRUnichar *newsgroups, PRUnichar **_retval) { return _to ## GetNoHtmlNewsgroups(newsgroups, _retval); } \
  NS_IMETHOD BodyConvertible(PRInt32 *_retval) { return _to ## BodyConvertible(_retval); } \
  NS_IMETHOD SetSignature(nsIMsgIdentity *identity) { return _to ## SetSignature(identity); } \
  NS_IMETHOD ResetNodeEventHandlers(nsIDOMNode *node) { return _to ## ResetNodeEventHandlers(node); } \
  NS_IMETHOD GetEditor(nsIEditorShell * *aEditor) { return _to ## GetEditor(aEditor); } \
  NS_IMETHOD SetEditor(nsIEditorShell * aEditor) { return _to ## SetEditor(aEditor); } \
  NS_IMETHOD GetDomWindow(nsIDOMWindowInternal * *aDomWindow) { return _to ## GetDomWindow(aDomWindow); } \
  NS_IMETHOD GetCompFields(nsIMsgCompFields * *aCompFields) { return _to ## GetCompFields(aCompFields); } \
  NS_IMETHOD GetComposeHTML(PRBool *aComposeHTML) { return _to ## GetComposeHTML(aComposeHTML); } \
  NS_IMETHOD GetWrapLength(PRInt32 *aWrapLength) { return _to ## GetWrapLength(aWrapLength); } \
  NS_IMETHOD GetBodyModified(PRBool *aBodyModified) { return _to ## GetBodyModified(aBodyModified); } \
  NS_IMETHOD SetBodyModified(PRBool aBodyModified) { return _to ## SetBodyModified(aBodyModified); } 

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

/* Header file */
class nsMsgCompose : public nsIMsgCompose
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPOSE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompose, nsIMsgCompose)

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

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

/* void Initialize (in nsIDOMWindowInternal aWindow, in wstring originalMsgURI, in MSG_ComposeType type, in MSG_ComposeFormat format, in nsIMsgCompFields compFields, in nsIMsgIdentity identity); */
NS_IMETHODIMP nsMsgCompose::Initialize(nsIDOMWindowInternal *aWindow, const PRUnichar *originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields *compFields, nsIMsgIdentity *identity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetDocumentCharset (in wstring charset); */
NS_IMETHODIMP nsMsgCompose::SetDocumentCharset(const PRUnichar *charset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void RegisterStateListener (in nsIMsgComposeStateListener stateListener); */
NS_IMETHODIMP nsMsgCompose::RegisterStateListener(nsIMsgComposeStateListener *stateListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void UnregisterStateListener (in nsIMsgComposeStateListener stateListener); */
NS_IMETHODIMP nsMsgCompose::UnregisterStateListener(nsIMsgComposeStateListener *stateListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SendMsg (in MSG_DeliverMode deliverMode, in nsIMsgIdentity identity); */
NS_IMETHODIMP nsMsgCompose::SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SendMsgEx (in MSG_DeliverMode deliverMode, in nsIMsgIdentity identity, in wstring addrTo, in wstring addrCc, in wstring addrBcc, in wstring newsgroup, in wstring subject, in wstring body); */
NS_IMETHODIMP nsMsgCompose::SendMsgEx(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity, const PRUnichar *addrTo, const PRUnichar *addrCc, const PRUnichar *addrBcc, const PRUnichar *newsgroup, const PRUnichar *subject, const PRUnichar *body)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* wstring AttachmentPrettyName (in wstring url); */
NS_IMETHODIMP nsMsgCompose::AttachmentPrettyName(const PRUnichar *url, PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring CheckAndPopulateRecipients (in boolean populateMailList, in boolean returnNoHTMLRecipients); */
NS_IMETHODIMP nsMsgCompose::CheckAndPopulateRecipients(PRBool populateMailList, PRBool returnNoHTMLRecipients, PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring GetNoHtmlNewsgroups (in wstring newsgroups); */
NS_IMETHODIMP nsMsgCompose::GetNoHtmlNewsgroups(const PRUnichar *newsgroups, PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long bodyConvertible (); */
NS_IMETHODIMP nsMsgCompose::BodyConvertible(PRInt32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetSignature (in nsIMsgIdentity identity); */
NS_IMETHODIMP nsMsgCompose::SetSignature(nsIMsgIdentity *identity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ResetNodeEventHandlers (in nsIDOMNode node); */
NS_IMETHODIMP nsMsgCompose::ResetNodeEventHandlers(nsIDOMNode *node)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIEditorShell editor; */
NS_IMETHODIMP nsMsgCompose::GetEditor(nsIEditorShell * *aEditor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompose::SetEditor(nsIEditorShell * aEditor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* readonly attribute nsIMsgCompFields compFields; */
NS_IMETHODIMP nsMsgCompose::GetCompFields(nsIMsgCompFields * *aCompFields)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean composeHTML; */
NS_IMETHODIMP nsMsgCompose::GetComposeHTML(PRBool *aComposeHTML)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long wrapLength; */
NS_IMETHODIMP nsMsgCompose::GetWrapLength(PRInt32 *aWrapLength)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean bodyModified; */
NS_IMETHODIMP nsMsgCompose::GetBodyModified(PRBool *aBodyModified)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompose::SetBodyModified(PRBool aBodyModified)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgCompose_h__ */
