When the OLE 1 Version Is Overwritten

When the OLE 1 object application is replaced by the OLE 2 version, do the following. (For the purpose of illustration, the OLE 1 object application is referred to as Ole 1 In-Place Server Outline while the OLE 2 version is Ole 2 In-Place Server Outline, as shown in the dialog box illustrations that follow).

  1. Register Ole 2 In-Place Server Outline.
  2. Modify (with your install/setup program) the original registry entries of Ole 1 In-Place Server Outline by changing the executable path to point to the Ole 2 In-Place Server Outline executable.

    For example, the Server subkey for the OLE 1 executable, named svrapp.exe in this example, changes from

    OLE1ISvrOtl\Protocol\StdFileEditing\Server = svrapp.exe

    to

    OLE1ISvrOtl\Protocol\StdFileEditing\Server = isvrotl.exe

    where isvrotl.exe is the name of the OLE 2 object application.

    Next, proceed to either step 3 or step 4, depending on whether or not you want OLE 1 objects converted automatically to the OLE 2 format.

  3. If Ole 1 In-Place Server Outline objects will be converted automatically to the Ole 2 In-Place Server Outline format when the application is saved, create or modify the following registration database entries:
    1. Modify the original registry entry of Ole 1 In-Place Server Outline by changing the "Value of the ProgID = Main User Type Name" key of the entry to Ole 2 In-Place Server Outline.

      For example, where OLE1ISvrOtl is the ProgID of the OLE 1 application,

      OLE1ISvrOtl = Ole 1 In-Place Server Outline

      becomes

      OLE1ISvrOtl = Ole 2 In-Place Server Outline

    2. Modify the original registry entry of Ole 1 In-Place Server Outline by adding a NotInsertable subkey under the ProgID key. For example:
      HKEY_CLASSES_ROOT\OLE1SvrOtl\NotInsertable
       

    Note  Since the original registry entries for the OLE 1 server application remain (but with a pointer to the OLE 2 object application as shown in the preceding step 3a), the OLE 1 ProgID will appear in the Insert Object dialog box of any OLE 2 container application installed on the system. The NotInsertable subkey mentioned in step 3b prevents the ProgID of the OLE 1 application from appearing in the Insert Object dialog box of OLE 2 containers. The NotInsertable subkey overrides any Insertable subkey entries for that ProgID key.

    1. Set the "AutoConvertTo = CLSID" subkey entry for Ole 1 In-Place Server Outline under the CLSID key to the CLSID of Ole 2 In-Place Server Outline. (See also "OLE 1 Compatibility Subkeys").

      CLSID\{CLSID of OLE 1 app.}\AutoConvertTo = {CLSID of OLE 2 app.}

    Note  You can obtain the CLSID of the OLE 1 object application for inclusion in registration entry file by calling CLSIDFromProgID.

    1. Modify the original registry entry of Ole 1 In-Place Server Outline by setting the verbs to those of Ole 2 In-Place Server Outline.

      For example, change

      OLE1ISvrOtl\Protocol\StdFileEditing\Verb\0 = &Edit

      to

      OLE1ISvrOtl\Protocol\StdFileEditing\Verb\0 = &Edit

      OLE1ISvrOtl\Protocol\StdFileEditing\Verb\1 = &Open

  4. If the user is allowed to open Acme Draw 1.0 objects and save them back to disk in the Acme Draw 1.0 format:
    1. Set the "TreatAs = CLSID" entry to the CLSID of Ole 2 In-Place Server Outline using the following form.

      CLSID\{CLSID of OLE 1 app.}\TreatAs = {CLSID of OLE 2 app.}

    2. Set the Ole 1 In-Place Server Outline verbs to those of Ole 2 In-Place Server Outline as described in the preceding step 3.