# 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. a. 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. b. 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. c. 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. d. 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. a. 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. b. 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.