diff --git a/mailnews/addrbook/public/nsIAddrDBAnnouncer.idl b/mailnews/addrbook/public/nsIAddrDBAnnouncer.idl new file mode 100644 index 00000000000..bfb177e57b2 --- /dev/null +++ b/mailnews/addrbook/public/nsIAddrDBAnnouncer.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#include "nsISupports.idl" + +interface nsIAddrDBListener; + +[scriptable, uuid(A4186D8A-1DD0-11d3-A303-001083003D0C)] +interface nsIAddrDBAnnouncer : nsISupports { + + void AddListener(in nsIAddrDBListener listener); + void RemoveListener(in nsIAddrDBListener listener); + + void NotifyCardAttribChange(in unsigned long abCode, + in nsIAddrDBListener instigator); + void NotifyCardEntryChange (in unsigned long abCode, + in unsigned long entryID, + in nsIAddrDBListener instigator); + + void NotifyAnnouncerGoingAway(); +}; diff --git a/mailnews/addrbook/public/nsIAddrDBListener.idl b/mailnews/addrbook/public/nsIAddrDBListener.idl new file mode 100644 index 00000000000..80fa3886368 --- /dev/null +++ b/mailnews/addrbook/public/nsIAddrDBListener.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ +#include "nsISupports.idl" + +interface nsIAddrDBAnnouncer; + +[scriptable, uuid(A4186D89-1DD0-11d3-A303-001083003D0C)] +interface nsIAddrDBListener : nsISupports { + + void OnCardAttribChange(in unsigned long abCode, + in nsIAddrDBListener instigator); + void OnCardEntryChange (in unsigned long abCode, + in unsigned long entryID, + in nsIAddrDBListener instigator); + void OnAnnouncerGoingAway(in nsIAddrDBAnnouncer instigator); +}; diff --git a/mailnews/addrbook/public/nsIAddrDatabase.idl b/mailnews/addrbook/public/nsIAddrDatabase.idl new file mode 100644 index 00000000000..81c175b8f6a --- /dev/null +++ b/mailnews/addrbook/public/nsIAddrDatabase.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#include "nsIAddrDBAnnouncer.idl" +#include "nsIAbCard.idl" + +[ref] native nsFileSpec(nsFileSpec); +[ptr] native nsIMdbTableRowCursor(nsIMdbTableRowCursor); +[ptr] native nsIMdbEnv(nsIMdbEnv); + +%{C++ +#include "nsFileSpec.h" +#include "mdb.h" +%} + + +[scriptable, uuid(A4186D8B-1DD0-11d3-A303-001083003D0C)] +interface nsIAddrDatabase : nsIAddrDBAnnouncer { + + void Open(in nsFileSpec folderName, in boolean create, + out nsIAddrDatabase pMessageDB, in boolean upgrading); + void Close(in boolean forceCommit); + void OpenMDB(in string dbName, in boolean create); + void CloseMDB(in boolean commit); + + void Commit(in unsigned long commitType); + void ForceClosed(); + + void CreateNewCardAndAddToDB(in nsIAbCard newCard, in boolean benotify); + void EnumerateCards(out nsIEnumerator result); +};