<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-213091325940153577</id><updated>2011-11-14T18:10:00.222Z</updated><category term='Windows compact 7'/><category term='Direct Insight'/><category term='KITL_DEBUGMSG'/><category term='Windows CE 7.0'/><category term='skiing video mixing smartphone pocketpc'/><category term='KITL_RETAILMSG'/><category term='MFC Memory Leak RemoveAll EVC CPtrArray'/><category term='CE Video Driver'/><category term='bib hash #include include wince'/><category term='UI'/><category term='Embedded Workshops'/><category term='SD Card'/><category term='windows embedded'/><category term='backlight power smartphone'/><category term='Wince 7.0 CTP technology preview windows embedded compact'/><category term='makeimg activedevice wince nk.bin'/><category term='ESS&apos;08'/><category term='Vista ActiveSync Device Center'/><category term='PB multi cpu dual core platform builder'/><category term='Bluetooth signal strength'/><category term='IP Network Routing'/><category term='Windows CE 6.0; Windows CE Books'/><category term='10 11 Feb'/><category term='ce6.0'/><category term='windows mobile winmo lock screen 6.5 custom notifications'/><category term='profiling performance analysis windows ce thread getthreadtimes snapshot'/><category term='Windows Mobile Smartphone'/><category term='waitforsingleobject createprocess createthread processes running'/><category term='Smartphone Unlocking Policies'/><category term='user interface'/><category term='missing ordinal windows ce 6.0'/><category term='embedded device'/><category term='bluetooth stack windows mobile broadcom'/><category term='windows ce registry change notifications kernel data passing'/><category term='InputDebugCharW OEMReadDebugByte wince 6.0'/><category term='WES 7'/><category term='alphablend alpha pixel transparent'/><category term='windows mobile keep awake background processing stopping suspend'/><category term='Embedded Partner'/><category term='hook keyboard windows embedded ce'/><category term='ce6.0 oalioctl kerneliocontrol'/><category term='windows ce compression bin execute in place'/><category term='SDHC'/><category term='windows ce windows embedded 2010 embedded markey study from ee times'/><category term='windows ce wince setevent seteventdata martin thompson'/><category term='cellcore'/><category term='backlight idle lock home screen'/><category term='ByteSnap'/><category term='console command line windows ce serial'/><category term='cellcore windows ce 6.0 tapi'/><category term='RNDIS connection active sync windows mobile device center problems'/><category term='EVC'/><category term='NLED vibrate windows mobile'/><category term='cetk ce6.0 connection issues arm windows ce'/><category term='Embedded Standard'/><category term='XML'/><category term='bluetooth broadcom micosoft pocketpc smartphone'/><category term='embedded shows'/><category term='Windows CE Gold Partner'/><category term='Image Factory windows Mobile windows CE'/><category term='SetViewPortExt SetWindowExt  Windows CE 7.0'/><category term='farnborough'/><category term='XPe'/><category term='bluetooth spp sockets gps'/><category term='CE6 PB6'/><category term='SetMapMode'/><category term='Windows Embedded Compact'/><category term='cerunappattime setevent createevent waitforsingleobject windows ce wince'/><category term='setupcomm serial buffer size unsupported'/><category term='Smartphone Signing Unlocking'/><category term='Mike Hall'/><category term='Windows Mobile WinMo Smartphone'/><category term='DSHOW debug windows CE'/><category term='Windows CE 5.0 QFE'/><category term='Windows  ce 6.0 R3'/><category term='Windows Mobile WinMo Smartphone SIM IMEI Country'/><category term='Windows CE'/><category term='southern electronics show'/><category term='WES'/><category term='DShow custom filter windows ce filtergraph'/><title type='text'>CE4ALL Windows CE Team Blog</title><subtitle type='html'>Hints, tips and discoveries about all versions of Windows CE</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Blog admin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>75</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4611797250892396729</id><published>2011-05-10T15:27:00.013Z</published><updated>2011-05-10T16:32:37.088Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE 7.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows compact 7'/><title type='text'>Windwos Embedded Compact 7</title><content type='html'>Direct Insight was recently involved in running a Windows Embedded Compact 7 event at the UK Microsoft Campus. From which an article has been written including information and quotes from me and colleagues.&lt;br /&gt;&lt;br /&gt;You can find the article here at &lt;a href="http://www.mtemag.com/ArticleItem.aspx?Cont_Title=Real-Time+Operating+Systems%3a+Take+seven"&gt;http://www.mtemag.com/ArticleItem.aspx?Cont_Title=Real-Time+Operating+Systems%3a+Take+seven&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please have a read and let me know what you think.&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;gt; Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4611797250892396729?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4611797250892396729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4611797250892396729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4611797250892396729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4611797250892396729'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2011/05/windwos-embedded-compact-7.html' title='Windwos Embedded Compact 7'/><author><name>NigelG</name><uri>http://www.blogger.com/profile/12983642239807111106</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5336967652773512989</id><published>2011-02-11T09:57:00.001Z</published><updated>2011-02-11T10:00:57.224Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows  ce 6.0 R3'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Embedded Compact'/><category scheme='http://www.blogger.com/atom/ns#' term='ce6.0'/><title type='text'>Visual Studio 2005 deploy error after downloading a managed code application to a Windows CE6 R3 device</title><content type='html'>Thanks to William White for this:-&lt;br /&gt;&lt;br /&gt;After deploying a managed code application to a windows CE6 R3 device you get a deployment error something like:&lt;br /&gt;&lt;br /&gt;Deploying ‘C:\will\VBProjects\CEApp\bin\Debug\HelloWorld.exe’&lt;br /&gt;Deploying ‘C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\windowsce\diagnostics\System_SR_enu.cab’&lt;br /&gt;Post-deploy error 0×00000001 returned after calling ‘\Windows\wceload.exe /noui \Windows\System_SR_enu.cab’.&lt;br /&gt;========== Build: 1&lt;br /&gt;&lt;br /&gt;Visual Studio 2005 will attempt to download the .NET CF 2.0 cab file (System_SR_enu.cab) and automatically install  if the device does not already contain the  run time (however the OS dependencies for the .NET CF 2.0 must be included in the WinCE6 image). It appears that the version of .NET CF 2.0 included with Visual Studio 2005 SP1 is not compatible with the R3 release of Windows CE6. To fix the problem, shutdown all instances of Visual Studio 2005 and simply download and install .NET CF2.0 SP2:&lt;br /&gt;&lt;br /&gt;http://www.microsoft.com/downloads/en/details.aspx?familyid=AEA55F2F-07B5-4A8C-8A44-B4E1B196D5C0&amp;displaylang=en&lt;br /&gt;&lt;br /&gt;Try again and everything should be fine.&lt;br /&gt;&lt;br /&gt;A successful deployment should then look something like:&lt;br /&gt;&lt;br /&gt;DeviceApplication1 -&gt; C:\Documents and Settings\XPMUser\My Documents\Visual Studio 2005\Projects\DeviceApplication1\DeviceApplication1\bin\Debug\DeviceApplication1.exe&lt;br /&gt;—— Deploy started: Project: DeviceApplication1, Configuration: Debug Any CPU ——&lt;br /&gt;Deploying ‘C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\windowsce\wce500\armv4i\NETCFV2.wce5.armv4i.cab’&lt;br /&gt;Deploying ‘C:\Documents and Settings\XPMUser\My Documents\Visual Studio 2005\Projects\DeviceApplication1\DeviceApplication1\bin\Debug\DeviceApplication1.exe’&lt;br /&gt;Deploying ‘C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\windowsce\diagnostics\System_SR_enu.cab’&lt;br /&gt;========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========&lt;br /&gt;========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5336967652773512989?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5336967652773512989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5336967652773512989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5336967652773512989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5336967652773512989'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2011/02/visual-studio-2005-deploy-error-after.html' title='Visual Studio 2005 deploy error after downloading a managed code application to a Windows CE6 R3 device'/><author><name>NigelG</name><uri>http://www.blogger.com/profile/12983642239807111106</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-9131104493211929482</id><published>2011-01-10T08:18:00.002Z</published><updated>2011-01-10T08:29:56.671Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows mobile keep awake background processing stopping suspend'/><title type='text'>Keeping your Smartphone alive for background processing</title><content type='html'>&lt;span class="Apple-style-span" &gt;Want to keep your windows mobile smart phone alive, even if the user is trying to force it off? &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;This can be achieved by using the unattended mode, the power manager on Windows Mobile has an unattended state that will effectively look like the phone is off but the CPU will be running in the background with the LCD off. This is used for playing music, downloading emails etc. To invoice this&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;PowerPolicyNotify(PPN_UNATTENDEDMODE, 1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;To release this do&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;PowerPolicyNotify(PPN_UNATTENDEDMODE, 0);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Whist in this state you may need to poke the device to stay on by calling the above function again. If you want to wake up the device then use another power API:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;div&gt;            // Force backlight and power on&lt;/div&gt;&lt;div&gt;            SetSystemPowerState(NULL, POWER_STATE_ON, POWER_FORCE);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This will force the system to wake up fully if you want to display information to the user after your background processing.&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-9131104493211929482?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/9131104493211929482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=9131104493211929482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/9131104493211929482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/9131104493211929482'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2011/01/keeping-your-smartphone-alive-for.html' title='Keeping your Smartphone alive for background processing'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1122603057209824806</id><published>2010-12-01T20:38:00.002Z</published><updated>2010-12-01T21:05:38.693Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='alphablend alpha pixel transparent'/><title type='text'>Why's my Alpha blend not working!!</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;p&gt;That was what I was saying as I do an AlphaBlend() of a 32 bit bitmap nicely saved in Photoshop, the result was a bitmap with white as the 'background' instead of a nice transparent edge.&lt;/p&gt;&lt;p&gt;I've seen this before and moving between Desktop and WinCE I seem to have slightly different results with Alpha blending and image factory stuff. Anyhow I found a few people mentioning that you need to pre-multiply any alpha per pixel before using the Alpha blend (which has an alpha on the image as well). Sceptical but tried it and hey presto my bitmaps now render perfectly.&lt;/p&gt;&lt;p&gt;Here is what I do in Win32:&lt;/p&gt;&lt;/span&gt;&lt;pre name="code" class="Cpp"&gt;HBITMAP hbmp = CreateDIBSection(hdcScreen, lpbi, DIB_RGB_COLORS, &amp;amp;pvImageBits, NULL, 0);&lt;br /&gt;&lt;br /&gt;const UINT cbImage = cbStride * height;&lt;br /&gt;if (FAILED(ipBitmap-&amp;gt;CopyPixels(NULL, cbStride, cbImage, static_cast&amp;lt;BYTE *&amp;gt;(pvImageBits))))&lt;br /&gt;{&lt;br /&gt;// couldn't extract image; delete HBITMAP&lt;br /&gt;DeleteObject(hbmp);&lt;br /&gt;hbmp = NULL;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Pre multiply RGB on alpha channels else alpha blit won't work!&lt;br /&gt;//&lt;br /&gt;if (lpbi-&amp;gt;bmiHeader.biBitCount == 32)&lt;br /&gt;{&lt;br /&gt; BYTE* linePtr = (BYTE*)pvImageBits;&lt;br /&gt; for(int y=0;y&amp;lt;height;y++)&lt;br /&gt; {&lt;br /&gt;  BYTE* ptr = linePtr;&lt;br /&gt;&lt;br /&gt;  for(int x=0;x&amp;lt;width;x++)&lt;br /&gt;  {&lt;br /&gt;   BYTE alpha = *(ptr+3);&lt;br /&gt;   *(ptr+0)=(*(ptr+0) * alpha) / 255;&lt;br /&gt;   *(ptr+1)=(*(ptr+1) * alpha) / 255;&lt;br /&gt;   *(ptr+2)=(*(ptr+2) * alpha) / 255;&lt;br /&gt;   ptr+=4;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  linePtr += cbStride;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;Then just AlphaBlend on my bitmap...perfect, but why doesn't AlphaBlend handle the 32 bit bitmaps anyhow that's what I don't understand.... !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1122603057209824806?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1122603057209824806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1122603057209824806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1122603057209824806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1122603057209824806'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/12/whys-my-alpha-blend-not-working.html' title='Why&apos;s my Alpha blend not working!!'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-189308798221055994</id><published>2010-11-15T09:06:00.000Z</published><updated>2010-11-15T09:07:03.584Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows mobile winmo lock screen 6.5 custom notifications'/><title type='text'>Adding custom notifications to the WM6.5 lock screen</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" &gt;If you are wondering how your application can add information on the new WM6.5 lock screen, this can be done easily by utilising a few registry entries! There are two OEM lockscreen entries reserved for OEM applications that will allow applications to register an icon to show on the lock screen with an optional number of unread or unhandled events, when the user slides this to the right or left the application is invoked to deal with the unread events.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;The regsitry entry all of this appears under is:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;HKLM\Software\\Microsoft\\Shell\\LockScreen\\Notifications\\Notif0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;HKLM\Software\\Microsoft\\Shell\\LockScreen\\Notifications\\Notif1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Add the settings like this:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;            "Command Line"="\program files\myapp\myapp.exe"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;            "Image"="\icon_notclicked.png"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;            "FocusImage"="\icon_clicked.png"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;            "Notification Count"=dword:0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;The command line should point to your application, this will be executed when the user slides your cusom slider to the right. The Image and Focus image are two icons which are shown on the lock screen with and without you pressing them. The notification count should be more than 0 to show your icon and 0 to hide your item. The number in the noticication count is displayed on the lock screen so this could be the number of unread messages or emails you've received, whatever you are counting in your application.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;You should check that Notif0 and 1 aren't already used by another application and use the appropriate one.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Happy screen locking! &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-189308798221055994?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/189308798221055994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=189308798221055994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/189308798221055994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/189308798221055994'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/11/adding-custom-notifications-to-wm65.html' title='Adding custom notifications to the WM6.5 lock screen'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-877016180860091419</id><published>2010-10-27T07:32:00.002Z</published><updated>2010-10-27T08:01:18.841Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='NLED vibrate windows mobile'/><title type='text'>Accessing the phone vibrator</title><content type='html'>&lt;span class="Apple-style-span"&gt;How can I access the vibrate function from my apps you may say...?&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Well the vibrate function is part of the NLED (or notification LED) driver. You can use the NLED  functions to pulse or turn on/off the motor in the same way as any LED. To find the vibrator search through the list of LEDs until you find one with a cycle time of -1, this indicates the vibrator.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;The following code is complete example of searching through the available LEDs and turning on and off only the vibrate function. This should work on any Windows Mobile or Windows CE with a compatible NLED driver:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;#include "nled.h"&lt;br /&gt;&lt;br /&gt;enum Status&lt;br /&gt;{&lt;br /&gt;   OFF = 0,&lt;br /&gt;   ON,&lt;br /&gt;   BLINK&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;int GetLedCount()&lt;br /&gt;{&lt;br /&gt;   int count = 0;&lt;br /&gt;   NLED_COUNT_INFO nci;&lt;br /&gt;   if (NLedGetDeviceInfo(NLED_COUNT_INFO_ID, &amp;amp;nci))&lt;br /&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;   &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;count = nci.cLeds;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;   }&lt;br /&gt;   return count;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int ledCount = GetLedCount();&lt;br /&gt;&lt;br /&gt;void SetLedStatus(Status status)&lt;br /&gt;{&lt;br /&gt;   NLED_SETTINGS_INFO nsi;&lt;br /&gt;   NLED_SUPPORTS_INFO nInfo;&lt;br /&gt;   nsi.OffOnBlink = (uint)status;&lt;br /&gt;   for (int i = 0; i &lt; ledCount; i++)&lt;br /&gt;   {&lt;br /&gt;      // request information from this led, we're looking for a  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;      // &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;cycleAdjust of &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; "&gt;-1 which indicates the vibrator&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;      nInfo.LedNum = i;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;      NLedGetDeviceInfo(NLED_SUPPORTS_INFO_ID, &amp;amp;nInfo);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;      if (nInfo.lCycleAdjust == -1)&lt;br /&gt;      {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;         nsi.LedNum = (uint)i;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;         NLedSetDevice(NLED_SETTINGS_INFO_ID, &amp;amp;nsi);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;      }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void VibrateOn()&lt;br /&gt;{&lt;br /&gt;   SetLedStatus(Status::ON);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void VibrateOff()&lt;br /&gt;{&lt;br /&gt;   SetLedStatus(Status::OFF);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,&lt;br /&gt;                   LPTSTR    lpCmdLine, int       nCmdShow)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;{&lt;br /&gt;   VibrateOn();&lt;br /&gt;   Sleep(500);&lt;br /&gt;   VibrateOff();&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-877016180860091419?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/877016180860091419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=877016180860091419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/877016180860091419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/877016180860091419'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/10/accessing-phone-vibrator.html' title='Accessing the phone vibrator'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-3101023208439307573</id><published>2010-10-12T10:03:00.002Z</published><updated>2010-10-12T10:06:36.538Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='missing ordinal windows ce 6.0'/><title type='text'>Missing Ordinals in Windows CE</title><content type='html'>&lt;span style="font-family:arial;"&gt;If you get the message:&lt;br /&gt;&lt;br /&gt;ERROR: function @ Ordinal 297 missing&lt;br /&gt;Please Check your SYSGEN variable!!!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;Then the problem is most likely to be a missing funciton in CoreDLL, to check which it is go to the private sources:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;\WINCE600\PRIVATE\WINCEOS\COREOS\CORE\DLL&gt;notepad core_common.def&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;In this you should be able to search for the ordinal number &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;; @CESYSGEN IF COREDLL_BATTERY&lt;br /&gt;BatteryDrvrGetLevels=BatteryDrvrGetLevels @297&lt;br /&gt;BatteryDrvrSupportsChangeNotification=BatteryDrvrSupportsChangeNotification @298&lt;br /&gt;BatteryGetLifeTimeInfo=BatteryGetLifeTimeInfo @713&lt;br /&gt;BatteryNotifyOfTimeChange=BatteryNotifyOfTimeChange @714&lt;br /&gt;GetSystemPowerStatusEx=GetSystemPowerStatusEx @715&lt;br /&gt;GetSystemPowerStatusEx2=GetSystemPowerStatusEx2 @1358&lt;br /&gt;; @CESYSGEN ENDIF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-3101023208439307573?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/3101023208439307573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=3101023208439307573' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3101023208439307573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3101023208439307573'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/10/missing-ordinals-in-windows-ce.html' title='Missing Ordinals in Windows CE'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1877867642522668649</id><published>2010-09-29T17:35:00.001Z</published><updated>2010-09-29T17:36:45.198Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='cerunappattime setevent createevent waitforsingleobject windows ce wince'/><title type='text'>Using events and waking devices using CeRunAppAtTime</title><content type='html'>&lt;span class="Apple-style-span" &gt;Want to wake up a CE device at a future time (even if it is suspend), then use the CeRunAppAtTime but instead of running an app use a named event, this allows an application to wake up the device at a set time and also trap the wake event without spawning another process:&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt; SYSTEMTIME time;&lt;br /&gt; CTime nextWakeUpTime;&lt;br /&gt;&lt;br /&gt; // get local system time and convert time to CTime for now&lt;br /&gt; GetLocalTime(&amp;amp;time);&lt;br /&gt; CTime now(time);&lt;br /&gt;&lt;br /&gt; // 30 minutes in the future&lt;br /&gt; nextWakeUpTime=now;&lt;br /&gt; nextWakeUpTime+=CTimeSpan(0,0,30,0);&lt;br /&gt;&lt;br /&gt; // convert to systemtime&lt;br /&gt; nextWakeUpTime.GetAsSystemTime(time);&lt;br /&gt;&lt;br /&gt; // set for wake up !&lt;br /&gt; CeRunAppAtTime(TEXT("\\\\.\\Notifications\\NamedEvents\\SCHEDULE_WAKEEVENT_EVENT"), &amp;amp;time);&lt;br /&gt;&lt;br /&gt; HANDLE wakeEvent = CreateEvent(NULL, FALSE, FALSE, SCHEDULE_WAKEEVENT_EVENT);&lt;br /&gt;&lt;br /&gt; // wait for wake up!&lt;br /&gt; if (WaitForSingleObject(wakeEvent, FALSE, INFINITE) == WAIT_OBJECT_0)&lt;br /&gt; {&lt;br /&gt;  // sheduled wake up&lt;br /&gt; }&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1877867642522668649?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1877867642522668649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1877867642522668649' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1877867642522668649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1877867642522668649'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/09/using-events-and-waking-devices-using.html' title='Using events and waking devices using CeRunAppAtTime'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7427770640144744720</id><published>2010-09-10T11:33:00.003Z</published><updated>2010-09-10T11:51:45.783Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='KITL_RETAILMSG'/><category scheme='http://www.blogger.com/atom/ns#' term='KITL_DEBUGMSG'/><title type='text'>KITL Messages Don't Support Wide Strings</title><content type='html'>I've just tracked down a minor irritation with KITL_RETAILMSG and KITL_DEBUGMSG under CE 6.0 R3 - they can't print UNICODE or wide strings.&lt;br /&gt;&lt;br /&gt;On several platforms I've seen the KITL device name is not printed correctly. The device name is the &lt;em&gt;name&lt;/em&gt; member of the OAL_KITL_DEVICE structure and is defined as a LPCWSTR.&lt;br /&gt;&lt;br /&gt;Typically OALKitlInit uses KITL_RETAILMSG to report the device name but the name is never displayed correctly. The string is formatted as "%s" but only the first letter is shown - this implies that the wide string is being formatted as a character string. Trying %hs or %S to override the default does not help.&lt;br /&gt;&lt;br /&gt;Reviewing the private sources confirms the problem. Only the %s format is supported and this is for character strings only.&lt;br /&gt;&lt;br /&gt;Also be aware that formatting such as %08x is not supported either, but %X is fine!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7427770640144744720?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7427770640144744720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7427770640144744720' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7427770640144744720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7427770640144744720'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/09/kitl-messages-dont-support-wide-strings.html' title='KITL Messages Don&apos;t Support Wide Strings'/><author><name>MartinT</name><uri>http://www.blogger.com/profile/11857650368898665976</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-3435778714586797213</id><published>2010-09-06T18:35:00.001Z</published><updated>2010-09-06T18:35:39.204Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='bib hash #include include wince'/><title type='text'>Using #include from BIB files</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Did you know that inside of Windows CE build system that bib files can #include other bib files. This technique is used on many BSP's to implement individual driver registry entries from the driver directory &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;platform.reg&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;#include "$(_TARGETPLATROOT)\SRC\DRIVERS\display\display.reg"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;The same can be done for the bib file, I didn't release this before, but its there to use if you want to in CE6.0 for sure!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;platform.bib&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;#include "$(_TARGETPLATROOT)\SRC\DRIVERS\display\display.bib"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-3435778714586797213?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/3435778714586797213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=3435778714586797213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3435778714586797213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3435778714586797213'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/09/using-include-from-bib-files.html' title='Using #include from BIB files'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-864653550840802189</id><published>2010-08-18T17:41:00.004Z</published><updated>2010-08-18T19:43:09.902Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows ce compression bin execute in place'/><title type='text'>Page faults on resume from suspend with COMPRESSION=on</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;pre&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;A short while ago we had a problem on a platform resuming from suspend, a page fault calling a standard function. The function in question was a Registry query function. The fault was tracked down to that fact that when the config.bib specifies compression like:&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;COMPRESSION=ON&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;This means that all files are put into the nk.bin image back to back without any space between them, even running the image from RAM most of these files cannot be executed in place as the file aren't aligned on a page boundary, these files need to be copied into ram on a boundary and executed.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;In the project above we needed to use the API so a solution was to turn off the COMPRESSION, this increases the NK.BIN size but helps in lower RAM usage and faster response times due to no duplication of files into executable positions. &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-864653550840802189?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/864653550840802189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=864653550840802189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/864653550840802189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/864653550840802189'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/08/page-faults-on-resume-from-suspend-with.html' title='Page faults on resume from suspend with COMPRESSION=on'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1010482478192954982</id><published>2010-07-08T20:33:00.002Z</published><updated>2010-07-08T20:38:20.876Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SetMapMode'/><category scheme='http://www.blogger.com/atom/ns#' term='SetViewPortExt SetWindowExt  Windows CE 7.0'/><title type='text'>Transformations in WindowsCE using SetMapMode</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Unfortunately Windows CE doesn't support transformation of the coordinate system using SetMapMode, SetViewPortExt and SetWindowExt even in Windows CE 7.0 which is rather unfortunate as we had an application just this week that would have benefited from this. The application I'm referring to would have been cross compiled for Win32 and CE so basically I had to support scaling for the PC end as well, no point in having two different systems when the app should be seemless across both platforms, maybe in CE8.0 eh?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1010482478192954982?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1010482478192954982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1010482478192954982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1010482478192954982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1010482478192954982'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/07/transformations-in-windowsce-using.html' title='Transformations in WindowsCE using SetMapMode'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5000412063278918007</id><published>2010-06-09T07:13:00.003Z</published><updated>2010-06-09T07:17:40.226Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wince 7.0 CTP technology preview windows embedded compact'/><title type='text'>Windows CE 7.0 Preview</title><content type='html'>Microsoft have unveiled a technology preview of Windows Embedded Compact Edition (windows CE) version 7.0, the preview can be downloaded from &lt;a href="http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx"&gt;http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx&lt;/a&gt; go check it out now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5000412063278918007?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5000412063278918007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5000412063278918007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5000412063278918007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5000412063278918007'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/06/windows-ce-70-preview.html' title='Windows CE 7.0 Preview'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-3947041570257929529</id><published>2010-05-24T11:42:00.005Z</published><updated>2010-05-24T11:57:54.724Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='hook keyboard windows embedded ce'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded Standard'/><category scheme='http://www.blogger.com/atom/ns#' term='WES 7'/><category scheme='http://www.blogger.com/atom/ns#' term='WES'/><title type='text'>Summer 2010 EmbeddedSPARK Competition</title><content type='html'>To all you embedded hobbyists. I Just want to highlight the latest Microsoft embeddedSPARK compitition on this summer. Given the latest release, this round of the competition is focused on Embedded Standard 7.&lt;br /&gt;&lt;br /&gt;You can find all the information you need to enter at &lt;a href="http://www.embeddedspark.com/"&gt;http://www.embeddedspark.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A video about this can also be seen at &lt;a href="http://www.embeddedspark.com/public/videos/embeddedSPARKSUMMER_howto.wmv"&gt;http://www.embeddedspark.com/public/videos/embeddedSPARKSUMMER_howto.wmv&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;FYI - Round 1 closes on June 8&lt;br /&gt;Any questions or issues I can help with please let me know.&lt;br /&gt;&lt;br /&gt;&gt;&gt; Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-3947041570257929529?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/3947041570257929529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=3947041570257929529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3947041570257929529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3947041570257929529'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/05/summer-2010-embeddedspark-competition.html' title='Summer 2010 EmbeddedSPARK Competition'/><author><name>NigelG</name><uri>http://www.blogger.com/profile/12983642239807111106</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5087150488991208947</id><published>2010-05-20T18:40:00.002Z</published><updated>2010-05-20T18:45:03.830Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='setupcomm serial buffer size unsupported'/><title type='text'>Setting up COM buffers</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;I was pointed to this today to set the size of serial buffers on WinCE:&lt;/span&gt;&lt;div&gt;&lt;pre&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;BOOL SetupComm( &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;  &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;HANDLE &lt;i&gt;hFile&lt;/i&gt;, &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;DWORD &lt;i&gt;dwInQueue&lt;/i&gt;, &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;  &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;DWORD &lt;i&gt;dwOutQueue&lt;/i&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; white-space: normal; font-size: 16px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;This should control the internal buffer sizes for the COM port... but the amusing comment in MSDN says:&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:130%;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Always returns FALSE because the FIFO queue size cannot be changed&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Err... so does this work!?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5087150488991208947?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5087150488991208947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5087150488991208947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5087150488991208947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5087150488991208947'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/05/setting-up-com-buffers.html' title='Setting up COM buffers'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4891313294772158600</id><published>2010-05-12T07:27:00.003Z</published><updated>2010-05-12T07:50:56.378Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='profiling performance analysis windows ce thread getthreadtimes snapshot'/><title type='text'>Realtime CPU calculation for CE debugging</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Quite often I've been in the situation where a process or thread has gone rogue and I've been trying to track down why the system has ground to a halt. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;One of the things I find most helpful is the SnapShot tools, this allows you to take a snapshot of the system for its current running processes or threads, this can be useful in itself but using the GetThreadTimes API you can then print out any high CPU users, basically creating your own mini-task manager for Windows CE.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Firstly take a snapshot of the system:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;HANDLE hSnapshot = CreateToolhelp32Snapshot (TH32CS_SNAPTHREAD, 0);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Secondly call Thread32First/Next on the snapshot to retrieve all the thread information:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;span class="Apple-style-span" style="font-family: Georgia, serif; white-space: normal; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;THREADENTRY32 te[256];&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;// up to 256 threads&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;int used = 0;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;span class="Apple-style-span" style="white-space: normal; "&gt;te[used].dwSize = sizeof(THREADENTRY32);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;if ( Thread32First(hSnapshot,&amp;amp;te[used]) ) &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;do&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;..&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;..&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;used++;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;te[used].dwSize = sizeof(THREADENTRY32);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;while (Thread32Next(hSnapshot,&amp;amp;te[used]));&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;}&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Finally iterate through the threads getting their thread times, creating times etc:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;FILETIME creationTime,exitTime;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;FILETIME ktTime[256];&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;FILETIME utTime[256];&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;GetThreadTimes ((HANDLE)te[used].th32ThreadID, &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&amp;amp;creationTime, &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&amp;amp;exitTime, &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&amp;amp;ktTime[used], &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&amp;amp;utTime[used]);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This can be done in the while loop above, you can also use the results from the snapshot over and over with a sleep(1000), compare the results and print out the top XX threads using CPU to give some realtime feedback on the system usage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Commonly my applications and kernel development use this method to ensure that the system is using the expected CPU time when being developed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4891313294772158600?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4891313294772158600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4891313294772158600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4891313294772158600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4891313294772158600'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/05/realtime-cpu-calculation-for-ce.html' title='Realtime CPU calculation for CE debugging'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5476349017487598795</id><published>2010-05-06T16:57:00.005Z</published><updated>2010-05-06T17:21:25.783Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows ce windows embedded 2010 embedded markey study from ee times'/><title type='text'>2010 Embedded Market Study shows Microsoft embedded OS's are on the way up...</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;The 2010 Embedded Market Study from EE Times group is out now, they reviewed 1,574 surveys on embedded designs. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;This year we should be expecting the Wind River (VxWorks) to take the top 17% of upcoming embedded designs, followed by 13% for Debian (Linux), then Windows CE closely following at 13% and then Windows (XP Embedded) at 12%. &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Windows CE and Windows XP Embedded  are up 1% on last years survey, and between them take a whopping 25% of new designs, great news!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Check out the Webinar on &lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;&lt;a href="http://www.techonline.com/learning/livewebinar/224000228"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;http://www.techonline.com/learning/livewebinar/224000228&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt; for on-demand playback.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5476349017487598795?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5476349017487598795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5476349017487598795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5476349017487598795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5476349017487598795'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/05/2010-embedded-market-study-from-ee.html' title='2010 Embedded Market Study shows Microsoft embedded OS&apos;s are on the way up...'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-2991074042591063555</id><published>2010-05-06T16:47:00.002Z</published><updated>2010-05-06T16:56:44.304Z</updated><title type='text'>Snooze using SleepTilTick</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;A not so well known function, this little API allows a thread to relinquish its hold on the system until the next tick normally 1ms great for polling loops when used in conjunction with high priority threads... &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-2991074042591063555?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/2991074042591063555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=2991074042591063555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2991074042591063555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2991074042591063555'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/05/snooze-using-sleeptiltick.html' title='Snooze using SleepTilTick'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-3711388021778476707</id><published>2010-04-30T15:54:00.003Z</published><updated>2010-04-30T16:22:38.131Z</updated><title type='text'>Windows Embedded 7 RTM</title><content type='html'>After months of a CTP version being available the final version has been released to manufacturer. Windows Embedded Standard 7, the successor of Windows XP Embedded was released April 27th 2010 at the ESC West - Silicon Valley&lt;br /&gt;&lt;br /&gt;Windows Embedded Standard 7 is the first embedded OS based on the successful desktop o/s Windows 7. Thus the aligned naming.&lt;br /&gt;&lt;br /&gt;It is a highly customizable embedded o/s in a componentized form, which allows OEMs to build devices with a control over the memory footprint and the addition of embedded enabling features (HORM etc.) but still get the familiarity and power of Windows 7.&lt;br /&gt;&lt;br /&gt;You can find the Windows Embedded Standard 7 RTM press release &lt;a href="http://www.microsoft.com/windowsembedded/en-us/about/pressroom/pressreleases/wes7_release.mspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But if you want to learn more and you’re in the UK why not come to the Microsoft HUB event next Thursday 6th May.&lt;br /&gt;I’ll be there on the Direct Insight booth and in our Windows Embedded CE- Hands on Lab event. &lt;a href="http://www.hub-event.com/UK.php"&gt;So why not register via this link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&gt;&gt; Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-3711388021778476707?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/3711388021778476707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=3711388021778476707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3711388021778476707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3711388021778476707'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/04/windows-embedded-7-rtm.html' title='Windows Embedded 7 RTM'/><author><name>NigelG</name><uri>http://www.blogger.com/profile/12983642239807111106</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7546571073227159141</id><published>2010-04-22T12:29:00.003Z</published><updated>2010-04-22T12:48:47.001Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='InputDebugCharW OEMReadDebugByte wince 6.0'/><title type='text'>OEMReadDebugByte in CE6.0</title><content type='html'>&lt;span style="font-family:arial;"&gt;I quite often run a simple serial terminal using the debug port, having this we can control the platform without active sync, a keybaord or even an LCD, but when running from CE6.0 the application doesn't build because OEMReadDebugByte fails. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;If you want an app to be able to do the equivalent of &lt;strong&gt;OEMReadDebugByte&lt;/strong&gt; instead use the function &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;InputDebugCharW&lt;/strong&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7546571073227159141?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7546571073227159141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7546571073227159141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7546571073227159141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7546571073227159141'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/04/oemreaddebugbyte-in-ce60.html' title='OEMReadDebugByte in CE6.0'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5179488309197839538</id><published>2010-03-31T07:27:00.002Z</published><updated>2010-03-31T07:43:38.576Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='waitforsingleobject createprocess createthread processes running'/><title type='text'>Waiting for Thread / Process termination</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;When launching child processes from applications I used to use GetExitCodeProcess on the process handle, checking if &lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial; font-size: 13px; "&gt;STILL_ACTIVE&lt;span class="Apple-style-span" style="font-family: arial; font-size: 16px; "&gt; is returned if it is still running.. heres the smart way!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial; font-size: 13px; "&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 16px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;After spawning a process or creating a worker thread the end of the process/thread can be waited on using WaitForSingleObject.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;For instance for threads:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  HANDLE hThread;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  hThread = CreateThread(NULL,0,StartThread,&amp;amp;threadParam,0,NULL);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  if(hThread1 != NULL)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;       WaitForSingleObject(hThread,INFINITE);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;For processes:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  PROCESS_INFORMATION pi={0};&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  if (CreateProcess (parameters, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, &amp;amp;pi))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  WaitForSingleObject(pi.hProcess,INFINITE);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  }&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5179488309197839538?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5179488309197839538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5179488309197839538' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5179488309197839538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5179488309197839538'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/03/waiting-for-thread-process-termination.html' title='Waiting for Thread / Process termination'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4820533420370596034</id><published>2010-03-25T08:22:00.005Z</published><updated>2010-03-25T08:25:48.385Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows ce registry change notifications kernel data passing'/><title type='text'>Registry notifications to pass data between kernel to Apps/drivers</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;This breifly outlines the technique of passing information or state changes between the Windows CE Kernel/OAL and running drivers or applications. Passing events and notification from the kernel to a driver or application can be a little problematic, information flow the other way is straight forward using the kernel IOCtls. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;One thing we can use here is the registry and the registry change notifications, for instance, both drivers/applications and kernel can change the registry, the kernel calls are all preceeded by NK, for instance:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Kernel:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;NKRegOpenKeyEx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;NKRegCreateKeyEx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;NKRegSetValueEx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Driver/App:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;RegOpenKeyEx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;RegCreateKeyEx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;RegSetValueEx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;So why not set a state or value to pass in the registry, then wait on a particular registry key or value being changed using the following:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;// create an event on a particular registry change&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;HANDLE event = CeFindFirstRegChange(....)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;while(1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;// wait for notification of a change&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;WaitForSingleObject(event, INFINITE);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;// clear event&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;CeFindNextRegChange(event);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;Using this technique small, or large complex data can be shared very easily.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4820533420370596034?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4820533420370596034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4820533420370596034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4820533420370596034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4820533420370596034'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/03/registry-notifications-to-pass-data.html' title='Registry notifications to pass data between kernel to Apps/drivers'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-6872662648123193270</id><published>2010-03-11T10:14:00.003Z</published><updated>2010-03-11T10:23:41.434Z</updated><title type='text'>Platform Builder: Remember to enable Multiprocessor Build</title><content type='html'>&lt;div&gt;A support incident today reminded me that many people have forgotten to enable Multiprocessor Build support.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Enabling this will reduce the overall time it takes to build a platform workspace and it can be autodetected if enabled. But it seems the default is a manual selected number of processors=1&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The selection is accessed via Tools / Options with the selection options as captured below:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_UirtijHjVnU/S5jEJGmYZ_I/AAAAAAAAABk/mTX7jKEZyaU/s1600-h/options.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 400px; FLOAT: left; HEIGHT: 197px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5447319409974077426" border="0" alt="" src="http://3.bp.blogspot.com/_UirtijHjVnU/S5jEJGmYZ_I/AAAAAAAAABk/mTX7jKEZyaU/s320/options.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Hope this is of help. Nigel&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-6872662648123193270?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/6872662648123193270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=6872662648123193270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6872662648123193270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6872662648123193270'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/03/platform-builder-remember-to-enable.html' title='Platform Builder: Remember to enable Multiprocessor Build'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UirtijHjVnU/S5jEJGmYZ_I/AAAAAAAAABk/mTX7jKEZyaU/s72-c/options.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5898966011695105276</id><published>2010-03-04T20:01:00.002Z</published><updated>2010-03-04T20:06:16.465Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows ce wince setevent seteventdata martin thompson'/><title type='text'>Passing data using SetEvent on Windows CE</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Martin in the office came across this one, normally SetEvent is used to signal between two threads or even processes that something has happened, a very light weight message queue shall we say, the major limitation is that you can't pass any parameters or data, so you end up having multiple events or storing the parameter information in the registry etc..but using this API you can associate a DWORD of information against an event that is signalled, pretty handy for simple signalling information between drivers and applications...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; "&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl13_ctl00_ctl00_code" space="preserve" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(221, 221, 221); border-top-color: rgb(200, 205, 222); border-top-style: solid; border-top-width: 1px; padding-left: 5px; padding-right: 5px; padding-top: 5px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; display: block; font-family: Courier, Verdana, Arial, Helvetica, sans-serif; color: rgb(0, 0, 102); white-space: pre-wrap; word-wrap: break-word; overflow-x: hidden; overflow-y: hidden; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span&gt;&lt;span id="src3" class="srcSentence"&gt;BOOL SetEventData(   HANDLE &lt;/span&gt;&lt;/span&gt;&lt;i&gt;hEvent&lt;/i&gt;&lt;span&gt;&lt;span id="src4" class="srcSentence"&gt;,   DWORD &lt;/span&gt;&lt;/span&gt;&lt;i&gt;dwData&lt;/i&gt;&lt;span&gt;&lt;span id="src5" class="srcSentence"&gt; );&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;For more information look at:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa909185.aspx"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;http://msdn.microsoft.com/en-us/library/aa909185.aspx&lt;/span&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;Enjoy!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5898966011695105276?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5898966011695105276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5898966011695105276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5898966011695105276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5898966011695105276'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/03/passing-data-using-setevent-on-windows.html' title='Passing data using SetEvent on Windows CE'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-2896982217514784966</id><published>2010-02-04T07:47:00.003Z</published><updated>2010-02-04T08:00:34.119Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='southern electronics show'/><category scheme='http://www.blogger.com/atom/ns#' term='farnborough'/><category scheme='http://www.blogger.com/atom/ns#' term='10 11 Feb'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded shows'/><title type='text'>Southern Electronics Show</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: 12px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: 13px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Just a quick note to invite you to come visit me on the ByteSnap Design stand at next week's Southern Electronics show in Farnborough from the 10 - 11 February 2010.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: 13px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: 13px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;We will be demonstrating a number of customer projects including one from Rotalink, a designer and manufacturer of miniature motors, transmission and controls. This demo hooks up a DC motor speed detector to a mini-fairground wheel to show rotation and angle information via a display using our SnapUI product.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: 13px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: 13px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;We'll also be showcasing  other bespoke embedded electronics designs, embedded firmware and board design services. Come down to have a talk about services we can provide you from PCB design, through Firmware/BSP design to application development.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: 13px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 12px; color: rgb(51, 51, 51); line-height: 16px; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; font-size: 13px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;See you there!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:'Lucida Grande', 'Lucida Sans Unicode', Arial, Helvetica, sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-2896982217514784966?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/2896982217514784966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=2896982217514784966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2896982217514784966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2896982217514784966'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2010/02/southern-electronics-show.html' title='Southern Electronics Show'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-853248480021952132</id><published>2009-11-18T08:23:00.003Z</published><updated>2009-11-18T08:33:34.106Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='cetk ce6.0 connection issues arm windows ce'/><title type='text'>CE6.0 CETK using ActiveSync failes on ARM devices</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;One of the guys here was having problems getting his CE6.0 CETK connected using activeSync to the target device. It sounded like something on the platform or his PC was just not setup correctly as the Platform Builder connection test just wouldn't work... very bizzare.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;We're all running Vista 64 or Windows 7 64 so we were thinking it was a 64 bit issue (as there are other problems using these OS's for day to day development work but no it seems that the Platman folders on the PC that are used to store the target binaries for the CETK and remote tools is being checked incorrectly. If you look in this directory:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: 13px; color: rgb(51, 51, 51); font-style: italic; line-height: 19px; "&gt;C:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\target\wce600\&lt;/span&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;You'll see the ARMv4i directory but not an ARMv4 one like in previous versions of the Windows CE OS releases. It seems that the PC side application to push these target executables is looking (incorrectly) for an ARMV4 not ARMV4i directory. &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;To work around this simply copy the ARMV4i folder to create an ARMV4 directory and it should now all connect up.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-853248480021952132?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/853248480021952132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=853248480021952132' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/853248480021952132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/853248480021952132'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2009/11/ce60-cetk-using-activesync-failes-on.html' title='CE6.0 CETK using ActiveSync failes on ARM devices'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7247330762234219659</id><published>2009-11-02T09:02:00.003Z</published><updated>2009-11-02T09:13:55.505Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ce6.0 oalioctl kerneliocontrol'/><title type='text'>Calling Kernel IO routines from Apps in CE 6.0</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;In Windows CE 6.0 applications are unable to call kernel IO many routines including new OEM functions in the kernel using KernelIoControl. There are a few exceptions to this rule, these are:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;div&gt;     IOCTL_HAL_GET_CACHE_INFO&lt;/div&gt;&lt;div&gt;     IOCTL_HAL_GET_DEVICE_INFO&lt;/div&gt;&lt;div&gt;     IOCTL_HAL_GET_DEVICEID&lt;/div&gt;&lt;div&gt;     IOCTL_HAL_GET_UUID&lt;/div&gt;&lt;div&gt;     IOCTL_PROCESSOR_INFORMATION:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;What is not commonly known is that this list can be extended by adding any new (or existing) IOCTLs to the following public library and sysgen (or copy this to your platform and update the links to build the OALIOCTL.DLL:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;     %_WINCEROOT%\PUBLIC\COMMON\OAK\OALIOCTL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;If your CE5.0 platform had a lot of support for platform specific operations using KernelIOControl these can continue to be called from CE6.0 applications if you wish now!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7247330762234219659?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7247330762234219659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7247330762234219659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7247330762234219659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7247330762234219659'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2009/11/calling-kernel-io-routines-from-apps-in.html' title='Calling Kernel IO routines from Apps in CE 6.0'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8515510613986949105</id><published>2009-10-28T08:55:00.002Z</published><updated>2009-10-28T09:02:20.843Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='RNDIS connection active sync windows mobile device center problems'/><title type='text'>Active Sync problems using RNDIS</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;I use a number of machine on a day to day basis, one of my development machines refuses to connect using Vista's Active Sync (Windows Mobile Device Center) to any devices using RNDIS as the connection type. The RNDIS connection is made but the device center refuses to attempt any connection... ger! &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Connecting using USB serial works without any problems, so here is my work around until I find a fix: &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;If you are using Windows Mobile Standard (Smartphone) then you can switch to using USB Serial from the default that is RNDIS by going to settings-&gt;connections-&gt;USB to PC and un-selecting the "Enable advanced network functionality". This resorts to using the old fashioned USB serial. There should be a similar setting on Windows Mobile Professional (PocketPC).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8515510613986949105?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8515510613986949105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8515510613986949105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8515510613986949105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8515510613986949105'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2009/10/active-sync-problems-using-rndis.html' title='Active Sync problems using RNDIS'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4042829433766123502</id><published>2009-10-21T10:30:00.003Z</published><updated>2009-10-21T10:42:53.897Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='embedded device'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><title type='text'>Lightweight XML User interface for Windows CE</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;ByteSnap Design have just launched their user interface SnapUI, this UI engine uses XML to separate the graphics engine from the user interface configuration. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;The XML file describes the whole screen menu structure and icon layout, any text placement, language and interaction, whilst the engine is responsible for rendering this configuration to the user and interfacing with any propriety hardware on the embedded system &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;The tool is aimed at embedded devices using Windows CE but can be run using the same graphics files on a Desktop PC for quick development, testing, demos etc, read more from the article on &lt;a href="http://www.windowsfordevices.com/c/a/News/ByteSnap-SnapUI"&gt;WindowsForDevices SnapUI&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Bytesnap Design Ltd are a UK based company near Birmingham, read more about the SnapUI and design services at &lt;a href="http://www.bytesnap.co.uk/"&gt;www.bytesnap.co.uk&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4042829433766123502?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4042829433766123502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4042829433766123502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4042829433766123502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4042829433766123502'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2009/10/lightweight-xml-user-interface-for.html' title='Lightweight XML User interface for Windows CE'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8225475231874163003</id><published>2009-10-14T07:14:00.003Z</published><updated>2009-10-14T07:39:06.734Z</updated><title type='text'>Using WinCE APIs From Kernel OEM Routines</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;div&gt;There are many occasions where you want to implement some functionality in a Kernel IOCTL or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OEM&lt;/span&gt; kernel callback but you can't call the normal Windows CE &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;API&lt;/span&gt; because you're in kernel space. So tasks such as setting or reading registry entries, creating events and signalling processes etc can't be done... or can they..?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Some of the basic &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;API&lt;/span&gt; functions for this support are available but the functions have a prefix &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;NK&lt;/span&gt; or K, for instance:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;NKSleep&lt;/span&gt;&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;NKRegCloseKey&lt;/span&gt;&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;NKRegCreateKeyExW&lt;/span&gt;&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;NKRegOpenKeyExW&lt;/span&gt;&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;etc&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Note that not all of these are documented, so for more information see:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;\WINCE600\PUBLIC\COMMON\OAK\INC\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;nkexport&lt;/span&gt;.h&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;More advanced functions are available in:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;\WINCE600\PRIVATE\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;WINCEOS&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;COREOS&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;NK&lt;/span&gt;\INC\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;syncobj&lt;/span&gt;.h&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;This is the publicly available Windows CE private kernel code, and includes event, Semaphores and even message queues!:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;NKSetEvent&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;NKPulseEvent&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;NKResetEvent&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;NKCreateMsgQueue&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;etc!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;So don't use flags and share memory, do it properly with some thread and process &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;intercommunication&lt;/span&gt;! :)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8225475231874163003?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8225475231874163003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8225475231874163003' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8225475231874163003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8225475231874163003'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2009/10/using-wince-apis-from-kernel-oem.html' title='Using WinCE APIs From Kernel OEM Routines'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5091791648264405607</id><published>2009-09-30T07:08:00.002Z</published><updated>2009-09-30T07:14:17.482Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='makeimg activedevice wince nk.bin'/><title type='text'>Negating the need to run MakeImage when developing device drivers on WinCE</title><content type='html'>&lt;p&gt;&lt;span style="font-family:arial;"&gt;Debugging of drivers on Windows CE can be painful when downloading large images, NK.bin's of 10-30mb are typical and having to download the whole of this just for a driver modification can mean long times between compilation and testing. Here are my three methods for quicker development without having to push the full nk.bin down each time.&lt;br /&gt;&lt;br /&gt;The firstly two methods have pretty much the same outcome but from a different approach:&lt;br /&gt;&lt;br /&gt;1 - Remove the driver from the platform.bib file.&lt;br /&gt;&lt;br /&gt;This means that the driver isn't embedded in the OS image (nk.bin), then run this image when on KITL enabled (the debug transport typically used to connect the target device to the development PC). This will result in the DLL being pulled from the desktop release directory over the KITL transport and being ran as if it were in the image.&lt;br /&gt;&lt;br /&gt;2 - Tell Platform builder to force loading of modules over KITL&lt;br /&gt;&lt;br /&gt;In Platform Builder go to&lt;br /&gt;&lt;br /&gt;        Target -&gt; Release Directory Modules&lt;br /&gt;&lt;br /&gt;Then include the DLL's that you want to force loading over the KITL connection, this tells the OS on start-up to ignore any DLLs included in the image. The benefit of this is that you don't even have to build the NK.BIN again.&lt;br /&gt;&lt;br /&gt;3 - Load the drivers at runtime using ActiveDevice&lt;br /&gt;&lt;br /&gt;This method is handy if you don't have a KITL connection, here we populate the registry with the driver entries, but instead of putting them under HKLM\Drivers\Builtin\ put the registry entry under HKLM\Drivers\Test\ to ensure that the system doesn't load the driver on start-up.&lt;br /&gt;&lt;br /&gt;Then create a simple application that will tell device.exe to load the driver when you run it:&lt;br /&gt;&lt;br /&gt;        HANDLE device = ActivateDevice(L"Drivers\\Test\\myDriver", 0);&lt;br /&gt;&lt;br /&gt;Using the handle returned, you can also force it to unload the driver. This means you can start (and stop) the driver without a KITL connection but allowing you to copy new versions of your driver on from an SDCard or ActiveSync, you'll need to rely on serial debug prints probably to debug here but it’s a quick easy mechanism if you don't have a debug transport. &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5091791648264405607?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5091791648264405607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5091791648264405607' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5091791648264405607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5091791648264405607'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2009/09/negating-need-to-run-makeimage-when.html' title='Negating the need to run MakeImage when developing device drivers on WinCE'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-6871148712499552310</id><published>2008-09-24T11:54:00.009Z</published><updated>2008-09-24T12:22:37.482Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='XPe'/><category scheme='http://www.blogger.com/atom/ns#' term='ESS&apos;08'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded Workshops'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><title type='text'>Attending ESS'08 and Hosting half-day Windows Embedded Workshops</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_UirtijHjVnU/SNowfq-aleI/AAAAAAAAABM/z4chmPX_lIs/s1600-h/banner-ess08-mail-800.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5249561636323890658" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="31" alt="" src="http://1.bp.blogspot.com/_UirtijHjVnU/SNowfq-aleI/AAAAAAAAABM/z4chmPX_lIs/s400/banner-ess08-mail-800.png" width="412" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Just a quick note to invite you to come visit me on the Direct Insight stand at next week's Embedded Systems Show at the NEC. Stand 449 October 1st and 2nd. You can get your free exhibition pass &lt;a href="http://www.embedded.co.uk/images/ESS2008Ticket-080826.pdf"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Also in conjunction with Microsoft and Silica, Direct Insight will be hosting half-day Windows Embedded Workshops. These 100% technical workshops will take you through the process of building and deploying with both Windows Embedded CE and Windows XP Embedded.&lt;br /&gt;This is a unique hands-on opportunity to check out how Windows Embedded stacks up against Linux, and the various RTOS solutions out there. Places are strictly limited, so please visit the link below to secure your place.&lt;br /&gt;&lt;a title="http://www.directinsight.co.uk/services/windows-embedded-workshop.html" href="http://www.directinsight.co.uk/services/windows-embedded-workshop.html"&gt;http://www.directinsight.co.uk/services/windows-embedded-workshop.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Hope to see you there.&lt;/div&gt;&lt;div&gt;-Nigel&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;PS. At the show, we're also introducing a new, high performance, low-power Windows CE module, at a ground-breaking price. See this, and our other solutions for platform-based design on Stand 449 at ESS'08 (October 1st &amp;amp; 2nd at the NEC)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-6871148712499552310?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/6871148712499552310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=6871148712499552310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6871148712499552310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6871148712499552310'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/09/attending-ess08-and-hosting-half-day.html' title='Attending ESS&apos;08 and Hosting half-day Windows Embedded Workshops'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UirtijHjVnU/SNowfq-aleI/AAAAAAAAABM/z4chmPX_lIs/s72-c/banner-ess08-mail-800.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8987789555024018035</id><published>2008-09-19T15:10:00.002Z</published><updated>2008-09-19T15:14:13.148Z</updated><title type='text'>Register for Microsoft® Tech•Ed EMEA 2008 Developers before 26th September and save €300</title><content type='html'>On behalf of Microsoft I would like to invite you to take advantage of the early bird discount and register for Microsoft® Tech·Ed EMEA 2008 Developers (10 - 14 November, Barcelona, Spain) before 26th September 2008.&lt;br /&gt;&lt;br /&gt;As Microsoft will no longer be hosting the Mobile and Embedded DevCon (MEDC) there will be a significantly increased Windows® Embedded presence at this event. This will be focused around 2 key areas:&lt;br /&gt;·         A dedicated &lt;a title="https://emea.msteched.com/dev/public/tracks.aspx#DEV_EMB" href="https://emea.msteched.com/dev/public/tracks.aspx#DEV_EMB"&gt;Windows Embedded track&lt;/a&gt;&lt;br /&gt;·         Increased Windows Embedded presence in the exhibition hall  - on the Ask the Experts Pavilion and dedicated Windows Embedded Partner Zone&lt;br /&gt;&lt;br /&gt;Attend to:&lt;br /&gt;·         Enhance your technical skills in the development and implementation of Windows Embedded operating systems&lt;br /&gt;·         Network with both the Windows Embedded and wider community&lt;br /&gt;·         Engage with the largest audience of Microsoft Technology Specialists that come together across EMEA&lt;br /&gt;·         Visit the Windows Embedded exhibition space – the exhibition hall is at the heart of this event. A new layout design will promote networking across the hall, offering presentations, informal Chalk and Talk, comfortable social areas and continuous community activities&lt;br /&gt;&lt;br /&gt;Don’t forget to &lt;a title="http://www.microsoft.com/emea/teched2008/developer/registration/default.aspx" href="http://www.microsoft.com/emea/teched2008/developer/registration/default.aspx"&gt;register&lt;/a&gt; before 26th September and save €300!&lt;br /&gt;&lt;br /&gt;Tech·Ed EMEA 2008 Developers is the Microsoft premier technical education conference just for developers. For five days, you and more than 4,000 of your peers have countless opportunities to explore about the latest cutting-edge technologies from Microsoft. For general event information please visit &lt;a title="http://www.microsoft.com/emea/teched2008/developer/" href="http://www.microsoft.com/emea/teched2008/developer/"&gt;www.microsoft.com/emea/teched2008/developer/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&gt;&gt; Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8987789555024018035?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8987789555024018035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8987789555024018035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8987789555024018035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8987789555024018035'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/09/register-for-microsoft-teched-emea-2008.html' title='Register for Microsoft® Tech•Ed EMEA 2008 Developers before 26th September and save €300'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-6116585366921473724</id><published>2008-09-05T11:59:00.005Z</published><updated>2008-09-24T11:53:15.587Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE 6.0; Windows CE Books'/><title type='text'>Windows® Embedded CE 6.0 Fundamentals</title><content type='html'>&lt;span style="color:#000000;"&gt;Great book available called "Windows® Embedded CE 6.0 Fundamentals"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;strong&gt;Synopsis&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#666666;"&gt;Delve into the fundamental tools and techniques for Windows Embedded CE—and get ready to deliver the next innovation in powered devices. Covering the newest version of the technology—Windows Embedded CE R2—and led by two embedded-development experts, you'll get both the hands-on instruction and pragmatic reference you need to begin building a range of small footprint, smart, connected, and service-oriented devices. This book examines the architecture, built-in programming tools, drivers, and build process, and shows how to take advantage of the Windows Embedded CE 6.0 Software Development Kit (SDK). Whether new to programming with Windows and Windows Embedded, or already working with the platform, you'll find the best practices and real-world guidance you need to get productive quickly. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#666666;"&gt;&lt;br /&gt;Delve into the fundamental tools and techniques for Windows Embedded CE—and get ready to deliver the next innovation in powered devices. Covering the newest version of the technology—Windows Embedded CE R2—and led by two embedded-development experts, you'll get both the hands-on instruction and pragmatic reference you need to begin building a range of small footprint, smart, connected, and service-oriented devices. This book examines the architecture, built-in programming tools, drivers, and build process, and shows how to take advantage of the Windows Embedded CE 6.0 Software Development Kit (SDK). Whether new to programming with Windows and Windows Embedded, or already working with the platform, you'll find the best practices and real-world guidance you need to get productive quickly.&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;To find out where to buy follow this &lt;/span&gt;&lt;a href="http://www.microsoft.com/learning/books/howtobuy/englishdis.mspx"&gt;&lt;span style="color:#000000;"&gt;Link&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt; to the correct vendor for your country.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&gt; Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-6116585366921473724?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/6116585366921473724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=6116585366921473724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6116585366921473724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6116585366921473724'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/09/windows-embedded-ce-60-fundamentals.html' title='Windows® Embedded CE 6.0 Fundamentals'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4353474289694674558</id><published>2008-08-05T11:09:00.005Z</published><updated>2008-08-05T11:13:37.299Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='backlight idle lock home screen'/><title type='text'>Stopping home screen on Smartphone and other backlight tricks</title><content type='html'>&lt;span style="font-family:arial;"&gt;&lt;span style="color:#000000;"&gt;If your smartphone application displays information to a user without any user input you may wish to stop the home screen from being shown, or the auto lock from kicking in by reseting the idle timer using:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:courier new;color:#3366ff;"&gt;// prevent home screen from being shown, lock and idle timers&lt;br /&gt;SHIdleTimerReset();&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#000000;"&gt;You can force the backlight on and reset the other idle timers using:&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:courier new;color:#3366ff;"&gt;SystemIdleTimerReset();&lt;br /&gt;SetSystemPowerState(NULL, POWER_STATE_ON, POWER_FORCE);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;The latter works also on PocketPC and Windows CE&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4353474289694674558?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4353474289694674558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4353474289694674558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4353474289694674558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4353474289694674558'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/08/stopping-home-screen-on-smartphone-and.html' title='Stopping home screen on Smartphone and other backlight tricks'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-2841892467528670607</id><published>2008-05-12T12:41:00.002Z</published><updated>2008-05-12T12:47:00.394Z</updated><title type='text'>Interesting Article</title><content type='html'>Was directed at this article to read and thought it was worth sharing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.embedded.com/columns/guest/207402542"&gt;http://www.embedded.com/columns/guest/207402542&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Interesting views on one of Windows Embedded main competitor.&lt;br /&gt;I’ll let everybody make up their own minds.&lt;br /&gt;&lt;br /&gt;&gt;&gt; Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-2841892467528670607?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/2841892467528670607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=2841892467528670607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2841892467528670607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2841892467528670607'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/05/interesting-article.html' title='Interesting Article'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7739654602228220743</id><published>2008-04-10T10:01:00.003Z</published><updated>2008-04-10T10:09:45.481Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='hook keyboard windows embedded ce'/><title type='text'>Hooking keyboard events in Windows CE/PPC</title><content type='html'>&lt;span style="font-family:arial;"&gt;Hi,&lt;br /&gt;&lt;br /&gt;I saw someone had asked about this on a newsgroup. Hooking keyboard events is where we can insert some code into GWES to see any keyboard presses that are happening in the system.&lt;br /&gt;&lt;br /&gt;This is a useful process if you want to record a series of keypresses from a user which may span over a number of applications. Once recorded you can play back the keypresses by inserting them into GWES again using Keybd_event. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Note in Windows CE you can't hook mouse messages like in XP.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Heres the code:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:78%;"&gt;// keyboardHook.cpp : Defines the entry point for the application.&lt;br /&gt;//&lt;br /&gt;#include "stdafx.h"&lt;br /&gt;&lt;br /&gt;#define WH_KEYBOARD_LL 20&lt;br /&gt;&lt;br /&gt;extern "C" BOOL WINAPI UnhookWindowsHookEx(HHOOK hhk);&lt;br /&gt;extern "C" LRESULT WINAPI CallNextHookEx(HHOOK hhk, int nCode, WPARAM wParam,LPARAM lParam);&lt;br /&gt;extern "C" BOOL RegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk);&lt;br /&gt;typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);&lt;br /&gt;extern "C" HHOOK WINAPI SetWindowsHookExW(int idHook,HOOKPROC lpfn,HINSTANCE hmod,DWORD dwThreadId);&lt;br /&gt;&lt;br /&gt;#define SetWindowsHookEx SetWindowsHookExW&lt;br /&gt;&lt;br /&gt;struct HHOOK__ * hKeyHook=NULL;&lt;br /&gt;&lt;br /&gt;typedef struct tagKBDLLHOOKSTRUCT {&lt;br /&gt;   DWORD vkCode; // virtual key code&lt;br /&gt;   DWORD scanCode; // scan code DWORD flags;&lt;br /&gt;   DWORD flags; // unused&lt;br /&gt;   DWORD time; // time stamp for this message&lt;br /&gt;   DWORD dwExtraInfo; // extra info from the driver or keybd_event&lt;br /&gt;} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;&lt;br /&gt;&lt;br /&gt;//Low level Keyboard Hook Proc&lt;br /&gt;__declspec(dllexport) LRESULT CALLBACK TabHook( int code, WPARAM wParam, LPARAM lParam )&lt;br /&gt;{&lt;br /&gt;   KBDLLHOOKSTRUCT* v_kbdllData = (KBDLLHOOKSTRUCT*)lParam;&lt;br /&gt;   RETAILMSG(1, (TEXT("nCode = %d, wParam = %d\r\n"), code, wParam));&lt;br /&gt;   RETAILMSG(1, (TEXT("vkCode = %d, scan = %d, time = %d\r\n"),&lt;br /&gt;      v_kbdllData-&gt;vkCode, v_kbdllData-&gt;scanCode, v_kbdllData-&gt;time));&lt;br /&gt;   return CallNextHookEx(hKeyHook,code,wParam, lParam);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// This is a simple message loop that will be used&lt;br /&gt;// to block while we are logging keys. It does not&lt;br /&gt;// perform any real task ...&lt;br /&gt;&lt;br /&gt;void MsgLoop()&lt;br /&gt;{&lt;br /&gt;   MSG message;&lt;br /&gt;   while (GetMessage(&amp;amp;message,NULL,0,0))&lt;br /&gt;   {&lt;br /&gt;      TranslateMessage( &amp;amp;message );&lt;br /&gt;      DispatchMessage( &amp;amp;message );&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;HHOOK InstallHook()&lt;br /&gt;{&lt;br /&gt;   HINSTANCE hExe = GetModuleHandle(NULL);&lt;br /&gt;   return SetWindowsHookEx (WH_KEYBOARD_LL,TabHook, hExe, NULL);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;///////////////////////////////////////////////////////////////////////////////&lt;br /&gt;//&lt;br /&gt;// WinMain - Test Entry point&lt;br /&gt;//&lt;br /&gt;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)&lt;br /&gt;{&lt;br /&gt;   hKeyHook = InstallHook();&lt;br /&gt;   MsgLoop();&lt;br /&gt;   UnhookWindowsHookEx(hKeyHook);&lt;br /&gt;   return 1;&lt;br /&gt;} &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7739654602228220743?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7739654602228220743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7739654602228220743' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7739654602228220743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7739654602228220743'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/04/hooking-keyboard-events-in-windows.html' title='Hooking keyboard events in Windows CE/PPC'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-9125614232079980282</id><published>2008-03-29T15:49:00.003Z</published><updated>2008-03-29T15:53:34.237Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bluetooth signal strength'/><title type='text'>Bluetooth signal strength</title><content type='html'>On XP it seems that most of the BT stacks support the ability to sense the signal strength when communicating with a device, apart from when using Java-ME and the Microsoft Stack on XP, for instance&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BlueSoleil&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;BLUETOOTH_DEVICE_INFO_EX&lt;br /&gt;{&lt;br /&gt;..&lt;br /&gt;CHAR cSignalStrength;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Toshiba&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Using the BtGetRSSI command you can get the difference (db value) of a received signal index on the strength of "Golden Receive Power Range"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BroadCom&lt;br /&gt;&lt;/strong&gt;Using the GetConnectionStats() you can get the signal strength, from -128 to 127&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Microsoft (Windows CE/Mobile)&lt;/strong&gt;&lt;br /&gt;Windows Mobile version of the MS stack supports signal strength through the BthReadRSSI, again a range of -128 to 128, but i can't find the same in the XP version, see &lt;a title="blocked::http://msdn2.microsoft.com/en-us/library/aa362927(VS.85).aspx" href="http://msdn2.microsoft.com/en-us/library/aa362927(VS.85).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa362927(VS.85).aspx&lt;/a&gt; for the APIs.&lt;br /&gt;&lt;br /&gt;There is a BluetoothIsConnectable() which returns a TRUE/FALSE but nothing else, the bluetoothapis.h which contains all the structures doesn't seem to have anything in it either, such as RSSI, strength or even signal so i don't think it is supported at least by any documented API.&lt;br /&gt;&lt;br /&gt;Anyone else know if you can get the RSSI signal strength using the MS BT stack on XP?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-9125614232079980282?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/9125614232079980282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=9125614232079980282' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/9125614232079980282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/9125614232079980282'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/03/bluetooth-signal-strength.html' title='Bluetooth signal strength'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-708281765017974733</id><published>2008-02-15T16:15:00.007Z</published><updated>2008-02-15T16:38:26.931Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mike Hall'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><title type='text'>Windows CE Codenames</title><content type='html'>Found this nice bit of text describing the history of Windows CE codenames which for some Windows CE Engineers might be interesting:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;Before the Windows CE product was released we had an internal set of tools known as the Oem Adaptation Kit also known as the OAK - an OAK of course is a type of tree.&lt;br /&gt;The initial releases of Windows CE were therefore named after trees, as follows.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#330099;"&gt;&lt;br /&gt;Windows CE 1.0 - Alder (Nov 1996)&lt;br /&gt;Windows CE 2.0 - Birch (Nov 1997)&lt;br /&gt;Windows CE 3.0 - Cedar (Apr 2000)&lt;br /&gt;&lt;br /&gt;Interestingly, there was a second team within the Windows CE group that worked on the tools, I guess you could consider tools to be something that makes a job easier, or cuts the job down to size - therefore the tools releases were named after things that cut down trees - as follows...&lt;br /&gt;&lt;br /&gt;Windows CE 1.0 - Alder - Tools: Axe&lt;br /&gt;Windows CE 2.0 - Birch - Tools: Buzzsaw&lt;br /&gt;Windows CE 3.0 - Cedar - Tools: Chainsaw&lt;br /&gt;&lt;br /&gt;For Windows CE 4.0 the original plan was to call the O/S DougFir (DouglasFir), the thing that cuts down DougFir trees was going to be Dozer (BullDozer) - interestingly, at Windows CE 4.0 the o/s team and tools teams merged together to form a new, combined team - the codenames for the operating system and tools also changed at this time from trees/tools to &lt;drumroll&gt;Whiskeys&lt;/drumroll&gt; - so the codenames for Windows CE 4.0 onwards are as follows.&lt;br /&gt;&lt;br /&gt;Windows CE 4.0 - Talisker (Jan 2002)&lt;br /&gt;Windows CE 4.1 - Jameson (Jun 2002)&lt;br /&gt;Windows CE 4.2 - McKendric (Apr 2003)&lt;br /&gt;Windows CE 5.0 - Macallan (Aug 2004)&lt;br /&gt;Windows CE 5.0 Network Device Feature Pack - Tomatin (Apr 2006)&lt;br /&gt;Windows CE 6.0 - Yamazaki (Sep 2006)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;* I found it on &lt;a href="http://blogs.msdn.com/testembedded"&gt;Test Embedded &lt;/a&gt;but it was originally posted by &lt;a href="http://blogs.msdn.com/mikehall/"&gt;Mike Hall&lt;/a&gt;;&lt;br /&gt;&lt;br /&gt;- Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-708281765017974733?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/708281765017974733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=708281765017974733' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/708281765017974733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/708281765017974733'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/02/windows-ce-codenames.html' title='Windows CE Codenames'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5975425528426949789</id><published>2008-02-11T16:09:00.000Z</published><updated>2008-02-11T16:42:17.009Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='XPe'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct Insight'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE Gold Partner'/><category scheme='http://www.blogger.com/atom/ns#' term='ByteSnap'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded Partner'/><title type='text'>New place of work</title><content type='html'>Thought I'd just let everybody know that keeps an eye on this Blog that over the last couple of months you might have noticed the new company web links appear.&lt;br /&gt;This has been due to both my self and Graeme leaving Intrinsyc after they decided to close the EMEA office.&lt;br /&gt;&lt;br /&gt;I'm sure Graeme will let you know more about his new plans creating &lt;a href="http://www.bytesnap.co.uk/"&gt;ByteSnap&lt;/a&gt; but for this entry I'll focus on my self (but keep it brief).&lt;br /&gt;&lt;br /&gt;I've joined another EMEA Embedded Gold Partner in the UK called Direct Insight Ltd.(&lt;a href="http://www.directinsight.co.uk/"&gt;www.directinsight.co.uk&lt;/a&gt;) as the "Embedded Platform Architect".&lt;br /&gt;Direct Insight supplies embedded development platforms encompassing reference kits, production ready modules, embedded development tools, training and services. Thousands of developers across Europe rely on our expertise, support and product solutions to get to market. We are also experts in the field of JTAG test and programming.&lt;br /&gt;&lt;br /&gt;Anyway enough advertising. But what I can say is this new role will let me continue to build on and keep my Windows Embedded knowledge up to date which I can share with you all and help enable more products to design in Windows CE, WinMo and XPe.&lt;br /&gt;&lt;br /&gt;- Nigel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5975425528426949789?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5975425528426949789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5975425528426949789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5975425528426949789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5975425528426949789'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/02/new-place-of-work.html' title='New place of work'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7483002929434942003</id><published>2008-02-05T17:24:00.000Z</published><updated>2008-02-05T17:31:20.958Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='cellcore windows ce 6.0 tapi'/><title type='text'>Finding Cellcore examples for use in CE6.0</title><content type='html'>&lt;span style="font-family:arial;"&gt;If you are trying out the Cellcore component in CE6.0 to dial voice numbers, receive calls, send and receive text messages and are looking for code examples then try the Smartphone SDK, there are examples under here most of which will compile as they are:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Smartphone SDK\Samples\CPP\Win32\Cellcore\..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;For example the &lt;span style="color:#3366ff;"&gt;SMS\HelloSMS &lt;/span&gt;code can be used for sending and receiving SMS messages, this &lt;/span&gt;&lt;span style="font-family:arial;"&gt;uses the &lt;span style="color:#3366ff;"&gt;SmsOpen&lt;/span&gt; and &lt;span style="color:#3366ff;"&gt;SmsSendMessage&lt;/span&gt; functions which are identical between CE6.0 and Windows Mobile.&lt;br /&gt;&lt;br /&gt;There are many code examples in here which certainly helped me out with the TAPI system for setting up voice calls for outgoing and incoming calls.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7483002929434942003?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7483002929434942003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7483002929434942003' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7483002929434942003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7483002929434942003'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/02/finding-cellcore-examples-for-use-in.html' title='Finding Cellcore examples for use in CE6.0'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7187449923427652706</id><published>2008-01-31T14:39:00.000Z</published><updated>2008-01-31T14:44:55.319Z</updated><title type='text'>Cab Installation Debugging Issues</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_Al5SuLSt4sY/R6HeqFZdT6I/AAAAAAAAAAk/Y5054VNznSE/s1600-h/activeSync.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5161651462528126882" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_Al5SuLSt4sY/R6HeqFZdT6I/AAAAAAAAAAk/Y5054VNznSE/s200/activeSync.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:arial;"&gt;Having problems with CAB files installing on devices; remember a detailed XML log of the installation process can be found on the device under:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;\Application Data\Volatile\setup.log&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately this doesn't include information about available memory and file system usage on the device at the time of installation but it can be useful for debugging purposes especially for registration of DLLs and read only files failing to be copied over.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7187449923427652706?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7187449923427652706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7187449923427652706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7187449923427652706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7187449923427652706'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/01/cab-installation-debugging-issues.html' title='Cab Installation Debugging Issues'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Al5SuLSt4sY/R6HeqFZdT6I/AAAAAAAAAAk/Y5054VNznSE/s72-c/activeSync.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7178867292199635087</id><published>2008-01-24T14:26:00.000Z</published><updated>2008-01-24T14:33:32.377Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DShow custom filter windows ce filtergraph'/><title type='text'>Using custom DShow filters without registering DLLs</title><content type='html'>&lt;span style="font-family:arial;"&gt;If you are creating a media application or utility that requires a DMO or DShow filter but instead of having clunky separate dlls that may need code signing and/or registring with DShow, did you know that you can embed the filter within your main application.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;For example for a source filter you can specify a new class and base it on the DShow components you require:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;class MySourceFilter : public CSourceStream&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   public:&lt;br /&gt;      MySourceFilter( HRESULT* phr, LPCWSTR pName);&lt;br /&gt;      virtual ~MySourceFilter(void);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;When you create your filtergraph you can use AddFilter to add an instance of your class:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Create and add new source filter&lt;br /&gt;m_source = new MySourceFilter(NULL, &amp;amp;hr);&lt;br /&gt;hr = m_pGraph-&gt;AddFilter((IBaseFilter*)m_source, L"Source");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Simple as that! &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;You don't need to support the registration or have registry files to allow DShow to find your filter as you've explictly added it yourself.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7178867292199635087?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7178867292199635087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7178867292199635087' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7178867292199635087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7178867292199635087'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/01/using-custom-dshow-filters-without.html' title='Using custom DShow filters without registering DLLs'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-85323011104032377</id><published>2008-01-10T13:43:00.000Z</published><updated>2008-01-10T14:19:37.936Z</updated><title type='text'>Configuring MSI installers for Vista</title><content type='html'>When creating an MSI installable project (could be for your new Windows Mobile / Windows CE CAB project), you may encounter a problem with security on Vista, the error :&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;"The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2869."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To get around this I use the following in a PostBuildEvent on my PC installer project in visual studio 2005:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;cscript.exe "$(ProjectDir)..\..\scripts\CustomAction_NoImpersonate.js" "$(BuiltOuputPath)"cscript.exe "$(ProjectDir)..\..\scripts\WiRunSQL.vbs" "$(BuiltOuputPath)" "INSERT INTO `Error` (`Error`, `Message`) VALUES (1001, 'Error [1]: [2]')"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You will need&lt;br /&gt;&lt;br /&gt;- cscript.exe (provided in Windows XP)&lt;br /&gt;- CustomAction_NoImpersonate.js (see &lt;a href="http://blogs.msdn.com/astebner/archive/2006/10/23/mailbag-how-to-set-the-noimpersonate-flag-for-a-custom-action-in-visual-studio-2005.aspx"&gt;Aaron Stebner's site for more information&lt;/a&gt; )&lt;br /&gt;- WiRunSQL.vbs (&lt;a href="http://msdn2.microsoft.com/en-us/library/aa370834(VS.85).aspx"&gt;Windows Installer Software Development Kit SDK&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-85323011104032377?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/85323011104032377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=85323011104032377' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/85323011104032377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/85323011104032377'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/01/configuring-msi-installers-for-vista.html' title='Configuring MSI installers for Vista'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7630358909664074923</id><published>2008-01-03T14:41:00.000Z</published><updated>2008-01-03T14:59:39.267Z</updated><title type='text'>Making an MSI to install PPC/SP Cab files</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_Al5SuLSt4sY/R3z31Kq7z2I/AAAAAAAAAAc/jgV8mOBLPSA/s1600-h/images.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5151264566574567266" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_Al5SuLSt4sY/R3z31Kq7z2I/AAAAAAAAAAc/jgV8mOBLPSA/s200/images.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Want to install your mobile application from your PC with your PDA connected via active sync but not sure how to do it? &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Visual Studio 2005 includes all the tools to be able to create an installable CAB file for your PocketPC device but making the link between a PC MSI file and this CAB file isn't obvious. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;It can be done by creating a PC installer that first installs your .CAB file on the PC, then afterwards launches small VB/C# app which invokes the Windos CE App Manager. This pushs the CAB file down onto the device either now or on next connection.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The basics of this and the VB/C# launcher can be found on MSDN:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms838273.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms838273.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Note this is for VS2003 which didn't include as rich a set of project types, check out &lt;a href="http://www.devx.com/wireless/Article/31198/1954?pf=true"&gt;http://www.devx.com/wireless/Article/31198/1954?pf=true&lt;/a&gt; which is written for VS2005, very handy!&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Note for Vista you will need to alter the security properties of the MSI file as it will not have the correct permissions to launch the Windows CE App Manager (or Vista Mobile Device Center as its known). This is a command line operation, i'll detail this in a later post!&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Enjoy!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7630358909664074923?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7630358909664074923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7630358909664074923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7630358909664074923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7630358909664074923'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2008/01/making-msi-to-install-ppcsp-cab-files.html' title='Making an MSI to install PPC/SP Cab files'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Al5SuLSt4sY/R3z31Kq7z2I/AAAAAAAAAAc/jgV8mOBLPSA/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1806853387744934880</id><published>2007-12-19T09:30:00.000Z</published><updated>2007-12-19T09:58:57.844Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth broadcom micosoft pocketpc smartphone'/><title type='text'>Determining Broadcom vs Microsoft Bluetooth Stack on PPC</title><content type='html'>I was always under the impression that Smartphone used the Microsoft bluetooth stack and PocketPC used the Broadcom stack, but this isn't true!&lt;br /&gt;&lt;br /&gt;OEMs for PocketPC can use any stack, so some PPC devices still use the Microsoft stack.&lt;br /&gt;&lt;br /&gt;To determine this at runtime try loading the broadcom dll:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HINSTANCE hInst = LoadLibrary(L"btsdkce50.dll");&lt;br /&gt;&lt;br /&gt;If this fails then try the microsoft bluetooth APIs...!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1806853387744934880?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1806853387744934880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1806853387744934880' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1806853387744934880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1806853387744934880'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/12/determining-broadcom-vs-microsoft.html' title='Determining Broadcom vs Microsoft Bluetooth Stack on PPC'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4248099189279948856</id><published>2007-12-09T15:47:00.000Z</published><updated>2007-12-09T18:28:45.373Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='skiing video mixing smartphone pocketpc'/><title type='text'>TrakAx Video Mixing Application Is Released!</title><content type='html'>&lt;p&gt;I've been lucky to be involved in the development of the new Highandes TrakAx video mixing application for Windows Smartphones and PocketPC devices. &lt;/p&gt;&lt;p&gt;This has got to be one of the most powerful mobile video editing applications, taking phone content such as music, pictures, videos you can mix them together with effects to create a video to MMS, Email or save to your device to show your friends!&lt;/p&gt;&lt;p&gt;Heres a quick mix I made on my S710 (E650) 200Mhz phone from a recent skiing trip:&lt;/p&gt;&lt;p&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-a8b12c49abb2a180" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v20.nonxt4.googlevideo.com/videoplayback?id%3Da8b12c49abb2a180%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329992825%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D61A72ACEDDE87520432148AA39A06B9A2BB1B8E0.4FA7B5DEB4D8C04AF5D52E130A91A03DBAD846CA%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da8b12c49abb2a180%26offsetms%3D5000%26itag%3Dw160%26sigh%3DMnuRwsm2OKd8yl-wHdl92L6adRM&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v20.nonxt4.googlevideo.com/videoplayback?id%3Da8b12c49abb2a180%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329992825%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D61A72ACEDDE87520432148AA39A06B9A2BB1B8E0.4FA7B5DEB4D8C04AF5D52E130A91A03DBAD846CA%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da8b12c49abb2a180%26offsetms%3D5000%26itag%3Dw160%26sigh%3DMnuRwsm2OKd8yl-wHdl92L6adRM&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;All mixed from the hotel bar afterwards! &lt;/p&gt;&lt;p&gt;&lt;br /&gt;A must for all Windows mobile phone owners!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;See &lt;a href="http://www.trakax.com/"&gt;http://www.trakax.com/&lt;/a&gt; for more information including a 7 day free trial!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4248099189279948856?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=a8b12c49abb2a180&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4248099189279948856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4248099189279948856' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4248099189279948856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4248099189279948856'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/12/trakax-video-mixing-application-is.html' title='TrakAx Video Mixing Application Is Released!'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1875006801144222331</id><published>2007-09-13T13:19:00.000Z</published><updated>2007-09-13T13:32:07.690Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SD Card'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE 5.0 QFE'/><category scheme='http://www.blogger.com/atom/ns#' term='SDHC'/><title type='text'>SDHC support in Windows CE 5.0</title><content type='html'>With SD cards getting bigger and bigger many people don't realise that there is a different standard when you get up above 2GB's. This normally means 4GB and above.&lt;br /&gt;A 4GB+ card is part of the SDHC (Secure Digital High Capacity, SD 2.0) Standard.&lt;br /&gt;SDHC uses the FAT32 file system which supports a higher data density than FAT16. It uses the same form factor as SD, but the SD 2.0 standard in SDHC uses a different memory addressing method (sector addressing vs byte addressing). SDHC cards only work in SDHC compatible devices, but standard SD cards work in both SD and SDHC devices. The SDHC trademark is licensed to ensure compatibility.&lt;br /&gt;&lt;br /&gt;To support this there is an update for CE 5.0, which can be found here  &lt;a title="http://support.microsoft.com/kb/933809" href="http://support.microsoft.com/kb/933809"&gt;http://support.microsoft.com/kb/933809&lt;/a&gt;. This enables deployment of SD 2.0 specification functionality which can theoretically take you up to 32GB.  SD 2.0 functionality is available out-of-the-box in Windows CE 6.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1875006801144222331?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1875006801144222331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1875006801144222331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1875006801144222331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1875006801144222331'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/09/sdhc-support-in-windows-ce-50.html' title='SDHC support in Windows CE 5.0'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-9053728408222202762</id><published>2007-07-25T09:35:00.001Z</published><updated>2007-07-25T09:40:01.947Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='backlight power smartphone'/><title type='text'>In the dark with backlights...</title><content type='html'>Nice easy one here, which is always useful...&lt;br /&gt;&lt;br /&gt;On PPC/Smartphone if your app needs to keep the backlight on you can requst that the backlight driver is kept in a high power state (i.e. ON!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// force backlight on&lt;br /&gt;SetPowerRequirement(TEXT("BKL1:"), D0, POWER_NAME  POWER_FORCE, NULL, 0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On PPC you may need to keep the system alive as well else it'll go into suspend, but this'll work indefinately on smartphone.&lt;br /&gt;&lt;br /&gt;Use ReleasePowerRequirement to return the backlight to system timeout control. Note unlike some SatNav software this is nicer than editing the control panel system settings...! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-9053728408222202762?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/9053728408222202762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=9053728408222202762' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/9053728408222202762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/9053728408222202762'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/07/in-dark-with-backlights.html' title='In the dark with backlights...'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4975760795783796778</id><published>2007-07-13T09:18:00.000Z</published><updated>2007-07-13T13:06:36.481Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSHOW debug windows CE'/><title type='text'>Enabling DShow Debug</title><content type='html'>Having problems debugging your new DShow filter?&lt;br /&gt;&lt;br /&gt;When using a debug CE build (or a retail build with a debug quartz.dll) if you can enable DShow logging by turing on the following debug zones of quartz (tested in CE6.0):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_Al5SuLSt4sY/Rpd4cew8VRI/AAAAAAAAAAU/3NHsjfDR9XY/s1600-h/quart.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5086666734828279058" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_Al5SuLSt4sY/Rpd4cew8VRI/AAAAAAAAAAU/3NHsjfDR9XY/s320/quart.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_Al5SuLSt4sY/Rpd4R-w8VQI/AAAAAAAAAAM/qBQuupuDvag/s1600-h/quart.bmp"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Good luck debugging!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;In previous OS versions (certainly CE4.2) you could edit the registry to enable these zones:&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Debug\GLOBAL]&lt;br /&gt;"TIMING"=dword:0&lt;br /&gt;"TRACE"=dword:0&lt;br /&gt;"MEMORY"=dword:0&lt;br /&gt;"LOCKING"=dword:0&lt;br /&gt;"ERROR"=dword:0&lt;br /&gt;&lt;br /&gt;The levels go from 0 (none) to 5 (full). Try first changing TRACE and ERROR to 5 to start with.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4975760795783796778?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4975760795783796778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4975760795783796778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4975760795783796778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4975760795783796778'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/07/enabling-dshow-debug.html' title='Enabling DShow Debug'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Al5SuLSt4sY/Rpd4cew8VRI/AAAAAAAAAAU/3NHsjfDR9XY/s72-c/quart.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1184516132637206744</id><published>2007-07-12T12:47:00.000Z</published><updated>2007-07-12T12:57:43.911Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='CE Video Driver'/><title type='text'>Video Driver Speedup</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_m8AxjftQEl4/RpYjmHcbmDI/AAAAAAAAAA8/Fy3ansId3lk/s1600-h/video.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5086291966901852210" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_m8AxjftQEl4/RpYjmHcbmDI/AAAAAAAAAA8/Fy3ansId3lk/s200/video.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;I've been working recently on improving the video performance on a Samsung 2413 processor.&lt;/p&gt;&lt;p&gt;The platform I'm working on does not have hardware video acceleration or a hardware cursor.&lt;/p&gt;&lt;p&gt;Did you know that if you disable the software cursor in the driver and remove the overlap detection for emulated line and blit you can get a two fold speed increase at least with drawing polygons.&lt;/p&gt;&lt;p&gt;The hardware supports DMA and I've started to look at using this to accelerate line fills and various blits.  Unfortunately the hardware does not support block DMA which cuts down how it could help with majority of blit operations.  Another snag with this approach is the overhead it takes to setup the DMA controller and cope with odd end of line conditions.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1184516132637206744?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1184516132637206744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1184516132637206744' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1184516132637206744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1184516132637206744'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/07/video-driver-speedup.html' title='Video Driver Speedup'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_m8AxjftQEl4/RpYjmHcbmDI/AAAAAAAAAA8/Fy3ansId3lk/s72-c/video.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-4122431923415344528</id><published>2007-06-19T18:13:00.000Z</published><updated>2007-06-19T18:14:27.041Z</updated><title type='text'>DeviceEmulator Slow?</title><content type='html'>Recently I was working with DeviceEmulator on Windows CE 6.0 and it seemed slow.  If you are using Windows CE 6.0 and you would like debug OS images to be a little more responsive when running on DeviceEmulator here’s a couple of things we found that you can try.&lt;br /&gt;&lt;br /&gt;Add a DWORD value in HKCU\Software\Microsoft\Platform Builder\6.00\Debug called "SynchronousDebugMessage" and set it to 0.&lt;br /&gt;&lt;br /&gt;This tip found here:&lt;br /&gt;&lt;a href="http://groups.google.com/group/microsoft.public.windowsce.platbuilder/browse_thread/thread/860b1ff6347ed62c/0d3af9395d161fce?lnk=st&amp;q=%22(un)load%22+windowsce&amp;amp;rnum=3&amp;hl=en#0d3af9395d161fce"&gt;http://groups.google.com/group/microsoft.public.windowsce.platbuilder/browse_thread/thread/860b1ff6347ed62c/0d3af9395d161fce?lnk=st&amp;amp;q=%22(un)load%22+windowsce&amp;rnum=3&amp;amp;hl=en#0d3af9395d161fce&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The other thing you can try is to ignore module loads until later.&lt;br /&gt;Go to target-&gt;connectivity options dialog&lt;br /&gt;Switch to the "service status" tab&lt;br /&gt;Click "settings" for "Kernel Debugger OS Awareness".&lt;br /&gt;Switch the "Module (un)load notification to the debugger" option&lt;br /&gt;&lt;br /&gt;The help from the dialog says the following options are available:&lt;br /&gt;Always off: Never catch notification, module changes are updated on each halt. Boot time and execution is fast, real-time, but breakpoints cannot be instantiated on time.&lt;br /&gt;Always on: Catch notification of all module changes immediately. Boot time and execution is slow, non real-time, but breakpoints can be instantiated on time.&lt;br /&gt;Off until first halt: Suppress notification until first target halt, then catch all notifications.&lt;br /&gt;&lt;br /&gt;This tip found here:&lt;br /&gt;&lt;a href="http://groups.google.com/group/microsoft.public.windowsce.platbuilder/browse_thread/thread/860b1ff6347ed62c/0d3af9395d161fce?lnk=st&amp;q=%22(un)load%22+windowsce&amp;amp;rnum=3&amp;hl=en#0d3af9395d161fce"&gt;http://groups.google.com/group/microsoft.public.windowsce.platbuilder/browse_thread/thread/860b1ff6347ed62c/0d3af9395d161fce?lnk=st&amp;amp;q=%22(un)load%22+windowsce&amp;rnum=3&amp;amp;hl=en#0d3af9395d161fce&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-4122431923415344528?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/4122431923415344528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=4122431923415344528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4122431923415344528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/4122431923415344528'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/06/deviceemulator-slow.html' title='DeviceEmulator Slow?'/><author><name>PaulM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8869897291414915686</id><published>2007-06-19T09:39:00.000Z</published><updated>2007-06-19T09:50:50.282Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='console command line windows ce serial'/><title type='text'>Command line (Console) over serial</title><content type='html'>I'm a big fan of command line access, if you've got a headless device or a device with a custom shell / UI this tweak is really useful...!&lt;br /&gt;&lt;br /&gt;To configure the command processor shell on windows CE to run over a serial connection add the following to your registry&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[HKEY_LOCAL_MACHINE\Drivers\Console]    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OutputTo = REG_DWORD:1                // Redirects CMD to COM1    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;COMSpeed = REG_DWORD:19200            // Speed of serial connection&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This redirects all input and output for all console applications to the serial port, hmm wonder if it'll work with bluetooth as well... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8869897291414915686?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8869897291414915686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8869897291414915686' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8869897291414915686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8869897291414915686'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/06/command-line-console-over-serial.html' title='Command line (Console) over serial'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8191725488254779153</id><published>2007-06-14T09:25:00.000Z</published><updated>2007-06-14T09:33:20.933Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Image Factory windows Mobile windows CE'/><title type='text'>Using Image Factory under CE/Windows Mobile</title><content type='html'>Having trouble getting Windows CE/Windows Mobile factory working to load pictures?&lt;br /&gt;&lt;br /&gt;The code below will load a JPG/GIF/PNG (or whatever decoders are installed on your device) etc from a file and paint it to the screen:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;CoInitializeEx(NULL, 0);&lt;br /&gt;IImagingFactory* pImageFactory;&lt;br /&gt;IImage *pImage = NULL;&lt;br /&gt;&lt;br /&gt;HDC dc = GetDC(0); // insert your window handle here, else this is the desktop&lt;br /&gt;&lt;br /&gt;HRESULT hr = CoCreateInstance(CLSID_ImagingFactory, NULL,&lt;br /&gt;CLSCTX_INPROC_SERVER,&lt;br /&gt;__uuidof(IImagingFactory),&lt;br /&gt;(LPVOID *)&amp;pImageFactory);&lt;br /&gt;&lt;br /&gt;// Load image from file&lt;br /&gt;pImageFactory-&gt;CreateImageFromFile(bitmapName, &amp;pImage);&lt;br /&gt;&lt;br /&gt;// Get image information&lt;br /&gt;ImageInfo info;&lt;br /&gt;pImage-&gt;GetImageInfo(&amp;info);&lt;br /&gt;&lt;br /&gt;RECT rc={0,0,info.Width, info.Height};&lt;br /&gt;&lt;br /&gt;// draw jpg/gif etc onto temp dc&lt;br /&gt;pImage-&gt;Draw(dc, &amp;rc, NULL);&lt;br /&gt;&lt;br /&gt;// Clean up&lt;br /&gt;pImage-&gt;Release();&lt;br /&gt;pImageFactory-&gt;Release();&lt;br /&gt;&lt;br /&gt;CoUninitialize();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8191725488254779153?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8191725488254779153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8191725488254779153' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8191725488254779153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8191725488254779153'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/06/using-image-factory-under-cewindows.html' title='Using Image Factory under CE/Windows Mobile'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5233725351356282278</id><published>2007-06-13T12:45:00.000Z</published><updated>2007-06-13T13:03:02.471Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MFC Memory Leak RemoveAll EVC CPtrArray'/><title type='text'>Memory Leaks with MFC CPtrArray</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_m8AxjftQEl4/Rm_psDHo4uI/AAAAAAAAAA0/yPAnev8dwuQ/s1600-h/memory-leak.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5075532248030700258" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_m8AxjftQEl4/Rm_psDHo4uI/AAAAAAAAAA0/yPAnev8dwuQ/s200/memory-leak.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Just finished debugging some 3rd party code with memory leaks.&lt;br /&gt;&lt;br /&gt;The code used the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;RemovalAll&lt;/span&gt; member operation on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;MFC&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CPtrArray&lt;/span&gt; class. This operation needs to be used with care as all the array elements need to be deleted AFTER the call to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;RemoveAll&lt;/span&gt;. Calling &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;RemoveAll&lt;/span&gt; before deleting all the array objects will cause a memory leak.&lt;br /&gt;Another memory leak was caused by deleting a class pointer that had been passed to a function as a void pointer. When delete is executed on a void pointer the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;destructor&lt;/span&gt; of the class is obviously not called.&lt;br /&gt;&lt;br /&gt;One final comment on memory leaks fixing is beware when using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;EVC&lt;/span&gt;4 debug environment. Over the past few days I was chasing a memory leak that did not exist but was a symptom of using the debugger!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5233725351356282278?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5233725351356282278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5233725351356282278' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5233725351356282278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5233725351356282278'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/06/memory-leaks-with-mfc-cptrarray.html' title='Memory Leaks with MFC CPtrArray'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_m8AxjftQEl4/Rm_psDHo4uI/AAAAAAAAAA0/yPAnev8dwuQ/s72-c/memory-leak.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-2864012944753889454</id><published>2007-06-12T13:52:00.000Z</published><updated>2007-06-12T14:39:11.461Z</updated><title type='text'>Windows Mobile Device Center 6.1 for Windows Vista</title><content type='html'>You can now find the latest release of &lt;a href="http://www.microsoft.com/windowsmobile/devicecenter.mspx"&gt;WMDC version 6.1&lt;/a&gt; available.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The key updates delivered in this release include: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;IRM activation&lt;/li&gt;&lt;li&gt;HTML mail&lt;/li&gt;&lt;li&gt;Certificate enrollment&lt;/li&gt;&lt;li&gt;File synchronization on all WM 6 devices (Yes, even Smartphone!)&lt;/li&gt;&lt;li&gt;Windows Embedded CE 6.0 support&lt;/li&gt;&lt;li&gt;Automatic device authentication&lt;/li&gt;&lt;li&gt;Product registration&lt;/li&gt;&lt;li&gt;Silent-mode install for corporate deployment&lt;br /&gt;&lt;a href="http://"&gt;And more&lt;/a&gt;! &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_UirtijHjVnU/Rm6nMtAUNgI/AAAAAAAAAAk/qP14k5qznTQ/s1600-h/nav_6000_installed.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5075177666774316546" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="149" alt="" src="http://3.bp.blogspot.com/_UirtijHjVnU/Rm6nMtAUNgI/AAAAAAAAAAk/qP14k5qznTQ/s320/nav_6000_installed.jpg" width="194" border="0" /&gt;&lt;/a&gt; But from our basic testing it looks like it solves the previous versions problem which is connecting Vista to a Windows Embedded CE device via it's Activesync module. Even though the MS official descriptions only indicate WinCE 6.0 I have had it tested with a WinCE 4.2 device (seen here). So I see no reason why it's not going to work with 4.0, 4.2 &amp;amp; 5.0 etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-2864012944753889454?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/2864012944753889454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=2864012944753889454' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2864012944753889454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2864012944753889454'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/06/windows-mobile-device-center-61-for.html' title='Windows Mobile Device Center 6.1 for Windows Vista'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UirtijHjVnU/Rm6nMtAUNgI/AAAAAAAAAAk/qP14k5qznTQ/s72-c/nav_6000_installed.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5432742251757064760</id><published>2007-05-15T15:34:00.000Z</published><updated>2007-05-17T14:58:53.607Z</updated><title type='text'>New contributor</title><content type='html'>This is my first post and should go someway to introduce myself and let you know my relevant background and experience.&lt;br /&gt;&lt;br /&gt;My name is Nigel Goodyear and I've spent 19 years in the mobile and embedded computer industry. 14 of these working at a rugged handheld manufacturer, Husky Computers (now Itronix) and have been with &lt;a href="http://www.intrinsyc.com/"&gt;Intrinsyc&lt;/a&gt; since 2002.&lt;br /&gt;&lt;br /&gt;Both jobs have led to in depth experience with mobile computers, embedded systems and wireless communications.&lt;br /&gt;My Microsoft Windows Embedded experience includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Porting BSP's, device drivers and low level firmware&lt;/li&gt;&lt;li&gt;Windows Embedded CE version 2.11 to 6.0 and Windows Mobile&lt;/li&gt;&lt;li&gt;Customer Account and Project Management&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://3.bp.blogspot.com/_UirtijHjVnU/RknYWyxMV3I/AAAAAAAAAAU/4zN6pUzWr98/s1600-h/fex.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5064817142051657586" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="113" alt="" src="http://3.bp.blogspot.com/_UirtijHjVnU/RknYWyxMV3I/AAAAAAAAAAU/4zN6pUzWr98/s320/fex.jpg" width="140" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:times new roman;"&gt;(q) No prize - but does anybody remember the o/s variant and kernel this device executed?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5432742251757064760?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5432742251757064760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5432742251757064760' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5432742251757064760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5432742251757064760'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/05/new-contributor.html' title='New contributor'/><author><name>NigelG</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UirtijHjVnU/RknYWyxMV3I/AAAAAAAAAAU/4zN6pUzWr98/s72-c/fex.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5287133090278240000</id><published>2007-05-03T14:41:00.000Z</published><updated>2007-05-03T14:46:34.025Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth stack windows mobile broadcom'/><title type='text'>Bluetooth Stacks and Windows Mobile</title><content type='html'>If you want to programmatically access the Bluetooth stacks on Windows Mobile its worth knowing that the Pocket PC stack is different from the stack in Smartphone.&lt;br /&gt;&lt;br /&gt;Pocket PC uses the Broadcom stack, the SDK can be freely downloaded from Broadcom at &lt;a href="http://www.broadcom.com/products/bluetooth_sdk.php"&gt;http://www.broadcom.com/products/bluetooth_sdk.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Smartphone uses the standard Microsoft stack that has its API set built into the Smartphone SDK, the details of which can we seen on MSDN &lt;a href="http://msdn2.microsoft.com/en-us/library/ms834669.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms834669.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5287133090278240000?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5287133090278240000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5287133090278240000' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5287133090278240000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5287133090278240000'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/05/bluetooth-stacks-and-windows-mobile.html' title='Bluetooth Stacks and Windows Mobile'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1503389857024539757</id><published>2007-05-02T09:50:00.000Z</published><updated>2007-05-02T14:32:14.585Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='IP Network Routing'/><title type='text'>Routing IP traffic via specified adapter</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_m8AxjftQEl4/RjhflyfCvoI/AAAAAAAAAAs/jj41Q8Rb_dg/s1600-h/router.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5059899284162526850" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_m8AxjftQEl4/RjhflyfCvoI/AAAAAAAAAAs/jj41Q8Rb_dg/s200/router.jpg" border="0" /&gt;&lt;/a&gt; On a recent project it became necessary to be able to route certain IP traffic via a specified network adapter. Although rather involved this is not as hard as it may first seem. On a desktop this would be achieved by changing the IP routing tables using the ROUTE command, but how do you do this programmatically on a handheld?&lt;br /&gt;&lt;br /&gt;First it is necessary to find the IP address, gateway address and interface index of the adapter that you wish to route over. This information can easily be obtained by calling GetAdapterAddresses() a number of times to enumerate all network device data.&lt;br /&gt;&lt;br /&gt;Once the IP information has been obtained for the selected adapter then CreateIpForwardEntry() can be called to setup the route. The CreateIpForwardEntry() API takes a PMIB_IPFORWARDROW parameter essentially a route definition. This needs to be setup as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;dwForwardDest - Set to the IP address of server you will be connecting too.&lt;/li&gt;&lt;li&gt;dwForwardMask - Mapping IP address mask. This will need to be 255.255.255.255 for specified traffic.&lt;/li&gt;&lt;li&gt;dwForwardPolicy - Set to zero.&lt;/li&gt;&lt;li&gt;dwForwardNextHop - This needs to be set to the discovered IP adapters gateway address.&lt;/li&gt;&lt;li&gt;dwForwardIfIndex - This needs to be set to the discovered IP adapters index.&lt;/li&gt;&lt;li&gt;dwForwardType - This is set to MIB_IPROUTE_TYPE_INDIRECT.&lt;/li&gt;&lt;li&gt;dwForwardProto - This is set to MIB_IPPROTO_NETMGMT.&lt;/li&gt;&lt;li&gt;dwForwardAge - Set to zero.&lt;/li&gt;&lt;li&gt;dwForwardNextHopAS - Set to zero.&lt;/li&gt;&lt;li&gt;dwForwardMetric1 - Set to 1.&lt;/li&gt;&lt;li&gt;dwForwardMetric2-5 - Set to 0xFFFFFFFF.&lt;/li&gt;&lt;/ul&gt;It is now possible to simply use sockets to connect to the server or service that you specified in the dwForwardDest. All IP traffic over this socket will be directed via the adapter that was specified.&lt;br /&gt;&lt;br /&gt;At the end of the session the DeleteIpForwardEntry() API should be called to tear down the route.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1503389857024539757?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1503389857024539757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1503389857024539757' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1503389857024539757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1503389857024539757'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/05/routing-ip-traffic-via-specified.html' title='Routing IP traffic via specified adapter'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_m8AxjftQEl4/RjhflyfCvoI/AAAAAAAAAAs/jj41Q8Rb_dg/s72-c/router.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-3390135322957462682</id><published>2007-05-02T08:31:00.000Z</published><updated>2007-05-02T08:34:46.231Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile WinMo Smartphone'/><title type='text'>Changing start menu appearance</title><content type='html'>I've just read this on the newsgroup 'microsoft.public.smartphone.developer' and did not realise how easy it was to do.  The display setting for the start menu is controlled by the registry key:&lt;br /&gt;&lt;br /&gt;HKCU\Software\Microsoft\Shell\StartMenu\GridView&lt;br /&gt;&lt;br /&gt;Set it to 0 to get a list view and a 1 to get a grid view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-3390135322957462682?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/3390135322957462682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=3390135322957462682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3390135322957462682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3390135322957462682'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/05/changing-start-menu-appearance.html' title='Changing start menu appearance'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-3197743815130594186</id><published>2007-04-30T12:01:00.000Z</published><updated>2007-04-30T12:08:04.039Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PB multi cpu dual core platform builder'/><title type='text'>Using Multi/Dual Core Processors with Platform Builder</title><content type='html'>If you’re lucky enough to have a dual core development PC, try adding this to your PC environment variables to enable parallel builds on both CPUs:&lt;br /&gt;&lt;br /&gt;set BUILD_MULTIPROCESSOR=2&lt;br /&gt;&lt;br /&gt;You’ll then see in taskmanager that your CPU usage goes up to 100% now instead of just past 50%!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-3197743815130594186?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/3197743815130594186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=3197743815130594186' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3197743815130594186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/3197743815130594186'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/using-multidual-core-processors-with.html' title='Using Multi/Dual Core Processors with Platform Builder'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7155092692745717143</id><published>2007-04-30T11:59:00.001Z</published><updated>2007-04-30T11:59:52.118Z</updated><title type='text'>Removable disk timeouts in CE</title><content type='html'>&lt;p&gt;Ever wondered why it takes ages for the Windows CE filesystem to remove SDCards from the filesystem after physically removing the card?&lt;br /&gt;&lt;br /&gt;Well its because there are two FATFS registry settings which affect this behaviour. Also these are the reason why after a resume an SDCard can take 12 seconds to become responsive again if a ReadFile operation was called when the driver was powering down for the suspend.&lt;br /&gt;&lt;br /&gt;"PNPUnloadDelay"&lt;br /&gt;Specifies the time delay in milliseconds between unmounting and detaching a device.&lt;br /&gt;Used during suspend/resume cycles where a block driver might unload and reload on resume.&lt;br /&gt;Default is 5000 microseconds.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"PnPWaitIoDelay"&lt;br /&gt;Specifies the amount of time waited before re-trying an I/O operation on an unavailable device.&lt;br /&gt;This subkey is not present in the default registry, but may be added by the OEM. If this value is not specified, it is assumed to be three times that of PNPUnloadDelay&lt;br /&gt;&lt;br /&gt;See :&lt;br /&gt;&lt;br /&gt;&lt;a title="http://msdn2.microsoft.com/en-us/library/aa912238.aspx" href="http://msdn2.microsoft.com/en-us/library/aa912238.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa912238.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The default is set in CE5.0 as 4 seconds to unmount the volume after device removal, this is the delay you see in explorer. And 3 x 4 seconds if any IO operation fails (i.e. if an app is reading/writing to an SDCard whilst the device is suspending/resuming)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7155092692745717143?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7155092692745717143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7155092692745717143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7155092692745717143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7155092692745717143'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/removable-disk-timeouts-in-ce.html' title='Removable disk timeouts in CE'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8311289440240291735</id><published>2007-04-25T13:25:00.000Z</published><updated>2007-04-25T13:30:21.791Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth spp sockets gps'/><title type='text'>Bluetooth (serial) SPP using Sockets...!</title><content type='html'>If you wondered how to connect to a BT serial device using SPP over sockets... heres how!&lt;br /&gt;&lt;br /&gt;// create your BT socket&lt;br /&gt;SOCKET s = socket (AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);&lt;br /&gt;&lt;br /&gt;// Create the connection information, this is the RFComm protocol for SPP&lt;br /&gt;SOCKADDR_BTH sa;&lt;br /&gt;memset (&amp;sa, 0, sizeof(sa));&lt;br /&gt;sa.addressFamily = AF_BTH;&lt;br /&gt;sa.btAddr = device;&lt;br /&gt;sa.port = BT_PORT_ANY;&lt;br /&gt;sa.serviceClassId = RFCOMM_PROTOCOL_UUID;  &lt;br /&gt;// connect...&lt;br /&gt;connect (s, (SOCKADDR *)&amp;sa, sizeof(sa))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once connected you can use send/recieve to send over the SPP connection:&lt;br /&gt;&lt;br /&gt;send (connectedSocket, (char*)str, len,0)&lt;br /&gt;recv( connectedSocket, str, len,0)&lt;br /&gt;&lt;br /&gt;This way you don't have to map serial ports, this was tested on Windows XP but should also work on windows CE.&lt;br /&gt;&lt;br /&gt;It was tested printing GPS information from a TOMTOM reciever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8311289440240291735?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8311289440240291735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8311289440240291735' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8311289440240291735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8311289440240291735'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/bluetooth-serial-spp-using-sockets.html' title='Bluetooth (serial) SPP using Sockets...!'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-2123192822129428037</id><published>2007-04-25T09:31:00.000Z</published><updated>2007-04-25T09:34:36.527Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ce6.0'/><title type='text'>CE6.0 and DumpMem()</title><content type='html'>There is a known issue with DumpMem() in Ce6.0.  It does not correctly format the memory and only the memory offsets are shown.  This is evident no matter which debug stream is used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-2123192822129428037?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/2123192822129428037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=2123192822129428037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2123192822129428037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2123192822129428037'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/ce60-and-dumpmem.html' title='CE6.0 and DumpMem()'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1226442023293156237</id><published>2007-04-25T09:13:00.000Z</published><updated>2007-04-25T09:36:51.188Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='CE6 PB6'/><title type='text'>Debug in CE6.0 and PB6.0</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_m8AxjftQEl4/Ri8dZifCvnI/AAAAAAAAAAk/iBShiKj1pYg/s1600-h/Debug_hacker.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5057293231151300210" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="124" alt="" src="http://2.bp.blogspot.com/_m8AxjftQEl4/Ri8dZifCvnI/AAAAAAAAAAk/iBShiKj1pYg/s200/Debug_hacker.gif" width="128" border="0" /&gt;&lt;/a&gt;Platform builder 6.0 supports two options for the way debug messages are handled.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sync Mode&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Here the target device waits until the host displays &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;the&lt;/span&gt; debug message. The advantage being that you see messages when they were sent but it does slow down the target device.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Async&lt;/span&gt; Mode&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Here the target device runs as fast as possible. The debug message is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;queued&lt;/span&gt; on the host to allow the device to continue. Debug is only displayed on the host as time permits.&lt;br /&gt;&lt;br /&gt;These debug modes are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;available&lt;/span&gt; via the host's registry.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;HKCU&lt;/span&gt;\Software\Microsoft\Platform Builder\6.00\Debug&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;DWORD&lt;/span&gt; value "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SynchronousDebugMessage&lt;/span&gt;"&lt;br /&gt;0 == &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;ASYNC&lt;/span&gt;&lt;br /&gt;1 == SYNC&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1226442023293156237?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1226442023293156237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1226442023293156237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1226442023293156237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1226442023293156237'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/debug-in-ce60-and-pb60.html' title='Debug in CE6.0 and PB6.0'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_m8AxjftQEl4/Ri8dZifCvnI/AAAAAAAAAAk/iBShiKj1pYg/s72-c/Debug_hacker.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8827754031161033034</id><published>2007-04-24T15:57:00.000Z</published><updated>2007-04-24T16:12:20.344Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile WinMo Smartphone SIM IMEI Country'/><title type='text'>How to get IMEI, SIM number, Operator and country</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_m8AxjftQEl4/Ri4p8hrvqsI/AAAAAAAAAAc/VDBi6sg4EC4/s1600-h/sim-card.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5057025551394384578" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_m8AxjftQEl4/Ri4p8hrvqsI/AAAAAAAAAAc/VDBi6sg4EC4/s200/sim-card.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Whilst working on my current project I discovered how to get the following information out of Windows Mobile.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;The Modem IMEI number&lt;/li&gt;&lt;li&gt;The SIM number (not the phone number)&lt;/li&gt;&lt;li&gt;The SIM operator&lt;/li&gt;&lt;li&gt;The SIM operator ID and cell country&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;These can all be obtained via TAPI. The IMEI and SIM number are available via the lineGetGeneralInfo API. These are returned as the SerialNumber and SubscriberNumber. The SIM operator, ID and cell country are returned by a call to the lineGetCurrentOperator API.  Check out about more ExTAPI calls on MSDN &lt;a href="http://msdn2.microsoft.com/en-us/library/aa458219.aspx"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8827754031161033034?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8827754031161033034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8827754031161033034' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8827754031161033034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8827754031161033034'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/how-to-get-imei-sim-number-operator-and.html' title='How to get IMEI, SIM number, Operator and country'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_m8AxjftQEl4/Ri4p8hrvqsI/AAAAAAAAAAc/VDBi6sg4EC4/s72-c/sim-card.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-8136200021317609727</id><published>2007-04-23T12:22:00.000Z</published><updated>2007-04-24T15:56:12.587Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile Smartphone'/><title type='text'>Taking control of the "Back" button on Windows Mobile</title><content type='html'>Ever wanted to know how to get control of the "Back" button on Windows Mobile? The answer can be found in &lt;a href="http://msdn2.microsoft.com/en-us/library/ms912123.aspx"&gt;this&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;MSDN&lt;/span&gt; article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-8136200021317609727?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/8136200021317609727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=8136200021317609727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8136200021317609727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/8136200021317609727'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/taking-control-of-back-button-on.html' title='Taking control of the &quot;Back&quot; button on Windows Mobile'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-6784563541099771484</id><published>2007-04-19T09:17:00.000Z</published><updated>2007-04-19T09:19:42.788Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile WinMo Smartphone'/><title type='text'>How to get your phone number</title><content type='html'>Just discovered how to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;pragmatically&lt;/span&gt; get your phone number from Window Mobile. This is documented well on the Windows Mobile Team Blog Site &lt;a href="http://blogs.msdn.com/windowsmobile/archive/2004/11/28/271110.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-6784563541099771484?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/6784563541099771484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=6784563541099771484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6784563541099771484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/6784563541099771484'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/how-to-get-your-phone-number.html' title='How to get your phone number'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-352652650384433056</id><published>2007-04-18T15:53:00.000Z</published><updated>2007-04-18T16:21:37.469Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='EVC'/><title type='text'>EVC 4.0 Remote Tools</title><content type='html'>Having problems with EVC 4.0 tools greyed out and pointing to the wrong SDK? A collegue of mine has just found the answer. The workaround is in the online &lt;a href="http://download.microsoft.com/download/a/7/3/a735c7fb-dcbd-429f-9090-d09b3b15d3fa/ReleaseNotes.htm"&gt;EVC 4.0 Release Notes&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;View the file properties of the directories:&lt;br /&gt;C:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\Bin&lt;br /&gt;C:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\Bin\WCE500&lt;br /&gt;&lt;br /&gt;Click the "Advance" button&lt;br /&gt;Click to check the "For fast searching, allow Indexing Service to index this folder" check box&lt;br /&gt;Click "OK"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-352652650384433056?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/352652650384433056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=352652650384433056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/352652650384433056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/352652650384433056'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/evc-40-remote-tools.html' title='EVC 4.0 Remote Tools'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5007641791841805678</id><published>2007-04-18T15:04:00.000Z</published><updated>2007-04-18T15:10:58.686Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista ActiveSync Device Center'/><title type='text'>Vista and ActiveSync</title><content type='html'>For the Vista users out there you have probably discovered that ActiveSync is no longer supported.  What you should be using is Windows Mobile Device Center more info and available for download from Microsoft &lt;a href="http://www.microsoft.com/windowsmobile/devicecenter.mspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One unfortunate oversight is that it will not currently Sync with the new Vista Windows Calendar or Email applications.  Microsoft, however, are planning a new service release that will support this applications in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5007641791841805678?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5007641791841805678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5007641791841805678' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5007641791841805678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5007641791841805678'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/vista-and-activesync.html' title='Vista and ActiveSync'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7384766625179239134</id><published>2007-04-18T13:44:00.000Z</published><updated>2007-04-18T14:24:31.135Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smartphone Signing Unlocking'/><title type='text'>Signing Windows Mobile Application Code using Miicrosoft Visual Studio 2005</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_m8AxjftQEl4/RiYharNHSWI/AAAAAAAAAAU/Lbl2Zt_SN1s/s1600-h/Visual%2520Studio%25202005%25201600x1200.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5054764373928003938" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_m8AxjftQEl4/RiYharNHSWI/AAAAAAAAAAU/Lbl2Zt_SN1s/s200/Visual%2520Studio%25202005%25201600x1200.jpg" border="0" /&gt;&lt;/a&gt; This post deals with signing code against the Windows Mobile SDK developers certificates. If you have not already installed the SDK certificates on your device see this &lt;a href="http://ce4all.blogspot.com/2007/04/unlocking-smartphone-for-development.html"&gt;post&lt;/a&gt;. The first step is to install the SDK certificates on your development machine:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Navigate to C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 SDk\Tools&lt;/li&gt;&lt;li&gt;Double-click on the SDKSamplePrivDeveloper.pfx file&lt;/li&gt;&lt;li&gt;Press the "Next" button on the "Welcome to the Certificate Import Wizard" dialogue&lt;/li&gt;&lt;li&gt;Press the "Next" button on the "File to Import" dialogue&lt;/li&gt;&lt;li&gt;Press the "Next" button on the "Password" dialogue&lt;/li&gt;&lt;li&gt;Press the "Next" button on the "Certificate Store" dialogue&lt;/li&gt;&lt;li&gt;Press the "Finish" button on the "Completing the Certificate Import Wizard" dialogue&lt;/li&gt;&lt;li&gt;Press "Ok" on "Completed" dialogue&lt;/li&gt;&lt;li&gt;Repeat the process for the SDKSampleUnprovDeveoper.pfx file&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Having installed the certificates you will now need to sign your CAB's, DLL's and EXE's against them. This is done as follows: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Open your Microsoft Visual Studio project solution&lt;/li&gt;&lt;li&gt;Select from the menu Project-&gt;Properties&lt;/li&gt;&lt;li&gt;Expand the "Configuration Properties" tree in the left-hand pane&lt;/li&gt;&lt;li&gt;Expand the "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Authenticode&lt;/span&gt; Signing" in the "Configuration Properties" tree &lt;/li&gt;&lt;li&gt;Select "General"&lt;/li&gt;&lt;li&gt;In the right-hand pane change the "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Authenticode&lt;/span&gt; Signature" selection to "Yes"&lt;/li&gt;&lt;li&gt;Select the "Certificate" field and press the "browse" &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;ellipse&lt;/span&gt; to the left&lt;/li&gt;&lt;li&gt;Select the certificate you wish to sign against marked "TEST USE ONLY - Sample Privileged Root for Windows Mobile &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SDK&lt;/span&gt;" or "TEST USE ONLY - Sample &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;UnPrivileged&lt;/span&gt; Root for Windows Mobile &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SDK&lt;/span&gt;" and hit OK&lt;/li&gt;&lt;li&gt;Select "OK" to properties dialogue &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;On your next build Visual Studio will now automatically sign your executable.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7384766625179239134?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ce4all.blogspot.com/2007/04/unlocking-smartphone-for-development.html' title='Signing Windows Mobile Application Code using Miicrosoft Visual Studio 2005'/><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7384766625179239134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7384766625179239134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7384766625179239134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7384766625179239134'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/siging-windows-mobile-application-code.html' title='Signing Windows Mobile Application Code using Miicrosoft Visual Studio 2005'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_m8AxjftQEl4/RiYharNHSWI/AAAAAAAAAAU/Lbl2Zt_SN1s/s72-c/Visual%2520Studio%25202005%25201600x1200.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-5197107037283349550</id><published>2007-04-18T13:19:00.000Z</published><updated>2007-04-18T13:22:19.627Z</updated><title type='text'>Visual Studio 2005 and Windows CE6.0 Problems</title><content type='html'>Running VS2005 with a custom CE6.0 SDK requires installing Visual Studio 2005 SP1 (see &lt;a href="msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx"&gt;msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx&lt;/a&gt;) without this the application can fail to deploy to the platform correctly.&lt;br /&gt;&lt;br /&gt;Also SP1 is needed when running on Windows Vista.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-5197107037283349550?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/5197107037283349550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=5197107037283349550' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5197107037283349550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/5197107037283349550'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/visual-studio-2005-and-windows-ce60.html' title='Visual Studio 2005 and Windows CE6.0 Problems'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-7683372766558829537</id><published>2007-04-18T13:18:00.000Z</published><updated>2007-04-18T13:43:14.462Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smartphone Unlocking Policies'/><title type='text'>Unlocking a Smartphone for development</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_m8AxjftQEl4/RiYbP7NHSVI/AAAAAAAAAAM/AV-8U1xe-v8/s1600-h/win_mobile_v_rgb.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5054757592174643538" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="135" alt="" src="http://3.bp.blogspot.com/_m8AxjftQEl4/RiYbP7NHSVI/AAAAAAAAAAM/AV-8U1xe-v8/s320/win_mobile_v_rgb.jpg" width="144" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;To develop on a Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Smartphone&lt;/span&gt; you will first need to get the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SDK&lt;/span&gt; certificates to sign against installed. This is a non-trivial process which involves a couple of registry entry changes and the installation of a CAB file.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;First a signed registry editor must be located to run on your target device. These can be found by doing an Internet search for "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;REGEDIT&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;EXE&lt;/span&gt;". When found copy the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;EXE&lt;/span&gt; onto the device, launch it and change the following registry values:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Navigate to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;HKLM&lt;/span&gt;\Security\Policies\Policies\&lt;/li&gt;&lt;li&gt;Change the "00001001" value to a decimal 1&lt;/li&gt;&lt;li&gt;Change the "00001005" value to a decimal 40&lt;/li&gt;&lt;li&gt;Reboot the device&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;At this point your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Smartphone&lt;/span&gt; is "Unlocked" to run any code. In the development environment we want to be able to sign code against the correct privileged certificates. The next step is to install these certificates.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;First install the Windows Mobile &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Smartphone&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SDK&lt;/span&gt;. This is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;available&lt;/span&gt; &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dc6c00cb-738A-4B97-8910-5cd29ab5f8d9&amp;amp;DisplayLang=en"&gt;here&lt;/a&gt; from &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Copy the file C:\Program Files\Windows CE Tools\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;wce&lt;/span&gt;500\Windows Mobile 5.0 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Smartphone&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;SDK&lt;/span&gt;\Tools\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;SDKCerts&lt;/span&gt;.cab onto the device.&lt;/li&gt;&lt;li&gt;Launch the CAB file.&lt;/li&gt;&lt;li&gt;Reboot the device.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It is now advisable to "Re-lock" your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Smartphone&lt;/span&gt; so that you can check you are signing your application against the right security certificates. This is done by launching "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;REGEDIT&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;EXE&lt;/span&gt;" and changing the following registry values:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Navigate to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;HKLM&lt;/span&gt;\Security\Policies\Policies\&lt;/li&gt;&lt;li&gt;Change the "00001001" value to a decimal 2 &lt;/li&gt;&lt;li&gt;Change the "00001005" value to a decimal 16 &lt;/li&gt;&lt;li&gt;Reboot the device&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;See &lt;a href="http://blogs.conchango.com/stuartpreston/archive/2005/11/10/2376.aspx"&gt;Stuart Preston's Blog&lt;/a&gt; for more information.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-7683372766558829537?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/7683372766558829537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=7683372766558829537' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7683372766558829537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/7683372766558829537'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/unlocking-smartphone-for-development.html' title='Unlocking a Smartphone for development'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_m8AxjftQEl4/RiYbP7NHSVI/AAAAAAAAAAM/AV-8U1xe-v8/s72-c/win_mobile_v_rgb.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-1890641221462568852</id><published>2007-04-18T13:00:00.000Z</published><updated>2007-04-18T13:11:19.569Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ce6.0'/><category scheme='http://www.blogger.com/atom/ns#' term='cellcore'/><title type='text'>Cellcore on Windows CE6.0</title><content type='html'>&lt;div align="left"&gt;Cellcore is the telephony component used on Windows Mobile, this enables voice, data and text functions via a GSM modem.&lt;br /&gt;&lt;br /&gt;CE6.0 comes with two examples modem drivers (&lt;span style="color:#3366ff;"&gt;RIL&lt;/span&gt; - Radio Interface Layers) for the TTPCom and Enfora Modems.&lt;br /&gt;&lt;br /&gt;Most of the sources, headers and registry entries can be found under the CE6.0 tree here:&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\WINCE600\PUBLIC\CELLCORE&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;Here you’ll also find the &lt;span style="color:#3366ff;"&gt;710 Multiplexer&lt;/span&gt;, this component effectively splits the single serial port that the modem is available on into two virtual serial ports (default is COM9 and COM7).&lt;br /&gt;&lt;br /&gt;To make phone calls Cellcore uses &lt;span style="color:#3366ff;"&gt;TAPI&lt;/span&gt; (Telephone Application Programming Interface) see some of the Smartphone/PocketPC SDK examples for some coding examples.&lt;br /&gt;&lt;br /&gt;Making data calls can be done using RAS Dial up, but the RAS setup needs to specify the APN for the data connection. There are no examples under Windows Mobile as this is all handled in Connection Manager on WinMobile.&lt;br /&gt;&lt;br /&gt;CE6.0 comes with a &lt;span style="color:#3366ff;"&gt;WWANDIS&lt;/span&gt; component which looks like it virtualises data connections to have a ‘Virtual Ethernet’ driver over GPRS, but there aren’t any docs I can find, anyone know how this works?&lt;br /&gt;&lt;br /&gt;Mike Hall has a demo of Cellcore in action on an electronic picture frame… see &lt;a href="http://blogs.msdn.com/mikehall/archive/2006/11/03/ce-6-0-electronic-picture-frame-using-cellcore-to-pull-photos-from-rss-feeds.aspx"&gt;Mikes Cellcore Demo&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-1890641221462568852?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/1890641221462568852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=1890641221462568852' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1890641221462568852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/1890641221462568852'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/cellcore-on-windows-ce60.html' title='Cellcore on Windows CE6.0'/><author><name>GraemeW</name><uri>http://www.blogger.com/profile/06099386774748956811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-213091325940153577.post-2979871885094531490</id><published>2007-04-18T12:50:00.000Z</published><updated>2007-04-19T08:05:55.173Z</updated><title type='text'>C4All The start of a new era</title><content type='html'>This is the first post of what we hope will be many. The contributors want to share their combined experiences of the Windows Embedded operating systems. So who are these contributors?&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Rob Nock&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Spent 9 Years working with Mitsubishi PC Division (Apricot Computers) and has been with &lt;a href="http://222.intrinsyc.com/"&gt;Intrinsyc&lt;/a&gt; since 1999.&lt;/li&gt;&lt;li&gt;Both jobs have led to in depth experience with embedded systems.&lt;/li&gt;&lt;li&gt;Worked on Windows CE from version 3.0 up to 6.0.&lt;/li&gt;&lt;li&gt;Worked on Windows Mobile 5.0 and 6.0.&lt;/li&gt;&lt;li&gt;Ported BSP's, written numerous drivers and applications.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Graeme Wintle&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Previous to Intrinsyc (also since 1999 - Rob started the same day!) working at Nokia Telecoms and GST Technology&lt;/li&gt;&lt;li&gt;15 Years of experience in the embedded space&lt;/li&gt;&lt;li&gt;Experience ranging from OS Porting to Application design on Windows CE and Windows Mobile&lt;/li&gt;&lt;li&gt;17 hardware platforms under my porting belt so far...!&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/213091325940153577-2979871885094531490?l=ce4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ce4all.blogspot.com/feeds/2979871885094531490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=213091325940153577&amp;postID=2979871885094531490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2979871885094531490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/213091325940153577/posts/default/2979871885094531490'/><link rel='alternate' type='text/html' href='http://ce4all.blogspot.com/2007/04/c4all-start-of-new-era.html' title='C4All The start of a new era'/><author><name>RobN</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
