When upgrading to a new service pack (specifically, to SP4), some users may receive and error such as:
Self registration of the DLL c:\winnt\system32\comcat.dll failed : 0d
Processing file <drive>:\Eng\server\setup\I386\event.ins at or near line 22 The specified procedure could not be found Microsoft Window NT ID No. 0xc002007F
This occurs when the comcat.dll version is incompatible with the ole32.dll version. The solution is not the obvious, to upgrade the ole32.dll, but to "downgrade" the comcat.dll.
To see if a version conflict is the culprit, run the following from a DOS prompt:
cd <path to windows\system> regsvr32 comcat.dll
cd <path to winnt\system32> regsvr32 comcat.dll
If there is a version conflict, you will receive an error such as:
Comcat.dll was loaded, but the DllRegisterServer was entry point not found. DllRegisterServer may not be exported, or a corrupt version may be in memory. Consider using Pview to detect and remove it.
Here's how to fix it by installing and registering comcat version 4.71:
1. Download http://www.vvm.com/~blawson/comcat.dll and save it to a directory on your system other than the <windows\system> or <winnt\system32> directory. 2. From a DOS prompt: cd <path to windows\system> or cd <path to winnt\system32> regsvr32.exe /u comcat.dll 3. You should receive a message that the unregistration was successful. 4. Rename the current comcat.dll in the system directory to comcat.dl_ 5. Move the file you downloaded to the system directory. 6. From a DOS prompt: cd <path to windows\system> or cd <path to winnt\system32> regsvr32.exe comcat.dll
Try installing the service pack again. In most cases, this resolves the problem.