1

I am developing applications for handheld terminals running Windows CE 6.0, using .NET Compact Framework 3.5.

Is there a universal way to retrieve the OEM version (i.e. the "OEM Version" string seen in the "System Info" control panel applet), using the .NET CF Class Library or Smart Device Framework, regardless of the device vendor?

Kal
  • 1,707
  • 15
  • 29

1 Answers1

1

There's no "universal" way, as there's nothing that says an OEM has to provide a version at all, or if they do, there's nothing that says how they must do it. There are some provided interfaces, which an OEM would be encouraged to use (SystemParametersInfo with SPI_GETOEMINFO (which is what luskan's suggestion returns) or SPI_GETPLATFORMVERSION (which is probably in the SDF somewhere too) would be where I'd start to investigate, but be forewarned that just because it works on one device, doesn't mean it'll work on another. Do loads of validation and fallbacks in your code.

ctacke
  • 66,480
  • 18
  • 94
  • 155
  • Interesting. So I looked up [SystemParametersInfo](http://msdn.microsoft.com/en-us/library/ee499131.aspx). The MSDN documentation says that SPI_GETPLATFORMVERSION "returns {{CE_MAJOR_VER, CE_MINOR_VER}}, regardless of platform". But if I understand it correctly, CE_MAJOR_VER and CE_MINOR_VER represent the Windows CE version number (i.e. Windows CE 6.0 would have CE_MAJOR_VER = 6 and CE_MINOR_VER = 0), am I right? That would still not be the OEM image version. In that case, I guess I would have to rely on the particular OEM to provide an API. – Kal Apr 27 '12 at 03:43
  • Welcome to the challenges of a highly configurable OS. – ctacke Apr 27 '12 at 04:19