RE: Accessing an Exe written in C (Ole/COM)
- Posted by Stephen O' Sullivan <stephen_o__sullivan at hotmail.com> Sep 11, 2003
- 340 views
<html><div style='background-color:'><DIV> <P><BR><BR></P>Al, </DIV> <P>thank you very much for your reply. Yeah, this looks very easy, even for someone as new to Euphoria as I.</P> <P> </P> <P>Thanks again for you time,</P> <P> </P> <P>Best Regards,</P> <P>Stephen.</P> <P> </P> <DIV></DIV> <DIV></DIV>>From: Al Getz <XAXO at AOL.COM> <DIV></DIV>>Reply-To: EUforum at topica.com <DIV></DIV>>To: EUforum at topica.com <DIV></DIV>>Subject: RE: Accessing an Exe written in C (Ole/COM) <DIV></DIV>>Date: Wed, 10 Sep 2003 14:22:28 +0000 <DIV></DIV>> <DIV></DIV>> <DIV></DIV>>Stephen O' Sullivan wrote: <DIV></DIV>> > <DIV></DIV>> > <DIV></DIV>> > Hi All, <DIV></DIV>> > I am relatively new to Euphoria, so forgive me if this an obivous <DIV></DIV>> > question. <DIV></DIV>> > <DIV></DIV>> > What I have is a Exe written in C, that I want to access in Euphoria. I <DIV></DIV>> > know how to acess the interfaces in VB. All I have to do is add the <DIV></DIV>> > reference to my project and use code, such as follows, to call funtions <DIV></DIV>> > and procedures: <DIV></DIV>> > <DIV></DIV>> > Dim MyInterFace as InterFaceName <DIV></DIV>> > ... <DIV></DIV>> > Set MyInterface=New LibName <DIV></DIV>> > MyInterFace.Procedure (params) <DIV></DIV>> > MyInterFace.Function (params) <DIV></DIV>> > ... <DIV></DIV>> > <DIV></DIV>> > Does anybody know how to do this in Euphoria? <DIV></DIV>> > <DIV></DIV>> > Thanks in advance, <DIV></DIV>> > <DIV></DIV>> > Regards, <DIV></DIV>> > <DIV></DIV>> > Stephen <DIV></DIV>> > <DIV></DIV>> <DIV></DIV>>Hello Stephen, <DIV></DIV>> <DIV></DIV>>In addition to Matts EuCom, the very next release of the <DIV></DIV>>WinClass C++ Style Library will support Ole/COM. <DIV></DIV>> <DIV></DIV>>Ole/COM doesnt get any simpler then this... <DIV></DIV>> <DIV></DIV>>Here's an example of using an interface when the system <DIV></DIV>>is going to pass you a pointer to its IDataObject: <DIV></DIV>> <DIV></DIV>>include IDataObject.ew as IDO <DIV></DIV>>atom IDO1 <DIV></DIV>>IDO1=IDO:CreateInstance() <DIV></DIV>> --create an instance of IDataObject and call it IDO1. <DIV></DIV>> <DIV></DIV>>That's it! <DIV></DIV>> <DIV></DIV>>Once you get the systems pointer, you can then call <DIV></DIV>>any of the methods on its IDataObject either by name <DIV></DIV>>[ such as IDO:QueryInterface({params}) ] <DIV></DIV>>or by using the 'stdmeth()' call, specifying its <DIV></DIV>>function offset <DIV></DIV>>[ such as stdmeth(0,{params}) ] <DIV></DIV>> <DIV></DIV>>I dont think it gets any easier then this? <DIV></DIV>> <DIV></DIV>>I'm trying to get the next release (v1.004) out by Friday. <DIV></DIV>>Of course it will include several fully functional demos <DIV></DIV>>that use Ole and COM interfaces. <DIV></DIV>> <DIV></DIV>>Take care for now, <DIV></DIV>>Al <DIV></DIV>> <DIV></DIV>>--^---------------------------------------------------------------- <DIV></DIV>>This email was sent to: stephen_o__sullivan at hotmail.com <DIV></DIV>> <DIV></DIV>>