<?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[[solved] ActiveX soll Array zurückgeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ein AktiveX (Server) soll an seinen aufrufenden Client ein Double-Array zurückgeben. Da man Arrays nicht direkt übergeben kann, muss das Array in einem anderen Typ gewrapped werden. Hierzu kommen eigentlich nur zwei in Frage:<br />
BSTR oder per Variant.<br />
Variant sieht besser aus (keine Verfälschung durch Typenumwandlung) -<br />
Allerdings möchte ich nun im Variant ein SafeArray aus Doubles<br />
anlegen - nur gelingt mir dies nicht.</p>
<p>Hat einer von Euch ein paar Beispielzeilen oder eine alternative Idee?</p>
<p>Worst case ist Daten auf Platte schreiben und wieder auslesen -<br />
aber das kanns ja nicht sein, oder?</p>
<p>Grüße<br />
Florian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146745/solved-activex-soll-array-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 17:13:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146745.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 May 2006 14:41:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [solved] ActiveX soll Array zurückgeben on Thu, 11 May 2006 08:04:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ein AktiveX (Server) soll an seinen aufrufenden Client ein Double-Array zurückgeben. Da man Arrays nicht direkt übergeben kann, muss das Array in einem anderen Typ gewrapped werden. Hierzu kommen eigentlich nur zwei in Frage:<br />
BSTR oder per Variant.<br />
Variant sieht besser aus (keine Verfälschung durch Typenumwandlung) -<br />
Allerdings möchte ich nun im Variant ein SafeArray aus Doubles<br />
anlegen - nur gelingt mir dies nicht.</p>
<p>Hat einer von Euch ein paar Beispielzeilen oder eine alternative Idee?</p>
<p>Worst case ist Daten auf Platte schreiben und wieder auslesen -<br />
aber das kanns ja nicht sein, oder?</p>
<p>Grüße<br />
Florian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054894</guid><dc:creator><![CDATA[floms]]></dc:creator><pubDate>Thu, 11 May 2006 08:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] ActiveX soll Array zurückgeben on Wed, 10 May 2006 15:51:34 GMT]]></title><description><![CDATA[<p>Das mit dem SafeArray funktioniert schon. Ich habs mal getestet:</p>
<pre><code class="language-cpp">VARIANT CMySAActiveXCtrl::GetDblSafeArray(void)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	VARIANT vaResult;
	VariantInit(&amp;vaResult);

	SAFEARRAY* psa = SafeArrayCreateVector( VT_R8, 0, 20 );
	if ( psa!=NULL )
	{
		double* data;

   		if ( SUCCEEDED(SafeArrayAccessData( psa, (void**)&amp;data ) ) )
		{
			for( ULONG i=0 ; i&lt;psa-&gt;rgsabound[0].cElements; i++ )
				data[psa-&gt;rgsabound[0].lLbound+i] = 1.0 * i + ( (psa-&gt;rgsabound[0].cElements-i) / 10.0 );
		}
		else
		{
			SafeArrayDestroy(psa);
			psa = NULL;
		}
	}

	if ( psa != NULL )
	{
		V_VT(&amp;vaResult) = VT_ARRAY|VT_R8;
		V_ARRAY(&amp;vaResult) = psa;
	}

	return vaResult;
}
</code></pre>
<p>Unter VB <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> konnte ich auf die Methode GetDblSafeArray zugreifen und die hat mit die Daten zurückgeliefert. Hier der VB-Code</p>
<pre><code>Dim result As Object
Dim item As Double

result = myax.GetDblSafeArray()

For Each item In result
   MsgBox(item.ToString())
Next
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1054961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054961</guid><dc:creator><![CDATA[tvdog]]></dc:creator><pubDate>Wed, 10 May 2006 15:51:34 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] ActiveX soll Array zurückgeben on Wed, 10 May 2006 17:11:36 GMT]]></title><description><![CDATA[<p>Das war Rekordzeit - 1000 Dank.<br />
Solltest Du mal nach München kommen, wirst Du von mir auf ein Bier eingeladen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /><br />
Grüße aus dem wilden Süden,<br />
Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1055021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1055021</guid><dc:creator><![CDATA[floms]]></dc:creator><pubDate>Wed, 10 May 2006 17:11:36 GMT</pubDate></item></channel></rss>