FILE: RegMaid.exe Helps Clean Up the Registry

Last reviewed: February 26, 1998
Article ID: Q156078
The information in this article applies to:
  • Microsoft Visual C++, 32-bit Edition, versions 4.0, 4.1, 4.2, 5.0

SUMMARY

RegMaid is a utility designed to clean up invalid registry entries caused by deleting OLE projects created with Visual C++ and Microsoft Foundation Classes (MFC). RegMaid provides information about entries that are believed to be problematic within the HKEY_CLASSES_ROOT: CLSID, ProgId, TypeLib, and Interface sections of the registry. This information is in a report form of a list view, where the user can make multiple row selections. Once selections have been made, the user can then delete them from the registry. While RegMaid does not currently have an Archive and Restore capability, it does provide a printed report mechanism for each of the four views.

The CLSID section considers an entry to contain a problem if any handler or server file entry cannot be found by the system. This can occur if a server has been registered over the net and the network connection has been broken. An entry might also be listed if the server has been moved or deleted. The CLSID 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 ensures that only ProgIds are listed. The 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 cannot be found in the system then the entry is listed as problematic. As with the CLSID section the files in question are listed.

The final section is the Interface portion of HKEY_CLASSES_ROOT. In this section each entry with a TypeLib entry is compared to the entries in HKEY_CLASSES_ROOT\TypeLib, and if a match is not found, the entry is listed here. 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, because 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.

The following file is available for download from the Microsoft Software Library:

 ~ RegMaid.exe (size: 262066 bytes) 

For more information about downloading files from the Microsoft Software Library, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q119591
   TITLE     : How to Obtain Microsoft Support Files from Online Services

NOTE: Use the -d option when running RegMaid.exe to decompress the file and re-create the proper directory structure.

NOTE: As of February 10, 1998, there is a new version of RegMaid.exe (v1.1). It greatly reduces the number of erroneous listings caused by RegMaid's inability to find a server file, including:

  • Handling of long file names.
  • Handling of environmental variables in the path.
  • Confusion caused by multiple data entries for the server.

REFERENCES

Visual C++ 4.1 Sample: "REGISTRY: Uses the Win32 API to Access the Registry"


Additional query words: Registry Visual Basic RegClean
Keywords : MfcOLE kbsample
Technology : kbMfc kbole
Version : 4.0 4.1 4.2 5.0
Platform : NT WINDOWS
Solution Type : kbfile


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: February 26, 1998
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.