1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
typedef unsigned long abListenerNotifyFlagValue;
/**
* nsIAbListener
*
* Implement this interface to receive notifications of address book
* items being added, removed or changed with loaded address books.
*
* Subscribe to events by using nsIAbManager.
*/
[scriptable, uuid(b3ca8745-2dad-4032-ae2f-0b8622f32697)]
interface nsIAbListener : nsISupports {
/**
* These flags are used when registering the listener with nsIAbManager to
* specify when to receive notifications of address book updates.
*/
/**
* An address book, mailing list or card is added.
*/
const abListenerNotifyFlagValue itemAdded = 0x1;
/**
* A mailing list or card is removed from an address book.
*/
const abListenerNotifyFlagValue directoryItemRemoved = 0x2;
/**
* An address book is removed
*/
const abListenerNotifyFlagValue directoryRemoved = 0x4;
/**
* An address book, mailing list or card is changed.
*/
const abListenerNotifyFlagValue itemChanged = 0x8;
/**
* All of the above notifications are to be received.
*/
const abListenerNotifyFlagValue all = 0xFFFFFFFF;
/**
* Called when an address book item (book, card or list) is added
*
* @param parentDir The parent of the item being added.
*
* @param item The item being added to the database (a
* directory or card).
*
*/
void onItemAdded(in nsISupports parentDir, in nsISupports item);
/**
* Called when an address book, mailing list or card is removed. This
* is partially configurable when setting up the listener via
* nsIAddrBookSession
*
* @param parentDir The parent of the item being removed, this
* may be an empty directory in the case of a
* top level address book.
*
* @param item The item being removed from the database.
*
*/
void onItemRemoved(in nsISupports parentDir, in nsISupports item);
/**
* Called when an address book item is changed. Note the current
* implementation means that property is either the literal string "DirName"
* or null, with oldValue and newValue being specified if the property is
* "DirName" otherwise they are null.
*
* @param item The item being updated (a directory or a
* card).
*
* @param property The property of the item being changed.
*
* @param oldValue The old value of the item property being
* changed if it is known, null otherwise.
*
* @param newValue The new value of the item property being
* changed.
*
*/
void onItemPropertyChanged(in nsISupports item, in string property, in wstring oldValue, in wstring newValue);
};
|