Wednesday 28 July 2010

Windows CE Live Chat Transcript July 2010

Hello guys,

Just in case you missed the MS Live chat today, the transcript of the chat is available here.

Q: [1] What is the plans for Silverlight Web for CE? If it will be possible to use the same silverlight >= 2.0 what CPU/Memory will be required

A: We are continuing to evaluate the plans to bring Silverlight in the Browser support to the CE product line. We don't have details to share at this time. Silverlight for Windows Embedded delivers the same SL based UX expierence in a out of the browser hosting model. You can use the same rich designer tools (Expression Blend) And VS to build and test the application while takeing advantage of embedded hardware capabilites such as GPU offloading and hardware based media playback.

davbo-msft (Moderator)[18:18]:

Q: [7] Can you answer any questions around Windows Embedded HandHeldTerminal?

A: Yes we can answer questions around Handheld Terminal

davbo-msft (Moderator)[18:19]:

Q: [5] Yep, to echo Bob's question, is there any word about whether application development for Compact 7 platforms will be supported in Visual Studio 2010? (Is it a 'no, never' thing, a 'yes, this is coming' thing, or a 'yeah, maybe someday' thing?)

A: The Windows Embedded team is currently focused on delivering the next major version of the Windows CE OS, Windows Embedded Compact 7, which will be released later this year. Windows Embedded Compact 7 will also provide an updated version of the Platform Builder development tools as a plug-in to Visual Studio 2008. With Compact 7, the Embedded community will continue to have the same great support for developing drivers, OS images, and applications as they do with the current available version, Windows Embedded CE 6.0 R3. The enterprise support lifecycle will ensure that the Embedded development community has the needed support in Visual Studio 2008 throughout 2017.
The Windows Embedded team is working with the Visual Studio team to determine whether and how Windows Embedded Compact support would be added to Visual Studio 2010, but as of now there is nothing planned. For those developers also creating applications for Windows Phone 7, Visual Studio 2010 will install side-by-side with Visual Studio 2008.

davbo-msft (Moderator)[18:19]:

Q: [4] I mean VS 2010

A: answered as part of Question #5

davbo-msft (Moderator)[18:19]:

Q: [3] I have heard a lot of confusing and contradictory reports of support for Smart Devices running WIndows CE in VS 2008? What's the official line?

A: answered as part of Question #5

GLanger[MS] (Expert)[18:30]:

Q: [8] How will Embedded Compact 7 be different from WinCE? Is it totally new or based on WinCE 6.0? It's a bit confusing/concerning that I've found very little as to what Embedded Compact 7 will be. With the release this fall can you share any more details or point me to a web page with more information

A: Hi Mike, Windows Embedded Compact 7 is based on previous OS releases and adds new features. The best source of information is http://www.microsoft.com/windowsembedded/en-us/products/windowsce/compact7.mspx. There's information about the upcoming release and you can register to download a Public Community Technology Preview copy for evaluation now.

davbo-msft (Moderator)[18:40]:

Q: [9] Who licenses the Windows Embedded HandHeldTerminal - Microsoft or distributor?

A: For OEMs we have a few direct relationships but the majority of the OEMs go through distribution. BSquare http://www.BSQUARE.com is the only distributor for Windows Mobile and Windows Embedded Handheld today.

davbo-msft (Moderator)[18:42]:

Q: [11] Hi
I have some questions about the Silverlight for Windows Embedded
1.Should microsoft support the Silverlight for Windows Embedded with manage code in next version ,such as C#?
2.Why currently verion Silverlight for Windows Embedded do not support the "DispatcherTimer" and "Dispatcher",
How can I update the UI use another thread?

A: It is not recommended to update the UI in a second thread, but it’s possible if the VisualHost is created with AllowsMultipleThreadAccess. <http://msdn.microsoft.com/en-us/library/ee502975.aspx>; . Working on responses for the other questions and will post when information is available.

Travis Hobrla [MS] (Expert)[18:44]:

Q: [10] Is there any plan for the Direct2D or DirectWrite APIs to be supported in Compact 7?

A: No, there is no planned support for this.

davbo-msft (Moderator)[18:48]:

Q: [6] To follow up my question, Win7 phones use Silverlight Web, correct? Can you elablorate why Embedded CE 7 is different? The issue with Silverlight Embedded is that now I have two sets of code behind and then also have to re-write the app twice. It is difficult to justify this approach. Please take this and encouragement and not a complaint. I understand issues with CPU and memory but the C++ only Silverlight is something of a non-starter.

A: To our knowledge Win7 Phone doesn't use Silverlight in a browser. The same XAML can be used in both WinCE and WP7 but yes the code behind the XAML is different between WinCE and WP7.

Have fun!


Read more! Post this to a friend!

Friday 23 July 2010

DON’T FORGET: Windows Embedded CE Live Chat on Tuesday!

Hi guys,

there is a new opportunity to chat with Microsoft about Windows Embedded CE next week. Do you have tough technical questions regarding Windows Embedded CE for which you're seeking answers? Then join the upcomming live chat with the Microsoft!

Don't forget to put the date in your schedule and join it!!!

Title: Windows Embedded CE Live Chat!
Date: Tuesday, July 27, 2010 18:00 - 19:00 CET

To join this chat, please log on via the main MSDN chat page at:
http://www.microsoft.com/communities/chats/default.mspx

Have fun!


Read more! Post this to a friend!

Tuesday 20 July 2010

Talking about Tech Ed ... Call to Action

If you are thinking of going to Tech Ed this year then don't miss out the opportunity of making sure you get the content you want to hear!

On the Tech Ed site you can vote which sessions you would like Microsoft to include in the event.

To select your preference simply go to http://europe.msteched.com/sessionpreference choose the right Track in the drop down box: Windows Embedded and select the session you would like to hear.

And I'm quite sure you will especially like the following two sessions:

Advanced Application debugging techniques with Windows Embedded Compact 7

and

Windows Embedded Automotive 7 - Creating Next Generation User Experiences (UXs)

So make sure you add these two sessions to your List - now!

So long and thanks for all the fish!
Read more! Post this to a friend!

Get ready for a very busy autumn (== fall)!

Start planning your schedule and saving dates for this autumn as it is going to be a very busy one this year (at least in europe)!

Not only will the upcoming versions of Windows Embedded Compact and Windows Embedded Automotive be launched (hopefully!) but there are also several events where such a launch could take place - I wonder where?

Let's have a look:
In the beginning of October especially the partners and distributors will be nervous as the annual WEPP Summit takes place and numerous Excellence Awards for Outstanding Efforts will be awarded.

Then, beginning of November Microsoft's Embedded Group, together with partners, will be attending the electronica in Munich, November 9 - 12.

Simultaneously, Tech Ed Europe is taking place in Berlin, November 8 -12.
Don't forget to register!


And to wrap things up, SPS/IPC/Drives takes place as usual in Nuremberg, November 23 -25.

Hope to see you around at one of the numerous events this autumn!

So long and thanks for all the fish!
Read more! Post this to a friend!

Tuesday 13 July 2010

Windows Embedded Compact 7 - Windows Embedded Silverlight Tools

Hi folks,

Today I want to talk a little more about the Windows Embedded Silverlight Tools (WEST) that come with Windows Embedded Compact 7 (WEC7).

As explained in my Silverlight for Windows Embedded (SWE) tutorial for WEC7, WEST generates most of the C++ glue code that with Windows Embedded CE 6.0 R3 we would have to write ourselves!

But can WEST be used to write a stand-alone application without Platform Builder?

Well WEST generates a Platform Builder subproject that can not be used out of the box as of now. This subproject contains, amongst others, a sources file, .bib, .reg, .dat, and .db files as well as a .pbxml file. There is no .sln file. So in order to use the Platform Builder subproject generated by WEST, we need to create a solution using the generated source files as well as a WEC7 SDK including SWE support.

How about using WEST to generate code for SWE in Windows Embedded CE 6.0 R3?

First of all WEST installs in Visual Studio 2008 SP1 whereas Windows Embedded CE 6.0 R3 is a plug-in for Visual Studio 2005. So you need to have both versions of Visual Studio installed.

I created a simple SWE project for Windows Embedded CE 6.0 R3 in Expression Blend 2, similar to the one I showed in my SWE tutorial for WEC7. Surprisingly, WEST generated the C++ glue code for my simple SWE project for Windows Embedded CE 6.0 R3 and it even ran without problems on WEC7.

But when trying to import the C++ code generated by WEST into a Windows Embedded CE 6.0 R3 subproject, I experienced some build errors. After including the correct header files and tweaking the sources file a little, I saw that the API set was extended in SWE for WEC7. In my specific example the SetResource() function as well as the XRXamlSource constructor was extended by a version that takes 2 arguments that is not available in SWE for Windows Embedded CE 6.0 R3.

After adjusting those calls my WEST generated sample compiled under Windows Embedded CE 6.0 R3.

Summary:
I would advice against using WEST to created SWE C++ code for Windows Embedded CE 6.0 R3 as even in my very simple sample project there were a lot of things to take care of manually. Instead rather use fellow MVP Valter Minutes comandline tool XAML2CPP to generate the C++ glue code for SWE for Windows Embedded CE 6.0 R3 projects.

Have fun!
Read more! Post this to a friend!

Windows Embedded CE 6.0 R3 QFEs for June 2010 have arrived!

Hi all,

The June updates for Windows Embedded CE 6.0 R3 are available for download:

Windows Embedded CE 6.0 Monthly Update June 2010:

Fixes made in this update:

Component: COMM
  • 100614_KB2132759 - Memory leaks may occur when objects are instantiated but are not deleted appropriately.
  • 100614_KB2201469 - On platforms without GWES, the redirector waits for GWES's initialization until timeout. Default timeout 60 seconds is too long for some scenarios.

Component: COREOS
  • 100616_KB2028762 - This update addresses a memory leak.
  • 100625_KB2175412 - Function call to _wfdopen may result in exception.
  • 100629_KB2249451 - The buffer size for ToolHelp snapshot is fixed to 4MB. For systems with large number of heaps and large heap sizes, some heap information is missing from the ToolHelp snapshot.

Component: DirectX
  • 100630_KB2076770 - This update addresses the issue with the API IMediaSeeking::GetCurrentPosition() returning wrong value when the rate changes.

Component: Filesys
  • 100603_KB982220 - Memory leak may occur while un-mounting and mounting NAND Flash file system through predefined API.
  • 100604_KB2159499 - NAND corruption may occur when power dropps during NAND Flash Driver un-mount.
  • 100614_KB982817 - Error message "failed formatting" shows in debug builds regardless the status of the format results.

Component: Kernel
  • 100612_KB977855 - This update enables write-allocate feature to improve ARM Coretex-A8 L2 Cache performance in kernel.
  • 100614_KB2165755 - Under certain circumstances a page fault in KCall may occur.
  • 100629_KB2250984 - This update installs missing source files necessary for building LMEM.

Component: MSFlash
  • 100615_KB2128768 - File system corruption may occur when trying to access bad block in the free list.

Component: NetConnectionsUI
  • 100604_KB2127600 - Memory leak may occur when the LoadLibrary API is used but there is no corresponding FreeLibrary API call.

Component: RDP
  • 100629_KB2211240 - The hour glass shows when image does not have SYSGEN_CURSOR defined.

Component: RTC
  • 100625_KB2259100 - Windows Embedded CE 6.0 client may not correctly parse SIP header without angle brackets.

Remember: it’s important to keep your system up to date!

Have fun!
Read more! Post this to a friend!

Friday 9 July 2010

…and the winners are:

Congratulations to the winners of Microsoft’s competition for students: Imagine Cup 2010! Over 325,000 students from more than 100 countries participated in three categories in this years Imagine Cup with the theme: “Imagine a world where technology helps solve the toughest problems”:


Winners:
Software Design:
Team Skeek from Thailand with “eyeFeel”, a program that helps communicating with people with a hearing disorder

Embedded Development:
Team SmarterME from Taiwan with a smart electricity meter

Game Design:
Team By Implication from the Philippines with a game animating students to work in an honorary capacity

Each winning team was awarded $25,000, again congratulations!

You can participate in next years Imagine Cup here.

Have fun!
Read more! Post this to a friend!

Monday 5 July 2010

Customizing oomui (Out of Memory User Interface Component)

Hello guys,

There are quite a lot helpful articles trying to guide you to the more or less painful steps of substitution of public CE components. First I had a look at the CE 6.0 online help and "Customizing a UI Component". MS advices you to modify public code ...

Everyone knows - that's really a bad!
Some time ago there was an article by Steve Maillet, referenced by many newsgroup posts. But it isn't there anymore (http://www.embeddedfusion.com/Articles/CustomCoreUI.htm). Do you have a local copy? Please spread it!

In the end I played around with the various environment variables listed in the help topic and - what a wonder - when sysgen finally buildt gwes.dll the linker took my own oomui.lib. So, technically the solution works - but only at first glance! I didn't want to run an extra sysgen step to get my version of gwes.dll. The solution has to work in a single sysgen run, too.
One of my colleagues told me that he runs nmake to build the usb stack. So, I spent some time playing around with nmake, environment variables and trying to understand the involved makefiles, batches and so on. Finally I arrived at the conclusion that this way does not work. Unfortunately, some libraries are deleted by building the gwes target so I always ended up with linker errors (at least _GwesMain).

May be I missed something. If you have got a clue let me know! But as far as I noticed there is no other way to hook into the sysgen step (after platform binaries have been built) to get gwes.dll linked with the platforms oomui.lib.

My solution is quite simple and definitively works without any changes to public code. The only disadvantage is that you have to copy the files after you changed something in your oomui code.

1. Clone oomui code from \PUBLIC\COMMON\OAK\DRIVERS\OOMUI
2. Adapt it according to your requirements, e.g.



void OomUI_OnShow (void)
{
RETAILMSG(1, (TEXT("%S"), "This Text is just for checking correct linking"));
}
BOOL OomUI_FShowOomWindow (void)
{
return 0;
}
LRESULT CALLBACK OomUI_OomWndProc (HWND hwnd, UINT message, WPARAM uParam, LPARAM Param)
{
return DefWindowProc(hwnd, message, uParam, lParam);
}

LRESULT CALLBACK
OomUI_NotRespondingWndProc (HWND hwnd, UINT message, WPARAM uParam, LPARAM lParam)
{
return DefWindowProc (hwnd, message, uParam, lParam);
}
void OomUI_SetWindowsInfo (int cApps, WINDOWINFO *rgwi)
{
}



3. Compile (modify sources and makefile.inc before)

makefile.inc:

resfile: $(_RELEASELIBDIR)\$(RESFILE)

$(_RELEASELIBDIR)\$(RESFILE) : $(_OBJDIR)\$(RESFILE)
copy $? $@


sources

resfile: $(_RELEASELIBDIR)\$(RESFILE)
$(_RELEASELIBDIR)\$(RESFILE) : $(_OBJDIR)\$(RESFILE)
# lib will be stored in C:\WINCE600\OSDesigns\\\Wince600\_\oak\lib\\\oomui.lib
RELEASETYPE=OAK

TARGETNAME=oomui
TARGETTYPE=LIBRARY

CDEFINES= $(CDEFINES) -DGWE

!IFDEF MEM_ACCOUNT
CDEFINES=$(CDEFINES) -DMEM_ACCOUNT=1
!ENDIF

SOURCES=oomui.cpp
RESFILE=oomui.res
WINCETARGETFILES=resfile
FILE_VIEW_INCLUDES_FOLDER=oomuirc.h
FILE_VIEW_ROOT_FOLDER=oomui.rc


4. Add oomui to the appropriate dirs file
5. Copy oomui.* files to \prebuild\oomui\ directory (you have to add this directory to change control system)
6. Extend your .bat:


set REPLACE_SYSGEN_OOMUI=1
set GWES_REPLACE_COMPONENTS=oomui
set REPLACE_ROOT=%_PROJECTOAKROOT%\..


Done!

As already mentioned: I really appreciate improvements, hints, comments!

Cheers,
Jürgen


Read more! Post this to a friend!

Thursday 1 July 2010

Windows Embedded Compact 7 – Installation

Hi folks,

as you all know, the Windows Embedded Compact 7 Public CTP is available since the beginning of June.

Today I want to talk about the Installation experience:

Prerequisites:

NOTE:
If you install Expression Blend 3 after Windows Embedded Compact 7, you will have to manually reinstall the Windows Embedded Silverlight Tools (WEST) in order to get the Silverlight for Windows Embedded Application template.

Windows Embedded Compact 7 Public CTP:
  • You need a Windows Live ID
  • Go to the Connection Directory and find Windows Embedded Compact and apply for the free program

  • Choose “downloads” on the Windows Embedded Compact 7 Public CTP program page

NOTE:
The link to the Connection Directory on the official Windows Embedded Compact 7 homepage is incorrect as of now.


To install Windows Embedded Compact 7 completely you need to have approximately 55 GB of free hard disk space available on C:\ even if you want to install it onto a different drive. Apparently, the current Windows Embedded Compact 7 installer checks for free space on the C:\ drive regardless of the targeted drive.


Since this is a beta version I would recommend to install Windows Embedded Compact 7 in a virtual mashine.

Have fun!
Read more! Post this to a friend!