|
1 /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 /** |
|
7 * The nsIComponentManager interface. |
|
8 */ |
|
9 |
|
10 #include "nsISupports.idl" |
|
11 |
|
12 interface nsIFile; |
|
13 interface nsIFactory; |
|
14 interface nsIArray; |
|
15 |
|
16 [scriptable, uuid(d604ffc3-1ba3-4f6c-b65f-1ed4199364c3)] |
|
17 interface nsIComponentManager : nsISupports |
|
18 { |
|
19 /** |
|
20 * getClassObject |
|
21 * |
|
22 * Returns the factory object that can be used to create instances of |
|
23 * CID aClass |
|
24 * |
|
25 * @param aClass The classid of the factory that is being requested |
|
26 */ |
|
27 void getClassObject(in nsCIDRef aClass, |
|
28 in nsIIDRef aIID, |
|
29 [iid_is(aIID),retval] out nsQIResult result); |
|
30 |
|
31 /** |
|
32 * getClassObjectByContractID |
|
33 * |
|
34 * Returns the factory object that can be used to create instances of |
|
35 * CID aClass |
|
36 * |
|
37 * @param aClass The classid of the factory that is being requested |
|
38 */ |
|
39 void getClassObjectByContractID(in string aContractID, |
|
40 in nsIIDRef aIID, |
|
41 [iid_is(aIID),retval] out nsQIResult result); |
|
42 |
|
43 |
|
44 /** |
|
45 * createInstance |
|
46 * |
|
47 * Create an instance of the CID aClass and return the interface aIID. |
|
48 * |
|
49 * @param aClass : ClassID of object instance requested |
|
50 * @param aDelegate : Used for aggregation |
|
51 * @param aIID : IID of interface requested |
|
52 */ |
|
53 void createInstance(in nsCIDRef aClass, |
|
54 in nsISupports aDelegate, |
|
55 in nsIIDRef aIID, |
|
56 [iid_is(aIID),retval] out nsQIResult result); |
|
57 |
|
58 /** |
|
59 * createInstanceByContractID |
|
60 * |
|
61 * Create an instance of the CID that implements aContractID and return the |
|
62 * interface aIID. |
|
63 * |
|
64 * @param aContractID : aContractID of object instance requested |
|
65 * @param aDelegate : Used for aggregation |
|
66 * @param aIID : IID of interface requested |
|
67 */ |
|
68 void createInstanceByContractID(in string aContractID, |
|
69 in nsISupports aDelegate, |
|
70 in nsIIDRef aIID, |
|
71 [iid_is(aIID),retval] out nsQIResult result); |
|
72 |
|
73 /** |
|
74 * addBootstrappedManifestLocation |
|
75 * |
|
76 * Adds a bootstrapped manifest location on runtime. |
|
77 * |
|
78 * @param aLocation : A directory where chrome.manifest resides, |
|
79 * or an XPI with it on the root. |
|
80 */ |
|
81 void addBootstrappedManifestLocation(in nsIFile aLocation); |
|
82 |
|
83 /** |
|
84 * removeBootstrappedManifestLocation |
|
85 * |
|
86 * Removes a bootstrapped manifest location on runtime. |
|
87 * |
|
88 * @param aLocation : A directory where chrome.manifest resides, |
|
89 * or an XPI with it on the root. |
|
90 */ |
|
91 void removeBootstrappedManifestLocation(in nsIFile aLocation); |
|
92 |
|
93 /** |
|
94 * getManifestLocations |
|
95 * |
|
96 * Get an array of nsIURIs of all registered and builtin manifest locations. |
|
97 */ |
|
98 nsIArray getManifestLocations(); |
|
99 }; |
|
100 |
|
101 |
|
102 %{ C++ |
|
103 #ifdef MOZILLA_INTERNAL_API |
|
104 #include "nsComponentManagerUtils.h" |
|
105 #endif |
|
106 %} C++ |