<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Mike Francis' Weblog</title><subtitle type="html" /><id>http://blogs.msdn.com/mikefrancis/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/mikefrancis/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-12-10T22:31:07Z</updated><entry><title>Windows Mobile: Problem with Message Interception failing</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/11/11/windows-mobile-problem-with-message-interception-failing.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/11/11/windows-mobile-problem-with-message-interception-failing.aspx</id><published>2009-11-11T20:05:50Z</published><updated>2009-11-11T20:05:50Z</updated><content type="html">&lt;p&gt;&lt;p&gt;I’ve had a couple of clients that ran into a problem where their SMS Message interceptor would fail to fire. (For an introduction to this pretty cool technology see &lt;a href="http://msdn.microsoft.com/en-us/library/bb932385.aspx"&gt;here&lt;/a&gt;.) This was a hard to track down problem, because the interceptor would work on some devices, and the emulator, but not on a handful of devices. Because this worked on several devices, it seemed the code was without errors.  &lt;span&gt;...&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;&lt;b&gt;Note:&lt;/b&gt; Cross posted from &lt;a href="http://blog.mjfnet.com/Blog/"&gt;Mike Francis: My Mobile Home&lt;/a&gt;.
&lt;br /&gt;&lt;a href="http://blog.mjfnet.com/Blog/2009/11/11/WindowsMobileProblemWithMessageInterceptionFailing.aspx"&gt;Permalink&lt;/a&gt;
&lt;br /&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921018" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Windows Mobile 6.5 Start Screen PNG Icon Display problem</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/11/07/windows-mobile-6-5-start-screen-png-icon-display-problem.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/11/07/windows-mobile-6-5-start-screen-png-icon-display-problem.aspx</id><published>2009-11-07T18:42:57Z</published><updated>2009-11-07T18:42:57Z</updated><content type="html">&lt;p&gt;&lt;p&gt;Some developers are reporting a problem with the PNG icon not displaying in the Start screen.The usual symptom is that it does not show up immediately after installation but is seen after a device reset. This problem occurs if following the &lt;span&gt;...&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;&lt;b&gt;Note:&lt;/b&gt; Cross posted from &lt;a href="http://blog.mjfnet.com/Blog/"&gt;Mike Francis: My Mobile Home&lt;/a&gt;.
&lt;br /&gt;&lt;a href="http://blog.mjfnet.com/Blog/2009/11/06/WindowsMobile65StartScreenPNGIconDisplayProblem.aspx"&gt;Permalink&lt;/a&gt;
&lt;br /&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919108" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Information about the Marketplace Client and Custom UI</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/11/01/information-about-the-marketplace-client-and-custom-ui.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/11/01/information-about-the-marketplace-client-and-custom-ui.aspx</id><published>2009-11-01T22:31:29Z</published><updated>2009-11-01T22:31:29Z</updated><content type="html">&lt;p&gt;I just posted on the Windows Mobile Developers team blog: &lt;a href="http://windowsteamblog.com/blogs/wmdev/archive/2009/10/29/the-windows-marketplace-for-mobile-client-and-your-setup-code.aspx#comments"&gt;The Windows Marketplace for Mobile Client and your Setup code&lt;/a&gt;. This article reviews some potential ‘gotchas’ if you include custom UI in your setup DLL that is being called by the Marketplace client. The message is, please don’t add custom UI. Why? Because it makes the install experience less uniform and streamlined. If you really, really must add you custom UI, the information in this post should be useful to you.&lt;/p&gt; &lt;p&gt;Enjoy,&lt;/p&gt; &lt;p&gt;Mike&lt;/p&gt;&lt;b&gt;Note:&lt;/b&gt; Cross posted from &lt;a href="http://blog.mjfnet.com/Blog/"&gt;Mike Francis: My Mobile Home&lt;/a&gt;.
&lt;br /&gt;&lt;a href="http://blog.mjfnet.com/Blog/2009/11/01/InformationAboutTheMarketplaceClientAndCustomUI.aspx"&gt;Permalink&lt;/a&gt;
&lt;br /&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915957" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>New Blog: http://blog.mjfnet.com</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/10/29/new-blog-http-blog-mjfnet-com.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/10/29/new-blog-http-blog-mjfnet-com.aspx</id><published>2009-10-30T00:31:44Z</published><updated>2009-10-30T00:31:44Z</updated><content type="html">&lt;p&gt;I’ve setup my own blog in order to have more control over the presentation and since I develop, wanted to try embracing and extending a .Net based blogging platform. &lt;/p&gt;  &lt;p&gt;I’ll continue to cross-post here.&lt;/p&gt;  &lt;p&gt;Check out my blog at &lt;a href="http://blog.mjfnet.com"&gt;http://blog.mjfnet.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;Mike&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915042" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>How To: Creating Icons for Windows Mobile 6.5</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/07/25/how-to-creating-icons-for-windows-mobile-6-5.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/07/25/how-to-creating-icons-for-windows-mobile-6-5.aspx</id><published>2009-07-25T23:41:03Z</published><updated>2009-07-25T23:41:03Z</updated><content type="html">&lt;p&gt;Need to create PNG files for your Windows Mobile 6.5 applications? Check out my blog post on the main &lt;a href="http://windowsteamblog.com/blogs/windowsphone/default.aspx"&gt;Windows Mobile blog&lt;/a&gt; &lt;a href="http://windowsteamblog.com/blogs/windowsphone/archive/2009/07/24/creating-custom-icons-for-windows-mobile-6-5.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Mike&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9848608" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Windows Mobile 6.5 Web Browser Control: Enabling Selection support</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/07/21/windows-mobile-6-5-web-browser-control-enabling-selection-support.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/07/21/windows-mobile-6-5-web-browser-control-enabling-selection-support.aspx</id><published>2009-07-22T08:09:17Z</published><updated>2009-07-22T08:09:17Z</updated><content type="html">&lt;p&gt;In my previous post (&lt;a href="http://blog.mjfnet.com/Blog/2009/07/21/WindowsMobile65WebBrowserControlEnablingGestureSupport.aspx"&gt;Windows Mobile 6.5 Web Browser Control: Enabling Gesture support&lt;/a&gt;), I discussed how you can enable the built-in gesture support of the web browser control in Windows Mobile 6.5.&amp;nbsp; Basically you disable selection support when creating the control, and the gesture support is enabled. But what if you want to select within the control. It seems that selection and gestures are mutually exclusive. &lt;/p&gt; &lt;p&gt;Yes. You can’t select and use gestures at the same time. However you can switch into ‘selection mode’ when needed. The following video shows the how this is used in the Windows Mobile messaging application:&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; width: 425px; padding-right: 10px; display: inline; float: left; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:77e6abbf-749e-4abf-b888-00491f3ccfe8" class="wlWriterSmartContent"&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="12ccc3ce-9ed3-471a-b004-c3d85cf2177d"&gt; &lt;div&gt;&lt;embed height="355" type="application/x-shockwave-flash" width="425" src="http://www.youtube.com/v/a6BWZU0e1qU&amp;amp;hl=en"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In this video, I use gestures (flick) to scroll down the email message to locate a block of text I want to copy.&lt;/p&gt; &lt;p&gt;To get into ‘selection mode’, I press Menu | Make Selection. I then select the block of text, tap and hold to bring up the context menu and press Copy.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;To add this functionality to your Web Browser control application, we will need access to the controls COM interface. Fortunately the ‘&lt;a href="http://msdn.microsoft.com/en-us/library/bb159830.aspx"&gt;HTML control&lt;/a&gt;’ provides access to this via the &lt;a href="http://msdn.microsoft.com/en-us/library/bb415471.aspx"&gt;DTM_BROWSERDISPATCH&lt;/a&gt; message. The following code demonstrates how to access the IBrowser3::put_SelectionEnabled method to enable / disable ‘selection mode’:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;HRESULT SetSelectionMode(HWND hWndHtml, BOOL bSelect)&lt;br&gt;{&lt;br&gt;    LPDISPATCH pDisp=NULL;&lt;br&gt;    &lt;span style="color: #008000"&gt;// Get the dispatch interface&lt;/span&gt;&lt;br&gt;    SendMessage(hWndHtml, DTM_BROWSERDISPATCH , 0, (LPARAM) &amp;amp;pDisp);&lt;br&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (pDisp==NULL)&lt;br&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; -1;&lt;br&gt;    &lt;span style="color: #008000"&gt;// The put_SelectionEnabled method is included in the IBrowser3 interface&lt;/span&gt;&lt;br&gt;    IBrowser3 * pBrowser3;&lt;br&gt;    HRESULT hRes = pDisp-&amp;gt;QueryInterface(IID_IBrowser3, (LPVOID*)&amp;amp;pBrowser3);&lt;br&gt;    hRes = pBrowser3-&amp;gt;put_SelectionEnabled(bSelect ? VARIANT_TRUE: VARIANT_FALSE );&lt;br&gt;    pBrowser3-&amp;gt;Release();&lt;br&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt; hRes;&lt;br&gt;}&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;
&lt;p&gt;So where does the IBrowser3 interface come from? This was supported in an earlier version of the browser, but has since been deprecated. However, the control is still using this interface. The interface definition is located in &lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\PocketPC2003\Include\webvw.h&lt;/font&gt; 
&lt;p&gt;I copied this over to my project directory and renamed it: webwv2.h 
&lt;p&gt;You can download the BrowserWithGestures sample code project (VS2008) &lt;a href="http://cid-e91b74403814953e.skydrive.live.com/self.aspx/BrowserWithGestures/BrowserWithGestures.zip"&gt;here&lt;/a&gt;. 
&lt;p&gt;Note that the information above is not documented by Microsoft and is therefore not supported. (i.e. if you call Microsoft Developer Support you may be turned away since only documented / published APIs are supported.)&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:0767317B-992E-4b12-91E0-4F059A8CECA8:9b2ddb30-26b4-42a7-9b22-2f5187bd78eb" class="wlWriterSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/gestures" rel="tag"&gt;gestures&lt;/a&gt;, &lt;a href="http://del.icio.us/popular/windowsmobile" rel="tag"&gt;windowsmobile&lt;/a&gt;, &lt;a href="http://del.icio.us/popular/6.5" rel="tag"&gt;6.5&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9844393" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Windows Mobile 6.5 Web Browser Control: Enabling Gesture support</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/07/21/windows-mobile-6-5-web-browser-control-enabling-gesture-support.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/07/21/windows-mobile-6-5-web-browser-control-enabling-gesture-support.aspx</id><published>2009-07-22T08:08:26Z</published><updated>2009-07-22T08:08:26Z</updated><content type="html">&lt;p&gt;One of the most powerful controls in the Windows Mobile developer toolbox is the Web Browser control. With this control, you can create applications as simple as displaying HTML, to more complex apps that interact with the DOM manipulating elements, and fining / responding to events.&lt;/p&gt; &lt;p&gt;The introduction of touch and gesture support in Windows Mobile 6.5 has greatly improved the user experience. You can now intuitively flick and pan with your finger in most of the Microsoft applications and your own! Adding gesture support to your application is not trivial. See the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e"&gt;Windows Mobile 6.5 Developer Tool Kit&lt;/a&gt; (DTK) for more information.&amp;nbsp; Fortunately Microsoft has included gesture support in the Web Browser control for 6.5&lt;/p&gt; &lt;p&gt;There are actually two web browsers in Windows Mobile 6.5. One that is used by Internet Explorer Mobile and another that is used by applications hosting the Web Browser control. This post will focus on the later. &lt;/p&gt; &lt;p&gt;There are two ways to instantiate the web browser control. The first method uses a COM interface to create the control. (See the &lt;a href="http://msdn.microsoft.com/en-us/library/ms881532.aspx"&gt;miniPie&lt;/a&gt; SDK sample.) The second method hosts the control as a child of a &lt;a href="http://msdn.microsoft.com/en-us/library/ms854252.aspx"&gt;DISPLAYCLASS&lt;/a&gt; window (The docs refer to this as the ‘&lt;a href="http://msdn.microsoft.com/en-us/library/bb159830.aspx"&gt;HTML control&lt;/a&gt;’). In order to create this control with gesture support, you create it with the &lt;a href="http://msdn.microsoft.com/en-us/library/ms854252.aspx"&gt;HS_NOSELECTION&lt;/a&gt; flag. For example:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt; &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;hWndHtml = CreateWindow(TEXT(&lt;span style="color: #006080"&gt;"DISPLAYCLASS"&lt;/span&gt;), NULL,&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        WS_VISIBLE | HS_NOSELECTION,0 , 0, GetSystemMetrics(SM_CXSCREEN),&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        GetSystemMetrics(SM_CYSCREEN), hWnd, NULL, g_hInst, NULL);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;You can see this for yourself:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="http://msdn.microsoft.com/en-us/library/aa455117.aspx"&gt;Browse SDK sample&lt;/a&gt; 
&lt;li&gt;Add the HS_NOSELECTION flag (as shown above) to the DISPLAYCLASS CreateWindow call 
&lt;li&gt;Build and Run&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;In the video below, I changed the sample to load an HTML file that contained more than a screen full of data in order to force scrolling so that you can see the navigation via gestures (Flick and Pan):&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:b9f3760a-ccea-4907-94f3-a446debf9601" class="wlWriterSmartContent"&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="766ea540-5e0a-4d01-8135-4e0dd9bf2cfb"&gt;
&lt;div&gt;&lt;embed height="355" type="application/x-shockwave-flash" width="425" src="http://www.youtube.com/v/bzzdxRFXP3M&amp;amp;hl=en"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Additional Resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="http://blogs.msdn.com/marcpe/archive/2009/06/29/let-s-talk-about-touch-part1.aspx" href="http://blogs.msdn.com/marcpe/archive/2009/06/29/let-s-talk-about-touch-part1.aspx"&gt;Let’s Talk About Touch (Part1)&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee220920.aspx"&gt;Using Gestures in Windows Mobile 6.5&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://developers.windowsmobile.com"&gt;Windows Mobile Developers site&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Note that the information above is not documented by Microsoft and is therefore not supported. &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:0767317B-992E-4b12-91E0-4F059A8CECA8:dfe94aec-555b-474f-b92c-914d7aefa1d2" class="wlWriterEditableSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/gestures" rel="tag"&gt;gestures&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/windowsmobile" rel="tag"&gt;windowsmobile&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/6.5" rel="tag"&gt;6.5&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9844389" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Capture all Windows Mobile device keys using the AllKeys API</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/03/28/porting-gapi-keys-to-wm-6-1-and-6-5.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/03/28/porting-gapi-keys-to-wm-6-1-and-6-5.aspx</id><published>2009-03-28T21:49:15Z</published><updated>2009-03-28T21:49:15Z</updated><content type="html">&lt;p&gt;Norm Sohl points out in his post on the Windows Mobile Team blog that Microsoft is taking further steps to deprecate the GAPI APIs. Check it out &lt;a href="http://blogs.msdn.com/windowsmobile/archive/2009/05/06/just-say-no-to-gapi-what-you-need-to-know-about-allkeys-and-input-management.aspx"&gt;here&lt;/a&gt;. Norm’s post includes a native code sample. Some folks have asked if AllKeys() can be used from managed code. The answer is yes. Here is the C# P/Invoke signature:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;[DllImport(&lt;span class="str"&gt;&amp;quot;coredll.dll&amp;quot;&lt;/span&gt;, SetLastError = &lt;span class="kwrd"&gt;true&lt;/span&gt;)]
&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; AllKeys(&lt;span class="kwrd"&gt;bool&lt;/span&gt; bAllKeys);&lt;/pre&gt;

&lt;p&gt;Mike&lt;/p&gt;

&lt;p&gt;P.S. If you need to capture a specific key, see &lt;a href="http://msdn.microsoft.com/en-us/library/aa922958.aspx"&gt;RegisterHotKey().&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9516228" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Top Developer Tips for Windows Mobile Webcast Follow Up – Q&amp;A</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/01/23/top-developer-tips-for-windows-mobile-webcast-follow-up-q-a.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/01/23/top-developer-tips-for-windows-mobile-webcast-follow-up-q-a.aspx</id><published>2009-01-24T03:09:00Z</published><updated>2009-01-24T03:09:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US" mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US"&gt;&lt;IMG style="WIDTH: 55px; HEIGHT: 55px" class=medium title="MSDN Webcast" border=0 alt="MSDN Webcast" src="http://www.microsoft.com/events/images/highlights/icon_webcast_lrg.jpg" width=55 height=55 mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US" mce_src="http://www.microsoft.com/events/images/highlights/icon_webcast_lrg.jpg" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US"&gt;&lt;/A&gt;Here a list of the questions and answers asked during Wednesday’s Webcast: &lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;WILLIAM Asked:: In the real world there seems to be a much larger presence of iPhone and Blackberry touch screen mobile devices than Windows mobile touch screen devices. What are some suggestions for developing web applications that cover these devices that have the majority of the market as well as the Windows mobile devices? &lt;BR&gt;&lt;/EM&gt;Answer: Yes a good strategy is to develop for Standard (non-touch) since these apps will work equally well on touch devices – the reverse is not true.&amp;nbsp; Remember that non-touch devices are optimized for one-handed operation.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Hilary P Asked: Where are your DLLs? All I see is the text file ... are you writing/highlighting somewhere? &lt;BR&gt;&lt;/EM&gt;Answer: Open the &lt;A href="http://cid-e91b74403814953e.skydrive.live.com/self.aspx/Dumpmem/dumpmem.txt"&gt;dumpmem.txt&lt;/A&gt; file. Search for the following line: &lt;BR&gt;&lt;FONT size=5 face="Cordia New"&gt;1819F000&amp;nbsp; 1141000 F NA &lt;BR&gt;&lt;FONT size=2 face=Tahoma&gt;This is the largest free memory block and the bottom of the RAM DLL load area and the top of the program stack, resources, and heaps area. The DLLs are just below this line. The ‘Image’ lines belong to the DLLs.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;D.P. Asked: understand the need for signing the apps... but can still distribute unsigned apps if they do not need signing... right?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Answer: Yes this is a strength if the Windows Mobile platform in that you can distribute your applications however you see fit.&amp;nbsp; However, you run the risk of your application not being able to be installed, if the mobile operator has configured the device to disallow unsigned applications from installing or running. Additionally you will run into the problems (mentioned in the webcast) of having the user to respond to prompts during installation, or mysterious failures during silent (Enterprise) installs. Most application resellers require that you have your application signed (&lt;A href="http://www.handango.com/"&gt;Handango&lt;/A&gt;, &lt;A href="http://www.motricity.com/"&gt;Motricity&lt;/A&gt;) before they will carry it.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;D.P. Asked: Are there any free (not vendor locked) APIs for putting code in ROM?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Answer: Only OEMs, not ISVs, can change the device ROM. Technically when you install an application is it stored in flash (ROM) memory.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;EDUARDO Asked: nice all&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Answer: Thanks!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9373382" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Top Developer Tips Webcast Follow Up</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2009/01/15/top-developer-tips-webcast-follow-up.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2009/01/15/top-developer-tips-webcast-follow-up.aspx</id><published>2009-01-15T18:18:00Z</published><updated>2009-01-15T18:18:00Z</updated><content type="html">&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=581&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=59&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US" mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US"&gt;&lt;IMG style="WIDTH: 55px; HEIGHT: 55px" class=medium title="MSDN Webcast" border=0 alt="MSDN Webcast" src="http://www.microsoft.com/events/images/highlights/icon_webcast_lrg.jpg" width=55 height=55 mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US" mce_src="http://www.microsoft.com/events/images/highlights/icon_webcast_lrg.jpg" href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US"&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD width=520&gt;Thanks for attending my MSDN Webcast today &lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US" mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032400472&amp;amp;CountryCode=US"&gt;“Top Developer Tips for Windows Mobile”&lt;/A&gt;. As promised, here are a list of links mentioned in the talk: &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Web Applications: &lt;/P&gt;
&lt;P&gt;Download: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=1A7A6B52-F89E-4354-84CE-5D19C204498A&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=1A7A6B52-F89E-4354-84CE-5D19C204498A&amp;amp;displaylang=en"&gt;Windows Mobile 6.1.4 Emulator Images&lt;/A&gt; (Includes Internet Explorer Mobile 6!) &lt;BR&gt;Jim Wilson’s Blog: &lt;A title="Wading through the challenges of ASP.NET AJAX and Windows Mobile" href="http://www.pluralsight.com/community/blogs/jimw/archive/2007/09/18/48499.aspx" mce_href="http://www.pluralsight.com/community/blogs/jimw/archive/2007/09/18/48499.aspx"&gt;Wading through the challenges of ASP.NET AJAX and Windows Mobile&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Smart Client Applications: &lt;BR&gt;Virtual Memory: &lt;BR&gt;Download: &lt;A href="http://support.microsoft.com/kb/326164" mce_href="http://support.microsoft.com/kb/326164"&gt;Dumpmem&lt;/A&gt; &lt;BR&gt;Steve and Reed’s Blog: &lt;A href="http://blogs.msdn.com/hegenderfer/archive/2007/08/31/slaying-the-virtual-memory-monster.aspx" mce_href="http://blogs.msdn.com/hegenderfer/archive/2007/08/31/slaying-the-virtual-memory-monster.aspx"&gt;Slaying the Virtual Memory Monster&lt;/A&gt; and &lt;A href="http://blogs.msdn.com/hegenderfer/archive/2007/10/01/slaying-the-virtual-memory-monster-part-ii.aspx" mce_href="http://blogs.msdn.com/hegenderfer/archive/2007/10/01/slaying-the-virtual-memory-monster-part-ii.aspx"&gt;Slaying the Virtual Memory Monster - Part II&lt;/A&gt; &lt;BR&gt;Download: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C8174C14-A27D-4148-BF01-86C2E0953EAB&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C8174C14-A27D-4148-BF01-86C2E0953EAB&amp;amp;displaylang=en"&gt;Remote Performance Monitor&lt;/A&gt; &lt;BR&gt;Download: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d275348a-d937-4d88-ae25-28702c78748d&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d275348a-d937-4d88-ae25-28702c78748d&amp;amp;displaylang=en"&gt;Application Verifier&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Adapt Your App: &lt;BR&gt;MSDN: &lt;A title=http://msdn.microsoft.com/en-us/windowsmobile/bb264320.aspx href="http://msdn.microsoft.com/en-us/windowsmobile/bb264320.aspx" mce_href="http://msdn.microsoft.com/en-us/windowsmobile/bb264320.aspx"&gt;Adapt Your App&lt;/A&gt; &lt;BR&gt;Automation Script for loading application into emulators: &lt;A title="PowerShell and Quick UI Check for WM Applications" href="http://blogs.msdn.com/mikefrancis/archive/2007/12/10/powershell-and-quick-ui-check-for-wm-applications.aspx" mce_href="http://blogs.msdn.com/mikefrancis/archive/2007/12/10/powershell-and-quick-ui-check-for-wm-applications.aspx"&gt;PowerShell and Quick UI Check for WM Applications&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;A href="http://msdn.microsoft.com/windowsmobile/" mce_href="http://msdn.microsoft.com/windowsmobile/"&gt;MSDN Windows Mobile Developer Center&lt;/A&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for again for attending!&lt;/P&gt;
&lt;P&gt;Look for a posting of the webcast Q&amp;amp;A in my next blog post.&lt;/P&gt;
&lt;P&gt;Mike&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9320976" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Don't mess with Unlock Code sites - if you don't have to...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2008/10/16/don-t-mess-with-unlock-code-sites-if-you-don-t-have-to.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2008/10/16/don-t-mess-with-unlock-code-sites-if-you-don-t-have-to.aspx</id><published>2008-10-17T08:52:10Z</published><updated>2008-10-17T08:52:10Z</updated><content type="html">&lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="unlock.jpg" alt="unlock.jpg" src="http://ts4.images.live.com/images/thumbnail.aspx?q=2474940637351&amp;amp;id=892f77d42214122ea4cd64899e5e3a9e" width="160" height="106" /&gt;&lt;/p&gt;  &lt;p&gt;Want to use your Mobile Operator branded phone on a different network? You might not be able to. Why? Because many phones come &lt;a href="http://en.wikipedia.org/wiki/SIM_lock"&gt;SIM locked&lt;/a&gt;, preventing SIMs from other MOs from being used on those phones. &lt;/p&gt;  &lt;p&gt;John Dvorak on is twitter feed (&lt;a title="http://twitter.com/THErealDVORAK" href="http://twitter.com/THErealDVORAK"&gt;http://twitter.com/THErealDVORAK&lt;/a&gt;) asked, “Is there a good mobile phone site for unlock codes? I have a Nokia E-62 that needs its freedom.” This is a very popular issue for smart / cell phone owners these days. With a Windows Mobile SIM locked phone, like the &lt;a href="http://www.samsungmobileusa.com/blackjackII/"&gt;Blackjack II&lt;/a&gt;, if you insert a non-ATT SIM into the phone, you will see the following error message:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;quot;This phone can only be used with a specific SIM. Enter the unlock code or insert an approved SIM.&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So what can you do? Prior to the &lt;a href="http://arstechnica.com/news.ars/post/20061124-8280.html"&gt;ruling by the U.S. Copyright Office in November 0f 2007&lt;/a&gt;, you would have to use one of the third party web sites that sell unlock codes. However, the ruling allows cell phone users to legally break the software &amp;quot;lock&amp;quot; placed on their cell phones and move their phones from one carrier to another. This does not mean that the carriers &lt;em&gt;have&lt;/em&gt; to unlock your phone, it means they cannot prevent you from SIM unlocking your phone. Some Mobile Operators, like AT&amp;amp;T will unlock your phone even if you are not a customer of theirs. Let me tell you my experience…&lt;/p&gt;  &lt;p&gt;I am a T-Mobile customer and recently received an AT&amp;amp;T branded &lt;a href="http://www.samsungmobileusa.com/blackjackII/"&gt;Blackjack II&lt;/a&gt;. To my disappointment, when I put in my T-Mobile SIM, I received the error message above. I had read about this ruling and heard that some MOs will give you the unlock code if you ask them. So I called &lt;a href="http://www.wireless.att.com/about/contact-us/contact-us-phone.jsp"&gt;AT&amp;amp;T Customer Care&lt;/a&gt;, pressed ‘0’ when prompted to enter my AT&amp;amp;T phone number and was routed to an agent. I explained to the agent that I had a Blackjack II phone that I would like to unlock. They did ask for my AT&amp;amp;T phone number and I told them I was not a customer and therefore did not have one. To my pleasant surprise, they asked for my IMEI number which is on the box, and then gave me the corresponding unlock code. Cool! I entered the unlock code in response to the prompt above and saw the sweet T-Mobile tag line “Get More…” on the home screen. &lt;/p&gt;  &lt;p&gt;I would be interesting to know if this would work for removing the SIM lock from an &lt;a href="http://www.apple.com/iphone/"&gt;iPhone&lt;/a&gt; or the &lt;a href="http://www.t-mobileg1.com/"&gt;T-Mobile G-1&lt;/a&gt;. Also, if you wish to resell your phone after unlocking it, you can advertise this, making the phone a more attractive purchase.&lt;/p&gt;  &lt;p&gt;So long story short, before messing with unlock codes from web sites or other third parties, try calling the MO and ask them for the unlock code.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9002687" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry><entry><title>Microsoft Press - Visual Studio 2008 Free E-Book Offer</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2008/01/23/microsoft-press-visual-studio-2008-free-e-book-offer.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2008/01/23/microsoft-press-visual-studio-2008-free-e-book-offer.aspx</id><published>2008-01-23T23:50:51Z</published><updated>2008-01-23T23:50:51Z</updated><content type="html">&lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/MicrosoftPressVisualStudio2008FreeEBookO_C395/ms_linq_cvr_7.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="187" alt="ms_linq_cvr" src="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/MicrosoftPressVisualStudio2008FreeEBookO_C395/ms_linq_cvr_thumb_2.jpg" width="154" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://csna01.libredigital.com/?urvs5cn3s8"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="187" alt="ms_ajax_cvr" src="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/MicrosoftPressVisualStudio2008FreeEBookO_C395/ms_ajax_cvr_3.jpg" width="154" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://csna01.libredigital.com/?urvs5cn3s8"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="187" alt="ms_silverlight_cvr" src="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/MicrosoftPressVisualStudio2008FreeEBookO_C395/ms_silverlight_cvr_3.jpg" width="154" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Free book on LINQ, and teaser chapters on ASP.NET AJAX and Silverlight ... &lt;/p&gt;  &lt;p&gt;Click Here: &lt;a href="http://csna01.libredigital.com/?urvs5cn3s8"&gt;Microsoft Press - Visual Studio 2008 Free E-Book Offer&lt;/a&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d8fa2cd4-4d7e-4a25-ac3d-5a29b4b920c5" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Visual%20Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/books" rel="tag"&gt;books&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7201706" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author><category term="Books" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/Books/default.aspx" /><category term="Visual Studio" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>How to Override the 'Back' Key in your Web Browser Control Application</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2008/01/22/how-to-override-the-back-key-in-your-web-browser-control-application.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2008/01/22/how-to-override-the-back-key-in-your-web-browser-control-application.aspx</id><published>2008-01-22T23:38:01Z</published><updated>2008-01-22T23:38:01Z</updated><content type="html">&lt;p&gt;I just helped a customer with a problem he was having with this web application : when correcting an entry in an edit field by pressing the 'back' key, instead of the last character getting deleted and the cursor moving one space to the left, the application would quit. This was very frustrating since the same scenario works with Internet Explorer Mobile. His application is using the &lt;a href="http://msdn2.microsoft.com/en-us/library/bb158707.aspx"&gt;Web Browser control&lt;/a&gt; to display the web pages that make up his application. The Web Browser control allows you to use the full power of Internet Explorer Mobile, with the ability to provide your own menus and to capture and respond to events from the DOM. The application is running on Window Mobile Standard 6.0 and 5.0. This is an important point since Windows Mobile Professional devices do not have a 'back' key. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/HowtoOverridetheBackKeyinyourWebBrowserC_7E57/image_4.png"&gt;&lt;img height="180" alt="&amp;#39;Back&amp;#39; Key causing App to Quit?" src="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/HowtoOverridetheBackKeyinyourWebBrowserC_7E57/image_thumb_1.png" width="240" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'Back' Key causing App to Quit?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;So what is going on here? Why does 'back' in the Web Browser control not behave as it does in IE Mobile?&amp;#160; By default, the web browser control does not do any special handling of the back key. The default behavior of the back key is to activate the previously top level window in the Z-order. (His application was not actually quitting, it was just going to the bottom of the Z-order.) To duplicate the IE Mobile back key behavior you need to capture the 'back' key press, and forward it to the window that has the focus. Fortunately, the Windows Mobile SDK includes an API to do just that :&amp;#160; the &lt;a href="http://msdn2.microsoft.com/en-us/library/aa454997.aspx"&gt;SHCMBM_OVERRIDEKEY&lt;/a&gt; message and the API &lt;a href="http://msdn2.microsoft.com/en-us/library/aa455009.aspx"&gt;SHSendBackToFocusWindow&lt;/a&gt;(). I modified the SDK sample &lt;a href="http://msdn2.microsoft.com/en-us/library/bb158662.aspx"&gt;miniPie&lt;/a&gt; using the code below:&lt;/p&gt;  &lt;p&gt;LRESULT CMainWindow::OnCreate(UINT &lt;span style="color: rgb(0,128,0)"&gt;/*uMsg*/&lt;/span&gt;,&amp;#160; WPARAM &lt;span style="color: rgb(0,128,0)"&gt;/*wParam*/&lt;/span&gt;,&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LPARAM &lt;span style="color: rgb(0,128,0)"&gt;/*lParam*/&lt;/span&gt;, BOOL&amp;amp; &lt;span style="color: rgb(0,128,0)"&gt;/*bHandled*/&lt;/span&gt;)     &lt;br /&gt;{     &lt;br /&gt;...&lt;/p&gt;  &lt;pre class="code"&gt;    &lt;span style="color: rgb(0,128,0)"&gt;// For devices that have a back key (i.e. Smartphones),
&lt;/span&gt;    &lt;span style="color: rgb(0,128,0)"&gt;// override the back key since we have an edit control 
&lt;/span&gt;    CWindow(mbi.hwndMB).SendMessage(SHCMBM_OVERRIDEKEY,&lt;br /&gt;         VK_TBACK, MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY,&lt;br /&gt;         SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
...
    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; 1;  &lt;span style="color: rgb(0,128,0)"&gt;// Let the system set the focus
&lt;/span&gt;}

LRESULT CMainWindow::OnHotKey(UINT uMsg, WPARAM wParam, &lt;br /&gt;     LPARAM lParam, BOOL&amp;amp; &lt;span style="color: rgb(0,128,0)"&gt;/*bHandled*/&lt;/span&gt;)
{
    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (VK_TBACK == HIWORD(lParam)) &lt;span style="color: rgb(0,128,0)"&gt;// Smartphone-only
&lt;/span&gt;    {
        SHSendBackToFocusWindow(uMsg, wParam, lParam);
    }
    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; 0;
}&lt;/pre&gt;

&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:958a8577-d9f1-464b-b5fd-4903028ca924" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/windowsmobile" rel="tag"&gt;windowsmobile&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/web" rel="tag"&gt;web&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/smartphone" rel="tag"&gt;smartphone&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/standard" rel="tag"&gt;standard&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/web%20browser%20control" rel="tag"&gt;web browser control&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7201607" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author><category term="windows mobile" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/windows+mobile/default.aspx" /><category term="smartphone" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/smartphone/default.aspx" /><category term="web" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/web/default.aspx" /><category term="standard" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/standard/default.aspx" /><category term="web browser control" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/web+browser+control/default.aspx" /></entry><entry><title>How Innovative! InnovateOn for Windows Mobile Development</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2007/12/13/how-innovative-innovateon-for-windows-mobile-development.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2007/12/13/how-innovative-innovateon-for-windows-mobile-development.aspx</id><published>2007-12-14T00:10:25Z</published><updated>2007-12-14T00:10:25Z</updated><content type="html">&lt;p&gt;This is a great deal for Windows Mobile Developers: Free Certification Testing and Code Signing Vouchers. Free Technical Support. These are a couple of the benefits of the just launched &lt;strong&gt;Innovate On Windows Mobile &lt;/strong&gt;site: &lt;a href="http://www.innovateonwindowsmobile.com"&gt;http://www.innovateonwindowsmobile.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6764931" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author><category term="code signing" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/code+signing/default.aspx" /><category term="certification" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/certification/default.aspx" /><category term="innovateon" scheme="http://blogs.msdn.com/mikefrancis/archive/tags/innovateon/default.aspx" /></entry><entry><title>PowerShell and Quick UI Check for WM Applications</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mikefrancis/archive/2007/12/10/powershell-and-quick-ui-check-for-wm-applications.aspx" /><id>http://blogs.msdn.com/mikefrancis/archive/2007/12/10/powershell-and-quick-ui-check-for-wm-applications.aspx</id><published>2007-12-11T08:31:07Z</published><updated>2007-12-11T08:31:07Z</updated><content type="html">&lt;p&gt;Thanks to those of you that attended &lt;a href="http://blogs.msdn.com/hegenderfer"&gt;Reed&lt;/a&gt; and my presentation at the &lt;a href="http://microsoft.com/windowsmobile/partnersummit/default.mspx"&gt;Windows Mobile Partner Summit&lt;/a&gt;. As promised, here is the PowerShell Script used in the demo. &lt;a href="http://cid-e91b74403814953e.skydrive.live.com/self.aspx/PowerShell%20and%20WM%20Emulator/emulator.ps1"&gt;Click Here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Here is a quick summary of the purpose of this script and how to run it.&lt;/p&gt;  &lt;p&gt;Adapt your App: As you know, WM Professional now supports five different screen resolutions and three different DPIs. WM Standard supports two different screen resolutions and two different DPIs. (&lt;a href="http://msdn2.microsoft.com/en-us/windowsmobile/bb264320.aspx"&gt;more info&lt;/a&gt;) Professional also supports dynamic screen rotation. The types of screens supported will very likely change in the future. Case in point: the &lt;a href="http://www.htc.com/product/03-product_s710.htm"&gt;HTC s720&lt;/a&gt; (Standard) is the first Standard device to support dynamic screen rotation!&lt;/p&gt;  &lt;p&gt;So how can you quickly test your application on several different screen types simultaneously?&amp;#160; You can leverage the Device Emulator Manager or the CoreCon .NET Class: &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.smartdevice.connectivity(VS.90).aspx"&gt;Microsoft.SmartDevices.Connectivity&lt;/a&gt;, to test the application. The script here uses the later. For an exhaustive and informative discussion of the Device Emulator Manager, check out Jim Wilson's MSDN article &lt;a href="http://msdn2.microsoft.com/en-us/library/bb887543.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;1. The script simply loads three emulator types:&lt;/p&gt;  &lt;p&gt;240 x 320 @ 96 DPI, 480 x 640 @ 192 DPI (VGA), and 240 x 240 @ 96 DPI (Square)&lt;/p&gt;  &lt;p&gt;I chose these to give good representation of the major screen types available. You could load more, but keep in mind each emulator image takes about 250 MB to load.&lt;/p&gt;  &lt;p&gt;2. The script then waits for each image to connect and then copies the executable from the desktop to the emulator.&lt;/p&gt;  &lt;p&gt;3. The script then launches the application on the emulator.&lt;/p&gt;  &lt;p&gt;4. After the application launches, try pressing the Calendar button to invoke the screen rotation.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How does your app look? How can you fix it? &lt;/strong&gt;Another great Jim Wilson blog post can help &lt;a href="http://www.pluralsight.com/blogs/jimw/archive/2006/05/26/25473.aspx"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/PowerShellandQuickUICheckforWMApplicatio_1050C/Capture.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="647" alt="Capture" src="http://blogs.msdn.com/blogfiles/mikefrancis/WindowsLiveWriter/PowerShellandQuickUICheckforWMApplicatio_1050C/Capture_thumb.jpg" width="881" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Can you tell why this application does not display properly in the VGA emulator? &lt;/strong&gt;(The source code can be found in the sample &lt;a href="http://msdn2.microsoft.com/en-us/library/ms881401.aspx"&gt;PocketOutlookSample&lt;/a&gt; that ships with the WM6 SDK.) &lt;/p&gt;  &lt;p&gt;To use this script you will need:&lt;/p&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&amp;amp;DisplayLang=en"&gt;Windows Mobile 5.0 or 6 SDKs&lt;/a&gt; &lt;/li&gt;  &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/926139"&gt;Windows PowerShell 1.0&lt;/a&gt;     &lt;p&gt;To run the script, from the command line:&lt;/p&gt;    &lt;p&gt;powershell .\emulator.ps1 [DeviceTargetDirectory\ApplicationName.exe]&lt;/p&gt;    &lt;p&gt;the device application should be in the same directory as the script.&lt;/p&gt;    &lt;p&gt;Thanks Loke Uei Tan for the inspiration &lt;a href="http://blogs.msdn.com/lokeuei/archive/2007/09/26/device-emulator-and-the-windows-powershell.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6731392" width="1" height="1"&gt;</content><author><name>mjf</name><uri>http://blogs.msdn.com/members/mjf.aspx</uri></author></entry></feed>