/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/addrbook/public/nsIAbDirectory.idl
 */

#ifndef __gen_nsIAbDirectory_h__
#define __gen_nsIAbDirectory_h__


#ifndef __gen_nsIAbCollection_h__
#include "nsIAbCollection.h"
#endif

#ifndef __gen_nsIAbCard_h__
#include "nsIAbCard.h"
#endif

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

class nsIArray; /* forward declaration */

class nsIMutableArray; /* forward declaration */

#define kAllDirectoryRoot          "moz-abdirectory://"
#define kPersonalAddressbook       "abook.mab"
#define kPersonalAddressbookUri    "moz-abmdbdirectory://abook.mab"
#define kCollectedAddressbook      "history.mab"
#define kCollectedAddressbookUri   "moz-abmdbdirectory://history.mab"
#define kABFileName_PreviousSuffix ".na2" /* final v2 address book format */
#define kABFileName_PreviousSuffixLen 4
#define kABFileName_CurrentSuffix ".mab"  /* v3 address book extension */

/* starting interface:    nsIAbDirectory */
#define NS_IABDIRECTORY_IID_STR "72dc868b-db5b-4daa-b6c6-071be4a05d02"

#define NS_IABDIRECTORY_IID \
  {0x72dc868b, 0xdb5b, 0x4daa, \
    { 0xb6, 0xc6, 0x07, 0x1b, 0xe4, 0xa0, 0x5d, 0x02 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIAbDirectory : public nsIAbCollection {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABDIRECTORY_IID)

  /* readonly attribute ACString propertiesChromeURI; */
  NS_SCRIPTABLE NS_IMETHOD GetPropertiesChromeURI(nsACString & aPropertiesChromeURI) = 0;

  /* attribute AString dirName; */
  NS_SCRIPTABLE NS_IMETHOD GetDirName(nsAString & aDirName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDirName(const nsAString & aDirName) = 0;

  /* readonly attribute long dirType; */
  NS_SCRIPTABLE NS_IMETHOD GetDirType(PRInt32 *aDirType) = 0;

  /* readonly attribute ACString fileName; */
  NS_SCRIPTABLE NS_IMETHOD GetFileName(nsACString & aFileName) = 0;

  /* readonly attribute ACString URI; */
  NS_SCRIPTABLE NS_IMETHOD GetURI(nsACString & aURI) = 0;

  /* readonly attribute long position; */
  NS_SCRIPTABLE NS_IMETHOD GetPosition(PRInt32 *aPosition) = 0;

  /* attribute unsigned long lastModifiedDate; */
  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedDate(PRUint32 *aLastModifiedDate) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedDate(PRUint32 aLastModifiedDate) = 0;

  /* attribute boolean isMailList; */
  NS_SCRIPTABLE NS_IMETHOD GetIsMailList(bool *aIsMailList) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetIsMailList(bool aIsMailList) = 0;

  /* readonly attribute nsISimpleEnumerator childNodes; */
  NS_SCRIPTABLE NS_IMETHOD GetChildNodes(nsISimpleEnumerator * *aChildNodes) = 0;

  /* readonly attribute nsISimpleEnumerator childCards; */
  NS_SCRIPTABLE NS_IMETHOD GetChildCards(nsISimpleEnumerator * *aChildCards) = 0;

  /* readonly attribute boolean isQuery; */
  NS_SCRIPTABLE NS_IMETHOD GetIsQuery(bool *aIsQuery) = 0;

  /* void init (in string aURI); */
  NS_SCRIPTABLE NS_IMETHOD Init(const char * aURI) = 0;

  /* void deleteDirectory (in nsIAbDirectory directory); */
  NS_SCRIPTABLE NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory) = 0;

  /* boolean hasCard (in nsIAbCard cards); */
  NS_SCRIPTABLE NS_IMETHOD HasCard(nsIAbCard *cards, bool *_retval NS_OUTPARAM) = 0;

  /* boolean hasDirectory (in nsIAbDirectory dir); */
  NS_SCRIPTABLE NS_IMETHOD HasDirectory(nsIAbDirectory *dir, bool *_retval NS_OUTPARAM) = 0;

  /* nsIAbCard addCard (in nsIAbCard card); */
  NS_SCRIPTABLE NS_IMETHOD AddCard(nsIAbCard *card, nsIAbCard * *_retval NS_OUTPARAM) = 0;

  /* void modifyCard (in nsIAbCard modifiedCard); */
  NS_SCRIPTABLE NS_IMETHOD ModifyCard(nsIAbCard *modifiedCard) = 0;

  /* void deleteCards (in nsIArray aCards); */
  NS_SCRIPTABLE NS_IMETHOD DeleteCards(nsIArray *aCards) = 0;

  /* void dropCard (in nsIAbCard card, in boolean needToCopyCard); */
  NS_SCRIPTABLE NS_IMETHOD DropCard(nsIAbCard *card, bool needToCopyCard) = 0;

  /* boolean useForAutocomplete (in ACString aIdentityKey); */
  NS_SCRIPTABLE NS_IMETHOD UseForAutocomplete(const nsACString & aIdentityKey, bool *_retval NS_OUTPARAM) = 0;

  /* readonly attribute boolean supportsMailingLists; */
  NS_SCRIPTABLE NS_IMETHOD GetSupportsMailingLists(bool *aSupportsMailingLists) = 0;

  /* attribute nsIMutableArray addressLists; */
  NS_SCRIPTABLE NS_IMETHOD GetAddressLists(nsIMutableArray * *aAddressLists) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetAddressLists(nsIMutableArray *aAddressLists) = 0;

  /* nsIAbDirectory addMailList (in nsIAbDirectory list); */
  NS_SCRIPTABLE NS_IMETHOD AddMailList(nsIAbDirectory *list, nsIAbDirectory * *_retval NS_OUTPARAM) = 0;

  /* attribute AString listNickName; */
  NS_SCRIPTABLE NS_IMETHOD GetListNickName(nsAString & aListNickName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetListNickName(const nsAString & aListNickName) = 0;

  /* attribute AString description; */
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsAString & aDescription) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsAString & aDescription) = 0;

  /* void editMailListToDatabase (in nsIAbCard listCard); */
  NS_SCRIPTABLE NS_IMETHOD EditMailListToDatabase(nsIAbCard *listCard) = 0;

  /* void copyMailList (in nsIAbDirectory srcList); */
  NS_SCRIPTABLE NS_IMETHOD CopyMailList(nsIAbDirectory *srcList) = 0;

  /* ACString createNewDirectory (in AString aDirName, in ACString aURI, in unsigned long aType, in ACString aPrefName); */
  NS_SCRIPTABLE NS_IMETHOD CreateNewDirectory(const nsAString & aDirName, const nsACString & aURI, PRUint32 aType, const nsACString & aPrefName, nsACString & _retval NS_OUTPARAM) = 0;

  /* void createDirectoryByURI (in AString displayName, in ACString aURI); */
  NS_SCRIPTABLE NS_IMETHOD CreateDirectoryByURI(const nsAString & displayName, const nsACString & aURI) = 0;

  /* attribute ACString dirPrefId; */
  NS_SCRIPTABLE NS_IMETHOD GetDirPrefId(nsACString & aDirPrefId) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDirPrefId(const nsACString & aDirPrefId) = 0;

  /* long getIntValue (in string aName, in long aDefaultValue); */
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char * aName, PRInt32 aDefaultValue, PRInt32 *_retval NS_OUTPARAM) = 0;

  /* boolean getBoolValue (in string aName, in boolean aDefaultValue); */
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char * aName, bool aDefaultValue, bool *_retval NS_OUTPARAM) = 0;

  /* ACString getStringValue (in string aName, in ACString aDefaultValue); */
  NS_SCRIPTABLE NS_IMETHOD GetStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM) = 0;

  /* AUTF8String getLocalizedStringValue (in string aName, in AUTF8String aDefaultValue); */
  NS_SCRIPTABLE NS_IMETHOD GetLocalizedStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM) = 0;

  /* void setIntValue (in string aName, in long aValue); */
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char * aName, PRInt32 aValue) = 0;

  /* void setBoolValue (in string aName, in boolean aValue); */
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char * aName, bool aValue) = 0;

  /* void setStringValue (in string aName, in ACString aValue); */
  NS_SCRIPTABLE NS_IMETHOD SetStringValue(const char * aName, const nsACString & aValue) = 0;

  /* void setLocalizedStringValue (in string aName, in AUTF8String aValue); */
  NS_SCRIPTABLE NS_IMETHOD SetLocalizedStringValue(const char * aName, const nsACString & aValue) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAbDirectory, NS_IABDIRECTORY_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABDIRECTORY \
  NS_SCRIPTABLE NS_IMETHOD GetPropertiesChromeURI(nsACString & aPropertiesChromeURI); \
  NS_SCRIPTABLE NS_IMETHOD GetDirName(nsAString & aDirName); \
  NS_SCRIPTABLE NS_IMETHOD SetDirName(const nsAString & aDirName); \
  NS_SCRIPTABLE NS_IMETHOD GetDirType(PRInt32 *aDirType); \
  NS_SCRIPTABLE NS_IMETHOD GetFileName(nsACString & aFileName); \
  NS_SCRIPTABLE NS_IMETHOD GetURI(nsACString & aURI); \
  NS_SCRIPTABLE NS_IMETHOD GetPosition(PRInt32 *aPosition); \
  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedDate(PRUint32 *aLastModifiedDate); \
  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedDate(PRUint32 aLastModifiedDate); \
  NS_SCRIPTABLE NS_IMETHOD GetIsMailList(bool *aIsMailList); \
  NS_SCRIPTABLE NS_IMETHOD SetIsMailList(bool aIsMailList); \
  NS_SCRIPTABLE NS_IMETHOD GetChildNodes(nsISimpleEnumerator * *aChildNodes); \
  NS_SCRIPTABLE NS_IMETHOD GetChildCards(nsISimpleEnumerator * *aChildCards); \
  NS_SCRIPTABLE NS_IMETHOD GetIsQuery(bool *aIsQuery); \
  NS_SCRIPTABLE NS_IMETHOD Init(const char * aURI); \
  NS_SCRIPTABLE NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory); \
  NS_SCRIPTABLE NS_IMETHOD HasCard(nsIAbCard *cards, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD HasDirectory(nsIAbDirectory *dir, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD AddCard(nsIAbCard *card, nsIAbCard * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD ModifyCard(nsIAbCard *modifiedCard); \
  NS_SCRIPTABLE NS_IMETHOD DeleteCards(nsIArray *aCards); \
  NS_SCRIPTABLE NS_IMETHOD DropCard(nsIAbCard *card, bool needToCopyCard); \
  NS_SCRIPTABLE NS_IMETHOD UseForAutocomplete(const nsACString & aIdentityKey, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetSupportsMailingLists(bool *aSupportsMailingLists); \
  NS_SCRIPTABLE NS_IMETHOD GetAddressLists(nsIMutableArray * *aAddressLists); \
  NS_SCRIPTABLE NS_IMETHOD SetAddressLists(nsIMutableArray *aAddressLists); \
  NS_SCRIPTABLE NS_IMETHOD AddMailList(nsIAbDirectory *list, nsIAbDirectory * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetListNickName(nsAString & aListNickName); \
  NS_SCRIPTABLE NS_IMETHOD SetListNickName(const nsAString & aListNickName); \
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsAString & aDescription); \
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsAString & aDescription); \
  NS_SCRIPTABLE NS_IMETHOD EditMailListToDatabase(nsIAbCard *listCard); \
  NS_SCRIPTABLE NS_IMETHOD CopyMailList(nsIAbDirectory *srcList); \
  NS_SCRIPTABLE NS_IMETHOD CreateNewDirectory(const nsAString & aDirName, const nsACString & aURI, PRUint32 aType, const nsACString & aPrefName, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateDirectoryByURI(const nsAString & displayName, const nsACString & aURI); \
  NS_SCRIPTABLE NS_IMETHOD GetDirPrefId(nsACString & aDirPrefId); \
  NS_SCRIPTABLE NS_IMETHOD SetDirPrefId(const nsACString & aDirPrefId); \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char * aName, PRInt32 aDefaultValue, PRInt32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char * aName, bool aDefaultValue, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetLocalizedStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char * aName, PRInt32 aValue); \
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char * aName, bool aValue); \
  NS_SCRIPTABLE NS_IMETHOD SetStringValue(const char * aName, const nsACString & aValue); \
  NS_SCRIPTABLE NS_IMETHOD SetLocalizedStringValue(const char * aName, const nsACString & aValue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIABDIRECTORY(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetPropertiesChromeURI(nsACString & aPropertiesChromeURI) { return _to GetPropertiesChromeURI(aPropertiesChromeURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetDirName(nsAString & aDirName) { return _to GetDirName(aDirName); } \
  NS_SCRIPTABLE NS_IMETHOD SetDirName(const nsAString & aDirName) { return _to SetDirName(aDirName); } \
  NS_SCRIPTABLE NS_IMETHOD GetDirType(PRInt32 *aDirType) { return _to GetDirType(aDirType); } \
  NS_SCRIPTABLE NS_IMETHOD GetFileName(nsACString & aFileName) { return _to GetFileName(aFileName); } \
  NS_SCRIPTABLE NS_IMETHOD GetURI(nsACString & aURI) { return _to GetURI(aURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetPosition(PRInt32 *aPosition) { return _to GetPosition(aPosition); } \
  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedDate(PRUint32 *aLastModifiedDate) { return _to GetLastModifiedDate(aLastModifiedDate); } \
  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedDate(PRUint32 aLastModifiedDate) { return _to SetLastModifiedDate(aLastModifiedDate); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsMailList(bool *aIsMailList) { return _to GetIsMailList(aIsMailList); } \
  NS_SCRIPTABLE NS_IMETHOD SetIsMailList(bool aIsMailList) { return _to SetIsMailList(aIsMailList); } \
  NS_SCRIPTABLE NS_IMETHOD GetChildNodes(nsISimpleEnumerator * *aChildNodes) { return _to GetChildNodes(aChildNodes); } \
  NS_SCRIPTABLE NS_IMETHOD GetChildCards(nsISimpleEnumerator * *aChildCards) { return _to GetChildCards(aChildCards); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsQuery(bool *aIsQuery) { return _to GetIsQuery(aIsQuery); } \
  NS_SCRIPTABLE NS_IMETHOD Init(const char * aURI) { return _to Init(aURI); } \
  NS_SCRIPTABLE NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory) { return _to DeleteDirectory(directory); } \
  NS_SCRIPTABLE NS_IMETHOD HasCard(nsIAbCard *cards, bool *_retval NS_OUTPARAM) { return _to HasCard(cards, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD HasDirectory(nsIAbDirectory *dir, bool *_retval NS_OUTPARAM) { return _to HasDirectory(dir, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD AddCard(nsIAbCard *card, nsIAbCard * *_retval NS_OUTPARAM) { return _to AddCard(card, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD ModifyCard(nsIAbCard *modifiedCard) { return _to ModifyCard(modifiedCard); } \
  NS_SCRIPTABLE NS_IMETHOD DeleteCards(nsIArray *aCards) { return _to DeleteCards(aCards); } \
  NS_SCRIPTABLE NS_IMETHOD DropCard(nsIAbCard *card, bool needToCopyCard) { return _to DropCard(card, needToCopyCard); } \
  NS_SCRIPTABLE NS_IMETHOD UseForAutocomplete(const nsACString & aIdentityKey, bool *_retval NS_OUTPARAM) { return _to UseForAutocomplete(aIdentityKey, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSupportsMailingLists(bool *aSupportsMailingLists) { return _to GetSupportsMailingLists(aSupportsMailingLists); } \
  NS_SCRIPTABLE NS_IMETHOD GetAddressLists(nsIMutableArray * *aAddressLists) { return _to GetAddressLists(aAddressLists); } \
  NS_SCRIPTABLE NS_IMETHOD SetAddressLists(nsIMutableArray *aAddressLists) { return _to SetAddressLists(aAddressLists); } \
  NS_SCRIPTABLE NS_IMETHOD AddMailList(nsIAbDirectory *list, nsIAbDirectory * *_retval NS_OUTPARAM) { return _to AddMailList(list, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetListNickName(nsAString & aListNickName) { return _to GetListNickName(aListNickName); } \
  NS_SCRIPTABLE NS_IMETHOD SetListNickName(const nsAString & aListNickName) { return _to SetListNickName(aListNickName); } \
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsAString & aDescription) { return _to GetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsAString & aDescription) { return _to SetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD EditMailListToDatabase(nsIAbCard *listCard) { return _to EditMailListToDatabase(listCard); } \
  NS_SCRIPTABLE NS_IMETHOD CopyMailList(nsIAbDirectory *srcList) { return _to CopyMailList(srcList); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewDirectory(const nsAString & aDirName, const nsACString & aURI, PRUint32 aType, const nsACString & aPrefName, nsACString & _retval NS_OUTPARAM) { return _to CreateNewDirectory(aDirName, aURI, aType, aPrefName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateDirectoryByURI(const nsAString & displayName, const nsACString & aURI) { return _to CreateDirectoryByURI(displayName, aURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetDirPrefId(nsACString & aDirPrefId) { return _to GetDirPrefId(aDirPrefId); } \
  NS_SCRIPTABLE NS_IMETHOD SetDirPrefId(const nsACString & aDirPrefId) { return _to SetDirPrefId(aDirPrefId); } \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char * aName, PRInt32 aDefaultValue, PRInt32 *_retval NS_OUTPARAM) { return _to GetIntValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char * aName, bool aDefaultValue, bool *_retval NS_OUTPARAM) { return _to GetBoolValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM) { return _to GetStringValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalizedStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM) { return _to GetLocalizedStringValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char * aName, PRInt32 aValue) { return _to SetIntValue(aName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char * aName, bool aValue) { return _to SetBoolValue(aName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD SetStringValue(const char * aName, const nsACString & aValue) { return _to SetStringValue(aName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalizedStringValue(const char * aName, const nsACString & aValue) { return _to SetLocalizedStringValue(aName, aValue); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIABDIRECTORY(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetPropertiesChromeURI(nsACString & aPropertiesChromeURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertiesChromeURI(aPropertiesChromeURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetDirName(nsAString & aDirName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirName(aDirName); } \
  NS_SCRIPTABLE NS_IMETHOD SetDirName(const nsAString & aDirName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDirName(aDirName); } \
  NS_SCRIPTABLE NS_IMETHOD GetDirType(PRInt32 *aDirType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirType(aDirType); } \
  NS_SCRIPTABLE NS_IMETHOD GetFileName(nsACString & aFileName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileName(aFileName); } \
  NS_SCRIPTABLE NS_IMETHOD GetURI(nsACString & aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetURI(aURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetPosition(PRInt32 *aPosition) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPosition(aPosition); } \
  NS_SCRIPTABLE NS_IMETHOD GetLastModifiedDate(PRUint32 *aLastModifiedDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastModifiedDate(aLastModifiedDate); } \
  NS_SCRIPTABLE NS_IMETHOD SetLastModifiedDate(PRUint32 aLastModifiedDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLastModifiedDate(aLastModifiedDate); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsMailList(bool *aIsMailList) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsMailList(aIsMailList); } \
  NS_SCRIPTABLE NS_IMETHOD SetIsMailList(bool aIsMailList) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsMailList(aIsMailList); } \
  NS_SCRIPTABLE NS_IMETHOD GetChildNodes(nsISimpleEnumerator * *aChildNodes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildNodes(aChildNodes); } \
  NS_SCRIPTABLE NS_IMETHOD GetChildCards(nsISimpleEnumerator * *aChildCards) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildCards(aChildCards); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsQuery(bool *aIsQuery) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsQuery(aIsQuery); } \
  NS_SCRIPTABLE NS_IMETHOD Init(const char * aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(aURI); } \
  NS_SCRIPTABLE NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteDirectory(directory); } \
  NS_SCRIPTABLE NS_IMETHOD HasCard(nsIAbCard *cards, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasCard(cards, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD HasDirectory(nsIAbDirectory *dir, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasDirectory(dir, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD AddCard(nsIAbCard *card, nsIAbCard * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddCard(card, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD ModifyCard(nsIAbCard *modifiedCard) { return !_to ? NS_ERROR_NULL_POINTER : _to->ModifyCard(modifiedCard); } \
  NS_SCRIPTABLE NS_IMETHOD DeleteCards(nsIArray *aCards) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteCards(aCards); } \
  NS_SCRIPTABLE NS_IMETHOD DropCard(nsIAbCard *card, bool needToCopyCard) { return !_to ? NS_ERROR_NULL_POINTER : _to->DropCard(card, needToCopyCard); } \
  NS_SCRIPTABLE NS_IMETHOD UseForAutocomplete(const nsACString & aIdentityKey, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->UseForAutocomplete(aIdentityKey, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSupportsMailingLists(bool *aSupportsMailingLists) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsMailingLists(aSupportsMailingLists); } \
  NS_SCRIPTABLE NS_IMETHOD GetAddressLists(nsIMutableArray * *aAddressLists) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddressLists(aAddressLists); } \
  NS_SCRIPTABLE NS_IMETHOD SetAddressLists(nsIMutableArray *aAddressLists) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAddressLists(aAddressLists); } \
  NS_SCRIPTABLE NS_IMETHOD AddMailList(nsIAbDirectory *list, nsIAbDirectory * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddMailList(list, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetListNickName(nsAString & aListNickName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetListNickName(aListNickName); } \
  NS_SCRIPTABLE NS_IMETHOD SetListNickName(const nsAString & aListNickName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetListNickName(aListNickName); } \
  NS_SCRIPTABLE NS_IMETHOD GetDescription(nsAString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD SetDescription(const nsAString & aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDescription(aDescription); } \
  NS_SCRIPTABLE NS_IMETHOD EditMailListToDatabase(nsIAbCard *listCard) { return !_to ? NS_ERROR_NULL_POINTER : _to->EditMailListToDatabase(listCard); } \
  NS_SCRIPTABLE NS_IMETHOD CopyMailList(nsIAbDirectory *srcList) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyMailList(srcList); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewDirectory(const nsAString & aDirName, const nsACString & aURI, PRUint32 aType, const nsACString & aPrefName, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewDirectory(aDirName, aURI, aType, aPrefName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateDirectoryByURI(const nsAString & displayName, const nsACString & aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateDirectoryByURI(displayName, aURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetDirPrefId(nsACString & aDirPrefId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirPrefId(aDirPrefId); } \
  NS_SCRIPTABLE NS_IMETHOD SetDirPrefId(const nsACString & aDirPrefId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDirPrefId(aDirPrefId); } \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char * aName, PRInt32 aDefaultValue, PRInt32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIntValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char * aName, bool aDefaultValue, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBoolValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStringValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalizedStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalizedStringValue(aName, aDefaultValue, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char * aName, PRInt32 aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIntValue(aName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char * aName, bool aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBoolValue(aName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD SetStringValue(const char * aName, const nsACString & aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStringValue(aName, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalizedStringValue(const char * aName, const nsACString & aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocalizedStringValue(aName, aValue); } 

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

/* Header file */
class nsAbDirectory : public nsIAbDirectory
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABDIRECTORY

  nsAbDirectory();

private:
  ~nsAbDirectory();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAbDirectory, nsIAbDirectory)

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

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

/* readonly attribute ACString propertiesChromeURI; */
NS_IMETHODIMP nsAbDirectory::GetPropertiesChromeURI(nsACString & aPropertiesChromeURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString dirName; */
NS_IMETHODIMP nsAbDirectory::GetDirName(nsAString & aDirName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetDirName(const nsAString & aDirName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long dirType; */
NS_IMETHODIMP nsAbDirectory::GetDirType(PRInt32 *aDirType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString fileName; */
NS_IMETHODIMP nsAbDirectory::GetFileName(nsACString & aFileName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString URI; */
NS_IMETHODIMP nsAbDirectory::GetURI(nsACString & aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long position; */
NS_IMETHODIMP nsAbDirectory::GetPosition(PRInt32 *aPosition)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long lastModifiedDate; */
NS_IMETHODIMP nsAbDirectory::GetLastModifiedDate(PRUint32 *aLastModifiedDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetLastModifiedDate(PRUint32 aLastModifiedDate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isMailList; */
NS_IMETHODIMP nsAbDirectory::GetIsMailList(bool *aIsMailList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetIsMailList(bool aIsMailList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator childNodes; */
NS_IMETHODIMP nsAbDirectory::GetChildNodes(nsISimpleEnumerator * *aChildNodes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator childCards; */
NS_IMETHODIMP nsAbDirectory::GetChildCards(nsISimpleEnumerator * *aChildCards)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isQuery; */
NS_IMETHODIMP nsAbDirectory::GetIsQuery(bool *aIsQuery)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void init (in string aURI); */
NS_IMETHODIMP nsAbDirectory::Init(const char * aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteDirectory (in nsIAbDirectory directory); */
NS_IMETHODIMP nsAbDirectory::DeleteDirectory(nsIAbDirectory *directory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean hasCard (in nsIAbCard cards); */
NS_IMETHODIMP nsAbDirectory::HasCard(nsIAbCard *cards, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean hasDirectory (in nsIAbDirectory dir); */
NS_IMETHODIMP nsAbDirectory::HasDirectory(nsIAbDirectory *dir, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbCard addCard (in nsIAbCard card); */
NS_IMETHODIMP nsAbDirectory::AddCard(nsIAbCard *card, nsIAbCard * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void modifyCard (in nsIAbCard modifiedCard); */
NS_IMETHODIMP nsAbDirectory::ModifyCard(nsIAbCard *modifiedCard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteCards (in nsIArray aCards); */
NS_IMETHODIMP nsAbDirectory::DeleteCards(nsIArray *aCards)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void dropCard (in nsIAbCard card, in boolean needToCopyCard); */
NS_IMETHODIMP nsAbDirectory::DropCard(nsIAbCard *card, bool needToCopyCard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean useForAutocomplete (in ACString aIdentityKey); */
NS_IMETHODIMP nsAbDirectory::UseForAutocomplete(const nsACString & aIdentityKey, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean supportsMailingLists; */
NS_IMETHODIMP nsAbDirectory::GetSupportsMailingLists(bool *aSupportsMailingLists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMutableArray addressLists; */
NS_IMETHODIMP nsAbDirectory::GetAddressLists(nsIMutableArray * *aAddressLists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetAddressLists(nsIMutableArray *aAddressLists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbDirectory addMailList (in nsIAbDirectory list); */
NS_IMETHODIMP nsAbDirectory::AddMailList(nsIAbDirectory *list, nsIAbDirectory * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString listNickName; */
NS_IMETHODIMP nsAbDirectory::GetListNickName(nsAString & aListNickName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetListNickName(const nsAString & aListNickName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString description; */
NS_IMETHODIMP nsAbDirectory::GetDescription(nsAString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetDescription(const nsAString & aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editMailListToDatabase (in nsIAbCard listCard); */
NS_IMETHODIMP nsAbDirectory::EditMailListToDatabase(nsIAbCard *listCard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void copyMailList (in nsIAbDirectory srcList); */
NS_IMETHODIMP nsAbDirectory::CopyMailList(nsIAbDirectory *srcList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString createNewDirectory (in AString aDirName, in ACString aURI, in unsigned long aType, in ACString aPrefName); */
NS_IMETHODIMP nsAbDirectory::CreateNewDirectory(const nsAString & aDirName, const nsACString & aURI, PRUint32 aType, const nsACString & aPrefName, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createDirectoryByURI (in AString displayName, in ACString aURI); */
NS_IMETHODIMP nsAbDirectory::CreateDirectoryByURI(const nsAString & displayName, const nsACString & aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString dirPrefId; */
NS_IMETHODIMP nsAbDirectory::GetDirPrefId(nsACString & aDirPrefId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetDirPrefId(const nsACString & aDirPrefId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long getIntValue (in string aName, in long aDefaultValue); */
NS_IMETHODIMP nsAbDirectory::GetIntValue(const char * aName, PRInt32 aDefaultValue, PRInt32 *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getBoolValue (in string aName, in boolean aDefaultValue); */
NS_IMETHODIMP nsAbDirectory::GetBoolValue(const char * aName, bool aDefaultValue, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getStringValue (in string aName, in ACString aDefaultValue); */
NS_IMETHODIMP nsAbDirectory::GetStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String getLocalizedStringValue (in string aName, in AUTF8String aDefaultValue); */
NS_IMETHODIMP nsAbDirectory::GetLocalizedStringValue(const char * aName, const nsACString & aDefaultValue, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setIntValue (in string aName, in long aValue); */
NS_IMETHODIMP nsAbDirectory::SetIntValue(const char * aName, PRInt32 aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setBoolValue (in string aName, in boolean aValue); */
NS_IMETHODIMP nsAbDirectory::SetBoolValue(const char * aName, bool aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setStringValue (in string aName, in ACString aValue); */
NS_IMETHODIMP nsAbDirectory::SetStringValue(const char * aName, const nsACString & aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setLocalizedStringValue (in string aName, in AUTF8String aValue); */
NS_IMETHODIMP nsAbDirectory::SetLocalizedStringValue(const char * aName, const nsACString & aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAbDirectory_h__ */
