<?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: An Ode to wfSpy</title>
	<atom:link href="http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/</link>
	<description>Yet another UX guy, working in WPF/Silverlight.</description>
	<lastBuildDate>Thu, 05 Aug 2010 15:06:41 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: cplotts</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-678</link>
		<dc:creator>cplotts</dc:creator>
		<pubDate>Wed, 09 Jun 2010 14:59:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-678</guid>
		<description>I tried to send you an email ... but please send the prototype when you finish it. I would love to add this ability to Snoop.</description>
		<content:encoded><![CDATA[<p>I tried to send you an email &#8230; but please send the prototype when you finish it. I would love to add this ability to Snoop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lsdisciples</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-677</link>
		<dc:creator>lsdisciples</dc:creator>
		<pubDate>Wed, 09 Jun 2010 11:07:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-677</guid>
		<description>I&#039;m exclusively working on Silverlight support since my last post.

I think I finally found a way to hook into a Silverlight application. Seems like there is no &quot;clean&quot; way to do it.

The way the Silverlight object is created on the page must be overrided. If the object is created using JavaScript, the content (managed) of the object will be available in JavaScript. The rest can be done using an IHTMLDocument interface to inject and run JavaScript on the page.

A blog &lt;a href=&quot;http://blogs.msdn.com/b/jaimer/archive/2007/05/17/early-version-of-snoop-for-silverlight-1-0.aspx&quot; rel=&quot;nofollow&quot;&gt;post&lt;/a&gt; from Jaime Rodriguez was really useful to understand how to play with the Silverlight object at runtime.

This early version only supports Silverlight object with content starting with instead of. This can be easily adapted/modified in the code.  Since it supports 1.0, I should be able to gradually support all possible Silverlight versions.

Tomorrow, I will try to prove my theory:
1- Use a BrowserHelperObject ( :( ) or a custom Client browser to override the Silverlight object creation before the content is sent to Internet Explorer.
2- &quot;Inject&quot; a modified version of the EarlySnoop example (I already extracted the interesting JavaScript and adapted it to work with Silverlight  tool 2.0)
3- Get an IHTMLDocument interface to send JavaScript instruction to the page at runtime (with execScript or by manipulating the HTML document at runtime).

Send me an email if you would like to get this first &quot;Hello World&quot; working prototype when it is completed.

Note that this will be very, very, very far from a final solution. It only shows how it can be done.  My application is not only a spy tool ... and so the example will better fit your needs ... and give you something to start with.</description>
		<content:encoded><![CDATA[<p>I&#8217;m exclusively working on Silverlight support since my last post.</p>
<p>I think I finally found a way to hook into a Silverlight application. Seems like there is no &#8220;clean&#8221; way to do it.</p>
<p>The way the Silverlight object is created on the page must be overrided. If the object is created using JavaScript, the content (managed) of the object will be available in JavaScript. The rest can be done using an IHTMLDocument interface to inject and run JavaScript on the page.</p>
<p>A blog <a href="http://blogs.msdn.com/b/jaimer/archive/2007/05/17/early-version-of-snoop-for-silverlight-1-0.aspx" rel="nofollow">post</a> from Jaime Rodriguez was really useful to understand how to play with the Silverlight object at runtime.</p>
<p>This early version only supports Silverlight object with content starting with instead of. This can be easily adapted/modified in the code.  Since it supports 1.0, I should be able to gradually support all possible Silverlight versions.</p>
<p>Tomorrow, I will try to prove my theory:<br />
1- Use a BrowserHelperObject ( <img src='http://www.cplotts.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  ) or a custom Client browser to override the Silverlight object creation before the content is sent to Internet Explorer.<br />
2- &#8220;Inject&#8221; a modified version of the EarlySnoop example (I already extracted the interesting JavaScript and adapted it to work with Silverlight  tool 2.0)<br />
3- Get an IHTMLDocument interface to send JavaScript instruction to the page at runtime (with execScript or by manipulating the HTML document at runtime).</p>
<p>Send me an email if you would like to get this first &#8220;Hello World&#8221; working prototype when it is completed.</p>
<p>Note that this will be very, very, very far from a final solution. It only shows how it can be done.  My application is not only a spy tool &#8230; and so the example will better fit your needs &#8230; and give you something to start with.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cplotts</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-664</link>
		<dc:creator>cplotts</dc:creator>
		<pubDate>Thu, 20 May 2010 14:30:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-664</guid>
		<description>I&#039;m not surprised that it isn&#039;t simple. Good luck and again, keep me up to date.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not surprised that it isn&#8217;t simple. Good luck and again, keep me up to date.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lsdisciples</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-662</link>
		<dc:creator>lsdisciples</dc:creator>
		<pubDate>Wed, 19 May 2010 22:04:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-662</guid>
		<description>Looks more complicated than expected ... I will forward to you any interesting information on this, but for now, after two days spent on this, I can&#039;t even find a starting point. :(

We know it&#039;s possible since Silverlight Spy exists.  Having a chance to see an older version with available source code would be useful.

I posted the following message in the WPF and Silverlight newsgroups, but nobody seems to be able to answer this simple question: http://social.msdn.microsoft.com/Forums/en-CA/wpf/thread/545459cf-7af6-439e-87a6-045e211be41d

Tonight I will take a look at the IHTMLDocument2 interface since the root visual seems to be available on the JavaScript side. I&#039;m also going to explore different things inspired by the HTML document spying part of my application.  I will also play with different framework versions of the injected code to make sure HwndSource.FromHwnd is not failing because of the framework version used.

Silverlight seems to use it&#039;s own mini framework which is not a part of the .NET Framework (i.e. the Silverlight dll is not stored in the normal .NET Framework directory).  Silverlight Spy seems to not use any &quot;injector&quot; and uses a client browser in the application ... so my guess is that the solution is more on HTML side.

Sorry, but I&#039;m totally confused on this ... and I&#039;m just trying to finding a starting point.  Will share the solution if I can find a way to get access to the application.</description>
		<content:encoded><![CDATA[<p>Looks more complicated than expected &#8230; I will forward to you any interesting information on this, but for now, after two days spent on this, I can&#8217;t even find a starting point. <img src='http://www.cplotts.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>We know it&#8217;s possible since Silverlight Spy exists.  Having a chance to see an older version with available source code would be useful.</p>
<p>I posted the following message in the WPF and Silverlight newsgroups, but nobody seems to be able to answer this simple question: <a href="http://social.msdn.microsoft.com/Forums/en-CA/wpf/thread/545459cf-7af6-439e-87a6-045e211be41d" rel="nofollow">http://social.msdn.microsoft.com/Forums/en-CA/wpf/thread/545459cf-7af6-439e-87a6-045e211be41d</a></p>
<p>Tonight I will take a look at the IHTMLDocument2 interface since the root visual seems to be available on the JavaScript side. I&#8217;m also going to explore different things inspired by the HTML document spying part of my application.  I will also play with different framework versions of the injected code to make sure HwndSource.FromHwnd is not failing because of the framework version used.</p>
<p>Silverlight seems to use it&#8217;s own mini framework which is not a part of the .NET Framework (i.e. the Silverlight dll is not stored in the normal .NET Framework directory).  Silverlight Spy seems to not use any &#8220;injector&#8221; and uses a client browser in the application &#8230; so my guess is that the solution is more on HTML side.</p>
<p>Sorry, but I&#8217;m totally confused on this &#8230; and I&#8217;m just trying to finding a starting point.  Will share the solution if I can find a way to get access to the application.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cplotts</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-661</link>
		<dc:creator>cplotts</dc:creator>
		<pubDate>Wed, 19 May 2010 14:00:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-661</guid>
		<description>&lt;a href=&quot;#comment-659&quot; rel=&quot;nofollow&quot;&gt;@lsdisciples&lt;/a&gt;:
Let me know if you have any breakthroughs ... that I could move into Snoop.</description>
		<content:encoded><![CDATA[<p><a href="#comment-659" rel="nofollow">@lsdisciples</a>:<br />
Let me know if you have any breakthroughs &#8230; that I could move into Snoop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lsdisciples</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-659</link>
		<dc:creator>lsdisciples</dc:creator>
		<pubDate>Tue, 18 May 2010 22:31:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-659</guid>
		<description>I assume WPF and Silverlight are &quot;almost&quot; the same exact thing for a spying application.  So missing Silverlight support is likely not caused by something too drastic. We are at the same point on this. I&#039;m also planning to take a look at this sooner or later.  ;o)

Thanks again.</description>
		<content:encoded><![CDATA[<p>I assume WPF and Silverlight are &#8220;almost&#8221; the same exact thing for a spying application.  So missing Silverlight support is likely not caused by something too drastic. We are at the same point on this. I&#8217;m also planning to take a look at this sooner or later.  ;o)</p>
<p>Thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cplotts</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-658</link>
		<dc:creator>cplotts</dc:creator>
		<pubDate>Tue, 18 May 2010 14:19:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-658</guid>
		<description>&lt;a href=&quot;#comment-657&quot; rel=&quot;nofollow&quot;&gt;@lsdisciples&lt;/a&gt;:
Hey there. I have gotten more than one query about Snoop and Silverlight. :D

I have not played with this at all ... but obviously, it would be awesome if Snoop could also spy Silverlight applications. Hmmm. I just created a &lt;a href=&quot;http://snoopwpf.codeplex.com/WorkItem/View.aspx?WorkItemId=4660&quot; rel=&quot;nofollow&quot;&gt;work item&lt;/a&gt; for it.</description>
		<content:encoded><![CDATA[<p><a href="#comment-657" rel="nofollow">@lsdisciples</a>:<br />
Hey there. I have gotten more than one query about Snoop and Silverlight. <img src='http://www.cplotts.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>I have not played with this at all &#8230; but obviously, it would be awesome if Snoop could also spy Silverlight applications. Hmmm. I just created a <a href="http://snoopwpf.codeplex.com/WorkItem/View.aspx?WorkItemId=4660" rel="nofollow">work item</a> for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lsdisciples</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-657</link>
		<dc:creator>lsdisciples</dc:creator>
		<pubDate>Tue, 18 May 2010 04:41:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-657</guid>
		<description>Still working on this! ;o)

I&#039;m wondering one thing about Snoop. What are the main reasons why Snoop cannot spy on a Silverlight application?

I want to support Silverlight also in my application, any starting point or suggestion?

Thanks again.</description>
		<content:encoded><![CDATA[<p>Still working on this! ;o)</p>
<p>I&#8217;m wondering one thing about Snoop. What are the main reasons why Snoop cannot spy on a Silverlight application?</p>
<p>I want to support Silverlight also in my application, any starting point or suggestion?</p>
<p>Thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cplotts</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-641</link>
		<dc:creator>cplotts</dc:creator>
		<pubDate>Thu, 22 Apr 2010 12:58:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-641</guid>
		<description>&lt;a href=&quot;#comment-640&quot; rel=&quot;nofollow&quot;&gt;@lsdisciples&lt;/a&gt;:
Glad to help and good luck with your application. Please let me know when you release it, I would love to take a look.</description>
		<content:encoded><![CDATA[<p><a href="#comment-640" rel="nofollow">@lsdisciples</a>:<br />
Glad to help and good luck with your application. Please let me know when you release it, I would love to take a look.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lsdisciples</title>
		<link>http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/comment-page-1/#comment-640</link>
		<dc:creator>lsdisciples</dc:creator>
		<pubDate>Wed, 21 Apr 2010 23:35:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.cplotts.com/2009/10/28/an-ode-to-wfspy/#comment-640</guid>
		<description>Thanks again, Cory.

The information provided is really useful.  I feel more confident with the wfSpy hooking &quot;engine&quot; used in my project since you answered to all my concerns about it.  Having a chance to talk with the Snoop author about wfSpy was unexpected since the wfSpy author is unreachable.  So again, thanks for you time and for sharing your knowledge with other people like me :).</description>
		<content:encoded><![CDATA[<p>Thanks again, Cory.</p>
<p>The information provided is really useful.  I feel more confident with the wfSpy hooking &#8220;engine&#8221; used in my project since you answered to all my concerns about it.  Having a chance to talk with the Snoop author about wfSpy was unexpected since the wfSpy author is unreachable.  So again, thanks for you time and for sharing your knowledge with other people like me <img src='http://www.cplotts.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
</channel>
</rss>
