1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /* 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"
- interface nsIFile;
- interface nsIComponentManager;
- /**
- * The nsIModule interface.
- */
- [scriptable, uuid(7392D032-5371-11d3-994E-00805FD26FEE)]
- interface nsIModule : nsISupports
- {
- /**
- * Object Instance Creation
- *
- * Obtains a Class Object from a nsIModule for a given CID and IID pair.
- * This class object can either be query to a nsIFactory or a may be
- * query to a nsIClassInfo.
- *
- * @param aCompMgr : The global component manager
- * @param aClass : ClassID of object instance requested
- * @param aIID : IID of interface requested
- *
- */
- void getClassObject(in nsIComponentManager aCompMgr,
- in nsCIDRef aClass,
- in nsIIDRef aIID,
- [retval, iid_is(aIID)] out nsQIResult aResult);
- /**
- * One time registration callback
- *
- * When the nsIModule is discovered, this method will be
- * called so that any setup registration can be preformed.
- *
- * @param aCompMgr : The global component manager
- * @param aLocation : The location of the nsIModule on disk
- * @param aLoaderStr: Opaque loader specific string
- * @param aType : Loader Type being used to load this module
- */
- void registerSelf(in nsIComponentManager aCompMgr,
- in nsIFile aLocation,
- in string aLoaderStr,
- in string aType);
- /**
- * One time unregistration callback
- *
- * When the nsIModule is being unregistered, this method will be
- * called so that any unregistration can be preformed
- *
- * @param aCompMgr : The global component manager
- * @param aLocation : The location of the nsIModule on disk
- * @param aLoaderStr : Opaque loader specific string
- *
- */
- void unregisterSelf(in nsIComponentManager aCompMgr,
- in nsIFile aLocation,
- in string aLoaderStr);
- /**
- * Module load management
- *
- * @param aCompMgr : The global component manager
- *
- * @return indicates to the caller if the module can be unloaded.
- * Returning PR_TRUE isn't a guarantee that the module will be
- * unloaded. It constitues only willingness of the module to be
- * unloaded. It is very important to ensure that no outstanding
- * references to the module's code/data exist before returning
- * PR_TRUE.
- * Returning PR_FALSE guaratees that the module won't be unloaded.
- */
- boolean canUnload(in nsIComponentManager aCompMgr);
- };
|