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

#ifndef __gen_nsIMsgCompFields_h__
#define __gen_nsIMsgCompFields_h__


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

#ifndef __gen_nsIMsgAttachment_h__
#include "nsIMsgAttachment.h"
#endif

#ifndef __gen_nsISimpleEnumerator_h__
#include "nsISimpleEnumerator.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    nsIMsgCompFields */
#define NS_IMSGCOMPFIELDS_IID_STR "a58cd120-ba9b-11de-8a39-0800200c9a66"

#define NS_IMSGCOMPFIELDS_IID \
  {0xa58cd120, 0xba9b, 0x11de, \
    { 0x8a, 0x39, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMsgCompFields : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGCOMPFIELDS_IID)

  /* attribute AString from; */
  NS_SCRIPTABLE NS_IMETHOD GetFrom(nsAString & aFrom) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFrom(const nsAString & aFrom) = 0;

  /* attribute AString replyTo; */
  NS_SCRIPTABLE NS_IMETHOD GetReplyTo(nsAString & aReplyTo) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetReplyTo(const nsAString & aReplyTo) = 0;

  /* attribute AString to; */
  NS_SCRIPTABLE NS_IMETHOD GetTo(nsAString & aTo) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetTo(const nsAString & aTo) = 0;

  /* attribute AString cc; */
  NS_SCRIPTABLE NS_IMETHOD GetCc(nsAString & aCc) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCc(const nsAString & aCc) = 0;

  /* attribute AString bcc; */
  NS_SCRIPTABLE NS_IMETHOD GetBcc(nsAString & aBcc) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetBcc(const nsAString & aBcc) = 0;

  /* attribute AString fcc; */
  NS_SCRIPTABLE NS_IMETHOD GetFcc(nsAString & aFcc) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFcc(const nsAString & aFcc) = 0;

  /* attribute AString fcc2; */
  NS_SCRIPTABLE NS_IMETHOD GetFcc2(nsAString & aFcc2) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFcc2(const nsAString & aFcc2) = 0;

  /* attribute AString newsgroups; */
  NS_SCRIPTABLE NS_IMETHOD GetNewsgroups(nsAString & aNewsgroups) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetNewsgroups(const nsAString & aNewsgroups) = 0;

  /* attribute string newshost; */
  NS_SCRIPTABLE NS_IMETHOD GetNewshost(char * *aNewshost) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetNewshost(const char * aNewshost) = 0;

  /* attribute string newspostUrl; */
  NS_SCRIPTABLE NS_IMETHOD GetNewspostUrl(char * *aNewspostUrl) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetNewspostUrl(const char * aNewspostUrl) = 0;

  /* attribute AString followupTo; */
  NS_SCRIPTABLE NS_IMETHOD GetFollowupTo(nsAString & aFollowupTo) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFollowupTo(const nsAString & aFollowupTo) = 0;

  /* attribute AString subject; */
  NS_SCRIPTABLE NS_IMETHOD GetSubject(nsAString & aSubject) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSubject(const nsAString & aSubject) = 0;

  /* attribute AString organization; */
  NS_SCRIPTABLE NS_IMETHOD GetOrganization(nsAString & aOrganization) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetOrganization(const nsAString & aOrganization) = 0;

  /* attribute string references; */
  NS_SCRIPTABLE NS_IMETHOD GetReferences(char * *aReferences) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetReferences(const char * aReferences) = 0;

  /* attribute string priority; */
  NS_SCRIPTABLE NS_IMETHOD GetPriority(char * *aPriority) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPriority(const char * aPriority) = 0;

  /* attribute string messageId; */
  NS_SCRIPTABLE NS_IMETHOD GetMessageId(char * *aMessageId) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMessageId(const char * aMessageId) = 0;

  /* attribute string characterSet; */
  NS_SCRIPTABLE NS_IMETHOD GetCharacterSet(char * *aCharacterSet) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCharacterSet(const char * aCharacterSet) = 0;

  /* readonly attribute string defaultCharacterSet; */
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCharacterSet(char * *aDefaultCharacterSet) = 0;

  /* attribute AString templateName; */
  NS_SCRIPTABLE NS_IMETHOD GetTemplateName(nsAString & aTemplateName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetTemplateName(const nsAString & aTemplateName) = 0;

  /* attribute string draftId; */
  NS_SCRIPTABLE NS_IMETHOD GetDraftId(char * *aDraftId) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDraftId(const char * aDraftId) = 0;

  /* attribute boolean returnReceipt; */
  NS_SCRIPTABLE NS_IMETHOD GetReturnReceipt(bool *aReturnReceipt) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetReturnReceipt(bool aReturnReceipt) = 0;

  /* attribute long receiptHeaderType; */
  NS_SCRIPTABLE NS_IMETHOD GetReceiptHeaderType(PRInt32 *aReceiptHeaderType) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetReceiptHeaderType(PRInt32 aReceiptHeaderType) = 0;

  /* attribute boolean DSN; */
  NS_SCRIPTABLE NS_IMETHOD GetDSN(bool *aDSN) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDSN(bool aDSN) = 0;

  /* attribute boolean attachVCard; */
  NS_SCRIPTABLE NS_IMETHOD GetAttachVCard(bool *aAttachVCard) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetAttachVCard(bool aAttachVCard) = 0;

  /* attribute boolean forcePlainText; */
  NS_SCRIPTABLE NS_IMETHOD GetForcePlainText(bool *aForcePlainText) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetForcePlainText(bool aForcePlainText) = 0;

  /* attribute boolean useMultipartAlternative; */
  NS_SCRIPTABLE NS_IMETHOD GetUseMultipartAlternative(bool *aUseMultipartAlternative) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetUseMultipartAlternative(bool aUseMultipartAlternative) = 0;

  /* attribute boolean bodyIsAsciiOnly; */
  NS_SCRIPTABLE NS_IMETHOD GetBodyIsAsciiOnly(bool *aBodyIsAsciiOnly) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetBodyIsAsciiOnly(bool aBodyIsAsciiOnly) = 0;

  /* attribute boolean forceMsgEncoding; */
  NS_SCRIPTABLE NS_IMETHOD GetForceMsgEncoding(bool *aForceMsgEncoding) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetForceMsgEncoding(bool aForceMsgEncoding) = 0;

  /* attribute AString otherRandomHeaders; */
  NS_SCRIPTABLE NS_IMETHOD GetOtherRandomHeaders(nsAString & aOtherRandomHeaders) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetOtherRandomHeaders(const nsAString & aOtherRandomHeaders) = 0;

  /* attribute AString senderReply; */
  NS_SCRIPTABLE NS_IMETHOD GetSenderReply(nsAString & aSenderReply) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSenderReply(const nsAString & aSenderReply) = 0;

  /* attribute AString allReply; */
  NS_SCRIPTABLE NS_IMETHOD GetAllReply(nsAString & aAllReply) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetAllReply(const nsAString & aAllReply) = 0;

  /* attribute AString listReply; */
  NS_SCRIPTABLE NS_IMETHOD GetListReply(nsAString & aListReply) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetListReply(const nsAString & aListReply) = 0;

  /* attribute AString body; */
  NS_SCRIPTABLE NS_IMETHOD GetBody(nsAString & aBody) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetBody(const nsAString & aBody) = 0;

  /* attribute string temporaryFiles; */
  NS_SCRIPTABLE NS_IMETHOD GetTemporaryFiles(char * *aTemporaryFiles) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetTemporaryFiles(const char * aTemporaryFiles) = 0;

  /* readonly attribute nsISimpleEnumerator attachments; */
  NS_SCRIPTABLE NS_IMETHOD GetAttachments(nsISimpleEnumerator * *aAttachments) = 0;

  /* void addAttachment (in nsIMsgAttachment attachment); */
  NS_SCRIPTABLE NS_IMETHOD AddAttachment(nsIMsgAttachment *attachment) = 0;

  /* void removeAttachment (in nsIMsgAttachment attachment); */
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachment(nsIMsgAttachment *attachment) = 0;

  /* void removeAttachments (); */
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachments(void) = 0;

  /* void splitRecipients (in AString aRecipients, in boolean aEmailAddressOnly, out unsigned long aLength, [array, size_is (aLength), retval] out wstring aResult); */
  NS_SCRIPTABLE NS_IMETHOD SplitRecipients(const nsAString & aRecipients, bool aEmailAddressOnly, PRUint32 *aLength NS_OUTPARAM, PRUnichar * **aResult NS_OUTPARAM) = 0;

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

  /* boolean checkCharsetConversion (out string fallbackCharset); */
  NS_SCRIPTABLE NS_IMETHOD CheckCharsetConversion(char * *fallbackCharset NS_OUTPARAM, bool *_retval NS_OUTPARAM) = 0;

  /* attribute boolean needToCheckCharset; */
  NS_SCRIPTABLE NS_IMETHOD GetNeedToCheckCharset(bool *aNeedToCheckCharset) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetNeedToCheckCharset(bool aNeedToCheckCharset) = 0;

  /* attribute nsISupports securityInfo; */
  NS_SCRIPTABLE NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSecurityInfo(nsISupports *aSecurityInfo) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgCompFields, NS_IMSGCOMPFIELDS_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGCOMPFIELDS \
  NS_SCRIPTABLE NS_IMETHOD GetFrom(nsAString & aFrom); \
  NS_SCRIPTABLE NS_IMETHOD SetFrom(const nsAString & aFrom); \
  NS_SCRIPTABLE NS_IMETHOD GetReplyTo(nsAString & aReplyTo); \
  NS_SCRIPTABLE NS_IMETHOD SetReplyTo(const nsAString & aReplyTo); \
  NS_SCRIPTABLE NS_IMETHOD GetTo(nsAString & aTo); \
  NS_SCRIPTABLE NS_IMETHOD SetTo(const nsAString & aTo); \
  NS_SCRIPTABLE NS_IMETHOD GetCc(nsAString & aCc); \
  NS_SCRIPTABLE NS_IMETHOD SetCc(const nsAString & aCc); \
  NS_SCRIPTABLE NS_IMETHOD GetBcc(nsAString & aBcc); \
  NS_SCRIPTABLE NS_IMETHOD SetBcc(const nsAString & aBcc); \
  NS_SCRIPTABLE NS_IMETHOD GetFcc(nsAString & aFcc); \
  NS_SCRIPTABLE NS_IMETHOD SetFcc(const nsAString & aFcc); \
  NS_SCRIPTABLE NS_IMETHOD GetFcc2(nsAString & aFcc2); \
  NS_SCRIPTABLE NS_IMETHOD SetFcc2(const nsAString & aFcc2); \
  NS_SCRIPTABLE NS_IMETHOD GetNewsgroups(nsAString & aNewsgroups); \
  NS_SCRIPTABLE NS_IMETHOD SetNewsgroups(const nsAString & aNewsgroups); \
  NS_SCRIPTABLE NS_IMETHOD GetNewshost(char * *aNewshost); \
  NS_SCRIPTABLE NS_IMETHOD SetNewshost(const char * aNewshost); \
  NS_SCRIPTABLE NS_IMETHOD GetNewspostUrl(char * *aNewspostUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetNewspostUrl(const char * aNewspostUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetFollowupTo(nsAString & aFollowupTo); \
  NS_SCRIPTABLE NS_IMETHOD SetFollowupTo(const nsAString & aFollowupTo); \
  NS_SCRIPTABLE NS_IMETHOD GetSubject(nsAString & aSubject); \
  NS_SCRIPTABLE NS_IMETHOD SetSubject(const nsAString & aSubject); \
  NS_SCRIPTABLE NS_IMETHOD GetOrganization(nsAString & aOrganization); \
  NS_SCRIPTABLE NS_IMETHOD SetOrganization(const nsAString & aOrganization); \
  NS_SCRIPTABLE NS_IMETHOD GetReferences(char * *aReferences); \
  NS_SCRIPTABLE NS_IMETHOD SetReferences(const char * aReferences); \
  NS_SCRIPTABLE NS_IMETHOD GetPriority(char * *aPriority); \
  NS_SCRIPTABLE NS_IMETHOD SetPriority(const char * aPriority); \
  NS_SCRIPTABLE NS_IMETHOD GetMessageId(char * *aMessageId); \
  NS_SCRIPTABLE NS_IMETHOD SetMessageId(const char * aMessageId); \
  NS_SCRIPTABLE NS_IMETHOD GetCharacterSet(char * *aCharacterSet); \
  NS_SCRIPTABLE NS_IMETHOD SetCharacterSet(const char * aCharacterSet); \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCharacterSet(char * *aDefaultCharacterSet); \
  NS_SCRIPTABLE NS_IMETHOD GetTemplateName(nsAString & aTemplateName); \
  NS_SCRIPTABLE NS_IMETHOD SetTemplateName(const nsAString & aTemplateName); \
  NS_SCRIPTABLE NS_IMETHOD GetDraftId(char * *aDraftId); \
  NS_SCRIPTABLE NS_IMETHOD SetDraftId(const char * aDraftId); \
  NS_SCRIPTABLE NS_IMETHOD GetReturnReceipt(bool *aReturnReceipt); \
  NS_SCRIPTABLE NS_IMETHOD SetReturnReceipt(bool aReturnReceipt); \
  NS_SCRIPTABLE NS_IMETHOD GetReceiptHeaderType(PRInt32 *aReceiptHeaderType); \
  NS_SCRIPTABLE NS_IMETHOD SetReceiptHeaderType(PRInt32 aReceiptHeaderType); \
  NS_SCRIPTABLE NS_IMETHOD GetDSN(bool *aDSN); \
  NS_SCRIPTABLE NS_IMETHOD SetDSN(bool aDSN); \
  NS_SCRIPTABLE NS_IMETHOD GetAttachVCard(bool *aAttachVCard); \
  NS_SCRIPTABLE NS_IMETHOD SetAttachVCard(bool aAttachVCard); \
  NS_SCRIPTABLE NS_IMETHOD GetForcePlainText(bool *aForcePlainText); \
  NS_SCRIPTABLE NS_IMETHOD SetForcePlainText(bool aForcePlainText); \
  NS_SCRIPTABLE NS_IMETHOD GetUseMultipartAlternative(bool *aUseMultipartAlternative); \
  NS_SCRIPTABLE NS_IMETHOD SetUseMultipartAlternative(bool aUseMultipartAlternative); \
  NS_SCRIPTABLE NS_IMETHOD GetBodyIsAsciiOnly(bool *aBodyIsAsciiOnly); \
  NS_SCRIPTABLE NS_IMETHOD SetBodyIsAsciiOnly(bool aBodyIsAsciiOnly); \
  NS_SCRIPTABLE NS_IMETHOD GetForceMsgEncoding(bool *aForceMsgEncoding); \
  NS_SCRIPTABLE NS_IMETHOD SetForceMsgEncoding(bool aForceMsgEncoding); \
  NS_SCRIPTABLE NS_IMETHOD GetOtherRandomHeaders(nsAString & aOtherRandomHeaders); \
  NS_SCRIPTABLE NS_IMETHOD SetOtherRandomHeaders(const nsAString & aOtherRandomHeaders); \
  NS_SCRIPTABLE NS_IMETHOD GetSenderReply(nsAString & aSenderReply); \
  NS_SCRIPTABLE NS_IMETHOD SetSenderReply(const nsAString & aSenderReply); \
  NS_SCRIPTABLE NS_IMETHOD GetAllReply(nsAString & aAllReply); \
  NS_SCRIPTABLE NS_IMETHOD SetAllReply(const nsAString & aAllReply); \
  NS_SCRIPTABLE NS_IMETHOD GetListReply(nsAString & aListReply); \
  NS_SCRIPTABLE NS_IMETHOD SetListReply(const nsAString & aListReply); \
  NS_SCRIPTABLE NS_IMETHOD GetBody(nsAString & aBody); \
  NS_SCRIPTABLE NS_IMETHOD SetBody(const nsAString & aBody); \
  NS_SCRIPTABLE NS_IMETHOD GetTemporaryFiles(char * *aTemporaryFiles); \
  NS_SCRIPTABLE NS_IMETHOD SetTemporaryFiles(const char * aTemporaryFiles); \
  NS_SCRIPTABLE NS_IMETHOD GetAttachments(nsISimpleEnumerator * *aAttachments); \
  NS_SCRIPTABLE NS_IMETHOD AddAttachment(nsIMsgAttachment *attachment); \
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachment(nsIMsgAttachment *attachment); \
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachments(void); \
  NS_SCRIPTABLE NS_IMETHOD SplitRecipients(const nsAString & aRecipients, bool aEmailAddressOnly, PRUint32 *aLength NS_OUTPARAM, PRUnichar * **aResult NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD ConvertBodyToPlainText(void); \
  NS_SCRIPTABLE NS_IMETHOD CheckCharsetConversion(char * *fallbackCharset NS_OUTPARAM, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetNeedToCheckCharset(bool *aNeedToCheckCharset); \
  NS_SCRIPTABLE NS_IMETHOD SetNeedToCheckCharset(bool aNeedToCheckCharset); \
  NS_SCRIPTABLE NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo); \
  NS_SCRIPTABLE NS_IMETHOD SetSecurityInfo(nsISupports *aSecurityInfo); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGCOMPFIELDS(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetFrom(nsAString & aFrom) { return _to GetFrom(aFrom); } \
  NS_SCRIPTABLE NS_IMETHOD SetFrom(const nsAString & aFrom) { return _to SetFrom(aFrom); } \
  NS_SCRIPTABLE NS_IMETHOD GetReplyTo(nsAString & aReplyTo) { return _to GetReplyTo(aReplyTo); } \
  NS_SCRIPTABLE NS_IMETHOD SetReplyTo(const nsAString & aReplyTo) { return _to SetReplyTo(aReplyTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetTo(nsAString & aTo) { return _to GetTo(aTo); } \
  NS_SCRIPTABLE NS_IMETHOD SetTo(const nsAString & aTo) { return _to SetTo(aTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetCc(nsAString & aCc) { return _to GetCc(aCc); } \
  NS_SCRIPTABLE NS_IMETHOD SetCc(const nsAString & aCc) { return _to SetCc(aCc); } \
  NS_SCRIPTABLE NS_IMETHOD GetBcc(nsAString & aBcc) { return _to GetBcc(aBcc); } \
  NS_SCRIPTABLE NS_IMETHOD SetBcc(const nsAString & aBcc) { return _to SetBcc(aBcc); } \
  NS_SCRIPTABLE NS_IMETHOD GetFcc(nsAString & aFcc) { return _to GetFcc(aFcc); } \
  NS_SCRIPTABLE NS_IMETHOD SetFcc(const nsAString & aFcc) { return _to SetFcc(aFcc); } \
  NS_SCRIPTABLE NS_IMETHOD GetFcc2(nsAString & aFcc2) { return _to GetFcc2(aFcc2); } \
  NS_SCRIPTABLE NS_IMETHOD SetFcc2(const nsAString & aFcc2) { return _to SetFcc2(aFcc2); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewsgroups(nsAString & aNewsgroups) { return _to GetNewsgroups(aNewsgroups); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewsgroups(const nsAString & aNewsgroups) { return _to SetNewsgroups(aNewsgroups); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewshost(char * *aNewshost) { return _to GetNewshost(aNewshost); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewshost(const char * aNewshost) { return _to SetNewshost(aNewshost); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewspostUrl(char * *aNewspostUrl) { return _to GetNewspostUrl(aNewspostUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewspostUrl(const char * aNewspostUrl) { return _to SetNewspostUrl(aNewspostUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetFollowupTo(nsAString & aFollowupTo) { return _to GetFollowupTo(aFollowupTo); } \
  NS_SCRIPTABLE NS_IMETHOD SetFollowupTo(const nsAString & aFollowupTo) { return _to SetFollowupTo(aFollowupTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetSubject(nsAString & aSubject) { return _to GetSubject(aSubject); } \
  NS_SCRIPTABLE NS_IMETHOD SetSubject(const nsAString & aSubject) { return _to SetSubject(aSubject); } \
  NS_SCRIPTABLE NS_IMETHOD GetOrganization(nsAString & aOrganization) { return _to GetOrganization(aOrganization); } \
  NS_SCRIPTABLE NS_IMETHOD SetOrganization(const nsAString & aOrganization) { return _to SetOrganization(aOrganization); } \
  NS_SCRIPTABLE NS_IMETHOD GetReferences(char * *aReferences) { return _to GetReferences(aReferences); } \
  NS_SCRIPTABLE NS_IMETHOD SetReferences(const char * aReferences) { return _to SetReferences(aReferences); } \
  NS_SCRIPTABLE NS_IMETHOD GetPriority(char * *aPriority) { return _to GetPriority(aPriority); } \
  NS_SCRIPTABLE NS_IMETHOD SetPriority(const char * aPriority) { return _to SetPriority(aPriority); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageId(char * *aMessageId) { return _to GetMessageId(aMessageId); } \
  NS_SCRIPTABLE NS_IMETHOD SetMessageId(const char * aMessageId) { return _to SetMessageId(aMessageId); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharacterSet(char * *aCharacterSet) { return _to GetCharacterSet(aCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharacterSet(const char * aCharacterSet) { return _to SetCharacterSet(aCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCharacterSet(char * *aDefaultCharacterSet) { return _to GetDefaultCharacterSet(aDefaultCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD GetTemplateName(nsAString & aTemplateName) { return _to GetTemplateName(aTemplateName); } \
  NS_SCRIPTABLE NS_IMETHOD SetTemplateName(const nsAString & aTemplateName) { return _to SetTemplateName(aTemplateName); } \
  NS_SCRIPTABLE NS_IMETHOD GetDraftId(char * *aDraftId) { return _to GetDraftId(aDraftId); } \
  NS_SCRIPTABLE NS_IMETHOD SetDraftId(const char * aDraftId) { return _to SetDraftId(aDraftId); } \
  NS_SCRIPTABLE NS_IMETHOD GetReturnReceipt(bool *aReturnReceipt) { return _to GetReturnReceipt(aReturnReceipt); } \
  NS_SCRIPTABLE NS_IMETHOD SetReturnReceipt(bool aReturnReceipt) { return _to SetReturnReceipt(aReturnReceipt); } \
  NS_SCRIPTABLE NS_IMETHOD GetReceiptHeaderType(PRInt32 *aReceiptHeaderType) { return _to GetReceiptHeaderType(aReceiptHeaderType); } \
  NS_SCRIPTABLE NS_IMETHOD SetReceiptHeaderType(PRInt32 aReceiptHeaderType) { return _to SetReceiptHeaderType(aReceiptHeaderType); } \
  NS_SCRIPTABLE NS_IMETHOD GetDSN(bool *aDSN) { return _to GetDSN(aDSN); } \
  NS_SCRIPTABLE NS_IMETHOD SetDSN(bool aDSN) { return _to SetDSN(aDSN); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttachVCard(bool *aAttachVCard) { return _to GetAttachVCard(aAttachVCard); } \
  NS_SCRIPTABLE NS_IMETHOD SetAttachVCard(bool aAttachVCard) { return _to SetAttachVCard(aAttachVCard); } \
  NS_SCRIPTABLE NS_IMETHOD GetForcePlainText(bool *aForcePlainText) { return _to GetForcePlainText(aForcePlainText); } \
  NS_SCRIPTABLE NS_IMETHOD SetForcePlainText(bool aForcePlainText) { return _to SetForcePlainText(aForcePlainText); } \
  NS_SCRIPTABLE NS_IMETHOD GetUseMultipartAlternative(bool *aUseMultipartAlternative) { return _to GetUseMultipartAlternative(aUseMultipartAlternative); } \
  NS_SCRIPTABLE NS_IMETHOD SetUseMultipartAlternative(bool aUseMultipartAlternative) { return _to SetUseMultipartAlternative(aUseMultipartAlternative); } \
  NS_SCRIPTABLE NS_IMETHOD GetBodyIsAsciiOnly(bool *aBodyIsAsciiOnly) { return _to GetBodyIsAsciiOnly(aBodyIsAsciiOnly); } \
  NS_SCRIPTABLE NS_IMETHOD SetBodyIsAsciiOnly(bool aBodyIsAsciiOnly) { return _to SetBodyIsAsciiOnly(aBodyIsAsciiOnly); } \
  NS_SCRIPTABLE NS_IMETHOD GetForceMsgEncoding(bool *aForceMsgEncoding) { return _to GetForceMsgEncoding(aForceMsgEncoding); } \
  NS_SCRIPTABLE NS_IMETHOD SetForceMsgEncoding(bool aForceMsgEncoding) { return _to SetForceMsgEncoding(aForceMsgEncoding); } \
  NS_SCRIPTABLE NS_IMETHOD GetOtherRandomHeaders(nsAString & aOtherRandomHeaders) { return _to GetOtherRandomHeaders(aOtherRandomHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD SetOtherRandomHeaders(const nsAString & aOtherRandomHeaders) { return _to SetOtherRandomHeaders(aOtherRandomHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD GetSenderReply(nsAString & aSenderReply) { return _to GetSenderReply(aSenderReply); } \
  NS_SCRIPTABLE NS_IMETHOD SetSenderReply(const nsAString & aSenderReply) { return _to SetSenderReply(aSenderReply); } \
  NS_SCRIPTABLE NS_IMETHOD GetAllReply(nsAString & aAllReply) { return _to GetAllReply(aAllReply); } \
  NS_SCRIPTABLE NS_IMETHOD SetAllReply(const nsAString & aAllReply) { return _to SetAllReply(aAllReply); } \
  NS_SCRIPTABLE NS_IMETHOD GetListReply(nsAString & aListReply) { return _to GetListReply(aListReply); } \
  NS_SCRIPTABLE NS_IMETHOD SetListReply(const nsAString & aListReply) { return _to SetListReply(aListReply); } \
  NS_SCRIPTABLE NS_IMETHOD GetBody(nsAString & aBody) { return _to GetBody(aBody); } \
  NS_SCRIPTABLE NS_IMETHOD SetBody(const nsAString & aBody) { return _to SetBody(aBody); } \
  NS_SCRIPTABLE NS_IMETHOD GetTemporaryFiles(char * *aTemporaryFiles) { return _to GetTemporaryFiles(aTemporaryFiles); } \
  NS_SCRIPTABLE NS_IMETHOD SetTemporaryFiles(const char * aTemporaryFiles) { return _to SetTemporaryFiles(aTemporaryFiles); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttachments(nsISimpleEnumerator * *aAttachments) { return _to GetAttachments(aAttachments); } \
  NS_SCRIPTABLE NS_IMETHOD AddAttachment(nsIMsgAttachment *attachment) { return _to AddAttachment(attachment); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachment(nsIMsgAttachment *attachment) { return _to RemoveAttachment(attachment); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachments(void) { return _to RemoveAttachments(); } \
  NS_SCRIPTABLE NS_IMETHOD SplitRecipients(const nsAString & aRecipients, bool aEmailAddressOnly, PRUint32 *aLength NS_OUTPARAM, PRUnichar * **aResult NS_OUTPARAM) { return _to SplitRecipients(aRecipients, aEmailAddressOnly, aLength, aResult); } \
  NS_SCRIPTABLE NS_IMETHOD ConvertBodyToPlainText(void) { return _to ConvertBodyToPlainText(); } \
  NS_SCRIPTABLE NS_IMETHOD CheckCharsetConversion(char * *fallbackCharset NS_OUTPARAM, bool *_retval NS_OUTPARAM) { return _to CheckCharsetConversion(fallbackCharset, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetNeedToCheckCharset(bool *aNeedToCheckCharset) { return _to GetNeedToCheckCharset(aNeedToCheckCharset); } \
  NS_SCRIPTABLE NS_IMETHOD SetNeedToCheckCharset(bool aNeedToCheckCharset) { return _to SetNeedToCheckCharset(aNeedToCheckCharset); } \
  NS_SCRIPTABLE NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo) { return _to GetSecurityInfo(aSecurityInfo); } \
  NS_SCRIPTABLE NS_IMETHOD SetSecurityInfo(nsISupports *aSecurityInfo) { return _to SetSecurityInfo(aSecurityInfo); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGCOMPFIELDS(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetFrom(nsAString & aFrom) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFrom(aFrom); } \
  NS_SCRIPTABLE NS_IMETHOD SetFrom(const nsAString & aFrom) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFrom(aFrom); } \
  NS_SCRIPTABLE NS_IMETHOD GetReplyTo(nsAString & aReplyTo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReplyTo(aReplyTo); } \
  NS_SCRIPTABLE NS_IMETHOD SetReplyTo(const nsAString & aReplyTo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReplyTo(aReplyTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetTo(nsAString & aTo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTo(aTo); } \
  NS_SCRIPTABLE NS_IMETHOD SetTo(const nsAString & aTo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTo(aTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetCc(nsAString & aCc) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCc(aCc); } \
  NS_SCRIPTABLE NS_IMETHOD SetCc(const nsAString & aCc) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCc(aCc); } \
  NS_SCRIPTABLE NS_IMETHOD GetBcc(nsAString & aBcc) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBcc(aBcc); } \
  NS_SCRIPTABLE NS_IMETHOD SetBcc(const nsAString & aBcc) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBcc(aBcc); } \
  NS_SCRIPTABLE NS_IMETHOD GetFcc(nsAString & aFcc) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFcc(aFcc); } \
  NS_SCRIPTABLE NS_IMETHOD SetFcc(const nsAString & aFcc) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFcc(aFcc); } \
  NS_SCRIPTABLE NS_IMETHOD GetFcc2(nsAString & aFcc2) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFcc2(aFcc2); } \
  NS_SCRIPTABLE NS_IMETHOD SetFcc2(const nsAString & aFcc2) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFcc2(aFcc2); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewsgroups(nsAString & aNewsgroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewsgroups(aNewsgroups); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewsgroups(const nsAString & aNewsgroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNewsgroups(aNewsgroups); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewshost(char * *aNewshost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewshost(aNewshost); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewshost(const char * aNewshost) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNewshost(aNewshost); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewspostUrl(char * *aNewspostUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewspostUrl(aNewspostUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewspostUrl(const char * aNewspostUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNewspostUrl(aNewspostUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetFollowupTo(nsAString & aFollowupTo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFollowupTo(aFollowupTo); } \
  NS_SCRIPTABLE NS_IMETHOD SetFollowupTo(const nsAString & aFollowupTo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFollowupTo(aFollowupTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetSubject(nsAString & aSubject) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubject(aSubject); } \
  NS_SCRIPTABLE NS_IMETHOD SetSubject(const nsAString & aSubject) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSubject(aSubject); } \
  NS_SCRIPTABLE NS_IMETHOD GetOrganization(nsAString & aOrganization) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrganization(aOrganization); } \
  NS_SCRIPTABLE NS_IMETHOD SetOrganization(const nsAString & aOrganization) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOrganization(aOrganization); } \
  NS_SCRIPTABLE NS_IMETHOD GetReferences(char * *aReferences) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReferences(aReferences); } \
  NS_SCRIPTABLE NS_IMETHOD SetReferences(const char * aReferences) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReferences(aReferences); } \
  NS_SCRIPTABLE NS_IMETHOD GetPriority(char * *aPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPriority(aPriority); } \
  NS_SCRIPTABLE NS_IMETHOD SetPriority(const char * aPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPriority(aPriority); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageId(char * *aMessageId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageId(aMessageId); } \
  NS_SCRIPTABLE NS_IMETHOD SetMessageId(const char * aMessageId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageId(aMessageId); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharacterSet(char * *aCharacterSet) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharacterSet(aCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharacterSet(const char * aCharacterSet) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharacterSet(aCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCharacterSet(char * *aDefaultCharacterSet) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultCharacterSet(aDefaultCharacterSet); } \
  NS_SCRIPTABLE NS_IMETHOD GetTemplateName(nsAString & aTemplateName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTemplateName(aTemplateName); } \
  NS_SCRIPTABLE NS_IMETHOD SetTemplateName(const nsAString & aTemplateName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTemplateName(aTemplateName); } \
  NS_SCRIPTABLE NS_IMETHOD GetDraftId(char * *aDraftId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDraftId(aDraftId); } \
  NS_SCRIPTABLE NS_IMETHOD SetDraftId(const char * aDraftId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDraftId(aDraftId); } \
  NS_SCRIPTABLE NS_IMETHOD GetReturnReceipt(bool *aReturnReceipt) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReturnReceipt(aReturnReceipt); } \
  NS_SCRIPTABLE NS_IMETHOD SetReturnReceipt(bool aReturnReceipt) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReturnReceipt(aReturnReceipt); } \
  NS_SCRIPTABLE NS_IMETHOD GetReceiptHeaderType(PRInt32 *aReceiptHeaderType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReceiptHeaderType(aReceiptHeaderType); } \
  NS_SCRIPTABLE NS_IMETHOD SetReceiptHeaderType(PRInt32 aReceiptHeaderType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReceiptHeaderType(aReceiptHeaderType); } \
  NS_SCRIPTABLE NS_IMETHOD GetDSN(bool *aDSN) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDSN(aDSN); } \
  NS_SCRIPTABLE NS_IMETHOD SetDSN(bool aDSN) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDSN(aDSN); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttachVCard(bool *aAttachVCard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttachVCard(aAttachVCard); } \
  NS_SCRIPTABLE NS_IMETHOD SetAttachVCard(bool aAttachVCard) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAttachVCard(aAttachVCard); } \
  NS_SCRIPTABLE NS_IMETHOD GetForcePlainText(bool *aForcePlainText) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForcePlainText(aForcePlainText); } \
  NS_SCRIPTABLE NS_IMETHOD SetForcePlainText(bool aForcePlainText) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForcePlainText(aForcePlainText); } \
  NS_SCRIPTABLE NS_IMETHOD GetUseMultipartAlternative(bool *aUseMultipartAlternative) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseMultipartAlternative(aUseMultipartAlternative); } \
  NS_SCRIPTABLE NS_IMETHOD SetUseMultipartAlternative(bool aUseMultipartAlternative) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseMultipartAlternative(aUseMultipartAlternative); } \
  NS_SCRIPTABLE NS_IMETHOD GetBodyIsAsciiOnly(bool *aBodyIsAsciiOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBodyIsAsciiOnly(aBodyIsAsciiOnly); } \
  NS_SCRIPTABLE NS_IMETHOD SetBodyIsAsciiOnly(bool aBodyIsAsciiOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBodyIsAsciiOnly(aBodyIsAsciiOnly); } \
  NS_SCRIPTABLE NS_IMETHOD GetForceMsgEncoding(bool *aForceMsgEncoding) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForceMsgEncoding(aForceMsgEncoding); } \
  NS_SCRIPTABLE NS_IMETHOD SetForceMsgEncoding(bool aForceMsgEncoding) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForceMsgEncoding(aForceMsgEncoding); } \
  NS_SCRIPTABLE NS_IMETHOD GetOtherRandomHeaders(nsAString & aOtherRandomHeaders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOtherRandomHeaders(aOtherRandomHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD SetOtherRandomHeaders(const nsAString & aOtherRandomHeaders) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOtherRandomHeaders(aOtherRandomHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD GetSenderReply(nsAString & aSenderReply) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSenderReply(aSenderReply); } \
  NS_SCRIPTABLE NS_IMETHOD SetSenderReply(const nsAString & aSenderReply) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSenderReply(aSenderReply); } \
  NS_SCRIPTABLE NS_IMETHOD GetAllReply(nsAString & aAllReply) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllReply(aAllReply); } \
  NS_SCRIPTABLE NS_IMETHOD SetAllReply(const nsAString & aAllReply) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAllReply(aAllReply); } \
  NS_SCRIPTABLE NS_IMETHOD GetListReply(nsAString & aListReply) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetListReply(aListReply); } \
  NS_SCRIPTABLE NS_IMETHOD SetListReply(const nsAString & aListReply) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetListReply(aListReply); } \
  NS_SCRIPTABLE NS_IMETHOD GetBody(nsAString & aBody) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBody(aBody); } \
  NS_SCRIPTABLE NS_IMETHOD SetBody(const nsAString & aBody) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBody(aBody); } \
  NS_SCRIPTABLE NS_IMETHOD GetTemporaryFiles(char * *aTemporaryFiles) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTemporaryFiles(aTemporaryFiles); } \
  NS_SCRIPTABLE NS_IMETHOD SetTemporaryFiles(const char * aTemporaryFiles) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTemporaryFiles(aTemporaryFiles); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttachments(nsISimpleEnumerator * *aAttachments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttachments(aAttachments); } \
  NS_SCRIPTABLE NS_IMETHOD AddAttachment(nsIMsgAttachment *attachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAttachment(attachment); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachment(nsIMsgAttachment *attachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAttachment(attachment); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAttachments(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAttachments(); } \
  NS_SCRIPTABLE NS_IMETHOD SplitRecipients(const nsAString & aRecipients, bool aEmailAddressOnly, PRUint32 *aLength NS_OUTPARAM, PRUnichar * **aResult NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->SplitRecipients(aRecipients, aEmailAddressOnly, aLength, aResult); } \
  NS_SCRIPTABLE NS_IMETHOD ConvertBodyToPlainText(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ConvertBodyToPlainText(); } \
  NS_SCRIPTABLE NS_IMETHOD CheckCharsetConversion(char * *fallbackCharset NS_OUTPARAM, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckCharsetConversion(fallbackCharset, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetNeedToCheckCharset(bool *aNeedToCheckCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedToCheckCharset(aNeedToCheckCharset); } \
  NS_SCRIPTABLE NS_IMETHOD SetNeedToCheckCharset(bool aNeedToCheckCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNeedToCheckCharset(aNeedToCheckCharset); } \
  NS_SCRIPTABLE NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSecurityInfo(aSecurityInfo); } \
  NS_SCRIPTABLE NS_IMETHOD SetSecurityInfo(nsISupports *aSecurityInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSecurityInfo(aSecurityInfo); } 

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

/* Header file */
class nsMsgCompFields : public nsIMsgCompFields
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGCOMPFIELDS

  nsMsgCompFields();

private:
  ~nsMsgCompFields();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgCompFields, nsIMsgCompFields)

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

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

/* attribute AString from; */
NS_IMETHODIMP nsMsgCompFields::GetFrom(nsAString & aFrom)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetFrom(const nsAString & aFrom)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString replyTo; */
NS_IMETHODIMP nsMsgCompFields::GetReplyTo(nsAString & aReplyTo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetReplyTo(const nsAString & aReplyTo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString to; */
NS_IMETHODIMP nsMsgCompFields::GetTo(nsAString & aTo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetTo(const nsAString & aTo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString cc; */
NS_IMETHODIMP nsMsgCompFields::GetCc(nsAString & aCc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetCc(const nsAString & aCc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString bcc; */
NS_IMETHODIMP nsMsgCompFields::GetBcc(nsAString & aBcc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetBcc(const nsAString & aBcc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString fcc; */
NS_IMETHODIMP nsMsgCompFields::GetFcc(nsAString & aFcc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetFcc(const nsAString & aFcc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString fcc2; */
NS_IMETHODIMP nsMsgCompFields::GetFcc2(nsAString & aFcc2)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetFcc2(const nsAString & aFcc2)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString newsgroups; */
NS_IMETHODIMP nsMsgCompFields::GetNewsgroups(nsAString & aNewsgroups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetNewsgroups(const nsAString & aNewsgroups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string newshost; */
NS_IMETHODIMP nsMsgCompFields::GetNewshost(char * *aNewshost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetNewshost(const char * aNewshost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string newspostUrl; */
NS_IMETHODIMP nsMsgCompFields::GetNewspostUrl(char * *aNewspostUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetNewspostUrl(const char * aNewspostUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString followupTo; */
NS_IMETHODIMP nsMsgCompFields::GetFollowupTo(nsAString & aFollowupTo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetFollowupTo(const nsAString & aFollowupTo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString subject; */
NS_IMETHODIMP nsMsgCompFields::GetSubject(nsAString & aSubject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetSubject(const nsAString & aSubject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString organization; */
NS_IMETHODIMP nsMsgCompFields::GetOrganization(nsAString & aOrganization)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetOrganization(const nsAString & aOrganization)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string references; */
NS_IMETHODIMP nsMsgCompFields::GetReferences(char * *aReferences)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetReferences(const char * aReferences)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string priority; */
NS_IMETHODIMP nsMsgCompFields::GetPriority(char * *aPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetPriority(const char * aPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string messageId; */
NS_IMETHODIMP nsMsgCompFields::GetMessageId(char * *aMessageId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetMessageId(const char * aMessageId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string characterSet; */
NS_IMETHODIMP nsMsgCompFields::GetCharacterSet(char * *aCharacterSet)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetCharacterSet(const char * aCharacterSet)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string defaultCharacterSet; */
NS_IMETHODIMP nsMsgCompFields::GetDefaultCharacterSet(char * *aDefaultCharacterSet)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString templateName; */
NS_IMETHODIMP nsMsgCompFields::GetTemplateName(nsAString & aTemplateName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetTemplateName(const nsAString & aTemplateName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string draftId; */
NS_IMETHODIMP nsMsgCompFields::GetDraftId(char * *aDraftId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetDraftId(const char * aDraftId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean returnReceipt; */
NS_IMETHODIMP nsMsgCompFields::GetReturnReceipt(bool *aReturnReceipt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetReturnReceipt(bool aReturnReceipt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long receiptHeaderType; */
NS_IMETHODIMP nsMsgCompFields::GetReceiptHeaderType(PRInt32 *aReceiptHeaderType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetReceiptHeaderType(PRInt32 aReceiptHeaderType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean DSN; */
NS_IMETHODIMP nsMsgCompFields::GetDSN(bool *aDSN)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetDSN(bool aDSN)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean attachVCard; */
NS_IMETHODIMP nsMsgCompFields::GetAttachVCard(bool *aAttachVCard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetAttachVCard(bool aAttachVCard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean forcePlainText; */
NS_IMETHODIMP nsMsgCompFields::GetForcePlainText(bool *aForcePlainText)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetForcePlainText(bool aForcePlainText)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useMultipartAlternative; */
NS_IMETHODIMP nsMsgCompFields::GetUseMultipartAlternative(bool *aUseMultipartAlternative)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetUseMultipartAlternative(bool aUseMultipartAlternative)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean bodyIsAsciiOnly; */
NS_IMETHODIMP nsMsgCompFields::GetBodyIsAsciiOnly(bool *aBodyIsAsciiOnly)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetBodyIsAsciiOnly(bool aBodyIsAsciiOnly)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean forceMsgEncoding; */
NS_IMETHODIMP nsMsgCompFields::GetForceMsgEncoding(bool *aForceMsgEncoding)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetForceMsgEncoding(bool aForceMsgEncoding)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString otherRandomHeaders; */
NS_IMETHODIMP nsMsgCompFields::GetOtherRandomHeaders(nsAString & aOtherRandomHeaders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetOtherRandomHeaders(const nsAString & aOtherRandomHeaders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString senderReply; */
NS_IMETHODIMP nsMsgCompFields::GetSenderReply(nsAString & aSenderReply)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetSenderReply(const nsAString & aSenderReply)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString allReply; */
NS_IMETHODIMP nsMsgCompFields::GetAllReply(nsAString & aAllReply)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetAllReply(const nsAString & aAllReply)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString listReply; */
NS_IMETHODIMP nsMsgCompFields::GetListReply(nsAString & aListReply)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetListReply(const nsAString & aListReply)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString body; */
NS_IMETHODIMP nsMsgCompFields::GetBody(nsAString & aBody)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetBody(const nsAString & aBody)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string temporaryFiles; */
NS_IMETHODIMP nsMsgCompFields::GetTemporaryFiles(char * *aTemporaryFiles)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetTemporaryFiles(const char * aTemporaryFiles)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator attachments; */
NS_IMETHODIMP nsMsgCompFields::GetAttachments(nsISimpleEnumerator * *aAttachments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAttachment (in nsIMsgAttachment attachment); */
NS_IMETHODIMP nsMsgCompFields::AddAttachment(nsIMsgAttachment *attachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAttachment (in nsIMsgAttachment attachment); */
NS_IMETHODIMP nsMsgCompFields::RemoveAttachment(nsIMsgAttachment *attachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAttachments (); */
NS_IMETHODIMP nsMsgCompFields::RemoveAttachments()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void splitRecipients (in AString aRecipients, in boolean aEmailAddressOnly, out unsigned long aLength, [array, size_is (aLength), retval] out wstring aResult); */
NS_IMETHODIMP nsMsgCompFields::SplitRecipients(const nsAString & aRecipients, bool aEmailAddressOnly, PRUint32 *aLength NS_OUTPARAM, PRUnichar * **aResult NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ConvertBodyToPlainText (); */
NS_IMETHODIMP nsMsgCompFields::ConvertBodyToPlainText()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean checkCharsetConversion (out string fallbackCharset); */
NS_IMETHODIMP nsMsgCompFields::CheckCharsetConversion(char * *fallbackCharset NS_OUTPARAM, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean needToCheckCharset; */
NS_IMETHODIMP nsMsgCompFields::GetNeedToCheckCharset(bool *aNeedToCheckCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetNeedToCheckCharset(bool aNeedToCheckCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISupports securityInfo; */
NS_IMETHODIMP nsMsgCompFields::GetSecurityInfo(nsISupports * *aSecurityInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgCompFields::SetSecurityInfo(nsISupports *aSecurityInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgCompFields_h__ */
