<?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[ATL::Return Problem]]></title><description><![CDATA[<p>moin meisters ...</p>
<p>Ich habe ein COMObjekt mit dieser Methode erstellt:</p>
<pre><code class="language-cpp">STDMETHODIMP CTAPI1::LineOpen(DWORD dwPrivileges, DWORD dwMediaModes)
{
	// ZU ERLEDIGEN: Implementierungscode hier hinzufügen
	DWORD dwAPIVersion = (MAKELONG(4,1));
	DWORD dwRetAPIVersion = 0;
	LINEEXTENSIONID	ExtensionID;
	LONG  lRet = 0;

	lRet = lineNegotiateAPIVersion(m_hLineApp, m_dwDeviceID, dwAPIVersion, dwAPIVersion, &amp;dwRetAPIVersion, &amp;ExtensionID);
	if( lRet == 0 )	
	{
		lRet = lineOpen(m_hLineApp, m_dwDeviceID, &amp;m_hLine, dwRetAPIVersion, 0, (DWORD)this, dwPrivileges|LINECALLPRIVILEGE_MONITOR, dwMediaModes, NULL);
		if( lRet == 0 )
		{
			MessageBox(NULL, &quot;ok&quot;, &quot;LineOpen&quot;, MB_OK);
			return S_OK;
		}
	}
	MessageBox(NULL, &quot;Error&quot;, &quot;LineOpen&quot;, MB_OK);
	return 1;

}
</code></pre>
<p>In meinen Test wird ein Fehler verursacht, weil m_dwDevice nicht geöffnet werden kann ( Gerät ist nicht angeschlossen )</p>
<p>Die Funktion lineNegotiateAPIVersion schlägt schon fehl was ok ist.</p>
<p>Nur im FoxPro Programm wird beim Aufruf der Methode 0 (.NULL.) zurück gegeben,<br />
obwohl die MsgBox mit &quot;Error&quot; erscheint.</p>
<p>Wenn ich E_FAIL zurückgebe, kommt zusätzlich noch ein &quot;Unknown OLE Error&quot;.<br />
Ich möchte aber keinen OLE Error sondern einen definierten Rückgabewert meiner<br />
Methode erhalten !</p>
<p>Ein anders Problem: wie erstelle ich eine Methode welche einen BSTR zurück gibt ?<br />
Ich kann zwar beim Erstellen den Rückgabewert BSTR festlegen, beim Kompilieren<br />
wird aber gemeldet, daß die Methode HRESULT nur zurückgeben kann.</p>
<p>Da ich ein Newbie in Sachen ATL bin würde ich mich auch über nen Link freuen<br />
wo diese Problematik erklärt wird. Das Tut von MS habe ich gelesen und auch bei<br />
CodeGuru mich schlau gemacht, aber nix passendes gefunden.</p>
<p>Besten Dank im Voraus<br />
mfg<br />
RB</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/57935/atl-return-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 02 Jun 2026 16:33:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/57935.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Dec 2003 07:37:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ATL::Return Problem on Tue, 09 Dec 2003 07:37:49 GMT]]></title><description><![CDATA[<p>moin meisters ...</p>
<p>Ich habe ein COMObjekt mit dieser Methode erstellt:</p>
<pre><code class="language-cpp">STDMETHODIMP CTAPI1::LineOpen(DWORD dwPrivileges, DWORD dwMediaModes)
{
	// ZU ERLEDIGEN: Implementierungscode hier hinzufügen
	DWORD dwAPIVersion = (MAKELONG(4,1));
	DWORD dwRetAPIVersion = 0;
	LINEEXTENSIONID	ExtensionID;
	LONG  lRet = 0;

	lRet = lineNegotiateAPIVersion(m_hLineApp, m_dwDeviceID, dwAPIVersion, dwAPIVersion, &amp;dwRetAPIVersion, &amp;ExtensionID);
	if( lRet == 0 )	
	{
		lRet = lineOpen(m_hLineApp, m_dwDeviceID, &amp;m_hLine, dwRetAPIVersion, 0, (DWORD)this, dwPrivileges|LINECALLPRIVILEGE_MONITOR, dwMediaModes, NULL);
		if( lRet == 0 )
		{
			MessageBox(NULL, &quot;ok&quot;, &quot;LineOpen&quot;, MB_OK);
			return S_OK;
		}
	}
	MessageBox(NULL, &quot;Error&quot;, &quot;LineOpen&quot;, MB_OK);
	return 1;

}
</code></pre>
<p>In meinen Test wird ein Fehler verursacht, weil m_dwDevice nicht geöffnet werden kann ( Gerät ist nicht angeschlossen )</p>
<p>Die Funktion lineNegotiateAPIVersion schlägt schon fehl was ok ist.</p>
<p>Nur im FoxPro Programm wird beim Aufruf der Methode 0 (.NULL.) zurück gegeben,<br />
obwohl die MsgBox mit &quot;Error&quot; erscheint.</p>
<p>Wenn ich E_FAIL zurückgebe, kommt zusätzlich noch ein &quot;Unknown OLE Error&quot;.<br />
Ich möchte aber keinen OLE Error sondern einen definierten Rückgabewert meiner<br />
Methode erhalten !</p>
<p>Ein anders Problem: wie erstelle ich eine Methode welche einen BSTR zurück gibt ?<br />
Ich kann zwar beim Erstellen den Rückgabewert BSTR festlegen, beim Kompilieren<br />
wird aber gemeldet, daß die Methode HRESULT nur zurückgeben kann.</p>
<p>Da ich ein Newbie in Sachen ATL bin würde ich mich auch über nen Link freuen<br />
wo diese Problematik erklärt wird. Das Tut von MS habe ich gelesen und auch bei<br />
CodeGuru mich schlau gemacht, aber nix passendes gefunden.</p>
<p>Besten Dank im Voraus<br />
mfg<br />
RB</p>
]]></description><link>https://www.c-plusplus.net/forum/post/411554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/411554</guid><dc:creator><![CDATA[RED-BARON]]></dc:creator><pubDate>Tue, 09 Dec 2003 07:37:49 GMT</pubDate></item></channel></rss>