The general methodology for upgrading a COM API is described in this article.
Oracle Objects for OLE (OO4O) is a high-performing data access API that provides access to Oracle's most advanced features from Windows clients.
Make sure you have the oo4o DLL and its dependencies registered/installed on the machine before you generate the interface description files (IDFs) for them. This ensures the standard generated IDFs contain specific types of methods, properties, and arguments.
If things are not registered properly when you create IDFs you will have a lot of Variants in the IDFs where stronger types are needed. The tool will not be able to identify oo40 API operations in the source code. The resulting translations may have a lot of CallByName statements and transformation handlers will not apply.
Once you have detailed IDFs for oo4o, you should run translations and analytics reference reports. the reports will show you the specific oo4o types and members that must be upgraded.
Once you have a good standard IDF, and details on how the client expects the new code to use ODP.NET, you will modify the IDF so as to map the oo4o types and operations into ODP.NET types and operations. You may need to attach transformation handlers (written in gmSL, the GM Scripting Language) to oo4o API elements to perform deeper transformations. See the RDO sample for an idea of how advanced transformations are done:
You may also simplify some parts of the upgrade by implementing parts of the oo4o API in .NET that wraps ODP.NET calls. You can do this by adding code to the oo40 stubs generated by the tool. This is similar to what we have done with the ADODB API and the MigrationSupport.DataLib framework implemented with ADO.NET calls.