/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: NPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Netscape Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Seth Spitzer * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the NPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the NPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /* nsFileSpec is declared in nsIAbDirectory.idl */ #include "nsIAddrDBAnnouncer.idl" #include "nsIAbCard.idl" #include "nsIAbDirectory.idl" %{C++ #include "mdb.h" %} [ptr] native nsIMdbTableRowCursor(nsIMdbTableRowCursor); [ptr] native nsIMdbEnv(nsIMdbEnv); [ptr] native nsIMdbRow(nsIMdbRow); %{C++ // note, GeneratedName is not a real column // if you change any of this, make sure to change // Get / Set CardValue in nsAbCardProperty.cpp #define kFirstNameColumn "FirstName" #define kLastNameColumn "LastName" #define kDisplayNameColumn "DisplayName" #define kNicknameColumn "NickName" #define kPriEmailColumn "PrimaryEmail" #define k2ndEmailColumn "SecondEmail" #define kPreferMailFormatColumn "PreferMailFormat" #define kWorkPhoneColumn "WorkPhone" #define kHomePhoneColumn "HomePhone" #define kFaxColumn "FaxNumber" #define kPagerColumn "PagerNumber" #define kCellularColumn "CellularNumber" #define kHomeAddressColumn "HomeAddress" #define kHomeAddress2Column "HomeAddress2" #define kHomeCityColumn "HomeCity" #define kHomeStateColumn "HomeState" #define kHomeZipCodeColumn "HomeZipCode" #define kHomeCountryColumn "HomeCountry" #define kWorkAddressColumn "WorkAddress" #define kWorkAddress2Column "WorkAddress2" #define kWorkCityColumn "WorkCity" #define kWorkStateColumn "WorkState" #define kWorkZipCodeColumn "WorkZipCode" #define kWorkCountryColumn "WorkCountry" #define kJobTitleColumn "JobTitle" #define kDepartmentColumn "Department" #define kCompanyColumn "Company" // webPage1 is work web page #define kWebPage1Column "WebPage1" // webPage2 is home web page #define kWebPage2Column "WebPage2" #define kBirthYearColumn "BirthYear" #define kBirthMonthColumn "BirthMonth" #define kBirthDayColumn "BirthDay" #define kCustom1Column "Custom1" #define kCustom2Column "Custom2" #define kCustom3Column "Custom3" #define kCustom4Column "Custom4" #define kNotesColumn "Notes" #define kLastModifiedDateColumn "LastModifiedDate" #define kAddressCharSetColumn "AddrCharSet" #define kMailListName "ListName" #define kMailListNickName "ListNickName" #define kMailListDescription "ListDescription" #define kMailListTotalAddresses "ListTotalAddresses" %} [scriptable, uuid(ca536e0e-1dd1-11b2-951a-e02b86e4f60e)] interface nsAddrDBCommitType { const long kSmallCommit = 0; const long kLargeCommit = 1; const long kSessionCommit = 2; const long kCompressCommit = 3; }; [scriptable, uuid(A4186D8B-1DD0-11d3-A303-001083003D0C)] interface nsIAddrDatabase : nsIAddrDBAnnouncer { [noscript] attribute nsFileSpec dbPath; [noscript] void open(in nsFileSpec folderName, in boolean create, out nsIAddrDatabase pCardDB, in boolean upgrading); void close(in boolean forceCommit); [noscript] void openMDB(in nsFileSpec dbName, in boolean create); void closeMDB(in boolean commit); void commit(in unsigned long commitType); void forceClosed(); void createNewCardAndAddToDB(in nsIAbCard newCard, in boolean aNotify); void createNewCardAndAddToDBWithKey(in nsIAbCard newCard, in boolean aNotify, out unsigned long key); void createNewListCardAndAddToDB(in nsIAbDirectory list, in unsigned long listRowID, in nsIAbCard newCard, in boolean aNotify); void createMailListAndAddToDB(in nsIAbDirectory newList, in boolean aNotify); nsIEnumerator enumerateCards(in nsIAbDirectory directory); nsIEnumerator enumerateListAddresses(in nsIAbDirectory directory); void getMailingListsFromDB(in nsIAbDirectory parentDir); void deleteCard(in nsIAbCard card, in boolean aNotify); void editCard(in nsIAbCard card, in boolean aNotify); boolean containsCard(in nsIAbCard card); void deleteMailList(in nsIAbDirectory mailList, in boolean aNotify); void editMailList(in nsIAbDirectory mailList, in nsIAbCard listCard, in boolean aNotify); boolean containsMailList(in nsIAbDirectory mailList); void deleteCardFromMailList(in nsIAbDirectory mailList, in nsIAbCard card, in boolean aNotify); readonly attribute wstring directoryName; /** * aUTF8Value needs to be in UTF-8 */ nsIAbCard getCardFromAttribute(in nsIAbDirectory directory, in string aName, in string aUTF8Value, in boolean caseInsensitive); PRBool findMailListbyUnicodeName(in wstring listName); void getCardCount(out PRUint32 count); void removeExtraCardsInCab(in PRUint32 cardTotal, in PRUint32 cabMax); [noscript] readonly attribute nsIMdbRow newRow; [noscript] readonly attribute nsIMdbRow newListRow; [noscript] void addCardRowToDB(in nsIMdbRow newRow); [noscript] void addLdifListMember(in nsIMdbRow row, in string value); [noscript] void addFirstName(in nsIMdbRow row, in string value); [noscript] void addLastName(in nsIMdbRow row, in string value); [noscript] void addDisplayName(in nsIMdbRow row, in string value); [noscript] void addNickName(in nsIMdbRow row, in string value); [noscript] void addPrimaryEmail(in nsIMdbRow row, in string value); [noscript] void add2ndEmail(in nsIMdbRow row, in string value); [noscript] void addWorkPhone(in nsIMdbRow row, in string value); [noscript] void addHomePhone(in nsIMdbRow row, in string value); [noscript] void addFaxNumber(in nsIMdbRow row, in string value); [noscript] void addPagerNumber(in nsIMdbRow row, in string value); [noscript] void addCellularNumber(in nsIMdbRow row, in string value); [noscript] void addHomeAddress(in nsIMdbRow row, in string value); [noscript] void addHomeAddress2(in nsIMdbRow row, in string value); [noscript] void addHomeCity(in nsIMdbRow row, in string value); [noscript] void addHomeState(in nsIMdbRow row, in string value); [noscript] void addHomeZipCode(in nsIMdbRow row, in string value); [noscript] void addHomeCountry(in nsIMdbRow row, in string value); [noscript] void addWorkAddress(in nsIMdbRow row, in string value); [noscript] void addWorkAddress2(in nsIMdbRow row, in string value); [noscript] void addWorkCity(in nsIMdbRow row, in string value); [noscript] void addWorkState(in nsIMdbRow row, in string value); [noscript] void addWorkZipCode(in nsIMdbRow row, in string value); [noscript] void addWorkCountry(in nsIMdbRow row, in string value); [noscript] void addJobTitle(in nsIMdbRow row, in string value); [noscript] void addDepartment(in nsIMdbRow row, in string value); [noscript] void addCompany(in nsIMdbRow row, in string value); [noscript] void addWebPage1(in nsIMdbRow row, in string value); [noscript] void addWebPage2(in nsIMdbRow row, in string value); [noscript] void addBirthYear(in nsIMdbRow row, in string value); [noscript] void addBirthMonth(in nsIMdbRow row, in string value); [noscript] void addBirthDay(in nsIMdbRow row, in string value); [noscript] void addCustom1(in nsIMdbRow row, in string value); [noscript] void addCustom2(in nsIMdbRow row, in string value); [noscript] void addCustom3(in nsIMdbRow row, in string value); [noscript] void addCustom4(in nsIMdbRow row, in string value); [noscript] void addNotes(in nsIMdbRow row, in string value); [noscript] void addPreferMailFormat(in nsIMdbRow row, in unsigned long value); [noscript] void addListName(in nsIMdbRow row, in string value); [noscript] void addListNickName(in nsIMdbRow row, in string value); [noscript] void addListDescription(in nsIMdbRow row, in string value); [noscript] void addListDirNode(in nsIMdbRow listRow); /** * use for getting and setting generic string attributes * like _AimScreenName */ void setCardValue(in nsIAbCard card, in string name, in wstring value, in boolean notify); wstring getCardValue(in nsIAbCard card, in string name); };