nsIComponentRegistrar 编辑
xpcom/components/nsIComponentRegistrar.idl
Scriptable This interface provides methods to access and modify the XPCOM component registry. Inherits from: nsISupports
Last changed in Gecko 1.0Method overview
void autoRegister(in nsIFile aSpec); |
void autoUnregister(in nsIFile aSpec); |
string CIDToContractID(in nsCIDRef aClass); |
nsCIDPtr contractIDToCID(in string aContractID); |
nsISimpleEnumerator enumerateCIDs(); |
nsISimpleEnumerator enumerateContractIDs(); |
boolean isCIDRegistered(in nsCIDRef aClass); |
boolean isContractIDRegistered(in string aContractID); |
void registerFactory(in nsCIDRef aClass, in string aClassName, in string aContractID, in nsIFactory aFactory); |
void registerFactoryLocation(in nsCIDRef aClass, in string aClassName, in string aContractID, in nsIFile aFile, in string aLoaderStr, in string aType); |
void unregisterFactory(in nsCIDRef aClass, in nsIFactory aFactory); |
void unregisterFactoryLocation(in nsCIDRef aClass, in nsIFile aFile); |
Methods
autoRegister()
Register a component (.manifest) file or all component files in a directory. Registration lasts for this run only, and is not cached.
Note: Formerly this method would register component files directly. This is no longer supported.Component files must have an associated loader and export the required symbols which this loader defines. For example, if the given file is a native library, it must export the symbol NSGetModule
. Other loaders may have different semantics.
This method may only be called from the main thread.
void autoRegister( in nsIFile aSpec );
Parameters
aSpec
This parameter indicates either a component file to be registered or a directory containing component files to be registered.
XPCOM <= 1.8: If aSpec is null, then the application component's directory as defined by
XPCOM >= 1.9: If aSpec is null, static components, GRE components, and the the application's component directories will be registered. SeeNS_XPCOM_COMPONENT_DIR
will be registered. SeensDirectoryService
.NS_GRE_DIR
,NS_XPCOM_COMPONENT_DIR
, andNS_XPCOM_COMPONENT_DIR_LIST
innsDirectoryService
.
autoUnregister()
Unregister a component file or all component files in a directory.
This method may only be called from the main thread.
void autoUnregister( in nsIFile aSpec );
Parameters
aSpec
- This parameter indicates either a component file to be unregistered or a directory containing component files to be unregistered. If aSpec is null, then the application component's directory as defined by
NS_XPCOM_COMPONENT_DIR
will be unregistered. SeensDirectoryService
.
CIDToContractID()
This method returns the ContractID corresponding to a given ClassID.
string CIDToContractID( in nsCIDRef aClass );
Parameters
aClass
- The ClassID to be queried.
Return value
The ContractID corresponding to aClassID if one exists and is registered.
contractIDToCID()
Returns the ClassID for a given ContractID, if one exists and is registered.
nsCIDPtr contractIDToCID( in string aContractID );
Parameters
aContractID
- The ContractID to be queried.
Return value
The ClassID corresponding to aContractID if one exists and is registered.
enumerateCIDs()
This method returns an enumerator over the list of registered ClassIDs.
Elements of the enumeration can be QueryInterfaced for the nsISupportsID
interface. From the nsISupportsID
, you can obtain the actual ClassID.
nsISimpleEnumerator enumerateCIDs();
Parameters
None.
Return value
An nsISimpleEnumerator
over the list of registered classes. Elements of the enumerator implement nsISupportsID
.
enumerateContractIDs()
This method returns an enumerator over the list of registered ContractIDs.
Elements of the enumeration can be QueryInterfaced for the nsISupportsCString
interface. From the nsISupportsCString
interface, you can obtain the actual ContractID string.
nsISimpleEnumerator enumerateContractIDs();
Parameters
None.
Return value
An nsISimpleEnumerator
over the list of registered classes. Elements of the enumerator implement nsISupportsCString
.
isCIDRegistered()
This method is used to test for the existence of a specific ClassID.
boolean isCIDRegistered( in nsCIDRef aClass );
Parameters
aClass
- The ClassID to be queried.
Return value
true
if a factory is registered for the ClassID, false
otherwise.
isContractIDRegistered()
This method is used to test for the existence of a class implementing a specific ContractID.
boolean isContractIDRegistered( in string aContractID );
Parameters
aContractID
- The ContractID to be queried.
Return value
true
if a factory is registered for the ContractID, false
otherwise.
registerFactory()
Registers a factory to be used to instantiate a particular class identified by ClassID, and creates an association of class name and ContractID with the class.
void registerFactory( in nsCIDRef aClass, in string aClassName, in string aContractID, in nsIFactory aFactory );
Parameters
aClass
- The ClassID of the class being registered.
aClassName
- The name of the class being registered. This value is intended as a human-readable name for the class and need not be globally unique. (unused)
aContractID
- The ContractID of the class being registered. May be
null
if no ContractID is needed. aFactory
- The
nsIFactory
instance of the class being registered. If aFactory isnull
, the contract will be associated with a previously registered ClassID.
registerFactoryLocation()
Registers a factory to be used to instantiate a particular class identified by ClassID, and creates an association of class name and ContractID with the class. However, unlike registerFactory()
, the location of the component containing the factory implementation is specified instead of the factory instance.
void registerFactoryLocation( in nsCIDRef aClass, in string aClassName, in string aContractID, in nsIFile aFile, in string aLoaderStr, in string aType );
Parameters
aClass
- The ClassID of the class being registered.
aClassName
- The name of the class being registered. This value is intended as a human-readable name for the class and need not be globally unique.
aContractID
- The ContractID of the class being registered.
aFile
- A component file. This file must have an associated loader and export the required symbols, which the loader specifies.
aLoaderStr
- Opaque loader specific string. This value is passed into the
nsIModule.registerSelf()
callback and must be forwarded unmodified when registering factories via their location. aType
- Component Type of aClass. This value is passed into the
nsIModule.registerSelf()
callback and must be forwarded unmodified when registering factories via their location.
unregisterFactory()
Unregister a factory associated with a particular class identified by ClassID.
void unregisterFactory( in nsCIDRef aClass, in nsIFactory aFactory );
Parameters
aClass
- The ClassID of the class being unregistered.
aFactory
- The
nsIFactory
instance of the class being unregistered.
unregisterFactoryLocation()
Unregisters the factory associated with a given ClassID and component file location.
void unregisterFactoryLocation( in nsCIDRef aClass, in nsIFile aFile );
Parameters
aClass
- The ClassID that was previously registered.
aFile
- The component file that was previously registered.
Remarks
This interface was finalized (frozen) for Gecko 1.0. See bug 115853 for details. From Gecko 2.0 interfaces are no longer frozen.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论