Windows CE 5.0 Product Update Rollup, December 31, 2005

 

2006 Microsoft Corporation. All rights reserved.

 

 

How to install this update

All updates for Windows CE 5.0 require the following:

 

1) Platform Builder 5.0 is installed on the machine.

2) The current user has run Platform Builder 5.0 at least once.

3) Upon installing, the platforms must be rebuilt using the "Rebuild Platform" menu option.

 

Please download the file(s) most appropriate for your installation, as follows:

 

WinCEPB50-Product-Update-Rollup-Armv4I.MSI     For installation based upon Armv4I processors
WinCEPB50-Product-Update-Rollup-MIPSII.MSI     For installation based upon MIPSII processors
WinCEPB50-Product-Update-Rollup-MIPSII_FP.MSI     For installation based upon MIPSII-FP processors
WinCEPB50-Product-Update-Rollup-MIPSIV.MSI     For installation based upon MIPSIV processors
WinCEPB50-Product-Update-Rollup-MIPSIV_FP.MSI     For installation based upon MIPSIV-FP processors
WinCEPB50-Product-Update-Rollup-SH4.MSI     For installation based upon SH4 processors
WinCEPB50-Product-Update-Rollup-X86.MSI     For installation based upon X86-based processors

 

This package will install all updates directly to the build environment specified by the original Platform Builder installation.  This is specified by the following registry key: HKLM\Software\Microsoft\Platform Builder\5.00\Directories - "OS Install Root".  By default, a backup of all updated files will be maintained at the following location:  %_WINCEROOT%\Updates\Backup.  You can remove any files from this directory at your choosing.

 

 

If you have installed previous updates

If you have installed previous updates, this package will update your build environment to include the latest files for this component.

 

If you see "Files that will not be installed"

If this message is displayed, it means that you have an update installed with a later version of the files then those that are being installed.  You already have the updates mentioned in this document including some updates released later.  This message is displayed to prevent accidental overwrite of the latest update to that particular component.

 

If you uninstall or repair Platform Builder

If you uninstall or repair Platform Builder 5.0, you have to remove corresponding WinCEPBxx.ini file located in %WINDIR%.

 

 

Fixes made in this update:

 

By Component:

 

Component:  AFD

Component:  Audio

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\directx\cesysgen\makefile

Component:  Audio Software Mixer

Component:  AutoDial

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\comm\tcpipw\ipnat\autodial\autodial.c

 

Component:  Build.exe

 

Component:  CETK

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\test\gwes\gdi\ddi_test\gpetest.cpp
     private\test\gwes\gdi\gdiapi\global.h
     private\test\gwes\gdi\gdiapi\verify.cpp

     private\test\directx\d3d\mobile\includes\parseargs.h
     private\test\directx\d3d\mobile\includes\pslrandomizer.h
     private\test\directx\d3d\mobile\includes\testcases\lastpixeltestcases.h
     private\test\directx\d3d\mobile\libs\testcaselibs\dirs
     private\test\directx\d3d\mobile\libs\testcaselibs\badtlverttestcases\geometry.cpp
     private\test\directx\d3d\mobile\libs\testcaselibs\cullingtestcases\geometry.cpp
     private\test\directx\d3d\mobile\libs\testcaselibs\lastpixeltestcases\lastpixeltestcases.cpp
     private\test\directx\d3d\mobile\libs\testcaselibs\stretchrecttestcases\stretchrectcases.cpp
     private\test\directx\d3d\mobile\libs\texsurftools\texturetools.cpp
     private\test\directx\d3d\mobile\tests\functional\drivercomp\ft.h
     private\test\directx\d3d\mobile\tests\functional\driververif\driververif.cpp
     private\test\directx\d3d\mobile\tests\functional\driververif\driververif.h
     private\test\directx\d3d\mobile\tests\functional\driververif\test.cpp
     private\test\directx\d3d\mobile\tests\interface\idirect3dmobile.cpp
     private\test\directx\d3d\mobile\tests\interface\idirect3dmobiledevice.cpp
     private\test\directx\d3d\mobile\tests\interface\idirect3dmobiledevice.h
     private\test\directx\tools\capturebmp\capturebmp.cpp
     private\test\directx\tools\capturebmp\capturebmp.h
     private\test\directx\tools\capturebmp\makefile
     private\test\directx\tools\capturebmp\sources
     private\test\external\makefile.inc

Component:  Codecs

Component:  Compiler

Component:  Controls

 

Component:  Datasync

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\datasync\cesysgen\makefile

 

Component:  DATK

Component:  DHCP

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\comm\dhcp\dhcp.c

     private\winceos\comm\dhcp\packet.c

Component:  DirectX

The following registry key has to be added:

[HKEY_CURRENT_USER\Software\Microsoft\NetShow\Player\General]
"MaxStreamerMessages"=dword:00000064

MaxStreamerMessages can be any value. The suggested value is 100.

        This registry key is necessary to allow control of the thread priority for the AsyncVideoRenderer:

HKLM\SOFTWARE\Microsoft\DirectShow\ThreadPriority\AsyncVideoRenderer

dword=<value>

Where the <value> is a Windows CE 5.0 thread priority with a range of 0 to 255.

If the regkey is not set, the video renderer thread will run at normal priority.

        The following registry setting may also be required if the value of "MaxStreamerMessages" is already set to something other than 0:

 

                [HKEY_CURRENT_USER\Software\Microsoft\NetShow\Player\General]

                "MaxStreamerMessages"=dword:0

 

                Note that the default value is 0.

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\directx\oak\files\directx.reg
     public\directx\sdk\inc\userdata.h
     public\directx\sdk\inc\userdata.idl

        The following registry key must be implemented to enable the fix:

            HKEY_CURRENT_USER\Software\Microsoft\Netshow\Player\General

            "DispatchAdvanceTimeAudioVideo"=dword:<value>

 

Where the <value> is the units in milliseconds between 0 and 1000.

The default value of 200 will be used if the registry key is not present.

 

The setting determines the time advance of the audio stream with respect to the video stream during playback.

        The following registry keys need to be implemented:

   

                    [HKEY_CURRENT_USER\Software\Microsoft\Multimedia\DirectShow\MPEG1 Audio]
                    "ID3v2SizeLimit"=dword:[hex value]

            This indicates the maximum size in kilobytes of the buffer to allocate to hold the parsed data from the ID3 tag.

            The default hex value is 400 (1024 KB).
 


            [HKEY_CURRENT_USER\Software\Microsoft\Multimedia\DirectShow\MPEG1 Audio]
            "FrameSearchLimit"=dword:[hex value]

       This indicates the number of kilobytes from the beginning of the file or from the end of a valid ID3 tag (if one exists) to search for a valid frame start 

            sequence. The default hex value is 18 (24 KB).

The following registry key needs to be implemented to override the streamer's default timeout to wait for new data after issuing a freeze on the downstream filters:

 

        [HKEY_CURRENT_USER\Software\Microsoft\NetShow\Player]

        "DisconnectTimeout"=dword:<value>

Where the <value> is in the range from 0 to 2^32 ms.

The default is 120000 ms.

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\directx\sdk\samples\wmp\ceplayer\playerwindow.cpp

     public\directx\sdk\inc\renbase.h
     public\directx\sdk\inc\renbaseasync.h
     public\directx\sdk\samples\dshow\baseclasses\renbase.cpp
     public\directx\sdk\samples\dshow\baseclasses\renbaseasync.cpp

  The following registry key is necessary to control the buffer size:

    [HKLM\Software\Microsoft\DirectX\DirectShow\WMADecoder]
    "MaxOutputFrameSize"=dword:<value>

The default value is 96X1024 bytes.

Component:  DRM

Component:  DXTRANS

 

Component:  FileSys

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\coreos\storage\fsdserv\fsdapis.cpp
     private\winceos\coreos\fsd\fatfs\volume.c

     private\winceos\coreos\fsd\fatfs\stream.c

 

Component:  GDI

Component:  Graphics

Component:  HTTPD

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\servers\http\auth\auth.cpp

Component:  IE

Component:  Imaging

Component:  IME

Component:  Integration

Component:  IP Helper

Component:  Kernel

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\coreos\nk\kernel\sh\mdsh3.c
     private\winceos\coreos\nk\kernel\sh\shexcept.src

Component:  MFC

        When an ARMV4I application with eMbedded Visual C++ 4.0 is compiled, a linker error LNK2001 with reference to an unresolved external symbol  

        ConstructElements may occur on debug builds. This may impact MFC applications for Windows CE 5.0 ARM-based devices when they use classes

        such as the CEMap Class which pulls in the ConstructElements at Link time.

 

         Information for OEMs (Original Equipment Manufacturers):
       After applying this update, a platform SDK should be re-exported to update it with the libraries and source files provided by this update.

       It is not necessary to rebuild any DLLs included in the platform that use the shared MFC DLL

 

Component:  MSHTML

Component:  NAT/ICS

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\comm\tcpipw\ipnat\autodial\autodial.c

Component:  .NET Compact Framework

    This update addresses the following issues:

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\cebase\oak\misc\netcf.bat
     public\netcf\cesysgen\makefile
     public\netcf\oak\files\netcf.bib
     public\netcf\oak\files\netcf.reg

Component:  .NET CF v2.0

Overview:

.NET Compact Framework v 2.0 update provides all the new .NET Compact Framework functionality in a new catalog item.  This new catalog item is in the Application and Services Development node next to the .NET Compact Framework v1.0 catalog.  These catalog items are mutually exclusive; one can be included in a project at a time.  If you are interested in developing .NET Compact Framework v2.0 applications, you need either Microsoft Visual Studio 2005 or the .NET Framework v2.0 SDK at: http://www.microsoft.com/downloads/details.aspx?FamilyId=FE6F2099-B7B4-4F47-A244-C96D69C35DEC&displaylang=en 

Installation Instruction:

  1. Close Platform Builder

  2. Run the an update that matches the processor for your project.

  3. Run Platform Builder and add the new .NET Compact Framework v2.0 Catalog item to your workspace.   If the workspace includes .NET Compact Framework v1.0, remove it before adding .NET Compact Framework v2.0.

Issues:

  1. If you add .NET Compact Framework v2.0 and any catalog item which includes the .NET Compact Framework v1 dependencies like the Standard SDK, it will include the .NET Compact Framework v1.0 dependencies.  This behavior is benign as the .NET Compact Framework v2.0 dependencies are a superset of the .NET Compact Framework v1.0 dependencies.

  2. The Smart Devices Authentication Utility is not included with the .NET Compact Framework v2.0 Catalog item.  For instructions on debugging .NET Compact Framework v2.0 applications without using ActiveSync see:  http://msdn2.microsoft.com/en-us/library/ms228708.aspx

.NET Compact Framework v2.0 New Features

The .NET Compact Framework version v2.0 extends the .NET Compact Framework v1.0 with new features, improvements to existing features, and expanded support of classes in the full .NET Compact Framework.

The following table summarizes the expanded support.

Expanded support

Description

Application domains

Support is provided for unloading an application domain.

Anonymous methods

The .NET Compact Framework v2.0 supports the new C# feature that lets you include the event-handling code in the delegate, as shown in the following example:

// In constructor.

button.Click += new EventHandler(sender,args)

{

// Increment a counter or other action.

};

Cryptographic support

The following features are supported:

  • X.509 certificates

  • Hashing:

MD5 and SHA1

  • Symmetric key encryption:

RC2, RC4, 3DES, DES

  • Asymmetric key encryption:

RSA, DSA

DataSet improvements

The GetChanges method is supported, along with more classes in the System.Data namespace.

Events

Internal improvements have been made in raising events.

Exceptions

Improved exception handling by the following:

  • System.Windows.Forms.TabControl.SelectedIndexChanged event
  • System.Windows.Forms.TrackBar.ValueChanged event
  • TreeView events
  • All changed events for selected items in a ComboBox and ListBox, such as the SelectedIndexChanged event.

Generics

Support subset of .NET Compact Framework Generics.

Globalization

Additional encodings are supported.

Assemblies

Friend Assemblies (C# Programming Guide) are supported.

Networking

Support for NTLM authentication and support for IPv6, the next generation of the Internet protocol.

CredentialCache is supported.

Performance for XML serialization is improved.

The .NET Compact Framework v2.0 supports SOAP 1.2.

The .NET Compact Framework v2.0 supports the following authentication protocols:

  • Negotiate
  • NTLM
  • Kerberos

Message Queuing (MSMQ)

Core functionality of using the MSMQ component and the System.Messaging classes is available.

Partial classes

The .NET Compact Framework v2.0 supports partial classes, as used in Microsoft Visual Studio 2005 when you create a new project.

Registry keys

You can set registry keys by using the RegistryKey class.

An open RegistryKey and its open child RegistryKey objects must be explicitly closed before deletion of the key.

The maximum depth of registry keys is 15. This is a Windows CE 5.0 limitation.

Serial ports

You can access serial ports as you can in the full .NET Framework. Four ports are supported. For an example, see Serial Communication Application Sample. Support for serial ports is also available with the Visual Studio 2005 emulators.

SQL Server

Support for SQL Server 2005 Mobile Edition

Strings

The Substring method throws an exception if the startIndex parameter is greater than the length parameter.

String.Empty.Substring(0, 1) throws an ArgumentException.

Threading

Support for the BeginInvoke, EndInvoke methods, and using parameters with the Invoke method.

Visual Basic My objects

The .NET Compact Framework v2.0 supports the following My objects:

  • My.Resources Object
  • My.WebServices Object
  • My.Forms Object

XML support

XML support includes:

  • XmlSerializer class
  • System.Xml.XPath namespace
  • System.Xml.Schema namespace

New Features

The following table summarizes new device-specific features in the .NET Compact Framework v2.0:

Feature

Description

Stand-alone development

Although command-line compilation is supported in the .NET Compact Framework v1.0, the .NET Compact Framework v2.0 provides greater stand-alone compiling and debugging support. The .NET Compact Framework SDK is included in the .NET Framework stand-alone SDK.

Force an earlier .NET Compact Framework version application to run on version 2.0

Applications written and compiled using .NET Compact Framework v1.0 will run automatically on a device which includes .NET Compact Framework v2.0 in ROM.

New controls in Microsoft.WindowsCE.Forms

Including:  Notification, DocumentList, HarwareButton, InputMethodCollection, InputMode, LogFont, MessageWIndow, MobileDevice, ScreenOrientation

Managed D3D for Mobility

Provides Managed wrappers for D3D Mobility.

Interoperability Enhancements

The .NET Compact Framework v2.0 provides the following interoperability enhancements:

Although the .NET Compact Framework v2.0 supports only a subset of the System.Runtime.InteropServices namespace, advanced marshaling capabilities are available with the support of the MarshalAsAttribute attribute. In addition, the .NET Compact Framework v2.0 supports several new members in the Marshal class. You can marshal a wide range of types through COM into the .NET Compact Framework, including all OLE Automation types. Custom marshaling, the COM single-threaded apartment (STA) threading model, and auto-generating class interfaces is not supported.

You can also use the .NET Framework SDK Type Library Importer (Tlbimp.exe) with the .NET Compact Framework v2.0. In Visual Studio, you can add a reference to a COM type library in a device project.

Regarding packed structures, the .NET Compact Framework v2.0 does not support Pack, but it does support the Explicit field and the FieldOffsetAttribute attribute. Note that current restrictions prevent marshaling a structure that violates the native structure layout; in other words, Int32 values must be 4-byte aligned, Int64 and Double values must be 8-byte aligned, and so on. If you need a packed structure where the elements are not naturally aligned, you must do the marshaling yourself.

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\cebase\oak\misc\netcfv2.bat
     public\netcfv2\netcfv2.cec
     public\netcfv2\cesysgen\makefile
     public\netcfv2\cesysgen\sources
     public\netcfv2\oak\files\netcfv2.bib
     public\netcfv2\oak\files\netcfv2.reg

Component:  OAL

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     platform\common\src\common\timer\cntcmp\cntcmp.c

Component:  Other

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\coreos\core\acl\accchk.c
     private\winceos\coreos\inc\gweapiset1.hpp
     private\winceos\coreos\inc\kmodeentries.hpp

Component:  PDF Viewer

        The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

 

             public\viewers\cesysgen\makefile

 

Component:  pIE

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\shell\oak\hpc\explorer\favorites\filemenu.cpp
     public\shell\oak\hpc\explorer\inc\filemenu.h
     public\shell\oak\hpc\explorer\main\mainwnd.cpp

Component:  Platman

Component:  pMail

 

Component:  Poom

 

Component:  PWord

Component:  Regcomp.exe

Component:  Registry (ROM)

Component:  RDP

Component:  RTC

Component:  TCP/IP

Component:  TimeSVC

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\servers\timesvc2\dst\dst.cpp
     private\servers\timesvc2\dst\dst.h
     private\servers\timesvc2\inc\timesvc.h
     private\servers\timesvc2\sntp\sntp.cxx
     private\servers\timesvc2\stubs\dst_stubs.cxx
     private\servers\timesvc2\svc\timesvc.cxx

Component:  USB 2.0

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\common\oak\drivers\usb\hcd\common\cdevice.cpp
     public\common\oak\drivers\usb\hcd\usb20\usb2com\cdevice.cpp

     public\common\oak\drivers\usb\hcd\usb20\ehci\cpipe.cpp

Component:  USB Function

o        The USB serial device may not get enumerated correctly by Windows XP host.

o        A failure may occur when attempting to copy a large file over ActiveSync 3.7 to the device.

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\common\oak\csp\arm\intel\pxa27x\inc\bul_usbfn.h
     public\common\oak\csp\arm\intel\pxa27x\usbfn\bul_usbfn.cpp
     public\common\oak\inc\crefcon.h

     public\common\oak\csp\arm\samsung\s3c2410x\usb\function\sc2410pdd.cpp

Component:  VoIP

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\voip\oak\phone\vail\voipconfigurationdatastore\configurationdatastore.cpp
     public\voip\oak\phone\vail\voipconfigurationdatastore\configurationdatastore.h

Component:  WMP

The file(s) with the new public source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\directx\sdk\samples\wmp\ceplayer\ceplayer.cpp

     public\directx\sdk\samples\wmp\ceplayer\playerwindow.cpp

     public\directx\sdk\samples\wmp\ceplayer\playerwindow.h

Component:  WMT