<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[IDL und Com, jede Menge Fragen...]]></title><description><![CDATA[<p>Hallo, ich habe hier ein ActiveX Control das ich gerne nutzen möchte.<br />
Leider habe ich bisher mit Com so gut wie nichts programmiert, jedoch will ich das Control jetzt nutzen.</p>
<p>Laut SDK Beschreibung kann ich über eine Methode eine Callback Funktion im ActiveX Control setzen die mich informiert sobald im ActiveX Control was passiert ist.<br />
Das kann z.B. ein Tastendruck sein, oder eine Datei die vom ActiveX Control geladen wurde der den Event auslösen soll und somit meine Callback Funktion aufruft.</p>
<p>Konkret ist die Methode des ActiveX Controls so deklariert:<br />
BOOL setObserver(LPUNKNOWN observer, long flags);</p>
<p>jetzt hab ich mir gedacht schreib ich mir eine Methode und übergebe dem setObserver einen Pointer auf meine Methode. Das sieht dann in etwa so aus:<br />
m_Control.setObserver((LPUNKNOWN) &amp;m_Observer,0);</p>
<p>Das Problem ist das ganze stürzt mir ab und ich weiß nicht wieso. Muß ich meine Methode in eine extra Klasse packen die IUnknown implementiert? Wie funktioniert das mit COM und ActiveX. Bin am verzweifeln.</p>
<p>Auch würde ich gerne Wissen wie ich mir aus nem IDL File C++ Code erzeugen lassen kann. Die MIDL.exe erzeugt mir nur eine TLB Datei und mit TLBIMP kriege ich eine DLL. Ich will aber sowas wie Header und C++ Files aus dieser IDL herauskriegen die ich nur noch mit Definitionen füllen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205245/idl-und-com-jede-menge-fragen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 04:47:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205245.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Feb 2008 09:39:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to IDL und Com, jede Menge Fragen... on Tue, 12 Feb 2008 09:39:02 GMT]]></title><description><![CDATA[<p>Hallo, ich habe hier ein ActiveX Control das ich gerne nutzen möchte.<br />
Leider habe ich bisher mit Com so gut wie nichts programmiert, jedoch will ich das Control jetzt nutzen.</p>
<p>Laut SDK Beschreibung kann ich über eine Methode eine Callback Funktion im ActiveX Control setzen die mich informiert sobald im ActiveX Control was passiert ist.<br />
Das kann z.B. ein Tastendruck sein, oder eine Datei die vom ActiveX Control geladen wurde der den Event auslösen soll und somit meine Callback Funktion aufruft.</p>
<p>Konkret ist die Methode des ActiveX Controls so deklariert:<br />
BOOL setObserver(LPUNKNOWN observer, long flags);</p>
<p>jetzt hab ich mir gedacht schreib ich mir eine Methode und übergebe dem setObserver einen Pointer auf meine Methode. Das sieht dann in etwa so aus:<br />
m_Control.setObserver((LPUNKNOWN) &amp;m_Observer,0);</p>
<p>Das Problem ist das ganze stürzt mir ab und ich weiß nicht wieso. Muß ich meine Methode in eine extra Klasse packen die IUnknown implementiert? Wie funktioniert das mit COM und ActiveX. Bin am verzweifeln.</p>
<p>Auch würde ich gerne Wissen wie ich mir aus nem IDL File C++ Code erzeugen lassen kann. Die MIDL.exe erzeugt mir nur eine TLB Datei und mit TLBIMP kriege ich eine DLL. Ich will aber sowas wie Header und C++ Files aus dieser IDL herauskriegen die ich nur noch mit Definitionen füllen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454191</guid><dc:creator><![CDATA[Procrash]]></dc:creator><pubDate>Tue, 12 Feb 2008 09:39:02 GMT</pubDate></item><item><title><![CDATA[Reply to IDL und Com, jede Menge Fragen... on Wed, 13 Feb 2008 07:41:59 GMT]]></title><description><![CDATA[<p>Callbacks in ActiveX Controls werden nicht einfach als simple Funktionszeiger gebaut sonder über Event Sinks.</p>
<p>Grundsätzlich wird alles was irgendwie eine Funktion ist in ein Interface eingebaut. Wenn Du also soclh eine Funktion SetOberserver baust. Dann müsste die auch wieder von IUnknown abgeleitet sein und die entsprechende Interfaceklasse müsste per QueryInterface abfragbar sein. Dann kann Sie von SetObersrver verwendet werden. Auch hier gilt Referenzzählung.</p>
<p>Ich rate Dir dazu noch etwas mehr über COM zu lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1454875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1454875</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 13 Feb 2008 07:41:59 GMT</pubDate></item></channel></rss>