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

#ifndef __gen_nsIAbDirectory_h__
#define __gen_nsIAbDirectory_h__

#include "nsISupports.h"
#include "nsIAbCard.h"
#include "nsISupportsArray.h"

#include "nsFileSpec.h"
#include "nsDirPrefs.h"

/* starting interface:    nsIAbDirectory */
#define NS_IABDIRECTORY_IID_STR "1920e485-0709-11d3-a2ec-001083003d0c"

#define NS_IABDIRECTORY_IID \
  {0x1920e485, 0x0709, 0x11d3, \
    { 0xa2, 0xec, 0x00, 0x10, 0x83, 0x00, 0x3d, 0x0c }}

class NS_NO_VTABLE nsIAbDirectory : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IABDIRECTORY_IID)

  /* attribute wstring dirName; */
  NS_IMETHOD GetDirName(PRUnichar * *aDirName) = 0;
  NS_IMETHOD SetDirName(const PRUnichar * aDirName) = 0;

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

  /* [noscript] attribute DIR_Server server; */
  NS_IMETHOD GetServer(DIR_Server * *aServer) = 0;
  NS_IMETHOD SetServer(DIR_Server * aServer) = 0;

  /* readonly attribute string dirFilePath; */
  NS_IMETHOD GetDirFilePath(char * *aDirFilePath) = 0;

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

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

  /* nsIAbCard addChildCards (in string uriName); */
  NS_IMETHOD AddChildCards(const char *uriName, nsIAbCard **_retval) = 0;

  /* nsIAbDirectory addDirectory (in string uriName); */
  NS_IMETHOD AddDirectory(const char *uriName, nsIAbDirectory **_retval) = 0;

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

  /* void deleteCards (in nsISupportsArray cards); */
  NS_IMETHOD DeleteCards(nsISupportsArray *cards) = 0;

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

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

  /* void createNewDirectory (in wstring dirName, in string fileName, in boolean migrating); */
  NS_IMETHOD CreateNewDirectory(const PRUnichar *dirName, const char *fileName, PRBool migrating) = 0;

  /* void createNewMailingList (in string uri, in nsIAbDirectory list); */
  NS_IMETHOD CreateNewMailingList(const char *uri, nsIAbDirectory *list) = 0;

  /* string getDirUri (); */
  NS_IMETHOD GetDirUri(char **_retval) = 0;

  /* void addMailListToDirectory (in nsIAbDirectory mailList); */
  NS_IMETHOD AddMailListToDirectory(nsIAbDirectory *mailList) = 0;

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

  /* attribute wstring listName; */
  NS_IMETHOD GetListName(PRUnichar * *aListName) = 0;
  NS_IMETHOD SetListName(const PRUnichar * aListName) = 0;

  /* attribute wstring listNickName; */
  NS_IMETHOD GetListNickName(PRUnichar * *aListNickName) = 0;
  NS_IMETHOD SetListNickName(const PRUnichar * aListNickName) = 0;

  /* attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) = 0;

  /* attribute unsigned long dbRowID; */
  NS_IMETHOD GetDbRowID(PRUint32 *aDbRowID) = 0;
  NS_IMETHOD SetDbRowID(PRUint32 aDbRowID) = 0;

  /* attribute PRBool isMailList; */
  NS_IMETHOD GetIsMailList(PRBool *aIsMailList) = 0;
  NS_IMETHOD SetIsMailList(PRBool aIsMailList) = 0;

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

  /* void addAddressToList (in nsIAbCard card); */
  NS_IMETHOD AddAddressToList(nsIAbCard *card) = 0;

  /* void addMailListToDatabase (in string uri); */
  NS_IMETHOD AddMailListToDatabase(const char *uri) = 0;

  /* void editMailListToDatabase (in string uri); */
  NS_IMETHOD EditMailListToDatabase(const char *uri) = 0;

  /* void removeEmailAddressAt (in unsigned long aIndex); */
  NS_IMETHOD RemoveEmailAddressAt(PRUint32 aIndex) = 0;

  /* [noscript] void clearDatabase (); */
  NS_IMETHOD ClearDatabase(void) = 0;

  /* [noscript] void notifyDirItemAdded (in nsISupports item); */
  NS_IMETHOD NotifyDirItemAdded(nsISupports *item) = 0;

  /* [noscript] void removeElementsFromAddressList (); */
  NS_IMETHOD RemoveElementsFromAddressList(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABDIRECTORY \
  NS_IMETHOD GetDirName(PRUnichar * *aDirName); \
  NS_IMETHOD SetDirName(const PRUnichar * aDirName); \
  NS_IMETHOD GetLastModifiedDate(PRUint32 *aLastModifiedDate); \
  NS_IMETHOD SetLastModifiedDate(PRUint32 aLastModifiedDate); \
  NS_IMETHOD GetServer(DIR_Server * *aServer); \
  NS_IMETHOD SetServer(DIR_Server * aServer); \
  NS_IMETHOD GetDirFilePath(char * *aDirFilePath); \
  NS_IMETHOD GetChildNodes(nsIEnumerator * *aChildNodes); \
  NS_IMETHOD GetChildCards(nsIEnumerator * *aChildCards); \
  NS_IMETHOD AddChildCards(const char *uriName, nsIAbCard **_retval); \
  NS_IMETHOD AddDirectory(const char *uriName, nsIAbDirectory **_retval); \
  NS_IMETHOD DeleteDirectory(nsIAbDirectory *dierctory); \
  NS_IMETHOD DeleteCards(nsISupportsArray *cards); \
  NS_IMETHOD HasCard(nsIAbCard *cards, PRBool *_retval); \
  NS_IMETHOD HasDirectory(nsIAbDirectory *dir, PRBool *_retval); \
  NS_IMETHOD CreateNewDirectory(const PRUnichar *dirName, const char *fileName, PRBool migrating); \
  NS_IMETHOD CreateNewMailingList(const char *uri, nsIAbDirectory *list); \
  NS_IMETHOD GetDirUri(char **_retval); \
  NS_IMETHOD AddMailListToDirectory(nsIAbDirectory *mailList); \
  NS_IMETHOD CopyMailList(nsIAbDirectory *srcList); \
  NS_IMETHOD GetListName(PRUnichar * *aListName); \
  NS_IMETHOD SetListName(const PRUnichar * aListName); \
  NS_IMETHOD GetListNickName(PRUnichar * *aListNickName); \
  NS_IMETHOD SetListNickName(const PRUnichar * aListNickName); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription); \
  NS_IMETHOD GetDbRowID(PRUint32 *aDbRowID); \
  NS_IMETHOD SetDbRowID(PRUint32 aDbRowID); \
  NS_IMETHOD GetIsMailList(PRBool *aIsMailList); \
  NS_IMETHOD SetIsMailList(PRBool aIsMailList); \
  NS_IMETHOD GetAddressLists(nsISupportsArray * *aAddressLists); \
  NS_IMETHOD SetAddressLists(nsISupportsArray * aAddressLists); \
  NS_IMETHOD AddAddressToList(nsIAbCard *card); \
  NS_IMETHOD AddMailListToDatabase(const char *uri); \
  NS_IMETHOD EditMailListToDatabase(const char *uri); \
  NS_IMETHOD RemoveEmailAddressAt(PRUint32 aIndex); \
  NS_IMETHOD ClearDatabase(void); \
  NS_IMETHOD NotifyDirItemAdded(nsISupports *item); \
  NS_IMETHOD RemoveElementsFromAddressList(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIABDIRECTORY(_to) \
  NS_IMETHOD GetDirName(PRUnichar * *aDirName) { return _to ## GetDirName(aDirName); } \
  NS_IMETHOD SetDirName(const PRUnichar * aDirName) { return _to ## SetDirName(aDirName); } \
  NS_IMETHOD GetLastModifiedDate(PRUint32 *aLastModifiedDate) { return _to ## GetLastModifiedDate(aLastModifiedDate); } \
  NS_IMETHOD SetLastModifiedDate(PRUint32 aLastModifiedDate) { return _to ## SetLastModifiedDate(aLastModifiedDate); } \
  NS_IMETHOD GetServer(DIR_Server * *aServer) { return _to ## GetServer(aServer); } \
  NS_IMETHOD SetServer(DIR_Server * aServer) { return _to ## SetServer(aServer); } \
  NS_IMETHOD GetDirFilePath(char * *aDirFilePath) { return _to ## GetDirFilePath(aDirFilePath); } \
  NS_IMETHOD GetChildNodes(nsIEnumerator * *aChildNodes) { return _to ## GetChildNodes(aChildNodes); } \
  NS_IMETHOD GetChildCards(nsIEnumerator * *aChildCards) { return _to ## GetChildCards(aChildCards); } \
  NS_IMETHOD AddChildCards(const char *uriName, nsIAbCard **_retval) { return _to ## AddChildCards(uriName, _retval); } \
  NS_IMETHOD AddDirectory(const char *uriName, nsIAbDirectory **_retval) { return _to ## AddDirectory(uriName, _retval); } \
  NS_IMETHOD DeleteDirectory(nsIAbDirectory *dierctory) { return _to ## DeleteDirectory(dierctory); } \
  NS_IMETHOD DeleteCards(nsISupportsArray *cards) { return _to ## DeleteCards(cards); } \
  NS_IMETHOD HasCard(nsIAbCard *cards, PRBool *_retval) { return _to ## HasCard(cards, _retval); } \
  NS_IMETHOD HasDirectory(nsIAbDirectory *dir, PRBool *_retval) { return _to ## HasDirectory(dir, _retval); } \
  NS_IMETHOD CreateNewDirectory(const PRUnichar *dirName, const char *fileName, PRBool migrating) { return _to ## CreateNewDirectory(dirName, fileName, migrating); } \
  NS_IMETHOD CreateNewMailingList(const char *uri, nsIAbDirectory *list) { return _to ## CreateNewMailingList(uri, list); } \
  NS_IMETHOD GetDirUri(char **_retval) { return _to ## GetDirUri(_retval); } \
  NS_IMETHOD AddMailListToDirectory(nsIAbDirectory *mailList) { return _to ## AddMailListToDirectory(mailList); } \
  NS_IMETHOD CopyMailList(nsIAbDirectory *srcList) { return _to ## CopyMailList(srcList); } \
  NS_IMETHOD GetListName(PRUnichar * *aListName) { return _to ## GetListName(aListName); } \
  NS_IMETHOD SetListName(const PRUnichar * aListName) { return _to ## SetListName(aListName); } \
  NS_IMETHOD GetListNickName(PRUnichar * *aListNickName) { return _to ## GetListNickName(aListNickName); } \
  NS_IMETHOD SetListNickName(const PRUnichar * aListNickName) { return _to ## SetListNickName(aListNickName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to ## GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) { return _to ## SetDescription(aDescription); } \
  NS_IMETHOD GetDbRowID(PRUint32 *aDbRowID) { return _to ## GetDbRowID(aDbRowID); } \
  NS_IMETHOD SetDbRowID(PRUint32 aDbRowID) { return _to ## SetDbRowID(aDbRowID); } \
  NS_IMETHOD GetIsMailList(PRBool *aIsMailList) { return _to ## GetIsMailList(aIsMailList); } \
  NS_IMETHOD SetIsMailList(PRBool aIsMailList) { return _to ## SetIsMailList(aIsMailList); } \
  NS_IMETHOD GetAddressLists(nsISupportsArray * *aAddressLists) { return _to ## GetAddressLists(aAddressLists); } \
  NS_IMETHOD SetAddressLists(nsISupportsArray * aAddressLists) { return _to ## SetAddressLists(aAddressLists); } \
  NS_IMETHOD AddAddressToList(nsIAbCard *card) { return _to ## AddAddressToList(card); } \
  NS_IMETHOD AddMailListToDatabase(const char *uri) { return _to ## AddMailListToDatabase(uri); } \
  NS_IMETHOD EditMailListToDatabase(const char *uri) { return _to ## EditMailListToDatabase(uri); } \
  NS_IMETHOD RemoveEmailAddressAt(PRUint32 aIndex) { return _to ## RemoveEmailAddressAt(aIndex); } \
  NS_IMETHOD ClearDatabase(void) { return _to ## ClearDatabase(); } \
  NS_IMETHOD NotifyDirItemAdded(nsISupports *item) { return _to ## NotifyDirItemAdded(item); } \
  NS_IMETHOD RemoveElementsFromAddressList(void) { return _to ## RemoveElementsFromAddressList(); } 

#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();
  virtual ~nsAbDirectory();
  /* additional members */
};

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

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

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

/* attribute wstring dirName; */
NS_IMETHODIMP nsAbDirectory::GetDirName(PRUnichar * *aDirName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetDirName(const PRUnichar * aDirName)
{
    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;
}

/* [noscript] attribute DIR_Server server; */
NS_IMETHODIMP nsAbDirectory::GetServer(DIR_Server * *aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetServer(DIR_Server * aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string dirFilePath; */
NS_IMETHODIMP nsAbDirectory::GetDirFilePath(char * *aDirFilePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* nsIAbCard addChildCards (in string uriName); */
NS_IMETHODIMP nsAbDirectory::AddChildCards(const char *uriName, nsIAbCard **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbDirectory addDirectory (in string uriName); */
NS_IMETHODIMP nsAbDirectory::AddDirectory(const char *uriName, nsIAbDirectory **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

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

/* void createNewDirectory (in wstring dirName, in string fileName, in boolean migrating); */
NS_IMETHODIMP nsAbDirectory::CreateNewDirectory(const PRUnichar *dirName, const char *fileName, PRBool migrating)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createNewMailingList (in string uri, in nsIAbDirectory list); */
NS_IMETHODIMP nsAbDirectory::CreateNewMailingList(const char *uri, nsIAbDirectory *list)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string getDirUri (); */
NS_IMETHODIMP nsAbDirectory::GetDirUri(char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addMailListToDirectory (in nsIAbDirectory mailList); */
NS_IMETHODIMP nsAbDirectory::AddMailListToDirectory(nsIAbDirectory *mailList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute wstring listName; */
NS_IMETHODIMP nsAbDirectory::GetListName(PRUnichar * *aListName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetListName(const PRUnichar * aListName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring listNickName; */
NS_IMETHODIMP nsAbDirectory::GetListNickName(PRUnichar * *aListNickName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetListNickName(const PRUnichar * aListNickName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring description; */
NS_IMETHODIMP nsAbDirectory::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetDescription(const PRUnichar * aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long dbRowID; */
NS_IMETHODIMP nsAbDirectory::GetDbRowID(PRUint32 *aDbRowID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbDirectory::SetDbRowID(PRUint32 aDbRowID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* void addAddressToList (in nsIAbCard card); */
NS_IMETHODIMP nsAbDirectory::AddAddressToList(nsIAbCard *card)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addMailListToDatabase (in string uri); */
NS_IMETHODIMP nsAbDirectory::AddMailListToDatabase(const char *uri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editMailListToDatabase (in string uri); */
NS_IMETHODIMP nsAbDirectory::EditMailListToDatabase(const char *uri)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeEmailAddressAt (in unsigned long aIndex); */
NS_IMETHODIMP nsAbDirectory::RemoveEmailAddressAt(PRUint32 aIndex)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void clearDatabase (); */
NS_IMETHODIMP nsAbDirectory::ClearDatabase()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void notifyDirItemAdded (in nsISupports item); */
NS_IMETHODIMP nsAbDirectory::NotifyDirItemAdded(nsISupports *item)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void removeElementsFromAddressList (); */
NS_IMETHODIMP nsAbDirectory::RemoveElementsFromAddressList()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAbDirectory_h__ */
