<?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[Callback vs. Anzeige im Dialog]]></title><description><![CDATA[<p>Hiho,</p>
<p>nach viel Sucherei habe ich ein Beispiel zu URLDownloadToFile gefunden.<br />
Da interessiert mich besonders die Callback-Function im letzten Parameter.</p>
<p>Es handelt sich dabei ja um eine eigene Klasse, soweit ich das bisher<br />
verstanden habe. Innerhalb der Callback kann ich auch den Fortschritt des<br />
Download ausgeben, allerdings ist mir absolut schleierhaft, wie ich, sobald<br />
die callback läuft einen Dialog damit aktualisieren/versorgen kann.</p>
<p>Meinen nicht modalen Dialog sperrt der Arbeitsablauf der Callback-Funktion <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="😞"
    /></p>
<p>Ich habe es so versucht, dass ich erst den nicht modalen Dialog anzeige,<br />
dann URLDownloadToFile mit callback rufe und innerhalb der Callback in<br />
OnProgress(...) die nicht modale Dialogfunktion aufrufe, die den Dialog<br />
dann mit SetDlgItemText(...) updaten soll.</p>
<p>Boah..ich hoffe irgendjemand versteht diesen Kauderwelsch oder kann es<br />
mir erklären, wie ichs richtig hinbekomme. Callback war bis dato ein<br />
unbekannter Begriff für mich <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="🙄"
    /></p>
<pre><code class="language-cpp">MyCallback pCallback;
    hr = URLDownloadToFile ( NULL,      
                             m_editURL,      
                             m_editFile,     
                             0,         
                             &amp;pCallback  // ptr auf callback
                           );
</code></pre>
<p>Die Callback:</p>
<pre><code class="language-cpp">class MyCallback : public IBindStatusCallback  
{
public:
    MyCallback() {}

    ~MyCallback() { }

    // This one is called by URLDownloadToFile
    STDMETHOD(OnProgress)(/* [in] */ ULONG ulProgress, /* [in] */ ULONG ulProgressMax, /* [in] */ ULONG ulStatusCode, /* [in] */ LPCWSTR wszStatusText)
    {

    	CString hg;
		hg.Format(&quot;%i&quot;,ulProgress);//totale größe in bytes

         download f; //download ist klasse vom dialog IDD_DIALOG1
         f.updater(hg); //updater ist eine Funktion der download-klasse und ruft dort SetDlgItemText(...)

//....

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/189150/callback-vs-anzeige-im-dialog</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 20:04:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189150.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Aug 2007 08:25:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Callback vs. Anzeige im Dialog on Thu, 09 Aug 2007 08:25:01 GMT]]></title><description><![CDATA[<p>Hiho,</p>
<p>nach viel Sucherei habe ich ein Beispiel zu URLDownloadToFile gefunden.<br />
Da interessiert mich besonders die Callback-Function im letzten Parameter.</p>
<p>Es handelt sich dabei ja um eine eigene Klasse, soweit ich das bisher<br />
verstanden habe. Innerhalb der Callback kann ich auch den Fortschritt des<br />
Download ausgeben, allerdings ist mir absolut schleierhaft, wie ich, sobald<br />
die callback läuft einen Dialog damit aktualisieren/versorgen kann.</p>
<p>Meinen nicht modalen Dialog sperrt der Arbeitsablauf der Callback-Funktion <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="😞"
    /></p>
<p>Ich habe es so versucht, dass ich erst den nicht modalen Dialog anzeige,<br />
dann URLDownloadToFile mit callback rufe und innerhalb der Callback in<br />
OnProgress(...) die nicht modale Dialogfunktion aufrufe, die den Dialog<br />
dann mit SetDlgItemText(...) updaten soll.</p>
<p>Boah..ich hoffe irgendjemand versteht diesen Kauderwelsch oder kann es<br />
mir erklären, wie ichs richtig hinbekomme. Callback war bis dato ein<br />
unbekannter Begriff für mich <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="🙄"
    /></p>
<pre><code class="language-cpp">MyCallback pCallback;
    hr = URLDownloadToFile ( NULL,      
                             m_editURL,      
                             m_editFile,     
                             0,         
                             &amp;pCallback  // ptr auf callback
                           );
</code></pre>
<p>Die Callback:</p>
<pre><code class="language-cpp">class MyCallback : public IBindStatusCallback  
{
public:
    MyCallback() {}

    ~MyCallback() { }

    // This one is called by URLDownloadToFile
    STDMETHOD(OnProgress)(/* [in] */ ULONG ulProgress, /* [in] */ ULONG ulProgressMax, /* [in] */ ULONG ulStatusCode, /* [in] */ LPCWSTR wszStatusText)
    {

    	CString hg;
		hg.Format(&quot;%i&quot;,ulProgress);//totale größe in bytes

         download f; //download ist klasse vom dialog IDD_DIALOG1
         f.updater(hg); //updater ist eine Funktion der download-klasse und ruft dort SetDlgItemText(...)

//....

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1341274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1341274</guid><dc:creator><![CDATA[muthi]]></dc:creator><pubDate>Thu, 09 Aug 2007 08:25:01 GMT</pubDate></item><item><title><![CDATA[Reply to Callback vs. Anzeige im Dialog on Thu, 09 Aug 2007 09:21:02 GMT]]></title><description><![CDATA[<p>Ich habe es jetzt noch anders versucht...</p>
<p>Mit SetDlgItemText wird zwar die Änderung in den nicht modalen Dialog<br />
geschrieben, aber irgendwann wird dieser dann (zusammen mit der Hauptanwendung)<br />
komplett weiss...und man sieht nichts mehr, bis der Download fertig ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<pre><code class="language-cpp">CString hg;
		hg.Format(&quot;%i&quot;,ulProgress);//totale größe in bytes

		HWND m_hWnd = ::FindWindow(NULL,&quot;Status&quot;);
		::SetDlgItemText(m_hWnd,IDC_DOWNLOAD,hg);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1341329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1341329</guid><dc:creator><![CDATA[muthi]]></dc:creator><pubDate>Thu, 09 Aug 2007 09:21:02 GMT</pubDate></item><item><title><![CDATA[Reply to Callback vs. Anzeige im Dialog on Thu, 09 Aug 2007 14:41:39 GMT]]></title><description><![CDATA[<p>Hat denn niemand eine Idee dazu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1341612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1341612</guid><dc:creator><![CDATA[muthi]]></dc:creator><pubDate>Thu, 09 Aug 2007 14:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to Callback vs. Anzeige im Dialog on Sun, 12 Aug 2007 09:54:23 GMT]]></title><description><![CDATA[<p>Der Dialog bleibt blockiert. Geht nicht anders!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343082</guid><dc:creator><![CDATA[Noah]]></dc:creator><pubDate>Sun, 12 Aug 2007 09:54:23 GMT</pubDate></item></channel></rss>