Jump to content

Typelib entries left after CLSID's cleaned


Recommended Posts

I'm pretty knowledgable about the Windows Registry and have noticed that the Typelib entries are not normally cleaned up after CCleaner removes a CLSID entry. If the CLSID entry has a Typelib entry and is the ONLY one referencing the Typelib, why isn't the Typelib key removed. And are the pathnames checked in Typelib entries normally, as well as the Interface sections. The normal sequence of checks is based upon:

 

The CLSID section will consider an entry to contain a problem if any Handler or Server file entry can not be found by the system. This can occur if a server has been registered over the net and the network

connection has been broken. Other reasons for an entry to be listed is if the server has been moved or deleted. This section provides the most information about the entry listed to help you wisely chose the entries to remove.

 

The ProgId section tries to match its CLSID entry with one in HKEY_CLASSES_ROOT\CLSID. The typical entry being searched in the Registry is of the format HKEY_CLASSES_ROOT\Some ProgId\CLSID. If the

entry under HKEY_CLASSES_ROOT does not contain a CLSID sub-entry, then it is ignored. This insures that only ProgIds are listed. Any clean up process is identical to that of the CLSID section.

 

The TypeLib section looks for references to .tlb files and if one is found in the registry that can not be found in the system then the entry is problematic.

 

The final section is the Interface portion of HKEY_CLASSES_ROOT. In this section each entry with has a TypeLib entry is compared to the entries in HKEY_CLASSES_ROOT\TypeLib and if a match is not found the entry is problematic. This entry has the least amount of information available for deciding which Registry entries to delete. In fact the only information available are the TypeLib and Interface GUIDs. However,

since this section is highly dependent on the TypeLib section, it should be safe to delete these entries as long as you have resolved the TypeLib issues first.

 

You can have a Typelib entry without having a CLSID entry, but you cannot have a CLSID entry without having a valid Typelib entry. If the Typelib entry is missing or directed to an invalid pathname, then the Typelib entry is invalid as well as the CLSID entry as well as the PROGID. It is a cascading effect, mostly bottom to top, than top to bottom.

 

However, it is not necessary to have a CLSID for each Typelib entry. But each Typelib entry must point to a valid pathname. You MUST have a valid Interface pointing back to a valid Typelib.

 

Does CCleaner do any of this in it's analysis?

Link to comment
Share on other sites

You kick ass. I'll probably need to talk to you at some point. Please join my wiki :)

 

http://wiki.DjLizard.net

Click here if CCleaner Issues are re-appearing

 

DjLizard.net

DjLizard.net wiki

Dial-a-fix

Dial-a-fix tips

DjLizard.net software support forum

 

Do you live in Bradenton, Sarasota, Tampa, or St. Petersburg, Florida? Visit Digital Doctors where I work :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.