const char *componentType)
const char *componentType, const nsModuleComponentInfo *info)
RegisterSoftwareUpdate( nsIComponentManager *aCompMgr,                        nsIFile *aPath,                        const char *registryLocation,                        const char *componentType){    // get the registry    nsIRegistry* registry;    nsresult rv = nsServiceManager::GetService(NS_REGISTRY_CONTRACTID,                                               NS_GET_IID(nsIRegistry),                                               (nsISupports**)&registry);    if ( NS_SUCCEEDED( rv ) )     {        registry->OpenWellKnownRegistry(nsIRegistry::ApplicationComponentRegistry);        char buffer[256];        char *cid = nsSoftwareUpdate::GetCID().ToString();        PR_snprintf( buffer,                     sizeof buffer,                     "%s/%s",                     NS_IAPPSHELLCOMPONENT_KEY,                     cid ? cid : "unknown" );        nsCRT::free(cid);        nsRegistryKey key;        rv = registry->AddSubtree( nsIRegistry::Common,                                   buffer,                                   &key );        nsServiceManager::ReleaseService(NS_REGISTRY_CONTRACTID, registry);    }    return rv;}