The following delphi articles should help creating an event sink: http://www.informit.com/articles/article.aspx?p=130494&seqNum=5 This is an interesting one since it is written for Delphi 3-4 which missed a lot of the automated COM handling. This is much closer to where fpc is now.
http://www.blong.com/Conferences/IConUK2000/DelphiMoreAutomation/More%20Auto mation%20In%20Delphi.htm#HandcraftedEventSink A good intruduction to connectable objects: http://www.gtro.com/delphi/comevents_e.php Ludo -----Message d'origine----- De : fpc-pascal-boun...@lists.freepascal.org [mailto:fpc-pascal-boun...@lists.freepascal.org] De la part de Roberto Padovani Envoyé : mardi 24 mai 2011 11:24 À : FPC-Pascal users discussions Objet : Re: RE : RE : [fpc-pascal] support for using an activex Thanks a lot! I've been able to create the object and connect to my device.. and even reading some strings! This FPC + ActiveX stuff is really cool. > Don't know if your ActiveX sends events that you want to catch. > Creating "event sinks" is relatively complex. > Yes, the most important thing is fired as an event. So, at least, I have to try that... > Com reference information can be found here: > http://msdn.microsoft.com/en-us/library/ms221375.aspx > Basically, I didn't understand anything over there. Probably I should read a lot more of docs, but also the content organization is not clear to me. Does anyone have a code example of this "event sinking" ? Thanks anyway, Roberto > Ludo > > > -----Message d'origine----- > De : fpc-pascal-boun...@lists.freepascal.org > [mailto:fpc-pascal-boun...@lists.freepascal.org] De la part de Roberto > Padovani Envoyé : lundi 23 mai 2011 15:07 > À : FPC-Pascal users discussions > Objet : Re: RE : [fpc-pascal] support for using an activex > > > Wow, this sound like good news! > > The activex I have is not visual; it is "simply" a class that creates > a thread in which a physical device is controlled through a serial > port, with a particular protocol. The class then has methods like > "Open channel", "Read Mesaure", and so on. > > Is there any documentation I can read? I think I have to translate > some header files to understand the exchanged data...or shall I use > only variant ? I suppose I have to change MSWord := > CreateOleObject('Word.Application'); into something related to my > class; where do I discover the "name.surname" ? > > Thanks all! > > > 2011/5/23 Ludo Brands <ludo.bra...@free.fr>: >> If the activex is not a visual control that you want to put on a LCL >> form you can use CreateOleObject. Note that you don't load ActiveX >> dll's directly. ActiveX objects are registered in Windows by the >> installer or manually with Regsvr32.exe. Windows loads the ddl for >> you when you call CreateOleObject. Ole components are reference >> counted and released when not used anymore. >> >> Here is a simple sample program when you have MS Word installed. >> >> >> program Project1; >> >> {$mode objfpc}{$H+} >> >> uses >> {$IFDEF UNIX}{$IFDEF UseCThreads} >> cthreads, >> {$ENDIF}{$ENDIF} >> Classes >> { you can add units after this } >> ,sysutils,ComObj; >> >> {$R *.res} >> >> var >> MSWord,WordDoc,WordPara: Variant; >> begin >> MSWord := CreateOleObject('Word.Application'); >> MSWord.Visible:=true; >> WordDoc := MSWord.Documents.Add; >> WordDoc.Activate; >> WordPara := WordDoc.Content.Paragraphs.Add; >> WordPara.Range.Text := 'Hello World!'; >> WordDoc.SaveAs('C:\Test.Doc'); >> Sleep(10000); >> WordDoc.Close(False); >> MSWord.Quit; >> MSWord := Unassigned; >> WordDoc := Unassigned; >> WordPara := Unassigned; >> end. >> >> >> >> -----Message d'origine----- >> De : fpc-pascal-boun...@lists.freepascal.org >> [mailto:fpc-pascal-boun...@lists.freepascal.org] De la part de >> Roberto Padovani Envoyé : lundi 23 mai 2011 12:24 À : FPC-Pascal >> users discussions Objet : [fpc-pascal] support for using an activex >> >> >> Hi List! >> >> I looked around the archives and forum, but I didn't come up with a >> clear answer. Besides, I'm not expert of the win32 and COM world. >> >> If I am given an ActiveX, with source code included, is it possible >> to using from a freepascal / lazarus app like any other dll? I mean >> loading the dll, instantiating the object and calling some methods. >> >> If so, can anyone point me to some documentation or example? >> >> Thanks a lot, >> >> Roberto >> _______________________________________________ >> fpc-pascal maillist - fpc-pascal@lists.freepascal.org >> http://lists.freepascal.org/mailman/listinfo/fpc-pascal >> >> _______________________________________________ >> fpc-pascal maillist - fpc-pascal@lists.freepascal.org >> http://lists.freepascal.org/mailman/listinfo/fpc-pascal >> > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal