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

#ifndef __gen_nsIMsgHdr_h__
#define __gen_nsIMsgHdr_h__


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

#ifndef __gen_MailNewsTypes2_h__
#include "MailNewsTypes2.h"
#endif

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

class nsIUTF8StringEnumerator; /* forward declaration */


/* starting interface:    nsIMsgDBHdr */
#define NS_IMSGDBHDR_IID_STR "3c11ddbe-c805-40c5-b9c9-d065fad5d0be"

#define NS_IMSGDBHDR_IID \
  {0x3c11ddbe, 0xc805, 0x40c5, \
    { 0xb9, 0xc9, 0xd0, 0x65, 0xfa, 0xd5, 0xd0, 0xbe }}

class NS_NO_VTABLE nsIMsgDBHdr : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGDBHDR_IID)

  /* AString getProperty (in string propertyName); */
  NS_IMETHOD GetProperty(const char * propertyName, nsAString & _retval) = 0;

  /* void setProperty (in string propertyName, in AString propertyStr); */
  NS_IMETHOD SetProperty(const char * propertyName, const nsAString & propertyStr) = 0;

  /* void setStringProperty (in string propertyName, in string propertyValue); */
  NS_IMETHOD SetStringProperty(const char * propertyName, const char * propertyValue) = 0;

  /* string getStringProperty (in string propertyName); */
  NS_IMETHOD GetStringProperty(const char * propertyName, char * *_retval) = 0;

  /* unsigned long getUint32Property (in string propertyName); */
  NS_IMETHOD GetUint32Property(const char * propertyName, uint32_t *_retval) = 0;

  /* void setUint32Property (in string propertyName, in unsigned long propertyVal); */
  NS_IMETHOD SetUint32Property(const char * propertyName, uint32_t propertyVal) = 0;

  /* readonly attribute boolean isRead; */
  NS_IMETHOD GetIsRead(bool *aIsRead) = 0;

  /* readonly attribute boolean isFlagged; */
  NS_IMETHOD GetIsFlagged(bool *aIsFlagged) = 0;

  /* readonly attribute boolean isKilled; */
  NS_IMETHOD GetIsKilled(bool *aIsKilled) = 0;

  /* void markRead (in boolean read); */
  NS_IMETHOD MarkRead(bool read) = 0;

  /* void markFlagged (in boolean flagged); */
  NS_IMETHOD MarkFlagged(bool flagged) = 0;

  /* void markHasAttachments (in boolean hasAttachments); */
  NS_IMETHOD MarkHasAttachments(bool hasAttachments) = 0;

  /* attribute nsMsgPriorityValue priority; */
  NS_IMETHOD GetPriority(nsMsgPriorityValue *aPriority) = 0;
  NS_IMETHOD SetPriority(nsMsgPriorityValue aPriority) = 0;

  /* void setPriorityString (in string priority); */
  NS_IMETHOD SetPriorityString(const char * priority) = 0;

  /* attribute unsigned long flags; */
  NS_IMETHOD GetFlags(uint32_t *aFlags) = 0;
  NS_IMETHOD SetFlags(uint32_t aFlags) = 0;

  /* unsigned long OrFlags (in unsigned long flags); */
  NS_IMETHOD OrFlags(uint32_t flags, uint32_t *_retval) = 0;

  /* unsigned long AndFlags (in unsigned long flags); */
  NS_IMETHOD AndFlags(uint32_t flags, uint32_t *_retval) = 0;

  /* attribute nsMsgKey threadId; */
  NS_IMETHOD GetThreadId(nsMsgKey *aThreadId) = 0;
  NS_IMETHOD SetThreadId(nsMsgKey aThreadId) = 0;

  /* attribute nsMsgKey messageKey; */
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) = 0;
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) = 0;

  /* attribute nsMsgKey threadParent; */
  NS_IMETHOD GetThreadParent(nsMsgKey *aThreadParent) = 0;
  NS_IMETHOD SetThreadParent(nsMsgKey aThreadParent) = 0;

  /* attribute unsigned long messageSize; */
  NS_IMETHOD GetMessageSize(uint32_t *aMessageSize) = 0;
  NS_IMETHOD SetMessageSize(uint32_t aMessageSize) = 0;

  /* attribute unsigned long lineCount; */
  NS_IMETHOD GetLineCount(uint32_t *aLineCount) = 0;
  NS_IMETHOD SetLineCount(uint32_t aLineCount) = 0;

  /* attribute unsigned long statusOffset; */
  NS_IMETHOD GetStatusOffset(uint32_t *aStatusOffset) = 0;
  NS_IMETHOD SetStatusOffset(uint32_t aStatusOffset) = 0;

  /* attribute unsigned long long messageOffset; */
  NS_IMETHOD GetMessageOffset(uint64_t *aMessageOffset) = 0;
  NS_IMETHOD SetMessageOffset(uint64_t aMessageOffset) = 0;

  /* attribute unsigned long offlineMessageSize; */
  NS_IMETHOD GetOfflineMessageSize(uint32_t *aOfflineMessageSize) = 0;
  NS_IMETHOD SetOfflineMessageSize(uint32_t aOfflineMessageSize) = 0;

  /* attribute PRTime date; */
  NS_IMETHOD GetDate(PRTime *aDate) = 0;
  NS_IMETHOD SetDate(PRTime aDate) = 0;

  /* readonly attribute unsigned long dateInSeconds; */
  NS_IMETHOD GetDateInSeconds(uint32_t *aDateInSeconds) = 0;

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

  /* attribute string ccList; */
  NS_IMETHOD GetCcList(char * *aCcList) = 0;
  NS_IMETHOD SetCcList(const char * aCcList) = 0;

  /* attribute string bccList; */
  NS_IMETHOD GetBccList(char * *aBccList) = 0;
  NS_IMETHOD SetBccList(const char * aBccList) = 0;

  /* attribute string author; */
  NS_IMETHOD GetAuthor(char * *aAuthor) = 0;
  NS_IMETHOD SetAuthor(const char * aAuthor) = 0;

  /* attribute string subject; */
  NS_IMETHOD GetSubject(char * *aSubject) = 0;
  NS_IMETHOD SetSubject(const char * aSubject) = 0;

  /* attribute string recipients; */
  NS_IMETHOD GetRecipients(char * *aRecipients) = 0;
  NS_IMETHOD SetRecipients(const char * aRecipients) = 0;

  /* void setReferences (in string references); */
  NS_IMETHOD SetReferences(const char * references) = 0;

  /* readonly attribute unsigned short numReferences; */
  NS_IMETHOD GetNumReferences(uint16_t *aNumReferences) = 0;

  /* ACString getStringReference (in long refNum); */
  NS_IMETHOD GetStringReference(int32_t refNum, nsACString & _retval) = 0;

  /* readonly attribute AString mime2DecodedAuthor; */
  NS_IMETHOD GetMime2DecodedAuthor(nsAString & aMime2DecodedAuthor) = 0;

  /* readonly attribute AString mime2DecodedSubject; */
  NS_IMETHOD GetMime2DecodedSubject(nsAString & aMime2DecodedSubject) = 0;

  /* readonly attribute AString mime2DecodedRecipients; */
  NS_IMETHOD GetMime2DecodedRecipients(nsAString & aMime2DecodedRecipients) = 0;

  /* void getAuthorCollationKey (out unsigned long aCount, [array, size_is (aCount)] out octet aKey); */
  NS_IMETHOD GetAuthorCollationKey(uint32_t *aCount, uint8_t **aKey) = 0;

  /* void getSubjectCollationKey (out unsigned long aCount, [array, size_is (aCount)] out octet aKey); */
  NS_IMETHOD GetSubjectCollationKey(uint32_t *aCount, uint8_t **aKey) = 0;

  /* void getRecipientsCollationKey (out unsigned long aCount, [array, size_is (aCount)] out octet aKey); */
  NS_IMETHOD GetRecipientsCollationKey(uint32_t *aCount, uint8_t **aKey) = 0;

  /* attribute string Charset; */
  NS_IMETHOD GetCharset(char * *aCharset) = 0;
  NS_IMETHOD SetCharset(const char * aCharset) = 0;

  /* readonly attribute ACString effectiveCharset; */
  NS_IMETHOD GetEffectiveCharset(nsACString & aEffectiveCharset) = 0;

  /* attribute nsMsgLabelValue label; */
  NS_IMETHOD GetLabel(nsMsgLabelValue *aLabel) = 0;
  NS_IMETHOD SetLabel(nsMsgLabelValue aLabel) = 0;

  /* attribute string accountKey; */
  NS_IMETHOD GetAccountKey(char * *aAccountKey) = 0;
  NS_IMETHOD SetAccountKey(const char * aAccountKey) = 0;

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

  /* readonly attribute nsIUTF8StringEnumerator propertyEnumerator; */
  NS_IMETHOD GetPropertyEnumerator(nsIUTF8StringEnumerator * *aPropertyEnumerator) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgDBHdr, NS_IMSGDBHDR_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGDBHDR \
  NS_IMETHOD GetProperty(const char * propertyName, nsAString & _retval) override; \
  NS_IMETHOD SetProperty(const char * propertyName, const nsAString & propertyStr) override; \
  NS_IMETHOD SetStringProperty(const char * propertyName, const char * propertyValue) override; \
  NS_IMETHOD GetStringProperty(const char * propertyName, char * *_retval) override; \
  NS_IMETHOD GetUint32Property(const char * propertyName, uint32_t *_retval) override; \
  NS_IMETHOD SetUint32Property(const char * propertyName, uint32_t propertyVal) override; \
  NS_IMETHOD GetIsRead(bool *aIsRead) override; \
  NS_IMETHOD GetIsFlagged(bool *aIsFlagged) override; \
  NS_IMETHOD GetIsKilled(bool *aIsKilled) override; \
  NS_IMETHOD MarkRead(bool read) override; \
  NS_IMETHOD MarkFlagged(bool flagged) override; \
  NS_IMETHOD MarkHasAttachments(bool hasAttachments) override; \
  NS_IMETHOD GetPriority(nsMsgPriorityValue *aPriority) override; \
  NS_IMETHOD SetPriority(nsMsgPriorityValue aPriority) override; \
  NS_IMETHOD SetPriorityString(const char * priority) override; \
  NS_IMETHOD GetFlags(uint32_t *aFlags) override; \
  NS_IMETHOD SetFlags(uint32_t aFlags) override; \
  NS_IMETHOD OrFlags(uint32_t flags, uint32_t *_retval) override; \
  NS_IMETHOD AndFlags(uint32_t flags, uint32_t *_retval) override; \
  NS_IMETHOD GetThreadId(nsMsgKey *aThreadId) override; \
  NS_IMETHOD SetThreadId(nsMsgKey aThreadId) override; \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override; \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) override; \
  NS_IMETHOD GetThreadParent(nsMsgKey *aThreadParent) override; \
  NS_IMETHOD SetThreadParent(nsMsgKey aThreadParent) override; \
  NS_IMETHOD GetMessageSize(uint32_t *aMessageSize) override; \
  NS_IMETHOD SetMessageSize(uint32_t aMessageSize) override; \
  NS_IMETHOD GetLineCount(uint32_t *aLineCount) override; \
  NS_IMETHOD SetLineCount(uint32_t aLineCount) override; \
  NS_IMETHOD GetStatusOffset(uint32_t *aStatusOffset) override; \
  NS_IMETHOD SetStatusOffset(uint32_t aStatusOffset) override; \
  NS_IMETHOD GetMessageOffset(uint64_t *aMessageOffset) override; \
  NS_IMETHOD SetMessageOffset(uint64_t aMessageOffset) override; \
  NS_IMETHOD GetOfflineMessageSize(uint32_t *aOfflineMessageSize) override; \
  NS_IMETHOD SetOfflineMessageSize(uint32_t aOfflineMessageSize) override; \
  NS_IMETHOD GetDate(PRTime *aDate) override; \
  NS_IMETHOD SetDate(PRTime aDate) override; \
  NS_IMETHOD GetDateInSeconds(uint32_t *aDateInSeconds) override; \
  NS_IMETHOD GetMessageId(char * *aMessageId) override; \
  NS_IMETHOD SetMessageId(const char * aMessageId) override; \
  NS_IMETHOD GetCcList(char * *aCcList) override; \
  NS_IMETHOD SetCcList(const char * aCcList) override; \
  NS_IMETHOD GetBccList(char * *aBccList) override; \
  NS_IMETHOD SetBccList(const char * aBccList) override; \
  NS_IMETHOD GetAuthor(char * *aAuthor) override; \
  NS_IMETHOD SetAuthor(const char * aAuthor) override; \
  NS_IMETHOD GetSubject(char * *aSubject) override; \
  NS_IMETHOD SetSubject(const char * aSubject) override; \
  NS_IMETHOD GetRecipients(char * *aRecipients) override; \
  NS_IMETHOD SetRecipients(const char * aRecipients) override; \
  NS_IMETHOD SetReferences(const char * references) override; \
  NS_IMETHOD GetNumReferences(uint16_t *aNumReferences) override; \
  NS_IMETHOD GetStringReference(int32_t refNum, nsACString & _retval) override; \
  NS_IMETHOD GetMime2DecodedAuthor(nsAString & aMime2DecodedAuthor) override; \
  NS_IMETHOD GetMime2DecodedSubject(nsAString & aMime2DecodedSubject) override; \
  NS_IMETHOD GetMime2DecodedRecipients(nsAString & aMime2DecodedRecipients) override; \
  NS_IMETHOD GetAuthorCollationKey(uint32_t *aCount, uint8_t **aKey) override; \
  NS_IMETHOD GetSubjectCollationKey(uint32_t *aCount, uint8_t **aKey) override; \
  NS_IMETHOD GetRecipientsCollationKey(uint32_t *aCount, uint8_t **aKey) override; \
  NS_IMETHOD GetCharset(char * *aCharset) override; \
  NS_IMETHOD SetCharset(const char * aCharset) override; \
  NS_IMETHOD GetEffectiveCharset(nsACString & aEffectiveCharset) override; \
  NS_IMETHOD GetLabel(nsMsgLabelValue *aLabel) override; \
  NS_IMETHOD SetLabel(nsMsgLabelValue aLabel) override; \
  NS_IMETHOD GetAccountKey(char * *aAccountKey) override; \
  NS_IMETHOD SetAccountKey(const char * aAccountKey) override; \
  NS_IMETHOD GetFolder(nsIMsgFolder * *aFolder) override; \
  NS_IMETHOD GetPropertyEnumerator(nsIUTF8StringEnumerator * *aPropertyEnumerator) override; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGDBHDR(_to) \
  NS_IMETHOD GetProperty(const char * propertyName, nsAString & _retval) override { return _to GetProperty(propertyName, _retval); } \
  NS_IMETHOD SetProperty(const char * propertyName, const nsAString & propertyStr) override { return _to SetProperty(propertyName, propertyStr); } \
  NS_IMETHOD SetStringProperty(const char * propertyName, const char * propertyValue) override { return _to SetStringProperty(propertyName, propertyValue); } \
  NS_IMETHOD GetStringProperty(const char * propertyName, char * *_retval) override { return _to GetStringProperty(propertyName, _retval); } \
  NS_IMETHOD GetUint32Property(const char * propertyName, uint32_t *_retval) override { return _to GetUint32Property(propertyName, _retval); } \
  NS_IMETHOD SetUint32Property(const char * propertyName, uint32_t propertyVal) override { return _to SetUint32Property(propertyName, propertyVal); } \
  NS_IMETHOD GetIsRead(bool *aIsRead) override { return _to GetIsRead(aIsRead); } \
  NS_IMETHOD GetIsFlagged(bool *aIsFlagged) override { return _to GetIsFlagged(aIsFlagged); } \
  NS_IMETHOD GetIsKilled(bool *aIsKilled) override { return _to GetIsKilled(aIsKilled); } \
  NS_IMETHOD MarkRead(bool read) override { return _to MarkRead(read); } \
  NS_IMETHOD MarkFlagged(bool flagged) override { return _to MarkFlagged(flagged); } \
  NS_IMETHOD MarkHasAttachments(bool hasAttachments) override { return _to MarkHasAttachments(hasAttachments); } \
  NS_IMETHOD GetPriority(nsMsgPriorityValue *aPriority) override { return _to GetPriority(aPriority); } \
  NS_IMETHOD SetPriority(nsMsgPriorityValue aPriority) override { return _to SetPriority(aPriority); } \
  NS_IMETHOD SetPriorityString(const char * priority) override { return _to SetPriorityString(priority); } \
  NS_IMETHOD GetFlags(uint32_t *aFlags) override { return _to GetFlags(aFlags); } \
  NS_IMETHOD SetFlags(uint32_t aFlags) override { return _to SetFlags(aFlags); } \
  NS_IMETHOD OrFlags(uint32_t flags, uint32_t *_retval) override { return _to OrFlags(flags, _retval); } \
  NS_IMETHOD AndFlags(uint32_t flags, uint32_t *_retval) override { return _to AndFlags(flags, _retval); } \
  NS_IMETHOD GetThreadId(nsMsgKey *aThreadId) override { return _to GetThreadId(aThreadId); } \
  NS_IMETHOD SetThreadId(nsMsgKey aThreadId) override { return _to SetThreadId(aThreadId); } \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override { return _to GetMessageKey(aMessageKey); } \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) override { return _to SetMessageKey(aMessageKey); } \
  NS_IMETHOD GetThreadParent(nsMsgKey *aThreadParent) override { return _to GetThreadParent(aThreadParent); } \
  NS_IMETHOD SetThreadParent(nsMsgKey aThreadParent) override { return _to SetThreadParent(aThreadParent); } \
  NS_IMETHOD GetMessageSize(uint32_t *aMessageSize) override { return _to GetMessageSize(aMessageSize); } \
  NS_IMETHOD SetMessageSize(uint32_t aMessageSize) override { return _to SetMessageSize(aMessageSize); } \
  NS_IMETHOD GetLineCount(uint32_t *aLineCount) override { return _to GetLineCount(aLineCount); } \
  NS_IMETHOD SetLineCount(uint32_t aLineCount) override { return _to SetLineCount(aLineCount); } \
  NS_IMETHOD GetStatusOffset(uint32_t *aStatusOffset) override { return _to GetStatusOffset(aStatusOffset); } \
  NS_IMETHOD SetStatusOffset(uint32_t aStatusOffset) override { return _to SetStatusOffset(aStatusOffset); } \
  NS_IMETHOD GetMessageOffset(uint64_t *aMessageOffset) override { return _to GetMessageOffset(aMessageOffset); } \
  NS_IMETHOD SetMessageOffset(uint64_t aMessageOffset) override { return _to SetMessageOffset(aMessageOffset); } \
  NS_IMETHOD GetOfflineMessageSize(uint32_t *aOfflineMessageSize) override { return _to GetOfflineMessageSize(aOfflineMessageSize); } \
  NS_IMETHOD SetOfflineMessageSize(uint32_t aOfflineMessageSize) override { return _to SetOfflineMessageSize(aOfflineMessageSize); } \
  NS_IMETHOD GetDate(PRTime *aDate) override { return _to GetDate(aDate); } \
  NS_IMETHOD SetDate(PRTime aDate) override { return _to SetDate(aDate); } \
  NS_IMETHOD GetDateInSeconds(uint32_t *aDateInSeconds) override { return _to GetDateInSeconds(aDateInSeconds); } \
  NS_IMETHOD GetMessageId(char * *aMessageId) override { return _to GetMessageId(aMessageId); } \
  NS_IMETHOD SetMessageId(const char * aMessageId) override { return _to SetMessageId(aMessageId); } \
  NS_IMETHOD GetCcList(char * *aCcList) override { return _to GetCcList(aCcList); } \
  NS_IMETHOD SetCcList(const char * aCcList) override { return _to SetCcList(aCcList); } \
  NS_IMETHOD GetBccList(char * *aBccList) override { return _to GetBccList(aBccList); } \
  NS_IMETHOD SetBccList(const char * aBccList) override { return _to SetBccList(aBccList); } \
  NS_IMETHOD GetAuthor(char * *aAuthor) override { return _to GetAuthor(aAuthor); } \
  NS_IMETHOD SetAuthor(const char * aAuthor) override { return _to SetAuthor(aAuthor); } \
  NS_IMETHOD GetSubject(char * *aSubject) override { return _to GetSubject(aSubject); } \
  NS_IMETHOD SetSubject(const char * aSubject) override { return _to SetSubject(aSubject); } \
  NS_IMETHOD GetRecipients(char * *aRecipients) override { return _to GetRecipients(aRecipients); } \
  NS_IMETHOD SetRecipients(const char * aRecipients) override { return _to SetRecipients(aRecipients); } \
  NS_IMETHOD SetReferences(const char * references) override { return _to SetReferences(references); } \
  NS_IMETHOD GetNumReferences(uint16_t *aNumReferences) override { return _to GetNumReferences(aNumReferences); } \
  NS_IMETHOD GetStringReference(int32_t refNum, nsACString & _retval) override { return _to GetStringReference(refNum, _retval); } \
  NS_IMETHOD GetMime2DecodedAuthor(nsAString & aMime2DecodedAuthor) override { return _to GetMime2DecodedAuthor(aMime2DecodedAuthor); } \
  NS_IMETHOD GetMime2DecodedSubject(nsAString & aMime2DecodedSubject) override { return _to GetMime2DecodedSubject(aMime2DecodedSubject); } \
  NS_IMETHOD GetMime2DecodedRecipients(nsAString & aMime2DecodedRecipients) override { return _to GetMime2DecodedRecipients(aMime2DecodedRecipients); } \
  NS_IMETHOD GetAuthorCollationKey(uint32_t *aCount, uint8_t **aKey) override { return _to GetAuthorCollationKey(aCount, aKey); } \
  NS_IMETHOD GetSubjectCollationKey(uint32_t *aCount, uint8_t **aKey) override { return _to GetSubjectCollationKey(aCount, aKey); } \
  NS_IMETHOD GetRecipientsCollationKey(uint32_t *aCount, uint8_t **aKey) override { return _to GetRecipientsCollationKey(aCount, aKey); } \
  NS_IMETHOD GetCharset(char * *aCharset) override { return _to GetCharset(aCharset); } \
  NS_IMETHOD SetCharset(const char * aCharset) override { return _to SetCharset(aCharset); } \
  NS_IMETHOD GetEffectiveCharset(nsACString & aEffectiveCharset) override { return _to GetEffectiveCharset(aEffectiveCharset); } \
  NS_IMETHOD GetLabel(nsMsgLabelValue *aLabel) override { return _to GetLabel(aLabel); } \
  NS_IMETHOD SetLabel(nsMsgLabelValue aLabel) override { return _to SetLabel(aLabel); } \
  NS_IMETHOD GetAccountKey(char * *aAccountKey) override { return _to GetAccountKey(aAccountKey); } \
  NS_IMETHOD SetAccountKey(const char * aAccountKey) override { return _to SetAccountKey(aAccountKey); } \
  NS_IMETHOD GetFolder(nsIMsgFolder * *aFolder) override { return _to GetFolder(aFolder); } \
  NS_IMETHOD GetPropertyEnumerator(nsIUTF8StringEnumerator * *aPropertyEnumerator) override { return _to GetPropertyEnumerator(aPropertyEnumerator); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGDBHDR(_to) \
  NS_IMETHOD GetProperty(const char * propertyName, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(propertyName, _retval); } \
  NS_IMETHOD SetProperty(const char * propertyName, const nsAString & propertyStr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProperty(propertyName, propertyStr); } \
  NS_IMETHOD SetStringProperty(const char * propertyName, const char * propertyValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStringProperty(propertyName, propertyValue); } \
  NS_IMETHOD GetStringProperty(const char * propertyName, char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStringProperty(propertyName, _retval); } \
  NS_IMETHOD GetUint32Property(const char * propertyName, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUint32Property(propertyName, _retval); } \
  NS_IMETHOD SetUint32Property(const char * propertyName, uint32_t propertyVal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUint32Property(propertyName, propertyVal); } \
  NS_IMETHOD GetIsRead(bool *aIsRead) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsRead(aIsRead); } \
  NS_IMETHOD GetIsFlagged(bool *aIsFlagged) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsFlagged(aIsFlagged); } \
  NS_IMETHOD GetIsKilled(bool *aIsKilled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsKilled(aIsKilled); } \
  NS_IMETHOD MarkRead(bool read) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkRead(read); } \
  NS_IMETHOD MarkFlagged(bool flagged) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkFlagged(flagged); } \
  NS_IMETHOD MarkHasAttachments(bool hasAttachments) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MarkHasAttachments(hasAttachments); } \
  NS_IMETHOD GetPriority(nsMsgPriorityValue *aPriority) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPriority(aPriority); } \
  NS_IMETHOD SetPriority(nsMsgPriorityValue aPriority) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPriority(aPriority); } \
  NS_IMETHOD SetPriorityString(const char * priority) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPriorityString(priority); } \
  NS_IMETHOD GetFlags(uint32_t *aFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlags(aFlags); } \
  NS_IMETHOD SetFlags(uint32_t aFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFlags(aFlags); } \
  NS_IMETHOD OrFlags(uint32_t flags, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OrFlags(flags, _retval); } \
  NS_IMETHOD AndFlags(uint32_t flags, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AndFlags(flags, _retval); } \
  NS_IMETHOD GetThreadId(nsMsgKey *aThreadId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetThreadId(aThreadId); } \
  NS_IMETHOD SetThreadId(nsMsgKey aThreadId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetThreadId(aThreadId); } \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageKey(aMessageKey); } \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageKey(aMessageKey); } \
  NS_IMETHOD GetThreadParent(nsMsgKey *aThreadParent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetThreadParent(aThreadParent); } \
  NS_IMETHOD SetThreadParent(nsMsgKey aThreadParent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetThreadParent(aThreadParent); } \
  NS_IMETHOD GetMessageSize(uint32_t *aMessageSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageSize(aMessageSize); } \
  NS_IMETHOD SetMessageSize(uint32_t aMessageSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageSize(aMessageSize); } \
  NS_IMETHOD GetLineCount(uint32_t *aLineCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLineCount(aLineCount); } \
  NS_IMETHOD SetLineCount(uint32_t aLineCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLineCount(aLineCount); } \
  NS_IMETHOD GetStatusOffset(uint32_t *aStatusOffset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatusOffset(aStatusOffset); } \
  NS_IMETHOD SetStatusOffset(uint32_t aStatusOffset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStatusOffset(aStatusOffset); } \
  NS_IMETHOD GetMessageOffset(uint64_t *aMessageOffset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageOffset(aMessageOffset); } \
  NS_IMETHOD SetMessageOffset(uint64_t aMessageOffset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageOffset(aMessageOffset); } \
  NS_IMETHOD GetOfflineMessageSize(uint32_t *aOfflineMessageSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOfflineMessageSize(aOfflineMessageSize); } \
  NS_IMETHOD SetOfflineMessageSize(uint32_t aOfflineMessageSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOfflineMessageSize(aOfflineMessageSize); } \
  NS_IMETHOD GetDate(PRTime *aDate) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDate(aDate); } \
  NS_IMETHOD SetDate(PRTime aDate) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDate(aDate); } \
  NS_IMETHOD GetDateInSeconds(uint32_t *aDateInSeconds) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDateInSeconds(aDateInSeconds); } \
  NS_IMETHOD GetMessageId(char * *aMessageId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageId(aMessageId); } \
  NS_IMETHOD SetMessageId(const char * aMessageId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageId(aMessageId); } \
  NS_IMETHOD GetCcList(char * *aCcList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCcList(aCcList); } \
  NS_IMETHOD SetCcList(const char * aCcList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCcList(aCcList); } \
  NS_IMETHOD GetBccList(char * *aBccList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBccList(aBccList); } \
  NS_IMETHOD SetBccList(const char * aBccList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBccList(aBccList); } \
  NS_IMETHOD GetAuthor(char * *aAuthor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthor(aAuthor); } \
  NS_IMETHOD SetAuthor(const char * aAuthor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthor(aAuthor); } \
  NS_IMETHOD GetSubject(char * *aSubject) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubject(aSubject); } \
  NS_IMETHOD SetSubject(const char * aSubject) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSubject(aSubject); } \
  NS_IMETHOD GetRecipients(char * *aRecipients) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecipients(aRecipients); } \
  NS_IMETHOD SetRecipients(const char * aRecipients) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecipients(aRecipients); } \
  NS_IMETHOD SetReferences(const char * references) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReferences(references); } \
  NS_IMETHOD GetNumReferences(uint16_t *aNumReferences) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumReferences(aNumReferences); } \
  NS_IMETHOD GetStringReference(int32_t refNum, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStringReference(refNum, _retval); } \
  NS_IMETHOD GetMime2DecodedAuthor(nsAString & aMime2DecodedAuthor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMime2DecodedAuthor(aMime2DecodedAuthor); } \
  NS_IMETHOD GetMime2DecodedSubject(nsAString & aMime2DecodedSubject) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMime2DecodedSubject(aMime2DecodedSubject); } \
  NS_IMETHOD GetMime2DecodedRecipients(nsAString & aMime2DecodedRecipients) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMime2DecodedRecipients(aMime2DecodedRecipients); } \
  NS_IMETHOD GetAuthorCollationKey(uint32_t *aCount, uint8_t **aKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthorCollationKey(aCount, aKey); } \
  NS_IMETHOD GetSubjectCollationKey(uint32_t *aCount, uint8_t **aKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubjectCollationKey(aCount, aKey); } \
  NS_IMETHOD GetRecipientsCollationKey(uint32_t *aCount, uint8_t **aKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecipientsCollationKey(aCount, aKey); } \
  NS_IMETHOD GetCharset(char * *aCharset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharset(aCharset); } \
  NS_IMETHOD SetCharset(const char * aCharset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharset(aCharset); } \
  NS_IMETHOD GetEffectiveCharset(nsACString & aEffectiveCharset) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEffectiveCharset(aEffectiveCharset); } \
  NS_IMETHOD GetLabel(nsMsgLabelValue *aLabel) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLabel(aLabel); } \
  NS_IMETHOD SetLabel(nsMsgLabelValue aLabel) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLabel(aLabel); } \
  NS_IMETHOD GetAccountKey(char * *aAccountKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountKey(aAccountKey); } \
  NS_IMETHOD SetAccountKey(const char * aAccountKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAccountKey(aAccountKey); } \
  NS_IMETHOD GetFolder(nsIMsgFolder * *aFolder) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolder(aFolder); } \
  NS_IMETHOD GetPropertyEnumerator(nsIUTF8StringEnumerator * *aPropertyEnumerator) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertyEnumerator(aPropertyEnumerator); } 

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

/* Header file */
class nsMsgDBHdr : public nsIMsgDBHdr
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGDBHDR

  nsMsgDBHdr();

private:
  ~nsMsgDBHdr();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgDBHdr, nsIMsgDBHdr)

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

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

/* AString getProperty (in string propertyName); */
NS_IMETHODIMP nsMsgDBHdr::GetProperty(const char * propertyName, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProperty (in string propertyName, in AString propertyStr); */
NS_IMETHODIMP nsMsgDBHdr::SetProperty(const char * propertyName, const nsAString & propertyStr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setStringProperty (in string propertyName, in string propertyValue); */
NS_IMETHODIMP nsMsgDBHdr::SetStringProperty(const char * propertyName, const char * propertyValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string getStringProperty (in string propertyName); */
NS_IMETHODIMP nsMsgDBHdr::GetStringProperty(const char * propertyName, char * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long getUint32Property (in string propertyName); */
NS_IMETHODIMP nsMsgDBHdr::GetUint32Property(const char * propertyName, uint32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setUint32Property (in string propertyName, in unsigned long propertyVal); */
NS_IMETHODIMP nsMsgDBHdr::SetUint32Property(const char * propertyName, uint32_t propertyVal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isRead; */
NS_IMETHODIMP nsMsgDBHdr::GetIsRead(bool *aIsRead)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isFlagged; */
NS_IMETHODIMP nsMsgDBHdr::GetIsFlagged(bool *aIsFlagged)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isKilled; */
NS_IMETHODIMP nsMsgDBHdr::GetIsKilled(bool *aIsKilled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void markRead (in boolean read); */
NS_IMETHODIMP nsMsgDBHdr::MarkRead(bool read)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void markFlagged (in boolean flagged); */
NS_IMETHODIMP nsMsgDBHdr::MarkFlagged(bool flagged)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void markHasAttachments (in boolean hasAttachments); */
NS_IMETHODIMP nsMsgDBHdr::MarkHasAttachments(bool hasAttachments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgPriorityValue priority; */
NS_IMETHODIMP nsMsgDBHdr::GetPriority(nsMsgPriorityValue *aPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetPriority(nsMsgPriorityValue aPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setPriorityString (in string priority); */
NS_IMETHODIMP nsMsgDBHdr::SetPriorityString(const char * priority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long flags; */
NS_IMETHODIMP nsMsgDBHdr::GetFlags(uint32_t *aFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetFlags(uint32_t aFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long OrFlags (in unsigned long flags); */
NS_IMETHODIMP nsMsgDBHdr::OrFlags(uint32_t flags, uint32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long AndFlags (in unsigned long flags); */
NS_IMETHODIMP nsMsgDBHdr::AndFlags(uint32_t flags, uint32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgKey threadId; */
NS_IMETHODIMP nsMsgDBHdr::GetThreadId(nsMsgKey *aThreadId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetThreadId(nsMsgKey aThreadId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgKey messageKey; */
NS_IMETHODIMP nsMsgDBHdr::GetMessageKey(nsMsgKey *aMessageKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetMessageKey(nsMsgKey aMessageKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgKey threadParent; */
NS_IMETHODIMP nsMsgDBHdr::GetThreadParent(nsMsgKey *aThreadParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetThreadParent(nsMsgKey aThreadParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long messageSize; */
NS_IMETHODIMP nsMsgDBHdr::GetMessageSize(uint32_t *aMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetMessageSize(uint32_t aMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long lineCount; */
NS_IMETHODIMP nsMsgDBHdr::GetLineCount(uint32_t *aLineCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetLineCount(uint32_t aLineCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long statusOffset; */
NS_IMETHODIMP nsMsgDBHdr::GetStatusOffset(uint32_t *aStatusOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetStatusOffset(uint32_t aStatusOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long long messageOffset; */
NS_IMETHODIMP nsMsgDBHdr::GetMessageOffset(uint64_t *aMessageOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetMessageOffset(uint64_t aMessageOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long offlineMessageSize; */
NS_IMETHODIMP nsMsgDBHdr::GetOfflineMessageSize(uint32_t *aOfflineMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetOfflineMessageSize(uint32_t aOfflineMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRTime date; */
NS_IMETHODIMP nsMsgDBHdr::GetDate(PRTime *aDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetDate(PRTime aDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long dateInSeconds; */
NS_IMETHODIMP nsMsgDBHdr::GetDateInSeconds(uint32_t *aDateInSeconds)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute string ccList; */
NS_IMETHODIMP nsMsgDBHdr::GetCcList(char * *aCcList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetCcList(const char * aCcList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string bccList; */
NS_IMETHODIMP nsMsgDBHdr::GetBccList(char * *aBccList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetBccList(const char * aBccList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string author; */
NS_IMETHODIMP nsMsgDBHdr::GetAuthor(char * *aAuthor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetAuthor(const char * aAuthor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string subject; */
NS_IMETHODIMP nsMsgDBHdr::GetSubject(char * *aSubject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetSubject(const char * aSubject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string recipients; */
NS_IMETHODIMP nsMsgDBHdr::GetRecipients(char * *aRecipients)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetRecipients(const char * aRecipients)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setReferences (in string references); */
NS_IMETHODIMP nsMsgDBHdr::SetReferences(const char * references)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short numReferences; */
NS_IMETHODIMP nsMsgDBHdr::GetNumReferences(uint16_t *aNumReferences)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getStringReference (in long refNum); */
NS_IMETHODIMP nsMsgDBHdr::GetStringReference(int32_t refNum, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString mime2DecodedAuthor; */
NS_IMETHODIMP nsMsgDBHdr::GetMime2DecodedAuthor(nsAString & aMime2DecodedAuthor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString mime2DecodedSubject; */
NS_IMETHODIMP nsMsgDBHdr::GetMime2DecodedSubject(nsAString & aMime2DecodedSubject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString mime2DecodedRecipients; */
NS_IMETHODIMP nsMsgDBHdr::GetMime2DecodedRecipients(nsAString & aMime2DecodedRecipients)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAuthorCollationKey (out unsigned long aCount, [array, size_is (aCount)] out octet aKey); */
NS_IMETHODIMP nsMsgDBHdr::GetAuthorCollationKey(uint32_t *aCount, uint8_t **aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSubjectCollationKey (out unsigned long aCount, [array, size_is (aCount)] out octet aKey); */
NS_IMETHODIMP nsMsgDBHdr::GetSubjectCollationKey(uint32_t *aCount, uint8_t **aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRecipientsCollationKey (out unsigned long aCount, [array, size_is (aCount)] out octet aKey); */
NS_IMETHODIMP nsMsgDBHdr::GetRecipientsCollationKey(uint32_t *aCount, uint8_t **aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string Charset; */
NS_IMETHODIMP nsMsgDBHdr::GetCharset(char * *aCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetCharset(const char * aCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString effectiveCharset; */
NS_IMETHODIMP nsMsgDBHdr::GetEffectiveCharset(nsACString & aEffectiveCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgLabelValue label; */
NS_IMETHODIMP nsMsgDBHdr::GetLabel(nsMsgLabelValue *aLabel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetLabel(nsMsgLabelValue aLabel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string accountKey; */
NS_IMETHODIMP nsMsgDBHdr::GetAccountKey(char * *aAccountKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgDBHdr::SetAccountKey(const char * aAccountKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgFolder folder; */
NS_IMETHODIMP nsMsgDBHdr::GetFolder(nsIMsgFolder * *aFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIUTF8StringEnumerator propertyEnumerator; */
NS_IMETHODIMP nsMsgDBHdr::GetPropertyEnumerator(nsIUTF8StringEnumerator * *aPropertyEnumerator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgHdr_h__ */
