<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Getting the shell to run an application for you &#8211; Part 1: Why</title>
	<atom:link href="http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/feed/" rel="self" type="application/rss+xml" />
	<link>http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/</link>
	<description>Seattle Geek with lots to say.</description>
	<lastBuildDate>Thu, 03 May 2012 09:25:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Fashion shows.</title>
		<link>http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/comment-page-1/#comment-131452</link>
		<dc:creator>Fashion shows.</dc:creator>
		<pubDate>Mon, 12 Jul 2010 21:54:03 +0000</pubDate>
		<guid isPermaLink="false">http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/#comment-131452</guid>
		<description>&lt;strong&gt;Renaissance fashion....&lt;/strong&gt;

Plus size fashion. Elizabethan fashion. Fashion design colleges. Fashion trends. Fashion of the 80s. Fashion design. 1950s fashion jeans. Fashion....</description>
		<content:encoded><![CDATA[<p><strong>Renaissance fashion&#8230;.</strong></p>
<p>Plus size fashion. Elizabethan fashion. Fashion design colleges. Fashion trends. Fashion of the 80s. Fashion design. 1950s fashion jeans. Fashion&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon</title>
		<link>http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/comment-page-1/#comment-110831</link>
		<dc:creator>Brandon</dc:creator>
		<pubDate>Sun, 27 Apr 2008 23:25:02 +0000</pubDate>
		<guid isPermaLink="false">http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/#comment-110831</guid>
		<description>Hi Andrei -

There is no way to know what other window threads will pump messages while you have the hook installed.  The fact is that the hook will almost always be loaded into other processes.

Since you know which window you&#039;re targetting, you should always restrict the hook to the thread that owns that window.  There is no reason *not* to as a call to GetWindowThreadProcessId is cheap and easy as cake.  Passing NULL for the fourth parameter to SetWindowsHookEx is meant for the rare case when you actually want to hook every window&#039;s message loop.</description>
		<content:encoded><![CDATA[<p>Hi Andrei -</p>
<p>There is no way to know what other window threads will pump messages while you have the hook installed.  The fact is that the hook will almost always be loaded into other processes.</p>
<p>Since you know which window you&#8217;re targetting, you should always restrict the hook to the thread that owns that window.  There is no reason *not* to as a call to GetWindowThreadProcessId is cheap and easy as cake.  Passing NULL for the fourth parameter to SetWindowsHookEx is meant for the rare case when you actually want to hook every window&#8217;s message loop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrei Belogortseff</title>
		<link>http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/comment-page-1/#comment-110828</link>
		<dc:creator>Andrei Belogortseff</dc:creator>
		<pubDate>Sun, 27 Apr 2008 23:08:12 +0000</pubDate>
		<guid isPermaLink="false">http://brandonlive.com/2008/04/26/getting-the-shell-to-run-an-application-for-you-part-1-why/#comment-110828</guid>
		<description>Your claim that &quot;...this hook code is immediately going to be loaded by every process on the desktop with a window&quot; is incorrect. The hook code gets loaded into a process only when the conditions for the hook to execute for that process occur, not immediately. Since the CodeProject article you mentioned installs the hook for a very short time (just enough to send a message to the shell), and then removes the hook, it means that the hook code will not be loaded into every process or thread, it will only be loaded into the shell process, as it was intended to.</description>
		<content:encoded><![CDATA[<p>Your claim that &#8220;&#8230;this hook code is immediately going to be loaded by every process on the desktop with a window&#8221; is incorrect. The hook code gets loaded into a process only when the conditions for the hook to execute for that process occur, not immediately. Since the CodeProject article you mentioned installs the hook for a very short time (just enough to send a message to the shell), and then removes the hook, it means that the hook code will not be loaded into every process or thread, it will only be loaded into the shell process, as it was intended to.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

