How do I add Platform Builder components to my CE device?

Let's say there's some cool feature you've just read about - say the CE File Server (i.e. SMB Server) - and you want to add it to your Windows CE device's ROM.  How you do this depends on who you are, what the device is, and what component you're looking to add.

I - You are an OEM
You're an OEM using Platform Builder (PB) to say build a WinCE based sewing machine.  In this case to add the SMB Server, you just select the SMB Server component from the PB IDE and drag and drop to your list of selected components.  You probably have figured this already on your own but I'm including this for completeness.

Selecting components from a higher version of the OS than you're using is not supported, however.  If you want say the SMB Server from CE 5.0 to run on a CE 4.0 device, this isn't going to work.  The CE 4.0 kernel won't load up a CE 5.0 binary for various reasons.  To get the SMB Server for CE 5.0, you'd need to upgrade your entire device to CE 5.0.

II - You're an ISV working with an OEM
Let's say you're developing some software that will run on a targeted device - like say some "learn how to sew" app for our sewing machine running CE 5.0.  If you want the SMB component, you cannot add it to the device yourself.  You must ask your OEM friends (hopefully you're friends!) you're working with to add it for you.

There is not a general mechanism for an ISV adding Platform Builder generated code from Microsoft onto a device themselves.  One of the big reasons has to do with the fact that WinCE is componentized.  Let's say that the sewing machine doesn't have a network stack (TCP/IP,...) included on it.  Well, SMB needs it.  So how would our ISV add SMB to the device when the underlying technology needed to make SMB work isn't there?  The answer is they can't.

III - You're an ISV working on a PocketPC who needs a limited set of apps
Developers writing to the PocketPC are just like the people in case II most of the time.  They can't bring in Platform Builder bits in the general case.  There are at least 2 cases where they can get PB specific bits.

If you need either the Web Server or MSMQ (both originally for Platform Builder) then these components are shipped in redistributable CAB files in the PocketPC SDK.  Microsoft determined that these components were popular enough on PocketPC that it was worth kitting them and testing them on this platform for ISVs.

There may of course be other bits that Microsoft ships like this.  Alas Microsoft is a big company and I'm not sure what those would be.

Finally -- I'm not making up the sewing machine running Windows CE.  See

[Author: John Spaith]