BUG: Win32 SDK Version 3.5 Bug List - Win32 API
  
PSS ID Number: Q121907
Article last modified on 08-30-1995
 
3.50
 
WINDOWS NT
 

---------------------------------------------------------------------
The information in this article applies to:
 
 - Microsoft Win32 Software Development Kit (SDK), version 3.5
---------------------------------------------------------------------
 
SUMMARY
=======
 
The following is a list of bugs in the Win32 SDK and Win32 API (version
3.5) that were known at the time of its release. The list is divided
into four sections: Base, GDI, Networking, and User.
 
MORE INFORMATION
================
 
Base
----
 
 - SetLastErrorEx() does not raise a RIP_INFO debug event.
 
 - Overlapped I/O does not work on CD-ROM drives.
 
 - CDECL should be defined to __cdecl in WINDEF.H.
 
 - EVENTLOGRECORD strings are incorrectly given as type WCHAR in winnt.h.
   The online help correctly gives the strings as type TCHAR.
 
 - SetComputerName(""); sets computer name to an empty string at reboot,
   which the logon service cannot handle. The Network applet does not
   allow this computer name. Your code should check for this case as well.
 
 - Registry allows remote access to certain performance data, but not
   local access.
 
 - RegCreateKeyEx() puts the class string in all created subkeys.
 
 - Call FileTimeToLocalFileTime() with a structure containing 0, then pass
   the result to FileTimeToSystemTime(). FileTimeToSystemTime() returns a
   bad value in SystemTime.wHour.
 
 - DLL does not receive DLL_PROCESS_DETACH if last thread in process calls
   ExitThread().
 
GDI
---
 
 - Return values for certain GetBitmapBits() calls are not the same on
   Windows and Windows NT.
 
 - Return values for certain StretchBlt() calls are not the same on
   Windows and Windows NT.
 
 - When a transparent window is present and full drag is enabled, the
   display is not refreshed correctly when a window is dragged.
 
 - GetCharABCWidths() returns twice the width for character 0x92 that
   GetTextExtentPoint() returns using Arial font.
 
 - Use a True Type font off the network, produce a few glyphs, and kill
   the network connection. You get an in page memory exception if you
   try to use the font with different (not cached) glyphs. Restore the
   network connection and try to use the font. The font was tagged as
   invalid, so all subsequent TextOut() calls fail.
 
 - CreateDC() returns ERROR_MOD_NOT_FOUND instead of ERROR_ACCESS_DENIED
   for a printer with no access rights. The problem is that GDI does not
   check for ERROR_ACCESS_DENIED when the open printer fails; GDI directly
   tries to do a LoadLibrary() on the pszDevice.
 
 - EndDoc() reports success when given an information context (IC).
 
 - AbortDoc() reports success when given an information context (IC).
 
 - glGet() doesn't generate GL_INVALID_OPERATION error code when it is
   called within glBegin()/glEnd().
 
Networking
----------
 
 - For MS-DOS clients, NetAccessGetInfo() returns code 53.
   (ERROR_BAD_NETPATH) for the local server.
 
 - For MS-DOS clients, NetServerEnum2() with a bad domain should return
   error 2320, but it returns Windows NT error code 6118.
 
 - For MS-DOS clients, NetShareGetInfo() level 2 fails with error 87.
 
 - For MS-DOS clients, NetShareGetInfo() level 3 returns NERR_Success,
   but level 3 is not a valid level.
 
 - NetWkstaGetInfo() returns a platform id of PLATFORM_ID_OS2 for a
   downlevel Windows for Workgroups machine.
 
 - NetUserAdd() remoted from a 16-bit application to a server with a
   long name fails with error 59 (unexpected network error).
 
 - NetServiceEnum() resumehandle and prefMaxLen fields are ignored.
 
 - NetGetDCName() with domain name of "." or "?" returns error 2102
   (NERR_NetNotStarted), not 2453 (NERR_DCNotFound).
 
 - NetUseEnum() with a preferred buffer size less than 40 bytes returns
   ERROR_MORE_DATA, rather than NERR_BufTooSmall.
 
 - NetServerEnum() with a zero length buffer returns ERROR_MORE_DATA,
   rather than NERR_BufTooSmall.
 
 - NetScheduleJobEnum() with a small preferred buffer size returns
   ERROR_MORE_DATA, rather than NERR_BufTooSmall.
 
 - NetStatisticsGet() remoted to a downlevel OS/2 server does not
   work for the service "LanmanWorkstation".
 
 - NetAccessEnum() with NULL base path causes an access violation.
 
 - NetUserModalsGet() level 2 returns error 87 (ERROR_INVALID_PARAMETER).
 
 - Network API doc errors: NetUserModals() supports a level 3 structure in
   Windows NT 3.5, NetGroupSetUsers() also supports level 1,
   NetAccessCheck() is in docs but not the header files, and the
   NetAuditClear()/NetAuditRead() service parameter should be marked as a
   reserved field that must be NULL.
 
 - NetConfigGet() and NetConfigGetAll() return error 2146 when remoted to
   Windows NT. This API should only work from Windows NT to a downlevel
   machine. It should return ERROR_NOT_SUPPORTED or NERR_InvalidApi is
   remoted to Windows NT.
 
 - NetWkstaUserSetInfo() level 0 returns error 124 (invalid level).
 
 - NetReplImportDirUnlock() returns error 87 (NERR_Invalid_Parameter) if
   the directory is not locked.
 
 - NetReplExportDirEnum() ignores suggested buffer size.
 
 - NetUseEnum() level 2 remoted to an OS/2 machine returns error 50
   (ERROR_NOT_SUPPORTED), not error 124 (ERROR_INVALID_LEVEL).
 
 - NetConfigSet() returns success when remoted to Windows NT.
 
 - NetWkstaUserSetInfo() called with an incorrect level returns error 87
   (INVALID_PARAMETER), rather than error 124 (ERROR_INVALID_LEVEL).
 
 - NetMessageNameEnum() with a zero length buffer returns NERR_Success,
   rather than NERR_BufTooSmall.
 
User
----
 
 - DDESPY frees locked global objects when filtering out WM_DDE_INITIATE
   messages.
 
 - GetTabbedTextExtent(), TabbedTextOut(), TextOut(), and DrawText() GP
   fault with bad string length values.
 
 - Journal Recording causes improper icon title painting.
 
 - With a WH_MSGFILTER installed, MSGF_NEXTWINDOW is not sent when the
   user Alt-Tabs to the next window.
 
 - Active Screen Saver doesn't allow WH_JOURNALPLAYBACK hook.
 
 - 122-key kbd: WSCtrl, Jump, Finish keys are VK_NONAME.
 
 - Using of NumLock key for PF1 in terminal emulation programs does not
   work.
 
 - Calling GetKeyState()/GetKeyboardState() from a thread that is not
   reading from an input queue causes a QEVENT_UPDATEKEYSTATE to be posted
   to the queue, but it is never removed. If the input queue is being
   read, the key state is one update event out of date.
 
 - System hang during journalling if a hung application exists and many
   system events are posted to the hung application.
 
 - Windows NT does not wait for all applications to return their response
   from WM_QUERYENDSESSION before starting to destroy an application. This
   can cause data loss in OLE.
 
 - WM_GETMINMAXINFO not used when window has WS_CAPTION and WS_THICKFRAME.
 
 - Edit control clips italic text.
 
 - Hotkeys are not checked during journal playback.
 
 - OLE 2.01 server creates a window and uses SetParent() on the window of
   the container. When the container is resized to a smaller window than
   the server, the container can no longer be resized with the mouse over
   the server window. This is a side effect of calling SetParent() on a
   window that does not have style WS_CHILD.
 
 - GetSystemMetrics() does not check parameter to see if it is within
   range and returns garbage for out of range values.
 
 - Windows applications with focus can be overlapped.
 
 - In large font video mode, AdjustWindowRect() returns bad width if the
   window does not have a menu and a bad height if the window has a menu.
 
 - Prototypes for SetSystemCursor() and LoadCursorFromFile() are missing
   from WINUSER.H.
 
Additional reference words: 3.50 buglist3.50
KBCategory: kbprg kbnetwork kbbuglist
KBSubcategory: BseMisc GdiMisc NtwkMisc UsrMisc
 
=============================================================================
 
Copyright Microsoft Corporation 1995.
