.DLL Compatibility Problem
I am at my wits end with this. I am aware of the basics on how ActiveX Compatibility works; however, I am stumped on this. If anyone can help, it is appreciated. Below is exactly what I did:
I added a class (class N) to an already created and compiled .DLL (with binary compatibility selected.)
Knowing that no client apps use this class, I decided to make a change to one of the new method's parameters. This made it incompatible; however, when trying to compile, after the compatibility dialog came up, I selected 'Preserve Compatibility' (since I knew no clients were using my new class in the .DLL).
Ever since then, I can't get a recompiled client app to work on any computers that already had the client app installed. In other words, if I try and reinstall my client app on a machine that already had the app on it (even after uninstalling it), I get Error 430. I tried unregistering and reregistering the DLL, etc.
Note that if I install the client app on a new machine, it works fine, and also that it works fine on my development machine.
The wierd thing is it'll work as long as I dont recompile the client app. As soon as I recompile the client app, it no longer works; thus, I can update the DLL now and copy it to the client (with the previous version .EXE) and it'll work fine. But if I recompile the .EXE and copy it over to the client it wont work. All my referencing is correct.
I tried starting a brand new project for the DLL, compiling it, changing the reference in the client app, recompiling it, and this does not work either. Still get Error 430 (Client doesnt support expected interface).
It seems anytime i recompile the client app it does not work (unless it is on a computer that never had it on there before.)
Any help please..
-Shane