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

#ifndef __gen_nsIMsgGroupRecord_h__
#define __gen_nsIMsgGroupRecord_h__


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

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

/* starting interface:    nsIMsgGroupRecord */
#define NS_IMSGGROUPRECORD_IID_STR "4ed03c60-b256-11d2-b7f0-00805f05ffa5"

#define NS_IMSGGROUPRECORD_IID \
  {0x4ed03c60, 0xb256, 0x11d2, \
    { 0xb7, 0xf0, 0x00, 0x80, 0x5f, 0x05, 0xff, 0xa5 }}

class NS_NO_VTABLE nsIMsgGroupRecord : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGGROUPRECORD_IID)

  /* [noscript] void Init (in voidPtr parent, in string partname, in long long time, in long uniqueid, in long fileoffset, in char delimiter); */
  NS_IMETHOD Init(void * parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset, char delimiter) = 0;

  /* void InitFromParent (in nsIMsgGroupRecord parent, in string saveline, in long savelinelength, in long fileoffset); */
  NS_IMETHOD InitFromParent(nsIMsgGroupRecord *parent, const char *saveline, PRInt32 savelinelength, PRInt32 fileoffset) = 0;

  /* void InitFromFile (in nsIMsgGroupRecord parent, in string partname, in long long time, in long uniqueid, in long fileoffset); */
  NS_IMETHOD InitFromFile(nsIMsgGroupRecord *parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset) = 0;

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

  /* short GroupNameCompare (in string name1, in string name2, in char delimiter, in boolean caseSensitive); */
  NS_IMETHOD GroupNameCompare(const char *name1, const char *name2, char delimiter, PRBool caseSensitive, PRInt16 *_retval) = 0;

  /* nsIMsgGroupRecord FindDescendent (in string name); */
  NS_IMETHOD FindDescendent(const char *name, nsIMsgGroupRecord **_retval) = 0;

  /* readonly attribute nsIMsgGroupRecord parent; */
  NS_IMETHOD GetParent(nsIMsgGroupRecord * *aParent) = 0;

  /* readonly attribute nsIMsgGroupRecord children; */
  NS_IMETHOD GetChildren(nsIMsgGroupRecord * *aChildren) = 0;

  /* readonly attribute nsIMsgGroupRecord sibling; */
  NS_IMETHOD GetSibling(nsIMsgGroupRecord * *aSibling) = 0;

  /* nsIMsgGroupRecord GetSiblingOrAncestorSibling (); */
  NS_IMETHOD GetSiblingOrAncestorSibling(nsIMsgGroupRecord **_retval) = 0;

  /* nsIMsgGroupRecord GetNextAlphabetic (); */
  NS_IMETHOD GetNextAlphabetic(nsIMsgGroupRecord **_retval) = 0;

  /* nsIMsgGroupRecord GetNextAlphabeticNoCategories (); */
  NS_IMETHOD GetNextAlphabeticNoCategories(nsIMsgGroupRecord **_retval) = 0;

  /* readonly attribute string partName; */
  NS_IMETHOD GetPartName(char * *aPartName) = 0;

  /* readonly attribute string fullName; */
  NS_IMETHOD GetFullName(char * *aFullName) = 0;

  /* attribute string prettyName; */
  NS_IMETHOD GetPrettyName(char * *aPrettyName) = 0;
  NS_IMETHOD SetPrettyName(const char * aPrettyName) = 0;

  /* readonly attribute long long addTime; */
  NS_IMETHOD GetAddTime(PRInt64 *aAddTime) = 0;

  /* readonly attribute boolean isCategory; */
  NS_IMETHOD GetIsCategory(PRBool *aIsCategory) = 0;

  /* attribute boolean isCategoryContainer; */
  NS_IMETHOD GetIsCategoryContainer(PRBool *aIsCategoryContainer) = 0;
  NS_IMETHOD SetIsCategoryContainer(PRBool aIsCategoryContainer) = 0;

  /* readonly attribute nsIMsgGroupRecord categoryContainer; */
  NS_IMETHOD GetCategoryContainer(nsIMsgGroupRecord * *aCategoryContainer) = 0;

  /* attribute boolean isVirtual; */
  NS_IMETHOD GetIsVirtual(PRBool *aIsVirtual) = 0;
  NS_IMETHOD SetIsVirtual(PRBool aIsVirtual) = 0;

  /* attribute boolean isGroup; */
  NS_IMETHOD GetIsGroup(PRBool *aIsGroup) = 0;
  NS_IMETHOD SetIsGroup(PRBool aIsGroup) = 0;

  /* attribute boolean isExpanded; */
  NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded) = 0;
  NS_IMETHOD SetIsExpanded(PRBool aIsExpanded) = 0;

  /* attribute boolean isDescendentsLoaded; */
  NS_IMETHOD GetIsDescendentsLoaded(PRBool *aIsDescendentsLoaded) = 0;
  NS_IMETHOD SetIsDescendentsLoaded(PRBool aIsDescendentsLoaded) = 0;

  /* attribute boolean HTMLOkGroup; */
  NS_IMETHOD GetHTMLOkGroup(PRBool *aHTMLOkGroup) = 0;
  NS_IMETHOD SetHTMLOkGroup(PRBool aHTMLOkGroup) = 0;

  /* attribute boolean HTMLOkTree; */
  NS_IMETHOD GetHTMLOkTree(PRBool *aHTMLOkTree) = 0;
  NS_IMETHOD SetHTMLOkTree(PRBool aHTMLOkTree) = 0;

  /* attribute boolean needsExtraInfo; */
  NS_IMETHOD GetNeedsExtraInfo(PRBool *aNeedsExtraInfo) = 0;
  NS_IMETHOD SetNeedsExtraInfo(PRBool aNeedsExtraInfo) = 0;

  /* attribute boolean doesNotExistOnServer; */
  NS_IMETHOD GetDoesNotExistOnServer(PRBool *aDoesNotExistOnServer) = 0;
  NS_IMETHOD SetDoesNotExistOnServer(PRBool aDoesNotExistOnServer) = 0;

  /* readonly attribute long uniqueID; */
  NS_IMETHOD GetUniqueID(PRInt32 *aUniqueID) = 0;

  /* attribute long fileOffset; */
  NS_IMETHOD GetFileOffset(PRInt32 *aFileOffset) = 0;
  NS_IMETHOD SetFileOffset(PRInt32 aFileOffset) = 0;

  /* readonly attribute long numKids; */
  NS_IMETHOD GetNumKids(PRInt32 *aNumKids) = 0;

  /* readonly attribute string saveString; */
  NS_IMETHOD GetSaveString(char * *aSaveString) = 0;

  /* readonly attribute boolean dirty; */
  NS_IMETHOD GetDirty(PRBool *aDirty) = 0;

  /* readonly attribute long depth; */
  NS_IMETHOD GetDepth(PRInt32 *aDepth) = 0;

  /* readonly attribute char hierarchySeparator; */
  NS_IMETHOD GetHierarchySeparator(char *aHierarchySeparator) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGGROUPRECORD \
  NS_IMETHOD Init(void * parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset, char delimiter); \
  NS_IMETHOD InitFromParent(nsIMsgGroupRecord *parent, const char *saveline, PRInt32 savelinelength, PRInt32 fileoffset); \
  NS_IMETHOD InitFromFile(nsIMsgGroupRecord *parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset); \
  NS_IMETHOD InitializeSibling(void); \
  NS_IMETHOD GroupNameCompare(const char *name1, const char *name2, char delimiter, PRBool caseSensitive, PRInt16 *_retval); \
  NS_IMETHOD FindDescendent(const char *name, nsIMsgGroupRecord **_retval); \
  NS_IMETHOD GetParent(nsIMsgGroupRecord * *aParent); \
  NS_IMETHOD GetChildren(nsIMsgGroupRecord * *aChildren); \
  NS_IMETHOD GetSibling(nsIMsgGroupRecord * *aSibling); \
  NS_IMETHOD GetSiblingOrAncestorSibling(nsIMsgGroupRecord **_retval); \
  NS_IMETHOD GetNextAlphabetic(nsIMsgGroupRecord **_retval); \
  NS_IMETHOD GetNextAlphabeticNoCategories(nsIMsgGroupRecord **_retval); \
  NS_IMETHOD GetPartName(char * *aPartName); \
  NS_IMETHOD GetFullName(char * *aFullName); \
  NS_IMETHOD GetPrettyName(char * *aPrettyName); \
  NS_IMETHOD SetPrettyName(const char * aPrettyName); \
  NS_IMETHOD GetAddTime(PRInt64 *aAddTime); \
  NS_IMETHOD GetIsCategory(PRBool *aIsCategory); \
  NS_IMETHOD GetIsCategoryContainer(PRBool *aIsCategoryContainer); \
  NS_IMETHOD SetIsCategoryContainer(PRBool aIsCategoryContainer); \
  NS_IMETHOD GetCategoryContainer(nsIMsgGroupRecord * *aCategoryContainer); \
  NS_IMETHOD GetIsVirtual(PRBool *aIsVirtual); \
  NS_IMETHOD SetIsVirtual(PRBool aIsVirtual); \
  NS_IMETHOD GetIsGroup(PRBool *aIsGroup); \
  NS_IMETHOD SetIsGroup(PRBool aIsGroup); \
  NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded); \
  NS_IMETHOD SetIsExpanded(PRBool aIsExpanded); \
  NS_IMETHOD GetIsDescendentsLoaded(PRBool *aIsDescendentsLoaded); \
  NS_IMETHOD SetIsDescendentsLoaded(PRBool aIsDescendentsLoaded); \
  NS_IMETHOD GetHTMLOkGroup(PRBool *aHTMLOkGroup); \
  NS_IMETHOD SetHTMLOkGroup(PRBool aHTMLOkGroup); \
  NS_IMETHOD GetHTMLOkTree(PRBool *aHTMLOkTree); \
  NS_IMETHOD SetHTMLOkTree(PRBool aHTMLOkTree); \
  NS_IMETHOD GetNeedsExtraInfo(PRBool *aNeedsExtraInfo); \
  NS_IMETHOD SetNeedsExtraInfo(PRBool aNeedsExtraInfo); \
  NS_IMETHOD GetDoesNotExistOnServer(PRBool *aDoesNotExistOnServer); \
  NS_IMETHOD SetDoesNotExistOnServer(PRBool aDoesNotExistOnServer); \
  NS_IMETHOD GetUniqueID(PRInt32 *aUniqueID); \
  NS_IMETHOD GetFileOffset(PRInt32 *aFileOffset); \
  NS_IMETHOD SetFileOffset(PRInt32 aFileOffset); \
  NS_IMETHOD GetNumKids(PRInt32 *aNumKids); \
  NS_IMETHOD GetSaveString(char * *aSaveString); \
  NS_IMETHOD GetDirty(PRBool *aDirty); \
  NS_IMETHOD GetDepth(PRInt32 *aDepth); \
  NS_IMETHOD GetHierarchySeparator(char *aHierarchySeparator); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGGROUPRECORD(_to) \
  NS_IMETHOD Init(void * parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset, char delimiter) { return _to Init(parent, partname, time, uniqueid, fileoffset, delimiter); } \
  NS_IMETHOD InitFromParent(nsIMsgGroupRecord *parent, const char *saveline, PRInt32 savelinelength, PRInt32 fileoffset) { return _to InitFromParent(parent, saveline, savelinelength, fileoffset); } \
  NS_IMETHOD InitFromFile(nsIMsgGroupRecord *parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset) { return _to InitFromFile(parent, partname, time, uniqueid, fileoffset); } \
  NS_IMETHOD InitializeSibling(void) { return _to InitializeSibling(); } \
  NS_IMETHOD GroupNameCompare(const char *name1, const char *name2, char delimiter, PRBool caseSensitive, PRInt16 *_retval) { return _to GroupNameCompare(name1, name2, delimiter, caseSensitive, _retval); } \
  NS_IMETHOD FindDescendent(const char *name, nsIMsgGroupRecord **_retval) { return _to FindDescendent(name, _retval); } \
  NS_IMETHOD GetParent(nsIMsgGroupRecord * *aParent) { return _to GetParent(aParent); } \
  NS_IMETHOD GetChildren(nsIMsgGroupRecord * *aChildren) { return _to GetChildren(aChildren); } \
  NS_IMETHOD GetSibling(nsIMsgGroupRecord * *aSibling) { return _to GetSibling(aSibling); } \
  NS_IMETHOD GetSiblingOrAncestorSibling(nsIMsgGroupRecord **_retval) { return _to GetSiblingOrAncestorSibling(_retval); } \
  NS_IMETHOD GetNextAlphabetic(nsIMsgGroupRecord **_retval) { return _to GetNextAlphabetic(_retval); } \
  NS_IMETHOD GetNextAlphabeticNoCategories(nsIMsgGroupRecord **_retval) { return _to GetNextAlphabeticNoCategories(_retval); } \
  NS_IMETHOD GetPartName(char * *aPartName) { return _to GetPartName(aPartName); } \
  NS_IMETHOD GetFullName(char * *aFullName) { return _to GetFullName(aFullName); } \
  NS_IMETHOD GetPrettyName(char * *aPrettyName) { return _to GetPrettyName(aPrettyName); } \
  NS_IMETHOD SetPrettyName(const char * aPrettyName) { return _to SetPrettyName(aPrettyName); } \
  NS_IMETHOD GetAddTime(PRInt64 *aAddTime) { return _to GetAddTime(aAddTime); } \
  NS_IMETHOD GetIsCategory(PRBool *aIsCategory) { return _to GetIsCategory(aIsCategory); } \
  NS_IMETHOD GetIsCategoryContainer(PRBool *aIsCategoryContainer) { return _to GetIsCategoryContainer(aIsCategoryContainer); } \
  NS_IMETHOD SetIsCategoryContainer(PRBool aIsCategoryContainer) { return _to SetIsCategoryContainer(aIsCategoryContainer); } \
  NS_IMETHOD GetCategoryContainer(nsIMsgGroupRecord * *aCategoryContainer) { return _to GetCategoryContainer(aCategoryContainer); } \
  NS_IMETHOD GetIsVirtual(PRBool *aIsVirtual) { return _to GetIsVirtual(aIsVirtual); } \
  NS_IMETHOD SetIsVirtual(PRBool aIsVirtual) { return _to SetIsVirtual(aIsVirtual); } \
  NS_IMETHOD GetIsGroup(PRBool *aIsGroup) { return _to GetIsGroup(aIsGroup); } \
  NS_IMETHOD SetIsGroup(PRBool aIsGroup) { return _to SetIsGroup(aIsGroup); } \
  NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded) { return _to GetIsExpanded(aIsExpanded); } \
  NS_IMETHOD SetIsExpanded(PRBool aIsExpanded) { return _to SetIsExpanded(aIsExpanded); } \
  NS_IMETHOD GetIsDescendentsLoaded(PRBool *aIsDescendentsLoaded) { return _to GetIsDescendentsLoaded(aIsDescendentsLoaded); } \
  NS_IMETHOD SetIsDescendentsLoaded(PRBool aIsDescendentsLoaded) { return _to SetIsDescendentsLoaded(aIsDescendentsLoaded); } \
  NS_IMETHOD GetHTMLOkGroup(PRBool *aHTMLOkGroup) { return _to GetHTMLOkGroup(aHTMLOkGroup); } \
  NS_IMETHOD SetHTMLOkGroup(PRBool aHTMLOkGroup) { return _to SetHTMLOkGroup(aHTMLOkGroup); } \
  NS_IMETHOD GetHTMLOkTree(PRBool *aHTMLOkTree) { return _to GetHTMLOkTree(aHTMLOkTree); } \
  NS_IMETHOD SetHTMLOkTree(PRBool aHTMLOkTree) { return _to SetHTMLOkTree(aHTMLOkTree); } \
  NS_IMETHOD GetNeedsExtraInfo(PRBool *aNeedsExtraInfo) { return _to GetNeedsExtraInfo(aNeedsExtraInfo); } \
  NS_IMETHOD SetNeedsExtraInfo(PRBool aNeedsExtraInfo) { return _to SetNeedsExtraInfo(aNeedsExtraInfo); } \
  NS_IMETHOD GetDoesNotExistOnServer(PRBool *aDoesNotExistOnServer) { return _to GetDoesNotExistOnServer(aDoesNotExistOnServer); } \
  NS_IMETHOD SetDoesNotExistOnServer(PRBool aDoesNotExistOnServer) { return _to SetDoesNotExistOnServer(aDoesNotExistOnServer); } \
  NS_IMETHOD GetUniqueID(PRInt32 *aUniqueID) { return _to GetUniqueID(aUniqueID); } \
  NS_IMETHOD GetFileOffset(PRInt32 *aFileOffset) { return _to GetFileOffset(aFileOffset); } \
  NS_IMETHOD SetFileOffset(PRInt32 aFileOffset) { return _to SetFileOffset(aFileOffset); } \
  NS_IMETHOD GetNumKids(PRInt32 *aNumKids) { return _to GetNumKids(aNumKids); } \
  NS_IMETHOD GetSaveString(char * *aSaveString) { return _to GetSaveString(aSaveString); } \
  NS_IMETHOD GetDirty(PRBool *aDirty) { return _to GetDirty(aDirty); } \
  NS_IMETHOD GetDepth(PRInt32 *aDepth) { return _to GetDepth(aDepth); } \
  NS_IMETHOD GetHierarchySeparator(char *aHierarchySeparator) { return _to GetHierarchySeparator(aHierarchySeparator); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGGROUPRECORD(_to) \
  NS_IMETHOD Init(void * parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset, char delimiter) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(parent, partname, time, uniqueid, fileoffset, delimiter); } \
  NS_IMETHOD InitFromParent(nsIMsgGroupRecord *parent, const char *saveline, PRInt32 savelinelength, PRInt32 fileoffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitFromParent(parent, saveline, savelinelength, fileoffset); } \
  NS_IMETHOD InitFromFile(nsIMsgGroupRecord *parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitFromFile(parent, partname, time, uniqueid, fileoffset); } \
  NS_IMETHOD InitializeSibling(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitializeSibling(); } \
  NS_IMETHOD GroupNameCompare(const char *name1, const char *name2, char delimiter, PRBool caseSensitive, PRInt16 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GroupNameCompare(name1, name2, delimiter, caseSensitive, _retval); } \
  NS_IMETHOD FindDescendent(const char *name, nsIMsgGroupRecord **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindDescendent(name, _retval); } \
  NS_IMETHOD GetParent(nsIMsgGroupRecord * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD GetChildren(nsIMsgGroupRecord * *aChildren) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildren(aChildren); } \
  NS_IMETHOD GetSibling(nsIMsgGroupRecord * *aSibling) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSibling(aSibling); } \
  NS_IMETHOD GetSiblingOrAncestorSibling(nsIMsgGroupRecord **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSiblingOrAncestorSibling(_retval); } \
  NS_IMETHOD GetNextAlphabetic(nsIMsgGroupRecord **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNextAlphabetic(_retval); } \
  NS_IMETHOD GetNextAlphabeticNoCategories(nsIMsgGroupRecord **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNextAlphabeticNoCategories(_retval); } \
  NS_IMETHOD GetPartName(char * *aPartName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPartName(aPartName); } \
  NS_IMETHOD GetFullName(char * *aFullName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFullName(aFullName); } \
  NS_IMETHOD GetPrettyName(char * *aPrettyName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrettyName(aPrettyName); } \
  NS_IMETHOD SetPrettyName(const char * aPrettyName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPrettyName(aPrettyName); } \
  NS_IMETHOD GetAddTime(PRInt64 *aAddTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddTime(aAddTime); } \
  NS_IMETHOD GetIsCategory(PRBool *aIsCategory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsCategory(aIsCategory); } \
  NS_IMETHOD GetIsCategoryContainer(PRBool *aIsCategoryContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsCategoryContainer(aIsCategoryContainer); } \
  NS_IMETHOD SetIsCategoryContainer(PRBool aIsCategoryContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsCategoryContainer(aIsCategoryContainer); } \
  NS_IMETHOD GetCategoryContainer(nsIMsgGroupRecord * *aCategoryContainer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCategoryContainer(aCategoryContainer); } \
  NS_IMETHOD GetIsVirtual(PRBool *aIsVirtual) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsVirtual(aIsVirtual); } \
  NS_IMETHOD SetIsVirtual(PRBool aIsVirtual) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsVirtual(aIsVirtual); } \
  NS_IMETHOD GetIsGroup(PRBool *aIsGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsGroup(aIsGroup); } \
  NS_IMETHOD SetIsGroup(PRBool aIsGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsGroup(aIsGroup); } \
  NS_IMETHOD GetIsExpanded(PRBool *aIsExpanded) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsExpanded(aIsExpanded); } \
  NS_IMETHOD SetIsExpanded(PRBool aIsExpanded) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsExpanded(aIsExpanded); } \
  NS_IMETHOD GetIsDescendentsLoaded(PRBool *aIsDescendentsLoaded) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsDescendentsLoaded(aIsDescendentsLoaded); } \
  NS_IMETHOD SetIsDescendentsLoaded(PRBool aIsDescendentsLoaded) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsDescendentsLoaded(aIsDescendentsLoaded); } \
  NS_IMETHOD GetHTMLOkGroup(PRBool *aHTMLOkGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHTMLOkGroup(aHTMLOkGroup); } \
  NS_IMETHOD SetHTMLOkGroup(PRBool aHTMLOkGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHTMLOkGroup(aHTMLOkGroup); } \
  NS_IMETHOD GetHTMLOkTree(PRBool *aHTMLOkTree) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHTMLOkTree(aHTMLOkTree); } \
  NS_IMETHOD SetHTMLOkTree(PRBool aHTMLOkTree) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHTMLOkTree(aHTMLOkTree); } \
  NS_IMETHOD GetNeedsExtraInfo(PRBool *aNeedsExtraInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedsExtraInfo(aNeedsExtraInfo); } \
  NS_IMETHOD SetNeedsExtraInfo(PRBool aNeedsExtraInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNeedsExtraInfo(aNeedsExtraInfo); } \
  NS_IMETHOD GetDoesNotExistOnServer(PRBool *aDoesNotExistOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDoesNotExistOnServer(aDoesNotExistOnServer); } \
  NS_IMETHOD SetDoesNotExistOnServer(PRBool aDoesNotExistOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDoesNotExistOnServer(aDoesNotExistOnServer); } \
  NS_IMETHOD GetUniqueID(PRInt32 *aUniqueID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUniqueID(aUniqueID); } \
  NS_IMETHOD GetFileOffset(PRInt32 *aFileOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileOffset(aFileOffset); } \
  NS_IMETHOD SetFileOffset(PRInt32 aFileOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFileOffset(aFileOffset); } \
  NS_IMETHOD GetNumKids(PRInt32 *aNumKids) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumKids(aNumKids); } \
  NS_IMETHOD GetSaveString(char * *aSaveString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSaveString(aSaveString); } \
  NS_IMETHOD GetDirty(PRBool *aDirty) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirty(aDirty); } \
  NS_IMETHOD GetDepth(PRInt32 *aDepth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDepth(aDepth); } \
  NS_IMETHOD GetHierarchySeparator(char *aHierarchySeparator) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHierarchySeparator(aHierarchySeparator); } 

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

/* Header file */
class nsMsgGroupRecord : public nsIMsgGroupRecord
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGGROUPRECORD

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgGroupRecord, nsIMsgGroupRecord)

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

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

/* [noscript] void Init (in voidPtr parent, in string partname, in long long time, in long uniqueid, in long fileoffset, in char delimiter); */
NS_IMETHODIMP nsMsgGroupRecord::Init(void * parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset, char delimiter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InitFromParent (in nsIMsgGroupRecord parent, in string saveline, in long savelinelength, in long fileoffset); */
NS_IMETHODIMP nsMsgGroupRecord::InitFromParent(nsIMsgGroupRecord *parent, const char *saveline, PRInt32 savelinelength, PRInt32 fileoffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InitFromFile (in nsIMsgGroupRecord parent, in string partname, in long long time, in long uniqueid, in long fileoffset); */
NS_IMETHODIMP nsMsgGroupRecord::InitFromFile(nsIMsgGroupRecord *parent, const char *partname, PRInt64 time, PRInt32 uniqueid, PRInt32 fileoffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InitializeSibling (); */
NS_IMETHODIMP nsMsgGroupRecord::InitializeSibling()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* short GroupNameCompare (in string name1, in string name2, in char delimiter, in boolean caseSensitive); */
NS_IMETHODIMP nsMsgGroupRecord::GroupNameCompare(const char *name1, const char *name2, char delimiter, PRBool caseSensitive, PRInt16 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgGroupRecord FindDescendent (in string name); */
NS_IMETHODIMP nsMsgGroupRecord::FindDescendent(const char *name, nsIMsgGroupRecord **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgGroupRecord parent; */
NS_IMETHODIMP nsMsgGroupRecord::GetParent(nsIMsgGroupRecord * *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgGroupRecord children; */
NS_IMETHODIMP nsMsgGroupRecord::GetChildren(nsIMsgGroupRecord * *aChildren)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgGroupRecord sibling; */
NS_IMETHODIMP nsMsgGroupRecord::GetSibling(nsIMsgGroupRecord * *aSibling)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgGroupRecord GetSiblingOrAncestorSibling (); */
NS_IMETHODIMP nsMsgGroupRecord::GetSiblingOrAncestorSibling(nsIMsgGroupRecord **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgGroupRecord GetNextAlphabetic (); */
NS_IMETHODIMP nsMsgGroupRecord::GetNextAlphabetic(nsIMsgGroupRecord **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgGroupRecord GetNextAlphabeticNoCategories (); */
NS_IMETHODIMP nsMsgGroupRecord::GetNextAlphabeticNoCategories(nsIMsgGroupRecord **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string partName; */
NS_IMETHODIMP nsMsgGroupRecord::GetPartName(char * *aPartName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string fullName; */
NS_IMETHODIMP nsMsgGroupRecord::GetFullName(char * *aFullName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string prettyName; */
NS_IMETHODIMP nsMsgGroupRecord::GetPrettyName(char * *aPrettyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetPrettyName(const char * aPrettyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long addTime; */
NS_IMETHODIMP nsMsgGroupRecord::GetAddTime(PRInt64 *aAddTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isCategory; */
NS_IMETHODIMP nsMsgGroupRecord::GetIsCategory(PRBool *aIsCategory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isCategoryContainer; */
NS_IMETHODIMP nsMsgGroupRecord::GetIsCategoryContainer(PRBool *aIsCategoryContainer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetIsCategoryContainer(PRBool aIsCategoryContainer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgGroupRecord categoryContainer; */
NS_IMETHODIMP nsMsgGroupRecord::GetCategoryContainer(nsIMsgGroupRecord * *aCategoryContainer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isVirtual; */
NS_IMETHODIMP nsMsgGroupRecord::GetIsVirtual(PRBool *aIsVirtual)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetIsVirtual(PRBool aIsVirtual)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isGroup; */
NS_IMETHODIMP nsMsgGroupRecord::GetIsGroup(PRBool *aIsGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetIsGroup(PRBool aIsGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isExpanded; */
NS_IMETHODIMP nsMsgGroupRecord::GetIsExpanded(PRBool *aIsExpanded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetIsExpanded(PRBool aIsExpanded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isDescendentsLoaded; */
NS_IMETHODIMP nsMsgGroupRecord::GetIsDescendentsLoaded(PRBool *aIsDescendentsLoaded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetIsDescendentsLoaded(PRBool aIsDescendentsLoaded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean HTMLOkGroup; */
NS_IMETHODIMP nsMsgGroupRecord::GetHTMLOkGroup(PRBool *aHTMLOkGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetHTMLOkGroup(PRBool aHTMLOkGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean HTMLOkTree; */
NS_IMETHODIMP nsMsgGroupRecord::GetHTMLOkTree(PRBool *aHTMLOkTree)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetHTMLOkTree(PRBool aHTMLOkTree)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean needsExtraInfo; */
NS_IMETHODIMP nsMsgGroupRecord::GetNeedsExtraInfo(PRBool *aNeedsExtraInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetNeedsExtraInfo(PRBool aNeedsExtraInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean doesNotExistOnServer; */
NS_IMETHODIMP nsMsgGroupRecord::GetDoesNotExistOnServer(PRBool *aDoesNotExistOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetDoesNotExistOnServer(PRBool aDoesNotExistOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long uniqueID; */
NS_IMETHODIMP nsMsgGroupRecord::GetUniqueID(PRInt32 *aUniqueID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long fileOffset; */
NS_IMETHODIMP nsMsgGroupRecord::GetFileOffset(PRInt32 *aFileOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgGroupRecord::SetFileOffset(PRInt32 aFileOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long numKids; */
NS_IMETHODIMP nsMsgGroupRecord::GetNumKids(PRInt32 *aNumKids)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string saveString; */
NS_IMETHODIMP nsMsgGroupRecord::GetSaveString(char * *aSaveString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean dirty; */
NS_IMETHODIMP nsMsgGroupRecord::GetDirty(PRBool *aDirty)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long depth; */
NS_IMETHODIMP nsMsgGroupRecord::GetDepth(PRInt32 *aDepth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute char hierarchySeparator; */
NS_IMETHODIMP nsMsgGroupRecord::GetHierarchySeparator(char *aHierarchySeparator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgGroupRecord_h__ */
