XLL+ Change History

4.1.0

Date:06-Feb-2002
Description:Initial release
Files:xllplus41-02020601.zip

4.1.1

Date:14-Feb-2002
Description:Maintenance release
Files:xllplus41-02021401.zip

ItemChangeDescription
F00021FIX  - Function Wizard fails to accept input in empty filesIf the Function Wizard was opened using the Edit Function tool, and the file being edited contained no add-in functions, and a new function was added using the New Function button, user input was thereafter rejected for some fields of the wizard. This behavior has been fixed.
E00032ENH  - New date functions addedNew date functions were added to xlldate.h: XlNow(), XlToday(), XlWeekday(), XlStringToSerial() and XlStringToLSerial().

4.1.2

Date:20-Feb-2002
Description:Maintenance release
Files:xllplus41-02022001.zip

ItemChangeDescription
F00022FIX  - Fixed some empty links in User Guide 
F00023FIX  - Clicking on a tool button loses recent changes to text grid fieldsFunction Wizard: If a text field in the argument grid was changed, and then, while the cursor was in the text field, a toolbutton or menu choice was used, the changes to the text field were lost. This behavior has been fixed.
F00024FIX  - Deleting //}}XLP_SRC caused inconsistent behaviorFunction Wizard: If the //}}XLP_SRC delimiter was deleted, then the Function Wizard would load the function and allow user modifications, but these changes could not be saved. This behavior has been fixed.

4.1.3

Date:22-Feb-2002
Description:Maintenance release
Files:xllplus41-02022201.zip

ItemChangeDescription
F00025FIX  - Various typos in User Guide 
E00033ENH  - CXllApp::GetXllName() addedA new method, CXllApp::GetXllName(), returns the full path of the current XLL module.
F00026FIX  - CXllCom::OleGetRangeAddress()This function was returning local addresses only. This behavior has been fixed.
F00027FIX  - CVariant::Compare()This method was returning unpredictable results. This behavior has been fixed.
E00034ENH  - CXllCom documentationAll the methods of the CXllCom class have now been documented.
F00028FIX  - Incomplete uninstallAfter uninstallation, some keys were left in the registry, which caused problems the next time MSDev was run. This behavior has been fixed.

4.1.4

Date:06-Feb-2002
Description:Maintenance release
Files:xllplus41-02022601.zip

ItemChangeDescription
F00029FIX  - CXlRef::Width()CXlRef::Width() returned a BYTE and therefore failed when a range contained 256 columns. It now returns a WORD.
F00030FIX  - CXlArray::GetWidth() + CXlArray::GetHeight()These methods returned WORD. They now return USHORT, in line with COper and CXlOper.
E00035ENH  - New method CXlArray::GetDims()This method was added to bring CXlArray in line with COper and CXlOper.
E00036ENH  - Technical NotesA new topic, "Comparison of COper, CXlOper and CXlArray" has been added to the Technical Notes.
E00037ENH  - AppWizardThe AppWizard now opens the project's main C++ source file after it has finished creating the project.
F00031FIX  - Function Wizard changes selection after savingIf a function was saved using the save button, the wizard would change its selection to the function selected when the wizard first opened. This behavior has been fixed.
F00032FIX  - Function Wizard does not display saved changesIf a function was saved by the save button, or before changing the selected function, the wizard would not display the updates but would instead display the version originally loaded. This behavior has been fixed.
F00033FIX  - Various typos in Reference Guide and Function Wizard help 
F00034FIX  - Function Wizard displays error when adding column groupIf a new function was created, and the first argument to be added to it was a group, the Wizard displayed an error message. This behavior has been fixed.
F00035FIX  - Function Wizard pops up argument editor when changing argument typeIf an argument's type was changed to a group in the Arguments grid of the Function Wizard, the argument editor popped up. This behavior has been removed.
F00036FIX  - Generated functions did not include CXlArray instantiationThe Function Wizard did not generate code to instantiate a CXlArray object from a LPXLARRAY type input. This has been fixed.
F00037FIX  - Arrays of strings were wrongly declaredThe Function Wizard did not generate code to correctly instantiate an array of strings, creating a collection of pointers instead of a collection of strings. e.g. vector<const char*>, which should be vector<CString>. This has been fixed.
E00038ENH  - New demo project ArgSizeA new demo project, ArgSize, has been added. This, along with the test spreadsheet ArgSize.xls, demonstrates argument size limits.

4.1.5

Date:03-Mar-2002
Description:Commercial release
Files:xllplus41-02030301.zip

ItemChangeDescription
E00039ENH  - AppWizard renamedThe AppWizard binary file has been renamed to XLLPLUS4.AWX, so as to remove any conflicts with earlier versions of XLL+. Version 4.1 can now be run in parallel with earlier versions.
E00040ENH  - New CXllCom methods added3 new methods were added to CXllCom: OleGetWorksheetName(), OleGetRangeWorksheet() and OleGetWorksheetWorkbook().

4.1.6

Date:14-Mar-2002
Description:Maintenance release
Files:xlp_4_1_6.exe, xlp_demo_4_1_6.exe

ItemChangeDescription
F00038FIX  - Setup program failed without Administrator priviligesThe InstallShield setup program failed and aborted when run by a user without Administrator rights on the installation machine. This condition is now detected by the setup program and a useful error message is issued.
F00039FIX  - DinkumWare libraries supportedThe COM methods of CXllApp failed under some conditions when the STL XLL+ run-time libraries were used with the DinkumWare STL headers. This was due to a conflict between the DinkumWare map classes and those in the Microsoft release. This has been fixed, and all versions of the XLL+ run-time libraries can be used with both the DinkumWare and the Microsoft STL headers.
F00040FIX  - MFC build uses CXllApp::POSITIONAs a side-effect of F00039 (support for DimkumWare libraries), the signatures of CXllApp::GetStartFnPosition() and CXllApp::GetNextFnAssoc() in the MFC run-time libraries have been altered. These now use CXllApp::POSITION instead of POSITION for iteration. Any MFC code that uses these functions should be changed, with instances of POSITION replaced by CXllApp::POSITION.
F00041FIX  - XLLPLUS.H no longer #includes <map>As a side-effect of F00039 (support for DimkumWare libraries), the STL <map> header file is no longer #included by XLLPLUS.H. Any applications that use map classes without explictly #including <map> now need to do so. This applies to the demo project Tutorial1.
E00041ENH  - ::XllGetVersion() no longer inlineThe global function XllGetVersion() is now implemented in the run-time libraries, rather than inline. You can compare XllGetVersion() (implemented in the run-time library) and XLLPLUS_VERSION (implemented in XLLPLUS.H) to ensure that headers and libraries are in sync.

4.1.7

Date:19-Apr-2002
Description:Enhancement release
Files:xlp_4_1_7.exe, xlp_demo_4_1_7.exe

ItemChangeDescription
F00042FIX  - Empty example linksEmpty example links were replaced in Reference Guide.
E00042ENH  - XllPush library addedThe XLLPUSH library, supporting asynchronous functions, was added. New files: XllPush.lib, XlpPush.h, XllPushApp.h, XlpMtMsg.h, XlpAsync.dll.
E00043ENH  - Asynchronous demos addedThree new sample libraries were added, to demonstrate various uses of the XllPush library: MtBackground, MtCalc and MtFeed.
E00044ENH  - AppWizard: XllPlus.h included in projectThe file XllPlus.h is now automatically added to the list of files in a new project. This makes the XLL+ header files known to the DevStudio parser, and thereby switches on IntelliSense for XLL+ classes and functions.
E00045ENH  - New reference methods for CXlOperNew methods for references have been added to CXlOper: SetValue(), MakeRef(), GetActiveCell() and SetActiveCell().
E00046ENH  - New reference methods for CXllAppNew methods for references have been added to CXllApp: MakeSheetName(), SplitSheetName(), GetSheetId() and GetSheetName().
E00047ENH  - New errror handling method for CXllAppA new method for has been added to CXllApp, SetErrorHandling(), which switches on and off XL4 macro error handling.
E00048ENH  - New class CXllFinderA new class has been added, to support find and replace operations.
E00049ENH  - New sample application FindReplaceA new sample application, FindReplace, shows how to use the CXllFinder class.
E00050ENH  - New chapter in user guide: Macro functionsA new chapter on Macro functions has been added to the User Guide.
E00051ENH  - New tech note: Bounded input arraysA new technical note has been added, which discusses the use of upper bounds in ReadVector() and ReadMatrix().
E00052ENH  - New chapter in user guide: Writing safe functionsA new chapter on exception handling has been added to the User Guide.
E00053ENH  - New sample application SafeCodeA new sample application, SafeCode, shows how to protect your code with Structured Exception Handling.
E00054ENH  - Sample applications added to documentationA new section in the online documentation describes each of the sample applications.

4.2.0

Date:20-Sep-2002
Description:Initial beta release
Files:xlp_4_2_0.exe, xlp_demo_4_2_0.exe

ItemChangeDescription
E00055ENH  - New string methods for CXllAppA new set of static methods, RetString(), have been added to CXllApp, to return string results to Excel.
E00056ENH  - New stack check method for CXllAppA new static method, XlGetStackSpace(), has been added to CXllApp, to return the number of bytes available in the stack.
E00057ENH  - New error conversion method for CXllAppA new static method, ErrorToString(), has been added to CXllApp, to convert an error code to a string.
E00058ENH  - New bool() casting operator for COperA new casting operator, bool(), has been added to COper, to extract and return a C++ boolean value.
E00059ENH  - New optional argument reading functions for COperA new templated optional argument reader, ReadOptional(), has been added to COper, to extract and return any simple scalar value from an optional argument. This function is preferred to the older ReadOpt().
E00060ENH  - Enhancements to COper::ReadVector(), COper::ReadVectorBounded() and COper::ReadMatrix()The array argument reading functions, ReadVector(), ReadVectorBounded() & ReadMatrix(), have been replaced by templated functions, which can handle any basic C++ type. The functions are no longer limited to double, long and CString output types.
E00061ENH  - New COper functions ReadRow() and ReadColumn()New helper functions have been added to allow a vector to be read only as a row or a column.
E00062ENH  - New STL collection supportNew template methods, ReadArrayIntoOrderedCollection1D() and ReadArrayIntoSet1D(), have been added to COper to allow an array to be read into any STL collection class.
E00063ENH  - New matrix classesA new set of matrix support interfaces and classes have been added, to support faster and more flexible storage and conversion of two-dimensional arrays, and integration with users' existing matrix classes and libraries.
E00064ENH  - New CXlOper constructorsNew constructors have been added for CXlOper, to support conversion from the C++ bool type and the STL std::string type.
E00065ENH  - New bool() casting operator for CXlOperA new casting operator, bool(), has been added to CXlOper, to extract and return a C++ boolean value.
E00066ENH  - New matrix output functionsA new templated conversion function, CXlOper::FromMatrix(), and a new templated constructor have been added to CXlOper, to support output of matrices of any basic C/C++ type.
E00067ENH  - Excel function names may contain periodsThe Function Wizard now allows Excel function names to include periods e.g. "GET.SYSTEMTIME".
F00043FIX  - Fixed memory leak under Windows XPA memory leak (under Windows XP only) in the STL libraries' implementation of CString::AllocSysString() was fixed.
F00044FIX  - CXllCOM::Init() fails with Excel 2000/2002On some machines running Excel 2000 or 2002, CXllCom::Init() failed with the following error: "CLSIDFromProgID("Excel.Application.8", ...) failed with error 800401f3". This bug applied only to machines on which Excel 97 had never been installed. This behavior has been fixed and the function will now succeed, as long as any of Excel 97, 2000 or 2002 has been correctly installed.
F00045FIX  - Argument descriptions can now start with a digitIf an argument description (other than the first) began with a digit, then it was possible for the description to be hidden, and possibly also all subsequent arguments' descriptions. This behavior has been fixed.
E00068ENH  - New methods for cell formulaeNew methods CXlOper::GetFormula() and CXlOper::SetFormula() let you inspect and change formulae in spreadheet cells.
E00069ENH  - Visual Studio .NET integrationXLL+ 4.2 works within Microsoft Visual Studio .NET, with fully integrated wizards and help. (Visual Studio 6 and Visual C++ 6 continue to be supported.)
E00070ENH  - New dialog classesNew classes CXlDialog and CXlControl have been added, to support the use of native Excel dialogs.
E00071ENH  - New menu classA new class CXlMenu has been added, to support the addition of menus to Excel's application menu.
F00046FIX  - GetVersionInfo bug fixedThe bug in CXllApp::GetVersionInfo() which caused MFC dialogs to fail to appear after its use has been fixed. (See XLL+ FAQ #5.)
F00047FIX  - Functions now disappear from Excel Formula Wizard when unregisteredPrior to this version, functions in XLLs that were unregistered (via the Tools - Addins dialog) remained in the Formula Wizard, stripped of help text. This behaviour has been fixed.
E00072ENH  - Optional arguments in Function WizardArguments can now be marked as Optional in the XLL+ Function Wizard, and default values can be provided for missing arguments.
E00073ENH  - Automatic internationalisation of standard categoriesFunctions that use standard categories are registered in the current Excel language.

4.2.1

Date:18-Nov-2002
Description:Maintenance beta release
Files:xlp_4_2_1.exe, xlp_demo_4_2_1.exe

ItemChangeDescription
F00050FIX  - Bug in MtCalcThe MtCalc sample add-in caused Excel to crash if the application was closed with calculations still running. This behaviour has been fixed.
E00074ENH  - .NET AppWizard automatically opens C++ source fileThe .NET AppWizard now automatically opens the main cpp file after creating an XLL+ project.
F00051FIX  - CXllApp::GetVersionInfo() failed under MFCCalls to CXllApp::GetVersionInfo() failed under MFC under certain conditions. This behaviour has been fixed.
F00052FIX  - Various bad links in User Guide 
F00053FIX  - Erroneous function descriptions in ReferenceErrors in the ple::imtx<T> documentation were fixed.
F00054FIX  - CXlDialog class failed to compile with MFCErrors in the CXlDialog class prevented compilation under MFC under some conditions. This behaviour has been fixed.
E00075ENH  - WalkthroughsA new section "Walkthroughs" containing task-oriented walkthroughs has been added to the XLL+ help.
E00076ENH  - Installable matrix classesThe developer can now install their own matrix classes in place of those supplied with XLL+, by creating a matrix adapter class, and overriding the macros MTX_FLAT and MTX_PTRS.
E00077ENH  - Extended attributes dialogA new dialog, listing extended function attributes,is available from the Edit menu of the XLL+ Function Wizard.
E00078ENH  - Application-level data flagA new function flag, "appscope" is available. The flag, if true, causes "XLL_FIX_STATE;" to be generated at the start of the add-in function. It can be set via the Extended Attributes dialog.
F00055FIX  - Function Wizard Context Help under .NETFunction Wizard Context Help failed under .NET. This behaviour has been fixed.
E00079ENH  - Registry settings documentationA list of all registry settings used by the various XLL+ components is now included as a technical note in the reference guide.

4.2.2

Date:01-Dec-2002
Description:Maintenance beta release
Files:xlp_4_2_2_e.exe, xlp_demo_4_2_2_e.exe

ItemChangeDescription
E00080ENH  - Help Generator ToolA new Help Generator tool has been added. This tool generates a complete Help project based on the add-in functions found in source files, along with the code needed to connect it to the add-in.
F00056FIX  - CXlOper::ReadMatrix failed to linkSome CXlOper methods were excluded from the run-time libraries; as a result CXlOper::ReadMatrix() caused a link error. This has been fixed.
E00081ENH  - SDK Function numbersNew technical notes and a walkthrough have been added to the documentation to help with the CXlOper::Excel() and CXllApp::Excel() methods.
F00057FIX  - COper::ToMatrix failed to compileCXlOper::ToMatrix() failed to compile. This has been fixed.
E00082ENH  - MFC Resources in .NETThe resources file in the MFC builds under VisualStudio .NET was not compatible with the resource editor. This has been fixed.

4.2.3

Date:11-Jan-2003
Description:Initial commercial release
Files:xlpu_4_2_3_e.exe, xlpn_4_2_3_e.exe, xlps_4_2_3_e.exe, xlp_demo_4_2_3_e.exe

ItemChangeDescription
E00083ENH  - New members for mtx_ptrs<T>New members, including a casting operator, have been added to the template class mtx_ptrs, to simplify access to array values.
E00084ENH  - New extended attribute for Formula WizardA new extended attribute is now supported by functions and can be controlled using the Extended Attributes dialog. The attribute, 'nopreview', determines whether the function will be unavailable if called from the Excel Formula Wizard.
F00058FIX  - COper::ReadVectorItem bugA bug in COper::ReadVectorItem caused Excel to crash when handling the error message for a missing argument. This has been fixed.
E00085ENH  - COper::ReadGroupItem replaces COper::ReadVectorItemCOper::ReadGroupItem is now used in place of COper::ReadVectorItem in functions generated by the Function Wizard.
E00086ENH  - Visual Studio .NET Help integrationVisual Studio .NET Help integration has been completed. All topics are now in the style and structure of Visual Studio.
E00087ENH  - New methods for CXlMenuCXlMenu now contains new methods for menu manipulation: DeleteItem(), EnableItem(), CheckItem() and ReplaceItem(). CXlMenu can also be used to create sub-menus, by calling the new forms of Create().
E00088ENH  - Advanced menu sampleA new sample, SubMenus, has been added, to demonstrate how to add sub-menus and dynamic menus.
E00089ENH  - COM event handler interfaceA new simplified COM event handler interface, CXllApp::SetComEventHandler() has been added.
E00090ENH  - COM event handler documentationThe COM event handler interfaces have all been documented.
E00091ENH  - COM event handler samplesA new sample, ComEvents, has been added, to demonstrate how to add a handlers for COM events such as WorkbookOpen and Calculate.
F00059FIX  - Grouped argumentsGrouped arguments that were marked as optional were failing to remember their state in the Formula Wizard. This behaviour has been fixed.
F00060FIX  - Empty arraysCXlOper::AllocArray() asserted when an array of zero rows, columns or items was created. This behaviour has been fixed to be tolerant of empty arrays.
F00061FIX  - Crash in Export windowThe Function Wizard crashed when a non-existent directory was selected for an exported XML file. This behaviour has been fixed.
E00092ENH  - Walkthroughs for array resultsTwo new walkthroughs have been added to demonstrate how to return array results from add-in functions.
E00093ENH  - Walkthroughs for grouped argumentsA new walkthrough has been added to demonstrate how to create grouped arguments with the Function Wizard.

4.2.4

Date:3-Mar-2003
Description:Maintenance commercial release
Files:xlpu_4_2_4_e.exe, xlpn_4_2_4_e.exe, xlps_4_2_4_e.exe, xlp_demo_4_2_4_e.exe

ItemChangeDescription
E00094ENH  - New classes for calling Excel functionsTwo new classes, CXlFuncs and CXlMacros, have been added to simplify calling most Excel worksheet and macro functions from C++.
E00095ENH  - Sample for calling Excel functionsA new sample CallExcel has been added to demonstrate how to use the CXlMacros and CXlFuncs classes to call Excel functions.
E00096ENH  - New methods for Binary NamesNew methods have been added to handle the DefineBinaryName and GetBinaryName call-backs. These allow you to store binary data in Excel worksheets so that it persists when they are closed and reopened.
E00097ENH  - Sample for Binary NamesA new sample, BinaryData, has been added to demonstrate how to store binary data in spreadsheets using Binary Names.
F00062FIX  - Single column COper arraysCOper::AllocArray() failed when an array with one column was created. This behaviour has been fixed.
E00098ENH  - How Do I...A new "How Do I..." topic has been added to the on-line help, containing references to the most commonly needed topics.
E00099ENH  - CXlOper::AllocArrayCXlOper::AllocArray() has a new variant that allows you to initialise all cells immediately after allocation.
F00063FIX  - Treatment of blank cells in arraysUnder versions 4.2.1 to 4.2.3, COper::ReadVector(), COper::ReadMatrix() and all related array reading methods rejected cells containing empty strings when reading numbers. These cells are now, by default, treated as empty cells.
E00100ENH  - XlpSetTemplate toolA new command line tool, XlpSetTemplate.exe, has been provided to let you change the template file used by the XLL+ Function Wizard.
E00101ENH  - Serialization classesNew serialization classes, CXlSerialData and CXlInputKey, have been added to help you store Excel data types.
E00102ENH  - Cache classA new cache class, CXlOperCache, has been added to speed up the performance of frequently called add-ins, by cacheing the results in a map.
E00103ENH  - Cache sampleA new sample, AvgOpt, has been added, to demonstrate the use of the CXlOperCache class.
E00104ENH  - Function Wizard cache flagA new attribute, "cacheresults", has been added to the Function model, to automatically add cacheing to an add-in function. The attribute is available as a menu item on the Function menu in the XLL+ Function Wizard.
E00105ENH  - AppWizard cache optionThe AppWizard now offers an option to add a cache of type CXlOperCache to a new project's application class.
E00106ENH  - AppWizard overrides optionThe AppWizard now offers an option to add default implementations of OnXllOpenEx() and OnXllClose().
E00107ENH  - SimpOpt sampleThe SimpOpt sample has been improved, and now uses the CXlOper::CallAddin method to invoke one add-in function from another. The sample documentation has been expanded.
E00108ENH  - FAQThe Frequently Asked Questions have been copied from the web-site to the on-line help.
E00109ENH  - Functions to get and set Calculation modeTwo new functions, CXllApp::GetCalculationMode() and CXllApp::SetCalculationMode() have been added.
E00110ENH  - Integration sampleA new advanced sample, Integration, had been added, which uses dialogs and macro functions to integrate functions in a workbook.
E00111ENH  - Functions to detect user cancelTwo new functions, CXllApp::GetUserAbort() and CXllApp::CancelUserAbort() have been added, to detect the user pressing the Cancel key.
E00112ENH  - Structured Exception HandlingA new class SE_Handler is used in the SEH sample code, to simplify the use of C Structured Exception Handling techniques.

4.2.5

Date:11-Jul-2003
Description:Maintenance commercial release
Files:xlpu_4_2_5_e.exe, xlpn_4_2_5_e.exe, xlps_4_2_5_e.exe, xlp_demo_4_2_5_e.exe

ItemChangeDescription
E00113ENH  - Visual Studio.NET 2003 supportSupport for VS.NET 2003 has been added. The installation programs of XLL+ for .NET and XLL+ Universal will now install the toolkit for VS.NET, VS.NET 2003, or both (for side-by-side installations).
E00114ENH  - typename keywordThe typename keyword has been added to template definitions in XLL+ header files, as required by VS.NET 2003, in order to conform to the ISO C++ standard. The typename keyword is only used if the compiler version (__MSC_VER) is 1310 or higher. Code using earlier versions of the compiler will not be affected.
E00115ENH  - Object handlesA new section has been added to the User Guide which describes how to represent C++ objects in spreadsheets as "handles". Two new sample applications using object handles have also been added.
E00116ENH  - CXlMacros new methodsSome new methods have been added to CXlMacros to support some of the more common calls to GET.CELL, and FORMULA.REPLACE.
F00064FIX  - ple::mtx_ptrs::operator[] constThe overloaded operator [] const contained a bug which prevented compilation. This has been fixed.
F00065FIX  - CXlControlListBoxA listbox with no entries caused the containing dialog not to appear. This behavior has been fixed.
F00066FIX  - ReadMatrix()COper::ReadMatrix() and CXlOper::ReadMatrix() contained a bug whereby arrays with non-zero lower bounds might be written to using an out-of-bounds index. This behavior has been fixed.
F00067FIX  - CXlMenu internationalization fixIn versions of Excel that do not use English menu titles, user-defined menus could fail to appear. This behavior has been fixed.
F00068FIX  - XllGetTypedApp()The ::XllGetTypedApp() method is now defined inline.

4.3.1

Date:10-Sep-2004
Description:Maintenance commercial release
Files:xlpu_4_3_1_e.exe, xlpn_4_3_1_e.exe, xlps_4_3_1_e.exe, xlp_demo_4_3_1_e.exe

ItemChangeDescription
F00069FIX  - CXllApp::GetVersionInfo()Errors in CXllApp::GetVersionInfo() were causing (i) instability in the STL build and (ii) abnormal string truncation in the MFC build. These have been fixed.
F00070FIX  - CXlOper & COper vector & matrix template functionsBugs in the C6 compiler were causing unpredictable compiler crashes when the templated functions of CXlOper and COper were used. All these functions have been reimplemented as macros for the Visual Studio 6 build only, and moved to a separate file "xlptplmc.h". The compiler crashes no longer occur.
F00071FIX  - CXlRef::ToString()The class CXlRef was wrongly generating string addresses for cells in column AA. The behavior has been fixed.
F00072FIX  - CXllApp::SplitSheetName()CXllApp::SplitSheetName() was wrongly truncating the book portion of a combined sheet name. The behavior has been fixed.
F00073FIX  - COper::ReadMatrix() & COper::ToMatrix()COper::ReadMatrix() & COper::ToMatrix() were crashing Excel when the usIgnoreRows or usIgnoreCols parameters were set. The behavior has been fixed.
F00074FIX  - COM interface failed in non-English versionsThe initialization of the COM interface failed in non-English versions of Excel. As a result, events could not be trapped and some samples, including "CalcEvt" would not run. The behavior has been fixed.
F00075FIX  - Function wizard unable to handle argument names containing 'ia'The Function wizard was unable to handle argument names containing the character sequence "ia". The behavior has been fixed.
F00076FIX  - VS6 resource editor unable to edit resourcesWhen the Visual Studio 6 resource editor was used to edit resources in a project built by the XLL+ AppWizard (using STL libraries only), an error occured when the changed resources were saved. This behavior has been fixed: the resource file header is now named resource.h.
F00077FIX  - Warning from VS.NET resource editorWhen the Visual Studio .NET resource editor was used to edit resources in a project built by the XLL+ AppWizard (using STL libraries only), a warning appeared when the changed resources were saved. This behavior has been fixed: the resource file header is now named resource.h.
F00078FIX  - CXlOper::SetFormula()CXlOper::SetFormula() was setting A1-style formulae relative to the active cell, rather than relative to the cell whose formula was being set. This behavior has been fixed.
F00079FIX  - CXlOper::ConvertFormula()CXlOper::ConvertFormula() was a static function. As a side-effect of this, it was calculating relative addresses wrongly. Thnis design error has been foxed and is now a const CXlOper::ConvertFormula() member function. This may be a breaking change for existing code that uses CXlOper::ConvertFormula().
E00117ENH  - Serialization classesThe serialization classes (CXlOStream, CXlIStream, CXlSerialData, CXlInputKey, CXlResultSet & CXlOperCache) have been extended for ease of use, and documented.
E00118ENH  - Serialization sampleA new sample, "Serialize", has been added, which demonstrates the serialization classes.
E00119ENH  - Grabbing a cell value example codeNew example code has been added to show how to grab a cell value from a sheet in a macro add-in.
E00120ENH  - Tool barsA new class, CXlToolbar, has been added, which allows the developer to create toolbars, populate them and manage their state.
E00121ENH  - Toolbar samplesThree new samples, "Toolbar1", "Toolbar2" and "Toolbar3", have been added, which demonstrate the CXlToolbar class.
E00122ENH  - Creating a long formulaNew example code has been added to show how to create a long (>512 characters) formula.
E00123ENH  - Safe code for .NET runtimeA new sample, "CallDotNet", has been added, which shows how to amend the classes generated by the XLL+ AppWizard, so that they are safe to use with the .NET run-time classes.
E00124ENH  - CXlOper::AllocArray()A new variant of the function has been added, that allows all cells to be initialized to a supplied value. The documentation has been corrected.
E00125ENH  - CXlOper::SetLongFormula()A new function has been added, that supports setting formulae of more than 255 characters.
E00126ENH  - New push modelA new version of the Push model has been released, written in Visual Basic for Applications. The model is supplied with source code, and is not supported code. The old C++ Push model, which displays instabilities under Excel 2000, is discontinued.
E00127ENH  - Formatting cellsNew example code has been added to show how to format a range of cells.
E00128ENH  - International settingsNew example code has been added to show how to get the current international settings from Excel.
E00129ENH  - International informationA new method, CXllApp::GetInternational(), has been added to retrieve the current values of various international settings, including decimal point, thousands separator and list separators.
E00130ENH  - Creating a workbookNew example code has been added to show how to create and populate a new workbook.
E00131ENH  - Creating a sheetNew example code has been added to show how to create and populate a new sheet in an existing workbook.
E00132ENH  - Extracting a range from an arrayNew example code has been added to show how to extract a range of values from an array argument passed by Excel to an add-in function.
E00133ENH  - CXllApp::XlInputBox()A new method, XlInputBox(), has been added to the CXllApp class. This displays a simple input box, with caption title and default value. The user can enter a value or select a range in a spreadsheet.
E00134ENH  - COM WrappersA new tool, ComWrapperGen, has been added. This generates all the source code for a COM wrapper library, which will allow developers to call your XLL add-in functions from stand-alone Visual Basic, C++ and C# applications.
E00135ENH  - XLL Version functionThe built-in version function, optionally built into new add-ins by the AppWizard, now uses the resource file to load the company name.
E00136ENH  - CXlOper::FromNumericVectorA new method, CXlOper::FromNumericVector(), has been added, to create an add-in result which contains a vector of numbers, from a vector of any numeric type.
E00137ENH  - AppWizard creates toolbar codeA new option has been added to the toolbar "Add a toolbar". If checked, the AppWizard adds code to create and display a toolbar when the add-in opens.
E00138ENH  - New CXlOper constructorA new constructor, CXlOper::CXlOper(const CString&), and assignment operator CXlOper::operator=(const CString&), have been added, for the convenience of passing strings instead of CXlOper arguments.
E00139ENH  - Localized stringsMost strings can now be localized, so that they appear in the language of the user (if available). A string such as "#123" will be replaced by string resource 123, loaded from the add-in's resource file, in the current language.
E00140ENH  - Localized argument namesA new field has been added to the Function Wizard, to allow developers to assign resource strings to argument names. The argument names will thus appear in Excel in the language of the user.
E00141ENH  - New CXlMacros methodsNew methods have been added to CXlMacros: GetActiveWorkbookName, GetActiveWorksheetName, WorkbookGetWorksheetCount NewDefaultWorkbook, NewSingleSheetWorkbook, WorkbookMove & WorkbookCopy. All these methods allow you to create and manipulate workbooks and worksheets.
E00142ENH  - New Macro topicsNew topics have been added to the User Guide, discussing the CXlMacros class, how to use cell references and how to manipulate fornlae in cells.
E00143ENH  - CXlOper::GetLongString()A new function has been added, that supports retrieving string values which contain more than 255 characters.
E00144ENH  - CXlRef::MoveBy()A new function has been added, that supports adding a row and column offset to a range reference.
E00145ENH  - CXlOper international formulae functionsNew functions have been added to CXlOper, to support getting and setting formulae in international format: GetFormulaIntl(), SetFormulaIntl(), SetLongFormulaIntl(), ConvertFormulaIntl() and MakeRefIntl().
E00146ENH  - CXlRef international stringsNew optional arguments have been added to CXlRef::ToString() and CXlRef::FromString(), to support getting and setting RC style cell addresses formulae in international format. A new static method GetRowColumnLetters() can be used to get the petters used for RC style addresses in the langauge of the Excel version being used.

4.3.2

Date:11-Jun-2005
Description:Maintenance commercial release
Files:xlpu_4_3_2_e.exe, xlpn_4_3_2_e.exe, xlps_4_3_2_e.exe, xlp_demo_4_3_2_e.exe

5.0.1

Date:7-Mar-2006
Description:Major commercial release
Files:xlpu_5_0_1_e.exe, xlpn_5_0_1_e.exe, xlps_5_0_1_e.exe, xlpt_5_0_1_e.exe, xlpv_5_0_1_e.exe, xlpw_5_0_1_e.exe, xlpx_5_0_1_e.exe, xlp_demo_5_0_1_e.exe

ItemChangeDescription
E00147ENH  - Support for Visual Studio 2005XLL+ version 5 supports Microsoft Visual Studio 2005. The run-time libraries and samples use the new 'safe' functions of the C standard library. The help and user guide integrate fully with the new Visual Studio 2005 help formats and style, and the XLL+ tools work within the VS 2005 environment.
E00148ENH  - Asynchronous functions using RTDWe've added a new Real-time Data module, along with sample code and a User Guide, to let you write asynchronous functions that calculate in a background, and only return to Excel when a calculation is complete. The module uses Excel's native RTD mechanism to provide an asynchronous calculation implementation that is efficient, stable and unintrusive.
E00149ENH  - XllHost moduleYou can now use the wrapper libraries generated by the XLL+ COM Wrapper Generator with XLL Host to run applications on machines that do not have Excel installed. This makes it possible to deliver your Excel add-ins to production environments on business-critical servers without any change to your code.
E00150ENH  - ColorCell sampleA new sample shows how to set the colors of cells from a macro function.
E00151ENH  - UseTimer sampleThis sample add-in shows how to run a macro function at a specific time.
E00152ENH  - AvgOptAsync sampleThe AvgoptAsync sample demonstrates how to write asynchronous add-in functions that do their work in a separate thread, leaving Excel available and responsive. Excel's built-in RTD mechanism is used to update the target spreadsheet when calculation is complete.
E00153ENH  - Support for Proxy LibrariesA new virtual method, CXllApp::GetRegDllName, has been added which enables you to register add-in functions that are not contained in the XLL loaded by Excel. This allows the use of boot-strap XLLS, which is necessary for the safe use of the .NET (CLR) run-time libraries from an XLL add-in.
E00154ENH  - mtx_ptrs::erase methodA new method has been added to the mtx_ptrs template class, which allows you to erase a subset of the columns or rows in the matrix.
E00155ENH  - CXlFormulaRefresh::RefreshSheetThe CXlFormulaRefresh::RefreshSheet method has been improved, so that it is now much faster to recalculate handles. New methods have also been added: CXlFormulaRefresh::RefreshCell and CXlFormulaRefresh::RefreshRange.
F00080FIX  - Optional matricesThe Function Wizard was not emitting code to handle matrix inputs that were optional. This behavior has been fixed.
F00081FIX  - Function name lengthsThe Function Wizard restricted all 'C' functions to 32 characters. This constraint was required for Visual C++ 5 and earlier versions. The restriction has now been relaxed to 64 characters.
F00082FIX  - Argument names containing 'ia'The Function Wizard was failing to produce code for arguments which included the letters 'ia'. This behavior has been fixed.
F00083FIX  - Padding of argument descriptionsUnder most Excel versions, the Excel Formula Wizard showed two extra characters on most argument descriptions: a space followed by a period. This behavior has been fixed.
F00084FIX  - Set argument dimensions commandIn the XLL+ Function Wizard under XLL+ for Visual Studio .NET, the accelerator keys Ctrl+0, Ctrl+1 and Ctrl+2 should have been setting the dimensions of the selected argument to scalar, vector and matrix respectively, but were being ignored. This behavior has been fixed.