Microsoft does the Ex and 2 renaming a lot. One problem is that a developer may not even be aware that the new interface exists and still go on creating code that uses the old one. If the goal is to migrate source code to the new interface why not do the rename and via compiler errors force the old source code to add Obsolete in order to continue using the old interface. Binary code wouldn't even know about the new interface since it has a different IID. You might even be able to generate a custom compiler error that explains what to do if an old method signature is used.
Doing this provides a forced source migration that at some point that will allow the deletion of the Obsolete interface. Unlike the Microsoft case where they accumulate everything without ever deleting anything. With the MS case there is no incentive to clean up your code. Can you just rename the static nsServiceManager to nsServiceManagerObsolete and build a new one? -- Jon Smirl [EMAIL PROTECTED]
