<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Atomic codes</title>
	<atom:link href="http://kichik.net/2007/06/16/atomic-codes/feed/" rel="self" type="application/rss+xml" />
	<link>http://kichik.net/2007/06/16/atomic-codes/</link>
	<description>Random incoherent rambling about stuff</description>
	<pubDate>Fri, 05 Dec 2008 15:43:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: Christian Kaiser</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-18324</link>
		<dc:creator>Christian Kaiser</dc:creator>
		<pubDate>Fri, 25 Jan 2008 09:56:43 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-18324</guid>
		<description>GetClipboardFormatName() returns the name of the atom that was registered by RegisterWindowMessage().

Don't ask why ;-)

Christian</description>
		<content:encoded><![CDATA[<div><p>GetClipboardFormatName() returns the name of the atom that was registered by RegisterWindowMessage().</p>
<p>Don&#8217;t ask why <img src='http://kichik.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Christian</p>
</div>]]></content:encoded>
	</item>
	<item>
		<title>By: brainsucker</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-9170</link>
		<dc:creator>brainsucker</dc:creator>
		<pubDate>Tue, 03 Jul 2007 18:22:17 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-9170</guid>
		<description>I'll shot myself in the leg if i'll spent another 3 minutes trying to understand all these calls:
::0x7E41FA8E(ir2,iR0)i.r1?e

i think i should look thru the system.txt to get back into these funny syntax rules :)
gj, anyway</description>
		<content:encoded><![CDATA[<div><p>I&#8217;ll shot myself in the leg if i&#8217;ll spent another 3 minutes trying to understand all these calls:<br />
::0&#215;7E41FA8E(ir2,iR0)i.r1?e</p>
<p>i think i should look thru the system.txt to get back into these funny syntax rules <img src='http://kichik.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
gj, anyway</p>
</div>]]></content:encoded>
	</item>
	<item>
		<title>By: kichik</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-9080</link>
		<dc:creator>kichik</dc:creator>
		<pubDate>Mon, 25 Jun 2007 18:44:40 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-9080</guid>
		<description>Ido, I wish.

Anders, that's a nifty little trick. Haven't thought of using another function that manipulates the same atom table.</description>
		<content:encoded><![CDATA[<div><p>Ido, I wish.</p>
<p>Anders, that&#8217;s a nifty little trick. Haven&#8217;t thought of using another function that manipulates the same atom table.</p>
</div>]]></content:encoded>
	</item>
	<item>
		<title>By: Anders</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-9065</link>
		<dc:creator>Anders</dc:creator>
		<pubDate>Mon, 25 Jun 2007 06:10:18 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-9065</guid>
		<description>Did it eat my for loop ? No preview here, lets try again...

If you had asked on IRC I could have told you about a dirty little way to figure out the name of a registered message.

To dump all registered messages, do :
for (unsigned i=0xc000;i  "LESSTHAN"=0xFFFF; ++i) if (GetClipboardFormatName(i,buf,ARRAYSIZE(buf)) ...

I used this to figure out the messages used by the media center tray helper app.

I guess they figured they could save some mem by using the same table for both (Global class names are stored here aswell)</description>
		<content:encoded><![CDATA[<div><p>Did it eat my for loop ? No preview here, lets try again&#8230;</p>
<p>If you had asked on IRC I could have told you about a dirty little way to figure out the name of a registered message.</p>
<p>To dump all registered messages, do :<br />
for (unsigned i=0xc000;i  &#8220;LESSTHAN&#8221;=0xFFFF; ++i) if (GetClipboardFormatName(i,buf,ARRAYSIZE(buf)) &#8230;</p>
<p>I used this to figure out the messages used by the media center tray helper app.</p>
<p>I guess they figured they could save some mem by using the same table for both (Global class names are stored here aswell)</p>
</div>]]></content:encoded>
	</item>
	<item>
		<title>By: ido</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-8994</link>
		<dc:creator>ido</dc:creator>
		<pubDate>Thu, 21 Jun 2007 20:51:49 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-8994</guid>
		<description>Can you write something intersting to me for crying out loud i dont really understand these code battles yes i know you will delete this from this thread but at least got you doing something , enjoy it and life while your at it. ido.</description>
		<content:encoded><![CDATA[<div><p>Can you write something intersting to me for crying out loud i dont really understand these code battles yes i know you will delete this from this thread but at least got you doing something , enjoy it and life while your at it. ido.</p>
</div>]]></content:encoded>
	</item>
	<item>
		<title>By: Koby Kahane</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-8847</link>
		<dc:creator>Koby Kahane</dc:creator>
		<pubDate>Sun, 17 Jun 2007 05:44:23 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-8847</guid>
		<description>Hmm...
Since user32!RegisterWindowMessageW just goes ahead and calls user32!NtUserRegisterWindowMessage and the latter immediately dispatches a win32k system call, presumably the USER atom table in question is not accessible from user-mode, otherwise the ntdll lookup function would have been used.
Anyway, your System plug-in code is totally illegible :-) Almost as bad as Perl.</description>
		<content:encoded><![CDATA[<div><p>Hmm&#8230;<br />
Since user32!RegisterWindowMessageW just goes ahead and calls user32!NtUserRegisterWindowMessage and the latter immediately dispatches a win32k system call, presumably the USER atom table in question is not accessible from user-mode, otherwise the ntdll lookup function would have been used.<br />
Anyway, your System plug-in code is totally illegible <img src='http://kichik.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Almost as bad as Perl.</p>
</div>]]></content:encoded>
	</item>
	<item>
		<title>By: kichik</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-8839</link>
		<dc:creator>kichik</dc:creator>
		<pubDate>Sat, 16 Jun 2007 23:19:45 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-8839</guid>
		<description>Right you are... Should have thought of that. Though on retrospect, calling NtUserGetAtomName is better since you'd need to get the atom table handle from win32k.sys anyway. Unless I missed some export for that as well :)</description>
		<content:encoded><![CDATA[<div><p>Right you are&#8230; Should have thought of that. Though on retrospect, calling NtUserGetAtomName is better since you&#8217;d need to get the atom table handle from win32k.sys anyway. Unless I missed some export for that as well <img src='http://kichik.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
</div>]]></content:encoded>
	</item>
	<item>
		<title>By: Koby Kahane</title>
		<link>http://kichik.net/2007/06/16/atomic-codes/#comment-8838</link>
		<dc:creator>Koby Kahane</dc:creator>
		<pubDate>Sat, 16 Jun 2007 21:45:00 +0000</pubDate>
		<guid isPermaLink="false">http://kichik.net/2007/06/16/atomic-codes/#comment-8838</guid>
		<description>Note the presence of RtlLookupAtomInAtomTable in ntdll.dll. It's even exported:

C:\WINDOWS\system32&#62;dumpbin /exports ntdll.dll &#124; findstr RtlLookupAtomInAtomTable
        703  2BB 00028436 RtlLookupAtomInAtomTable = _RtlLookupAtomInAtomTable@12

It seems like it would be desirable to implement atom name lookup as a Windbg extension. Indeed, the debugger could use a boost in the whole USER/GDI department, to complement Spy++.</description>
		<content:encoded><![CDATA[<div><p>Note the presence of RtlLookupAtomInAtomTable in ntdll.dll. It&#8217;s even exported:</p>
<p>C:\WINDOWS\system32&gt;dumpbin /exports ntdll.dll | findstr RtlLookupAtomInAtomTable<br />
        703  2BB 00028436 RtlLookupAtomInAtomTable = _RtlLookupAtomInAtomTable@12</p>
<p>It seems like it would be desirable to implement atom name lookup as a Windbg extension. Indeed, the debugger could use a boost in the whole USER/GDI department, to complement Spy++.</p>
</div>]]></content:encoded>
	</item>
</channel>
</rss>
