FIX: Memory usage by an application that uses Vbscript.dll grows when an external COM object returns an error code in Windows CE 3.0 (883487)



The information in this article applies to:

  • Microsoft Windows CE Platform Builder 3.0

SYMPTOMS

In Microsoft Windows CE 3.0, memory usage by an application that is using the Vbscript.dll component grows slowly but without bounds when an external Microsoft Component Object Model (COM) object returns an error code. This behavior eventually causes an out-of-memory error.

CAUSE

This problem occurs because of a problem in the Vbscript.dll component. When an ErrorInfo structure is returned from an IDispatch interface call, Vbscript.dll does not call the SysFreeString function on the string variables of the ErrorInfo structure. Therefore, the memory for the strings is not returned to the available memory pool for reallocation.

RESOLUTION

Software update information

A supported software update is now available from Microsoft as Windows CE 3.0 Core OS QFE 883487. To resolve this problem immediately, click the following article number for information about obtaining Windows CE Platform Builder and core operating system software updates:

837392 How to locate core operating system fixes for Microsoft Windows CE Platform Builder products

Prerequisites

This software update is supported only if all previously issued software updates for this product have also been installed.

Restart requirement

After you install this software update, you must perform a clean build of the whole platform. To clean the platform, click Clean on the Build menu. To build the platform, click Build Platform on the Build menu. You do not have to restart your computer after you apply this software update.

Software update replacement information

This software update does not replace any other software updates.

File information

The English version of this software update package has the file attributes or later file attributes that are listed in the following table:
   Date         Time   Version     Size       File name
   -------------------------------------------------------------------------------

   Path: Signed
   09-Nov-2004  20:55  3.0.4.1108  2,808,552  Wincepb30-041108-kb883487-arm720.exe  
   09-Nov-2004  20:59  3.0.4.1108  2,882,280  Wincepb30-041108-kb883487-ppc403.exe  
   09-Nov-2004  20:56  3.0.4.1108  2,882,280  Wincepb30-041108-kb883487-ppc821.exe  
   09-Nov-2004  20:58  3.0.4.1108  2,980,584  Wincepb30-041108-kb883487-r3000.exe  
   09-Nov-2004  20:58  3.0.4.1108  2,976,488  Wincepb30-041108-kb883487-r4100.exe  
   09-Nov-2004  20:56  3.0.4.1108  2,976,488  Wincepb30-041108-kb883487-r4111.exe  
   09-Nov-2004  20:55  3.0.4.1108  2,980,584  Wincepb30-041108-kb883487-r4300.exe  
   09-Nov-2004  20:56  3.0.4.1108  2,808,552  Wincepb30-041108-kb883487-sa1100.exe  
   09-Nov-2004  20:56  3.0.4.1108  3,205,864  Wincepb30-041108-kb883487-sh3.exe  
   09-Nov-2004  20:55  3.0.4.1108  3,205,864  Wincepb30-041108-kb883487-sh4.exe  
   09-Nov-2004  20:55  3.0.4.1108  2,890,472  Wincepb30-041108-kb883487-thumb.exe  
   09-Nov-2004  20:58  3.0.4.1108  2,620,136  Wincepb30-041108-kb883487-x86.exe  
The English version of this update has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Size       File name
   ------------------------------------------------

   Path: Public\Script\Oak\Lib\Arm\Arm720\Ce\Retail
   03-Nov-2004  22:28  3,537,688  Jscript.lib
   03-Nov-2004  22:28  3,203,850  Vbscript.lib

   Path: Public\Script\Oak\Lib\Arm\Sa1100\Ce\Retail
   03-Nov-2004  22:15  3,537,688  Jscript.lib
   03-Nov-2004  22:14  3,203,850  Vbscript.lib

   Path: Public\Script\Oak\Lib\Mips\R3000\Ce\Retail
   03-Nov-2004  22:22  3,879,810  Jscript.lib
   03-Nov-2004  22:21  3,446,270  Vbscript.lib

   Path: Public\Script\Oak\Lib\Mips\R4100\Ce\Retail
   03-Nov-2004  22:23  3,876,862  Jscript.lib
   03-Nov-2004  22:22  3,443,872  Vbscript.lib

   Path: Public\Script\Oak\Lib\Mips\R4111\Ce\Retail
   03-Nov-2004  22:24  3,876,862  Jscript.lib
   03-Nov-2004  22:23  3,443,872  Vbscript.lib

   Path: Public\Script\Oak\Lib\Mips\R4300\Ce\Retail
   03-Nov-2004  22:25  3,873,720  Jscript.lib
   03-Nov-2004  22:24  3,439,058  Vbscript.lib

   Path: Public\Script\Oak\Lib\Ppc\Ppc403\Ce\Retail
   03-Nov-2004  22:26  3,640,474  Jscript.lib
   03-Nov-2004  22:26  3,281,712  Vbscript.lib

   Path: Public\Script\Oak\Lib\Ppc\Ppc821\Ce\Retail
   03-Nov-2004  22:27  3,640,474  Jscript.lib
   03-Nov-2004  22:27  3,281,712  Vbscript.lib

   Path: Public\Script\Oak\Lib\Shx\Sh3\Ce\Retail
   03-Nov-2004  22:18  4,766,330  Jscript.lib
   03-Nov-2004  22:16  3,955,476  Vbscript.lib

   Path: Public\Script\Oak\Lib\Shx\Sh4\Ce\Retail
   03-Nov-2004  22:20  4,768,646  Jscript.lib
   03-Nov-2004  22:19  3,957,164  Vbscript.lib

   Path: Public\Script\Oak\Lib\Thumb\Arm720\Ce\Retail
   03-Nov-2004  22:29  3,611,512  Jscript.lib
   03-Nov-2004  22:29  3,286,086  Vbscript.lib

   Path: Public\Script\Oak\Lib\X86\I486\Ce\Retail
   03-Nov-2004  22:14  3,188,590  Jscript.lib
   03-Nov-2004  22:13  2,889,048  Vbscript.lib

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

This software update package contains a library that is used to build the Vbscript.dll component. By default, Windows CE 3.0 Platform Builder uses a pre-built version of the Vbscript.dll component. To enable this fix, you must disable this default setting. Then, you must enable the build process to build a version of the Vbscript.dll component that includes this hotfix. To complete the installation of this update, follow these steps:
  1. Start Platform Builder.
  2. In the platform workspace view, click the Component View tab, and then remove VBEng from the list of components.
  3. In the Platform Settings dialog box, click the Sysgen tab, and then verify that the Include Jscript check box is selected.

    Note The capitalization of Microsoft JScript is incorrect for the Include Jscript check box.
  4. Enable the build of the Vbscript.dll component from the new Vbscript.lib file. To do this, follow these steps:
    1. In the platform workspace view, click the Parameters View tab.
    2. Locate Cesysgen.bat under Project Specific Files, and then open the file.
    3. In the Cesysgen.bat file, add "vbscript" to the end of the line of code that sets the SCRIPT_MODULES variable. The code will look similar to the following code sample.
      if not "%MAXALL_NOJSCRIPT%"=="1" set SCRIPT_MODULES=jscript vbscript

Modification Type:MinorLast Reviewed:8/18/2005
Keywords:kbBug kbfix kbQFE KB883487 kbAudOEM