Fixlist for VisualAge C++ for Windows V3.5.9 ============================================= Compiler fixes -------------- Defect Description ------ ----------- 129681 GPF, MaxActivePages off by 1 134029 Access Violation with cross-linked DLLs 135200 data item is not assigned if OPTFUNC is used in a dll 138750 problems with Microsoft BIND 142295 ILINK does not call ILIB for .exp file if .res on cmd line 135491 Support for Microsoft New Import Lib format IBM Open Class fixes (IOC) -------------------------- Defect Description ------ ----------- 9811 autodestroy objects must remove handlers before destroy 28776 dde warm link fails to fire hotLinkInform() on client 28954 IMenuPrivate::locateMenuItem() failure for new os 28824 container does not paint if placed on a group box 9790 WIN: FileDialog, cannot add file types. ioc_28763 WIN: IFileDialog bug when no owner specified 28100 IBaseListBox::selectAll throws exception in multiple/extended 9796 WIN: Bug in IMenu::deleteAt() when deleting the only item 27576 Problem with default push buttons 9791 WIN: vport scrollbar capturing mouse ptr prevents frame dismiss 28756 INTEL: EF AutoTab problem 9792 WIN: Add new style for EXPLORER style FileDialog 9636 IMenuItem::isHighlighted always return false 28400 virtualkeypress() called for all characters on windows ioc_28487 NT : IResource::lock() throws excepiton on WAIT_ABANDONED 9775 iwindow.parent() does not return desktop if frame is child 9623 IBaseComboBox::select doesn't cause text change notification 9776 No assignment operator for IKeyboardEvt causes trap on delete 28229 IPlatform::isNTNewShell won't work on NT 5.0 9784 virtualkeypress() - continuation of defect: 28400 26373 ThreadLocalStorage not released on FreeLibrary call 28330 pop-up menu logic change 28265 dde warm link server resp must be null for Windows. wm_dde_data 28166 win combobox fails on hasTextChanged() if item sel from listbox 28273 Two menu handlers on same menu can trap 28032 Performance improvement on remove() an item from ILISTBOX 28168 bidi: fly-over help text is RTL even for untranslated apps 28169 bidi: 2d graphics text is drawn RTL even for untranslated apps 28225 bidi: conatiner's scroll bar on left even for English app 9763 trap when loading dialogs with radio buttons 9765 extra debug statements removed from ithread 9686 Entry field allows mnemonic 9731 Scnd frame win with styles: dlBackground ! dlgBorder aborts 9744 IEntryField in Fixpak6 has altered VFT 9685 Fixed a problem related to drag and drop in pmCompatible containers when either the container title or details view titles are visible. (See note below) 9743 ICMDEVT.HPP includes IWINDEFS.H in fixpak6 9749 IComboBox read-only does not pass on ESC and ENTER 9752 operator <<= (IString& c, IBaseStream& s ) - still broken (FP6) 9753 IContainerControl paint problem with native syslistview32 9759 Change IC_MINOR_VERSION in IBASE.HPP to indicate current IOC level (changed to a 3-digit number, eg. 602 for POST-FP6-2) 26568 IMessageText does not retrieve correct string on nonEnglish Win 27493 pmComp Cnr problem when calling collapseTree on empty treeview 27699 WIN: IComboBox in readonly mode beeps when ALT-mnemonic pressed 27922 IFrameWindow::activateId & deactivateId does not fire on Win32 27934 Modal/modeless frames don't focus their owner when closed WIN 28015 IFrameWindow::maximizeRect() return incorrect rect on WIN95&NT 28021 DragDrop: Invisible mouse pointer when targetDrop called 28023 Add Windows98 detection support in the IPlatform class 28024 WIN98: IDLLModule::removeRef throws exception 28038 Some IEntryField functions do not work on comboboxes NOTES: ------ 1) The IFileDialog class now includes a new style, IFileDialog::explorer. The new style can be used to create "Windows Explorer" file dialogs. This style is not on by default, but to make it so, add the following in the begining of your "main()" function: IFileDialog::setDefaultStyle( IFileDialog::classDefaultStyle | IFileDialog::explorer ); Using the "Windows Explorer" file dialog has one side effect. The IFileDialog::Settings::setPosition() function becomes a NO-OP on Windows. This is because the "Windows Explorer" file dialog is always positioned at 0,0 (top left corner) of the owner frame's client area. 2) The IFileDialog::Settings class includes a new function to add file types in the filter list. The signature of the function is same as the function included with IBM OpenClass found in VAC++ v4. Basically, the new function is as follows: IFileDialog::Settings& IFileDialog::Settings::addFileType( const char* fileType, const char* filter = 0 ) Here is an example of using this function: IFileDialog::Settings settings; settings.setOKButtonText( "Open" ); settings.setTitle( "Select file to view" ); settings.addFileType( "Object Files (*.obj)", "*.obj" ); settings.addFileType( "Source Files (*.c, *.cpp)", "*.c;*.cpp" ); settings.addFileType( "Header Files (*.h, *.hpp, *.inl)", "*.h;*.hpp;*.inl" ); settings.addFileType( "All Files (*.*)", "*.*" ); IFileDialog sampleDialog( IWindow::desktopWindow(), 0, IFileDIalog::defaultStyle, settings ); .... Both the 'fileType' and 'filter' must be specified (non NULL) for the filter to be added. Multiple filter extensions can be specified as long as they are separated by semicolors (';') as shown above. 3) The change for fix 9685 required some changes in the IContainerControl::objectUnderPoint() function. Consideration must be taken when calling this function for pmCompatible containers in details view. For these type of containers, the point must be relative to the details view window and not the container. Having a mouse handler or menu handler attached to the container, and calling the IMouseEvent::mousePosition() or IMenuEvent::mousePosition() will result in the correct point being returned. However, mapping a point from desktop coordinates to the coordinates required by IContainerControl::objectUnderPoint() you will need to do something like the following: IContainerControl* ctrlWin; // The container control IPoint pos; // The current mouse position in // desktop coordinates. IPoint pt = IWindow::mapPoint( pos, IWindow::desktopWindow()->handle(), ctrlWin->handle() ); // // Adjust the point if in details view and it's // PM compatible. This is to account of the // change in the IContainerControl::objectUnderPoint // function. // if ( ctrlWin->isPMCompatible() && ctrlWin->isDetailsView() ) { // If origin lower left we need to add the height of the // cnr title otherwise we subtract. IPair::Coord coef=-1; if ( ICoordinateSystem::isConversionNeeded() ) coef=1; if ( ctrlWin->areDetailsViewTitlesVisible() ) pt.setY( pt.y() + coef * ctrlWin->detailsTitleRectangle().height() ); if ( ctrlWin->isTitleVisible() ) pt.setY( pt.y() + coef * ctrlWin->titleRectangle().height() ); }