<?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>Wot u do with .net </title><link>http://blogs.msdn.com/paulfo/default.aspx</link><description>All the fun things you can do with .net from extending Media Centre to robotics to game development.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Aspire Ferrari One – rocks. A netbook as netbooks should be</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/27/aspire-ferrari-one-rocks-a-netbook-as-netbooks-should-be.aspx</link><pubDate>Tue, 27 Oct 2009 10:24:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9913426</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9913426.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9913426</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/27/aspire-ferrari-one-rocks-a-netbook-as-netbooks-should-be.aspx";digg_title = "Aspire Ferrari One – rocks. A netbook as netbooks should be";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://img.hexus.net/v2/news/acer/Ferrari-F200-One-1.jpg" width="300" height="280" /&gt;My latest purchase is an Acer Ferrari One netbook. This is a netbook like no other and the way netbooks should be! It is the same size as the current restricted Atom 11.6” screen netbooks, with 1366x768 res - but this one runs the AMD Athlon X2 L310 processor. Yes this is a dual core, 64-bit, workable screen res netbook baby!&lt;/p&gt;  &lt;p&gt;With support for up to 4GB RAM and a 250GB HDD the graphics are provided by the ATiRadeon HD 3200. The Windows Experience Index says it all:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/AspireFerrari.Anetbookasnetbooksshouldbe_9258/acerwei.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="acerwei" border="0" alt="acerwei" src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/AspireFerrari.Anetbookasnetbooksshouldbe_9258/acerwei_thumb.png" width="521" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;All this for just £399. It is pretty amazing especially when you compare it to the competition. The word on the street is that Intel won’t allow powerful Atoms in the larger screen sized netbooks – protecting full processor laptop sales. This is why they are all Z520 1.2Ghz things – lacking puff. &lt;/p&gt;  &lt;p&gt;But even when you look at the ‘proper’ laptops, the Acer Ferrari One is still an amazing buy.&lt;/p&gt;  &lt;p&gt;Look at the Sony Vaio TT range. Typical Windows Experience Indices look like this:&lt;/p&gt;  &lt;p&gt;Processor = 4.3    &lt;br /&gt;Memory (RAM) = 4.9     &lt;br /&gt;Graphics = 3.2     &lt;br /&gt;Gaming graphics = 4.9     &lt;br /&gt;Primary hard disk = 6.2&lt;/p&gt;  &lt;p&gt;At best only 0.6 of an index better than the Ferrari One. Yet the TT range sells for over £1400 – 3.5 times the price of the Ferrari One, making the Ferrari One an awesome deal.&lt;/p&gt;  &lt;p&gt;The Ferrari One was shipped with Windows 7 Home Premium. I upgraded this to Windows 7 Ultimate by using the Windows Anytime Upgrade feature – allowing you to purchase a new product key and download additional functionality over an internet connection. It took very little time at all, I didn’t time it but it felt like 30mins.&lt;/p&gt;  &lt;p&gt;I’m running Office 2010 (internal build), VS2008 Pro, VS2010 Ultimate beta 2, SQL Express 2008 and Expression Studio 3.&lt;/p&gt;  &lt;p&gt;Unlike other Atom based netbooks, the Ferrari one doesn’t stall when you have more than one application open. Making it awesome for travel and good enough for every day use (although to be perfect for dev I need a smidge more proc perf).&lt;/p&gt;  &lt;p&gt;The Ferrari One has a Synaptics’ multi-gesture touchpad. This appears to only support mouse style functionality (wheel zoom etc) via gestures. Windows 7 doesn’t see it as a multi-touch device :-( Although I have seen mod’ed drivers on the web that apparently enable this functionality. Have to say, if a proper driver for multi-touch was provided the Ferrari One would be ‘the best machine I have ever owned’. And that is some recommendation.&lt;/p&gt;  &lt;p&gt;My Ferrari One model doesn’t have the built in 3G support, or Bluetooth. But I have a 3G stick I use across all my machines as needed and I don’t use BT.&lt;/p&gt;  &lt;p&gt;I am keeping an eye out for ‘Graphics Boosters’ that use the ATI XGP port on the side of the Ferrari One. In theory at least, these devices extend the graphics capability by as much as x4 performance, and bring support for more than two simultaneous monitors and an HDMI out perfect compliment to the Dolby Home Theatre sound supported on the Ferrari One. It’d be pretty cool to use the Ferrari One in a multi-monitor work station with VS2010 (you can have different IDE windows open on different monitors).&lt;/p&gt;  &lt;p&gt;The full spec of my Ferrari One:&lt;/p&gt;  &lt;p&gt;Model: ZH6&lt;/p&gt;  &lt;p&gt;Processor:&amp;#160; AMD Althon 64 X2 dual-core processor L310 (1.20Ghz, 1mb L2 Cache)&lt;/p&gt;  &lt;p&gt;LCD: 11.6” HD Acer LED LCD (1366x768)&lt;/p&gt;  &lt;p&gt;Graphics: Radeon HD 3200 up to 896mb memory (shared)&lt;/p&gt;  &lt;p&gt;Memory: 2GB&lt;/p&gt;  &lt;p&gt;Storage: 250GB HDD&lt;/p&gt;  &lt;p&gt;Card reader: Multi-in-1&lt;/p&gt;  &lt;p&gt;WLAN: Acer Nplify 802.11/b/g/ Draft –N&lt;/p&gt;  &lt;p&gt;Web cam: Acer Crystal Eye webcam (0.3mega pixel)&lt;/p&gt;  &lt;p&gt;Battery: 6-cell Li-on (appears that I’m getting 5hrs on balanced power management. Spare battery around £90).&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913426" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Ferrari/default.aspx">Ferrari</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/VS2010/default.aspx">VS2010</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Paul+Foster/default.aspx">Paul Foster</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Netbook/default.aspx">Netbook</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Wotudo/default.aspx">Wotudo</category></item><item><title>Software changes the world – be proud to be part of it</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/22/software-changes-the-world-be-proud-to-be-part-of-it.aspx</link><pubDate>Thu, 22 Oct 2009 14:09:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911371</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9911371.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9911371</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/software-changes-the-world-be-proud-to-be-part-of-it.aspx";digg_title = "Software changes the world – be proud to be part of it";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;One of the joys of working for Microsoft is the real world citizenship. That sounds really corporate, but what I mean is the ability to stand up and do the right thing. Microsoft of course does lots locally and internationally as befits a successful company. But its the ability to do stuff as an individual that helps me fulfil ambitions, help others and feel like I’m making a positive contribution to the world.&lt;/p&gt;  &lt;p&gt;For the last few years I’ve been able to support the &lt;a href="http://firsthandtechnology.org.uk"&gt;First Lego League&lt;/a&gt; in the UK, and the UK &lt;a href="http://filmsforlearning.org/"&gt;Films for learning&lt;/a&gt; community by building and maintaining their websites. These are great activities that enable teachers and students of a wide range of ages to get in the mix with science and technology. Both have a huge effect on those taking part – enabling teachers to teach with flair and originality, and students to learn while having fun and enriching experiences.&lt;/p&gt;  &lt;p&gt;Over the summer I’ve been able to do a few fun events with schools and colleges in my area. This has included:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;College Technology day&lt;/strong&gt;. I ran a workshop, repeated three times during the day, on different aspects of software and human interaction including speech controlled robot navigation, direct robot programming, multi-touch on Windows 7 and XNA game development. Nearly 60 students attended during the three workshops, all able to take part hands on building and driving stuff. Fantastic.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;High School induction&lt;/strong&gt;. Initially I was asked to run a robotics workshop as part of the schools activities to welcome its new year six intact. We thought we’d get enough kids interested to run one Saturday morning workshop with 30 student places. It was a surprise and a joy to get a phone call from Mr Cowan – the technology centre manager – to say 145 students had applied to take part. There is only one thing you can do in the face of such enthusiasm – scale out! With the help of Chris Proctor, organiser of the &lt;a href="http://firsthandtechnology.org.uk"&gt;First Lego League&lt;/a&gt; in the UK, as well as my UK colleague Daniel Sumner, I was able to borrow more Lego NXT robots enough to allow ten robotic teams. With Mr Cowan’s and the support of senior teaching staff, we were then able to run the workshop twice a day for two consecutive Saturdays and allow all 145 students to take part! &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Primary School club&lt;/strong&gt;. Keen to support my local school, I was able to attend the after school Lego Club with my NXT robots (MS actually paid for them!!). In the brief hour after school, for a whole term, we built and programmed the robots to complete Lego missions on one of the First Lego League challenges. Fantastic fun, for boys and girls aged only 8yo. It never stops to amaze me how our children can rise to any challenge given the opportunity to participate.&lt;/p&gt;  &lt;p&gt;My most recent adventure was to present a ‘Microsoft and me’ session for a local careers event for high school students. The event was full of fun with Thrust SSC engineers and a British Airways hostess presenting amongst others. I had a smallish group attend my session – an affect of the standardised lacklustre ITC classes I suspect. We had a great interactive session with discusses covering a range of topics including competitive angles. I enjoyed myself very much and today got some nice feedback from the students eval forms including comments like ‘Why can’t we have an IT teacher like that’ and ‘ Paul Foster is cool’. :-)&lt;/p&gt;  &lt;p&gt;My latest project is to try to support a collection of schools in Uganda. They have very little access to computers and therefore the internet, but the teaching staff want to be part of the internet phenomenon and to share their schools stories. By using their mobile phones or dial-up cyber cafes the teachers want to publish what their students are doing. Having got joined up with a UK volunteer recently back from Uganda, thanks to the Films for learning community, I’m now building out a hosted web server that will be able to support not just one school but as many of the local schools as would like to take part. I’m talking to a UK hosting company about their dedicated server products and hope to have the site up and running before Christmas.&lt;/p&gt;  &lt;p&gt;Projects like all of these demonstrate just how powerful software is. As Ray Ozzie says, in one of our new employee induction videos, ‘with software, if you can imagine it, you can build it’.&amp;#160; &lt;/p&gt;  &lt;p&gt;For me, being part of software that does change the world, making a positive contribution to all, makes me proud, excited and humbled. &lt;/p&gt;  &lt;p&gt;I am one of many at Microsoft who does this sort of stuff. We are Microsoft, Microsoft is us. We are a force for good, and all the competitor FUD and the rubbish urban myths will not change us.&lt;/p&gt;  &lt;p&gt;I’m a PC, and I’m going to change the world for the better.&lt;/p&gt;  &lt;p&gt;CROSS POST FROM: &lt;a href="http://wotudo.net"&gt;http://wotudo.net&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911371" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/Education/default.aspx">Education</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/MICROSOFT/default.aspx">MICROSOFT</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/IAMPC/default.aspx">IAMPC</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Paul+Foster/default.aspx">Paul Foster</category></item><item><title>Widget development in Windows Mobile 6.5</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/22/widget-development-in-windows-mobile-6-5.aspx</link><pubDate>Thu, 22 Oct 2009 08:42:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911203</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9911203.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9911203</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/widget-development-in-windows-mobile-6-5.aspx";digg_title = "Widget development in Windows Mobile 6.5";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;I had two sessions to present at &lt;a href="http://overtheair09.org" target="_blank"&gt;Over The Air 09&lt;/a&gt;. The first was all about the new &lt;a href="http://wotudo.net/files/folders/how2/entry487.aspx" target="_blank"&gt;Widget runtime included in Windows Mobile 6.5&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The runtime brings a Microsoft implementation of W3C Widget support to Windows Mobile for the first time. Our implementation is coupled with the launch of our very own mobile application Marketplace – this goes live with the launch of Windows Mobile 6.5 devices on the 6th Oct – allowing Widgets and native code applications (&amp;lt;10mb in size) to be sold directly to Windows Mobile 6 and upward devices.&lt;/p&gt;  &lt;p&gt;If you are new to Widgets then here is a summary: The widget ideal is to be able to build mobile applications using web development skills – HTML, Script and AJAX. They are installed on the device and look like a native application with just enough device integration to use soft keys and device state.&lt;/p&gt;  &lt;p&gt;So what is in our Widget implementation.&lt;/p&gt;  &lt;p&gt;Firstly, we&amp;#160; are using the Internet Explorer 6 HTML presentation engine (HTML Control). This is coupled with most of the IE8 script engine. These are brought together in the Widget runtime application called RIAHOST.EXE.&lt;/p&gt;  &lt;p&gt;RIAHost adds other stuff, including shell support for devices with touch, soft keys and importantly the Widget object.&lt;/p&gt;  &lt;p&gt;The Widget object allows the Widget programmer to reach beyond the Widget into the state of the device. Being able to determine things like signal and battery strength. If the widget is in focus or hidden. As well as many other things.&lt;/p&gt;  &lt;p&gt;Widgets are brilliant but I immediately want to do more with my Widgets.&lt;/p&gt;  &lt;p&gt;I think, for Widgets to be successful the developer must make them Smart Widgets. Rather than just using them as installed ‘web pages’ Widgets need to know when to start and when to stop doing stuff. The widget that continually calls a web service data update even when it is no longer ‘visible’ to the end user is going to drain the device battery and drive up the users data plan bill!&lt;/p&gt;  &lt;p&gt;With the Widget object, we can get hold of when the device is in focus and when it is hidden – allowing us to start or stop doing stuff. We can also tell if the user is roaming or on their home network – a smart widget might do less data traffic when roaming, or at least remind the user of the potential cost while roaming.&lt;/p&gt;  &lt;p&gt;Widgets can use a local data persistence. Each field stored can be up to 4000bytes. This allows Widgets to have another trick – the perceived performance trick. Performance exists into states – perceived performance is the performance the user sees on their device. Real performance is how practical it is to make a device really do something. They are two different things, with perceived performance being more important than real performance. A smart Widget developer will ensure the perceived performance of their widget is fast. They can do this by making only asynchronous web service calls and by using only stored state on startup – thus removing any ‘web update’ delay.&lt;/p&gt;  &lt;p&gt;What I like even more about the Widget object is that it can be extended. This means over time as more W3C standard interfaces for device service (like geolocation for example) are delivered, then this functionality can be added to WM 6.5 devices. It also means that WM 6.5 devices are open for developers to&amp;#160; innovate and deliver some leading edge solutions!&lt;/p&gt;  &lt;p&gt;Let me give you a quick run down of how this works.&lt;/p&gt;  &lt;p&gt;Are you a COM programmer? Probably not – so let me just tell you something. Windows has all manner of different levels of interoperability, applicable to many different technologies and skill sets. At the fundamental core of Windows is COM. If you can’t extend or subvert Windows functions by any other means you are 99% likely to be able to do it at the COM level.&lt;/p&gt;  &lt;p&gt;The Widget object is implemented with support for the IDispatchEX COM interface. IDispatch is the typical COM automation interface. IDispatchEX – or EXpanded – allows a COM object’s IDispatch interface – which normally reports a static list of method calls – to be extended at runtime with more method calls.&lt;/p&gt;  &lt;p&gt;In a nut shell, Widget has a base level of functionality, which by using the IDispatchEX functionality we can add more functionality too. Quite literally, your new object’s methods appear on the Widget object. For example, Widget.MyMethod().&lt;/p&gt;  &lt;p&gt;How do you do this? Well because Widget has the IDispatchEX, all we have to do is implement a normal IDispatch on our component. This presents method and properties that can be called from our component and that will appear on Widget.&lt;/p&gt;  &lt;p&gt;We have to create a CAB installation file for our component – Widgets aren’t allowed to have ActiveX components in their installation package. This does present an initial installation issue, but basically your Widget needs to test for the existence of the dependant component/s and if they aren’t there redirect the user to the CAB URL so that this can be installed on first use. There after, the component/s will be available to the Widget and any other Widgets that want them.&lt;/p&gt;  &lt;p&gt;There is one more ‘special bit’. To tell Widget that our component is designed to extend it we have to set a registry key. This can be easily done by including the key definition in the CAB installation file for the component. &lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Widgets\ObjectModels\&amp;lt;ObjectName&amp;gt;]&amp;#160;&amp;#160;&amp;#160; &amp;quot;CLSID&amp;quot;=&amp;quot;{GUID}“&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Where GUID is the GUID of your component control implementation.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;A small aside here. My device was running a near final but not final build of Windows Mobile 6.5. When I looked in the device registry to set this key I discovered my ObjectModels was actually BuiltinObjectModels. All the documentation I have seen says it is ObjectModels, but adding the above key to BuiltinObjectModels worked for me :-) Once it worked I didn’t go back to try doing it with a ObjectModels key – sorry pressures of work.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With that done, and the component installed, our Widget can take advantage of our new functionality using script like this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;Var myObj = widget.createObject(“ObjectName”);&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;myObj.MyMethod();&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What might that new functionality be? Well it could be new W3C bits as they are defined. But what about that intellectual property of yours that you’d prefer not to implement in script for the world to easily see. Or many you just need some additional native code features to help exploit device capability.&lt;/p&gt;  &lt;p&gt;Using this feature means you can achieve all sorts of exciting stuff with your Widgets – or in fact, your exciting stuff can become the basis for other peoples widgets too.&lt;/p&gt;  &lt;p&gt;I’m currently exploring an Augmented Reality framework that could be implemented for Widgets to exploit. This needs some camera integration not available to the Widget script engine. A widget extension object might just be the way to go.&lt;/p&gt;  &lt;p&gt;I’m posting my extended widget source code on the &lt;a href="http://wotudo.net/files/folders/how2/entry504.aspx" target="_blank"&gt;downloads section&lt;/a&gt; of this site. Please also see the session slides PDF for more detail and do take a look a the &lt;a href="http://windowsteamblog.com/blogs/windowsphone/default.aspx" target="_blank"&gt;WindowsMobile team’s blog&lt;/a&gt; – Jorge is doing an awesome job filling in the detail on &lt;a href="http://windowsteamblog.com/blogs/windowsphone/archive/2009/09/22/widget-anatomy-performance-and-battery-life-the-final-frontier.aspx" target="_blank"&gt;Widget development&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There are also some helpful projects on &lt;a href="http://www.codeplex.com/site/search?projectSearchText=widget" target="_blank"&gt;Codeplex&lt;/a&gt; which provide Widget packaging, emulation and project templates for VS2008 and Expression Web.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911203" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPETeam/default.aspx">UKDPETeam</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPE/default.aspx">UKDPE</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category></item><item><title>sidebar: Project Mobile AR</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/22/sidebar-project-mobile-ar.aspx</link><pubDate>Thu, 22 Oct 2009 08:40:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911202</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9911202.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9911202</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/sidebar-project-mobile-ar.aspx";digg_title = "sidebar: Project Mobile AR";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;As discussed at the recent &lt;a href="http://overtheair.org" target="_blank"&gt;OTA09&lt;/a&gt; event, I’m working to build out an AR platform on Windows Mobile.&amp;#160; This is a ‘skunk works’ project filling my waking hours between work and the family.&lt;/p&gt;  &lt;p&gt;Currently, I’m exploring the DirectShow capabilities of the Windows Mobile device. DirectShow allows us to get hold of the device camera and provides a mechanism, via filters, to manipulate the video stream before rendering. &lt;/p&gt;  &lt;p&gt;I currently envision building a transform filter that will enable a form of the Windows Video Mixing Renderer on Windows Mobile. The filter would take layer definitions, graphics or video as an input for the AR elements.&lt;/p&gt;  &lt;p&gt;Performance is going to be a killer on these devices, so will see how rich the VMR functionality can be.&lt;/p&gt;  &lt;p&gt;I haven’t done any serious DirectShow stuff, my only experience comes from some work nearly a decade ok, so I’m ramping up my skills.&lt;/p&gt;  &lt;p&gt;One interesting Bing find, and a proof point for my envisioned solution, is &lt;a href="http://alexmogurenko.com/blog/" target="_blank"&gt;Alex Mogurenko’s&lt;/a&gt; excellent DirectShow.NetCF project. Alex provides two DLLs which implement a custom SampleGrabber filter, making it possible to build a simple .NET CF application that can display video preview and capture stills from the camera.&lt;/p&gt;  &lt;p&gt;My little WM6.5 test project is &lt;a href="http://wotudo.net/files/folders/how2/entry531.aspx" target="_blank"&gt;here&lt;/a&gt; (.Net CF 3.5 app). It works well, performance lags compared to the native HTC Camera application, but not by much. I need to explore this in more detail.&lt;/p&gt;  &lt;p&gt;Following Alex’s lead, I’ll be implementing my own filter next and aiming in the end to provide an AR solution to .NET CF developers. Once I get this going I’ll publish the project on Codeplex.&lt;/p&gt;  &lt;p&gt;TTFN&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911202" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPETeam/default.aspx">UKDPETeam</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPE/default.aspx">UKDPE</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Augmented+Reality/default.aspx">Augmented Reality</category></item><item><title>Windows 7 application UI enhancements</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/22/windows-7-application-ui-enhancements.aspx</link><pubDate>Thu, 22 Oct 2009 08:38:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911201</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9911201.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9911201</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/windows-7-application-ui-enhancements.aspx";digg_title = "Windows 7 application UI enhancements";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;Heya, how’s it going?&lt;/p&gt;  &lt;p&gt;If you have Windows applications built using .Net you may be wondering how to add all the cool new Windows 7 taskbar and common dialog features? These are all accessible as native api but we’re in .Net dude – looks like we’re pinvoking!&lt;/p&gt;  &lt;p&gt;Thankfully, all this work has been done for us in the &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows API Code Pack for Microsoft .Net Framework&lt;/a&gt;. We’ll just refer to it as the code pack from here on.&lt;/p&gt;  &lt;p&gt;The code pack is an evolution of the Windows Vista Bridge sample. It has been extended with some of the new Windows 7 API functions.&lt;/p&gt;  &lt;p&gt;Using the code pack – which is a accessible as a static library in our applications – you can do stuff like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails, and Thumbnail Toolbars. &lt;/li&gt;    &lt;li&gt;Windows 7 Libraries, Known Folders, non-file system containers. &lt;/li&gt;    &lt;li&gt;Windows Shell Search API support, a hierarchy of Shell Namespace entities, and Drag and Drop functionality for Shell Objects. &lt;/li&gt;    &lt;li&gt;Explorer Browser Control. &lt;/li&gt;    &lt;li&gt;Shell property system. &lt;/li&gt;    &lt;li&gt;Windows Vista and Windows 7 Common File Dialogs, including custom controls. &lt;/li&gt;    &lt;li&gt;Windows Vista and Windows 7 Task Dialogs. &lt;/li&gt;    &lt;li&gt;Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs. (DirectWrite and WIC have partial support) &lt;/li&gt;    &lt;li&gt;Sensor Platform APIs &lt;/li&gt;    &lt;li&gt;Extended Linguistic Services APIs &lt;/li&gt;    &lt;li&gt;Power Management APIs &lt;/li&gt;    &lt;li&gt;Application Restart and Recovery APIs &lt;/li&gt;    &lt;li&gt;Network List Manager APIs &lt;/li&gt;    &lt;li&gt;Command Link control and System defined Shell icons. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To start making your application ‘light up’ on Windows 7 consider how easily you can add the following functionality by reviewing the linked videos. Each video is less than 2mins in length – demonstrating just how quickly you can enhance you application with the latest Windows 7 stuff!&lt;/p&gt;  &lt;p&gt;Add a Windows Explorer control to enhance user navigation.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ec0587d5-e66e-41d3-be0f-18a0f6055a57" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=LexvSBkmP8A&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/video5bfa0737ef9e_56FB3E8B.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Use the latest up to date Common File Dialog&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:e36b0499-f9e5-435e-ab0c-a52f1c8c12a5" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=DIoJ233T0JY&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/videob617e2e34560_1F850790.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Add taskbar features to your application such as:&lt;/p&gt;  &lt;p&gt;Jump lists&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3a1774db-fc6a-4717-9aa7-c9473db2f1c5" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=5mJ-4BTA3yg&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/video9121b2511a43_35F7A617.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Progress bars&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:d3ebdb67-3f08-4b90-a0e5-1f24fdd8f1cd" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=5mJ-4BTA3yg&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/videoe527f894e4a2_2FD0597C.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Overlay images&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:06b33133-c58e-4705-acfc-01e5c46295e8" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Nh5029T9gUo&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/video7a8eebf32e18_588BBEC5.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;We’ll cover more advanced code pack features over the coming weeks, but get these enhancements sorted in your app ASAP.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911201" width="1" height="1"&gt;</description></item><item><title>Making your app shine on Windows 7: Tabbed Thumb Nails</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-tabbed-thumb-nails.aspx</link><pubDate>Thu, 22 Oct 2009 08:38:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911200</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9911200.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9911200</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-tabbed-thumb-nails.aspx";digg_title = "Making your app shine on Windows 7: Tabbed Thumb Nails";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;This post is one in a series of posts covering the &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows API Code Pack&lt;/a&gt;. The code pack provides a managed code framework for using the new native Windows 7 features.&lt;/p&gt;  &lt;p&gt;In this post we’ll examine how to implement thumbnail previews for a tabbed application UI. We’ll add to each thumbnail preview some buttons to control our application directly from the preview thumbnail. You need to be using .Net 3.5 SP1.&lt;/p&gt;  &lt;p&gt;I used a simple C# Winforms project to test this all out. You’ll need to add five references:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;WindowsBase&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;PresentationCore&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;PresentationFramework&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;Microsoft.WindowsAPICodePack&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;Microsoft.WindowsAPICodePack.Shell&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The code pack framework provides Integration to the Windows 7 thumbnail preview via the TaskbarManager class. The class contains four methods and five properties. The methods mainly deal with the overlay of icons onto the taskbar icon and the progress bar overlay that I’m sure you are already familiar with in Windows 7.&lt;/p&gt;  &lt;p&gt;The properties are the interesting bits for using thumbnail previews. The first property is a a boolean flag – IsPlatformSupported - to indicate if the current platform your app is running on can support thumbnails. Then you have Instance and ApplicationId. Instance represents the Windows Taskbar, and ApplicationId is the unique identifier for your application.&lt;/p&gt;  &lt;p&gt;Then you have the two most useful properties; the TabbedThumbnail and ThumbnailToolbars. These get the manager class for each type allowing you to add and update the thumbnail previews associated with your application and the toolbars that may also exist for each of the previews for your application. Yes each preview could have a different toolbar for each tabbed thumbnail.&lt;/p&gt;  &lt;p&gt;To add support to your application for thumbnail previews all you have to do is populate and maintain these two collections as necessary for your application. Because the code pack framework is provided as a static library doing this is very simple. &lt;/p&gt;  &lt;p&gt;I have a tabcontrol in my Winforms app that allows me to add new tabs containing new instances of the WebBrowser control. In my add new tab button click event I run the following code:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:95980625-4c44-400f-9055-3cadbf0248c9" class="wlWriterSmartContent"&gt;   &lt;div style="border-bottom: #000080 1px solid; border-left: #000080 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; color: #000; font-size: 10pt; border-top: #000080 1px solid; border-right: #000080 1px solid"&gt;     &lt;div style="padding-bottom: 2px; padding-left: 5px; padding-right: 5px; font-family: verdana, tahoma, arial, sans-serif; background: #000080; color: #fff; font-weight: bold; padding-top: 2px"&gt;Code Snippet&lt;/div&gt;      &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt;       &lt;ol style="padding-bottom: 0px; margin: 0px 0px 0px 2.5em; padding-left: 5px; padding-right: 0px; background: #ffffff; padding-top: 0px"&gt;         &lt;li&gt;&lt;span style="color: #2b91af"&gt;TabPage&lt;/span&gt; newTab = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TabPage&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;Tab &amp;quot;&lt;/span&gt; + tabControl1.TabPages.Count + 1); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;tabControl1.TabPages.Add(newTab); &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;WebBrowser&lt;/span&gt; wb = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WebBrowser&lt;/span&gt;(); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;wb.DocumentTitleChanged += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;(wb_DocumentTitleChanged); &lt;/li&gt;          &lt;li&gt;wb.DocumentCompleted += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WebBrowserDocumentCompletedEventHandler&lt;/span&gt;(wb_DocumentCompleted); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;wb.Navigated += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WebBrowserNavigatedEventHandler&lt;/span&gt;(wb_Navigated); &lt;/li&gt;          &lt;li&gt;wb.Dock = &lt;span style="color: #2b91af"&gt;DockStyle&lt;/span&gt;.Fill; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;wb.Navigate(textBox1.Text); &lt;/li&gt;          &lt;li&gt;newTab.Controls.Add(wb); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #008000"&gt;// Add thumbnail toolbar buttons&lt;/span&gt; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&lt;span style="color: #2b91af"&gt;TaskbarManager&lt;/span&gt;.Instance.ThumbnailToolbars.AddButtons(newTab.Handle, thumbButtonBack, thumbButtonForward, thumbButtonRefresh); &lt;/li&gt;          &lt;li&gt;&amp;#160; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&lt;span style="color: #008000"&gt;// Add a new preview&lt;/span&gt; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;TabbedThumbnail&lt;/span&gt; preview = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TabbedThumbnail&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Handle, newTab.Handle); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #008000"&gt;// Event handlers for this preview&lt;/span&gt; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;preview.TabbedThumbnailActivated += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailActivated); &lt;/li&gt;          &lt;li&gt;preview.TabbedThumbnailClosed += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailClosed); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;preview.TabbedThumbnailMaximized += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailMaximized); &lt;/li&gt;          &lt;li&gt;preview.TabbedThumbnailMinimized += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailMinimized); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;TaskbarManager&lt;/span&gt;.Instance.TabbedThumbnail.AddThumbnailPreview(preview); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #008000"&gt;// Select the tab in the application UI as well as taskbar tabbed thumbnail list&lt;/span&gt; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;tabControl1.SelectedTab = newTab; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;TaskbarManager&lt;/span&gt;.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab); &lt;/li&gt;       &lt;/ol&gt;     &lt;/div&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;As you can see. I add a new tabpage, create a new instance of a WebBrowser control. Tie some events to it – these have meaningful code in them ensuring the correct thumbnail behaviour occurs on the Taskbar – and add the browser control to the tabpage.&lt;/p&gt;  &lt;p&gt;Then I add the ThumbnailToolbars buttons. These have already been defined at class level.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c49cecd1-0b83-4dd6-bee7-e83e91fb0ef6" class="wlWriterSmartContent"&gt;   &lt;div style="border-bottom: #000080 1px solid; border-left: #000080 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; color: #000; font-size: 10pt; border-top: #000080 1px solid; border-right: #000080 1px solid"&gt;     &lt;div style="padding-bottom: 2px; padding-left: 5px; padding-right: 5px; font-family: verdana, tahoma, arial, sans-serif; background: #000080; color: #fff; font-weight: bold; padding-top: 2px"&gt;Code Snippet&lt;/div&gt;      &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt;       &lt;ol style="padding-bottom: 0px; margin: 0px 0px 0px 2em; padding-left: 5px; padding-right: 0px; background: #ffffff; padding-top: 0px"&gt;         &lt;li&gt;&amp;#160; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ThumbnailToolbarButton&lt;/span&gt; thumbButtonBack; &lt;/li&gt;          &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ThumbnailToolbarButton&lt;/span&gt; thumbButtonForward; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ThumbnailToolbarButton&lt;/span&gt; thumbButtonRefresh; &lt;/li&gt;       &lt;/ol&gt;     &lt;/div&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Then a new instance of a TabbedThumbnail is created naming the Windows handle and the new tabpage handle. Following this the event handlers for the thumbnail toolbar buttons are attached.&lt;/p&gt;  &lt;p&gt;Our TabbedThumbnail definition is then added to the Taskbar instance’s collection of TabbedThumbnails. And finally, we ensure the new tabpage is the current tabpage in focus on the tabcontrol and on the taskbar.&lt;/p&gt;  &lt;p&gt;The rest of the code in the application ensures that when tabpages are changed in the tabcontrol the preview thumbnails are synchronised. And likewise, when preview thumbnails are selected or hovered over the correct tabpage is brought to focus.&lt;/p&gt;  &lt;p&gt;The end result lookis like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wotudo.net/blogs/wotudo/image_11CB0883.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://wotudo.net/blogs/wotudo/image_thumb_7EE65F0B.png" width="475" height="259" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There are all sorts of additional goodies in the TabbedThumbnail class properties that allow you to clip the bitmap and effective zoom into it as well as provide tooltips etc.&lt;/p&gt;  &lt;p&gt;Adding thumbnail previews to your applications seems a small effort for achieving one of the most visible enhancements in the Windows 7 UI. The code pack API makes it easy to do.&lt;/p&gt;  &lt;p&gt;My complete application can be downloaded from &lt;a href="http://wotudo.net/files/folders/how2/entry544.aspx" target="_blank"&gt;here&lt;/a&gt;. It is a simplified version of the code pack Thumbnail sample.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911200" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPETeam/default.aspx">UKDPETeam</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPE/default.aspx">UKDPE</category></item><item><title>XNA 3.1 install onto Windows 7</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/22/xna-3-1-install-onto-windows-7.aspx</link><pubDate>Thu, 22 Oct 2009 08:37:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911198</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9911198.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9911198</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/xna-3-1-install-onto-windows-7.aspx";digg_title = "XNA 3.1 install onto Windows 7";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;I nuked my machines to move up to a clean build of Windows 7 RTM. In rebuilding them I hit a snag with the XNA3.1 install. The install would start and then rollback just after the redistributables copy started.&lt;/p&gt;  &lt;p&gt;To overcome this issue I set the runtime compatibility of the XNA 3.1 install file to be Windows Vista Service Pack 2 – you do this from the file property dialog. Re-running the XNA 3.1 install it all worked fine.&lt;/p&gt;  &lt;p&gt;On starting VS2008 Pro I see that I have both XNA 3.0 and XNA 3.1 project templates available.&lt;/p&gt;  &lt;p&gt;A quick test building the platform game and everything looks good.&lt;/p&gt;  &lt;p&gt;Now I just need a Zune HD!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911198" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/XNA/default.aspx">XNA</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Making your app shine on Windows 7: Jumplist</title><link>http://blogs.msdn.com/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-jumplist.aspx</link><pubDate>Thu, 22 Oct 2009 08:35:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911196</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9911196.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9911196</wfw:commentRss><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-jumplist.aspx";digg_title = "Making your app shine on Windows 7: Jumplist";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;This post is one in a series of posts covering the Windows API Code Pack. The code pack provides a managed code framework for using the new native Windows 7 features.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After thumbnail previews the next item you’ll be looking to implement for your application is a Jumplist. A Jumplist may provide shortcuts to recent documents, frequently use documents and application functionality.&lt;/p&gt;  &lt;p&gt;Setting up a jumplist for your application is as simple as simple can be using the code pack managed API – but there are some gotchas worth noting.&lt;/p&gt;  &lt;p&gt;First, you have to have a valid active window on the taskbar before you can create your jumplist. This isn’t obvious – except when you get the code pack’s error message on first run of your modified application. Remember, in working with the new Taskbar features, you are actually providing the Taskbar with details you want it to attribute to your application. If it doesn’t know about your application, it can’t take your details.&lt;/p&gt;  &lt;p&gt;Second, the code pack API does a good job of proactive error detection. For example, it’ll test to make sure the file you want to list on your jumplist exists. If it doesn’t you get blown out before you get near the Taskbar. The same with file associations. The code pack tests for the file association relationship to your application. If it doesn’t you can’t list the file. For more details on this one, look at the code pack TaskBarDemo sample. You might wonder why this extreme protection. The answer lines in the third gotcha.&lt;/p&gt;  &lt;p&gt;Third, the known category types (Recent, Frequent) are populated by the Taskbar for your application ‘automagically’. So you only have to choose to show one of these categories in your jumplist to get the information displayed. This is because Windows maintains a recent items history infrastructure when you use the current common file dialogs( or explicitly call the relevant API). If you don’t use them (why?), you can hand code this mechanism by using the shell API SHAddToRecentDocs or the code pack’s jumplist.AddToRecent method.&lt;/p&gt;  &lt;p&gt;Fourth, the code pack’s jumplist does a lot of good stuff. This includes maintaining your jumplist against the removed items list created by the user. You may want to have all the items in the jumplist but the user can selectively remove file references from your list. It’s considered bad form to keep putting the item back when the user has removed it, jumplist ensures you don’t make this mistake. If you don’t use jumplist you have to check the removedDestinations property and modify the list yourself.&lt;/p&gt;  &lt;p&gt;Now lets look at the code. Below is the specific parts of a C# Winforms application showing the creation of a jumplist:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1a3f340c-075a-4bfb-8c11-47c874c73707" class="wlWriterSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Form1&lt;/span&gt; : &lt;span style="color:#2b91af"&gt;Form&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpList&lt;/span&gt; jumpList;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt; category1 = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;Custom Stuff&amp;quot;&lt;/span&gt;);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt; category2 = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;Custom Stuff2&amp;quot;&lt;/span&gt;);&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; Form1()&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;InitializeComponent();&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; Form1_Shown(&lt;span style="color:#0000ff"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af"&gt;EventArgs&lt;/span&gt; e)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// create a new taskbar jump list for the main window&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList = &lt;span style="color:#2b91af"&gt;JumpList&lt;/span&gt;.CreateJumpList();&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Add custom categories&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddCustomCategories(category1, category2);&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;AddTasks();&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.Refresh();&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; AddTasks()&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Path to Windows system folder&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; systemFolder = &lt;span style="color:#2b91af"&gt;Environment&lt;/span&gt;.GetFolderPath(&lt;span style="color:#2b91af"&gt;Environment&lt;/span&gt;.&lt;span style="color:#2b91af"&gt;SpecialFolder&lt;/span&gt;.System);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Add our user tasks&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListLink&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;notepad.exe&amp;quot;&lt;/span&gt;), &lt;span style="color:#a31515"&gt;&amp;quot;Open Notepad&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;IconReference = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IconReference&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;notepad.exe&amp;quot;&lt;/span&gt;), 0)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;});&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListLink&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;mspaint.exe&amp;quot;&lt;/span&gt;), &lt;span style="color:#a31515"&gt;&amp;quot;Open Paint&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;IconReference = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IconReference&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;mspaint.exe&amp;quot;&lt;/span&gt;), 0)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;});&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListSeparator&lt;/span&gt;());&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListLink&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;calc.exe&amp;quot;&lt;/span&gt;), &lt;span style="color:#a31515"&gt;&amp;quot;Open Calculator&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;IconReference = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IconReference&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;calc.exe&amp;quot;&lt;/span&gt;), 0)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;});&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;All the work is kicked off in the form’s Shown event. With the creation of a jumplist. Two custom categories are added to it. Then some tasks are added that open other applications. The jumplist is ‘published’ by calling jumplist.refresh();&lt;/p&gt;  &lt;p&gt;Remember the Jumplist is created by the Taskbar for your application. Unlike the Thumbnail preview toolbars there doesn’t appear to be a mechanism of capturing jumplist events into your application. The only event raised by jumplist is when items have been removed from the jumplist since the last jumplist refresh occurred. This means achieving something similar to Internet Explorer 8’s Open new tab jumplist task, requires an ‘external’ communication to occur with your application.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911196" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPETeam/default.aspx">UKDPETeam</category></item><item><title>VS2010, .Net 4 and Windows 7 Multitouch WPF apps!</title><link>http://blogs.msdn.com/paulfo/archive/2009/06/17/vs2010-net-4-and-windows-7-multitouch-wpf-apps.aspx</link><pubDate>Wed, 17 Jun 2009 19:14:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9769772</guid><dc:creator>paulfo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9769772.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9769772</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt; &lt;p&gt;I've been doing a little playing around with MT on Win7 using the VS2010 and .Net 4 Beta 1 to get some WPF MT demos running.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here are the videos!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Basic how to get MT going code example:&lt;/p&gt; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:5dd14cb3-8351-4abf-b097-19868a6395a3" class="wlWriterEditableSmartContent"&gt;&lt;div id="0b18006b-ddeb-4523-9faa-3102edfa0bc9" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=0DM7NQJ0NA4" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/VS2010.Net4andWindows7MultitouchWPFapps_F26D/video8d6099bad1ff.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('0b18006b-ddeb-4523-9faa-3102edfa0bc9'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/0DM7NQJ0NA4&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/0DM7NQJ0NA4&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;Some internal demos that I've made to work on VS2010 and .Net4 beta 1 - using a WPF4 implementation of the Surface ScatterView control (or something that looks a lot like it)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:83147658-e782-46f5-9b9e-386ed7ff067a" class="wlWriterEditableSmartContent"&gt;&lt;div id="c1b90f04-e5b6-4bfd-a25c-24ae07912413" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=CHsqS2QnR14" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/VS2010.Net4andWindows7MultitouchWPFapps_F26D/video58cf00eb3ad5.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('c1b90f04-e5b6-4bfd-a25c-24ae07912413'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/CHsqS2QnR14&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/CHsqS2QnR14&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;Get building with WPF 4 in MT! I'm using the Codeplex MultitouchVista project which now has a Win7 driver. Works really well - very sweet when you don't have any MT kit!!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9769772" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPETeam/default.aspx">UKDPETeam</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPE/default.aspx">UKDPE</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/multitouch/default.aspx">multitouch</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/VS2010/default.aspx">VS2010</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/.Net4/default.aspx">.Net4</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/WPF4/default.aspx">WPF4</category></item><item><title>XNA UK Bar Camp 21st March</title><link>http://blogs.msdn.com/paulfo/archive/2009/03/17/xna-uk-bar-camp-21st-march.aspx</link><pubDate>Tue, 17 Mar 2009 12:41:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9483128</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9483128.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9483128</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAUKBarCamp21stMarch_884F/XNAa_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 0px 0px; border-right-width: 0px" height="164" alt="XNAa" src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAUKBarCamp21stMarch_884F/XNAa_thumb.jpg" width="223" align="left" border="0"&gt;&lt;/a&gt;Are getting ready to come to XNA Camp? We have a great selection of speakers AND creators club memberships to give away to attendees (4mths) and speakers (12mths). Everything in fact to get you building games or building more advanced games! With the new Community Games channel on Xbox Live you could also make some money!!!  &lt;p&gt;The XNA UK user group is a great gang of hobbyists, students and professional games developers. Always happy to help fellow game builders the user group provides a wealth of experience and resources to tap into. Why not join us in Birmingham at the Aston Science Park between 09:30 and 18:00. I'm giving the opening session on recent XNA and related technology announcements, then we have an open floor for 20min sessions by attendees.  &lt;p&gt;Some of the speakers confirmed include:  &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Peter McGann - author of the recent PC Plus XNA series.&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;Edward Powell - explaining XNA Game Components &amp;amp; Services&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;Andrew Griffiths - telling us some of the shader tech behind the game Encroach.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;There are still a few more slots available so submit your presentation idea to &lt;a href="mailto:SlotBooker@xna-uk.net"&gt;SlotBooker@xna-uk.net&lt;/a&gt; and receive a 12month Creators Club membership after your presentation. Feel free to submit a XNA question you'd like answered by someone else!  &lt;p&gt;Projector and sound system is all provided by the venue - just bring your laptop to present from and to take part in the LAN party!  &lt;p&gt;Register at: &lt;a href="http://xna.icentrum.co.uk"&gt;http://xna.icentrum.co.uk&lt;/a&gt;  &lt;p&gt;Arrival time: 09:30  &lt;p&gt;Kick off at: 10:00  &lt;p&gt;A light buffet and refreshments will be available - sponsored by Microsoft.&amp;nbsp; &lt;p&gt;Hard close at: 18:00  &lt;p&gt;Venue address:  &lt;blockquote&gt; &lt;p&gt;iCentrum  &lt;p&gt;Aston Science Park  &lt;p&gt;Faraday Wharf  &lt;p&gt;Birmingham&amp;nbsp;&amp;nbsp; B7 4BB&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Car parking is available underneath this building in a pay and display.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9483128" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPETeam/default.aspx">UKDPETeam</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UK/default.aspx">UK</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/UKDPE/default.aspx">UKDPE</category></item><item><title>1st XNA UK user group bar camp - registrations now open!</title><link>http://blogs.msdn.com/paulfo/archive/2009/02/23/1st-xna-uk-user-group-bar-camp-registrations-now-open.aspx</link><pubDate>Mon, 23 Feb 2009 14:51:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9441260</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9441260.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9441260</wfw:commentRss><description>&lt;p&gt;The first ever XNA UK user group bar camp is taking place on the 21st March at iCentrum in Birmingham. Book your attendance &lt;a href="http://xna.icentrum.co.uk/"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;There are 12 slots that can be pre-booked if you want to show off your latest XNA game for peer review, your latest coding/effect technique or even want to seek input on an XNA coding challenge you are facing! Each session lasts 20mins max (inc. setup).&lt;/p&gt; &lt;p&gt;You can pre-book a session or suggest a session topic by emailing &lt;a href="mailto:slotbooker@xna-uk.net"&gt;slotbooker@xna-uk.net&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The days agenda looks like this:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;09:30 Arrival and last chance to book a slot&lt;/p&gt; &lt;p&gt;10:00 Microsoft session on XNA and Community Games&lt;/p&gt; &lt;p&gt;11:00 Session time&lt;/p&gt; &lt;p&gt;15:00 LAN Party!!&lt;/p&gt; &lt;p&gt;18:00 Close&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;We will have the latest beta of Beatnik's Plain Sight to play during the lan party amongst some other games. This is also an excellent opportunity to use the iCentrum network for what they do best - testing! If you have an XNA multi-player game you'd like to test during the LAN party then please let us know by emailing &lt;a href="mailto:slotbooker@xna-uk.net"&gt;slotbooker@xna-uk.net&lt;/a&gt; so we can work the details out.&lt;/p&gt; &lt;p&gt;If you are new to or an old hand at XNA development there will be lots to discuss, learn and play with. &lt;a href="http://xna.icentrum.co.uk/"&gt;So book your place now!!!&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9441260" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/XNA/default.aspx">XNA</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Xbox/default.aspx">Xbox</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/XNAUK/default.aspx">XNAUK</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/BarCamp/default.aspx">BarCamp</category></item><item><title>Win 7 beta download stopping 10th Feb</title><link>http://blogs.msdn.com/paulfo/archive/2009/02/06/win-7-beta-download-stopping-10th-feb.aspx</link><pubDate>Fri, 06 Feb 2009 14:41:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9401839</guid><dc:creator>paulfo</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9401839.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9401839</wfw:commentRss><description>&lt;p&gt;The Windows 7 beta is only available until the 10&lt;sup&gt;th&lt;/sup&gt; February to download, &lt;a href="http://technet.microsoft.com/en-gb/windows/dd353205.aspx"&gt;so get your copy now&lt;/a&gt;! &lt;p&gt;MSDN and TechNet Subscribers will continue to have access to the Windows 7 Beta bits throughout the Windows 7 Beta phase. The above dates do not apply to MSDN and TechNet Subscribers.  &lt;p&gt;Product keys for the Windows 7 Beta will continue to be available. So if you have the Windows 7 Beta but didn’t get a product key you will be able to do so even after February 12th.  &lt;p&gt;To get more information on Windows 7, check out the following resources: &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-gb/windows/dd353205.aspx"&gt;Windows 7 TechCentre&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-gb/library/dd349348.aspx"&gt;Windows 7 Beta Deployment Guide&lt;/a&gt; &lt;p&gt;&lt;a href="http://social.technet.microsoft.com/Forums/en/category/w7itpro/"&gt;Windows 7 Forums&lt;/a&gt; &lt;p&gt;Visit the &lt;a href="http://blogs.technet.com/springboard/default.aspx"&gt;Springboard Series blog&lt;/a&gt; to keep an eye on all the announcements&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9401839" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>London: Pluralsight courses coming up</title><link>http://blogs.msdn.com/paulfo/archive/2009/01/23/london-pluralsight-courses-coming-up.aspx</link><pubDate>Fri, 23 Jan 2009 14:13:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9372493</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9372493.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9372493</wfw:commentRss><description>&lt;p&gt;Scott Deadrick dropped me a note regarding some up coming Pluralsight courses. Details below:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;We have two, high profile instructors teaching three courses in London in the coming months. I thought your customers might be interested. Volume discounts are available. Details are as follows: &lt;p&gt;Aaron Skonnard [1], Microsoft MVP and DevWeek UK 2009 keynote presenter, Double Feature: WCF+WF -- &lt;p&gt;&lt;a href="http://www.pluralsight.com/main/ilt/course.aspx?id=AP14-AP16"&gt;http://www.pluralsight.com/main/ilt/course.aspx?id=AP14-AP16&lt;/a&gt; &lt;p&gt;16-20 February &lt;p&gt;08:00-18:00 each day with breakfast and lunch provided. &lt;p&gt;&amp;nbsp; &lt;p&gt;Ian Griffiths [2], Microsoft MVP and DevWeek UK 2009 presenter, WPF Fundamentals -- &lt;a href="http://www.pluralsight.com/main/ilt/course.aspx?id=AP15"&gt;http://www.pluralsight.com/main/ilt/course.aspx?id=AP15&lt;/a&gt; &lt;p&gt;10-13 March &lt;p&gt;09:00-17:00 each day with breakfast provided. &lt;p&gt;&amp;nbsp; &lt;p&gt;Ian Griffiths, &lt;p&gt;Silverlight Fundamentals -- &lt;p&gt;&lt;a href="http://www.pluralsight.com/main/ilt/Course.aspx?id=AP19"&gt;http://www.pluralsight.com/main/ilt/Course.aspx?id=AP19&lt;/a&gt; &lt;p&gt;21-24 April &lt;p&gt;09:00-17:00 each day with breakfast provided. &lt;p&gt;&amp;nbsp; &lt;p&gt;As an added bonus, attendees will receive a 12-month subscription, at no additional cost, to the online version of the course they attend, available in the Pluralsight On-Demand! library [3].&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;[1] &lt;a href="http://www.pluralsight.com/main/instructor.aspx?name=Aaron%20Skonnard"&gt;http://www.pluralsight.com/main/instructor.aspx?name=Aaron%20Skonnard&lt;/a&gt; &lt;p&gt;[2] &lt;a href="http://www.pluralsight.com/main/instructor.aspx?name=Ian%20Griffiths"&gt;http://www.pluralsight.com/main/instructor.aspx?name=Ian%20Griffiths&lt;/a&gt; &lt;p&gt;[3] &lt;a href="http://www.pluralsight.com/main/olt/default.aspx"&gt;http://www.pluralsight.com/main/olt/default.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9372493" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/London/default.aspx">London</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Courses/default.aspx">Courses</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Pluralsight/default.aspx">Pluralsight</category></item><item><title>Seadragon Goes Mobile : Microsoft Live Labs</title><link>http://blogs.msdn.com/paulfo/archive/2008/12/15/seadragon-goes-mobile-microsoft-live-labs.aspx</link><pubDate>Mon, 15 Dec 2008 13:40:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9219893</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9219893.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9219893</wfw:commentRss><description>&lt;p&gt;Microsoft Live Labs has made available a mobile SeaDragon client for the iPhone you can get it from the iTunes App store. The application utilises the Sea Dragon platform to browse Deep Zoom images. Read more here: &lt;a href="http://livelabs.com/blog/seadragon-goes-mobile/"&gt;Seadragon Goes Mobile : Microsoft Live Labs&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9219893" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/paulfo/archive/tags/Microsoft+Live+Labs/default.aspx">Microsoft Live Labs</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/Sea+Dragon/default.aspx">Sea Dragon</category><category domain="http://blogs.msdn.com/paulfo/archive/tags/iPhone/default.aspx">iPhone</category></item><item><title>Geek father and son xmas activity</title><link>http://blogs.msdn.com/paulfo/archive/2008/12/13/geek-father-and-son-xmas-activity.aspx</link><pubDate>Sat, 13 Dec 2008 23:42:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9211380</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/paulfo/comments/9211380.aspx</comments><wfw:commentRss>http://blogs.msdn.com/paulfo/commentrss.aspx?PostID=9211380</wfw:commentRss><description>&lt;p&gt;&lt;img align="left" src="http://www.quasarelectronics.com/images/velleman/mk100.jpg" /&gt;While I was away travelling this week the postie delivered a &lt;a target="_blank" href="http://www.quasarelectronics.com/velleman/mk100-electronic-christmas-tree-kit.htm"&gt;Vellemen Mk100T&lt;/a&gt; - a small electronics kit ideal for that first soldering project. There is just enough soldering for your offspring to learn and practice their technique. All this for under &amp;#163;6!!&lt;/p&gt;  &lt;p&gt;I used a film from &lt;a target="_blank" href="http://filmsforlearning.org/View.aspx?video=155&amp;amp;viewType=Tag&amp;amp;filterValue=solder"&gt;Filmsforlearning.org&lt;/a&gt; to show my eldest son what soldering is and how to do it safely. The kit uses LEDs, Resistors, Capacitors and Transistors - so excellent intro to basic electronics.&lt;/p&gt;  &lt;p&gt;It was a simple and fun activity for the pair of us to complete this pretty little geek Xmas decoration. My son's proud of his first soldering project and I'm proud of my son! At 8yos his awesome :-)&lt;/p&gt;  &lt;p&gt;Recommended as a Christmas holidays activity!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9211380" width="1" height="1"&gt;</description></item></channel></rss>