Figure 48. InteroperabilityThe interoperability layer was defined from CI Labs to enable the collaboration of OpenDoc components and OLE parts. The interoperability layer is part of the OpenDoc architecture and was developed by Novell. It will be delivered first as part of the Windows version of OpenDoc, but is planned for OS/2 also. In September 95, IBM took over the development from Novell. OpenDoc does not compromise the use of OLE/OCX applications, but can add enhanced functions to them provided by OpenDoc. OpenDoc can also be used as a powerful tool to create OLE components, providing an interface for developers that is less complex than the OLE APIs.
Figure 49. OpenDoc OLE InteroperabilityBecause OpenDoc's object model is supporting inheritance, most of the complexity can be hidden by prefabricated components. The interoperability between OpenDoc and OLE, as shown in Figure 49, is achieved by the following two wrapper objects:
° An OLEWrapper wraps an OpenDoc part and provides it with an OLE server interface. OCX support is also added at the moment. This enables OpenDoc parts to be embedded in OLE-based applications. ° An OLEPart is wraps an OpenDoc container component and provides it with an OLE container interface. This enables OpenDoc container components to embed OLE OCX parts.
OLE has a similar mechanism to customize it parts called OLE automation. Interoperability will also be provided between the OSA and OLE automation. That means OpenDoc components can be driven also from environments such as Visual Basic.