home *** CD-ROM | disk | FTP | other *** search
/ Computer Buyer 1997 April / dpcb0497.iso / Rudiment / WIN32S / README.TXT < prev    next >
Text File  |  1995-05-18  |  14KB  |  384 lines

  1. ======================================================================
  2.   Microsoft(R) Product Support Services Application Note (Text File)
  3.                    PW1118: MICROSOFT WIN32S UPGRADE
  4. ======================================================================
  5.                                                   Revision Date: 5/95
  6.                                                        1 Disk Included
  7.  
  8. The following information applies to Microsoft Win32s, version 1.25A.
  9.  
  10.  ---------------------------------------------------------------------
  11. | INFORMATION PROVIDED IN THIS DOCUMENT AND ANY SOFTWARE THAT MAY     |
  12. | ACCOMPANY THIS DOCUMENT (collectively referred to as an Application |
  13. | Note) IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER      |
  14. | EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED      |
  15. | WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR       |
  16. | PURPOSE. The user assumes the entire risk as to the accuracy and    |
  17. | the use of this Application Note. This Application Note may be      |
  18. | copied and distributed subject to the following conditions: 1) All  |
  19. | text must be copied without modification and all pages must be      |
  20. | included;  2) If software is included, all files on the disk(s)     |
  21. | must be copied without modification (the MS-DOS(R)  utility         |
  22. | diskcopy is appropriate for this purpose);  3) All components of    |
  23. | this Application Note must be distributed together;  and  4) This   |
  24. | Application Note may not be distributed for profit.                 |
  25. |                                                                     |
  26. | Copyright (C) 1994-1995 Microsoft Corporation. All Rights Reserved. |
  27. | Microsoft, MS-DOS, Win32, and Win32s are registered trademarks and  |
  28. | Windows is a trademark of Microsoft Corporation.                    |
  29. |  -------------------------------------------------------------------|
  30.  
  31. Microsoft Win32s version 1.25A is the latest version of the software
  32. that allows you to run Win32-based applications on Windows(TM) 
  33. or Windows for Workgroups versions 3.1 and later.
  34.  
  35. The "Microsoft Win32s Upgrade" Application Note disk contains the file
  36. W32S125.EXE; the file LICENSE.TXT, which has legal information
  37. regarding redistribution of Win32s files [please consult the Win32s
  38. "Programmer's Reference," which is part of the Microsoft Win32
  39. Software Development Kit (SDK), for further information]; and a
  40. README.TXT file, which is the text of this Application Note.
  41.  
  42. The "Microsoft Win32s Upgrade" does not include OLE support. For OLE
  43. support for Win32-based applications under Win32s, you need the Microsoft
  44. Win32(R) SDK.
  45.  
  46. The Win32s upgrade is intended as an end-user upgrade and is not
  47. intended for further redistribution.
  48.  
  49. The following are instructions for installing Win32s.
  50.  
  51. Decompressing the Setup Program Files
  52. -------------------------------------
  53.  
  54. The Win32s files are provided in a compressed state in the W32S125.EXE
  55. file. This executable file decompresses the setup files for Win32s:
  56.  
  57. 1. Create a directory on your hard drive for the decompressed files.
  58.    For example, you could create the directory "INSTALL" by entering
  59.    the following at the command prompt:
  60.  
  61.       mkdir install
  62.  
  63. 2. Copy W32S125.EXE to the new INSTALL directory, change directories to
  64.    the INSTALL directory, and type the following at the command prompt:
  65.  
  66.       w32s125
  67.  
  68. This decompresses the Win32s files into an installation layout (setup
  69. program) in the INSTALL directory.
  70.  
  71. Installing Win32s on Your System
  72. --------------------------------
  73.  
  74. 1. To install Win32s, run Windows and start the File Manager.
  75.  
  76. 2. Open the INSTALL directory (the directory created in step 1 of the
  77.    setup instructions above).
  78.  
  79. 3. Double-click SETUP.EXE. The setup program installs Win32s and
  80.    reboots the system to update system files.
  81.  
  82.    Win32s is now installed or upgraded on your system, and any
  83.    obsolete Win32s files have been removed.
  84.  
  85. 4. Delete the INSTALL directory and its contents.
  86.  
  87. Additional Information
  88. ----------------------
  89.  
  90. BUG: Win32s 1.25a Bug List                                    [win32sdk]
  91. ID: Q130138    CREATED: 11-MAY-1995   MODIFIED: 11-MAY-1995
  92. 1.25a
  93. WINDOWS
  94. PUBLIC | kbprg kbbuglist
  95.  
  96. -----------------------------------------------------------------------
  97. The information in this article applies to:
  98.  
  99.  - Microsoft Win32s, version 1.25a
  100. -----------------------------------------------------------------------
  101.  
  102. The following is a list of the known bugs in Win32s version 1.25 at the
  103. time of its release.
  104.  
  105.  - Incorrect context at EXIT_PROCESS_DEBUG_EVENT.
  106.  
  107.  - Progman gets restored when debugger app exits.
  108.  
  109.  - Using StartDoc() does not produce document from printer.
  110.  
  111.  - EM_GETWORDBREAKPROC return code is incorrect.
  112.  
  113.  - Int 3 cannot be trapped via Structured Exception Handling (SEH) on
  114.    Win32s.
  115.  
  116.  - Win32s does not open all files in RAW mode, as Windows NT does.
  117.  
  118.  - Cannot do ReadProcessMemory (RPM) on memory that has a hardware
  119.    breakpoint set on it.
  120.  
  121.  - C Run-Time functions getdcwd()/getcwd() do not work.
  122.  
  123.  - GetFullPathName() returns the root directory for any drive that is not
  124.    the current drive.
  125.  
  126.  - PlayMetaFileRecord()/EnumMetaFile() contains incorrect lpHTable.
  127.  
  128.  - Size of memory mapped files is rounded to a whole number of pages,
  129.    meaning that the size is a multiple of 4096 bytes.
  130.  
  131.  - Functions chdrive() and SetCurrentDirectory() fail on PCNFS network
  132.    drives.
  133.  
  134.  - GetExitCodeProcess() does not return exit codes for 16-bit Windows-based
  135.    applications.
  136.  
  137.  - Memory passed to Netbios() must be allocated with GlobalAlloc().
  138.  
  139.  - biSizeImage field of BITMAPINFOHEADER is zero.
  140.  
  141.  - CreateFile() on certain invalid long filesnames closes Windows.
  142.  
  143.  - Only the first CBT hook gets messages.
  144.  
  145.  - Most registry functions return the Windows 3.1 return codes, not the
  146.    Windows NT return codes.
  147.  
  148.  - GlobalReAlloc(x,y,GMEM_MOVEABLE) returns wrong handle type.
  149.  
  150.  - GetVolumeInformation() fails for Universal Naming Convention (UNC)
  151.    root path.
  152.  
  153.  - ResumeThread while debugging writes to debuggee stack.
  154.  
  155.  - GetShortPathName() doesn't fail with a bad path, as it does on
  156.    Windows NT.
  157.  
  158.  - CreateDirectory()/RemoveDirectory() handle errors differently than on
  159.    Windows NT.
  160.  
  161.  - SetCurrentDirctory() returns different error codes than on Windows NT.
  162.  
  163.  - FindText() leaks memory.
  164.  
  165.  - Win32s doesn't support language files other than default (l_intl.nls).
  166.  
  167.  - spawnl does not pass parameters to an MS-DOS-based application.
  168.  
  169.  - Win32s does not support forwarded exports.
  170.  
  171.  - GetDlgItemInt() only translates numbers <= 32767 (a 16-bit integer).
  172.  
  173.  - Changing system locale in Win32s will not have an effect until Win32s
  174.    is loaded again, unlike on Windows NT.
  175.  
  176.  - Module Management APIs missing ANSI to OEM translation.
  177.  
  178.  - When WS_TABSTOP is passed to CreateWindow(), this forces a
  179.    WS_MAXIMIZEBOX.
  180.  
  181.  - Stubbed API FindFirstFileW() does not return -1 to indicate failure.
  182.  
  183.  - SearchPath() and OpenFile() don't work properly with OEM chars in the
  184.    filename.
  185.  
  186.  - GetSystemInfo() doesn't set correct ProcessorType for the Pentium.
  187.  
  188.  - FormatMessage() doesn't set last error.
  189.  
  190.  - FormatMessage() fails with LANG_NEUTRAL | SUBLANG_DEFAULT, but works
  191.    with LANG_ENGLISH | SUBLANG_ENGLISH_US.
  192.  
  193.  - After calling CreateFile() on a write-protected floppy GetLastError()
  194.    returns 2, instead of 19, as it should.
  195.  
  196.  - VirtualProtect() with anything other than PAGE_NOACCESS, PAGE_READ, OR
  197.    PAGE_READWRITE yields unpredictable page protections.
  198.  
  199.  - COMPAREITEMSTRUCT, DELETEITEMSTRUCT, DRAWITEMSTRUCT, AND
  200.    MEASUREITEMSTRUCT incorrectly sign-extend fields.
  201.  
  202.  - GetWindowTextLength() & GetWindowText() incorrectly sign-extend the
  203.    return value.
  204.  
  205.  - MoveFile() fails on Windows for Workgroups when the source is remote and
  206.    the destination is local.
  207.  
  208. Additional reference words: 1.25 1.25a
  209. KBCategory: kbprg kbbuglist
  210. KBSubcategory: W32s
  211.  
  212. FIX: Win32s 1.25a Fix List                                    [win32sdk]
  213. ID: Q130139    CREATED: 11-MAY-1995   MODIFIED: 11-MAY-1995
  214. 1.25a
  215. WINDOWS
  216. PUBLIC | kbprg kbfixlist kbbuglist
  217.  
  218. -----------------------------------------------------------------------
  219. The information in this article applies to:
  220.  
  221.  - Microsoft Win32s, version 1.25a
  222. -----------------------------------------------------------------------
  223.  
  224. The following is a list of the known bugs in Win32s version 1.2 that
  225. were fixed in Win32s version 1.25.
  226.  
  227.  - GlobalAlloc(GMEM_FIXED) from 32-bit .EXE locks memory pages. It is
  228.    more efficient to use GlobalAlloc(GMEM_MOVEABLE) and call GlobalFix()
  229.    if necessary.
  230.  
  231.  - WINMM16.DLL has no version information.
  232.  
  233.  - CreateFileMapping() with SEC_NOCOMMIT returns ERROR_INVALID_PARAMETER.
  234.  
  235.  - PolyPolygon() does not close the polygons.
  236.  
  237.  - OpenFile() only searches the current directory when only a filename is
  238.    given, not the application directory, the system directory, the windows
  239.    directory, or the directories listed on the path.
  240.  
  241.  - GetFileInformationByHandle() doesn't return the correct file attribute.
  242.  
  243.  - GlobalUnlock() sets an error of ERROR_INVALID_PARAMETER.
  244.  
  245.  - lstrcmp()/lstrcmpi() do not use the collate table correctly.
  246.  
  247.  - FreeLibrary() in DLL_PROCESS_DETACH crashes the system.
  248.  
  249.  - FindResource(), LoadResource(), GetProcAddress(), GetModuleFileName(),
  250.    EnumResourceNames(), and other APIs, fail with a NULL hInstance.
  251.  
  252.  - sndPlaySound() with SND_ASYNC | SND_MEMORY may cause a crash or may work
  253.    poorly.
  254.  
  255.  - Thread Local Storage (TLS) data is not initialized to 0 in TlsAlloc().
  256.  
  257.  - The pointer received in the lParam of WM_INITDIALOG in the common dialog
  258.    hook function becomes invalid in the following messages if the pointer
  259.    is "remembered" in a static variable.
  260.  
  261.  - Stubbed API GetFileAttributesW() does not return -1 on error.
  262.  
  263.  - Code page CP_MACCP not supported.
  264.  
  265.  - Invalid LCIDs are not recognized.
  266.  
  267.  - CreateFile() fails to open an existing file in share mode.
  268.  
  269.  - GetLocaleInfo() for locale returns system defaults from WIN.INI.\* #595
  270.  
  271.  - GetVolumeInformation() fails with ERROR_INVALID_NAME for volumes
  272.    without a label.
  273.  
  274.  - VirtualProtect() may miss the last page in an address range.
  275.  
  276.  - GetLocaleInfo() returns incorrect information for most non-US locales.
  277.  
  278.  - ANSI/OEM conversions always use code page 437.
  279.  
  280.  - GetProcAddress() for printer driver APIs is case sensitive.
  281.  
  282.  - The LanMan APIs are unsupported, but they return 0, which indicates
  283.    that the API was successful. They should return NERR_InvalidAPI (2142).
  284.  
  285.  - CreateFileW() returns 0 instead of -1 (HFILE_ERROR).
  286.  
  287.  - lstrcpyn() copies n bytes from source to destination, then appends a
  288.    NULL terminator, instead of copying n-1 bytes and appending the NULL
  289.    terminator.
  290.  
  291.  - GetDriveType() doesn't report detecting a CD-ROM or a RAM DISK.
  292.  
  293.  - CRTDLL calls TlsFree() upon each process detach, not just the last.
  294.  
  295.  - If a DllEntryPoint calls FreeLibrary() when using universal thunks,
  296.    the system can crash.
  297.  
  298.  - Not all 32-bit DLLs have correct version numbers.
  299.  
  300.  - GetCurrentDirectory() returns the wrong directory after calling
  301.    GetOpenFileName(). The workaround is to call SetCurrentDirectory(".")
  302.    right after returning from the call to GetOpenFileName().
  303.  
  304.  - RegEnumValue() and other Registry functions return ERROR_SUCCESS even
  305.    though they are not implemented. Win32s implements only the registry
  306.    functions supported by Windows.
  307.  
  308.  - AreFileApisANSI()/SetFileApisToANSI()/SetFileApisToOEM() are not
  309.    exported. AreFileApisANSI() should always return TRUE, SetFileApiToOEM()
  310.    should always fail, and SetFileApiToANSI() should always succeed.
  311.  
  312.  - SetLocaleInfoW()/SetLocateInfoA() are not implemented.
  313.  
  314.  - GetScrollPos() sets the last error if the scroll position is 0.
  315.  
  316.  - SetScrollPos() sets the last error if the last scroll position is 0.
  317.  
  318.  - LoadString() leaks memory if the string is a null string.
  319.  
  320.  - GetFileVersionInfoSize() fails if the resource section is small and
  321.    close to the end of the file.
  322.  
  323.  - MoveFile() doesn't call SetLastError() on failure or sets a different
  324.    error than on Windows NT.
  325.  
  326.  - SetCurrentDirectory() does not work on a CD-ROM drive.
  327.  
  328.  - GetFileVersionInfoSize() fails if the 2nd parameter is NULL.
  329.  
  330.  - WSOCK32.DLL is missing exported stubs for unimplemented APIs.
  331.  
  332.  - Win32s fails to load 64x64 monochrome (black and white) icons.
  333.  
  334.  - CreateFile() fails when called with a filename with an international
  335.    character.
  336.  
  337.  - GetCurrentDirectory() returns an OEM string.
  338.  
  339.  - PrintDlg() causes GP fault if hDevMode!=NULL and another printer is
  340.    selected that uses a larger DevMode buffer.
  341.  
  342.  - Unicode resources are not properly converted to 8 bit characters.
  343.  
  344.  - CreateDC() returns an incorrect DEVMODE. This can cause a variety of
  345.    symptoms, like the inability to do a Landscape Print Preview from an
  346.    MFC application or the displayed paper width and height not changing,
  347.    even when you change the paper size.
  348.  
  349.  - OpenFile() fails on filenames with OEM characters in the name.
  350.  
  351.  - GetDriveType() fails on a Stacker 3.1 drive.
  352.  
  353.  - SetCurrentDirectory() fails on Novell client machines.
  354.  
  355.  - GetProp() returns 0 in the second instance of an app in certain cases.
  356.  
  357.  - fopen(fn, "w") fails on second call.
  358.  
  359.  - TLS indices allocated by a module are released when that module is freed.
  360.  
  361.  
  362.  - CreateWindow() handles STARTUPINFO incorrectly if the application starts
  363.    minimized.
  364.  
  365.  - CreateFile() creates files with incorrect attributes.
  366.  
  367.  - Resource sections are now read/write to emulate the behavior of Windows
  368.    NT and Windows 95.
  369.  
  370.  - Removed the 128K stack limitation.
  371.  
  372.  - CompareStringW() sometimes uses incorrect locale, primarily Swedish and
  373.    other Scandinavian locales.
  374.  
  375.  - Added dummy _iob to CRTDLL for applications that reference standard
  376.    handles.
  377.  
  378.  - Added support for OPENCHANNEL, CLOSECHANNEL, SEXGDIXFORM, and
  379.    DOWNLOADHEADER escapes.
  380.  
  381. Additional reference words: 1.25 1.25a
  382. KBCategory: kbprg kbfixlist kbbuglist
  383. KBSubcategory: W32s
  384.