Saturday, 28 January 2012

Windows Embedded Compact: ATL Subprojects

Hi folks,

I recently had to convert a Windows Embedded Compact ATL component into a Platform Builder subproject. Before I go into further detail, let me give you a piece of advice:

Don’t do it unless you absolutely have to!

If you choose to ignore my advice, please follow these steps (Windows Embedded CE 6.0 and later):

In your OSDesign:
· Make sure you have selected the Active Template Library (ATL) catalog item (SYSGEN_ATL)

In your sources file:
· Add WINCEATL80=1
· Remove ANY explicit ATL include path form the INCLUDES macro
· For a sysgened project add $(ATL8LIBS) to the TARGETLIBS macro (if you want to link against the debug version of ATL use $(ATL8LIBD) instead)
· For non sysgened projects add $(S_ATL8LIBS) to the TARGETLIBS macro (if you want to link against the debug version of ATL use $(S_ATL8LIBSD) instead)

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

Friday, 27 January 2012

Windwows Embedded Compact: The 3rdParty folder

Hi folks,

with Windows Embedded CE 6.0 Microsoft introduced the %_WINCEROOT%\3rdParty folder. Unfortunately, very little information about this mysterious folder can be found. Hopefully, this post will shed a little light into this matter.

You can use the 3rdParty folder for components that are independent of a specific BSP or OSDesign - for instance cloned components form the PUBLIC (or the PRIVAT) tree (e.g. the sample Internet Explorer IESAMPLE). Of course you may also add your own components such as a new file system.

The %_WINCEROOT%\3rdParty folder is not part of the Windows Embedded Compact installation so if you want to use it you have to create it manually. You also have to create at least the CATALOG subfolder with at least one .pbcxml file as the 3rdParty folder is automatically scanned for catalog item files: %_WINCEROOT%\3rdParty\CATALOG. Now you are set up and ready to go.

Development considerations:
Ultimately, components in the %_WINCEROOT%\3rdParty folder are Platform Builder subprojects. So in a first step you have to create a subproject.

If you clone a PUBLIC (or PRIVATE) component, first copy it to the %_WINCEROOT%\3rdParty folder (you may use subfolders if so desired).

With your OSDesign open, choose Project | Add Existing Subprject… from the Platform Builder menu.

In the appearing dialog, from the Files of type: drop down menu choose Sources/Dirs Files (sources;dirs). Browse to your cloned component in the %_WINCEROOT%\3rdParty folder and select the corresponding sources or dirs file. The wizard now creates your subproject including files such as .pbxml, .bib, .reg, .dat, .db

Create a catalog item file for you component in the %_WINCEROOT%\3rdParty\CATALOG folder.

Be sure to include the path to your subprojects .pbxml file in the Project tag of your catalog item file: <project>$(_WINCEROOT)\3RDPARTY\(…).PBPXML</project>. Now you don’t have to explicitly add the subproject to each OSDesign via the Project | Add Existing Subprject… Platform Builder menu. Simply checking your catalog item does the trick for you.

Modify your cloned code according to your needs. Be sure to set RELEASETYPE=LOCAL in every sources file inside the %_WINCEROOT%\3rdParty folder (this can also be done globally in the sources.cmn file). This specifies that the build output (.lib, .dll or .exe) will be places directely under your components obj folder.

As mentioned, 3rdParty components are Platform Builder Subprojects. There are certain restrictions to Platform Builder subprojects, therefore not every component can be built as a subproject. Hence, you might also consider using a Smart Device project or cloning the component directly in your BSP instead of using the %_WINCEROOT%\3rdParty folder.

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

Thursday, 26 January 2012

Windows Embedded Compact: 2011 Yearly Rollups now available

Hi all,

The yearly cumulative product rollups for Windows Embedded Compact have arrived; these updates include all previous updates up until and including December 2011:

Windows Embedded CE 6.0 Cumulative Product Update Rollup Package (through 12/31/2011)

Windows CE 5.0 Cumulative Product Update Rollup Package (through 12/31/2011)

Keep your system up to date!

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

Thursday, 12 January 2012

Windows Embedded Compact QFEs for December 2011 have arrived!

Hi all,

The December updates for Windows Embedded Compact are available for download:

Windows Embedded Compact 7 Monthly Update December 2011:

Fixes made in this Update:

Component: Accelerometer
· 111227_KB2643054 - Accelerometer MDD may not handle orientation message correctly.

Component: Core
· 111227_KB2634150 - For an image built for a specific locale, the corresponding time zone for that locale is not set correctly.

Component: Help
· This release installs updated help documents

Component: Internet Explorer
· 111216_KB2650112 - This update addresses some Internet Explorer issues.

Component: Media Player
· 111226_KB2653450 - This update addresses an issue with audio, video and image files not being associated with the music, video and picture player icons.

Component: MSFlash
· 111227_KB2619270 - The copy of the partition table in the partition driver may get deleted and recreated every time a partition is added causing some issues.

Component: Networking
· 111213_KB2619327 - Socket connection is disconnected when using RST.

Component: OSShell
· 111227_KB2643047 - Memory leaks may occur when adding/deleting custom user controls or changing the visual state of the custom user control.

Component: Platman
· 111227_KB2643040 - A user is not able to 'Enable access to desktop files' while in a debugger session.

Component: TimeZone
· 111215_KB2633088 - This is a cumulative time zone update.

Windows Embedded CE 6.0 Monthly Update December 2011:

Fixes made in this update:

Component: Fonts
· 111208_KB2571456 - This update adds suppport for running CT/AA fonts on all surfaces when driver is enabled for this capability, adds a new graphics flag GCAPS_AA_ALLSURFACES for backward compatibility, and adds SURFOBJEXT to winddi.h for CT/AA rendering.

Component: FSD
· 111213_KB2646374 - This update addresses a memory leak in Encryption Filter.
· 111215_KB2645994 - This update improves EXFATt performance when copying large number of files.
· 111231_KB2643102 - ScanVolueEx() API may not return corrupted disk information for some hard disks.

Component: Kernel
· 111215_KB2645005 - This update addresses an issue with extra context switches.

Component: MSFlash
· 111213_KB2632507 - This update addresses an exception that may occur due to the race condition in the driver.

Component: PCIbus
· 120103_KB2652217 - This update addresses an issue with the IO space not being cleared before reading the BAR's causing some type of devices to fail to load.

Component: Security
· 111216_KB2633140 - Web server times out when HTTP post method is received.

Windows CE 5.0 Monthly Updates December 2011:

Fixes made in this update:

Component: Internet Explorer
· 111208_KB2634890 - This update addresses some Internet Explorer issues.

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

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

Monday, 2 January 2012

MVP 2012

Hi Folks,

Happy New Year 2012 everybody! I am happy to announce that I was re-awarded Microsoft MVP for Windows Embedded for the 3rd time in a row on January 1st.

Congratulations to all new and re-awarded MVPs!

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