<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/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>Arik Poznanski&amp;#39;s Blog : CodePlex, Windows 7</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/tags/CodePlex/Windows+7/default.aspx</link><description>Tags: CodePlex, Windows 7</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Using Windows Phone As Windows 7 Accelerometer Sensor</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx</link><pubDate>Sat, 13 Aug 2011 15:54:20 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:883702</guid><dc:creator>arik</dc:creator><slash:comments>191</slash:comments><description>&lt;p&gt;I just had a cool idea! (actually I had it like 6 month ago, but bear with me).&lt;/p&gt;  &lt;p&gt;My idea involves mixing some of the features in Windows 7 with some of the features in Windows Phone 7, to create a glorious mix!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_6105F6E1.png"&gt;&lt;img style="margin:0px auto;display:block;float:none;" title="image" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_25DE2CE4.png" width="640" height="382" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Windows 7&lt;/h3&gt;  &lt;p&gt;One of the new features in Windows 7 is the &lt;a href="http://msdn.microsoft.com/en-us/library/dd318953(VS.85).aspx"&gt;Sensor API&lt;/a&gt; which provides a standard interface for accessing sensors of various types, like &lt;font style="background-color:#ffff00;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;accelerometer&lt;/strong&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;, etc..&lt;/p&gt;  &lt;p&gt;I &lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/06/29/using-windows-7-light-sensor-in-your-application.aspx"&gt;wrote&lt;/a&gt; in the past about how you can consume this API from a C# application using &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack"&gt;Windows API Code Pack&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Windows Phone 7&lt;/h3&gt;  &lt;p&gt;Windows Phone 7 comes with a few sensors out of the box, among them: &lt;strong&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;accelerometer!&lt;/strong&gt;&lt;strong&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Idea&lt;/h3&gt;  &lt;p&gt;What if we use Windows Phone 7 accelerometer sensor as a standard device on Windows 7?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Roadmap&lt;/h3&gt;  &lt;p&gt;So how can we accomplish that? let&amp;#39;s break the idea to steps:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 1&lt;/u&gt;: Create a software driver &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I’ll start with creating a dummy software driver. This driver will implement what&amp;#39;s necessary to be a standard Windows 7 Accelerometer sensor, but at this stage will simply return constant data.&lt;/p&gt;  &lt;p&gt;In order to write a sensor driver for Windows 7 I’ll need to use &lt;a href="http://www.microsoft.com/whdc/driver/wdf/umdf.mspx"&gt;User Mode Driver Framework&lt;/a&gt; (UMDF), a COM-like, C++ framework for writing user-mode drivers in Windows 7.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 2&lt;/u&gt;: Transfer Windows Phone 7 sensor data into the PC&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The next step is to find a way to transfer the accelerometer data from a Windows Phone device into the PC. One possible way of doing this implementing a local WCF service on the desktop that the Phone will keep calling with accelerometer data. This will require an application to run on the phone to keep the data flowing.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 3&lt;/u&gt;: Consume the WCF service from the phone&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Using the service from the previous step we can now consume it in a simple Windows Phone application that all it does is getting the accelerometer sensor data using the phone API and call the WCF service with the latest data.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 4&lt;/u&gt;: Make the software driver consume the Windows Phone 7 data&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now that I have a software driver that returns dummy accelerometer data and a way to get real accelerometer data from the Windows Phone, all I need to do is connecting the dots and make my accelerometer driver return the real data. To do this I&amp;#39;ll need some kind of inter process communication to transfer the data from the WCF service to the driver.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Long Story Short…&lt;/h3&gt;  &lt;p&gt;I present to you the &lt;strong&gt;Windows Phone Accelerometer Driver for Windows 7&lt;/strong&gt;!&lt;/p&gt;  &lt;p&gt;The full source code for this project can be found on the &lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;a href="http://wp7accelerometer.codeplex.com/"&gt;CodePlex project site&lt;/a&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Some Implementation Details&lt;/h3&gt;  &lt;p&gt;The actual driver was fairly easy to implement since I used the CodeProject article &amp;quot;&lt;a href="http://www.codeproject.com/KB/system/wiisensor.aspx"&gt;Writing a Sensor Driver for the Wiimote on Windows 7&lt;/a&gt;&amp;quot; by &lt;a href="http://blogorama.nerdworks.in/entry-WritingasensordriverfortheWiim.aspx"&gt;Rajasekharan Vengalil&lt;/a&gt; as a base for my Windows Phone 7 driver. You can find the driver source code in the project named &lt;strong&gt;WP7AccelerometerDriver&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;As mentioned earlier I&amp;#39;ve implemented a simple local WCF service for transferring the accelerometer data from the phone to the driver. You can find the service source code in the project named &lt;strong&gt;WP7AccelerometerService&lt;/strong&gt;. The service uses named pipes to communicate with the driver.&lt;/p&gt;  &lt;p&gt;The phone application is a very simple one that consumes the WCF service and call it whenever a new accelerometer value is available. You can find its source code in the project named &lt;strong&gt;WP7AccelerometerClient&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Finally, if you want to check the functionality of the accelerometer driver you can use either the &lt;strong&gt;SensorDiagnostics &lt;/strong&gt;project or the more fun &lt;strong&gt;PlaneDemo&lt;/strong&gt; project, which I borrowed for &lt;a href="http://weblogs.asp.net/sergeyzwezdin/archive/2009/07/01/windows-7-sensor-and-location-platform-sensors-programming-part-2-3.aspx"&gt;Sergey Zwezdin blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;How to Install?&lt;/h3&gt;  &lt;p&gt;1. Download and extract project binaries or source from the &lt;a href="http://wp7accelerometer.codeplex.com/releases/view/71672"&gt;CodePlex project site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;2. Open &lt;strong&gt;CMD&lt;/strong&gt; &lt;u&gt;as administrator &lt;/u&gt;&lt;/p&gt;  &lt;p&gt;3. Go to the folder &lt;strong&gt;\Driver\Install\&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;4. According to the bitness of your OS Run &lt;strong&gt;install_wp7_driver_32bit.bat &lt;/strong&gt;or &lt;strong&gt;install_wp7_driver_64bit.bat&lt;/strong&gt; to install the driver. &lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_25322462.png"&gt;     &lt;br /&gt;      &lt;br /&gt;&lt;/a&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_25322462.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_71799236.png" width="600" height="490" /&gt;&lt;/a&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5. When the following notification appears, select &amp;quot;&lt;strong&gt;Install this driver software anyway&lt;/strong&gt;&amp;quot;: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image11_1F04C4AD.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image11_thumb_250BC5AE.png" width="600" height="344" /&gt;&lt;/a&gt;     &lt;br /&gt;This should take around 1-2 minutes to complete. &lt;/p&gt;  &lt;p&gt;6. Enable installed Sensor in the &lt;strong&gt;Control Panel&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_5B6F12A5.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_18336EAB.png" width="600" height="374" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;7. Run the WCF service from &lt;u&gt;as administrator&lt;/u&gt;. If you run it from Visual Studio, make sure you ran Visual Studio as administrator.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_7191B5D2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_7B963130.png" width="600" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;8. Run the Windows Phone client on a real device while connected to the PC and enter your PC (LAN) IP &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_574126E1.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_23F4C7AB.png" width="330" height="600" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;9. That&amp;#39;s it! you can now sit back and enjoy the ride using the &lt;strong&gt;PlaneDemo&lt;/strong&gt; application or &lt;strong&gt;SensorDiagnostics&lt;/strong&gt;, or any other software that uses the accelerometer sensor. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_0DAE868C.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_7E8781E4.png" width="500" height="600" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_6EF44A48.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_05C2F5F8.png" width="600" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;How to Uninstall? &lt;/h3&gt;  &lt;p&gt;If you want to uninstall the driver simply go to the &lt;strong&gt;Device Manager&lt;/strong&gt;, select the &amp;quot;&lt;strong&gt;WP7 Accelerometer Sensor&lt;/strong&gt;&amp;quot; device from the &lt;strong&gt;Sensors &lt;/strong&gt;category, select uninstall from the context menu and &lt;strong&gt;make sure you mark the checkbox to delete the driver&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_32C7BCF9.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px auto;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_1B005FC6.png" width="466" height="287" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Final Note&lt;/h3&gt;  &lt;p&gt;I&amp;#39;ve seen the project works both on a real device and using the phone emulator, however it&amp;#39;s not a one-click install. I expect users to have problems with the installation. If you encounter some problems, please post on the &lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&lt;a href="http://wp7accelerometer.codeplex.com/discussions"&gt;CodePlex project site forum&lt;/a&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt; page and I&amp;#39;ll do my best to help. &lt;/p&gt;  &lt;p&gt;Also, if you want to improve the source code (maybe adding GPS support?) or the installation procedure, I&amp;#39;ll be happy to include your improvements and even include you as one of the project members on CodePlex.&lt;/p&gt;  &lt;p&gt;This project was pure fun since it combines many useful technologies to create real value. Among the technologies you can find: C++, COM, UMDF, C#, WCF, WP7, etc..&lt;/p&gt;  &lt;p&gt;That&amp;#39;s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2011/08/13/using_2D00_windows_2D00_phone_2D00_as_2D00_windows_2D00_7_2D00_accelerometer_2D00_sensor.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=883702" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/COM/default.aspx">COM</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/CodePlex/default.aspx">CodePlex</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Accelerometer/default.aspx">Accelerometer</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/UMDF/default.aspx">UMDF</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Driver/default.aspx">Driver</category></item><item><title>Windows Ribbon for WinForms: FAQ</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2011/07/06/windows-ribbon-for-winforms-faq.aspx</link><pubDate>Wed, 06 Jul 2011 05:46:56 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:849678</guid><dc:creator>arik</dc:creator><slash:comments>8</slash:comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.microsoft.co.il/blogs/arik/archive/2011/07/06/windows-ribbon-for-winforms-faq.aspx" scrolling="no" frameborder="0" style="border:none;width:130px;height:80px;"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;While working on the Windows Ribbon Framework I’ve came across many repeating questions from users. So I’ve decided to write a Frequently Asked Questions post regarding the &lt;a href="http://msdn.microsoft.com/en-us/library/dd371191(v=vs.85).aspx"&gt;Windows Ribbon Framework&lt;/a&gt; and its wrapper &lt;a href="http://windowsribbon.codeplex.com/"&gt;Windows Ribbon for WinForms&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The questions were collected from the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsribbondevelopment/threads"&gt;Windows Ribbon Development forum&lt;/a&gt;, &lt;a href="http://windowsribbon.codeplex.com/discussions"&gt;Windows Ribbon for WinForms Discussions&lt;/a&gt; and from comments posted on &lt;a href="http://blogs.microsoft.co.il/blogs/arik"&gt;my blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What are the supported platforms for the Windows Ribbon Framework?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The Windows Ribbon Framework is only supported on:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows 7 &lt;/li&gt;    &lt;li&gt;Windows Vista with Service Pack 2 (SP2) and Platform Update for Windows Vista &lt;/li&gt;    &lt;li&gt;Windows Server 2008 R2 &lt;/li&gt;    &lt;li&gt;windows Server 2008 with SP2 and Platform Update for Windows Server 2008 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Specifically, Windows XP is not supported. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What are the prerequisites for using the Windows Ribbon Framework or the Ribbon for WinForms project?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You need to work on a Windows 7 or Vista machine. And you need to install &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=71DEB800-C591-4F97-A900-BEA146E4FAE1&amp;amp;displaylang=en"&gt;Windows 7 SDK&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Is the Windows Ribbon Framework free?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Yes, it’s free. It comes as part of the operating system (Vista and up).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What is the licensing of the Windows Ribbon Framework?      &lt;br /&gt;Is the license the same as other Windows controls or it is Office 2007?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Just like Windows common controls, there are no unusual licensing requirements involved when using the Windows Ribbon framework in your applications. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Is it possible to use the Windows Ribbon Framework in WinForms application?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Of course. Simply use the &lt;a href="http://windowsribbon.codeplex.com/"&gt;Windows Ribbon for WinForms&lt;/a&gt; library. The library includes numerous samples in C# and VB.NET.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How can I use the ribbon in a WPF application?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Well, you can’t. Not using the &lt;a href="http://msdn.microsoft.com/en-us/library/dd371191(v=vs.85).aspx"&gt;Windows Ribbon Framework&lt;/a&gt;. If you need a WPF ribbon check out &lt;a href="http://msdn.microsoft.com/en-us/library/ff799534.aspx"&gt;Microsoft Ribbon for WPF&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How many ribbon controls are out there?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Lot’s. Windows Ribbon Framework, MFC version, WPF version, Office version, SharePoint version, and many more 3rd party ribbon controls.&lt;/p&gt;  &lt;p&gt;The &amp;quot;Windows Ribbon Framework&amp;quot; is a ribbon control provided with Windows 7 (and Windows Vista via platform update), intended to be used by native C++ developers (WIN32). It is based on COM and has a &lt;a href="http://windowsribbon.codeplex.com/"&gt;.NET WinForms wrapper&lt;/a&gt;.     &lt;br /&gt;The syntax of the ribbon XML is NOT XAML, but similar. (&amp;quot;XAML-like&amp;quot;). &lt;/p&gt;  &lt;p&gt;There is another ribbon control for MFC developers provided with Visual Studio 2008 SP1. This ribbon follows the MFC guidelines. &lt;/p&gt;  &lt;p&gt;There is a version of a &lt;a href="http://msdn.microsoft.com/en-us/library/ff799534.aspx"&gt;WPF Ribbon&lt;/a&gt; control that is provided by Microsoft for WPF developers.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Does Windows Ribbon Framework Support MDI?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The Windows Ribbon Framework does not support MDI windows and so is the ribbon wrapper library.    &lt;br /&gt;A Ribbon framework application must implement a custom MDI mechanism to support MDI functionality.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Can I change the ribbon in runtime? (i.e. add elements, change tabs, etc.)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Yes, you can dynamically add items to a both command and item galleries.    &lt;br /&gt;For more information, see the Working with Galleries topic at &lt;a href="http://msdn.microsoft.com/en-us/library/dd742868(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd742868(VS.85).aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;You can change the tabs by using Application Modes as described in the MSDN article at &lt;a href="http://msdn.microsoft.com/en-us/library/dd940486(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd940486(VS.85).aspx&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;My ribbon-enabled application crash when I close it. Any suggestions?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Yes, If you close the application by clicking a ribbon button, you are destroying the ribbon, while you use it. This cause the crash.&lt;/p&gt;  &lt;p&gt;Either run the close method using a timer, or don’t close the application using a ribbon button.&lt;/p&gt;  &lt;p&gt;If you are using C++ you can simply use PostMessage instead of SendMessage to post the quit message.&lt;/p&gt;  &lt;p&gt;Check the following blog post for more details: &lt;a title="Crash while closing application that uses Windows Ribbon Framework" href="http://blogs.microsoft.co.il/blogs/arik/archive/2010/04/14/crash-while-closing-application-that-uses-windows-ribbon-framework.aspx"&gt;Crash while closing application that uses Windows Ribbon Framework&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What are the requirements for the ribbon images?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ribbon images must be in 32bpp BMP file format. no PNG and no 24bpp BMP.    &lt;br /&gt;However they don&amp;#39;t really have a resolution constraint, they have recommendations     &lt;br /&gt;but if you provide images of the wrong size the framework will just resize them to fit.     &lt;br /&gt;To convert your images to 32bpp BMP you can use the tool presented in &lt;a title="How to convert an image to 32 bit BMP" href="http://blogs.microsoft.co.il/blogs/arik/archive/2009/10/04/how-to-convert-an-image-to-32-bit-bmp.aspx"&gt;How to convert an image to 32 bit BMP&lt;/a&gt;.     &lt;br /&gt;You can find more details on working with images in a ribbon application &lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2009/10/24/windows-ribbon-for-winforms-part-10-working-with-images.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Where can I find Windows 7 Ribbon XML schema file?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Checkout the UICC.xsd file in the folder: &amp;lt;&amp;lt;C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin&amp;gt;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Where can I find more details on the Windows Ribbon for WinForms project?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A: In my blog. I’ve written dozens of blog posts describing the different aspects of the Windows Ribbon Framework and its wrapper library. Find them all here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Ribbon/default.aspx" href="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Ribbon/default.aspx"&gt;http://blogs.microsoft.co.il/blogs/arik/archive/tags/Ribbon/default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=849678" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7+SDK/default.aspx">Windows 7 SDK</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/CodePlex/default.aspx">CodePlex</category></item><item><title>Windows Ribbon for WinForms v2.6 Released</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2010/11/08/windows-ribbon-for-winforms-v2-6-released.aspx</link><pubDate>Mon, 08 Nov 2010 07:53:20 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:738816</guid><dc:creator>arik</dc:creator><slash:comments>6</slash:comments><description>&lt;p&gt;The &lt;strong&gt;Windows Ribbon for WinForms&lt;/strong&gt; is a ribbon control designed to be used with WinForms applications. &lt;/p&gt;  &lt;p&gt;Yea, I know, WinForms is so last year, but it turns out people still use it and keep asking for features and bug fixes..&lt;/p&gt;  &lt;p&gt;Anyway, it is a managed wrapper around &lt;a href="http://msdn.microsoft.com/en-us/library/dd316910(VS.85).aspx" target="_blank"&gt;Windows Ribbon Framework&lt;/a&gt;, provided by Microsoft in Windows 7 and Vista.     &lt;br /&gt;More details on this project can be found in the project site: &lt;a href="http://windowsribbon.codeplex.com"&gt;windowsribbon.codeplex.com&lt;/a&gt; .&lt;/p&gt;  &lt;h3&gt;So, what’s new?&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Simplified use for the Ribbon control.      &lt;br /&gt;Simply drag and drop the ribbon control into your form and you’re good to go.       &lt;br /&gt;no implementing IRibbonForm, no handling sizing, no calls to InitFramework and DestroyFramework. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Localization support added &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Solution updated to .NET 4 and Visual Studio 2010 &lt;/li&gt;    &lt;li&gt;RibbonGenerator custom tool added &lt;/li&gt;    &lt;li&gt;Added ability to specify keyboard shortcuts in XML format &lt;/li&gt;    &lt;li&gt;and a few bugs where solved (specifically, the one with the galleries) &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;What About the Samples?&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;All&lt;/strong&gt; of the 18 samples have been updated to use the new infrastructure.&lt;/p&gt;  &lt;p&gt;Not only that, there is a new sample, “19-Localization”, that shows how to use the new localization support with the ribbon control.&lt;/p&gt;  &lt;p&gt;You can find more details on the localization support and RibbonGenerator custom tool in &lt;a href="http://www.codeproject.com/KB/toolbars/RibbonLocalization.aspx" target="_blank"&gt;this&lt;/a&gt; article on CodeProject.&lt;/p&gt;  &lt;h3&gt;Anything else you should know?&lt;/h3&gt;  &lt;p&gt;Just make sure you have compiled and installed RibbonGenerator. A setup project is part of the package. This is required for the generation of the ribbon DLLs.&lt;/p&gt;  &lt;h3&gt;Thanks&lt;/h3&gt;  &lt;p&gt;I would like to thank &lt;a href="http://www.codeproject.com/Members/Bernhard-Elbl" target="_blank"&gt;Bernhard Elbl&lt;/a&gt; for his great contribution to the project. Bernhard is now part of the project development team on codeplex. &lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/11/08/windows-ribbon-for-winforms-v2-6-released.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/11/08/windows-ribbon-for-winforms-v2-6-released.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Submit?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/11/08/windows-ribbon-for-winforms-v2-6-released.aspx"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://blogs.microsoft.co.il/blogs/arik/archive/2010/11/08/windows-ribbon-for-winforms-v2-6-released.aspx" style="border:0px;" /&gt;&lt;/a&gt; &lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=172641" rel="tag" style="display:none;"&gt;CodeProject&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=738816" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/.NET+4/default.aspx">.NET 4</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/CodePlex/default.aspx">CodePlex</category></item></channel></rss>