When I compile an ActiveX DLL file, instead of simply leaving it unregistered, and giving me the chance to do with it what I want (of which I have 2 choices, run regsvr32 to register it, or run 3rd party software such as UMMM to create SxS info for it so that it doesn't need to be registered), VB6 goes ahead an registers it WITHOUT ANY INPUT FROM ME.
Is there a way to STOP VB6 from auto-registering activex DLLs? Every single time I compile a DLL, it registers it, and then if I make the mistake of deleting the file before running "regsvr32 /u mycomponent.dll", it leaves a boatload of registry entries, that I need to manually remove via REGEDIT, which is a VERY LENGTH PROCESS. Regsvr32, unfortunately, does NOT remove registry entries associated with a given file name (such as "mycomponent.dll") unless the actual file is still on the harddrive. This seems to be a major oversight on MS's part.
So it seems that VB6.exe (or one of the components loaded in its memory space such as vba6.dll or vb6ide.dll) is either invoking regsvr32.exe, or is directly calling the Windows API registry functions, in order to register my activex dll, without my permission.
My post here, is asking one thing. Is there SOME WAY to disable this automatic registration of activex dlls? Otherwise it makes it a PAIN to clean up the registry, if I forgot that the component was still registered, and went ahead and deleted the the DLL file without having unregistered it.
I've actually spent up to a HOUR searching for the last remnants of the registry entries for a DLL that I'd mistakenly deleted and emptied the recycle bin, often having to first search for the filename of the DLL in the registry, and then from there getting the GUID, and doing a registry search for all registry keys and values containing that GUID, as well as all registry keys and values containing the name of the component. And then deleting them all manually.
Is there a way to STOP VB6 from auto-registering activex DLLs? Every single time I compile a DLL, it registers it, and then if I make the mistake of deleting the file before running "regsvr32 /u mycomponent.dll", it leaves a boatload of registry entries, that I need to manually remove via REGEDIT, which is a VERY LENGTH PROCESS. Regsvr32, unfortunately, does NOT remove registry entries associated with a given file name (such as "mycomponent.dll") unless the actual file is still on the harddrive. This seems to be a major oversight on MS's part.
So it seems that VB6.exe (or one of the components loaded in its memory space such as vba6.dll or vb6ide.dll) is either invoking regsvr32.exe, or is directly calling the Windows API registry functions, in order to register my activex dll, without my permission.
My post here, is asking one thing. Is there SOME WAY to disable this automatic registration of activex dlls? Otherwise it makes it a PAIN to clean up the registry, if I forgot that the component was still registered, and went ahead and deleted the the DLL file without having unregistered it.
I've actually spent up to a HOUR searching for the last remnants of the registry entries for a DLL that I'd mistakenly deleted and emptied the recycle bin, often having to first search for the filename of the DLL in the registry, and then from there getting the GUID, and doing a registry search for all registry keys and values containing that GUID, as well as all registry keys and values containing the name of the component. And then deleting them all manually.