{"id":128,"date":"2010-06-23T20:08:02","date_gmt":"2010-06-23T19:08:02","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=128"},"modified":"2010-06-16T08:15:52","modified_gmt":"2010-06-16T07:15:52","slug":"wie-man-den-namen-einer-registerwindowmessage-bekommt","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2010\/06\/23\/wie-man-den-namen-einer-registerwindowmessage-bekommt\/","title":{"rendered":"Wie man den Namen einer RegisterWindowMessage bekommt"},"content":{"rendered":"<p>Manchmal muss man Software verstehen. D.h. auch andere Software, die man selbst nicht geschrieben hat \ud83d\ude09<\/p>\n<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>\n<p>Hilfreich w\u00e4re f\u00fcr 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>\n<p>Und ein wenig Recherche und ein Verweis eines Community Eintrags brachte mich auf diesen Thread:<br \/>\n<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>\n<p>Siehe da <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms649040(v=VS.85).aspx\" target=\"_self\">GetClipboardFormatName<\/a>\u00a0l\u00f6st das Problem. Der nachfolgende Code lieferte mir nun im Detail, was das so hin und her l\u00e4uft und der Name der Nachrichten war zum Gl\u00fcck sprechend. Ich konnte das Problem l\u00f6sen.<\/p>\n<pre lang=\"cpp\">if (uiMsg&gt;=0xC000)\r\n{\r\n  TCHAR szName[MAX_PATH];\r\n  ::GetClipboardFormatName(uiMsg,szName,MfxCountOf(szName));\r\n  TCHAR szOut[MAX_PATH*2];\r\n  _stprintf(szOut,_T(__FUNCTION__) _T(\" %s, wp=0x%08x, lp=0x%08x\\n\"),\r\n            szName, wParam, lParam);\r\n  OutputDebugString(szOut);\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Manchmal muss man Software verstehen. D.h. auch andere Software, die man selbst nicht geschrieben hat \ud83d\ude09 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 &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2010\/06\/23\/wie-man-den-namen-einer-registerwindowmessage-bekommt\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWie man den Namen einer RegisterWindowMessage bekommt\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,11,3,17,2],"tags":[370,38,59,61],"class_list":["post-128","post","type-post","status-publish","format-standard","hentry","category-c","category-debugging","category-programmieren","category-vista-2","category-windows-api","tag-c","tag-debuggen","tag-win32","tag-winapi"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=128"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/128\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=128"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}