<?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[C++ Builder und Callback]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wie kann ich folgendes mit dem C++ Builder realisieren?<br />
Ermittlung der vorhanden Soundausgabegeräte<br />
Um mithilfe von DirectSound festzustellen welche Soundausgabegeräte - besser gesagt<br />
welche nutzbaren Soundausgabetreiber - vorhanden sind, ist es erforderlich folgende<br />
Callback Funktion zu definieren:</p>
<pre><code class="language-cpp">BOOL CALLBACK DSEnumCallback(
LPGUID lpGuid,
LPCSTR lpcstrDescription,
LPCSTR lpcstrModule,
LPVOID lpContext
);
</code></pre>
<p>Der Name der Funktion ist beliebig - der Rest der Funktion muss identisch bleiben.<br />
Die Funktion DirectSoundEnumerate ermittelt die installierten DirectSound Treiber.</p>
<pre><code class="language-cpp">HRESULT WINAPI DirectSoundEnumerate(LPDSENUMCALLBACK lpDSEnumCallback,
LPVOID lpContext );
</code></pre>
<p>Jetzt kann man auch erkennen wozu man die vorher definierte Callback Funktion<br />
benötigt - Die Adresse dieser Funktion wird hier übergeben. Die Callback Funktion wird<br />
für jeden vorhanden DirectSound Treiber aufgerufen, außer die Callback-Funktion gibt<br />
den Wert false zurück - dadurch wird das weitere aufrufen der Callback-Funktion<br />
verhindert. Der Code in der Callback-Funktion ist auch beliebig - was man damit anstellt<br />
ist Sache des Programmierers - z. B. könnte man immer den Wert true zurückgeben um<br />
alle DirectSound Treiber zu ermitteln, die vorhanden sind oder vorzeitig durch<br />
Rückgabe des Wertes false eine weitere Ermittlung der vorhanden<br />
Soundausgabegeräte abbrechen, wenn man bereits ein geeignetes<br />
Soundausgabegerät gefunden hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/95648/c-builder-und-callback</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 06:20:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/95648.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Dec 2004 00:22:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Builder und Callback on Wed, 22 Dec 2004 00:25:14 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wie kann ich folgendes mit dem C++ Builder realisieren?<br />
Ermittlung der vorhanden Soundausgabegeräte<br />
Um mithilfe von DirectSound festzustellen welche Soundausgabegeräte - besser gesagt<br />
welche nutzbaren Soundausgabetreiber - vorhanden sind, ist es erforderlich folgende<br />
Callback Funktion zu definieren:</p>
<pre><code class="language-cpp">BOOL CALLBACK DSEnumCallback(
LPGUID lpGuid,
LPCSTR lpcstrDescription,
LPCSTR lpcstrModule,
LPVOID lpContext
);
</code></pre>
<p>Der Name der Funktion ist beliebig - der Rest der Funktion muss identisch bleiben.<br />
Die Funktion DirectSoundEnumerate ermittelt die installierten DirectSound Treiber.</p>
<pre><code class="language-cpp">HRESULT WINAPI DirectSoundEnumerate(LPDSENUMCALLBACK lpDSEnumCallback,
LPVOID lpContext );
</code></pre>
<p>Jetzt kann man auch erkennen wozu man die vorher definierte Callback Funktion<br />
benötigt - Die Adresse dieser Funktion wird hier übergeben. Die Callback Funktion wird<br />
für jeden vorhanden DirectSound Treiber aufgerufen, außer die Callback-Funktion gibt<br />
den Wert false zurück - dadurch wird das weitere aufrufen der Callback-Funktion<br />
verhindert. Der Code in der Callback-Funktion ist auch beliebig - was man damit anstellt<br />
ist Sache des Programmierers - z. B. könnte man immer den Wert true zurückgeben um<br />
alle DirectSound Treiber zu ermitteln, die vorhanden sind oder vorzeitig durch<br />
Rückgabe des Wertes false eine weitere Ermittlung der vorhanden<br />
Soundausgabegeräte abbrechen, wenn man bereits ein geeignetes<br />
Soundausgabegerät gefunden hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/678393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/678393</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Wed, 22 Dec 2004 00:25:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Builder und Callback on Wed, 22 Dec 2004 06:50:43 GMT]]></title><description><![CDATA[<p>Hallo hermes,<br />
ich weiß jetzt nicht so recht wo dich der Schuh drückt ich nehme an es geht um die CALLBACK:</p>
<p>im H-File außerhalb der Klasse definiert</p>
<pre><code class="language-cpp">int (*TCPClientSend)(void*, char*, int);
	int TCPClientSENDEN(void*, char*, int);
</code></pre>
<p>im CPP - File</p>
<pre><code class="language-cpp">int TCPClientSENDEN(void* handle, char* sendbuffer, int sbsize)
{
	int i = -1;
	if (FlaeFluInterfaceForm-&gt;ClientSocket-&gt;Active)
	{
		i = FlaeFluInterfaceForm-&gt;ClientSocket-&gt;Socket-&gt;SendBuf(
														(void *) sendbuffer, sbsize);
	}
	return i;
}

// Weitergabe der Adresse
// Funktion xdrrec_create ENCODE senden
astrCliKompname		= ClientSocket-&gt;Name;
CliKompName		= new char[64];
CliKompName		= astrCliKompname.c_str();
TCPClientSend		= TCPClientSENDEN;
Files-&gt;xdrClientSend	= xdrrec_create(iPuffergroesse,
			 iPuffergroesse,
			 CliKompName,
			 NULL,
			 TCPClientSend);
</code></pre>
<p>Viel Erfolg<br />
Evi48</p>
]]></description><link>https://www.c-plusplus.net/forum/post/678429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/678429</guid><dc:creator><![CDATA[evi48]]></dc:creator><pubDate>Wed, 22 Dec 2004 06:50:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Builder und Callback on Sun, 26 Dec 2004 21:05:17 GMT]]></title><description><![CDATA[<p>Hallo evi48,</p>
<p>danke für Deine Antwort.</p>
<p>Da ich bisher nur mit dem Builder gearbeitet habe ist die direkte API Programmierung, dazu zählt ja die Geschichte mit Callback, ein wenig neu.</p>
<p>Wünsche Dir und allen Anderen hier im Forum einen guten Rutsch ins neue Jahr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/681336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/681336</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sun, 26 Dec 2004 21:05:17 GMT</pubDate></item></channel></rss>