BUG: Win32s Version 1.2 Bug List at Time of Release
PSS ID Number: Q121906
Article last modified on 11-13-1994
PSS database name: WIN32SDK

1.20
WINDOWS

---------------------------------------------------------------------
The information in this article applies to:

 - Microsoft Win32s version 1.2
---------------------------------------------------------------------

The following is a list of the known bugs in Win32s version 1.2 at the
time of its release.

 - EM_GETWORDBREAKPROC return code is incorrect.
 - Int 3 cannot be trapped via Structured Exception Handling (SEH) on
   Win32s.
 - GlobalAlloc(GMEM_FIXED) from 32-bit .EXE locks memory pages. It is
   more efficient to use GlobalAlloc(GMEM_MOVEABLE) and call GlobalFix()
   if necessary.
 - WinHlp32.exe will not run.
 - C Run-time functions getdcwd()/getcwd() do not work.
 - PlayMetaFileRecord()/EnumMetaFile() contain incorrect lpHTable.
 - Print setup common dialog does not work as expected (the dialog does
   not appear in some situations).
 - Size of memory mapped files is rounded to a whole number of pages,
   meaning that the size is a multiple of 4096 bytes.
 - Functions chdrive() and SetCurrentDirectory() fail on PCNFS network
   drives.
 - Calling CreateWindowEx() with a 32-bit menu handle causes int 3.
 - GetExitCodeProcess() does not return exit codes for Win16 applications.
 - FindFirstFile()/FindNextFile() return local time, not Universal
   Coordinated Time (UTC) time. This behavior matches Windows 3.1, but not
   Windows NT.
 - Memory passed to Netbios() must be allocated with GlobalAlloc().
 - biSizeImage field of BITMAPINFOHEADER is zero
 - CreateFile() on certain invalid long filenames closes Windows.
 - Only the first CBT hook gets messages.
 - GlobalUnlock() sets an error of ERROR_INVALID_PARAMETER.
 - CreateFile() with share options of 0 does not lock file.
 - lstrcmp()/lstrcmpi() do not use the collate table correctly.
 - FreeLibrary() in DLL_PROCESS_DETACH crashes system.
 - LockResource() does not return NULL if hResource is invalid.
 - sndPlaySound() may cause a crash or may work poorly.
 - GetVolumeInformation() fails for Universal Naming Convention (UNC)
   root path.
 - Stubbed API GetFileAttributesW() does not return -1 on error.
 - Code page CP_MACCP not supported.
 - Invalid LCIDs are not recognized.
 - CreateFile() fails to open an existing file in share mode.
 - CreateDirectory()/RemoveDirectory() handle errors differently on
   Windows NT and Win32s.
 - SetCurrentDirctory() returns different error codes than on Windows NT.
 - FindText() leaks memory.
 - FindText() may cause GP fault.
 - Not all 32-bit DLLs have correct version numbers.
 - WINMM16.DLL has no version information.
 - RegEnumValue() and other Registry functions return ERROR_SUCCESS even
   though they are not implemented. Win32s implements only the registry
   functions supported by Windows.
 - COMPOBJ.DLL calls FreeLibrary() on w32sys.dll, leaving the FP exception
   vector invalid. Causes crash, often out to MS-DOS.
 - CreatePolyPolygonRgn() is not closing the polygons.
 - SetDIBits() with DIB_PAL_INDICES is not supported (this behavior matches
   Windows 3.1, but not Windows NT).
 - Progman gets restored when debugger app exits.
 - Cannot do ReadProcessMemory (RPM) on memory that has a hardware break
   point set on it.
 - Pointer to common dialog structures (lParam) becomes invalid.
 - ResumeThread() while debugging writes to debuggee stack.
 - Fault in initialization if app has more than 128K bytes of local data.
   This is because the application stack is limited to 128K.
 - Using CVW debugger, exception will terminate the app being debugged.
 - RealizePalette() error on Windows NT is -1, but is not defined under
   Win32s.
 - Using StartDoc() does not produce document from printer.
 - Can't open file using full path with different drive in common dialog.
 - GetFileInformationByHandle() doesn't return correct file attribute.
 - GlobalReAlloc(x,y,GMEM_MOVEABLE) returns wrong handle type.
 - Thread Local Storage (TLS) data not initialized to zero in TlsAlloc().
 - spawnl() does not pass parameters to an MS-DOS application.
 - Incorrect context at EXIT_PROCESS_DEBUG_EVENT.
 - Win32s doesn't support language files other than default (l_intl.nls).
 - SetLocaleInfoW()/SetLocaleInfoA() not implemented.
 - GetScrollPos() fails if scroll pos is 0.
 - SetScrollPos() fails if last scroll pos is 0.
 - FreeLibrary() may crash when using universal thunks.
 - Win32s does not support forwarded exports.
 - GetCurrentDirectory() returns wrong directory after calling
   GetOpenFileName().
 - Module management APIs missing ANSI to OEM translation.
 - LoadString() leaks memory if the string is a null string.

Additional reference words: 1.20 buglist1.20
KBCategory: kbprg kbbuglist
KBSubcategory: W32s

=============================================================================
Copyright Microsoft Corporation 1994.