OLE Specification
The original OLESpec.txt document (dated 14 Aug 1993) is now very difficult to find. There used to be a copy on Hensa, but that site has long gone. Some people have taken the trouble of keeping a copy and putting it on the web. There is a slightly mangled HTMLified version on the Pink Noise archive pages, and a text version on the private website of Erik Groenhuis. We could put a copy on this wiki if it could be confirmed that there is no copyright on this document.
Information can also be found in a StrongHelp manual that accompanies Elixir 8 for Doctor Wimp (see the Elixirs.zip file there). That package includes support libraries for writing both an OLE server and an OLE client using Doctor Wimp.
General description
A server makes it know to the system that it supplies an OLE service for a particular file type by setting an environment variable. A client that wishes to start an OLE session reads that variable to find out the necessary details of the server. If the server is not yet running, the client can start the server.
The client saves the data it wants to have edited on disk, and broadcasts and OLEOpenSession message. If the server is running properly it will intercept the broadcast, and send an OLEOpenSessionAck message back to the client.
Detailed specification
- See OLE Client Specification for what a client program should do to use an OLE service.
- See OLE Server Specification for what a server program must do to work as an OLE server.