<?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[COM Invoke und IDispatch]]></title><description><![CDATA[<p>Halo zusammen,<br />
ich bin relativ neu was COM betrifft und hätte diesbezüglich eine Frage:<br />
ich will eine Methode aufrufen, welches den folgenden Prototypen hat:</p>
<pre><code class="language-cpp">CreateSession(BSTR, BSTR, BSTR, [out] IDispatch**);
</code></pre>
<p>Den Server kann ich instanziieren und auch die Methode kann ich per GetIDsOfNames finden.<br />
Mein DISPPARAMS bekommt VARIANT-Array mit 4 VARIANTs zugewiesen.<br />
Die ersten drei sind klar (BSTR) nur wie bilde ich IDispatch** ab?</p>
<p>Mit</p>
<pre><code class="language-cpp">vt = VT_DISPATCH | VT_BYREF;
</code></pre>
<p>habe ich nur ein &quot;IDispatch *&quot; oder?<br />
Jedenfalls ist der HResult leider nicht S_OK <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Danke für eure Tipps!</p>
<p>Gruß,</p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205167/com-invoke-und-idispatch</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 15:39:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205167.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Feb 2008 11:57:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to COM Invoke und IDispatch on Mon, 11 Feb 2008 11:57:01 GMT]]></title><description><![CDATA[<p>Halo zusammen,<br />
ich bin relativ neu was COM betrifft und hätte diesbezüglich eine Frage:<br />
ich will eine Methode aufrufen, welches den folgenden Prototypen hat:</p>
<pre><code class="language-cpp">CreateSession(BSTR, BSTR, BSTR, [out] IDispatch**);
</code></pre>
<p>Den Server kann ich instanziieren und auch die Methode kann ich per GetIDsOfNames finden.<br />
Mein DISPPARAMS bekommt VARIANT-Array mit 4 VARIANTs zugewiesen.<br />
Die ersten drei sind klar (BSTR) nur wie bilde ich IDispatch** ab?</p>
<p>Mit</p>
<pre><code class="language-cpp">vt = VT_DISPATCH | VT_BYREF;
</code></pre>
<p>habe ich nur ein &quot;IDispatch *&quot; oder?<br />
Jedenfalls ist der HResult leider nicht S_OK <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Danke für eure Tipps!</p>
<p>Gruß,</p>
<p>Mark</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1453548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453548</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Mon, 11 Feb 2008 11:57:01 GMT</pubDate></item><item><title><![CDATA[Reply to COM Invoke und IDispatch on Mon, 11 Feb 2008 13:09:43 GMT]]></title><description><![CDATA[<p>Ein IDispatch* ist ein normler Interfacezeiger. Um einen IDispatch* zurückzugeben benötigt man einen Zeiger auf IDispatch*, also einen IDispatch**!</p>
<p>Damit hast Du recht, dass dies ein VT_DISPATCH | VT_BYREF ist.</p>
<p>Nur ist dies ein OUT Parameter! Du kannst ihn als Empty übergeben. Er müsste gefüllt werden vom aufgerufenen Interface!</p>
<p>Die ist hoffentlich klar was in, in/out, out bedeuten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1453606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453606</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 11 Feb 2008 13:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to COM Invoke und IDispatch on Mon, 11 Feb 2008 14:19:33 GMT]]></title><description><![CDATA[<p>Danke, habs hingekriegt. Der Fehler lag natürlich wo anders <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Und ja, [out] war mir bekannt. COM ist für mich Neuland, nicht C++/C <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1453674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453674</guid><dc:creator><![CDATA[pub00515]]></dc:creator><pubDate>Mon, 11 Feb 2008 14:19:33 GMT</pubDate></item></channel></rss>