<?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[ActiveX, unsichtbares Fenster]]></title><description><![CDATA[<p>Ich versuche, in einer dll eine ActiveX Komponente zu registrieren. - Dieser Teil läuft an sich ok (ich kann, wie gewünscht, einen webbrowser2 erzeugen), das Problem ist das Erzeugen eines Fensters.</p>
<p>Wenn ich Microsoft folge,so ist der erste Punkt die Initialisierung der ATL, die etwa so ausschaut:</p>
<pre><code>#pragma comment(lib, &quot;atl.lib&quot;)
#include &lt;atldef.h&gt;
#define _ATL_DLL_IMPL
#include &lt;atliface.h&gt;
</code></pre>
<ol start="2">
<li>Dann rufe ich die Funktion InitCommonControls auf:</li>
</ol>
<pre><code>InitCommonControls();
 _Module.Init(0, m_hInstance);
 AtlAxWinInit();

 HWND hWnd = ::CreateWindow(&quot;AtlAxWin&quot;, &quot;MSCAL.Calendar&quot;,
    WS_BORDER, 10, 10, 500, 300, NULL, NULL,
    ::GetModuleHandle(NULL), NULL);
</code></pre>
<p>Dieser Aufruf freilich ergibt bei mir einen leeren WindowsHandler.<br />
Woran kann das liegen?</p>
<p>Ps. All das ist hier beschrieben, hilft mir aber nicht recht weiter</p>
<p><a href="http://support.microsoft.com/kb/192560" rel="nofollow">http://support.microsoft.com/kb/192560</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199612/activex-unsichtbares-fenster</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 21:58:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199612.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Dec 2007 09:47:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ActiveX, unsichtbares Fenster on Wed, 05 Dec 2007 09:47:02 GMT]]></title><description><![CDATA[<p>Ich versuche, in einer dll eine ActiveX Komponente zu registrieren. - Dieser Teil läuft an sich ok (ich kann, wie gewünscht, einen webbrowser2 erzeugen), das Problem ist das Erzeugen eines Fensters.</p>
<p>Wenn ich Microsoft folge,so ist der erste Punkt die Initialisierung der ATL, die etwa so ausschaut:</p>
<pre><code>#pragma comment(lib, &quot;atl.lib&quot;)
#include &lt;atldef.h&gt;
#define _ATL_DLL_IMPL
#include &lt;atliface.h&gt;
</code></pre>
<ol start="2">
<li>Dann rufe ich die Funktion InitCommonControls auf:</li>
</ol>
<pre><code>InitCommonControls();
 _Module.Init(0, m_hInstance);
 AtlAxWinInit();

 HWND hWnd = ::CreateWindow(&quot;AtlAxWin&quot;, &quot;MSCAL.Calendar&quot;,
    WS_BORDER, 10, 10, 500, 300, NULL, NULL,
    ::GetModuleHandle(NULL), NULL);
</code></pre>
<p>Dieser Aufruf freilich ergibt bei mir einen leeren WindowsHandler.<br />
Woran kann das liegen?</p>
<p>Ps. All das ist hier beschrieben, hilft mir aber nicht recht weiter</p>
<p><a href="http://support.microsoft.com/kb/192560" rel="nofollow">http://support.microsoft.com/kb/192560</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415168</guid><dc:creator><![CDATA[Percy2000]]></dc:creator><pubDate>Wed, 05 Dec 2007 09:47:02 GMT</pubDate></item><item><title><![CDATA[Reply to ActiveX, unsichtbares Fenster on Wed, 05 Dec 2007 13:05:30 GMT]]></title><description><![CDATA[<p>Was sagt GetLastError?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415254</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 05 Dec 2007 13:05:30 GMT</pubDate></item><item><title><![CDATA[Reply to ActiveX, unsichtbares Fenster on Thu, 06 Dec 2007 09:33:07 GMT]]></title><description><![CDATA[<p>Die Antwort ist:</p>
<p>ERROR_CANNOT_FIND_WND_CLASS</p>
<p>was mich ein bisschen verwirrt. Heißt dies, dass man auch bei Einbinden eines ActiveX Controls eine Window Klasse definieren &amp; registrieren muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415670</guid><dc:creator><![CDATA[Percy2000]]></dc:creator><pubDate>Thu, 06 Dec 2007 09:33:07 GMT</pubDate></item><item><title><![CDATA[Reply to ActiveX, unsichtbares Fenster on Thu, 06 Dec 2007 10:08:34 GMT]]></title><description><![CDATA[<p>Fensterklasse ist nicht registriert.</p>
<p>Du machst das in einer DLL, dann kann Dir ::GetModuleHandle(NULL) nurein falsches Handle liefern! Verwende bitte die korrekte hInstance, die Dir auch in DllMain mitgeteilt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415701</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 06 Dec 2007 10:08:34 GMT</pubDate></item><item><title><![CDATA[Reply to ActiveX, unsichtbares Fenster on Thu, 06 Dec 2007 11:03:41 GMT]]></title><description><![CDATA[<p>Herzlichen Dank, Martin Richter. Da ist wohl der wunde Punkt berührt.<br />
Tatsächlich habe ich auch an dieser Frage herumlaboriert, aber auch das ergibt den FehlerCode 1407, also ERROR_CANNOT_FIND_WND_CLASS</p>
<p>Hier jedenfalls liehgt ein Teil meiner Unsicherheit (ist halt das 1. Mal, dass ich ein Fenster aus einer dll heraus erzeugen will)</p>
<pre><code>static HINSTANCE g_hinstDLL;  // in einer Header Datei definiert

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
g_hinstDLL = HINSTANCE(hModule);  // diesen Cast habe ich eingefügt, weil ich 
                                  // gelesen habe, dass der Handle identisch ist
                                  // mit dem hInstance Wert
return true;
}
</code></pre>
<p>Ich habe dies später ignoriert, weil ich gelesen habe, dass Windows 2000 + mHinstance völlig ignorieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415734</guid><dc:creator><![CDATA[Percy2000]]></dc:creator><pubDate>Thu, 06 Dec 2007 11:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to ActiveX, unsichtbares Fenster on Thu, 06 Dec 2007 12:15:59 GMT]]></title><description><![CDATA[<p>Percy2000 schrieb:</p>
<blockquote>
<p>Ich habe dies später ignoriert, weil ich gelesen habe, dass Windows 2000 + mHinstance völlig ignorieren.</p>
</blockquote>
<p>Wer hat so einen Quatsch geschrieben? Module Handle und Instance Handles haben wieterhin Bbedeutung...</p>
<p>Fürchterlich ist einfach, dass immer wieder GetModuleHandle(NULL) blind empfohlen wird, wenn man ein HINSTANCE benötigt. Aber irgend jemand hat es mal in die Welt gesetzt und nun wird es als &quot;Wahrheit&quot; immer wieder kopiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415779</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 06 Dec 2007 12:15:59 GMT</pubDate></item><item><title><![CDATA[Reply to ActiveX, unsichtbares Fenster on Thu, 06 Dec 2007 12:25:12 GMT]]></title><description><![CDATA[<p>Ist der Cast von Module zu hInstance so in Ordnung?<br />
Und wenn ja, woran kann's liegen, dass ich trotzdem die Fehlermeldung bekomme?</p>
<p>Hier übrigens der Urheber:<br />
<a href="http://www.cpp-tutor.de/mfc/mfc/kap2/_intern/createwindowex.htm" rel="nofollow">http://www.cpp-tutor.de/mfc/mfc/kap2/_intern/createwindowex.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415785</guid><dc:creator><![CDATA[Percy2000]]></dc:creator><pubDate>Thu, 06 Dec 2007 12:25:12 GMT</pubDate></item></channel></rss>