pjs/xpcom/components/nsIComponentRegistrar.idl

196 строки
6.5 KiB
Plaintext

/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla 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/MPL/
*
* 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 XPCOM.
*
* The Initial Developer of the Original Code is Netscape Communications.
* Portions created by the Initial Developer are Copyright (C) 2001
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* 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 MPL, 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 MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
/**
* The nsIComponentRegistrar interface.
*/
#include "nsISupports.idl"
interface nsIFile;
interface nsIFactory;
interface nsISimpleEnumerator;
[scriptable, uuid(2417cbfe-65ad-48a6-b4b6-eb84db174392)]
interface nsIComponentRegistrar : nsISupports
{
/**
* autoRegister
*
* Register a .manifest file, or an entire directory containing
* these files. Registration lasts for this run only, and is not cached.
*
* @note Formerly this method would register component files directly. This
* is no longer supported.
*/
void autoRegister(in nsIFile aSpec);
/**
* autoUnregister
* @status OBSOLETE: This method is no longer implemented, but preserved
* in this interface for binary compatibility with
* Mozilla 1.9.2.
*/
void autoUnregister(in nsIFile aSpec);
/**
* registerFactory
*
* Register a factory with a given ContractID, CID and Class Name.
*
* @param aClass : CID of object
* @param aClassName : Class Name of CID (unused)
* @param aContractID : ContractID associated with CID aClass. May be null
* if no contract ID is needed.
* @param aFactory : Factory that will be registered for CID aClass.
* If aFactory is null, the contract will be associated
* with a previously registered CID.
*/
void registerFactory(in nsCIDRef aClass,
in string aClassName,
in string aContractID,
in nsIFactory aFactory);
/**
* unregisterFactory
*
* Unregister a factory associated with CID aClass.
*
* @param aClass : CID being unregistered
* @param aFactory : Factory previously registered to create instances of
* CID aClass.
*
* @return NS_OK Unregistration was successful.
* NS_ERROR* Method failure.
*/
void unregisterFactory(in nsCIDRef aClass,
in nsIFactory aFactory);
/**
* registerFactoryLocation
* @status OBSOLETE: This method is no longer implemented, but preserved
* in this interface for binary compatibility with
* Mozilla 1.9.2.
*/
void registerFactoryLocation(in nsCIDRef aClass,
in string aClassName,
in string aContractID,
in nsIFile aFile,
in string aLoaderStr,
in string aType);
/**
* unregisterFactoryLocation
* @status OBSOLETE: This method is no longer implemented, but preserved
* in this interface for binary compatibility with
* Mozilla 1.9.2.
*/
void unregisterFactoryLocation(in nsCIDRef aClass,
in nsIFile aFile);
/**
* isCIDRegistered
*
* Returns true if a factory is registered for the CID.
*
* @param aClass : CID queried for registeration
* @return : true if a factory is registered for CID
* false otherwise.
*/
boolean isCIDRegistered(in nsCIDRef aClass);
/**
* isContractIDRegistered
*
* Returns true if a factory is registered for the contract id.
*
* @param aClass : contract id queried for registeration
* @return : true if a factory is registered for contract id
* false otherwise.
*/
boolean isContractIDRegistered(in string aContractID);
/**
* enumerateCIDs
*
* Enumerate the list of all registered CIDs.
*
* @return : enumerator for CIDs. Elements of the enumeration can be QI'ed
* for the nsISupportsID interface. From the nsISupportsID, you
* can obtain the actual CID.
*/
nsISimpleEnumerator enumerateCIDs();
/**
* enumerateContractIDs
*
* Enumerate the list of all registered ContractIDs.
*
* @return : enumerator for ContractIDs. Elements of the enumeration can be
* QI'ed for the nsISupportsCString interface. From the
* nsISupportsCString interface, you can obtain the actual
* Contract ID string.
*/
nsISimpleEnumerator enumerateContractIDs();
/**
* CIDToContractID
* @status OBSOLETE: This method is no longer implemented, but preserved
* in this interface for binary compatibility with
* Mozilla 1.9.2.
*/
string CIDToContractID(in nsCIDRef aClass);
/**
* contractIDToCID
*
* Returns the CID for a given Contract ID, if one exists and is registered.
*
* @return : Contract ID.
*/
nsCIDPtr contractIDToCID(in string aContractID);
};