The SendTo member function correctly returns errors. In previous versions of MFC, SendTo returned FALSE for some errors. The function now returns a proper WinSock error code in all circumstances.
FindIndex returns NULL for negative indexes.
List-based collections with a FindIndex member will return NULL if the index passed to the function is negative. In previous releases, a negative index caused the program to stop responding or an access violation.
The SetBorders member is a public accessor that allows other classes to set the bar’s borders.
The DrawGripper member function draws a "gripper," that is a user-interface clue on command bars that are movable or resizable. CalcInsideRect adjusts for the correct sizing of a bar that has a gripper.
The CControlBar class will assert that the m_dwStyle member only contains MFC-specific bits—masked by CBRS_ALL. This assertion will fire if user code incorrectly sets window-style bits.
Some recent releases of MFC had problems running correctly on machines that weren’t updated to DAO 3.5. Those problems have been resolved, but it is still advisable to upgrade to DAO 3.5, due to performance and stability improvements.
The IsBOF and IsEOF member functions are now const.
The DFX_Text function would not allocate enough space when binding Unicode strings, and this problem has been fixed.
In previous versions of MFC, CDC member functions would sometimes return unpredictable values for extreme failure conditions. These functions have been cleaned up and now return the correct error code.
ReadString doesn’t truncate
In some circumstances, the ReadString member function would truncate data read from the connection. This bug has been fixed.
All Internet-related functions in MFC more aggressively assert on the validity of memory buffer pointer parameters.
INTERNET_FLAG_ASYNC was never supported by MFC. The presence of this flag now causes debug builds of MFC to assert.
The style bit fastBeginPaint is now ignored. ActiveX controls are always expected to erase their background in OnDraw, as they won’t receive WM_ERASEBKGND when rendering to a metafile DC.
The reflector window now handles WM_SIZE appropriately. Previously, the message was ignored.
Member function rounding errors
Several rounding errors that existed in previous versions of the following member functions have been remedied: GetDays, GetHours, GetMinutes, GetSeconds, GetTotalDays, GetTotalHours, GetTotalMinutes, GetTotalSeconds.
Previous versions of MFC opened a storage with STGM_SHARE_EXCLUSIVE. MFC now uses the more appropriate STGM_SHARE_DENY_WRITE flag, which allows other applications to read the storage while it is opened by the document object.
The creation of a property sheet with pages from a DIALOGEX resource would sometimes needlessly assert. The assertion has been corrected.
The MapWizardResult member function would sometimes return an incorrect value. This problem has been corrected.
Some property page creations would result in a blank dialog box. This problem was fixed.
MFC’s handler for EndDialog incorrectly returned IDCANCEL instead of PSBTN_CANCEL.
A property page closed with the system menu or by the user pressing the close button might not correctly set the m_nModalResult member to IDCANCEL. This has been fixed.
The RFX_Int function incorrectly handled NULL values in previous versions of the library. This problem has been corrected.
SetItemState and GetItemState member functions have been added to support new functionality exposed by the revised COMCTL32.DLL.
The SetSizes function previously caused an assert when it wasn’t attached to a window, but now reacts by setting the member data of the object to reflect the size instead of moving the window’s position.
A bug that caused a bogus assert when the mouse wheel was used to scroll a CScrollView has been fixed.
A bug that made page-by-page views scroll in the wrong direction has been fixed.
The print preview bar has been restored to its rightful position—within the parent frame.
The MFC-supplied PreTranslateMessage member function is no longer responsible for canceling active tooltips. This code has been moved to CWnd::FilterToolTipMessage. This change was necessary to support the new tracking tooltip styles.
The CenterWindow function has been fixed to work properly on multiple-monitor machines.