<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx</link><description>Series Links 
 This is part of a 3 part series: 
 
 Shell Style Drag and Drop in .NET (WPF and WinForms) 
 Shell Style Drag and Drop in .NET - Part 2 
 Shell Style Drag and Drop in .NET - Part 3 
 Introduction 
 In Part 1, Shell Style Drag and</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#10130168</link><pubDate>Wed, 16 Feb 2011 07:55:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10130168</guid><dc:creator>hardikvaishnav</dc:creator><description>&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;thanks you very much for this greate code.&lt;/p&gt;
&lt;p&gt;i need some help from your side&lt;/p&gt;
&lt;p&gt;I want to change cursor during drag drop from explorer/desktop to winform.&lt;/p&gt;
&lt;p&gt;whenever we drag and drop file then check if file is valid or not, if it is not valid then display custom cursor and if valid then display another custom cursor.&lt;/p&gt;
&lt;p&gt;please let me know how to do that. please give me an example.&lt;/p&gt;
&lt;p&gt;thanks in advance&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10130168" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9973141</link><pubDate>Thu, 04 Mar 2010 22:29:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9973141</guid><dc:creator>Phil</dc:creator><description>&lt;P&gt;I also see the same error happen on Windows 7 (both 32 &amp;amp; 64 bit). Catching it in a remote debugger shows me an exception in&lt;/P&gt;
&lt;P&gt;DataObject.cs public int QueryGetData(ref FORMATETC format)&lt;/P&gt;
&lt;P&gt;Specifically, the enumeration through the storage list results in a exception about enumerating after a change in the list.&lt;/P&gt;
&lt;P&gt;So, what I've done - which seems to initially fix it... Is lock every usage of the storage list, and in one function change how things are removed from it:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void SetData(ref FORMATETC formatIn, ref STGMEDIUM medium, bool release)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lock (mStorage)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// If the format exists in our storage, remove it prior to resetting it&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; mStorage.Count; ++i)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KeyValuePair&amp;lt;FORMATETC, STGMEDIUM&amp;gt; pair = mStorage[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((pair.Key.tymed &amp;amp; formatIn.tymed) &amp;gt; 0 &amp;amp;&amp;amp; pair.Key.dwAspect == formatIn.dwAspect &amp;amp;&amp;amp; pair.Key.cfFormat == formatIn.cfFormat)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;STGMEDIUM releaseMedium = pair.Value;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ReleaseStgMedium(ref releaseMedium);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mStorage.Remove(pair);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--i;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// If release is true, we'll take ownership of the medium.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// If not, we'll make a copy of it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;STGMEDIUM sm = medium;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!release)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sm = CopyMedium(ref medium);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Add it to the internal storage&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KeyValuePair&amp;lt;FORMATETC, STGMEDIUM&amp;gt; addPair = new KeyValuePair&amp;lt;FORMATETC, STGMEDIUM&amp;gt;(formatIn, sm);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lock (mStorage)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mStorage.Add(addPair);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RaiseDataChanged(ref addPair);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9973141" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9955207</link><pubDate>Fri, 29 Jan 2010 09:05:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9955207</guid><dc:creator>Gert</dc:creator><description>&lt;p&gt;Hi Adam.&lt;/p&gt;
&lt;p&gt;I did find, that if I change the DoDragDropInternal method to this :&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Set the data onto the data object.&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (data != null)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;foreach (KeyValuePair&amp;lt;string, object&amp;gt; dataPair in data)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dataObject.SetDataEx(dataPair.Key, dataPair.Value);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (true)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AllowDropDescription(true);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return DragDrop.DoDragDrop(dragSource, dataObject, allowedEffects);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch { }&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;finally&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UnregisterDefaultDragSource(dragSource);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;it works.&lt;/p&gt;
&lt;p&gt;When the exception occurs, the DND operation is simply restartet. Only sideeffect I've noticed is, that the Link, Move, Copy etc. icon, changes to XP-style instead of Win7 style when the exception occurs, but the DND operation continues.&lt;/p&gt;
&lt;p&gt;I know it's not the &amp;quot;right&amp;quot; solution. Better to fix exceptions rather than circumventing them :o)&lt;/p&gt;
&lt;p&gt;This could potentially introduce a memoryleak in the program, so I would still appreciate it if you find the time to investigate this.&lt;/p&gt;
&lt;p&gt;Gert&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9955207" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9955052</link><pubDate>Fri, 29 Jan 2010 00:24:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9955052</guid><dc:creator>adamroot</dc:creator><description>&lt;p&gt;Garby and Gert,&lt;/p&gt;
&lt;p&gt;Unfortunately I don't know what the issue is. I will certainly put this on my backlog, but at the moment, I just don't have the bandwidth to spare on this.&lt;/p&gt;
&lt;p&gt;Adam&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9955052" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9954942</link><pubDate>Thu, 28 Jan 2010 21:19:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9954942</guid><dc:creator>Gert</dc:creator><description>&lt;p&gt;Hi Adam.&lt;/p&gt;
&lt;p&gt;Great library. :thumbsup:&lt;/p&gt;
&lt;p&gt;I do have one small problem though... I keep getting an InvalidOperationException when dragging over other applications like Explorer.&lt;/p&gt;
&lt;p&gt;I'm running Windows 7 Home Premium 64bit. I have tried setting the CPU type of both the library and the sample to x86 but it didn't help.&lt;/p&gt;
&lt;p&gt;I think it may be the same (or related) to garby's issue.&lt;/p&gt;
&lt;p&gt;Do you have any ideas?&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;
&lt;p&gt;Gert&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9954942" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9954739</link><pubDate>Thu, 28 Jan 2010 16:04:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9954739</guid><dc:creator>garby</dc:creator><description>&lt;p&gt;Hi adamroot,&lt;/p&gt;
&lt;p&gt;my exe is running in 32bit mode anyway, because i use a 32bit native dll.&lt;/p&gt;
&lt;p&gt;Do you have any possibilities to try this in Windows 7?&lt;/p&gt;
&lt;p&gt;Thank you&lt;/p&gt;
&lt;p&gt;Garby&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9954739" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9954712</link><pubDate>Thu, 28 Jan 2010 15:25:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9954712</guid><dc:creator>adamroot</dc:creator><description>&lt;p&gt;Garby, sorry but I haven't tried this code on Windows 7 or on any x64 machine.&lt;/p&gt;
&lt;p&gt;My guess is it is a 64-bit problem. Since I didn't have x64 at the time, I may have bugs in the 64-bit interop code. Try using corflags to set the 32bit flag on your .exe and see if you see the same behavior.&lt;/p&gt;
&lt;p&gt;Adam&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9954712" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9954626</link><pubDate>Thu, 28 Jan 2010 12:10:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9954626</guid><dc:creator>garby</dc:creator><description>&lt;p&gt;Hello adamroot,&lt;/p&gt;&lt;p&gt;i have a problem using your code in Windows 7 64bit.&lt;/p&gt;&lt;p&gt;If I drag out to the windows explorer the drag operation stops.&lt;/p&gt;&lt;p&gt;Do you have any idea?&lt;/p&gt;&lt;p&gt;Thanks&lt;/p&gt;&lt;p&gt;Garby&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9954626" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9632252</link><pubDate>Wed, 20 May 2009 17:22:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9632252</guid><dc:creator>adamroot</dc:creator><description>&lt;p&gt;Thanks, I'm glad to see people finding it useful. I've been contacted by some of the WPF folks about it, so maybe we'll see better support in the framework in the future. =)&lt;/p&gt;
&lt;p&gt;I found out why my download links weren't working. It was because I was linking to the direct download links on SkyDrive, which are intentionally changed daily to prevent direct linking. It may sound bogus, but they need to make their money somewhere, so I've linked to the appropriate staging page where they get to show some ads, and those seem to be holding up.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9632252" width="1" height="1"&gt;</description></item><item><title>re: Shell Style Drag and Drop in .NET - Part 3</title><link>http://blogs.msdn.com/b/adamroot/archive/2008/02/19/shell-style-drag-and-drop-in-net-part-3.aspx#9629906</link><pubDate>Wed, 20 May 2009 01:18:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9629906</guid><dc:creator>phil</dc:creator><description>&lt;p&gt;Not sure, but you could host this on codeplex, codeproject, or somewhere else more reliable. If on Codeplex, might be easier to access, fix bugs, communicate, etc. It is a pretty useful library you have created! :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9629906" width="1" height="1"&gt;</description></item></channel></rss>