- oeapiinitcom.dll: Contains the OEAPIINITCOM library. It contains the OEAPIInit ActiveX object that triggers the event OnInitOEAPI when the OE starts running and the event OnShutdownOEAPI when OE shutdowns. Between these two events you can instance any object of OEAPI library (see oecom.idl) without launching OE.
- oecom.dll: This dll runs in the address space of OE and must be loaded by oehook.dll when OE starts running. If you instance any object of this dll (OEAPI library) you launch OE (see in the demo application what happens if you create a toolbar and OE is not running) as it registers the COM server in the OE. NOTE: You must release all objects of this library in OnShutdownOEAPI event. Otherwise, this library will not shutdown, the OE (msimn.exe) process will continue running in the background and OE will not be able to load again.
- oestore.dll: This dll contains OESTORE library that lets you instance the main object OEFolderManager. It lets you use folders and messages. You can use these objects without launching OE.
- oehook.dll: This dll must be loaded from an application that runs from start-up. It loads oecom.dll when OE is launched. This dll implements a window hook and is loaded only in OE and the process that loads this dll. To do this, it returns FALSE when other processes try to load it (In NT this cannot be done so it is loaded in all the processes). When a dll returns FALSE in DllMain generates a debug line saying that the dll was loaded first and unloaded after. To prevent this behaviour set the registry key: HKEY_CURRENT_USER\SOFTWARE\Nektra\OEAPI Value: HookAllProcesses REG_DWORD = 1. Setting this value makes the hook dll to be loaded in all the processes and the debug lines are not printed.
- launcher.exe: It's an application that runs from start-up and just loads oehook.dll.
Demo applications weren't made to test the OEAPI stability, it were written just to show the actual functionality of the library. The OEAPI is the result of long research and development made for several customers. Our knowledge allowed us to create the OEAPI joining all that work in some COM objects. We have achieved an important speed improvement of the library using a lot of information we have learned. For documentation of the methods use the object browser.
You need to install Comet library before compiling the demo in VC++ (http://www.lambdasoft.dk/comet/download.htm). The application is a full example of the library's features. Objects of the OEAPI library must be instanced when the library is active or you will run OE when CoCreateInstance is called. In the example if you create a toolbar when OE is not running, you will implicitlly run OE.
- Select: Project -> Import Type Library.
- Select OEAPI in the listbox and press ‘Install’.
- Select the tab ‘Into new package’ and choose a name (e.g.: OEAPI).
- After building the package do the same with ‘OEAPIINITCOM’ and ‘OESTORE’ but after pressing Install, select ‘Into existing package’ and select the previous created package.
- After doing all this OEAPI can be used as any ActiveX control: Remember that when you ‘Connect’ OEAPI library you will implicitly launch OE as it is registered in OE.
- Only local folders are supported at the moment.
- To handle identities it is important to force reload of OESTORE library during the OnInitOEAPI event of the OEAPIINITCOM library. To be able to do this you need to release all the objects of OESTORE library first. See how this is handled in demo applications.
OEAPI source code can be bought from U$ 3,000. To compile OEAPI you need to download and install Comet library (http://www.lambdasoft.dk/comet/download.htm). If you get errors verify if you have already installed Microsoft SDK.
Developed by Nektra