PRB: "Out of Memory Error" in the Win32 SDK Setup Sample (114610)



The information in this article applies to:

  • Microsoft Win32 Software Development Kit (SDK) 3.1
  • Microsoft Win32 Software Development Kit (SDK) 3.5
  • Microsoft Win32 Software Development Kit (SDK) 3.51
  • Microsoft Win32 Software Development Kit (SDK) 4.0

This article was previously published under Q114610

SYMPTOMS

When a dialog box is shown using UIStartDlg() or a billboard is switched during the file copy operation, you may receive an "out of memory" error. The error will also occur in any setup program based on a modified version of the SDK sample.

CAUSE

The dialog box and billboard templates are stored as resources in MSCUISTF.DLL. This DLL (Dynamic Link Library) is not loaded at the beginning of the setup program but is rather loaded and unloaded [using LoadLibrary() and FreeLibrary()] around each call to UIStratDlg() and when billboards are switched. Hence, each time a dialog or billboard is displayed, floppy disk #1 has the potential of being accessed. If disks have been swapped due to the installation process such that disk #1 is no longer in the drive, you will receive an out of memory error when LoadLibrary() is called on MSCUISTF.DLL.

RESOLUTION

To solve the problem, call LoadLibrary() at the beginning of WinMain() and call FreeLibrary() and the end of WinMain(). This way the DLL is always in use and will never be unloaded until the setup is done.

Modification Type:MajorLast Reviewed:3/10/2000
Keywords:kbprb KB114610