Windows CE .NET

Posted August 25, 2003

Chat Date: August 5, 2003

Chat Participants:

  • Mike Hall, Product Manager in the Embedded Devices Group
  • Toni Leitao, Program Manager in the Windows CE Team
  • Michael Malueg, Program Manager in the Embedded Devices Group
  • Mike Thomson, Lead Program Manager in the Embedded Devices Group
  • Shun Mori, Program Manager in the Embedded Devices Group
  • Jeana Jorgensen, Product Manager in the Embedded Devices Group
  • James Stulz, Windows CE Debugger & Compiler Program Manager

Moderator: Mikefos (Microsoft)
Welcome to today's Chat. Our topic is Windows CE .NET. Questions, comments, and suggestions are welcome.

Moderator: Mikefos (Microsoft)
Let’s introduce our hosts for today.

Host: Mikehall (Microsoft)
Hi, I'm Mike Hall, a Product manager in the Embedded Devices Group

Host: Toni (Microsoft)
Hi I am Toni Leitao and I am a Program Manager in the Windows CE Team. I am responsible for the IDE.

Host: James (Microsoft)
Hi, my name is James Stulz. I’m the CE Debugger & Compiler PM

Moderator: Mikefos (Microsoft)
Welcome everyone, let’s get started!

Moderator: Mikefos (Microsoft)
We do have a couple of other host collaborating today as well - hiding in the wings ;-)

Host: Mikehall (Microsoft)
Q: Is there any effort underway to provide support for the C++ Standard Library or provide guidelines to build STLPort with eVC4?
A: STL is supported by eMbedded Visual C++ 4.0 SP2

Host: Michael (Microsoft)
Q: We are also interested in SIP. Is the RTC Client API supported on CE?
A: Yes

Host: Mikehall (Microsoft)
Q: Is there any way to make an ActiveX control in the Windows CE? Originally that ActiveX control is compiled by Visual Basic 6.0 under Windows XP.
A: No, you can take ActiveX controls that have been created by Visual C++ on the desktop and recompile these for a Windows CE .NET based device - Visual Basic ActiveX controls are not supported.

Host: MikeThom (Microsoft)
Q: Will MS provide an EHCI USB 2.0 host driver and USB 2.0 OTG driver?
A: We are considering it for future versions.

Host: Mikehall (Microsoft)
Q: How can I embed the ActiveX control in the HTML page of the WCE?
A: An ActiveX control is embedded into HTML in the same way as the desktop - the control needs to be registered on the Windows CE .NET device to be able to run on the page.

Host: MikeThom (Microsoft)
Q: Is GDI+ supported?
A: No.

Host: ShunM (Microsoft)
Q: Is it possible to implement a Browser Helper Object on WinCE 3.0?
A: No, the Browser Helper Object is supported from Windows CE 4.0 and above.

Host: MikeThom (Microsoft)
Q: I want to create a secure volume under wince 3.0, for that I have created a block device driver based on the RAMDISK sample. I want to be able to mount the volume during runtime on user request. Where can I find info on that?
A: Have a look at ActivateDevice. It will load a block driver and that can then trigger a file system to be loaded.

Host: MikeThom (Microsoft)
Q: ActivateDevice is fine, but I want to treat a FILE as a volume. Any Ideas
A: You can write a file system driver that sits on top of another file system to do a file at a time or you FS driver can sit on the block driver. In new versions of the OS you can do file filters. I hope that helps.

Host: Toni (Microsoft)
Q: Is there a tutorial for the format and functionality of the CEC files?
A: You can find it in the help under CEC files

Moderator: Mikefos (Microsoft)
Q: The CEC help is not as rigorous as I would like. I have troubles getting components, groups, etc. to behave as I thought they might from the terse documentation in the help.
A: There are several CEC samples that ship with the product that can serve as additional documentation. Of you have specific feedback on the docs, you're welcome to email it to edevfdbk@microsoft.com and I'll get it over to the docs folks.

Host: ShunM (Microsoft)
Q: Is there any way to make an ActiveX control in the Windows CE? Originally that ActiveX control is compiled by Visual Basic 6.0 under Windows XP.
A: No, (but if it is x86, it may work, but it sure is not supported). Like Mike Hall said, you need to recompile the ActiveX control for the particular platform.

Host: Michael (Microsoft)
Q: How to specify a MS's module (like filesys.exe) into a region other than NK.bin for multixip build? I am also working with OZONE SAK, which has csv files for this purpose. But it's not in PB, what should I do in PB to customize multixip build?
A: The Samsung BSP in 4.2 shows how to build a multi-region OS image

Host: MikeThom (Microsoft)
Q: How to specify a MS's module (like filesys.exe) into a region other than NK.bin for multixip build? I am also working with OZONE SAK, which has csv files for this purpose. But it's not in PB, what should I do in PB to customize multixip build?
A: Look in the docs for "Multiple XIP Support". Ozone restricts what you can do. But PB allows you to create your own solution.

Host: jeanaj (Microsoft)
Q: Could you point me to a reference that clearly defines the relationship between CE 2.0, CE 3.0, CE.NET, Pocket PC, Imbedded NT, Imbedded XP, and the different application tools for each type of platform?
A: There are a number of answers to your questions here and the documents are separated as there is a fair bit of content.

This afternoon, we are posting a Windows CE .NET 4.2, Pocket PC 2002, Windows Mobile 2003 for Pocket PC document (no URL available at this time). Check back to the Windows Embedded Website for the pointer to the document: https://www.microsoft.com/windows/embedded/.

Editor’s note: There’s also a document comparing Windows NT Embedded with Windows XP Embedded at: https://msdn2.microsoft.com/library/ms838646.aspx

Host: Toni (Microsoft)
Q: Every time I have to do a rebuild platform for a single file change, how does the Windows CE Platform Builder detect the dependence?
A: When you build from IDE, it uses the same dependency checks as the command line builds. Which file you modify effects which part of the build needs to kick in: compile phase or sysgen phase.

Host: Toni (Microsoft)
Q: It's compile phase, I change a file for example a USB PDD driver, If I only click build I can see the *.cpp been re-compiled, but it looks like I have to do rebuild platform, otherwise the change is not in.
A: You can just do the sysgen phase (sysgen /p <component name>) and makeimg to pick up your changes.

Host: Mikehall (Microsoft)
Q: What is the relationship between CE4.0 and CE .NET
A: The current version of Windows CE is 4.2. Versions of Windows CE from 4.0 through 4.2 ship with the product name "Windows CE .NET (and the version number).

Host: ShunM (Microsoft)
Q: I like to have reference books or MSDN URLs for how to create VC++ ActiveX for Windows CE .NET.

Host: ShunM (Microsoft)
A: You can find lots of doc at https://msdn.microsoft.com/ and query for "Creating ActiveX Controls."

Also, check https://msdn.microsoft.com/library/default.asp?url=/workshop/components/activex/activex_node_entry.asp

Host: jeanaj (Microsoft)
Q: There's a QFE for 4.2 that mentions the Compact Framework, though it doesn't specifically say "Service Pack 1". Is it SP1 and when can we expect an SP1 QFE for 4.1?
A: NETCF team will be producing a Web redist with all the produced cabs for CE. This QFE is not for SP1, but we will release a version of SP2 in the next few months and SP1 is sometime thereafter..

Host: Mikehall (Microsoft)
Q: How do I install the Compact Framework on a 4.1 platform after the OS image has built?
A: You can deploy the Compact Framework from Visual Studio .NET 2003 over an ActiveSync connection or over a TCP/IP connection - take a look at the last couple of months MSDN "Get Embedded" articles, these explain the components of the operating system that are required to run .NETCF applications, and how to configure the TCP/IP connection - https://msdn.microsoft.com/columns

Host: MikeThom (Microsoft)
Q: How do you copy the files from the ROM ?
A: If it is in the FILES section of ROM then you can use the normal copy APIs. If it is in the MODULES section of ROM then you can not copy it out.

Host: Mikehall (Microsoft)
Q: Basic Items are not available in the help file. Is there an e-mail to use to send missing stuff (search for HDC, CRITICAL_SECTION (only MFC+ATL).
A: Critical Section, HDC are supported for Win32, MFC, ATL, and even through .NET Compact Framework applications through P/Invoke - what do you think is missing ?

Host: Mikehall (Microsoft)
Q: The documentation in the help file. There are only example of some of the missing. Looking for parameters I have to load the MSDN library instead of the IDE help F1
A: I'd like to get a list of API's you think are missing, can you mail any items to edevfdbk@microsoft.com - we can get this passed over to the documentation team.

Host: Toni (Microsoft)
Q: Why PB cannot identify a multixip build when downloading? It is very awkward to open another PB and use that to open chain.list for a multixip download.
A: If you go to Platform Settings you will see target bin and there is a drop down. It will show bin files as well as chain.lst. If you select chain.lst you will be presented with an additional list from which you can select which files in chain.lst you need to download.

Host: Michael (Microsoft)
Q: Mike and Michael, you don't really get my question. PB cannot override the region assignment in platform.bib for a file that is assigned to NK region in common.bib. Ozone has a javascript and csv files for this purpose before romimage, but not in PB.
A: We understand the issue and you will have to do the same procedure that you are doing for Ozone

Host: ShunM (Microsoft)
Q: If the HTML page has XML contents in the WCE .NET, is there anything to do specifically in Windows CE .NET rather than in Desktop system?
A: same contents should work. If it is *.xml file, then XML Mime Viewer which is required to view *.xml file is only supported since CE 4.2. Please see this URL for the differences from desktop. https://msdn2.microsoft.com/library/ms910782.aspx

Host: MikeThom (Microsoft)
Q: Regarding the ROM file copy question: The OS accesses MODULE files. Is there no way to replicate that behavior?
A: The code that exists in the MODULES section does not resemble the orginal file. It has been stripped of all the extra stuff in order to do XIP (for the most part).

Host: James (Microsoft)
Q: How can I debug a issue only exist with release build not with debug build.
A: We support debugging retail builds as long as you enable the debugger support manually in the platform settings.

Host: James (Microsoft)
Q: James, do you mean enable the kernel debugger in the platform setting?
A: Yes

Host: Michael (Microsoft)
Q: Is there a CE.NET version of Messenger that offers wireless audio/video messaging?
A: CE Messenger supports wired and wireless Audio, but not Video.

Host: Mikehall (Microsoft)
Q: How do I setup DEBUG ZONES specifically for one module prior to system start up?
A: You can either set bitmask for which zones you want configured through dpCurSettings, or through the desktop registry - HKEY_CURRENT_USER\Pegasus\Zones

Moderator: Mikefos (Microsoft)
Q: I want to wake up the device on a POWEROFF event in my driver? Any ideas on how to do that?
A: Unfortunately, our hosts today aren't sure how to respond to that question without doing a bit of research. If you could post this to the newsgroup, we can have someone follow up.

Moderator: Mikefos (Microsoft)
Q: I am still developing an application on CE 3.0. How can I enable ClearType support using CreateFontIndirect and ExtTextOut?
A: Unfortunately, our hosts today aren't sure how to respond to that question without doing a bit of research. If you could post this to the newsgroup, we can have someone follow up.

Host: MikeThom (Microsoft)
Q: Mike thanks for the info. How do you flush the contents on the RAMDISK to a persistent file so that I can load the contents from the file to the RAMDISK when the user wants to access the persistent file?
A: You could do this on a FlushFile event or a file being closed. If you use a file filter then you will get these calls.
A: (cont) Sorry I meant to say pluggable file system driver

Host: Mikehall (Microsoft)
Q: I like to make an ActiveX control that looks like a service in the Desktop. It starts automatically in the bootup time, and never stops. Is it possible story in WCE .NET?
A: You should take a look at creating a service for Windows CE .NET - Windows CE .NET includes source code for a sample Telnet server in %WINCEROOT%\Public\Servers\Sdk\Samples\Telnetd. This code demonstrates how to start, stop, and unload a service. It also shows how to implement a stream-based service, and how to implement a service as a stand-alone service or as part of a super server model.

Host: ShunM (Microsoft)
Q: This question is related to WCE .NET Service availability
A: Re-iterating Mike Hall's comment. Can you be more specific? Not sure why it needs to be in ActiveX control as some kind of services. But if you want to, you could host them and run it as long as IE or shdocvw is up and hosting it.

Host: Mikehall (Microsoft)
Q: True, My project is remote lighting control in the Desktop, and I expand to WCE platform for wireless communication environment.
A: If your current ActiveX control has been created using Visual Basic for the desktop then you will need to re-code for Windows CE.

Host: MikeThom (Microsoft)
Q: With the Platform Builder 4.2 CEPC, I always can see a exception with unknown DebugCHK failed in file d:/mckendric\....\dst.cpp at line 57tions failed above the tests.
A: It would fail because the time zone information has not been properly set up. Look at why the fucntions failed above the tests.

Moderator: Mikefos (Microsoft)
Q: Can you talk about TAPI and TSP porting - will TSPs need to be recompiled to work on CE?
A: (from David Kanz (offline)): TAPI TSPs on CE are different enough from the desktop TAPI TSPs that there is some code work involved to port a TSP from the desktop to CE. The biggest differences are the order of messages and functions calls, and CE’s TAPI uses a function pointer array instead of exported dll functions. On CE, a TAPI TSP dll only needs to export 1 function, TSPI_lineGetProcTable.

Host: James (Microsoft)
Q: James, I just did a quick try with adding kernel debug in the platform setting, it will stop with the exception, but can not add watch.
A: .pdb files are built in retail builds. Is the .pdb file available?

Host: James (Microsoft)
Q: James, sorry, how do I find the pdb file?
A: Check the flat release directory

Host: James (Microsoft)
Q: James. I did find the pdb in the oak\target\x86\retail
A: Can you see any other symbols in that file? Sometimes the compiler optimizes variables away. Check the code to see if the variable was spilled on the stack.

Moderator: Mikefos (Microsoft)
Thanks for joining us today and thanks for the questions. It's time for us to go now. Please see the chats schedule for upcoming topics.

For further information on this topic please visit the following:

Newsgroups: Mobile and embedded application development topics

Mobile and Embedded Transcripts: Read the archive

Website: Visit the Mobile & Embedded Developer Center

Top of page