зеркало из https://github.com/mozilla/gecko-dev.git
271 строка
13 KiB
Plaintext
271 строка
13 KiB
Plaintext
/* -*- 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 <sspitzer@netscape.com>
|
|
*
|
|
* 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"
|
|
|
|
interface nsIMdbTableRowCursor;
|
|
interface nsIMdbEnv;
|
|
interface nsIMdbRow;
|
|
|
|
%{C++
|
|
// this is the prefix we for attributes that are specific
|
|
// to the mozilla addressbook, and weren't in 4.x and aren't specified in
|
|
// RFC 2789. used when exporting and import LDIF
|
|
// see nsTextAddress.cpp, nsAddressBook.cpp
|
|
#define MOZ_AB_LDIF_PREFIX "mozilla"
|
|
|
|
// 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 kPhoneticFirstNameColumn "PhoneticFirstName"
|
|
#define kPhoneticLastNameColumn "PhoneticLastName"
|
|
#define kPhoneticNameColumn "_PhoneticName"
|
|
#define kDisplayNameColumn "DisplayName"
|
|
#define kNicknameColumn "NickName"
|
|
#define kPriEmailColumn "PrimaryEmail"
|
|
#define k2ndEmailColumn "SecondEmail"
|
|
#define kDefaultEmailColumn "DefaultEmail"
|
|
#define kCardTypeColumn "CardType"
|
|
#define kPreferMailFormatColumn "PreferMailFormat"
|
|
#define kWorkPhoneColumn "WorkPhone"
|
|
#define kHomePhoneColumn "HomePhone"
|
|
#define kFaxColumn "FaxNumber"
|
|
#define kPagerColumn "PagerNumber"
|
|
#define kCellularColumn "CellularNumber"
|
|
#define kWorkPhoneTypeColumn "WorkPhoneType"
|
|
#define kHomePhoneTypeColumn "HomePhoneType"
|
|
#define kFaxTypeColumn "FaxNumberType"
|
|
#define kPagerTypeColumn "PagerNumberType"
|
|
#define kCellularTypeColumn "CellularNumberType"
|
|
#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"
|
|
#define kAimScreenNameColumn "_AimScreenName"
|
|
#define kAnniversaryYearColumn "AnniversaryYear"
|
|
#define kAnniversaryMonthColumn "AnniversaryMonth"
|
|
#define kAnniversaryDayColumn "AnniversaryDay"
|
|
#define kSpouseNameColumn "SpouseName"
|
|
#define kFamilyNameColumn "FamilyName"
|
|
#define kDefaultAddressColumn "DefaultAddress"
|
|
#define kCategoryColumn "Category"
|
|
// 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"
|
|
// not shown in the UI
|
|
#define kLowerPriEmailColumn "LowercasePrimaryEmail"
|
|
%}
|
|
|
|
[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);
|
|
void createMailListAndAddToDBWithKey(in nsIAbDirectory newList, in boolean aNotify, out PRUint32 key);
|
|
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);
|
|
|
|
[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 addPhoneticFirstName(in nsIMdbRow row, in string value);
|
|
[noscript] void addPhoneticLastName(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 addDefaultEmail(in nsIMdbRow row, in string value);
|
|
[noscript] void addCardType(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 addWorkPhoneType(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomePhoneType(in nsIMdbRow row, in string value);
|
|
[noscript] void addFaxNumberType(in nsIMdbRow row, in string value);
|
|
[noscript] void addPagerNumberType(in nsIMdbRow row, in string value);
|
|
[noscript] void addCellularNumberType(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 addAimScreenName(in nsIMdbRow row, in string value);
|
|
[noscript] void addAnniversaryYear(in nsIMdbRow row, in string value);
|
|
[noscript] void addAnniversaryMonth(in nsIMdbRow row, in string value);
|
|
[noscript] void addAnniversaryDay(in nsIMdbRow row, in string value);
|
|
[noscript] void addSpouseName(in nsIMdbRow row, in string value);
|
|
[noscript] void addFamilyName(in nsIMdbRow row, in string value);
|
|
[noscript] void addDefaultAddress(in nsIMdbRow row, in string value);
|
|
[noscript] void addCategory(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);
|
|
|
|
void getDeletedCardList(out unsigned long aCount, out nsISupportsArray aDeletedList);
|
|
void getDeletedCardCount(out unsigned long count);
|
|
|
|
/**
|
|
* used for adding a string attributes to a row.
|
|
* used during LDIF and addressbook import.
|
|
*
|
|
* @param aRow
|
|
* The row we're adding the column to
|
|
* @param aLDIFAttributeName
|
|
* The column name (examples: mozillaCategory,
|
|
* mozilla_AimScreenName)
|
|
* @param aColValue
|
|
* The column value (example: jabroni316)
|
|
*/
|
|
[noscript] void addRowValue(in nsIMdbRow aRow, in ACString aLDIFAttributeName, in AString aColValue);
|
|
|
|
void AddListCardColumnsToRow(in nsIAbCard aPCard,
|
|
in nsIMdbRow aPListRow,
|
|
in unsigned long aPos,
|
|
out nsIAbCard aPNewCard,
|
|
in boolean aInMailingList);
|
|
void InitCardFromRow(in nsIAbCard aNewCard,in nsIMdbRow aCardRow);
|
|
void SetListAddressTotal(in nsIMdbRow aListRow, in PRUint32 aTotal);
|
|
nsIMdbRow FindRowByCard(in nsIAbCard aCard);
|
|
|
|
};
|