<?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[Member eines COM-Objekts benutzen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe folgendes Problem:</p>
<p>Ein Com-Objekt liefert mir ein Interface zu einem Basisobjekt. Dieses Basisobjekt beinhaltet untergeordnete Objekte bzw. Pointer darauf, die wohl zum einem Array oder einer Enumeration verzweigen.</p>
<p>In folgendem Code-Abschnitt habe ich mal meine Versuche dokumentiert.<br />
Die Kommentare zeigen das jeweilige Ergebnis der Versuche:</p>
<pre><code>hr = CoCreateInstance( IID,		// CLSID of coclass
		NULL,			// not used - aggregation
		CLSCTX_INPROC_SERVER,	// type of server
		IID2,			// IID of interface
		(void**) &amp;pObjekt );	// Pointer to our interface pointer

if ( SUCCEEDED ( hr ) )
{
	IProjekte * pIProjekte;
	pObjekt-&gt;hole_Projekte(&amp;pIProjekte);

	// Liefert die korrekte Anzahl
	int count = pIProjekte-&gt;Count;	

	// Liefert einen Pointer, aber vom falschen Typ
	IUnknownPtr xy = pIProjekte-&gt;Get_NewEnum();

	// Typecast of korrekten Objekttyp liefert Zeiger auf 0
	IProjektePtr ptrs2;
	ptrs = (IProjektePtr)xy;

	// Liefert auch einen Pointer auf 0
	IProjektePtr xy2 = pIProjekte-&gt;Get_NewEnum();

	...

	pObjekt-&gt;Release();
}
</code></pre>
<p>Wenn ich das selbe unter C# mache, kann ich ganz einfach durch die Objekte gehen bis zur untersten Ebene der jeweiligen Member-Objekte. Aber irgendwie klappt das unter C++ nicht so, wie ich mir das vorstelle.</p>
<p>Kann mir hier jemand helfen?</p>
<p>Danke schon mal &amp; Gruß</p>
<p>J.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163951/member-eines-com-objekts-benutzen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 13:08:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163951.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Nov 2006 12:17:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Member eines COM-Objekts benutzen on Fri, 03 Nov 2006 12:17:03 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe folgendes Problem:</p>
<p>Ein Com-Objekt liefert mir ein Interface zu einem Basisobjekt. Dieses Basisobjekt beinhaltet untergeordnete Objekte bzw. Pointer darauf, die wohl zum einem Array oder einer Enumeration verzweigen.</p>
<p>In folgendem Code-Abschnitt habe ich mal meine Versuche dokumentiert.<br />
Die Kommentare zeigen das jeweilige Ergebnis der Versuche:</p>
<pre><code>hr = CoCreateInstance( IID,		// CLSID of coclass
		NULL,			// not used - aggregation
		CLSCTX_INPROC_SERVER,	// type of server
		IID2,			// IID of interface
		(void**) &amp;pObjekt );	// Pointer to our interface pointer

if ( SUCCEEDED ( hr ) )
{
	IProjekte * pIProjekte;
	pObjekt-&gt;hole_Projekte(&amp;pIProjekte);

	// Liefert die korrekte Anzahl
	int count = pIProjekte-&gt;Count;	

	// Liefert einen Pointer, aber vom falschen Typ
	IUnknownPtr xy = pIProjekte-&gt;Get_NewEnum();

	// Typecast of korrekten Objekttyp liefert Zeiger auf 0
	IProjektePtr ptrs2;
	ptrs = (IProjektePtr)xy;

	// Liefert auch einen Pointer auf 0
	IProjektePtr xy2 = pIProjekte-&gt;Get_NewEnum();

	...

	pObjekt-&gt;Release();
}
</code></pre>
<p>Wenn ich das selbe unter C# mache, kann ich ganz einfach durch die Objekte gehen bis zur untersten Ebene der jeweiligen Member-Objekte. Aber irgendwie klappt das unter C++ nicht so, wie ich mir das vorstelle.</p>
<p>Kann mir hier jemand helfen?</p>
<p>Danke schon mal &amp; Gruß</p>
<p>J.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167632</guid><dc:creator><![CDATA[jholzer]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:17:03 GMT</pubDate></item></channel></rss>