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

#ifndef __gen_nsIAddrDatabase_h__
#define __gen_nsIAddrDatabase_h__


#ifndef __gen_nsIAddrDBAnnouncer_h__
#include "nsIAddrDBAnnouncer.h"
#endif

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

#ifndef __gen_nsIAbDirectory_h__
#include "nsIAbDirectory.h"
#endif

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

/* starting interface:    nsIAddrDatabase */
#define NS_IADDRDATABASE_IID_STR "a4186d8b-1dd0-11d3-a303-001083003d0c"

#define NS_IADDRDATABASE_IID \
  {0xa4186d8b, 0x1dd0, 0x11d3, \
    { 0xa3, 0x03, 0x00, 0x10, 0x83, 0x00, 0x3d, 0x0c }}

class NS_NO_VTABLE nsIAddrDatabase : public nsIAddrDBAnnouncer {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IADDRDATABASE_IID)

  /* [noscript] attribute nsFileSpec dbPath; */
  NS_IMETHOD GetDbPath(nsFileSpec * *aDbPath) = 0;
  NS_IMETHOD SetDbPath(nsFileSpec * aDbPath) = 0;

  /* [noscript] void open (in nsFileSpec folderName, in boolean create, out nsIAddrDatabase pCardDB, in boolean upgrading); */
  NS_IMETHOD Open(nsFileSpec * folderName, PRBool create, nsIAddrDatabase **pCardDB, PRBool upgrading) = 0;

  /* void close (in boolean forceCommit); */
  NS_IMETHOD Close(PRBool forceCommit) = 0;

  /* [noscript] void openMDB (in nsFileSpec dbName, in boolean create); */
  NS_IMETHOD OpenMDB(nsFileSpec * dbName, PRBool create) = 0;

  /* void closeMDB (in boolean commit); */
  NS_IMETHOD CloseMDB(PRBool commit) = 0;

  /* void openAnonymousDB (out nsIAddrDatabase pCardDB); */
  NS_IMETHOD OpenAnonymousDB(nsIAddrDatabase **pCardDB) = 0;

  /* void closeAnonymousDB (in boolean forceCommit); */
  NS_IMETHOD CloseAnonymousDB(PRBool forceCommit) = 0;

  /* void commit (in unsigned long commitType); */
  NS_IMETHOD Commit(PRUint32 commitType) = 0;

  /* void forceClosed (); */
  NS_IMETHOD ForceClosed(void) = 0;

  /* void createNewCardAndAddToDB (in nsIAbCard newCard, in boolean beNotify); */
  NS_IMETHOD CreateNewCardAndAddToDB(nsIAbCard *newCard, PRBool beNotify) = 0;

  /* void createNewCardAndAddToDBWithKey (in nsIAbCard newCard, in boolean beNotify, out unsigned long key); */
  NS_IMETHOD CreateNewCardAndAddToDBWithKey(nsIAbCard *newCard, PRBool beNotify, PRUint32 *key) = 0;

  /* void createNewListCardAndAddToDB (in unsigned long listRowID, in nsIAbCard newCard, in boolean beNotify); */
  NS_IMETHOD CreateNewListCardAndAddToDB(PRUint32 listRowID, nsIAbCard *newCard, PRBool beNotify) = 0;

  /* void createMailListAndAddToDB (in nsIAbDirectory newList, in boolean beNotify); */
  NS_IMETHOD CreateMailListAndAddToDB(nsIAbDirectory *newList, PRBool beNotify) = 0;

  /* nsIEnumerator enumerateCards (in nsIAbDirectory directory); */
  NS_IMETHOD EnumerateCards(nsIAbDirectory *directory, nsIEnumerator **_retval) = 0;

  /* nsIEnumerator enumerateListAddresses (in nsIAbDirectory directory); */
  NS_IMETHOD EnumerateListAddresses(nsIAbDirectory *directory, nsIEnumerator **_retval) = 0;

  /* void getMailingListsFromDB (in nsIAbDirectory parentDir); */
  NS_IMETHOD GetMailingListsFromDB(nsIAbDirectory *parentDir) = 0;

  /* void deleteCard (in nsIAbCard card, in boolean beNotify); */
  NS_IMETHOD DeleteCard(nsIAbCard *card, PRBool beNotify) = 0;

  /* void editCard (in nsIAbCard card, in boolean beNotify); */
  NS_IMETHOD EditCard(nsIAbCard *card, PRBool beNotify) = 0;

  /* boolean containsCard (in nsIAbCard card); */
  NS_IMETHOD ContainsCard(nsIAbCard *card, PRBool *_retval) = 0;

  /* void deleteMailList (in nsIAbDirectory mailList, in boolean beNotify); */
  NS_IMETHOD DeleteMailList(nsIAbDirectory *mailList, PRBool beNotify) = 0;

  /* void editMailList (in nsIAbDirectory mailList, in boolean beNotify); */
  NS_IMETHOD EditMailList(nsIAbDirectory *mailList, PRBool beNotify) = 0;

  /* boolean containsMailList (in nsIAbDirectory mailList); */
  NS_IMETHOD ContainsMailList(nsIAbDirectory *mailList, PRBool *_retval) = 0;

  /* void deleteCardFromMailList (in nsIAbDirectory mailList, in nsIAbCard card, in boolean beNotify); */
  NS_IMETHOD DeleteCardFromMailList(nsIAbDirectory *mailList, nsIAbCard *card, PRBool beNotify) = 0;

  /* wstring getDirectoryName (); */
  NS_IMETHOD GetDirectoryName(PRUnichar **_retval) = 0;

  /* nsIAbCard getCardForEmailAddress (in nsIAbDirectory directory, in string emailAddress); */
  NS_IMETHOD GetCardForEmailAddress(nsIAbDirectory *directory, const char *emailAddress, nsIAbCard **_retval) = 0;

  /* PRBool findMailListbyUnicodeName (in wstring listName); */
  NS_IMETHOD FindMailListbyUnicodeName(const PRUnichar *listName, PRBool *_retval) = 0;

  /* void getCardCount (out PRUint32 count); */
  NS_IMETHOD GetCardCount(PRUint32 *count) = 0;

  /* void RemoveExtraCardsInCab (in PRUint32 cardTotal, in PRUint32 cabMax); */
  NS_IMETHOD RemoveExtraCardsInCab(PRUint32 cardTotal, PRUint32 cabMax) = 0;

  /* void setAnonymousStringAttribute (in string attrname, in string value); */
  NS_IMETHOD SetAnonymousStringAttribute(const char *attrname, const char *value) = 0;

  /* string getAnonymousStringAttribute (in string attrname); */
  NS_IMETHOD GetAnonymousStringAttribute(const char *attrname, char **_retval) = 0;

  /* void setAnonymousIntAttribute (in string attrname, in unsigned long value); */
  NS_IMETHOD SetAnonymousIntAttribute(const char *attrname, PRUint32 value) = 0;

  /* unsigned long getAnonymousIntAttribute (in string attrname); */
  NS_IMETHOD GetAnonymousIntAttribute(const char *attrname, PRUint32 *_retval) = 0;

  /* void setAnonymousBoolAttribute (in string attrname, in boolean value); */
  NS_IMETHOD SetAnonymousBoolAttribute(const char *attrname, PRBool value) = 0;

  /* boolean getAnonymousBoolAttribute (in string attrname); */
  NS_IMETHOD GetAnonymousBoolAttribute(const char *attrname, PRBool *_retval) = 0;

  /* void addAnonymousAttributesToDB (); */
  NS_IMETHOD AddAnonymousAttributesToDB(void) = 0;

  /* void removeAnonymousAttributesFromDB (); */
  NS_IMETHOD RemoveAnonymousAttributesFromDB(void) = 0;

  /* void editAnonymousAttributesInDB (); */
  NS_IMETHOD EditAnonymousAttributesInDB(void) = 0;

  /* void addAnonymousAttributesFromCard (in nsIAbCard card); */
  NS_IMETHOD AddAnonymousAttributesFromCard(nsIAbCard *card) = 0;

  /* void removeAnonymousAttributesFromCard (in nsIAbCard card); */
  NS_IMETHOD RemoveAnonymousAttributesFromCard(nsIAbCard *card) = 0;

  /* void editAnonymousAttributesFromCard (in nsIAbCard card); */
  NS_IMETHOD EditAnonymousAttributesFromCard(nsIAbCard *card) = 0;

  /* [noscript] readonly attribute nsIMdbRow newRow; */
  NS_IMETHOD GetNewRow(nsIMdbRow * *aNewRow) = 0;

  /* [noscript] readonly attribute nsIMdbRow newListRow; */
  NS_IMETHOD GetNewListRow(nsIMdbRow * *aNewListRow) = 0;

  /* [noscript] void addCardRowToDB (in nsIMdbRow newRow); */
  NS_IMETHOD AddCardRowToDB(nsIMdbRow * newRow) = 0;

  /* [noscript] void addLdifListMember (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddLdifListMember(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addFirstName (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddFirstName(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addLastName (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddLastName(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addDisplayName (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddDisplayName(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addNickName (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddNickName(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addPrimaryEmail (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddPrimaryEmail(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void add2ndEmail (in nsIMdbRow row, in string value); */
  NS_IMETHOD Add2ndEmail(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWorkPhone (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWorkPhone(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addHomePhone (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddHomePhone(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addFaxNumber (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddFaxNumber(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addPagerNumber (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddPagerNumber(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addCellularNumber (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddCellularNumber(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addHomeAddress (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddHomeAddress(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addHomeAddress2 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddHomeAddress2(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addHomeCity (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddHomeCity(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addHomeState (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddHomeState(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addHomeZipCode (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddHomeZipCode(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addHomeCountry (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddHomeCountry(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWorkAddress (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWorkAddress(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWorkAddress2 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWorkAddress2(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWorkCity (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWorkCity(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWorkState (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWorkState(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWorkZipCode (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWorkZipCode(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWorkCountry (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWorkCountry(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addJobTitle (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddJobTitle(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addDepartment (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddDepartment(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addCompany (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddCompany(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWebPage1 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWebPage1(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addWebPage2 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddWebPage2(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addBirthYear (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddBirthYear(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addBirthMonth (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddBirthMonth(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addBirthDay (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddBirthDay(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addCustom1 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddCustom1(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addCustom2 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddCustom2(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addCustom3 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddCustom3(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addCustom4 (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddCustom4(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addNotes (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddNotes(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addPreferMailFormat (in nsIMdbRow row, in unsigned long value); */
  NS_IMETHOD AddPreferMailFormat(nsIMdbRow * row, PRUint32 value) = 0;

  /* [noscript] void addListName (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddListName(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addListNickName (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddListNickName(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void addListDescription (in nsIMdbRow row, in string value); */
  NS_IMETHOD AddListDescription(nsIMdbRow * row, const char *value) = 0;

  /* [noscript] void AddListDirNode (in nsIMdbRow listRow); */
  NS_IMETHOD AddListDirNode(nsIMdbRow * listRow) = 0;

  /* [noscript] void createCollationKey (in wstring sourceStr, in nsStringRef resultStr); */
  NS_IMETHOD CreateCollationKey(const PRUnichar *sourceStr, nsString & resultStr) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIADDRDATABASE \
  NS_IMETHOD GetDbPath(nsFileSpec * *aDbPath); \
  NS_IMETHOD SetDbPath(nsFileSpec * aDbPath); \
  NS_IMETHOD Open(nsFileSpec * folderName, PRBool create, nsIAddrDatabase **pCardDB, PRBool upgrading); \
  NS_IMETHOD Close(PRBool forceCommit); \
  NS_IMETHOD OpenMDB(nsFileSpec * dbName, PRBool create); \
  NS_IMETHOD CloseMDB(PRBool commit); \
  NS_IMETHOD OpenAnonymousDB(nsIAddrDatabase **pCardDB); \
  NS_IMETHOD CloseAnonymousDB(PRBool forceCommit); \
  NS_IMETHOD Commit(PRUint32 commitType); \
  NS_IMETHOD ForceClosed(void); \
  NS_IMETHOD CreateNewCardAndAddToDB(nsIAbCard *newCard, PRBool beNotify); \
  NS_IMETHOD CreateNewCardAndAddToDBWithKey(nsIAbCard *newCard, PRBool beNotify, PRUint32 *key); \
  NS_IMETHOD CreateNewListCardAndAddToDB(PRUint32 listRowID, nsIAbCard *newCard, PRBool beNotify); \
  NS_IMETHOD CreateMailListAndAddToDB(nsIAbDirectory *newList, PRBool beNotify); \
  NS_IMETHOD EnumerateCards(nsIAbDirectory *directory, nsIEnumerator **_retval); \
  NS_IMETHOD EnumerateListAddresses(nsIAbDirectory *directory, nsIEnumerator **_retval); \
  NS_IMETHOD GetMailingListsFromDB(nsIAbDirectory *parentDir); \
  NS_IMETHOD DeleteCard(nsIAbCard *card, PRBool beNotify); \
  NS_IMETHOD EditCard(nsIAbCard *card, PRBool beNotify); \
  NS_IMETHOD ContainsCard(nsIAbCard *card, PRBool *_retval); \
  NS_IMETHOD DeleteMailList(nsIAbDirectory *mailList, PRBool beNotify); \
  NS_IMETHOD EditMailList(nsIAbDirectory *mailList, PRBool beNotify); \
  NS_IMETHOD ContainsMailList(nsIAbDirectory *mailList, PRBool *_retval); \
  NS_IMETHOD DeleteCardFromMailList(nsIAbDirectory *mailList, nsIAbCard *card, PRBool beNotify); \
  NS_IMETHOD GetDirectoryName(PRUnichar **_retval); \
  NS_IMETHOD GetCardForEmailAddress(nsIAbDirectory *directory, const char *emailAddress, nsIAbCard **_retval); \
  NS_IMETHOD FindMailListbyUnicodeName(const PRUnichar *listName, PRBool *_retval); \
  NS_IMETHOD GetCardCount(PRUint32 *count); \
  NS_IMETHOD RemoveExtraCardsInCab(PRUint32 cardTotal, PRUint32 cabMax); \
  NS_IMETHOD SetAnonymousStringAttribute(const char *attrname, const char *value); \
  NS_IMETHOD GetAnonymousStringAttribute(const char *attrname, char **_retval); \
  NS_IMETHOD SetAnonymousIntAttribute(const char *attrname, PRUint32 value); \
  NS_IMETHOD GetAnonymousIntAttribute(const char *attrname, PRUint32 *_retval); \
  NS_IMETHOD SetAnonymousBoolAttribute(const char *attrname, PRBool value); \
  NS_IMETHOD GetAnonymousBoolAttribute(const char *attrname, PRBool *_retval); \
  NS_IMETHOD AddAnonymousAttributesToDB(void); \
  NS_IMETHOD RemoveAnonymousAttributesFromDB(void); \
  NS_IMETHOD EditAnonymousAttributesInDB(void); \
  NS_IMETHOD AddAnonymousAttributesFromCard(nsIAbCard *card); \
  NS_IMETHOD RemoveAnonymousAttributesFromCard(nsIAbCard *card); \
  NS_IMETHOD EditAnonymousAttributesFromCard(nsIAbCard *card); \
  NS_IMETHOD GetNewRow(nsIMdbRow * *aNewRow); \
  NS_IMETHOD GetNewListRow(nsIMdbRow * *aNewListRow); \
  NS_IMETHOD AddCardRowToDB(nsIMdbRow * newRow); \
  NS_IMETHOD AddLdifListMember(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddFirstName(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddLastName(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddDisplayName(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddNickName(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddPrimaryEmail(nsIMdbRow * row, const char *value); \
  NS_IMETHOD Add2ndEmail(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWorkPhone(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddHomePhone(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddFaxNumber(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddPagerNumber(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddCellularNumber(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddHomeAddress(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddHomeAddress2(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddHomeCity(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddHomeState(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddHomeZipCode(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddHomeCountry(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWorkAddress(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWorkAddress2(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWorkCity(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWorkState(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWorkZipCode(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWorkCountry(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddJobTitle(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddDepartment(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddCompany(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWebPage1(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddWebPage2(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddBirthYear(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddBirthMonth(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddBirthDay(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddCustom1(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddCustom2(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddCustom3(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddCustom4(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddNotes(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddPreferMailFormat(nsIMdbRow * row, PRUint32 value); \
  NS_IMETHOD AddListName(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddListNickName(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddListDescription(nsIMdbRow * row, const char *value); \
  NS_IMETHOD AddListDirNode(nsIMdbRow * listRow); \
  NS_IMETHOD CreateCollationKey(const PRUnichar *sourceStr, nsString & resultStr); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIADDRDATABASE(_to) \
  NS_IMETHOD GetDbPath(nsFileSpec * *aDbPath) { return _to ## GetDbPath(aDbPath); } \
  NS_IMETHOD SetDbPath(nsFileSpec * aDbPath) { return _to ## SetDbPath(aDbPath); } \
  NS_IMETHOD Open(nsFileSpec * folderName, PRBool create, nsIAddrDatabase **pCardDB, PRBool upgrading) { return _to ## Open(folderName, create, pCardDB, upgrading); } \
  NS_IMETHOD Close(PRBool forceCommit) { return _to ## Close(forceCommit); } \
  NS_IMETHOD OpenMDB(nsFileSpec * dbName, PRBool create) { return _to ## OpenMDB(dbName, create); } \
  NS_IMETHOD CloseMDB(PRBool commit) { return _to ## CloseMDB(commit); } \
  NS_IMETHOD OpenAnonymousDB(nsIAddrDatabase **pCardDB) { return _to ## OpenAnonymousDB(pCardDB); } \
  NS_IMETHOD CloseAnonymousDB(PRBool forceCommit) { return _to ## CloseAnonymousDB(forceCommit); } \
  NS_IMETHOD Commit(PRUint32 commitType) { return _to ## Commit(commitType); } \
  NS_IMETHOD ForceClosed(void) { return _to ## ForceClosed(); } \
  NS_IMETHOD CreateNewCardAndAddToDB(nsIAbCard *newCard, PRBool beNotify) { return _to ## CreateNewCardAndAddToDB(newCard, beNotify); } \
  NS_IMETHOD CreateNewCardAndAddToDBWithKey(nsIAbCard *newCard, PRBool beNotify, PRUint32 *key) { return _to ## CreateNewCardAndAddToDBWithKey(newCard, beNotify, key); } \
  NS_IMETHOD CreateNewListCardAndAddToDB(PRUint32 listRowID, nsIAbCard *newCard, PRBool beNotify) { return _to ## CreateNewListCardAndAddToDB(listRowID, newCard, beNotify); } \
  NS_IMETHOD CreateMailListAndAddToDB(nsIAbDirectory *newList, PRBool beNotify) { return _to ## CreateMailListAndAddToDB(newList, beNotify); } \
  NS_IMETHOD EnumerateCards(nsIAbDirectory *directory, nsIEnumerator **_retval) { return _to ## EnumerateCards(directory, _retval); } \
  NS_IMETHOD EnumerateListAddresses(nsIAbDirectory *directory, nsIEnumerator **_retval) { return _to ## EnumerateListAddresses(directory, _retval); } \
  NS_IMETHOD GetMailingListsFromDB(nsIAbDirectory *parentDir) { return _to ## GetMailingListsFromDB(parentDir); } \
  NS_IMETHOD DeleteCard(nsIAbCard *card, PRBool beNotify) { return _to ## DeleteCard(card, beNotify); } \
  NS_IMETHOD EditCard(nsIAbCard *card, PRBool beNotify) { return _to ## EditCard(card, beNotify); } \
  NS_IMETHOD ContainsCard(nsIAbCard *card, PRBool *_retval) { return _to ## ContainsCard(card, _retval); } \
  NS_IMETHOD DeleteMailList(nsIAbDirectory *mailList, PRBool beNotify) { return _to ## DeleteMailList(mailList, beNotify); } \
  NS_IMETHOD EditMailList(nsIAbDirectory *mailList, PRBool beNotify) { return _to ## EditMailList(mailList, beNotify); } \
  NS_IMETHOD ContainsMailList(nsIAbDirectory *mailList, PRBool *_retval) { return _to ## ContainsMailList(mailList, _retval); } \
  NS_IMETHOD DeleteCardFromMailList(nsIAbDirectory *mailList, nsIAbCard *card, PRBool beNotify) { return _to ## DeleteCardFromMailList(mailList, card, beNotify); } \
  NS_IMETHOD GetDirectoryName(PRUnichar **_retval) { return _to ## GetDirectoryName(_retval); } \
  NS_IMETHOD GetCardForEmailAddress(nsIAbDirectory *directory, const char *emailAddress, nsIAbCard **_retval) { return _to ## GetCardForEmailAddress(directory, emailAddress, _retval); } \
  NS_IMETHOD FindMailListbyUnicodeName(const PRUnichar *listName, PRBool *_retval) { return _to ## FindMailListbyUnicodeName(listName, _retval); } \
  NS_IMETHOD GetCardCount(PRUint32 *count) { return _to ## GetCardCount(count); } \
  NS_IMETHOD RemoveExtraCardsInCab(PRUint32 cardTotal, PRUint32 cabMax) { return _to ## RemoveExtraCardsInCab(cardTotal, cabMax); } \
  NS_IMETHOD SetAnonymousStringAttribute(const char *attrname, const char *value) { return _to ## SetAnonymousStringAttribute(attrname, value); } \
  NS_IMETHOD GetAnonymousStringAttribute(const char *attrname, char **_retval) { return _to ## GetAnonymousStringAttribute(attrname, _retval); } \
  NS_IMETHOD SetAnonymousIntAttribute(const char *attrname, PRUint32 value) { return _to ## SetAnonymousIntAttribute(attrname, value); } \
  NS_IMETHOD GetAnonymousIntAttribute(const char *attrname, PRUint32 *_retval) { return _to ## GetAnonymousIntAttribute(attrname, _retval); } \
  NS_IMETHOD SetAnonymousBoolAttribute(const char *attrname, PRBool value) { return _to ## SetAnonymousBoolAttribute(attrname, value); } \
  NS_IMETHOD GetAnonymousBoolAttribute(const char *attrname, PRBool *_retval) { return _to ## GetAnonymousBoolAttribute(attrname, _retval); } \
  NS_IMETHOD AddAnonymousAttributesToDB(void) { return _to ## AddAnonymousAttributesToDB(); } \
  NS_IMETHOD RemoveAnonymousAttributesFromDB(void) { return _to ## RemoveAnonymousAttributesFromDB(); } \
  NS_IMETHOD EditAnonymousAttributesInDB(void) { return _to ## EditAnonymousAttributesInDB(); } \
  NS_IMETHOD AddAnonymousAttributesFromCard(nsIAbCard *card) { return _to ## AddAnonymousAttributesFromCard(card); } \
  NS_IMETHOD RemoveAnonymousAttributesFromCard(nsIAbCard *card) { return _to ## RemoveAnonymousAttributesFromCard(card); } \
  NS_IMETHOD EditAnonymousAttributesFromCard(nsIAbCard *card) { return _to ## EditAnonymousAttributesFromCard(card); } \
  NS_IMETHOD GetNewRow(nsIMdbRow * *aNewRow) { return _to ## GetNewRow(aNewRow); } \
  NS_IMETHOD GetNewListRow(nsIMdbRow * *aNewListRow) { return _to ## GetNewListRow(aNewListRow); } \
  NS_IMETHOD AddCardRowToDB(nsIMdbRow * newRow) { return _to ## AddCardRowToDB(newRow); } \
  NS_IMETHOD AddLdifListMember(nsIMdbRow * row, const char *value) { return _to ## AddLdifListMember(row, value); } \
  NS_IMETHOD AddFirstName(nsIMdbRow * row, const char *value) { return _to ## AddFirstName(row, value); } \
  NS_IMETHOD AddLastName(nsIMdbRow * row, const char *value) { return _to ## AddLastName(row, value); } \
  NS_IMETHOD AddDisplayName(nsIMdbRow * row, const char *value) { return _to ## AddDisplayName(row, value); } \
  NS_IMETHOD AddNickName(nsIMdbRow * row, const char *value) { return _to ## AddNickName(row, value); } \
  NS_IMETHOD AddPrimaryEmail(nsIMdbRow * row, const char *value) { return _to ## AddPrimaryEmail(row, value); } \
  NS_IMETHOD Add2ndEmail(nsIMdbRow * row, const char *value) { return _to ## Add2ndEmail(row, value); } \
  NS_IMETHOD AddWorkPhone(nsIMdbRow * row, const char *value) { return _to ## AddWorkPhone(row, value); } \
  NS_IMETHOD AddHomePhone(nsIMdbRow * row, const char *value) { return _to ## AddHomePhone(row, value); } \
  NS_IMETHOD AddFaxNumber(nsIMdbRow * row, const char *value) { return _to ## AddFaxNumber(row, value); } \
  NS_IMETHOD AddPagerNumber(nsIMdbRow * row, const char *value) { return _to ## AddPagerNumber(row, value); } \
  NS_IMETHOD AddCellularNumber(nsIMdbRow * row, const char *value) { return _to ## AddCellularNumber(row, value); } \
  NS_IMETHOD AddHomeAddress(nsIMdbRow * row, const char *value) { return _to ## AddHomeAddress(row, value); } \
  NS_IMETHOD AddHomeAddress2(nsIMdbRow * row, const char *value) { return _to ## AddHomeAddress2(row, value); } \
  NS_IMETHOD AddHomeCity(nsIMdbRow * row, const char *value) { return _to ## AddHomeCity(row, value); } \
  NS_IMETHOD AddHomeState(nsIMdbRow * row, const char *value) { return _to ## AddHomeState(row, value); } \
  NS_IMETHOD AddHomeZipCode(nsIMdbRow * row, const char *value) { return _to ## AddHomeZipCode(row, value); } \
  NS_IMETHOD AddHomeCountry(nsIMdbRow * row, const char *value) { return _to ## AddHomeCountry(row, value); } \
  NS_IMETHOD AddWorkAddress(nsIMdbRow * row, const char *value) { return _to ## AddWorkAddress(row, value); } \
  NS_IMETHOD AddWorkAddress2(nsIMdbRow * row, const char *value) { return _to ## AddWorkAddress2(row, value); } \
  NS_IMETHOD AddWorkCity(nsIMdbRow * row, const char *value) { return _to ## AddWorkCity(row, value); } \
  NS_IMETHOD AddWorkState(nsIMdbRow * row, const char *value) { return _to ## AddWorkState(row, value); } \
  NS_IMETHOD AddWorkZipCode(nsIMdbRow * row, const char *value) { return _to ## AddWorkZipCode(row, value); } \
  NS_IMETHOD AddWorkCountry(nsIMdbRow * row, const char *value) { return _to ## AddWorkCountry(row, value); } \
  NS_IMETHOD AddJobTitle(nsIMdbRow * row, const char *value) { return _to ## AddJobTitle(row, value); } \
  NS_IMETHOD AddDepartment(nsIMdbRow * row, const char *value) { return _to ## AddDepartment(row, value); } \
  NS_IMETHOD AddCompany(nsIMdbRow * row, const char *value) { return _to ## AddCompany(row, value); } \
  NS_IMETHOD AddWebPage1(nsIMdbRow * row, const char *value) { return _to ## AddWebPage1(row, value); } \
  NS_IMETHOD AddWebPage2(nsIMdbRow * row, const char *value) { return _to ## AddWebPage2(row, value); } \
  NS_IMETHOD AddBirthYear(nsIMdbRow * row, const char *value) { return _to ## AddBirthYear(row, value); } \
  NS_IMETHOD AddBirthMonth(nsIMdbRow * row, const char *value) { return _to ## AddBirthMonth(row, value); } \
  NS_IMETHOD AddBirthDay(nsIMdbRow * row, const char *value) { return _to ## AddBirthDay(row, value); } \
  NS_IMETHOD AddCustom1(nsIMdbRow * row, const char *value) { return _to ## AddCustom1(row, value); } \
  NS_IMETHOD AddCustom2(nsIMdbRow * row, const char *value) { return _to ## AddCustom2(row, value); } \
  NS_IMETHOD AddCustom3(nsIMdbRow * row, const char *value) { return _to ## AddCustom3(row, value); } \
  NS_IMETHOD AddCustom4(nsIMdbRow * row, const char *value) { return _to ## AddCustom4(row, value); } \
  NS_IMETHOD AddNotes(nsIMdbRow * row, const char *value) { return _to ## AddNotes(row, value); } \
  NS_IMETHOD AddPreferMailFormat(nsIMdbRow * row, PRUint32 value) { return _to ## AddPreferMailFormat(row, value); } \
  NS_IMETHOD AddListName(nsIMdbRow * row, const char *value) { return _to ## AddListName(row, value); } \
  NS_IMETHOD AddListNickName(nsIMdbRow * row, const char *value) { return _to ## AddListNickName(row, value); } \
  NS_IMETHOD AddListDescription(nsIMdbRow * row, const char *value) { return _to ## AddListDescription(row, value); } \
  NS_IMETHOD AddListDirNode(nsIMdbRow * listRow) { return _to ## AddListDirNode(listRow); } \
  NS_IMETHOD CreateCollationKey(const PRUnichar *sourceStr, nsString & resultStr) { return _to ## CreateCollationKey(sourceStr, resultStr); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIADDRDATABASE(_to) \
  NS_IMETHOD GetDbPath(nsFileSpec * *aDbPath) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetDbPath(aDbPath); } \
  NS_IMETHOD SetDbPath(nsFileSpec * aDbPath) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->SetDbPath(aDbPath); } \
  NS_IMETHOD Open(nsFileSpec * folderName, PRBool create, nsIAddrDatabase **pCardDB, PRBool upgrading) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Open(folderName, create, pCardDB, upgrading); } \
  NS_IMETHOD Close(PRBool forceCommit) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Close(forceCommit); } \
  NS_IMETHOD OpenMDB(nsFileSpec * dbName, PRBool create) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> OpenMDB(dbName, create); } \
  NS_IMETHOD CloseMDB(PRBool commit) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CloseMDB(commit); } \
  NS_IMETHOD OpenAnonymousDB(nsIAddrDatabase **pCardDB) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> OpenAnonymousDB(pCardDB); } \
  NS_IMETHOD CloseAnonymousDB(PRBool forceCommit) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CloseAnonymousDB(forceCommit); } \
  NS_IMETHOD Commit(PRUint32 commitType) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Commit(commitType); } \
  NS_IMETHOD ForceClosed(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ForceClosed(); } \
  NS_IMETHOD CreateNewCardAndAddToDB(nsIAbCard *newCard, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CreateNewCardAndAddToDB(newCard, beNotify); } \
  NS_IMETHOD CreateNewCardAndAddToDBWithKey(nsIAbCard *newCard, PRBool beNotify, PRUint32 *key) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CreateNewCardAndAddToDBWithKey(newCard, beNotify, key); } \
  NS_IMETHOD CreateNewListCardAndAddToDB(PRUint32 listRowID, nsIAbCard *newCard, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CreateNewListCardAndAddToDB(listRowID, newCard, beNotify); } \
  NS_IMETHOD CreateMailListAndAddToDB(nsIAbDirectory *newList, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CreateMailListAndAddToDB(newList, beNotify); } \
  NS_IMETHOD EnumerateCards(nsIAbDirectory *directory, nsIEnumerator **_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> EnumerateCards(directory, _retval); } \
  NS_IMETHOD EnumerateListAddresses(nsIAbDirectory *directory, nsIEnumerator **_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> EnumerateListAddresses(directory, _retval); } \
  NS_IMETHOD GetMailingListsFromDB(nsIAbDirectory *parentDir) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetMailingListsFromDB(parentDir); } \
  NS_IMETHOD DeleteCard(nsIAbCard *card, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> DeleteCard(card, beNotify); } \
  NS_IMETHOD EditCard(nsIAbCard *card, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> EditCard(card, beNotify); } \
  NS_IMETHOD ContainsCard(nsIAbCard *card, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ContainsCard(card, _retval); } \
  NS_IMETHOD DeleteMailList(nsIAbDirectory *mailList, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> DeleteMailList(mailList, beNotify); } \
  NS_IMETHOD EditMailList(nsIAbDirectory *mailList, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> EditMailList(mailList, beNotify); } \
  NS_IMETHOD ContainsMailList(nsIAbDirectory *mailList, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ContainsMailList(mailList, _retval); } \
  NS_IMETHOD DeleteCardFromMailList(nsIAbDirectory *mailList, nsIAbCard *card, PRBool beNotify) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> DeleteCardFromMailList(mailList, card, beNotify); } \
  NS_IMETHOD GetDirectoryName(PRUnichar **_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetDirectoryName(_retval); } \
  NS_IMETHOD GetCardForEmailAddress(nsIAbDirectory *directory, const char *emailAddress, nsIAbCard **_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetCardForEmailAddress(directory, emailAddress, _retval); } \
  NS_IMETHOD FindMailListbyUnicodeName(const PRUnichar *listName, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> FindMailListbyUnicodeName(listName, _retval); } \
  NS_IMETHOD GetCardCount(PRUint32 *count) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetCardCount(count); } \
  NS_IMETHOD RemoveExtraCardsInCab(PRUint32 cardTotal, PRUint32 cabMax) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> RemoveExtraCardsInCab(cardTotal, cabMax); } \
  NS_IMETHOD SetAnonymousStringAttribute(const char *attrname, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetAnonymousStringAttribute(attrname, value); } \
  NS_IMETHOD GetAnonymousStringAttribute(const char *attrname, char **_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetAnonymousStringAttribute(attrname, _retval); } \
  NS_IMETHOD SetAnonymousIntAttribute(const char *attrname, PRUint32 value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetAnonymousIntAttribute(attrname, value); } \
  NS_IMETHOD GetAnonymousIntAttribute(const char *attrname, PRUint32 *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetAnonymousIntAttribute(attrname, _retval); } \
  NS_IMETHOD SetAnonymousBoolAttribute(const char *attrname, PRBool value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetAnonymousBoolAttribute(attrname, value); } \
  NS_IMETHOD GetAnonymousBoolAttribute(const char *attrname, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetAnonymousBoolAttribute(attrname, _retval); } \
  NS_IMETHOD AddAnonymousAttributesToDB(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddAnonymousAttributesToDB(); } \
  NS_IMETHOD RemoveAnonymousAttributesFromDB(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> RemoveAnonymousAttributesFromDB(); } \
  NS_IMETHOD EditAnonymousAttributesInDB(void) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> EditAnonymousAttributesInDB(); } \
  NS_IMETHOD AddAnonymousAttributesFromCard(nsIAbCard *card) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddAnonymousAttributesFromCard(card); } \
  NS_IMETHOD RemoveAnonymousAttributesFromCard(nsIAbCard *card) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> RemoveAnonymousAttributesFromCard(card); } \
  NS_IMETHOD EditAnonymousAttributesFromCard(nsIAbCard *card) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> EditAnonymousAttributesFromCard(card); } \
  NS_IMETHOD GetNewRow(nsIMdbRow * *aNewRow) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetNewRow(aNewRow); } \
  NS_IMETHOD GetNewListRow(nsIMdbRow * *aNewListRow) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetNewListRow(aNewListRow); } \
  NS_IMETHOD AddCardRowToDB(nsIMdbRow * newRow) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddCardRowToDB(newRow); } \
  NS_IMETHOD AddLdifListMember(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddLdifListMember(row, value); } \
  NS_IMETHOD AddFirstName(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddFirstName(row, value); } \
  NS_IMETHOD AddLastName(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddLastName(row, value); } \
  NS_IMETHOD AddDisplayName(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddDisplayName(row, value); } \
  NS_IMETHOD AddNickName(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddNickName(row, value); } \
  NS_IMETHOD AddPrimaryEmail(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddPrimaryEmail(row, value); } \
  NS_IMETHOD Add2ndEmail(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> Add2ndEmail(row, value); } \
  NS_IMETHOD AddWorkPhone(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWorkPhone(row, value); } \
  NS_IMETHOD AddHomePhone(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddHomePhone(row, value); } \
  NS_IMETHOD AddFaxNumber(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddFaxNumber(row, value); } \
  NS_IMETHOD AddPagerNumber(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddPagerNumber(row, value); } \
  NS_IMETHOD AddCellularNumber(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddCellularNumber(row, value); } \
  NS_IMETHOD AddHomeAddress(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddHomeAddress(row, value); } \
  NS_IMETHOD AddHomeAddress2(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddHomeAddress2(row, value); } \
  NS_IMETHOD AddHomeCity(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddHomeCity(row, value); } \
  NS_IMETHOD AddHomeState(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddHomeState(row, value); } \
  NS_IMETHOD AddHomeZipCode(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddHomeZipCode(row, value); } \
  NS_IMETHOD AddHomeCountry(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddHomeCountry(row, value); } \
  NS_IMETHOD AddWorkAddress(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWorkAddress(row, value); } \
  NS_IMETHOD AddWorkAddress2(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWorkAddress2(row, value); } \
  NS_IMETHOD AddWorkCity(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWorkCity(row, value); } \
  NS_IMETHOD AddWorkState(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWorkState(row, value); } \
  NS_IMETHOD AddWorkZipCode(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWorkZipCode(row, value); } \
  NS_IMETHOD AddWorkCountry(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWorkCountry(row, value); } \
  NS_IMETHOD AddJobTitle(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddJobTitle(row, value); } \
  NS_IMETHOD AddDepartment(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddDepartment(row, value); } \
  NS_IMETHOD AddCompany(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddCompany(row, value); } \
  NS_IMETHOD AddWebPage1(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWebPage1(row, value); } \
  NS_IMETHOD AddWebPage2(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddWebPage2(row, value); } \
  NS_IMETHOD AddBirthYear(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddBirthYear(row, value); } \
  NS_IMETHOD AddBirthMonth(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddBirthMonth(row, value); } \
  NS_IMETHOD AddBirthDay(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddBirthDay(row, value); } \
  NS_IMETHOD AddCustom1(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddCustom1(row, value); } \
  NS_IMETHOD AddCustom2(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddCustom2(row, value); } \
  NS_IMETHOD AddCustom3(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddCustom3(row, value); } \
  NS_IMETHOD AddCustom4(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddCustom4(row, value); } \
  NS_IMETHOD AddNotes(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddNotes(row, value); } \
  NS_IMETHOD AddPreferMailFormat(nsIMdbRow * row, PRUint32 value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddPreferMailFormat(row, value); } \
  NS_IMETHOD AddListName(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddListName(row, value); } \
  NS_IMETHOD AddListNickName(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddListNickName(row, value); } \
  NS_IMETHOD AddListDescription(nsIMdbRow * row, const char *value) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddListDescription(row, value); } \
  NS_IMETHOD AddListDirNode(nsIMdbRow * listRow) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> AddListDirNode(listRow); } \
  NS_IMETHOD CreateCollationKey(const PRUnichar *sourceStr, nsString & resultStr) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> CreateCollationKey(sourceStr, resultStr); } 

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

/* Header file */
class nsAddrDatabase : public nsIAddrDatabase
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIADDRDATABASE

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAddrDatabase, nsIAddrDatabase)

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

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

/* [noscript] attribute nsFileSpec dbPath; */
NS_IMETHODIMP nsAddrDatabase::GetDbPath(nsFileSpec * *aDbPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAddrDatabase::SetDbPath(nsFileSpec * aDbPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void open (in nsFileSpec folderName, in boolean create, out nsIAddrDatabase pCardDB, in boolean upgrading); */
NS_IMETHODIMP nsAddrDatabase::Open(nsFileSpec * folderName, PRBool create, nsIAddrDatabase **pCardDB, PRBool upgrading)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void close (in boolean forceCommit); */
NS_IMETHODIMP nsAddrDatabase::Close(PRBool forceCommit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void openMDB (in nsFileSpec dbName, in boolean create); */
NS_IMETHODIMP nsAddrDatabase::OpenMDB(nsFileSpec * dbName, PRBool create)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void closeMDB (in boolean commit); */
NS_IMETHODIMP nsAddrDatabase::CloseMDB(PRBool commit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void openAnonymousDB (out nsIAddrDatabase pCardDB); */
NS_IMETHODIMP nsAddrDatabase::OpenAnonymousDB(nsIAddrDatabase **pCardDB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void closeAnonymousDB (in boolean forceCommit); */
NS_IMETHODIMP nsAddrDatabase::CloseAnonymousDB(PRBool forceCommit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void commit (in unsigned long commitType); */
NS_IMETHODIMP nsAddrDatabase::Commit(PRUint32 commitType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void forceClosed (); */
NS_IMETHODIMP nsAddrDatabase::ForceClosed()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createNewCardAndAddToDB (in nsIAbCard newCard, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::CreateNewCardAndAddToDB(nsIAbCard *newCard, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createNewCardAndAddToDBWithKey (in nsIAbCard newCard, in boolean beNotify, out unsigned long key); */
NS_IMETHODIMP nsAddrDatabase::CreateNewCardAndAddToDBWithKey(nsIAbCard *newCard, PRBool beNotify, PRUint32 *key)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createNewListCardAndAddToDB (in unsigned long listRowID, in nsIAbCard newCard, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::CreateNewListCardAndAddToDB(PRUint32 listRowID, nsIAbCard *newCard, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createMailListAndAddToDB (in nsIAbDirectory newList, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::CreateMailListAndAddToDB(nsIAbDirectory *newList, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIEnumerator enumerateCards (in nsIAbDirectory directory); */
NS_IMETHODIMP nsAddrDatabase::EnumerateCards(nsIAbDirectory *directory, nsIEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIEnumerator enumerateListAddresses (in nsIAbDirectory directory); */
NS_IMETHODIMP nsAddrDatabase::EnumerateListAddresses(nsIAbDirectory *directory, nsIEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMailingListsFromDB (in nsIAbDirectory parentDir); */
NS_IMETHODIMP nsAddrDatabase::GetMailingListsFromDB(nsIAbDirectory *parentDir)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteCard (in nsIAbCard card, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::DeleteCard(nsIAbCard *card, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editCard (in nsIAbCard card, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::EditCard(nsIAbCard *card, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean containsCard (in nsIAbCard card); */
NS_IMETHODIMP nsAddrDatabase::ContainsCard(nsIAbCard *card, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteMailList (in nsIAbDirectory mailList, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::DeleteMailList(nsIAbDirectory *mailList, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editMailList (in nsIAbDirectory mailList, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::EditMailList(nsIAbDirectory *mailList, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean containsMailList (in nsIAbDirectory mailList); */
NS_IMETHODIMP nsAddrDatabase::ContainsMailList(nsIAbDirectory *mailList, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteCardFromMailList (in nsIAbDirectory mailList, in nsIAbCard card, in boolean beNotify); */
NS_IMETHODIMP nsAddrDatabase::DeleteCardFromMailList(nsIAbDirectory *mailList, nsIAbCard *card, PRBool beNotify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring getDirectoryName (); */
NS_IMETHODIMP nsAddrDatabase::GetDirectoryName(PRUnichar **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbCard getCardForEmailAddress (in nsIAbDirectory directory, in string emailAddress); */
NS_IMETHODIMP nsAddrDatabase::GetCardForEmailAddress(nsIAbDirectory *directory, const char *emailAddress, nsIAbCard **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* PRBool findMailListbyUnicodeName (in wstring listName); */
NS_IMETHODIMP nsAddrDatabase::FindMailListbyUnicodeName(const PRUnichar *listName, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCardCount (out PRUint32 count); */
NS_IMETHODIMP nsAddrDatabase::GetCardCount(PRUint32 *count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void RemoveExtraCardsInCab (in PRUint32 cardTotal, in PRUint32 cabMax); */
NS_IMETHODIMP nsAddrDatabase::RemoveExtraCardsInCab(PRUint32 cardTotal, PRUint32 cabMax)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAnonymousStringAttribute (in string attrname, in string value); */
NS_IMETHODIMP nsAddrDatabase::SetAnonymousStringAttribute(const char *attrname, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string getAnonymousStringAttribute (in string attrname); */
NS_IMETHODIMP nsAddrDatabase::GetAnonymousStringAttribute(const char *attrname, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAnonymousIntAttribute (in string attrname, in unsigned long value); */
NS_IMETHODIMP nsAddrDatabase::SetAnonymousIntAttribute(const char *attrname, PRUint32 value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long getAnonymousIntAttribute (in string attrname); */
NS_IMETHODIMP nsAddrDatabase::GetAnonymousIntAttribute(const char *attrname, PRUint32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAnonymousBoolAttribute (in string attrname, in boolean value); */
NS_IMETHODIMP nsAddrDatabase::SetAnonymousBoolAttribute(const char *attrname, PRBool value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getAnonymousBoolAttribute (in string attrname); */
NS_IMETHODIMP nsAddrDatabase::GetAnonymousBoolAttribute(const char *attrname, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAnonymousAttributesToDB (); */
NS_IMETHODIMP nsAddrDatabase::AddAnonymousAttributesToDB()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAnonymousAttributesFromDB (); */
NS_IMETHODIMP nsAddrDatabase::RemoveAnonymousAttributesFromDB()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editAnonymousAttributesInDB (); */
NS_IMETHODIMP nsAddrDatabase::EditAnonymousAttributesInDB()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAnonymousAttributesFromCard (in nsIAbCard card); */
NS_IMETHODIMP nsAddrDatabase::AddAnonymousAttributesFromCard(nsIAbCard *card)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAnonymousAttributesFromCard (in nsIAbCard card); */
NS_IMETHODIMP nsAddrDatabase::RemoveAnonymousAttributesFromCard(nsIAbCard *card)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void editAnonymousAttributesFromCard (in nsIAbCard card); */
NS_IMETHODIMP nsAddrDatabase::EditAnonymousAttributesFromCard(nsIAbCard *card)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] readonly attribute nsIMdbRow newRow; */
NS_IMETHODIMP nsAddrDatabase::GetNewRow(nsIMdbRow * *aNewRow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] readonly attribute nsIMdbRow newListRow; */
NS_IMETHODIMP nsAddrDatabase::GetNewListRow(nsIMdbRow * *aNewListRow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addCardRowToDB (in nsIMdbRow newRow); */
NS_IMETHODIMP nsAddrDatabase::AddCardRowToDB(nsIMdbRow * newRow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addLdifListMember (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddLdifListMember(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addFirstName (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddFirstName(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addLastName (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddLastName(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addDisplayName (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddDisplayName(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addNickName (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddNickName(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addPrimaryEmail (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddPrimaryEmail(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void add2ndEmail (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::Add2ndEmail(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWorkPhone (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWorkPhone(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addHomePhone (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddHomePhone(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addFaxNumber (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddFaxNumber(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addPagerNumber (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddPagerNumber(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addCellularNumber (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddCellularNumber(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addHomeAddress (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddHomeAddress(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addHomeAddress2 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddHomeAddress2(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addHomeCity (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddHomeCity(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addHomeState (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddHomeState(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addHomeZipCode (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddHomeZipCode(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addHomeCountry (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddHomeCountry(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWorkAddress (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWorkAddress(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWorkAddress2 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWorkAddress2(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWorkCity (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWorkCity(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWorkState (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWorkState(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWorkZipCode (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWorkZipCode(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWorkCountry (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWorkCountry(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addJobTitle (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddJobTitle(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addDepartment (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddDepartment(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addCompany (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddCompany(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWebPage1 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWebPage1(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addWebPage2 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddWebPage2(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addBirthYear (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddBirthYear(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addBirthMonth (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddBirthMonth(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addBirthDay (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddBirthDay(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addCustom1 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddCustom1(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addCustom2 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddCustom2(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addCustom3 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddCustom3(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addCustom4 (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddCustom4(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addNotes (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddNotes(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addPreferMailFormat (in nsIMdbRow row, in unsigned long value); */
NS_IMETHODIMP nsAddrDatabase::AddPreferMailFormat(nsIMdbRow * row, PRUint32 value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addListName (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddListName(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addListNickName (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddListNickName(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void addListDescription (in nsIMdbRow row, in string value); */
NS_IMETHODIMP nsAddrDatabase::AddListDescription(nsIMdbRow * row, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void AddListDirNode (in nsIMdbRow listRow); */
NS_IMETHODIMP nsAddrDatabase::AddListDirNode(nsIMdbRow * listRow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void createCollationKey (in wstring sourceStr, in nsStringRef resultStr); */
NS_IMETHODIMP nsAddrDatabase::CreateCollationKey(const PRUnichar *sourceStr, nsString & resultStr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAddrDatabase_h__ */
