<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Martin&#039;s Blog</title>
	<atom:link href="http://blog.m-ri.de/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.m-ri.de</link>
	<description>Gesammeltes aus dem Leben eines &#34;normalen&#34; Programmierers... :-)</description>
	<lastBuildDate>Wed, 01 Sep 2010 12:25:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Bug: VC-2010 MFC CFormView zeichnet Buttons beim Rollen falsch, es erscheinen schwarze Blöcke</title>
		<link>http://blog.m-ri.de/index.php/2010/08/28/bug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke/</link>
		<comments>http://blog.m-ri.de/index.php/2010/08/28/bug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 09:36:27 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[VS 2010]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[MFC-Next]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[VS-2010]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=662</guid>
		<description><![CDATA[In der MFC 10.0 hat sich ein Bug eingeschlichen, der sich unter Windows Vista und Windows 7  bemerkbar macht. Unter Windows XP tritt der Fehler nicht auf. Das Problem tritt in jedem Stil auf, der DWM verwendet. D.h. nicht wenn Windows klassisch ausgewählt wird. Wenn auf einen CFormView mehrere Buttons liegen und der CFormView gerollt [...]]]></description>
			<content:encoded><![CDATA[<p>In der <em>MFC 10.0 </em>hat sich ein Bug eingeschlichen, der sich unter <em>Windows Vista </em>und <em>Windows 7  </em>bemerkbar macht. Unter Windows XP tritt der Fehler nicht auf. Das Problem tritt in jedem Stil auf, der <em>DWM</em> verwendet. D.h. nicht wenn Windows klassisch ausgewählt wird.</p>
<p>Wenn auf einen <em>CFormView</em> mehrere Buttons liegen und der <em>CFormView</em> gerollt wird, dann kommt es unter Umständen zu Fehlern beim Neuzeichnen von Buttons. Dies schließt alle Button-Formen ein: <em>Check-Buttons</em>, <em>Radio-Buttons </em>und normale <em>Buttons</em>.</p>
<p>Das Ganze sieht nach dem Rollen in etwa so aus:<br />
<a href="http://blog.m-ri.de/wp-content/uploads/2010/08/CScrollView.png"><img class="alignnone size-full wp-image-663" title="CScrollView Bug" src="http://blog.m-ri.de/wp-content/uploads/2010/08/CScrollView.png" alt="" width="319" height="110" /></a></p>
<p>Der Text einiger Buttons erscheint nach dem Rollen als schwarze Blöcke. Es kann auch vorkommen, dass nur Teile der Buttons falsch gezeichnet werden.</p>
<p>Um das Problem gezielt nachzuvollziehen habe ich ein kleines Sample gebaut. Man kann durch zwei Schalter den CScrollView gezielt nach oben oder unten Rollen. Beim Rollen nach unten und bei bestimmten Fenstergrößen tritt dann der Fehler auf. Ich habe das Main-Window entsprechend beim Start in der Größe angepasst.</p>
<p>Das Problem liegt in einer Implementierung von <em>WM_PRINTCLIENT </em>in <em>CScrollView (CScrollView::OnPrintClient)</em>, die ein Double-Buffering verwendet, dass entweder falsch ist oder sich eben mit der Standardimplementierung eines Dialoges beißt. Auf den ersten und zweiten Blick konnte ich in der Implementierung selbst keinen Fehler sehen. Deshalb vermute ich, dass sich dieses Double-Buffering mit dem auch vorhandenen Double-Buffering in den Standardimplementierungen der Dialogklasse beißt bzw. nicht korrekt berücksichtigt, dass auch Child-Windows neu gezeichnet werden müssen.</p>
<p>Die Lösung ist entsprechend einfach:</p>
<ul>
<li>Man fügt einfach einen Handler für <em>WM_PRINTCLIENT </em>in seiner von <em>CFormView</em> abgeleiteten Klasse ein.</li>
<li>Dieser Handler ruft dann nicht die Implementierung der Basisklasse <em>CFormView</em> auf, sondern die Implementierung in <em>CView</em> (<em>CView::OnPrintClient</em>).</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">...
<span style="color: #007788;">ON_MESSAGE</span><span style="color: #008000;">&#40;</span>WM_PRINTCLIENT,<span style="color: #000040;">&amp;</span>CScrollDialogMFCView<span style="color: #008080;">::</span><span style="color: #007788;">OnPrintClient</span><span style="color: #008000;">&#41;</span>
...
&nbsp;
<span style="color: #007788;">LRESULT</span> CScrollDialogMFCView<span style="color: #008080;">::</span><span style="color: #007788;">OnPrintClient</span><span style="color: #008000;">&#40;</span> WPARAM wp, LPARAM lp <span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #666666;">// Bypass the CScrollView::OnPrintClient implementation</span>
  <span style="color: #0000ff;">return</span> CView<span style="color: #008080;">::</span><span style="color: #007788;">OnPrintClient</span><span style="color: #008000;">&#40;</span>wp,lp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Dieser Fehler ist in keiner der vorhergehenden MFC Versionen vorhanden (auch nicht in <em>MFCNext</em>), weil einfach kein entsprechender Handler vorhanden war..</p>
<p>Es stellt sich wohl bei einigen jetzt die Frage warum dieser Handler eingebaut wurde. Auch die Antwort ist einfach:<br />
Seit <em>Windows Vista</em> wird stark von <em>AnimateWindow</em> Gebrauch gemacht und auch <em>DWM</em> intern scheint des öfteren <em>WM_PRINT</em>/<em>WM_PRINTCLIENT</em> zu verwenden. Entsprechend haben fast alle Klassen in der <em>MFC</em> entsprechende Handler ergänzt bekommen.</p>
<p>Das Sample kann man hier herunterladen: <a href="http://blog.m-ri.de/wp-content/uploads/2010/08/ScrollDialogMFC-VS-2010.zip">ScrollDialogMFC &#8211; VS-2010</a>.<br />
Ich habe in der stdafx.h einen define <em>FIX_CSCROLLVIEW_PROBLEM</em> eingebaut mit dem man den Fix einfach aktivieren und deaktivieren kann.</p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F28%2Fbug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke%2F&amp;title=Bug%3A%20VC-2010%20MFC%20CFormView%20zeichnet%20Buttons%20beim%20Rollen%20falsch%2C%20es%20erscheinen%20schwarze%20Bl%C3%B6cke&amp;annotation=In%20der%20MFC%2010.0%20hat%20sich%20ein%20Bug%20eingeschlichen%2C%20der%20sich%20unter%20Windows%20Vista%20und%20Windows%207%C2%A0%20bemerkbar%20macht.%20Unter%20Windows%20XP%20tritt%20der%20Fehler%20nicht%20auf.%20Das%20Problem%20tritt%20in%20jedem%20Stil%20auf%2C%20der%20DWM%20verwendet.%20D.h.%20nicht%20wenn%20Windows%20klassisch%20ausg" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F28%2Fbug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke%2F&amp;title=Bug%3A%20VC-2010%20MFC%20CFormView%20zeichnet%20Buttons%20beim%20Rollen%20falsch%2C%20es%20erscheinen%20schwarze%20Bl%C3%B6cke&amp;notes=In%20der%20MFC%2010.0%20hat%20sich%20ein%20Bug%20eingeschlichen%2C%20der%20sich%20unter%20Windows%20Vista%20und%20Windows%207%C2%A0%20bemerkbar%20macht.%20Unter%20Windows%20XP%20tritt%20der%20Fehler%20nicht%20auf.%20Das%20Problem%20tritt%20in%20jedem%20Stil%20auf%2C%20der%20DWM%20verwendet.%20D.h.%20nicht%20wenn%20Windows%20klassisch%20ausg" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F28%2Fbug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke%2F&amp;bm_description=Bug%3A%20VC-2010%20MFC%20CFormView%20zeichnet%20Buttons%20beim%20Rollen%20falsch%2C%20es%20erscheinen%20schwarze%20Bl%C3%B6cke&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F28%2Fbug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F28%2Fbug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke%2F&amp;t=Bug%3A%20VC-2010%20MFC%20CFormView%20zeichnet%20Buttons%20beim%20Rollen%20falsch%2C%20es%20erscheinen%20schwarze%20Bl%C3%B6cke" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F28%2Fbug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke%2F&amp;title=Bug%3A%20VC-2010%20MFC%20CFormView%20zeichnet%20Buttons%20beim%20Rollen%20falsch%2C%20es%20erscheinen%20schwarze%20Bl%C3%B6cke" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Bug%3A%20VC-2010%20MFC%20CFormView%20zeichnet%20Buttons%20beim%20Rollen%20falsch%2C%20es%20erscheinen%20schwarze%20Bl%C3%B6cke%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F28%2Fbug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2010/07/25/mfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr/" title="MFC-Next 9.0 > MFC 10.0 denn CMFCRibbonPanel::EnableLaunchButton gibt es nicht mehr (So 25. Jul 2010)">MFC-Next 9.0 > MFC 10.0 denn CMFCRibbonPanel::EnableLaunchButton gibt es nicht mehr</a> (1)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/07/29/die-mfc-erhaelt-mit-vc-2010-jetzt-eine-neue-hashkey-implementierung/" title="Die MFC erhält mit VC-2010 jetzt eine neue HashKey Implementierung (Mi 29. Jul 2009)">Die MFC erhält mit VC-2010 jetzt eine neue HashKey Implementierung</a> (1)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/06/14/die-hashkey-implementierung-in-der-mfc-in-vc-2005-und-vc-2008/" title="Die HashKey Implementierung in der MFC in VC-2005 und VC-2008 (So 14. Jun 2009)">Die HashKey Implementierung in der MFC in VC-2005 und VC-2008</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/08/28/bug-vc-2010-cformview-zeichnet-buttons-beim-rollen-falsch-es-erscheinen-schwarze-bloecke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Texte von deutschen Meldungen in Microsoft Produkten auf englisch finden</title>
		<link>http://blog.m-ri.de/index.php/2010/08/21/texte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden/</link>
		<comments>http://blog.m-ri.de/index.php/2010/08/21/texte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 09:16:41 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Übersetzung]]></category>
		<category><![CDATA[Glossaries]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=657</guid>
		<description><![CDATA[ Wer kennt das nicht: Da hat man ein deutsches Microsoft-Produkt und bekommt eine Fehlermeldung, auf die Google nichts ausspuckt. Scheinbar ein seltener Fehler. Oder evtl. benutzen viel mehr Anwender die englische Version eines Entwicklerproduktes. Was nun? Ja wenn man genau wüsste wie die selbe Meldung in englisch lautet, besonders wenn man keine Fehlernummer oder keine [...]]]></description>
			<content:encoded><![CDATA[<p> Wer kennt das nicht: Da hat man ein deutsches Microsoft-Produkt und bekommt eine Fehlermeldung, auf die Google nichts ausspuckt. Scheinbar ein seltener Fehler. Oder evtl. benutzen viel mehr Anwender die englische Version eines Entwicklerproduktes.</p>
<p>Was nun? Ja wenn man genau wüsste wie die selbe Meldung in englisch lautet, besonders wenn man keine Fehlernummer oder keine ID aus dem Ereignisprotokoll hat&#8230;</p>
<p>Die Lösung für <em>MSDN</em> Nutzer ist einfacher als man denkt:<br />
Es gibt die Glossaries, d.h. die entsprechenden Übersetzungstabellen komplett zum Download <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p><a href="http://blog.m-ri.de/wp-content/uploads/2010/08/TranslationGlossaries.png"><img class="alignnone size-full wp-image-658" title="Translation Glossaries" src="http://blog.m-ri.de/wp-content/uploads/2010/08/TranslationGlossaries.png" alt="" width="974" height="374" /></a></p>
<p>In der entsprechenden <em>ZIP</em>-Datei befinden sich 276 csv Dateien mit allen möglichen Produkten. Das schließt die Windows Server Produkte ein, wie auch <em>VisualStudio</em>.<br />
Alleine die <em>Windows 7 </em>Datei umfasst 56 Megabyte an Texten.</p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F21%2Ftexte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden%2F&amp;title=Texte%20von%20deutschen%20Meldungen%20in%20Microsoft%20Produkten%20auf%20englisch%20finden&amp;annotation=%C2%A0Wer%20kennt%20das%20nicht%3A%20Da%20hat%20man%20ein%20deutsches%20Microsoft-Produkt%20und%20bekommt%20eine%20Fehlermeldung%2C%20auf%20die%20Google%20nichts%20ausspuckt.%20Scheinbar%20ein%20seltener%20Fehler.%20Oder%20evtl.%20benutzen%20viel%20mehr%20Anwender%20die%20englische%20Version%20eines%20Entwicklerproduktes.%0D" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F21%2Ftexte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden%2F&amp;title=Texte%20von%20deutschen%20Meldungen%20in%20Microsoft%20Produkten%20auf%20englisch%20finden&amp;notes=%C2%A0Wer%20kennt%20das%20nicht%3A%20Da%20hat%20man%20ein%20deutsches%20Microsoft-Produkt%20und%20bekommt%20eine%20Fehlermeldung%2C%20auf%20die%20Google%20nichts%20ausspuckt.%20Scheinbar%20ein%20seltener%20Fehler.%20Oder%20evtl.%20benutzen%20viel%20mehr%20Anwender%20die%20englische%20Version%20eines%20Entwicklerproduktes.%0D" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F21%2Ftexte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden%2F&amp;bm_description=Texte%20von%20deutschen%20Meldungen%20in%20Microsoft%20Produkten%20auf%20englisch%20finden&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F21%2Ftexte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F21%2Ftexte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden%2F&amp;t=Texte%20von%20deutschen%20Meldungen%20in%20Microsoft%20Produkten%20auf%20englisch%20finden" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F21%2Ftexte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden%2F&amp;title=Texte%20von%20deutschen%20Meldungen%20in%20Microsoft%20Produkten%20auf%20englisch%20finden" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Texte%20von%20deutschen%20Meldungen%20in%20Microsoft%20Produkten%20auf%20englisch%20finden%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F21%2Ftexte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2010/01/23/was-denn-nun-switchtothread-sleep0-sleep1-2/" title="Was denn nun SwitchToThread(), Sleep(0), Sleep(1)? (Sa 23. Jan 2010)">Was denn nun SwitchToThread(), Sleep(0), Sleep(1)?</a> (2)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/12/21/vs-tipps-tricks-springe-zur-naechsten-klammer-funktioniert-auch-fuer-if-elif-else-und-endif/" title="VS-Tipps &#038; Tricks: Springe zur nächsten Klammer funktioniert auch für #if, #elif, #else und #endif (Mo 21. Dez 2009)">VS-Tipps &#038; Tricks: Springe zur nächsten Klammer funktioniert auch für #if, #elif, #else und #endif</a> (1)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/02/21/vista-wo-ist-bitte-die-option-unterstrichene-buchstaben-fuer-tastatur-navigation-ausblenden-geblieben/" title="Vista: Wo ist bitte die Option &#8220;Unterstrichene Buchstaben für Tastatur Navigation ausblenden&#8221; geblieben (Sa 21. Feb 2009)">Vista: Wo ist bitte die Option &#8220;Unterstrichene Buchstaben für Tastatur Navigation ausblenden&#8221; geblieben</a> (4)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/08/21/texte-von-deutschen-meldungen-in-microsoft-produkten-auf-englisch-finden/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bug: CSimpleMap und CSimpleArray führen bei Verwendung von SetAtIndex zu einem Leak</title>
		<link>http://blog.m-ri.de/index.php/2010/08/17/bug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak/</link>
		<comments>http://blog.m-ri.de/index.php/2010/08/17/bug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 17:56:17 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[ATL]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[VS 2008]]></category>
		<category><![CDATA[VS 2010]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[VS-2005]]></category>
		<category><![CDATA[VS-2008]]></category>
		<category><![CDATA[VS-2010]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=655</guid>
		<description><![CDATA[Wieder einmal ein Bug, der seit VC-2005 bekannt ist und in meinen Augen unmöglich als by design abgetan werden darf. Das Problem ist simpel, wenn man die Funktion SetAtIndex in den Klassen CSimpleMap und CSimpleArray angewendet wird, dann wird für das bestehende Element in der Map oder im Array kein Destruktor aufgerufen. D.h. eine CSimpleMap&#60;CString,&#8230;&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Wieder einmal ein Bug, der seit <em>VC-2005 </em>bekannt ist und in meinen Augen unmöglich als <strong><em>by design </em></strong>abgetan werden darf.</p>
<p>Das Problem ist simpel, wenn man die Funktion <em>SetAtIndex</em> in den Klassen <em>CSimpleMap</em> und <em>CSimpleArray</em> angewendet wird, dann wird für das bestehende Element in der Map oder im Array kein Destruktor aufgerufen. D.h. eine <em>CSimpleMap&lt;CString,&#8230;&gt; </em>bzw. ein <em>CSimpleArray&lt;CString&gt;</em> führt mit der Verwendung von <em>SetAtIndex </em>sofort zu Leaks.</p>
<p>Tückisch in reinen <em>ATL</em> Projekten, weil hier der <em>CRT</em> Heap nicht benutzt wird und die Speicherleaks durch die <em>CRT</em> nicht entdeckt werden, weil der <em>Win32</em> Heap zum Einsatz kommt.</p>
<p>Hier ist der Bug zu finden, inkl. der in meinen Augen korrekten Implementierung:<br />
<a href="https://connect.microsoft.com/VisualStudio/feedback/details/298324/csimplemap-setatindex-do-not-call-a-ditructor">https://connect.microsoft.com/VisualStudio/feedback/details/298324/csimplemap-setatindex-do-not-call-a-ditructor</a></p>
<p>Für mich ist besonders diese Antwort äußerst fragwürdig:</p>
<blockquote><p>CSimpleMap wasn&#8217;t really designed to work for types that needed destruction. The docs state it is limited and you should use CAtlMap instead.</p></blockquote>
<p>Dieser Satz und dieser Hinweis ist in keiner Doku zu finden. Die Doku liest sich ganz anders:<br />
<a href="http://msdn.microsoft.com/en-us/library/d1xc3983(VS.100).aspx">http://msdn.microsoft.com/en-us/library/d1xc3983(VS.100).aspx</a></p>
<blockquote><p><strong>CSimpleMap</strong> provides support for a simple mapping array of <strong><em>any given type T</em></strong>, managing an unordered array of key elements and their associated values.</p></blockquote>
<p><strong>Man kann nur raten <em>SetAtIndex</em> nicht zu verwenden, sondern nur <em>SetAt</em> oder den operator[] <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </strong></p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F17%2Fbug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak%2F&amp;title=Bug%3A%20CSimpleMap%20und%20CSimpleArray%20f%C3%BChren%20bei%20Verwendung%20von%20SetAtIndex%20zu%20einem%20Leak&amp;annotation=Wieder%20einmal%20ein%20Bug%2C%20der%20seit%20VC-2005%20bekannt%20ist%20und%20in%20meinen%20Augen%20unm%C3%B6glich%20als%20by%20design%20abgetan%20werden%20darf.%0D%0A%0D%0ADas%20Problem%20ist%20simpel%2C%20wenn%20man%20die%20Funktion%20SetAtIndex%20in%20den%20Klassen%20CSimpleMap%20und%20CSimpleArray%20angewendet%20wird%2C%20dann%20wird%20f%C3" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F17%2Fbug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak%2F&amp;title=Bug%3A%20CSimpleMap%20und%20CSimpleArray%20f%C3%BChren%20bei%20Verwendung%20von%20SetAtIndex%20zu%20einem%20Leak&amp;notes=Wieder%20einmal%20ein%20Bug%2C%20der%20seit%20VC-2005%20bekannt%20ist%20und%20in%20meinen%20Augen%20unm%C3%B6glich%20als%20by%20design%20abgetan%20werden%20darf.%0D%0A%0D%0ADas%20Problem%20ist%20simpel%2C%20wenn%20man%20die%20Funktion%20SetAtIndex%20in%20den%20Klassen%20CSimpleMap%20und%20CSimpleArray%20angewendet%20wird%2C%20dann%20wird%20f%C3" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F17%2Fbug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak%2F&amp;bm_description=Bug%3A%20CSimpleMap%20und%20CSimpleArray%20f%C3%BChren%20bei%20Verwendung%20von%20SetAtIndex%20zu%20einem%20Leak&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F17%2Fbug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F17%2Fbug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak%2F&amp;t=Bug%3A%20CSimpleMap%20und%20CSimpleArray%20f%C3%BChren%20bei%20Verwendung%20von%20SetAtIndex%20zu%20einem%20Leak" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F17%2Fbug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak%2F&amp;title=Bug%3A%20CSimpleMap%20und%20CSimpleArray%20f%C3%BChren%20bei%20Verwendung%20von%20SetAtIndex%20zu%20einem%20Leak" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Bug%3A%20CSimpleMap%20und%20CSimpleArray%20f%C3%BChren%20bei%20Verwendung%20von%20SetAtIndex%20zu%20einem%20Leak%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F08%2F17%2Fbug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2009/07/29/die-mfc-erhaelt-mit-vc-2010-jetzt-eine-neue-hashkey-implementierung/" title="Die MFC erhält mit VC-2010 jetzt eine neue HashKey Implementierung (Mi 29. Jul 2009)">Die MFC erhält mit VC-2010 jetzt eine neue HashKey Implementierung</a> (1)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/06/14/die-hashkey-implementierung-in-der-mfc-in-vc-2005-und-vc-2008/" title="Die HashKey Implementierung in der MFC in VC-2005 und VC-2008 (So 14. Jun 2009)">Die HashKey Implementierung in der MFC in VC-2005 und VC-2008</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/08/01/cmapstringto-hashkey-implementierung-in-vc-200358-ist-auch-fragwuerdig/" title="CMapStringTo&#8230; HashKey Implementierung in VC-2003/5/8 ist auch fragwürdig (Sa 01. Aug 2009)">CMapStringTo&#8230; HashKey Implementierung in VC-2003/5/8 ist auch fragwürdig</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/08/17/bug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VeriSign &#8216;Microsoft Authenticode&#8217; Class 3 Code Signing Digital Certificate für $99,&#8211;</title>
		<link>http://blog.m-ri.de/index.php/2010/07/29/verisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99/</link>
		<comments>http://blog.m-ri.de/index.php/2010/07/29/verisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 19:26:49 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[VeriSign]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=652</guid>
		<description><![CDATA[Ich war mal wieder auf meiner WinQual Seite um festzustellen ob es im aktuellen Release auffällige Crashes gibt. Dabei viel mir ein Link ins Auge, der ein VeriSign &#8216;Microsoft Authenticode&#8217; Class 3 Code Signing Digital Certificate für nur $99,&#8211; anbietet. Bei einem Normalpreis von $499,&#8211; ist das kein schlechter Preis! Hier der Link auf die [...]]]></description>
			<content:encoded><![CDATA[<p>Ich war mal wieder auf meiner WinQual Seite um festzustellen ob es im aktuellen Release auffällige Crashes gibt.<br />
Dabei viel mir ein Link ins Auge, der ein <strong>VeriSign &#8216;Microsoft Authenticode&#8217; Class 3 Code Signing Digital Certificate</strong> für nur <strong>$99,&#8211;</strong> anbietet. Bei einem Normalpreis von <strong>$499,&#8211;</strong> ist das kein schlechter Preis!</p>
<p>Hier der Link auf die WinQual Seite:<br />
<a href="http://winqual.microsoft.com/help/default.htm#obtaining_a_verisign_class_3_digital_id.htm" target="_blank">http://winqual.microsoft.com/help/default.htm#obtaining_a_verisign_class_3_digital_id.htm</a></p>
<p>und hier der entsprechende Link direkt zu VeriSign:<br />
<a href="https://securitycenter.verisign.com/celp/enroll/upsell?promo_code=THEDEAL99&amp;application_locale=VRSN_US&amp;originator=VeriSign:CELP&amp;bundle_id=MSIECS002&amp;enable_options=validity_1" target="_blank">https://securitycenter.verisign.com/celp/enroll/upsell?promo_code=THEDEAL99&amp;application_locale=VRSN_US&amp;originator=VeriSign:CELP&amp;bundle_id=MSIECS002&amp;enable_options=validity_1</a></p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F29%2Fverisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99%2F&amp;title=VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20%2499%2C--&amp;annotation=Ich%20war%20mal%20wieder%20auf%20meiner%20WinQual%20Seite%20um%20festzustellen%20ob%20es%20im%20aktuellen%20Release%20auff%C3%A4llige%20Crashes%20gibt.%0D%0ADabei%20viel%20mir%20ein%20Link%20ins%20Auge%2C%20der%20ein%20VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20nur%20%2499%2C--%20an" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F29%2Fverisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99%2F&amp;title=VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20%2499%2C--&amp;notes=Ich%20war%20mal%20wieder%20auf%20meiner%20WinQual%20Seite%20um%20festzustellen%20ob%20es%20im%20aktuellen%20Release%20auff%C3%A4llige%20Crashes%20gibt.%0D%0ADabei%20viel%20mir%20ein%20Link%20ins%20Auge%2C%20der%20ein%20VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20nur%20%2499%2C--%20an" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F29%2Fverisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99%2F&amp;bm_description=VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20%2499%2C--&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F29%2Fverisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F29%2Fverisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99%2F&amp;t=VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20%2499%2C--" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F29%2Fverisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99%2F&amp;title=VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20%2499%2C--" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=VeriSign%20%27Microsoft%20Authenticode%27%20Class%203%20Code%20Signing%20Digital%20Certificate%20f%C3%BCr%20%2499%2C--%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F29%2Fverisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2010/02/01/mein-baby-ist-nun-kompatibel-mit-windows-7/" title="Mein &#8220;Baby&#8221; ist nun &#8220;Kompatibel mit Windows 7&#8243; (Mo 01. Feb 2010)">Mein &#8220;Baby&#8221; ist nun &#8220;Kompatibel mit Windows 7&#8243;</a> (2)</li>
	<li><a href="http://blog.m-ri.de/index.php/2010/06/07/tipps-tricks-mal-ganz-schnell-das-ms-sql-server-2008-managment-studio-express-nachinstallieren/" title="Tipps &#038; Tricks: Mal ganz schnell das MS-SQL Server 2008 Managment Studio Express nachinstallieren (Mo 07. Jun 2010)">Tipps &#038; Tricks: Mal ganz schnell das MS-SQL Server 2008 Managment Studio Express nachinstallieren</a> (1)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/02/15/slow-drawtext-performance-in-vista-and-windows-7-please-comment/" title="Slow DrawText performance in Vista and Windows 7. Please comment&#8230; (So 15. Feb 2009)">Slow DrawText performance in Vista and Windows 7. Please comment&#8230;</a> (7)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/07/29/verisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MFC-Next 9.0 &gt; MFC 10.0 denn CMFCRibbonPanel::EnableLaunchButton gibt es nicht mehr</title>
		<link>http://blog.m-ri.de/index.php/2010/07/25/mfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr/</link>
		<comments>http://blog.m-ri.de/index.php/2010/07/25/mfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 15:19:40 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[VS 2010]]></category>
		<category><![CDATA[MFC-Next]]></category>
		<category><![CDATA[VS-2005]]></category>
		<category><![CDATA[VS-2010]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=645</guid>
		<description><![CDATA[Sehr erfreut waren viele C++ Entwickler darüber das es mit der MFC in VC-2008 weiter ging und MFC-Next veröffentlicht wurde. Das ganze wurde dann fest in VS-2008 SP1 integriert. Normalerweise sind wir es gewohnt, dass zur MFC nur Dinge hinzukommen und nichts wegfällt. Für die MFC 10.0 aus VS-2010 gilt das diesmal nicht: MFC 10.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Sehr erfreut waren viele C++ Entwickler darüber das es mit der <em>MFC</em> in <em>VC-2008</em> weiter ging und <em>MFC-Next </em>veröffentlicht wurde. Das ganze wurde dann fest in <em>VS-2008 SP1</em> integriert. Normalerweise sind wir es gewohnt, dass zur <em>MFC </em>nur Dinge hinzukommen und nichts wegfällt.</p>
<p>Für die <em>MFC 10.0</em> aus <em>VS-2010</em> gilt das diesmal nicht: <strong><em>MFC 10.0 &lt; MFC-Next 9.0</em></strong>!</p>
<p>Irgendwie hat es <a href="http://msdn.microsoft.com/en-us/library/bb983968(VS.100).aspx">CMFCRibbonPanel::EnableLaunchButton</a> nicht in die <em>MFC 10.0 </em>geschafft, obwohl die Funktion vollständig in der <em>MFC-Next 9.0 </em>implementiert war. Das soll mal einer verstehen <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' />  ich jedenfalls nicht!</p>
<p>Diese Funktion sorgt für den kleinen netten Schalter in einem Panel:<br />
<a href="http://blog.m-ri.de/wp-content/uploads/2010/07/LaunchButton.jpg"><img class="alignnone size-full wp-image-646" title="LaunchButton" src="http://blog.m-ri.de/wp-content/uploads/2010/07/LaunchButton.jpg" alt="" width="173" height="102" /></a></p>
<p>Erstaunlicherweise gibt es diese Funktion nun nicht mehr! Wer also 100% Office-kompatible Anwendungen schreiben will ist hier schon mal aufgeschmissen, wenn er das mit MFC 10.0 machen will.<br />
Im Header finden wir diese Funktion noch mit einem <em>#ifdef </em>auskommentiert. Allerdings nützt es nichts diesen <em>#define </em>zu setzen, denn es gibt keine Implementierung und entsprechend keinen Code in der DLL/Library. Ja und in der <a href="http://msdn.microsoft.com/en-us/library/bb983968(VS.100).aspx">MFC Doku </a>finden wir die Funktion auch noch.</p>
<p>Und auch dieses Problem war noch in der Beta-Phase bekannt und wurde abgebügelt, wie man in den nachfolgenden Links lesen kann.<br />
<a href="http://social.msdn.microsoft.com/Forums/en/vcmfcatl/thread/29ad2859-6341-4ffb-85c2-f5f056a6ca48">http://social.msdn.microsoft.com/Forums/en/vcmfcatl/thread/29ad2859-6341-4ffb-85c2-f5f056a6ca48</a><br />
<a href="https://connect.microsoft.com/VisualStudioJapan/feedback/details/533876/cmfcribbonpanel-enablelaunchbutton?wa=wsignin1.0">https://connect.microsoft.com/VisualStudioJapan/feedback/details/533876/cmfcribbonpanel-enablelaunchbutton?wa=wsignin1.0</a><br />
<strong>Wem es möglich ist, sollte hier bitte Abstimmen und diesen Bug als wichtig kennzeichnen!</strong></p>
<p>Langsam frage ich mich ob es nicht gescheiter gewesen wäre bei MFC-Next 9.0 zu bleiben und mit VS-2008 weiter zu arbeiten.<br />
Tja und so hat die <a href="http://www.bcgsoft.com">BCG-Library</a> in Verbindung mit VS-2010 auch eine Daseinsberechtigung. Die kann diesen LaunchButton natürlich darstellen.</p>
<p>PS: Auf Nachfrage bei Microsoft bekam ich eine Antwort aber keinerlei Begründung. Jetzt habe ich eine Support-Anfrage dies bzgl. laufen, allerdings mit wenig Hoffnung. <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>PPS: (Nachtrag 01.09.2010) Auch der Microsoft Support kann mir dies bzgl. keine Antwort geben aufgrund eines offenen Rechtsstreits. Siehe auch Kommentar von Samsa.</p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F25%2Fmfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr%2F&amp;title=MFC-Next%209.0%20%3E%20MFC%2010.0%20denn%20CMFCRibbonPanel%3A%3AEnableLaunchButton%20gibt%20es%20nicht%20mehr&amp;annotation=Sehr%20erfreut%20waren%20viele%20C%2B%2B%20Entwickler%20dar%C3%BCber%20das%20es%20mit%20der%20MFC%20in%20VC-2008%20weiter%20ging%20und%20MFC-Next%20ver%C3%B6ffentlicht%20wurde.%20Das%20ganze%20wurde%20dann%20fest%20in%20VS-2008%20SP1%20integriert.%20Normalerweise%20sind%20wir%20es%20gewohnt%2C%20dass%20zur%20MFC%20nur%20Dinge%20hinzukommen%20" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F25%2Fmfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr%2F&amp;title=MFC-Next%209.0%20%3E%20MFC%2010.0%20denn%20CMFCRibbonPanel%3A%3AEnableLaunchButton%20gibt%20es%20nicht%20mehr&amp;notes=Sehr%20erfreut%20waren%20viele%20C%2B%2B%20Entwickler%20dar%C3%BCber%20das%20es%20mit%20der%20MFC%20in%20VC-2008%20weiter%20ging%20und%20MFC-Next%20ver%C3%B6ffentlicht%20wurde.%20Das%20ganze%20wurde%20dann%20fest%20in%20VS-2008%20SP1%20integriert.%20Normalerweise%20sind%20wir%20es%20gewohnt%2C%20dass%20zur%20MFC%20nur%20Dinge%20hinzukommen%20" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F25%2Fmfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr%2F&amp;bm_description=MFC-Next%209.0%20%3E%20MFC%2010.0%20denn%20CMFCRibbonPanel%3A%3AEnableLaunchButton%20gibt%20es%20nicht%20mehr&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F25%2Fmfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F25%2Fmfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr%2F&amp;t=MFC-Next%209.0%20%3E%20MFC%2010.0%20denn%20CMFCRibbonPanel%3A%3AEnableLaunchButton%20gibt%20es%20nicht%20mehr" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F25%2Fmfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr%2F&amp;title=MFC-Next%209.0%20%3E%20MFC%2010.0%20denn%20CMFCRibbonPanel%3A%3AEnableLaunchButton%20gibt%20es%20nicht%20mehr" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=MFC-Next%209.0%20%3E%20MFC%2010.0%20denn%20CMFCRibbonPanel%3A%3AEnableLaunchButton%20gibt%20es%20nicht%20mehr%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F25%2Fmfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2010/08/17/bug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak/" title="Bug: CSimpleMap und CSimpleArray führen bei Verwendung von SetAtIndex zu einem Leak (Di 17. Aug 2010)">Bug: CSimpleMap und CSimpleArray führen bei Verwendung von SetAtIndex zu einem Leak</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/12/03/afxmessagebox-versus-cwndmessagebox/" title="AfxMessageBox versus CWnd::MessageBox (Do 03. Dez 2009)">AfxMessageBox versus CWnd::MessageBox</a> (4)</li>
	<li><a href="http://blog.m-ri.de/index.php/2007/06/02/wie-findet-die-mfc-80-eigentlich-die-mfc80llldll-dateien/" title="Wie findet die MFC 8.0 eigentlich die MFC80lll.DLL Dateien? (Sa 02. Jun 2007)">Wie findet die MFC 8.0 eigentlich die MFC80lll.DLL Dateien?</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/07/25/mfc-next-9-0-mfc-10-0-denn-cmfcribbonpanelenablelaunchbutton-gibt-es-nicht-mehr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bug in der MFC von VC-2010 in CImageList::DrawIndirect</title>
		<link>http://blog.m-ri.de/index.php/2010/07/21/bug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect/</link>
		<comments>http://blog.m-ri.de/index.php/2010/07/21/bug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 18:35:35 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[VS 2010]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[VC-Express]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=643</guid>
		<description><![CDATA[Die Funktion CImageList::DrawIndirect der MFC-10 BOOL CImageList::DrawIndirect&#40;CDC* pDC, int nImage, POINT pt, SIZE sz, POINT ptOrigin, UINT fStyle = ILD_NORMAL, DWORD dwRop = SRCCOPY, COLORREF rgbBack = CLR_DEFAULT, COLORREF rgbFore = CLR_DEFAULT, DWORD fState = ILS_NORMAL, DWORD Frame = 0, COLORREF crEffect = CLR_DEFAULT&#41;; hat einen massiven Bug: Sie funktioniert einfach nicht. Der Unsinn, der [...]]]></description>
			<content:encoded><![CDATA[<p>Die Funktion <em>CImageList::DrawIndirect </em>der <em>MFC-10 </em></p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">BOOL CImageList<span style="color: #008080;">::</span><span style="color: #007788;">DrawIndirect</span><span style="color: #008000;">&#40;</span>CDC<span style="color: #000040;">*</span> pDC, <span style="color: #0000ff;">int</span> nImage, POINT pt, SIZE sz,
    POINT ptOrigin, UINT fStyle <span style="color: #000080;">=</span> ILD_NORMAL, DWORD dwRop <span style="color: #000080;">=</span> SRCCOPY,
    COLORREF rgbBack <span style="color: #000080;">=</span> CLR_DEFAULT, COLORREF rgbFore <span style="color: #000080;">=</span> CLR_DEFAULT,
    DWORD fState <span style="color: #000080;">=</span> ILS_NORMAL, DWORD Frame <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span>,
    COLORREF crEffect <span style="color: #000080;">=</span> CLR_DEFAULT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>hat einen massiven Bug: Sie funktioniert einfach nicht.</p>
<p>Der Unsinn, der sich eingeschlichen hat, liegt in der überschriebenen Funktion</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">BOOL CImageList<span style="color: #008080;">::</span><span style="color: #007788;">DrawIndirect</span><span style="color: #008000;">&#40;</span>IMAGELISTDRAWPARAMS<span style="color: #000040;">*</span> pimldp<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>die durch die oben genannte Variante aufgerufen wird. Denn hier <em>cbSize </em>von <em>IMAGELISTDRAWPARAMS </em>nicht mehr in allen Fällen auf einen korrekten Wert gesetzt. Die Folge <em>cbSize </em>enthält Garbage und der Aufruf von ImageList_DrawIndirect geht in die Hose!<br />
Sowohl in <em>VC-2005</em> als auch <em>VC-2008</em> wurde in dieser Funktion explizit der cbSize Member überschrieben, je nach dem ob <em>ComCtl 6.0</em> oder höher von der Anwendung benutzt wird.</p>
<p>Auch das ist ein Bug, denn hierdurch wird evtl. ein korrekt gesetzter cbSize Wert mit <em>IMAGELISTDRAWPARAMS_V3_SIZE</em> (pre <em>IE 5.01</em> d.h. <em>_WIN32_IE &lt; 0&#215;0501</em>) überschrieben und damit vergrößert vergrößert. Dadurch kann es zu Zugriffsfehlern kommen oder zu unerwünschten Seiteneffekten.<br />
(siehe <a href="https://connect.microsoft.com/VisualStudio/feedback/details/322713/bug-in-cimagelist-drawindirect">https://connect.microsoft.com/VisualStudio/feedback/details/322713/bug-in-cimagelist-drawindirect</a>)</p>
<p>Also haben die Entwickler scheinbar die Zuweisung von <em>pimldp-&gt;cbSize = sizeof(IMAGELISTDRAWPARAMS)</em> entfernt! Allerdings haben Sie dabei vergessen in der anderen Funktion nun <em>cbSize </em>korrekt zu initialisieren!</p>
<p>Wir haben also wieder mal einen Fall von: <em>Let us fix one thing and break others&#8230;</em></p>
<p>Das Gemeine an der Sache ist, dass dieser Bug noch vor RTM bekannt war:<br />
<a href="https://connect.microsoft.com/VisualStudio/feedback/details/543108/bug-in-cimagelist-drawindirect">https://connect.microsoft.com/VisualStudio/feedback/details/543108/bug-in-cimagelist-drawindirect</a><br />
Nur ist er nicht mehr gefixed worden!</p>
<p>PS: Natürlich fährt die eigene Software mit der <em>MFC-10</em> auch gegen die Wand, wenn man die <em>CImageList::DrawIndirect(IMAGELISTDRAWPARAMS* pimldp)</em> Variante verwendet und selbst <em>cbSize </em>nicht initialisiert, was ein ordentlicher Entwickler aber sicherlich nicht vergisst! <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Wem es möglich ist, sollte bei den beiden Connect Einträgen Abstimmen und diesen Bug als wichtig kennzeichnen!</strong></p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F21%2Fbug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect%2F&amp;title=Bug%20in%20der%20MFC%20von%20VC-2010%20in%20CImageList%3A%3ADrawIndirect&amp;annotation=Die%20Funktion%20CImageList%3A%3ADrawIndirect%20der%20MFC-10%20%0D%0ABOOL%20CImageList%3A%3ADrawIndirect%28CDC%2A%20pDC%2C%20int%20nImage%2C%20POINT%20pt%2C%20SIZE%20sz%2C%0D%0A%20%20%20%20POINT%20ptOrigin%2C%20UINT%20fStyle%20%3D%20ILD_NORMAL%2C%20DWORD%20dwRop%20%3D%20SRCCOPY%2C%0D%0A%20%20%20%20COLORREF%20rgbBack%20%3D%20CLR_DEFAULT%2C%20COLORREF%20rgbFore%20%3D%20CL" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F21%2Fbug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect%2F&amp;title=Bug%20in%20der%20MFC%20von%20VC-2010%20in%20CImageList%3A%3ADrawIndirect&amp;notes=Die%20Funktion%20CImageList%3A%3ADrawIndirect%20der%20MFC-10%20%0D%0ABOOL%20CImageList%3A%3ADrawIndirect%28CDC%2A%20pDC%2C%20int%20nImage%2C%20POINT%20pt%2C%20SIZE%20sz%2C%0D%0A%20%20%20%20POINT%20ptOrigin%2C%20UINT%20fStyle%20%3D%20ILD_NORMAL%2C%20DWORD%20dwRop%20%3D%20SRCCOPY%2C%0D%0A%20%20%20%20COLORREF%20rgbBack%20%3D%20CLR_DEFAULT%2C%20COLORREF%20rgbFore%20%3D%20CL" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F21%2Fbug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect%2F&amp;bm_description=Bug%20in%20der%20MFC%20von%20VC-2010%20in%20CImageList%3A%3ADrawIndirect&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F21%2Fbug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F21%2Fbug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect%2F&amp;t=Bug%20in%20der%20MFC%20von%20VC-2010%20in%20CImageList%3A%3ADrawIndirect" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F21%2Fbug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect%2F&amp;title=Bug%20in%20der%20MFC%20von%20VC-2010%20in%20CImageList%3A%3ADrawIndirect" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Bug%20in%20der%20MFC%20von%20VC-2010%20in%20CImageList%3A%3ADrawIndirect%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F21%2Fbug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2008/11/16/cfiledialog-oeffnet-unter-umstaenden-nicht/" title="CFileDialog öffnet unter Umständen nicht (So 16. Nov 2008)">CFileDialog öffnet unter Umständen nicht</a> (2)</li>
	<li><a href="http://blog.m-ri.de/index.php/2010/08/17/bug-csimplemap-und-csimplearray-fuehren-bei-verwendung-von-setatindex-zu-einem-leak/" title="Bug: CSimpleMap und CSimpleArray führen bei Verwendung von SetAtIndex zu einem Leak (Di 17. Aug 2010)">Bug: CSimpleMap und CSimpleArray führen bei Verwendung von SetAtIndex zu einem Leak</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/01/29/wm_floatstatus-der-nette-helfer-fuer-eigene-popup-fenster/" title="WM_FLOATSTATUS der nette Helfer für eigene Popup Fenster (Do 29. Jan 2009)">WM_FLOATSTATUS der nette Helfer für eigene Popup Fenster</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/07/21/bug-in-der-mfc-von-vc-2010-in-cimagelistdrawindirect/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Meine Lieblingstools</title>
		<link>http://blog.m-ri.de/index.php/2010/07/02/meine-lieblingstools/</link>
		<comments>http://blog.m-ri.de/index.php/2010/07/02/meine-lieblingstools/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 17:17:53 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=602</guid>
		<description><![CDATA[Hier mal eine Liste meiner Lieblingstools (nicht nur für die Software-Entwicklung). Sowohl Freeware als auch Tools für die ich gerne Geld ausgegeben habe. Und wie immer ist das natürlich auch eine Geschmacksache und über den Geschmack lässt sich bekannter Maßen auch streiten. Kostenlose Tools in alphabetischer Folge 7-Zip (http://www.7-zip.org/) Das rundum sorglos Paket, wenn es [...]]]></description>
			<content:encoded><![CDATA[<p>Hier mal eine Liste meiner Lieblingstools (nicht nur für die Software-Entwicklung).<br />
Sowohl Freeware als auch Tools für die ich gerne Geld ausgegeben habe.</p>
<p>Und wie immer ist das natürlich auch eine Geschmacksache und über den Geschmack lässt sich bekannter Maßen auch streiten.</p>
<h3>Kostenlose Tools in alphabetischer Folge</h3>
<ul>
<li><strong>7-Zip</strong> (<a href="http://www.7-zip.org/">http://www.7-zip.org/</a>)<br />
Das rundum sorglos Paket, wenn es um Packen und Entpacken von Dateien geht.</li>
<li><strong><strong>Axialis IconWorkshop</strong> Lite </strong>(<a href="http://www.axialis.com/download/iwlite.html">http://www.axialis.com/download/iwlite.html</a>)<br />
Für mich der Beste Icon- und Bitmap Editor. Hier in der Lite Version wer kein Geld ausgeben will.</li>
<li><strong>BugTracker.Net</strong> (<a href="http://sourceforge.net/projects/btnet/">http://sourceforge.net/projects/btnet/</a>)<br />
Der TFS istprima für die aktuelle Projekt- und Entwicklungsarbeit. Aber als externes Portal und als Ideensamlung, oder auch als Vorstufe zum Filtern zwischen Second-Level-Suppport und der Entwicklung habe ich dieses Tool liebgewonnen. Flexibel, simpel, schnell, kein Wartungsaufwand.</li>
<li><strong>Comment Reflower</strong><br />
VS-2005: <a href="http://commentreflower.sourceforge.net/" target="_blank">http://commentreflower.sourceforge.net/</a><br />
VS-2008 und VS-2010: <a href="http://www.kynosarges.de/CommentReflower.html" target="_blank">http://www.kynosarges.de/CommentReflower.html</a><br />
Das Addin der Wahl um einfach Kommentare im Sourcecode zu formatieren.</li>
<li><strong>Radio fx / ClipInc fx </strong>(<a href="http://www.tobit.de">http://www.tobit.de</a>)<br />
Wer seine Musiksammlung einfach und legal erweitern will, kann dies mit diesem Tool machen.</li>
<li><strong>Dependency Walker / Depends.exe</strong> (<a href="http://dependencywalker.com/">http://dependencywalker.com/</a>)<br />
Unverzichtbar für die Analyse von ausführbaren Dateien. Besonders eben auch die Trace Funktionen, die auch das Aufspüren von Ladeproblemen bei COM Modulen unterstützt.</li>
<li><strong>FileZilla </strong>(<a href="http://www.filezilla.de">http://www.filezilla.de</a>)<br />
Nicht unbedingt die tollste Öberfläche aber nützlich, schnell und effektiv.</li>
<li><strong>Frhed </strong>(<a href="http://frhed.sourceforge.net">http://frhed.sourceforge.net</a>)<br />
Der beste Hex-Editor, mit wichtigen Funktionen wie Ersetzen tauschen etc.</li>
<li><strong>iTunes </strong>(<a href="http://www.apple.com/de/itunes">http://www.apple.com/de/itunes</a>)<br />
OK! Ich habe auch einen 20GB iPod. Aber dennoch ist iTunes für mich das beste Tool meine Musik zu verwalten. Ich habe mich mit dem Mediaplayer nie wirklich anfreunden können.</li>
<li><strong>KeePass </strong>(<a href="http://keepass.info">http://keepass.info</a>)<br />
Der Password-Safe! Wer viele Kennworte verwalten muss, ist froh komplexe Kennworte  verwenden zu können, aber sich nur eines merken zu müssen.</li>
<li><strong>Notepad++ </strong>(<a href="http://notepad-plus.sourceforge.net">http://notepad-plus.sourceforge.net</a>)<br />
Ein Editor der mir vor allem wegen seiner erweiterten Funktionen für Lesezeichen (Zeilen mit Lesezeichen kopieren, löschen) wichtig ist. Früher habe ich Textpad verwendet nur wurde der einfach nicht vernünftig weiter entwickelt.</li>
<li><strong>Sysinternal Suite</strong> (<a href="http://technet.microsoft.com/en-us/sysinternals">http://technet.microsoft.com/en-us/sysinternals</a>)<br />
Die unentbehrlichen kleinen Helferleins um in den tiefen des Windows OS zu forschen. DbgView, Process Explorer und Monitor müssten geschrieben werden, wenn es sie nicht schon gäbe.</li>
<li><strong>TCC LE </strong>(<a href="http://www.jpsoft.com/downloads/v11/tccle.exe">http://www.jpsoft.com/downloads/v11/tccle.exe</a>)<br />
Wer das Geld für TCC nicht ausgeben will, bekommt einen guten CMD.EXE Ersatz, dem nur wenig zum großen Bruder TCC 11.0 fehlt.</li>
<li><strong>TeamViewer</strong> (<a href="http://teamviewer.com/">http://teamviewer.com/</a>)<br />
Wer mal seinem älteren Vater/Mutter, Oma/Opa, oder dem Freund/Freundin schon mal am Telefon helfen musste, der freut sich über den TeamViewer! Mit dem Tool kann man das Problem, das man am Telefon in Worten kaum klären kann, schnell online lösen. Für den Privatgebrauch kostenlos! (Ansonsten sein Geld auch für eine Firma wert!)</li>
<li><strong>TFS Power Tools </strong>(<a href="http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx">http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx</a>)<br />
Eigentlich muss man sich fragen warum diese Power Tools  nicht direkter Bestandteil des TFS sind. Aber es gibt sie ja zum Glück. (Besonders einen Blick wert ist die Windows Shell Extension)</li>
<li><strong>WinMerge </strong>(<a href="http://winmerge.org">http://winmerge.org</a>)<br />
Wenn man öfters mal Reviews macht ist dies das Hilfsmittel der Wahl um Merges und Kontrollen von Änderungen von Sourcecode durchzuführen. </li>
<li><strong>WiX </strong>(<a href="http://wix.sourceforge.net">http://wix.sourceforge.net</a>)<br />
Wenn man auch etwas komplexere MSI Setup Projekte relativ einfach erzeugen will.</li>
</ul>
<h3>Tools, die (IMHO) ihr Geld Wert sind in alphabetischer Folge:</h3>
<ul>
<li><strong>Acronis Home </strong>(<a href="http://www.acronis.de">http://www.acronis.de</a>)<br />
Datensicherung der gesamten Festplatte, made easy. Dazu noch andere gute Tools (Clonen und Löschen von Festplatten). Für mich</li>
<li><strong>Axialis IconWorkshop</strong> (<a href="http://www.axialis.com">http://www.axialis.com</a>)<br />
Für mich der Beste Icon und Bitmap Editor. Wer kein Geld ausgeben will findet auch eine Lite-Version hier <a href="http://www.axialis.com/download/iwlite.html">http://www.axialis.com/download/iwlite.html</a></li>
<li><strong>CppDepend </strong>(<a href="http://www.cppdepend.com">http://www.cppdepend.com</a>)<br />
Code Analyse mal ganz anders aber sehr effektiv (nicht ganz billig).</li>
<li><strong>NOD32 von ESet </strong>(<a href="http://www.eset.de">http://www.eset.de</a>)<br />
Seit NOD32 der erste wirklich funktionierende Virenscanner unter Vista war bin ich bei ihm geblieben. Schnell, Effektiv. Macht das System nicht langsam. Klein und nicht mit überbordenden unnötigen Funktionen überfrachtet.</li>
<li><strong>SpeedCommander </strong>(<a href="http://www.speedcommander.de">http://www.speedcommander.de</a>)<br />
Da ich ein alter XTREE Fan war, habe ich mich nie an den Norton-Commander gewöhnen können. Aber mittlerweile habe ich die vielen integrierten Funktionen des SpeedCommanders schätzen gelernt. Ein zuverlässiges Tool für alles was man so mit Dateien machen muss. Tool einfach auch die FTP Integration, der Quickview, Synchronisation, einen kleinen pasablen Editor und manch anderes mehr.</li>
<li><strong>TCC 11.0 </strong>(<a href="http://www.jpsoft.com">http://www.jpsoft.com</a>)<br />
Das Beste CMD.EXE Substitut. Ich verwende das Ding seit alten 4DOS Zeiten. Ich kann genauso wenig ohne dieses Ding auskomen wie auch nicht ohne VA-X noch Programme schreiben kann. Auch als LE Version für den, der kein Geld ausgeben will <a href="http://www.jpsoft.com/downloads/v11/tccle.exe">http://www.jpsoft.com/downloads/v11/tccle.exe</a></li>
<li><strong>TextPad </strong>(<a href="http://www.textpad.com">http://www.textpad.com</a>)<br />
Über Editoren kann man sich bekannter Maßen streiten. Aber ich habe vor Jahren mir mal eine Lizenz gekauft und war eigentlich immer sehr glücklich mit dem Editor, obwohl in der letzten Zeit kaum noch etwas hier in der Entwicklung passiert. Vista wurde auch etwas verschlafen. Dennoch mag ich diesen aufgeräumten guten Editor.</li>
<li><strong>Visual Assist </strong>(<a href="http://www.wholetomato.com">http://www.wholetomato.com</a>)<br />
Das non plus ultra Addin für jeden Entwickler. Alt+M, ALT+G, ALT+O&#8230; all die netten Hotkeys, die man nicht mehr missen will, mit tollen Refaktoring Funktionen.</li>
<li><strong>VMWare Workstation </strong>(<a href="http://www.vmare.com">http://www.vmware.com</a>)<br />
Das Tool um viele Umgebungen auf einer Entwicklungsmaschine testen zu können. Mal kurz eine Beta zu installieren und und und&#8230; Virtual PC ist nett. VMWare Workstation ist besser.</li>
</ul>
<p>Wer Lust hat kann ja seine Tools gerne als Kommentar ergänzen <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /><br />
Vieles Gute kann man in dem unendlichen Angebot an Tools und Software leicht übersehen&#8230;</p>
<p>PS: Ich bin dann erstmal weg, ohne Internet und Laptop in der Sonne&#8230; also nicht wundern wenn ich mal nicht auf einen Kommentar antworte&#8230; <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F02%2Fmeine-lieblingstools%2F&amp;title=Meine%20Lieblingstools&amp;annotation=Hier%20mal%20eine%20Liste%20meiner%20Lieblingstools%20%28nicht%20nur%20f%C3%BCr%20die%20Software-Entwicklung%29.%0D%0ASowohl%20Freeware%20als%20auch%20Tools%20f%C3%BCr%20die%20ich%20gerne%20Geld%20ausgegeben%20habe.%0D%0A%0D%0AUnd%20wie%20immer%20ist%20das%20nat%C3%BCrlich%20auch%20eine%20Geschmacksache%20und%20%C3%BCber%20den%20Geschmack%20l%C3%A4sst%20" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F02%2Fmeine-lieblingstools%2F&amp;title=Meine%20Lieblingstools&amp;notes=Hier%20mal%20eine%20Liste%20meiner%20Lieblingstools%20%28nicht%20nur%20f%C3%BCr%20die%20Software-Entwicklung%29.%0D%0ASowohl%20Freeware%20als%20auch%20Tools%20f%C3%BCr%20die%20ich%20gerne%20Geld%20ausgegeben%20habe.%0D%0A%0D%0AUnd%20wie%20immer%20ist%20das%20nat%C3%BCrlich%20auch%20eine%20Geschmacksache%20und%20%C3%BCber%20den%20Geschmack%20l%C3%A4sst%20" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F02%2Fmeine-lieblingstools%2F&amp;bm_description=Meine%20Lieblingstools&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F02%2Fmeine-lieblingstools%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F02%2Fmeine-lieblingstools%2F&amp;t=Meine%20Lieblingstools" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F02%2Fmeine-lieblingstools%2F&amp;title=Meine%20Lieblingstools" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Meine%20Lieblingstools%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F07%2F02%2Fmeine-lieblingstools%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2008/10/08/vs-tipps-tricks-winmerge-als-diff-tool-in-verbindung-mit-tfs/" title="VS Tipps &#038; Tricks: WinMerge als DIFF-Tool in Verbindung mit TFS (Mi 08. Okt 2008)">VS Tipps &#038; Tricks: WinMerge als DIFF-Tool in Verbindung mit TFS</a> (3)</li>
	<li><a href="http://blog.m-ri.de/index.php/2007/01/27/visual-assist-unter-vista-mit-vs2005-und-sp1-sowie-sp1-fur-vista/" title="Visual Assist X unter Vista mit VS2005 und SP1 (Sa 27. Jan 2007)">Visual Assist X unter Vista mit VS2005 und SP1</a> (1)</li>
	<li><a href="http://blog.m-ri.de/index.php/2010/07/29/verisign-microsoft-authenticode-class-3-code-signing-digital-certificate-fuer-99/" title="VeriSign &#8216;Microsoft Authenticode&#8217; Class 3 Code Signing Digital Certificate für $99,&#8211; (Do 29. Jul 2010)">VeriSign &#8216;Microsoft Authenticode&#8217; Class 3 Code Signing Digital Certificate für $99,&#8211;</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/07/02/meine-lieblingstools/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Wie man den Namen einer RegisterWindowMessage bekommt</title>
		<link>http://blog.m-ri.de/index.php/2010/06/23/wie-man-den-namen-einer-registerwindowmessage-bekommt/</link>
		<comments>http://blog.m-ri.de/index.php/2010/06/23/wie-man-den-namen-einer-registerwindowmessage-bekommt/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 19:08:02 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Vista / Windows 7]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[WinAPI]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=128</guid>
		<description><![CDATA[Manchmal muss man Software verstehen. D.h. auch andere Software, die man selbst nicht geschrieben hat In meinem Fall war es hier ein Client, den ich geschrieben habe, der eine andere Software startet. Diese Software verwendete interne Nachrichten zur Kommunikation, die mit RegisterWindowMessage registriert wurden. Ich wollte nun hier einen Eingriff machen, der ein Fehlverhalten unter [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal muss man Software verstehen. D.h. auch andere Software, die man selbst nicht geschrieben hat <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>In meinem Fall war es hier ein Client, den ich geschrieben habe, der eine andere Software startet. Diese Software verwendete interne Nachrichten zur Kommunikation, die mit RegisterWindowMessage registriert wurden. Ich wollte nun hier einen Eingriff machen, der ein Fehlverhalten unter <em>Windows 7</em> und <em>Vista</em> vermeiden soll.</p>
<p>Hilfreich wäre für mich nun gewesen an den Namen der registrierten Nachrichten zu kommen. <em>Spy++</em> kann es auch und der importiert auch keine mystischen Funktionen. Also muss es einfach gehen.</p>
<p>Und ein wenig Recherche und ein Verweis eines Community Eintrags brachte mich auf diesen Thread:<br />
<a href="http://groups.google.it/group/microsoft.public.vc.mfc/browse_thread/thread/f83f7c12c80e4ada/460bc4c43a844a37">http://groups.google.it/group/microsoft.public.vc.mfc/browse_thread/thread/f83f7c12c80e4ada/460bc4c43a844a37</a></p>
<p>Siehe da <a href="http://msdn.microsoft.com/en-us/library/ms649040(v=VS.85).aspx" target="_self">GetClipboardFormatName</a> löst das Problem. Der nachfolgende Code lieferte mir nun im Detail, was das so hin und her läuft und der Name der Nachrichten war zum Glück sprechend. Ich konnte das Problem lösen.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>uiMsg<span style="color: #000080;">&gt;=</span><span style="color: #208080;">0xC000</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  TCHAR szName<span style="color: #008000;">&#91;</span>MAX_PATH<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
  <span style="color: #008080;">::</span><span style="color: #007788;">GetClipboardFormatName</span><span style="color: #008000;">&#40;</span>uiMsg,szName,MfxCountOf<span style="color: #008000;">&#40;</span>szName<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  TCHAR szOut<span style="color: #008000;">&#91;</span>MAX_PATH<span style="color: #000040;">*</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
  _stprintf<span style="color: #008000;">&#40;</span>szOut,_T<span style="color: #008000;">&#40;</span>__FUNCTION__<span style="color: #008000;">&#41;</span> _T<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot; %s, wp=0x%08x, lp=0x%08x<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span>,
            szName, wParam, lParam<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  OutputDebugString<span style="color: #008000;">&#40;</span>szOut<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;title=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt&amp;annotation=Manchmal%20muss%20man%20Software%20verstehen.%20D.h.%20auch%20andere%20Software%2C%20die%20man%20selbst%20nicht%20geschrieben%20hat%20%3B%29%0D%0A%0D%0AIn%20meinem%20Fall%20war%20es%20hier%20ein%20Client%2C%20den%20ich%20geschrieben%20habe%2C%20der%20eine%20andere%20Software%20startet.%20Diese%20Software%20verwendete%20interne%20Nachricht" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;title=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt&amp;notes=Manchmal%20muss%20man%20Software%20verstehen.%20D.h.%20auch%20andere%20Software%2C%20die%20man%20selbst%20nicht%20geschrieben%20hat%20%3B%29%0D%0A%0D%0AIn%20meinem%20Fall%20war%20es%20hier%20ein%20Client%2C%20den%20ich%20geschrieben%20habe%2C%20der%20eine%20andere%20Software%20startet.%20Diese%20Software%20verwendete%20interne%20Nachricht" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;bm_description=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;t=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F&amp;title=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Wie%20man%20den%20Namen%20einer%20RegisterWindowMessage%20bekommt%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F23%2Fwie-man-den-namen-einer-registerwindowmessage-bekommt%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2010/01/23/was-denn-nun-switchtothread-sleep0-sleep1-2/" title="Was denn nun SwitchToThread(), Sleep(0), Sleep(1)? (Sa 23. Jan 2010)">Was denn nun SwitchToThread(), Sleep(0), Sleep(1)?</a> (2)</li>
	<li><a href="http://blog.m-ri.de/index.php/2009/08/09/vs-tippstricks-einfache-ausgabe-mit-trace-auch-in-der-release-version/" title="VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version (So 09. Aug 2009)">VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version</a> (9)</li>
	<li><a href="http://blog.m-ri.de/index.php/2008/11/04/vs-tipps-tricks-heap-bugs-finden-teil-3/" title="VS Tipps &#038; Tricks: Heap Bugs finden (Teil 3) (Di 04. Nov 2008)">VS Tipps &#038; Tricks: Heap Bugs finden (Teil 3)</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/06/23/wie-man-den-namen-einer-registerwindowmessage-bekommt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ExitInstance gibt für dialogbasierende MFC Anwendungen Unfug zurück</title>
		<link>http://blog.m-ri.de/index.php/2010/06/18/exitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck/</link>
		<comments>http://blog.m-ri.de/index.php/2010/06/18/exitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 18:58:56 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[MFC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Windows API]]></category>
		<category><![CDATA[4NT]]></category>
		<category><![CDATA[Batch]]></category>
		<category><![CDATA[CMD.EXE]]></category>
		<category><![CDATA[Debuggen]]></category>
		<category><![CDATA[Dialog]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=484</guid>
		<description><![CDATA[Wer eine dialogbasierende Anwendung mal mit etwas mehr Aufmerksamkeit debuggt oder analysiert wird feststellen, dass der Returncode der Anwendung irgendwie ziemlich zufällig ist. Beobachtet man dies genauer dann stellt man folgendes fest: Beendet man die Anwendung mit der Maus (Klick auf X) oder OK/Cancel so ist der Returncode 0 Hält man die Strg-Taste beim Klick [...]]]></description>
			<content:encoded><![CDATA[<p>Wer eine dialogbasierende Anwendung mal mit etwas mehr Aufmerksamkeit debuggt oder analysiert wird feststellen, dass der Returncode der Anwendung irgendwie ziemlich zufällig ist. Beobachtet man dies genauer dann stellt man folgendes fest:</p>
<ul>
<li>Beendet man die Anwendung mit der Maus (Klick auf X) oder OK/Cancel so ist der Returncode 0</li>
<li>Hält man die <em>Strg</em>-Taste beim Klick fest ist der Returncode 8</li>
<li>Beendet man die Anwendung mit <em>Alt+F4 </em>bekommen wir 2.</li>
<li>Und jedermann kann jetzt schon mal raten was passiert, wenn wir die Umschalttaste festhalten. Genau dann bekommen wir 4 als Returncode.</li>
</ul>
<p>Die Mystik hinter dem Ganzen ist die Behandlung von (<em>Afx)PostQuitMessage</em>. Eigentlich sollte mit dieser Nachricht auch der Exitcode gesetzt werden, der mit <em>WM_QUIT</em> versendet wird. Und wenn eben bei einer <em>MDI/SDI </em>Anwendung alles normal läuft, dann ist diese Nachricht die letzte, die aus der Messsagequeue gezogen wird. Und was passiert in <em>CWinApp::ExitInstance</em>? Genau&#8230; aus dem statischen Thread Puffer für die Windowsnachrichten wird mit  AfxGetCurrentMessage die letzte Windowsnachricht (normalerweise <em>WM_QUIT</em>) geholt und der <em>wParam</em> Wert bestimmt. Dieser wird dann zurückgegeben.</p>
<p>Leider ist aber <em>WM_QUIT </em>in manchen Fällen aber nicht die letzte Nachricht, die zum Beenden eines Programms führt. Ganz besonders eben nicht bei einer dialogbasierenden <em>MFC</em>-Anwendung. Da ist die letzte Nachricht ist dann eben ein <em>WM_COMMAND </em>oder ein <em>WM_LBUTTONUP </em>der das Schließen der Anwendung auslöst <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' />  Und der <em>wParam</em> Wert ist eben entsprechend dieser Nachricht belegt!</p>
<p>Gleiches passiert natürlich, wenn man nach dem Beenden der Messageloop noch andere interne Fenster zerstört. Auch in diesem Fall kann noch mal die interne <em>AfxWndProc</em> durchlaufen werden und dann wird der Returncode auch wieder verändert.</p>
<p>Wer also wirklich Wert auf den Returncode legt (im wahrsten Sinne des Wortes), der sollte sich nie auf den Wert verlassen, der durch <em>CWinApp::ExitInstance</em> zurückgegeben wird oder den Wert, den man selbst mit <em>AfxPostQuitMessage </em>evtl. versucht zu setzen. Eine Variable in <em>CWinApp </em>tut hier einen besseren Dienst. Ebenfalls sollte man ExitInstance überschreiben und immer 0 zurückgeben, wenn man sowieso keine Verwendung für den Returncode des Prozesses hat oder haben möchte.</p>
<p>BTW:<br />
Die Geschichte, wie ich darauf gekommen bin ist schon eigentümlich genug.<br />
Ich habe komplexere Batch-Dateien, die die gesamte Erstellung einer produktiv-Version regelt. Darin kommen im Problemfall auch ein paar Userinteraktionen vor. Diese werden durch Windows Anwendungen ausgelöst, die evtl. einen Dialog anzeigen. Jedem ist klar, dass ohne Dialog und ohne Fenster keine Nachricht abgearbeitet wird. Der Returncode ist also 0! Der Batch verwendet <a href="http://www.jpsoft.com/">4NT</a> Syntax und dort kann man <em>ON ERROR </em>definieren und somit sofort eine Fehlerbehandlung auslösen, wenn der Returncode eines Programms nicht 0 ist.<br />
Nun kann sich jeder schon denken was passiert ist. Die Userinteraktion wurde ausgelöst. Der Benutzer machte eine Angabe und&#8230; der Batch terminierte erstaunlicherweise mit einem Fehler&#8230; (s.o.)</p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F18%2Fexitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck%2F&amp;title=ExitInstance%20gibt%20f%C3%BCr%20dialogbasierende%20MFC%20Anwendungen%20Unfug%20zur%C3%BCck&amp;annotation=Wer%20eine%20dialogbasierende%20Anwendung%20mal%20mit%20etwas%20mehr%20Aufmerksamkeit%20debuggt%20oder%20analysiert%20wird%20feststellen%2C%20dass%20der%20Returncode%20der%20Anwendung%20irgendwie%20ziemlich%20zuf%C3%A4llig%20ist.%20Beobachtet%20man%20dies%20genauer%20dann%20stellt%20man%20folgendes%20fest%3A%0D%0A%0D%0A%09Beende" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F18%2Fexitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck%2F&amp;title=ExitInstance%20gibt%20f%C3%BCr%20dialogbasierende%20MFC%20Anwendungen%20Unfug%20zur%C3%BCck&amp;notes=Wer%20eine%20dialogbasierende%20Anwendung%20mal%20mit%20etwas%20mehr%20Aufmerksamkeit%20debuggt%20oder%20analysiert%20wird%20feststellen%2C%20dass%20der%20Returncode%20der%20Anwendung%20irgendwie%20ziemlich%20zuf%C3%A4llig%20ist.%20Beobachtet%20man%20dies%20genauer%20dann%20stellt%20man%20folgendes%20fest%3A%0D%0A%0D%0A%09Beende" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F18%2Fexitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck%2F&amp;bm_description=ExitInstance%20gibt%20f%C3%BCr%20dialogbasierende%20MFC%20Anwendungen%20Unfug%20zur%C3%BCck&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F18%2Fexitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F18%2Fexitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck%2F&amp;t=ExitInstance%20gibt%20f%C3%BCr%20dialogbasierende%20MFC%20Anwendungen%20Unfug%20zur%C3%BCck" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F18%2Fexitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck%2F&amp;title=ExitInstance%20gibt%20f%C3%BCr%20dialogbasierende%20MFC%20Anwendungen%20Unfug%20zur%C3%BCck" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=ExitInstance%20gibt%20f%C3%BCr%20dialogbasierende%20MFC%20Anwendungen%20Unfug%20zur%C3%BCck%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F18%2Fexitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2009/08/09/vs-tippstricks-einfache-ausgabe-mit-trace-auch-in-der-release-version/" title="VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version (So 09. Aug 2009)">VS-Tipps&#038;Tricks: Einfache Debug-Ausgabe mit TRACE auch in der Release Version</a> (9)</li>
	<li><a href="http://blog.m-ri.de/index.php/2008/11/27/vs-tipps-tricks-heap-bugs-finden-teil-4/" title="VS Tipps &#038; Tricks: Heap Bugs finden (Teil 4) (Do 27. Nov 2008)">VS Tipps &#038; Tricks: Heap Bugs finden (Teil 4)</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2008/11/04/vs-tipps-tricks-heap-bugs-finden-teil-3/" title="VS Tipps &#038; Tricks: Heap Bugs finden (Teil 3) (Di 04. Nov 2008)">VS Tipps &#038; Tricks: Heap Bugs finden (Teil 3)</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/06/18/exitinstance-gibt-fuer-dialogbasierende-mfc-anwendungen-unfug-zurueck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tipp: Hörbuch Mutige Menschen (von Christian Nürnberger)</title>
		<link>http://blog.m-ri.de/index.php/2010/06/13/tipp-hoerbuch-mutige-menschen-von-christian-nuernberger/</link>
		<comments>http://blog.m-ri.de/index.php/2010/06/13/tipp-hoerbuch-mutige-menschen-von-christian-nuernberger/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 19:14:15 +0000</pubDate>
		<dc:creator>Martin Richter</dc:creator>
				<category><![CDATA[Bücher]]></category>
		<category><![CDATA[Christsein]]></category>
		<category><![CDATA[Real Life]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[Hörbücher]]></category>
		<category><![CDATA[Hörbuch]]></category>
		<category><![CDATA[Zivilcourage]]></category>

		<guid isPermaLink="false">http://blog.m-ri.de/?p=607</guid>
		<description><![CDATA[Für längere Autofahrten haben meine Frau und ich es uns angewöhnt Hörbücher aus der Bücherei auszuleihen. In den meisten Fällen sind es Kabarett, kurze humorvolle Geschichten, christliches, politisches oder gesellschaftskritisches. Diesmal hat meine Frau ein wirklich besonderes Hörbuch ausgesucht Mutige Menschen von Christian Nürnberger. Die Texte werden von den Söhnen Mannheims gesprochen, wobei dies hier nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Für längere Autofahrten haben meine Frau und ich es uns angewöhnt Hörbücher aus der Bücherei auszuleihen.<br />
In den meisten Fällen sind es Kabarett, kurze humorvolle Geschichten, christliches, politisches oder gesellschaftskritisches.</p>
<p>Diesmal hat meine Frau ein wirklich besonderes Hörbuch ausgesucht <a href="http://www.amazon.de/Mutige-Menschen-Frieden-Freiheit-Menschenrechte/dp/3785740190">Mutige Menschen</a> von Christian Nürnberger. Die Texte werden von den Söhnen Mannheims gesprochen, wobei dies hier nicht unbedingt für Qualität bürgt <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Der Inhalt ist aber echt stark und wirklich hörenswert! Die Personen (Ayaan Hirsi Ali, Peter Benenson, Mahatma Gandhi, Martin Luther, Nelson Mandela, Rosa Parks und Anna Politkowskaja), die ausgewählt wurden für dieses Hörbuch, sind besonders.<br />
Besonders beeindruckt hat mich die Geschichte von Ayaan Hirsi Ali und Rosa Parks. Man muss es sich selbst anhören.<br />
Die Gedanken, die von Ayaan Hirsi Ali über den Islam geäußert werden, sind wirklich nachdenkenswert.</p>
<p>Mich hat vor allem begeistert, dass Christian Nürnberger in die Lebensgeschichten dieser Menschen geschaut hat. Die Texte sind intelligent gesetzt und ansprechend und vor allem eine Aufforderung selbst Mut und Zivilcourage zu haben in dieser Welt etwas zu verändern.</p>
<p>Ein Hörbuch mit Klasse, dass auch animiert sich das gleichnamige <a href="http://www.amazon.de/Mutige-Menschen-Frieden-Freiheit-Menschenrechte/dp/3522301587/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1271452712&amp;sr=1-2">Buch</a> mal anzuschauen, zumindest auf meiner Wunschliste steht es schon <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<hr /><small>Copyright &copy; 2010 Martin Richter<br />Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt. Eine Verwendung dieses Feeds bzw. der hier veröffentlichten Beiträge auf anderen Webseiten bedarf der ausdrücklichen Genehmigung des Autors.<br />(Digital Fingerprint: bdafe67664ea5aacaab71f8c0a581adf)</small>



	<a rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" /></a>
	<a rel="nofollow"  href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F13%2Ftipp-hoerbuch-mutige-menschen-von-christian-nuernberger%2F&amp;title=Tipp%3A%20H%C3%B6rbuch%20Mutige%20Menschen%20%28von%20Christian%20N%C3%BCrnberger%29&amp;annotation=F%C3%BCr%20l%C3%A4ngere%20Autofahrten%20haben%20meine%20Frau%20und%20ich%20es%20uns%20angew%C3%B6hnt%20H%C3%B6rb%C3%BCcher%20aus%20der%20B%C3%BCcherei%20auszuleihen.%0D%0AIn%20den%20meisten%20F%C3%A4llen%20sind%20es%20Kabarett%2C%20kurze%20humorvolle%20Geschichten%2C%C2%A0christliches%2C%20politisches%20oder%20gesellschaftskritisches.%0D%0A%0D%0ADiesma" title="Google Bookmarks"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" /></a>
	<a rel="nofollow"  href="http://delicious.com/post?url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F13%2Ftipp-hoerbuch-mutige-menschen-von-christian-nuernberger%2F&amp;title=Tipp%3A%20H%C3%B6rbuch%20Mutige%20Menschen%20%28von%20Christian%20N%C3%BCrnberger%29&amp;notes=F%C3%BCr%20l%C3%A4ngere%20Autofahrten%20haben%20meine%20Frau%20und%20ich%20es%20uns%20angew%C3%B6hnt%20H%C3%B6rb%C3%BCcher%20aus%20der%20B%C3%BCcherei%20auszuleihen.%0D%0AIn%20den%20meisten%20F%C3%A4llen%20sind%20es%20Kabarett%2C%20kurze%20humorvolle%20Geschichten%2C%C2%A0christliches%2C%20politisches%20oder%20gesellschaftskritisches.%0D%0A%0D%0ADiesma" title="del.icio.us"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" /></a>
	<a rel="nofollow"  href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F13%2Ftipp-hoerbuch-mutige-menschen-von-christian-nuernberger%2F&amp;bm_description=Tipp%3A%20H%C3%B6rbuch%20Mutige%20Menschen%20%28von%20Christian%20N%C3%BCrnberger%29&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" /></a>
	<a rel="nofollow"  href="http://technorati.com/faves?add=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F13%2Ftipp-hoerbuch-mutige-menschen-von-christian-nuernberger%2F" title="Technorati"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" /></a>
	<a rel="nofollow"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F13%2Ftipp-hoerbuch-mutige-menschen-von-christian-nuernberger%2F&amp;t=Tipp%3A%20H%C3%B6rbuch%20Mutige%20Menschen%20%28von%20Christian%20N%C3%BCrnberger%29" title="Facebook"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" /></a>
	<a rel="nofollow"  href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F13%2Ftipp-hoerbuch-mutige-menschen-von-christian-nuernberger%2F&amp;title=Tipp%3A%20H%C3%B6rbuch%20Mutige%20Menschen%20%28von%20Christian%20N%C3%BCrnberger%29" title="Live"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" /></a>
	<a rel="nofollow"  href="http://twitter.com/home?status=Tipp%3A%20H%C3%B6rbuch%20Mutige%20Menschen%20%28von%20Christian%20N%C3%BCrnberger%29%20-%20http%3A%2F%2Fblog.m-ri.de%2Findex.php%2F2010%2F06%2F13%2Ftipp-hoerbuch-mutige-menschen-von-christian-nuernberger%2F" title="Twitter"><img src="http://blog.m-ri.de/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" /></a>


<br/><br/>
	<h4>Themenverwandte Beiträge:</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.m-ri.de/index.php/2006/02/23/steve-mcconnell-code-complete-deutsche-ausgabeder-second-edition/" title="Steve McConnell: Code Complete &#8211; Deutsche AusgabeDer Second Edition (Do 23. Feb 2006)">Steve McConnell: Code Complete &#8211; Deutsche AusgabeDer Second Edition</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2007/03/08/skibo-young-johnson-arbeiten-mit-microsoft-visual-studio-2005/" title="Skibo, Young, Johnson: Arbeiten mit Microsoft Visual Studio 2005 (Do 08. Mrz 2007)">Skibo, Young, Johnson: Arbeiten mit Microsoft Visual Studio 2005</a> (0)</li>
	<li><a href="http://blog.m-ri.de/index.php/2005/11/14/mark-russinovich-david-a-solomon-microsoft-windows-internals-windows-2000-windows-xp-und-windows-server-2003/" title="Mark Russinovich, David A. Solomon: Microsoft Windows Internals. Windows 2000, Windows XP und Windows Server 2003 (Mo 14. Nov 2005)">Mark Russinovich, David A. Solomon: Microsoft Windows Internals. Windows 2000, Windows XP und Windows Server 2003</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.m-ri.de/index.php/2010/06/13/tipp-hoerbuch-mutige-menschen-von-christian-nuernberger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
