Microsoft KB Archive/130139

{|
 * width="100%"|

FIX: Win32s 1.25a Fix List

 * }

Q130139

-

The information in this article applies to:


 * Microsoft Win32s version 1.25a

-

SUMMARY
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 query words: 1.25

Keywords : kbOSWin32s

Issue type :

Technology : kbWin32sSearch kbWin32s125a