I was playing or rather trying to play you your dll last night couldnt get delphi to load it up .. any pointers on that would be appreaciated. The installation of c# on my system is borked. So before I wipe the entire system clean (much needed) throught id give delphi a go.
From Delphi you'll have to create an instance of the COM components directly. I know little Delphi right now, srry, but i guess it will involve importing "CoCreateInstance" from Ole32.dll and creating an instance of the UOAI class from there using the UOAI class and interface GUIDs (See the UOAI.h in the COM libraries sourcecode for those GUIDs). I tried to google for an example of using COM components from Delphi; didn't find anything suitable yet, except maybe the client part at:
http://www.delphi3000.com/articles/article_3439.asp?SK=. Note that you will need "CoCreateInstance" rather than "CoGetObject" I think, GetObject only works for a COM server exposing one active object.
I will provide documentation for different languages on how to use the COM library eventually. Currently i'm focusing on getting the next stable .NET library version online, since most users are using UOAI from .NET right. This next library should be far more stable and easier to use, so once this is launched i'm hoping to find more time to focus on documentation and the next COM library.
But even with documentation, from some languages the COM library is really easy to use (scripting languages like vbscript, javascript, LUA; also visual basic, C++ (though right now a suitable header for this is lacking), ...) but from other languages like directly from C or i'm guessing also Delphi; there will always be some points at which care is required; and therefore a simple dll might have been easier to use than a COM library.
Edit: it seems there must be easier ways from Delphi to use COM objects too; though i know too little on Delphi right now to help you along... the ComObj and ActiveX units (
http://delphi.wikia.com/wiki/Category:ComObj_Unit will provide anything you need... you'll need to get Delphi to either create an instance of the UOAI class using it's easyname/progid ("UOAI.UOAI") or using it's GUID (see UOAI.h). Next will be to get Delphi either making calls through IDispatch (activex method calls... i'm not sure how this is done in delphi) or by somehow providing an interface definition for the UOAI objects so that delphi can call the interfaces directly. I'm not sure if any of that makes...
Dupport for Delphi will be an issue when i eventually get to writing decent documentation for the COM library; that is after i finish the next .NET library; write documentation for it; and maybe even after finishing the next COM library... Let me know however if you figure out how to use it yourself, that would save me some time
.
Let's, however, not turn the UOAI corner into a support forum!
Artaxerxes,