If a new version of a server application allows the user to keep the old version available, a new object class name and human-readable string should be placed in the registration database for the newer server application. One way to do this is to append a version number to the class name, allowing the user to differentiate between the two versions when necessary. For example, you could have two versions of a drawing program called "Draw1" and "Draw2."
The user should be able to discard the older server application and remap the class name in the registration database, typically by means of the server application setup program. To remap the class name, the old and new objects types are given the same value for the human-readable string that describes the object class (although the two class names remain distinct). The client application must make sure there are no duplicate human-readable names when it enumerates the registration database to produce the list displayed in the Insert Object dialog box of the client application.
For client applications, mark the files or object data structure with version information that reflects the version of OLE under which the files are saved. This will insure that if the user has a version of OLE different from the version the files were saved under, you can provide whatever conversions are necessary between the old and new versions of your application.