FIX: Win32s 1.25a
Fix List
1.25a WINDOWS kbprg kbfixlist kbbuglist
The information in this article applies to:
- Microsoft Win32s, version 1.25a
The following is a list of the known bugs in Win32s version 1.2 that were fixed in
Win32s version 1.25.
- GlobalAlloc(GMEM_FIXED) from 32-bit .EXE locks memory pages. It is more efficient to use
GlobalAlloc(GMEM_MOVEABLE) and call GlobalFix() if necessary.
- WINMM16.DLL has no version information.
- CreateFileMapping() with SEC_NOCOMMIT returns ERROR_INVALID_PARAMETER.
- PolyPolygon() does not close the polygons.
- OpenFile() only searches the current directory when only a filename is given, not the
application directory, the system directory, the windows directory, or the directories
listed on the path.
- GetFileInformationByHandle() doesn't return the correct file attribute.
- GlobalUnlock() sets an error of ERROR_INVALID_PARAMETER.
- lstrcmp()/lstrcmpi() do not use the collate table correctly.
- FreeLibrary() in DLL_PROCESS_DETACH crashes the system.
- FindResource(), LoadResource(), GetProcAddress(), GetModuleFileName(),
EnumResourceNames(), and other APIs, fail with a NULL hInstance.
- sndPlaySound() with SND_ASYNC | SND_MEMORY may cause a crash or may work poorly.
- Thread Local Storage (TLS) data is not initialized to 0 in TlsAlloc().
- The pointer received in the lParam of WM_INITDIALOG in the common dialog hook function
becomes invalid in the following messages if the pointer is "remembered" in a
static variable.
- 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.
- GetLocaleInfo() for locale returns system defaults from WIN.INI.
- GetVolumeInformation() fails with ERROR_INVALID_NAME for volumes without a label.
- VirtualProtect() may miss the last page in an address range.
- GetLocaleInfo() returns incorrect information for most non-US locales.
- ANSI/OEM conversions always use code page 437.
- GetProcAddress() for printer driver APIs is case sensitive.
- The LanMan APIs are unsupported, but they return 0, which indicates that the API was
successful. They should return NERR_InvalidAPI (2142).
- CreateFileW() returns 0 instead of -1 (HFILE_ERROR).
- lstrcpyn() copies n bytes from source to destination, then appends a NULL terminator,
instead of copying n-1 bytes and appending the NULL terminator.
- GetDriveType() doesn't report detecting a CD-ROM or a RAM DISK.
- CRTDLL calls TlsFree() upon each process detach, not just the last.
- If a DllEntryPoint calls FreeLibrary() when using universal thunks, the system can
crash.
- Not all 32-bit DLLs have correct version numbers.
- GetCurrentDirectory() returns the wrong directory after calling GetOpenFileName(). The
workaround is to call SetCurrentDirectory(".") right after returning from the
call to GetOpenFileName().
- RegEnumValue() and other Registry functions return ERROR_SUCCESS even though they are
not implemented. Win32s implements only the registry functions supported by Windows.
- AreFileApisANSI()/SetFileApisToANSI()/SetFileApisToOEM() are not exported.
AreFileApisANSI() should always return TRUE, SetFileApiToOEM() should always fail, and
SetFileApiToANSI() should always succeed.
- SetLocaleInfoW()/SetLocateInfoA() are not implemented.
- GetScrollPos() sets the last error if the scroll position is 0.
- SetScrollPos() sets the last error if the last scroll position is 0.
- LoadString() leaks memory if the string is a null string.
- GetFileVersionInfoSize() fails if the resource section is small and close to the end of
the file.
- MoveFile() doesn't call SetLastError() on failure or sets a different error than on
Windows NT.
- SetCurrentDirectory() does not work on a CD-ROM drive.
- GetFileVersionInfoSize() fails if the 2nd parameter is NULL.
- WSOCK32.DLL is missing exported stubs for unimplemented APIs.
- Win32s fails to load 64x64 monochrome (black and white) icons.
- CreateFile() fails when called with a filename with an international character.
- GetCurrentDirectory() returns an OEM string.
- PrintDlg() causes GP fault if hDevMode!=NULL and another printer is selected that uses a
larger DevMode buffer.
- Unicode resources are not properly converted to 8-bit characters.
- CreateDC() returns an incorrect DEVMODE. This can cause a variety of symptoms, like the
inability to do a Landscape Print Preview from an MFC application or the displayed paper
width and height not changing, even when you change the paper size.
- OpenFile() fails on filenames with OEM characters in the name.
- WNetCancelConnection() should be supported similar to NetAddConnection().
- GetDriveType() fails on a Stacker 3.1 drive.
- SetCurrentDirectory() fails on Novell client machines.
- GetProp() returns 0 in the second instance of an app in certain cases.
- fopen(fn, "w") fails on second call.
- TLS indices allocated by a module are released when that module is freed.
- CreateWindow() handles STARTUPINFO incorrectly if the application starts minimized.
- CreateFile() creates files with incorrect attributes.
- Resource sections are now read/write to emulate the behavior of Windows NT and Windows
95.
- Removed the 128K stack limitation.
- CompareStringW() sometimes uses incorrect locale, primarily Swedish and other
Scandinavian locales.
- Added dummy _iob to CRTDLL for applications that reference standard handles.
- Added support for OPENCHANNEL, CLOSECHANNEL, SEXGDIXFORM, and DOWNLOADHEADER escapes.
Additional reference words: 1.25 1.25a KBCategory: kbprg kbfixlist kbbuglist
KBSubcategory: W32s
Keywords : kbWin32s kbbuglist kbfixlist
Version : 1.25a
Platform : WINDOWS
Solution Type : kbfix
|
|
 |
Article ID: Q130139
Last Reviewed:
November 1, 1997
Provided by Support Online from Microsoft
Product Support Services.
|
|