XLL+ Class Library (7.0)

XLL+ Change History

XLL+ version history is detailed below.

7.0.9

Date: 27-November-2017
Description: First release for Visual Studio 2017
Files: setup_xlp7_150T_7_0_9.exe setup_xlp7_150R_7_0_9.exe
Item Change Description
E00265 NEW - Visual Studio 2017 A new version has been released which supports Visual Studio 2017.
E00266 NEW - CXlOper::GetLongFormula A new method can be used to retrieve very long formula strings (greater than 118 characters), if the standard method fails.
E00267 NEW - Intellisense Support for Excel-DNA IntelliSense has been added. An external IntelliSense file is now generated as part of the help build. As a result, if the Excel-DNA IntelliSense add-in is also loaded, context-sensitive help will be displayed when formulae containing XLL+ add-in functions are edited.
F00176 FIX - Ribbon server incorrectly handled getSelectedItemID callback Indexed items in ribbons, including dropDown and gallery, which used the attribute getSeletedItemID were not being correctly handled by the ribbon server. This behavior has been fixed.
F00177 FIX - Ribbon server did not implement onChange callback The callback function matching the attribute onChange was not being invoked by the ribbon server. This behavior has been fixed.
F00178 FIX - Do not call in Formula Wizard fails under Excel 2013 and above Functions marked as 'Do not call in Formula Wizard' were still being called from the Excel Formula Wizard in Excel 2013 and above. This behavior has been fixed.
F00179 FIX - CXlOper::MakeRef and CXlFuncs::Indirect CXlOper::MakeRef and CXlFuncs::Indirect for addresses containing only a sheet name and cell address when the workbook name contained a space were failing to resolve in Excel 2010 and above. This behavior has been fixed by adding appropriate single quotes to the address text.
F00180 FIX - VariantToXlOper fails on 1-dimensional arrays VariantToXlOper fails to convert 1-dimensional arrays into XlOper. This behavior is required from later versons of the Excel object model, which can return 1-dimensional arrays from Range.Value. Previously all arrays were 2-dimensional. The abilty to convert 1-dimensional arrays has been added to VariantToXlOper().

7.0.8

Date: 16-June-2016
Description: Maintenance release
Files: setup_xlp7_80T_7_0_8.exe setup_xlp7_80R_7_0_8.exe setup_xlp7_90T_7_0_8.exe setup_xlp7_90R_7_0_8.exe setup_xlp7_100T_7_0_8.exe setup_xlp7_100R_7_0_8.exe setup_xlp7_110T_7_0_8.exe setup_xlp7_110R_7_0_8.exe setup_xlp7_120T_7_0_8.exe setup_xlp7_120R_7_0_8.exe setup_xlp7_140T_7_0_8.exe setup_xlp7_140R_7_0_8.exe
Item Change Description
E00263 NEW - Allow named grouped arguments to be omitted Grouped scalar arguments that are supplied with labels can now omit one or more of the grouped items, so long as each such item is marked as optional. The LabelledArgs sample project has been updated to include an optional argument.
E00264 NEW - Queued sample A new sample add-in, Queued, has been added. This project demonstrates the use of queued asynchoronous functions.
F00173 FIX - Queued functions could fail to update Functions that are marked as Queued can fail to update after completing their asynchronous calculations. This behavior has been fixed.
F00174 FIX - Bad 64-bit platform settings for Visual Studio 2015 On Visual Studio 2015, the 64-bit platform settings of projects created with the XLL+ Application Wizard were faulty, and projects could fail to build. This has been fixed.
F00175 FIX - CXlOper::GetWorksheetNames() documentation The documentation for CXlOper::GetWorksheetNames() was missing. This has been fixed.

7.0.7

Date: 28-August-2015
Description: First release for Visual Studio 2015 and maintenance release for other versions
Files: setup_xlp7_80T_7_0_7.exe setup_xlp7_80R_7_0_7.exe setup_xlp7_90T_7_0_7.exe setup_xlp7_90R_7_0_7.exe setup_xlp7_100T_7_0_7.exe setup_xlp7_100R_7_0_7.exe setup_xlp7_110T_7_0_7.exe setup_xlp7_110R_7_0_7.exe setup_xlp7_120T_7_0_7.exe setup_xlp7_120R_7_0_7.exe setup_xlp7_140T_7_0_7.exe setup_xlp7_140R_7_0_7.exe
Item Change Description
E00259 NEW - Compiler warnings Changes have been made to the run-time libraries and to the code templates to remove as many as possible of the level 4 warnings which occur when W4 is specified. Additionally, the sample applications' generated code has been updated where necessary.
E00260 NEW - Full text search in help Generated help can now contain full text search, by means of the new FullTextSearch attribute of the Help element in the help control file.
E00261 NEW - Visual Studio 2015 A new version has been released which supports Visual Studio 2015.
E00262 NEW - UseTimer sample The UserTimer sample has been amended to show how to cancel scheduled events.
F00164 FIX - CXlOper constructor for string arguments Null pointer arguments for the CXlOper string constructors caused an exception. The constructors now treat null pointers as empty strings.
F00165 FIX - CXlOper::MakeRef and CXlFuncs::Indirect for addresses containing only a sheet name and cell address In Excel versions since Excel 2010, the INDIRECT function causes a memory write error when called from the SDK with addresses that include the sheet name but not the book name, e.g. "Sheet1!A1". A work-around has been added to CXlOper::MakeRef and CXlFuncs::Indirect to prevent this error.
F00166 FIX - Function Wizard writes bad C++ code for extended types When using extended types on some installations of Visual Studio 2012 and 2013, the #include statements are placed at the top of the cpp file, when they should be inserted after all existing #include lines. This behavior has been fixed.
F00167 FIX - Code in help had no line breaks Under some configurations, the code quoted in the XLL+ help had no line breaks. This has been fixed.
F00168 FIX - CXllApp::PrefixFunctions Method CXllApp::PrefixFunctions() was missing from the run-time libraries. This has been fixed.
F00169 FIX - Upgrade Wizard did not upgrade command line for Ribbon registration When upgrading projects created in an earlier version of Visual Studio, the XLL+ upgrade wizard failed to upgrade the command line for the ribbon registration program, XlpRibbonReg.exe, to use the path for the new Visual Studio version. This behavior has been fixed.
F00170 FIX - CXlMacros::Note() failed with error 4 The function CXlMacros::Note() was failing. This behavior has been fixed. Calls to Note() have been added to the CreateBook sample project.
F00171 FIX - XlpRibbonServer.reg fails on 64-bit operating systems A new version of the ribbon server registration file, XlpRibbonServer64.reg, has been supplied, for use on 64-bit operating systems.
F00172 FIX - CLR projects are created with .NET 4 as the runtime CLR projects are created with .NET 4 as the target runtime. The documentation now describes how to change the CLR version targeted.

7.0.6

Date: 28-February-2014
Description: First release for Visual Studio 2013 and maintenance release for other versions
Files: setup_xlp7_80T_7_0_6.exe setup_xlp7_80R_7_0_6.exe setup_xlp7_90T_7_0_6.exe setup_xlp7_90R_7_0_6.exe setup_xlp7_100T_7_0_6.exe setup_xlp7_100R_7_0_6.exe setup_xlp7_110T_7_0_6.exe setup_xlp7_110R_7_0_6.exe setup_xlp7_120T_7_0_6.exe setup_xlp7_120R_7_0_6.exe
Item Change Description
E00250 NEW - CXlMenu::GetCallingMenu under Excel 2007 This method can return wrong results when called under Excel 2007 (Excel 12). This is due to an as yet unresolved bug in that version of Excel, which has been fixed in later versions. A new method CXlMenu::GetCallingMenuItemPosition has been added to the CXlMenu class, which works around the bug, and returns correct results under all Excel versions.
E00251 NEW - WorkbookAfterSave and AfterCalculate events Two new COM event handlers have been added to the library, to handle the WorkbookAfterSave and AfterCalculate events, introduced in Excel 2010. These event handlers will have no effect under earlier versions of Excel.
E00252 NEW - Shared object handles Object handles created using the non-RTD handle mechanisms (StringHandle, NumericHandle etc) can be shared between different add-ins. They can be created in one XLL and consumed in a separate XLL, by using the new HandleCache import and export manager mechanism.
E00253 NEW - Using object handles in macros A new macro function (MonteCarlo2.InspectHandle) has been added to the MonteCarlo2 sample project, to show how to use object handles from macro functions.
E00254 NEW - Function publishing filter A new class (CXllFunctionFilter) is included, which allows the developer full control over which functions are published in an XLL, and which are suppressed. Two example projects are provided to illustrate the use of the filter.
E00255 NEW - Handles for classes with namespaces and templates It is now possible to create handles for objects that have namespaces in the class name or that are the result of templates. See the StringHandleDemo and RtdHandleDemo samples for examples of this use.
E00256 NEW - CXllApp::GetRibbonCallbackFunctionName and CXllApp::GetObserverFunctionName Two new methods for CXllApp expose the published names of the framework-generated add-in functions.
E00257 NEW - Accurate conversion for numerics to strings If numeric cells were converted automatically to strings as part of a generated input conversion, rounding in XLL+ 6.0 to XLL+ 7.0.4 was to 6 decimal places. A new method CXllApp::SetNumericToStringConversionMethod() has been provided which emulates the behavior of XLL+ 5 and earlier versions, thereby offering the same conversion accuracy as Excel itself.
E00258 NEW - Visual Studio 2013 A new version has been released which supports Visual Studio 2013.
F00160 FIX - Two-dimensional input arrays containing empty cells can cause an input error The conversion of two-dimensional input arrays can return an error when some empty cells are contained within the array and at its boundaries. This behavior has been fixed.
F00161 FIX - StringHandles Certain invalid string handles could cause the StringHandles extension to crash when they were decoded. This behavior has been fixed.
F00162 FIX - CXlOper::AllocArray for a zero-size array CXlOper::AllocArray caused run-time errors if a zero-size array was allocated. This behavior has been fixed, and an exception is thrown, resulting in a returned value of #VALUE!
F00163 FIX - Signing problem with on-line help In XLL+ 7.0.4 for Visual Studio 2010 and above, a problem occurred when installing the on-line help integrated into Visual Studio. This was due to a problem with the certificate used to sign the help. The problem has been resolved.

7.0.4

Date: 10-December-2012
Description: First release for Visual Studio 2012 and maintenance release for other versions
Files: setup_xlp7_80T_7_0_4.exe setup_xlp7_80R_7_0_4.exe setup_xlp7_90T_7_0_4.exe setup_xlp7_90R_7_0_4.exe setup_xlp7_100T_7_0_4.exe setup_xlp7_100R_7_0_4.exe setup_xlp7_110T_7_0_4.exe setup_xlp7_110R_7_0_4.exe
Item Change Description
E00238 NEW - Visual Studio 2012 A new version has been released which supports Visual Studio 2012.
E00239 NEW - Rolling file appender A new appender has been added to the set of logging options. The rolling file appender writes to a new log file each day (or month, or hour, as controlled by the configuration).
E00240 NEW - ExcepExt sample project A new sample project, ExcepExt, has been added, which demonstrates how to use a function extension to automate the handling of common exceptions.
E00242 NEW - Handle lifetime management Changes have been made to the RTD handle implementation to allow the handles created to persist longer than the lifetime granted by Excel, by locking them into memory from procedural code.
E00243 NEW - Default values for new functions New application-level settings have been added, so that the user can specify default values for properties applied to new functions: DoNotCallInExcelFormulaWizard and DoNotCatchStructuredExceptions.
E00244 NEW - Default values for new arguments New application-level settings have been added, so that the user can specify default values for properties applied to new arguments, including DefaultFillArrayBehavior and DefaultFillArrayTargets.
E00245 NEW - Structured exception handlers can be suppressed By setting the compiler macro XLP_SUPPRESS_SEH, the impact of all Structured Exception Handler generated code can be suppressed.
E00246 NEW - Fast iterators for large arrays A set of fast iterator classes have been provided in XlpFastIt.h, which offer optimally fast read access to large arrays of Excel cell values.
E00247 NEW - XLPGEN code generator XLPGEN.EXE is a command line utility that can be used to generate C++ code for XLL add-in functions from XML files containing function definitions. It can be used as part of an automated build process.
E00248 NEW - CXlValueListWriter A new run-time class, CXlValueListWriter, is used to generate lists of value/name pairs for Value Lists. This technique allows enum values to be used for values, as well as integers.
E00249 NEW - LockableHandles sample project A new sample project has been provided, to demonstrate the use of lockable handles and the LockableHandleCache class.
F00155 FIX - In Argument Editor, 'Show Popup in Wizard' can be misplaced. In the detailed argument editor, on the General pane, the checkbox 'Show Popup in Wizard' is fixed in place, and does not move correctly when the dialog is resized. This behavior has been fixed.
F00156 FIX - After Visual Studio 2012 is installed, the Function Wizard stops working. After the installation of any version of Visual Studio 2012, including Beta, Release Candidate and RTM, the XLL+ Function Wizard under earlier versions of Visual Studio fails with the following error: System.Runtime.Serialization.SerializationException: Unable to find assembly 'Psl.XL7.FunctionModel, Version=7.0.3.102, Culture=neutral, PublicKeyToken=b753a985dcbde9e1'. This behavior, which was due to changes in the .NET 4.5 runtime, has been fixed.
F00157 FIX - Vectors with lower bounds wrongly assigned The method CXlOper::FromVectorWithoutClearing() was ignoring the lbound parameter when allocating a new CXlOper array. This behavior has been fixed.

7.0.3

Date: 14-February-2012
Description: Maintenance release
Files: setup_xlp7_80T_7_0_3.exe setup_xlp7_80R_7_0_3.exe setup_xlp7_90T_7_0_3.exe setup_xlp7_90R_7_0_3.exe setup_xlp7_100T_7_0_3.exe setup_xlp7_100R_7_0_3.exe
Item Change Description
E00232 NEW - ArrayHandles sample A new sample has been added which demonstrates how to use RTD handles to represent arrays of numbers. This allows a whole array to be represented by a single cell.
E00233 NEW - Unused ribbon controls are hidden By default, a getVisible attribute is added to the top-level control of the ribbon generated by the XLL+ AppWizard. The GetVisible event is also handled in the skeleton code produced by the AppWizard. As a result, the ribbon controls of an add-in are automatically hidden when the add-in is unloaded.
E00234 NEW - RTD Handles can be created in array functions It is now possible to create arrays of RTD handles in an add-in function that returns an array result. Previously, handles had to be created within functions that returned a single cell.
E00235 NEW - AppWizard help A new topic has been added to the help, containing instructions for adding AppWizard-generated features through code.
E00236 NEW - GPU/CUDA documentation New topics have been added to the online help, discussing how to support massively parallel processing using CUDA code with Graphical Processor Units.
E00237 NEW - AvgOptCuda sample A new sample has been added, which demonstrates the use of CUDA to enable GPU parallel processing in XLL add-ins.
F00147 FIX - Ribbon callback function fails to register If a project which uses the Excel Ribbon has a name which includes a space, then the ribbon callback function fails to register. A message appears when the add-in is opened, and all ribbon events are ignored. This behaviour has been fixed.
F00148 FIX - Cells of CXlOper arrays cannot be copied from error values The method CXlCell::operator=(const CXlOperBase& src) throws a run-time error if the source cell contains an Excel error value. This behavior has been fixed.
F00149 FIX - Rtd Handle creation fails if handle creator is called from a worker thread Rtd Handle creation fails if handle creator is called from a different thread from the Excel User Interface. This behavior has been fixed, by disallowing the Thread safe attribute on handle creator functions.
F00150 FIX - Queued functions cause a compiler error An add-in function marked as Queued causes a compiler error "error C2065: 'xlAsyncReturn' : undeclared identifier" unless xlcallfnids.h is also #included. This behavior has been fixed
F00151 FIX - Error in User Guide topic 'Asynchronous function support in projects' The User Guide topic refers to wizard-generated code including an instance of the CRtdLink class, which has been deprecated since XLL+ 7.0.0. This has been fixed.
F00152 FIX - Extended UI displaying incorrectly in Excel Formula Wizard for nested formulae Formulae which included a nested function with an extended user interface were often displayed incorrectly in the Excel Formula Wizard, when the outer function did not have an extended UI. This behavior has been fixed.
F00153 FIX - The buttons for the Extended UI were wrongly positioned on screens with magnified DPI settings On machines with non-standard DPI settings (such as portable computers) the buttons on the extended UI displayed in the Excel Formula Wizard were placed incorrectly. This behavior has been fixed.
F00154 FIX - Function Wizard layout problems on screens with magnified DPI settings On machines with non-standard DPI settings (such as portable computers) some of the labels of the XLL+ Function Wizard were overwritten. This behavior has been fixed.

7.0.2

Date: 14-August-2011
Description: Maintenance release
Files: setup_xlp7_80T_7_0_2.exe setup_xlp7_80R_7_0_2.exe setup_xlp7_90T_7_0_2.exe setup_xlp7_90R_7_0_2.exe setup_xlp7_100T_7_0_2.exe setup_xlp7_100R_7_0_2.exe
Item Change Description
F00138 FIX - Project Upgrade Wizard on machines without 64-bit tools The project upgrade wizard failed on installations where the Visual Studio 64-bit libraries and tools had not been installed. This behavior has been fixed.
F00139 FIX - XLL+ AppWizard on machines without 64-bit tools The XLL+ AppWizard failed on installations where the Visual Studio 64-bit libraries and tools had not been installed. This behavior has been fixed.
F00140 FIX - Upgrade Wizard Report - Bad link The Project Upgrade Wizard produced a bad link to the XLL+ help page for "Breaking Changes". This has been fixed.
F00141 FIX - Help Generator: omitting default text for optional arguments Argument help for optional arguments was still being generated when the Position attribute was set to 'Replace'. This behavior has been fixed, and the default value description is now omitted.
F00142 FIX - CXlFuncs Lookup and Reference Functions A number of CXlFuncs methods take parameters that represent a row or column index, but are represented only as small integer types. New or changed versions of each of these methods have been provided so that the row or column index is a large integer type, as required by Excel 2007 and above. The following are affected: CXlFuncs::Address, CXlFuncs::HLookup, CXlFuncs::Index, CXlFuncs::Match, CXlFuncs::Offset, CXlFuncs::VLookup
F00143 FIX - CXlMacros Range Functions A number of CXlMacros methods take parameters that represent a row or column index, but are represented only as small integer types. New or changed versions of each of these methods have been provided so that the row or column index is a large integer type, as required by Excel 2007 and above. The following are affected: CXlMacros::HLine, CXlMacros::HPage, CXlMacros::VLine, CXlMacros::VPage.
F00145 FIX - Async functions with string arguments fail If multiple instances exist of an asynchronous function with one or more string arguments, then the string argument passed to the function is arbitrary. This behavior has been fixed.
F00146 FIX - .NET Reflection - Null values in string arrays are now converted to empty strings For wrapped functions which return string arrays, any contained null values are now converted to empty strings. Previously an exception was thrown.

7.0.0

Date: 25-March-2011
Description: Major commercial release
Files: setup_xlp7_80T_7_0_0.exe setup_xlp7_80R_7_0_0.exe setup_xlp7_90T_7_0_0.exe setup_xlp7_90R_7_0_0.exe setup_xlp7_100T_7_0_0.exe setup_xlp7_100R_7_0_0.exe
Item Change Description
E00221 NEW - 64-bit support for Excel 2010 XLL+ projects can now be built as 32-bit or 64-bit binaries.
E00222 NEW - Support for the Ribbon XLL+ add-ins can now add content to the Office Ribbon.
E00223 NEW - Support for Excel 2010 asynchronous function implementations XLL+ add-in functions can be marked as 'asynchronous' so that they queue efficiently for shared, lockable resources. Threading and marshalling code is generated to support the required asynchronous implementation.
E00224 NEW - New functions are thread-safe New functions are marked as thread-safe by default. The global setting DefaultIsThreadSafe can be used to control this behavior.
E00225 NEW - CXllApp::GetXllFileName, CXllApp::GetXllFileNameOnly Two new helper methods provide parts of the current XLL's path.
E00226 NEW - Async functions are supported by all add-ins It is no longer necessary to insert a CRtdLink object in an application class, in order to support asynchronous functions. An instance of a new class, CRtdAsyncManager, is now a member of CXllApp.
E00227 NEW - Non-RTD handle mechanisms The non-RTD handle mechanisms (StringHandle, StringPtrHandle and NumericHandle) have been enhanced, to support smart pointers (including boost::shared_ptr) and also custom handle formats.
E00228 NEW - CXllApp::GetListSeparator, CXllApp::GetRowPrefix, CXllApp::GetColumnPrefix Three new CXllApp methods can be used to report international settings during worksheet functions (when CXllApp::GetInternational may not be called).
F00133 FIX - RTD handles fail in Excel 2002 using languages other than English A bug in Excel 2002 meant that RTD handles usually returned the error "#ERROR: Excel API call RTD failed with error code 32", when working in some languages other than English. A work-around has been applied, so that this behavior has been fixed.

6.3.7

Date: 14-August-2011
Description: Maintenance release, superceding 6.3.4 and the 6.3.5 patch
Files: setup_xlp7_71T_6_3_7.exe setup_xlp7_71R_6_3_7.exe setup_xlp7_80R_6_3_7.exe setup_xlp7_90R_6_3_7.exe setup_xlp7_100R_6_3_7.exe
Item Change Description
E00229 NEW - Non-RTD handle mechanisms The non-RTD handle mechanisms, StringHandle and StringPtrHandle, have been enhanced to support smart pointers (including boost::shared_ptr) and also custom handle formats.
E00230 NEW - CXllApp::GetListSeparator, CXllApp::GetRowPrefix, CXllApp::GetColumnPrefix Three new CXllApp methods can be used to report international settings during worksheet functions (when CXllApp::GetInternational may not be called).
E00231 NEW - CXllApp::GetXllFileName, CXllApp::GetXllFileNameOnly Two new helper methods provide parts of the current XLL's path.
F00132 FIX - .NET Reflection - Null values in string arrays are now converted to empty strings For wrapped functions which return string arrays, any contained null values are now converted to empty strings. Previously an exception was thrown.
F00134 FIX - Help Generator: omitting default text for optional arguments Argument help for optional arguments was still being generated when the Position attribute was set to 'Replace'. This behavior has been fixed, and the default value description is now omitted.
F00135 FIX - CXlFuncs Lookup and Reference Functions A number of CXlFuncs methods take parameters that represent a row or column index, but are represented only as small integer types. New or changed versions of each of these methods have been provided so that the row or column index is a large integer type, as required by Excel 2007 and above. The following are affected: CXlFuncs::Address, CXlFuncs::HLookup, CXlFuncs::Index, CXlFuncs::Match, CXlFuncs::Offset, CXlFuncs::VLookup
F00136 FIX - CXlMacros Range Functions A number of CXlMacros methods take parameters that represent a row or column index, but are represented only as small integer types. New or changed versions of each of these methods have been provided so that the row or column index is a large integer type, as required by Excel 2007 and above. The following are affected: CXlMacros::HLine, CXlMacros::HPage, CXlMacros::VLine, CXlMacros::VPage.
F00137 FIX - RTD handles fail in Excel 2002 using languages other than English A bug in Excel 2002 meant that RTD handles usually returned the error "#ERROR: Excel API call RTD failed with error code 32", when working in some languages other than English. A work-around has been applied, so that this behavior has been fixed.
F00144 FIX - Async functions with string arguments fail If multiple instances exist of an asynchronous function with one or more string arguments, then the string argument passed to the function is arbitrary. This behavior has been fixed.

6.3.5

Date: 5-October-2010
Description: Patch release, applied to 6.3.4
Files: xlp71t_6_3_5_101006.zip xlp71r_6_3_5_101006.zip xlp80t_6_3_5_101006.zip xlp80r_6_3_5_101006.zip xlp90t_6_3_5_101006.zip xlp90r_6_3_5_101006.zip xlp100t_6_3_5_101006.zip xlp100r_6_3_5_101006.zip
Item Change Description
E00217 NEW - Code changes to help 64-bit migration A number of small changes have been made to header files, to ease the future migration path to 64-bit add-ins. These changes have no impact on 32-bit add-ins.
E00218 NEW - ple::clr::objectToXl The objectToXl generic conversion function now accepts an optional second argument, which is used to represent null values.
E00219 NEW - ple::clr::toClrObjectVector and ple::clr::toClrObjectMatrix The conversion functions toClrObjectVector and toClrObjectMatrix now accept an optional second argument, isOptional. When this is true, missing or empty arguments are transformed to empty object arrays.
F00130 FIX - IsInFormulaWizard returned true if Find/Replace dialog was open CXllApp::IsInFormulaWizard() returned true if the Find/Replace dialog was open. This behavior has been fixed, and a new support class, CXlFormulaWizardDetector, has been added, to help detect the Formula Wizard in languages other than English.
F00131 FIX - RTD handles and async functions failed to be refreshed in some Excel language versions In languages where a character other than the comma is used for separating arguments, the RTD messages for handles and for asynchronous functions were failing to be delivered. This behavior has been fixed.

6.3.4

Date: 27-August-2010
Description: Maintenance release
Files: setup_xlp6_71T_6_3_4.exe setup_xlp6_71R_6_3_4.exe setup_xlp6_80T_6_3_4.exe setup_xlp6_80R_6_3_4.exe setup_xlp6_90T_6_3_4.exe setup_xlp6_90R_6_3_4.exe setup_xlp6_100T_6_3_4.exe setup_xlp6_100R_6_3_4.exe
Item Change Description
E00211 NEW - .NET Reflection - Variable types The assembly import tool now treats arguments of type object, object[] or object[,] as inputs of variable type, and automatically translates the Excel inputs to the appropriate .NET value type.
E00212 NEW - German language resources Runtime errors are now available in German. Help files can now be generated in German, as well as in English, French and Portuguese.
E00213 NEW - .NET Reflection - Value lists The assembly import tool now supports value lists for arguments. Developers can specify value lists, which can be displayed in the Excel Formula Wizard and can also used for validation. Value lists are automatically generated for enumerated types .
E00214 NEW - Performance enhancements for validation routines An optimization has been applied to the generated code for optional scalar arguments. The optimization significantly reduces the cost of validating a scalar argument.
E00215 NEW - Excel Formula Wizard fails for functions with long argument names The Excel Formula Wizard will fail for functions with many, long argument names. A new validation test has been added to the XLL+ Function Wizard which will show a warning for functions of this type.
E00216 NEW - Profiling extension and sample - timer improved A more sensitive timer has been used for the profiling extension.The high-resolution performance counter is used instead of the system timer.
F00123 FIX - CString::operator+(char) A compile error was caused by the STL versions of this operator. This has been fixed.
F00124 FIX - Tools menu commands The commands "New XLL+ Function…" and "XLL+ Function Wizard…" on the Visual Studio "Tools" menu could fail with an "IndexOutOfRangeExecption" error, if the XLL Add-ins tool window has not been opened. This behavior has been fixed.
F00125 FIX - XLL Wrapper (Visual Studio 2008 version) no longer depends on .NET runtime 2.0 The Visual Studio 2008 version of the XLL Wrapper project wizard no longer adds a dependency for .NET runtime 2.0 to new projects. .NET runtime 3.5 is used instead. The developer can still change the targeted run-time at a later date.
F00126 FIX - XLL Wrapper (Visual Studio 2010 version) no longer depends on .NET runtime 2.0 The Visual Studio 2010 version of the XLL Wrapper project wizard no longer adds a dependency for .NET runtime 2.0 to new projects. .NET runtime 4.0 is used instead. The developer can still change the targeted run-time at a later date.
F00127 FIX - .NET Reflection - Externally defined enumerated types The assembly import tool was failing to import enumerated type arguments whose enumeration class was declared in a separate assembly. This behavior has been fixed.
F00128 FIX - Failure to read file if //}}XLP_SRC is missing If the end marker for a function's generated code (//}}XLP_SRC) was removed, then none of the functions in the file were read, and confusing error reports were issued. This behavior has been fixed.

6.3.3

Date: 24-June-2010
Description: First release for Visual Studio 2010 and maintenance release for other versions
Files: setup_xlp6_71T_6_3_3.exe setup_xlp6_71R_6_3_3.exe setup_xlp6_80T_6_3_3.exe setup_xlp6_80R_6_3_3.exe setup_xlp6_90T_6_3_3.exe setup_xlp6_90R_6_3_3.exe setup_xlp6_100T_6_3_3.exe setup_xlp6_100R_6_3_3.exe
Item Change Description
F00122 FIX - Field refresh problems in the Import Editor In the Assembly Import Editor, changes made to properties in the property grid were not always being immediately displayed. This behavior has been fixed.
E00208 NEW - Visual Studio 2010 A new version has been released which supports Visual Studio 2010.
E00209 NEW - Code-signing The setup programs and some installed components are now signed by the publisher.
E00210 NEW - psl::clr::toClrObject New helper functions ToClrObject(), ToClrObjectVector() and ToClrObjectMatrix() have been added to XlpClrConvert.h, which convert CXlOper values or arrays of arbitrary types to CLR objects and object arrays.

6.3.1

Date: 1-May-2010
Description: Maintenance release
Files: setup_xlp6_71T_6_3_1.exe setup_xlp6_71R_6_3_1.exe setup_xlp6_80T_6_3_1.exe setup_xlp6_80R_6_3_1.exe setup_xlp6_90T_6_3_1.exe setup_xlp6_90R_6_3_1.exe
Item Change Description
E00205 NEW - .NET Reflection The .NET Reflection tols have been enhanced, and are now more flexible and responsive.
E00206 NEW - Runtime libraries and headers A number of small changes have been made to the runtime libraries and headers to make the code compatible with Visual Studio 2010.
E00207 NEW - Handle types with namespaces The code generator has been enhanced to support the use of handle types which include namespaces as return values from HandleCreator methods.

6.3.0

Date: 1-Feb-2010
Description: Major commercial release
Files: setup_xlp6_71T.exe setup_xlp6_71R.exe setup_xlp6_80T.exe setup_xlp6_80R.exe setup_xlp6_90T.exe setup_xlp6_90R.exe
Item Change Description
F00110 FIX - RTD Handles and CXllApp::OnExitInstance A bug in this method was causing Excel to hang during closedown when RTD handles were in use. This has been fixed.
F00111 FIX - CLR add-ins crash in Tools/Addins An initialization problem was causing some add-ins built with the CLR release build run-time libraries to crash when added through Tools/Add-ins. This behavior has been fixed.
F00112 FIX - Help build fails for XLLs whose names contain spaces The help build command-line failed for projects with spaces in their names. This behavior has been fixed.
F00113 FIX - Function registration fails for XLLs whose names contain spaces The XLL+ run-time libraries displayed an error message during function registration for for projects with spaces in their names. This behavior has been fixed.
F00114 FIX - Value list drop-down in Formula Wizard If no description is specified for an item, only the name will be displayed, without a superfluous dash.
F00115 FIX - psl::clr::objectToXl The objectToXl generic conversion function now handles Decimal types correctly.
F00116 FIX - CallExcel sample Under Excel 2007 and above, the add-in function DescribeCell() failed because some cells of the result array were left uninitialized. This has been fixed.
F00117 FIX - Asynchronous functions - scalability fixes A number of scalability problems that affected the asynchronous function RTD implementation have been fixed. Performance is much improved, and update failures are now prevented.
F00118 FIX - Code generator produces code that does not compile by splitting single quoted characters An error in the code generator allowed some unicode single characters to be split across lines, separating, for example, L';' into two separate lines after the first quote. This behavior has been fixed.
F00119 FIX - Help generator is ignoring Syntax attribute for some arguments An error in the help generator was causing the Syntax attribute for some arguments to be ignored. This behavior has been fixed.
F00120 FIX - Error validating 2-dimensional arguments with extended scalar types and extended parameters An error in CXlCoreConverterEx::ReadMatrix was causing a false validation error for 2-dimensional arguments of extended scalar types, with extended argument parameters. This has been fixed.
F00121 FIX - Errors in code produced when importing .NET assemblies. When importing .NET assemblies, compile errors were produced for handle arguments which were not the same type as the declaring type of the method invoked. This behavior has been fixed.
E00199 NEW - psl::clr::objectToXl A new helper function objectToXl() has been added to XlpClrConvert.h, which converts .NET objects of arbitrary types into CXlOper values or arrays.
E00200 NEW - Implementation code is hidden Most of the implementation code for add-in functions is now generated in a #pragma region. The Function Wizard automatically hides these regions.
E00201 NEW - XLL Wrapper A new set of tools has been added which lets you generate wrapper libraries in .NET and COM, so that you can call Excel add-in functions directly from other applications. A new sample application, ApiTest, has been added, which shows how to call XLL functions from C++, C# and VBA.
E00202 NEW - Asynchronous functions - performance The file-based channel used for communicating between threads in asynchronous functions has been replaced with a shared-memory implementation. This has significantly lower performance overhead, and improved scalability.
E00203 NEW - Value list editor improvements The value list editor has been improved, with the addition of support for copy/paste and Excel import/export.
E00204 NEW - Data Feed sample A new sample application, DemoFeed, has been added. This shows how to use RTD to integrate a real-time data feed into an XLL.

6.2.0

Date: 1-Jul-2009
Description: Major commercial release
Files: setup_xlp6_71T.exe setup_xlp6_71R.exe setup_xlp6_80T.exe setup_xlp6_80R.exe setup_xlp6_90T.exe setup_xlp6_90R.exe
Item Change Description
F00100 FIX - Help build on 64-bit OS The help build tool (BUILDHELP.EXE) was not running correctly on Windows 64-bit platforms. This behavior has been fixed.
F00101 FIX - Cache in CLR builds The value cache was not being correctly used by CLR builds. This has been fixed.
F00102 FIX - xlhandle.h xlhandle.h has been amended to work with Unicode and MFC builds.
F00103 FIX - CXllApp::XlMessageBox This method was returning an incorrect value for the user's input in some cases. This has been fixed.
F00104 FIX - CXlOper::GetCaller This method was causing run-time errors under some circumstances if called from macros. This has been fixed.
F00105 FIX - CXlControlRefEdit CXlControlRefEdit::SetRef() was failing for some local addresses. This behavior has been fixed.
F00106 FIX - CString::TrimRight and TrimLeft These methods were behaving incorrectly in STL builds of the run-time library. This behavior has been fixed.
F00107 FIX - Container classes - code generation An error in the code generation meant that some custom container classes for vectors and matrices, such as TT::vector<T>, were generating incorrect and uncompilable code. This error has been fixed.
F00108 FIX - Memory leak in CXlOper::FromMRef() This method was leaking memory when running under Excel 2003 and below. This behaviour has been fixed
F00109 FIX - CXlControlRefEdit A bug in Excel causes inconsistent behavior in the RefEdit field when a workbook has a name that includes a space and has a mixture of sheets whose names contain spaces and sheets whose names do not contain spaces. A workaround has been added to the CXlControlRefEdit class to correct this behavior.
E00186 NEW - Asynchonous functions The pattern for asynchronous functions has been revised, and is now simpler, faster and less intrusive.
E00187 NEW - Assembly import XLL+ 6.2 can create wrapper add-ins from .NET assemblies. These add-ins contain automatically generated functions for all selected methods and properties of the imported .NET assembly.
E00188 NEW - Logging framework A new logging framework is included, which makes it simple and quick to write diagnostic information to log files.
E00189 NEW - Logging sample A new sample application, LogDemo, has been added, to demonstrate the use of logging in add-ins.
E00190 NEW - CXlOper::Resize & CXlOper::Offset Two new methods have been added to CXlOper that simplify manipulating references.
E00191 NEW - CXlMacros::Split & CXlMacros::FreezePanes New command methods have been added to CXlMacros.
E00192 NEW - Formula Wizard Extended User Interface New functionality has been added to allow add-ins to show drop-downs and popups from within the Excel Formula Wizard.
E00193 NEW - Value list constraints A list of values can be added to an argument's specification which will validate an input against a list of expected values.
E00194 NEW - CXllApp::AfterXllOpen event A new event has been added, which occurs after all other XllOpen processing
E00195 NEW - Help command line tool The usage has been changed, so that paths are now relative and machine-independent wherever possible, making it easier to move XLL+ projects between machines.
E00196 NEW - Object Handles A new implementation of object handles, using RTD, has been added. These handles are generally to be preferred to the older handle implementations. They provide real-time object cache synchronization and flexible handle formats.
E00197 NEW - Value cache files moved to per-user storage To better the suit the security environments of Windows Vista, Windows 7 and Windows Server, value cache files are now placed in per-user storage, rather than in the Program Files directory tree. The method CXlOperCache::GetUserCacheFilePath() has been added, which returns the default file name for the cache.
E00198 NEW - Extended user interface An extended user interface has been added to run within Excel's Formula Wizard. Fields may include drop-down lists and pop-up editors.

6.0.6

Date: 19-Mar-2009
Description: Patch release
Files: xlp_6_0_6_090319_80T.ZIP xlp_6_0_6_090319_80.ZIP xlp_6_0_6_090319_90T.ZIP xlp_6_0_6_090319_90.ZIP
Item Change Description
F00098 FIX - Bug in Upgrade Wizard Functions upgraded from XLL+ 5, that had arguments whose descriptions contained square braces (e.g. "[Optional] Further text"), failed to be transformed correctly. This behavior has been fixed.
F00099 FIX - Unicode bugs in Function Wizard Some Unicode characters in descriptions were causing the XLL+ Function Wizard to generate faulty code, including code that could not be read by the Wizard. This behavior has been fixed.
E00184 NEW - Minimum-dependency MFC libraries A new set of run-time libraries has been added for the MFC libraries. These support add-ins which use the C run-time and MFC in a shard library, using compiler settings /MT or /MTd.

6.0.4

Date: 29-Sep-2008
Description: Maintenance release
Files: setup_xlp6_71T.exe setup_xlp6_71R.exe setup_xlp6_80T.exe setup_xlp6_80R.exe setup_xlp6_90T.exe setup_xlp6_90R.exe
Item Change Description
E00181 NEW - .NET Support Support for .NET integration has been added to the AppWizard and to the XLL+ runtime libraries. Add-ins can now call .NET methods using C++/CLI. A new section has been added to the User Guide to explain how to use .NET methods in XLL+ add-ins.
E00182 NEW - Concurrent licensing Concurrent licensing is now fully supported. Users can log on and off license servers from within Visual Studio.
E00183 NEW - New samples 3 new samples have been added: ClrDemo, AssemblyDemo and PiaDemo, which demonstrate how to use .NET assemblies from an add-in.
F00094 FIX - CStringT::ReverseFind The implementation of this function (in the STL builds only) contained an error which usually resulted in searches failing. This has been fixed.
F00095 FIX - CXlFuncs methods A number of methods of CXlFuncs failed to catch Excel errors, and returned invalid results in these cases. This has been fixed.
F00096 FIX - Date methods (xlldate.h) A number of date functions declared in xlldate.h failed to catch Excel errors, and returned invalid results in these cases. This has been fixed.
F00097 FIX - CXlDate mehods A number of CXlDate methods failed to catch Excel errors, and returned invalid results in these cases. This has been fixed.

6.0.3

Date: 12-Jun-2008
Description: Maintenance release
Files: setup_xlp6_71T.exe setup_xlp6_71R.exe setup_xlp6_80T.exe setup_xlp6_80R.exe setup_xlp6_90T.exe setup_xlp6_90R.exe
Item Change Description
F00087 FIX - CXllApp::XlOpen If no object descended from CXllApp was instantiated, this method crashed Excel. This behavior has been fixed, so that an error is reported in a message box.
F00088 FIX - Instability on machines where Visual Studio is also installed The AppWizard was unstable under VS2003 on machines which had VS2008 also installed. This behavior has been fixed.
F00089 FIX - UpgradeWizard report This report is now displayed within Visual Studio, instead of an external browser.
F00090 FIX - XLL Add-ins Window Toolbar The commands on the XLL Add-ins Window's toolbar have been rearranged, so that the window fits into a smaller width.
F00091 FIX - Memory leaks in runtime library A number of memory leaks were found in the runtime library, affecting arrays and references returned by call-backs to the Excel API. These have been fixed.
F00092 FIX - RuntimeTypeInfo switched on The compiler's RuntimeTypeInfo setting is now switched on for all new projects. The Upgrade Wizard also switches it on.
E00177 NEW - /MD run-time libraries added A new set of run-time libraries has been added. These support add-ins which use the C run-time in a separate DLL, using compiler settings /MD or /MDd.
E00178 NEW - Pre-build help compiler step omitted by default In version 6.0.2 a pre-build help compiler step was added to XLL+ projects, which checked that the arguments to the help compiler were complete. In particular, the step checks each C++ source file for Excel add-in functions; any C++ file that contains such functions is added to the list of input files for the help compioler. This step is now omitted by default; it can be reenabled by changing the SkipHelpBuilderSetup option in the Tools/XLL+/General options page.
E00179 NEW - Visual Studio 2008 A new version has been released which supports Visual Studio 2008.
E00180 NEW - Tools on XLL Add-ins toolbar rearranged The tools on the XLL Add-ins toolbar have been rearranged, so that the toolbar is less wide. This allows the XLL Add-ins window to be less wide, and allows full access to the toolbar from a narrower window.

6.0.2

Date: 28-Mar-2008
Description: Major commercial release
Files: setup_xlp6_80T.exe setup_xlp6_80R.exe
Item Change Description
F00085 FIX - ple::mtx_transpose, ple::mtx_ptrs::get_ptrs, ple::mtx_flat::get_flat These methods caused an out-of-bounds exception when applied to an empty matrix. This behavior has been fixed
F00086 FIX - MAXCOORD sample function in Tutorial1 This sample function failed if the input array was empty. This behavior has been fixed by using the "Reject Empty Array" flag.
E00165 NEW - Help command line tool A command line utility, BUILDHELP.EXE, has been provided so that help systems can be built outside of Visual Studio, as part of an automated build process.
E00166 NEW - Add external files to help projects The AdditionalFile element can now be used to add your own pages to generated help projects.
E00167 NEW - Localized help Help projects can now be generated in languages other than English.
E00168 NEW - MAXCOORD sample function in Tutorial1 This sample function failed if the input array was empty. This behavior has been fixed by using the "Reject Empty Array" flag.
E00169 NEW - CXlMacros::Error A new method CXlMacros::Error can be used to switch Excel alerts on and off.
E00170 NEW - CXlErrorSuspend A new helper class, CXlErrorSuspend, can be used to temporarily switch off Excel alert dialogs.
E00171 NEW - French language resources Runtime errors ar now available in French as well as English.
E00172 NEW - Macro helpers topic The User Guide contains a new topic "Macro helpers", which descibes classes which make the user experience more pleasant during the execution of macros.
E00173 NEW - Add macro command A new menu command is available to create macro functions in one step.
E00174 NEW - Help resource files In the Help generator help file, the new attribute Help/@CopyFileExtensions and the new element ResourceFile allow image and style files to be automatically added to a help project.
E00175 NEW - New Profiling sample A new sample project, Profiling, has been added. This demonstrates how to implement a Function Extension.
E00176 NEW - Help projects build The building of the help files has been made part of the standard build. The Help commands are therefore no longer present.

6.0.1

Date: 1-Jan-2008
Description: Beta release (Visual Studio 2005 only)
Files: setup_xlp6_80T.exe
Item Change Description
E00157 NEW - Excel 2007 The design tools and class libraries have been updated to provide support for the new features of Excel 2007.
E00158 NEW - Unicode The class libraries now support Unicode builds, as well as ANSI.
E00158 NEW - XLL Add-ins window The XLL Add-ins window has been added to the developer toolset. This is a ToolWindow that appears within Visual Studio, and can be used for more efficient editing of XLL+ add-in functions.
E00160 NEW - Language support for error messages The run-time error mesages produced by the libraries are now in a resource file, and can be replaced by messages in languages other than English.
E00161 NEW - Extended types The XLL+ Function Wizard and class libraries now support the use of user-defined data types, as well as the standard built-in data types.
E00162 NEW - Function extensions Developers can define function extensions which can be injected into the code generated by the XLL+ Function Wizard.
E00163 NEW - Exceptions Add-in functions can now be exited early by raising an exception derived from CXlRuntimeException.
E00163 NEW - Help generator An integrated help generator can be used to generate Compiled Help (CHM) format help files for add-in functions.
E00164 NEW - COper The COper class has been merged into the CXlOper class.

5.0.2

Date: 19-Oct-2006
Description: Maintenance commercial release
Files: xlpn_md_5_0_1.zip xlpt_md_5_0_1.zip xlpv_md_5_0_1.zip
Item Change Description
E00156 NEW - /MD and /MDd libraries Builds of each the XLL+ 5.0.1 for applications built with the /MD or /MDd flags set.

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
Item Change Description
E00147 NEW - Support for Visual Studio 2005 XLL+ 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.
E00148 NEW - Asynchronous functions using RTD We'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.
E00149 NEW - XllHost module You 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.
E00150 NEW - ColorCell sample A new sample shows how to set the colors of cells from a macro function.
E00151 NEW - UseTimer sample This sample add-in shows how to run a macro function at a specific time.
E00152 NEW - AvgOptAsync sample The 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.
E00153 NEW - Support for Proxy Libraries A 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.
E00154 NEW - mtx_ptrs::erase method A 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.
E00155 NEW - CXlFormulaRefresh::RefreshSheet The 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.
F00080 FIX - Optional matrices The Function Wizard was not emitting code to handle matrix inputs that were optional. This behavior has been fixed.
F00081 FIX - Function name lengths The 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.
F00082 FIX - Argument names containing 'ia' The Function Wizard was failing to produce code for arguments which included the letters 'ia'. This behavior has been fixed.
F00083 FIX - Padding of argument descriptions Under 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.
F00084 FIX - Set argument dimensions command In 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.

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

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
Item Change Description
F00069 FIX - 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.
F00070 FIX - CXlOper & COper vector & matrix template functions Bugs 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.
F00071 FIX - CXlRef::ToString() The class CXlRef was wrongly generating string addresses for cells in column AA. The behavior has been fixed.
F00072 FIX - CXllApp::SplitSheetName() CXllApp::SplitSheetName() was wrongly truncating the book portion of a combined sheet name. The behavior has been fixed.
F00073 FIX - COper::ReadMatrix() & COper::ToMatrix() COper::ReadMatrix() & COper::ToMatrix() were crashing Excel when the usIgnoreRows or usIgnoreCols parameters were set. The behavior has been fixed.
F00074 FIX - COM interface failed in non-English versions The 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.
F00075 FIX - 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.
F00076 FIX - VS6 resource editor unable to edit resources When 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.
F00077 FIX - Warning from VS.NET resource editor When 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.
F00078 FIX - 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.
F00079 FIX - 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().
E00117 NEW - Serialization classes The serialization classes (CXlOStream, CXlIStream, CXlSerialData, CXlInputKey, CXlResultSet & CXlOperCache) have been extended for ease of use, and documented.
E00118 NEW - Serialization sample A new sample, "Serialize", has been added, which demonstrates the serialization classes.
E00119 NEW - Grabbing a cell value example code New example code has been added to show how to grab a cell value from a sheet in a macro add-in.
E00120 NEW - Tool bars A new class, CXlToolbar, has been added, which allows the developer to create toolbars, populate them and manage their state.
E00121 NEW - Toolbar samples Three new samples, "Toolbar1", "Toolbar2" and "Toolbar3", have been added, which demonstrate the CXlToolbar class.
E00122 NEW - Creating a long formula New example code has been added to show how to create a long (>512 characters) formula.
E00123 NEW - Safe code for .NET runtime A 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.
E00124 NEW - 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.
E00125 NEW - CXlOper::SetLongFormula() A new function has been added, that supports setting formulae of more than 255 characters.
E00126 NEW - New push model A 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.
E00127 NEW - Formatting cells New example code has been added to show how to format a range of cells.
E00128 NEW - International settings New example code has been added to show how to get the current international settings from Excel.
E00129 NEW - International information A new method, CXllApp::GetInternational(), has been added to retrieve the current values of various international settings, including decimal point, thousands separator and list separators.
E00130 NEW - Creating a workbook New example code has been added to show how to create and populate a new workbook.
E00131 NEW - Creating a sheet New example code has been added to show how to create and populate a new sheet in an existing workbook.
E00132 NEW - Extracting a range from an array New 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.
E00133 NEW - 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.
E00134 NEW - COM Wrappers A 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.
E00135 NEW - XLL Version function The built-in version function, optionally built into new add-ins by the AppWizard, now uses the resource file to load the company name.
E00136 NEW - CXlOper::FromNumericVector A 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.
E00137 NEW - AppWizard creates toolbar code A 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.
E00138 NEW - New CXlOper constructor A 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.
E00139 NEW - Localized strings Most 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.
E00140 NEW - Localized argument names A 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.
E00141 NEW - New CXlMacros methods New 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.
E00142 NEW - New Macro topics New topics have been added to the User Guide, discussing the CXlMacros class, how to use cell references and how to manipulate fornlae in cells.
E00143 NEW - CXlOper::GetLongString() A new function has been added, that supports retrieving string values which contain more than 255 characters.
E00144 NEW - CXlRef::MoveBy() A new function has been added, that supports adding a row and column offset to a range reference.
E00145 NEW - CXlOper international formulae functions New functions have been added to CXlOper, to support getting and setting formulae in international format: GetFormulaIntl(), SetFormulaIntl(), SetLongFormulaIntl(), ConvertFormulaIntl() and MakeRefIntl().
E00146 NEW - CXlRef international strings New 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.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
Item Change Description
E00113 NEW - Visual Studio.NET 2003 support Support 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).
E00114 NEW - typename keyword The 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.
E00115 NEW - Object handles A 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.
E00116 NEW - CXlMacros new methods Some new methods have been added to CXlMacros to support some of the more common calls to GET.CELL, and FORMULA.REPLACE.
F00064 FIX - ple::mtx_ptrs::operator[] const The overloaded operator [] const contained a bug which prevented compilation. This has been fixed.
F00065 FIX - CXlControlListBox A listbox with no entries caused the containing dialog not to appear. This behavior has been fixed.
F00066 FIX - 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.
F00067 FIX - CXlMenu internationalization fix In versions of Excel that do not use English menu titles, user-defined menus could fail to appear. This behavior has been fixed.
F00068 FIX - XllGetTypedApp() The ::XllGetTypedApp() method is now defined inline.

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
Item Change Description
E00094 NEW - New classes for calling Excel functions Two new classes, CXlFuncs and CXlMacros, have been added to simplify calling most Excel worksheet and macro functions from C++.
E00095 NEW - Sample for calling Excel functions A new sample CallExcel has been added to demonstrate how to use the CXlMacros and CXlFuncs classes to call Excel functions.
E00096 NEW - New methods for Binary Names New 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.
E00097 NEW - Sample for Binary Names A new sample, BinaryData, has been added to demonstrate how to store binary data in spreadsheets using Binary Names.
F00062 FIX - Single column COper arrays COper::AllocArray() failed when an array with one column was created. This behaviour has been fixed.
E00098 NEW - 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.
E00099 NEW - CXlOper::AllocArray CXlOper::AllocArray() has a new variant that allows you to initialise all cells immediately after allocation.
F00063 FIX - Treatment of blank cells in arrays Under 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.
E00100 NEW - XlpSetTemplate tool A new command line tool, XlpSetTemplate.exe, has been provided to let you change the template file used by the XLL+ Function Wizard.
E00101 NEW - Serialization classes New serialization classes, CXlSerialData and CXlInputKey, have been added to help you store Excel data types.
E00102 NEW - Cache class A new cache class, CXlOperCache, has been added to speed up the performance of frequently called add-ins, by cacheing the results in a map.
E00103 NEW - Cache sample A new sample, AvgOpt, has been added, to demonstrate the use of the CXlOperCache class.
E00104 NEW - Function Wizard cache flag A 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.
E00105 NEW - AppWizard cache option The AppWizard now offers an option to add a cache of type CXlOperCache to a new project's application class.
E00106 NEW - AppWizard overrides option The AppWizard now offers an option to add default implementations of OnXllOpenEx() and OnXllClose().
E00107 NEW - SimpOpt sample The 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.
E00108 NEW - FAQ The Frequently Asked Questions have been copied from the web-site to the on-line help.
E00109 NEW - Functions to get and set Calculation mode Two new functions, CXllApp::GetCalculationMode() and CXllApp::SetCalculationMode() have been added.
E00110 NEW - Integration sample A new advanced sample, Integration, had been added, which uses dialogs and macro functions to integrate functions in a workbook.
E00111 NEW - Functions to detect user cancel Two new functions, CXllApp::GetUserAbort() and CXllApp::CancelUserAbort() have been added, to detect the user pressing the Cancel key.
E00112 NEW - Structured Exception Handling A new class SE_Handler is used in the SEH sample code, to simplify the use of C Structured Exception Handling techniques.

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
Item Change Description
E00083 NEW - 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.
E00084 NEW - New extended attribute for Formula Wizard A 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.
F00058 FIX - COper::ReadVectorItem bug A bug in COper::ReadVectorItem caused Excel to crash when handling the error message for a missing argument. This has been fixed.
E00085 NEW - COper::ReadGroupItem replaces COper::ReadVectorItem COper::ReadGroupItem is now used in place of COper::ReadVectorItem in functions generated by the Function Wizard.
E00086 NEW - Visual Studio .NET Help integration Visual Studio .NET Help integration has been completed. All topics are now in the style and structure of Visual Studio.
E00087 NEW - New methods for CXlMenu CXlMenu 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().
E00088 NEW - Advanced menu sample A new sample, SubMenus, has been added, to demonstrate how to add sub-menus and dynamic menus.
E00089 NEW - COM event handler interface A new simplified COM event handler interface, CXllApp::SetComEventHandler() has been added.
E00090 NEW - COM event handler documentation The COM event handler interfaces have all been documented.
E00091 NEW - COM event handler samples A new sample, ComEvents, has been added, to demonstrate how to add a handlers for COM events such as WorkbookOpen and Calculate.
F00059 FIX - Grouped arguments Grouped arguments that were marked as optional were failing to remember their state in the Formula Wizard. This behaviour has been fixed.
F00060 FIX - Empty arrays CXlOper::AllocArray() asserted when an array of zero rows, columns or items was created. This behaviour has been fixed to be tolerant of empty arrays.
F00061 FIX - Crash in Export window The Function Wizard crashed when a non-existent directory was selected for an exported XML file. This behaviour has been fixed.
E00092 NEW - Walkthroughs for array results Two new walkthroughs have been added to demonstrate how to return array results from add-in functions.
E00093 NEW - Walkthroughs for grouped arguments A new walkthrough has been added to demonstrate how to create grouped arguments with the Function Wizard.

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
Item Change Description
E00080 NEW - Help Generator Tool A 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.
F00056 FIX - CXlOper::ReadMatrix failed to link Some CXlOper methods were excluded from the run-time libraries; as a result CXlOper::ReadMatrix() caused a link error. This has been fixed.
E00081 NEW - SDK Function numbers New technical notes and a walkthrough have been added to the documentation to help with the CXlOper::Excel() and CXllApp::Excel() methods.
F00057 FIX - COper::ToMatrix failed to compile CXlOper::ToMatrix() failed to compile. This has been fixed.
E00082 NEW - MFC Resources in .NET The resources file in the MFC builds under VisualStudio .NET was not compatible with the resource editor. This has been fixed.

4.2.1

Date: 18-Nov-2002
Description: Maintenance beta release
Files: xlp_4_2_1.exe xlp_demo_4_2_1.exe
Item Change Description
F00050 FIX - Bug in MtCalc The MtCalc sample add-in caused Excel to crash if the application was closed with calculations still running. This behaviour has been fixed.
E00074 NEW - .NET AppWizard automatically opens C++ source file The .NET AppWizard now automatically opens the main cpp file after creating an XLL+ project.
F00051 FIX - CXllApp::GetVersionInfo() failed under MFC Calls to CXllApp::GetVersionInfo() failed under MFC under certain conditions. This behaviour has been fixed.
F00052 FIX - Various bad links in User Guide  
F00053 FIX - Erroneous function descriptions in Reference Errors in the ple::imtx<T> documentation were fixed.
F00054 FIX - CXlDialog class failed to compile with MFC Errors in the CXlDialog class prevented compilation under MFC under some conditions. This behaviour has been fixed.
E00075 NEW - Walkthroughs A new section "Walkthroughs" containing task-oriented walkthroughs has been added to the XLL+ help.
E00076 NEW - Installable matrix classes The 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.
E00077 NEW - Extended attributes dialog A new dialog, listing extended function attributes,is available from the Edit menu of the XLL+ Function Wizard.
E00078 NEW - Application-level data flag A 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.
F00055 FIX - Function Wizard Context Help under .NET Function Wizard Context Help failed under .NET. This behaviour has been fixed.
E00079 NEW - Registry settings documentation A list of all registry settings used by the various XLL+ components is now included as a technical note in the reference guide.

4.2.0

Date: 20-Sep-2002
Description: Initial beta release
Files: xlp_4_2_0.exe xlp_demo_4_2_0.exe
Item Change Description
E00055 NEW - New string methods for CXllApp A new set of static methods, RetString(), have been added to CXllApp, to return string results to Excel.
E00056 NEW - New stack check method for CXllApp A new static method, XlGetStackSpace(), has been added to CXllApp, to return the number of bytes available in the stack.
E00057 NEW - New error conversion method for CXllApp A new static method, ErrorToString(), has been added to CXllApp, to convert an error code to a string.
E00058 NEW - New bool() casting operator for COper A new casting operator, bool(), has been added to COper, to extract and return a C++ boolean value.
E00059 NEW - New optional argument reading functions for COper A 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().
E00060 NEW - 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.
E00061 NEW - 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.
E00062 NEW - New STL collection support New template methods, ReadArrayIntoOrderedCollection1D() and ReadArrayIntoSet1D(), have been added to COper to allow an array to be read into any STL collection class.
E00063 NEW - New matrix classes A 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.
E00064 NEW - New CXlOper constructors New constructors have been added for CXlOper, to support conversion from the C++ bool type and the STL std::string type.
E00065 NEW - New bool() casting operator for CXlOper A new casting operator, bool(), has been added to CXlOper, to extract and return a C++ boolean value.
E00066 NEW - New matrix output functions A 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.
E00067 NEW - Excel function names may contain periods The Function Wizard now allows Excel function names to include periods e.g. "GET.SYSTEMTIME".
F00043 FIX - Fixed memory leak under Windows XP A memory leak (under Windows XP only) in the STL libraries' implementation of CString::AllocSysString() was fixed.
F00044 FIX - CXllCOM::Init() fails with Excel 2000/2002 On 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.
F00045 FIX - Argument descriptions can now start with a digit If 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.
E00068 NEW - New methods for cell formulae New methods CXlOper::GetFormula() and CXlOper::SetFormula() let you inspect and change formulae in spreadheet cells.
E00069 NEW - Visual Studio .NET integration XLL+ 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.)
E00070 NEW - New dialog classes New classes CXlDialog and CXlControl have been added, to support the use of native Excel dialogs.
E00071 NEW - New menu class A new class CXlMenu has been added, to support the addition of menus to Excel's application menu.
F00046 FIX - GetVersionInfo bug fixed The bug in CXllApp::GetVersionInfo() which caused MFC dialogs to fail to appear after its use has been fixed. (See XLL+ FAQ #5.)
F00047 FIX - Functions now disappear from Excel Formula Wizard when unregistered Prior 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.
E00072 NEW - Optional arguments in Function Wizard Arguments can now be marked as Optional in the XLL+ Function Wizard, and default values can be provided for missing arguments.
E00073 NEW - Automatic internationalisation of standard categories Functions that use standard categories are registered in the current Excel language.

4.1.7

Date: 19-Apr-2002
Description: Enhancement release
Files: xlp_4_1_7.exe xlp_demo_4_1_7.exe
Item Change Description
F00042 FIX - Empty example links Empty example links were replaced in Reference Guide.
E00042 NEW - XllPush library added The XLLPUSH library, supporting asynchronous functions, was added. New files: XllPush.lib, XlpPush.h, XllPushApp.h, XlpMtMsg.h, XlpAsync.dll.
E00043 NEW - Asynchronous demos added Three new sample libraries were added, to demonstrate various uses of the XllPush library: MtBackground, MtCalc and MtFeed.
E00044 NEW - AppWizard: XllPlus.h included in project The 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.
E00045 NEW - New reference methods for CXlOper New methods for references have been added to CXlOper: SetValue(), MakeRef(), GetActiveCell() and SetActiveCell().
E00046 NEW - New reference methods for CXllApp New methods for references have been added to CXllApp: MakeSheetName(), SplitSheetName(), GetSheetId() and GetSheetName().
E00047 NEW - New errror handling method for CXllApp A new method for has been added to CXllApp, SetErrorHandling(), which switches on and off XL4 macro error handling.
E00048 NEW - New class CXllFinder A new class has been added, to support find and replace operations.
E00049 NEW - New sample application FindReplace A new sample application, FindReplace, shows how to use the CXllFinder class.
E00050 NEW - New chapter in user guide: Macro functions A new chapter on Macro functions has been added to the User Guide.
E00051 NEW - New tech note: Bounded input arrays A new technical note has been added, which discusses the use of upper bounds in ReadVector() and ReadMatrix().
E00052 NEW - New chapter in user guide: Writing safe functions A new chapter on exception handling has been added to the User Guide.
E00053 NEW - New sample application SafeCode A new sample application, SafeCode, shows how to protect your code with Structured Exception Handling.
E00054 NEW - Sample applications added to documentation A new section in the online documentation describes each of the sample applications.

4.1.6

Date: 14-Mar-2002
Description: Maintenance release
Files: xlp_4_1_6.exe xlp_demo_4_1_6.exe
Item Change Description
F00038 FIX - Setup program failed without Administrator priviliges The 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.
F00039 FIX - DinkumWare libraries supported The 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.
F00040 FIX - MFC build uses CXllApp::POSITION As 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.
F00041 FIX - 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.
E00041 NEW - ::XllGetVersion() no longer inline The 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.5

Date: 03-Mar-2002
Description: Commercial release
Files: xllplus41-02030301.zip
Item Change Description
E00039 NEW - AppWizard renamed The 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.
E00040 NEW - New CXllCom methods added 3 new methods were added to CXllCom: OleGetWorksheetName(), OleGetRangeWorksheet() and OleGetWorksheetWorkbook().

4.1.4

Date: 06-Feb-2002
Description: Maintenance release
Files: xllplus41-02022601.zip
Item Change Description
F00029 FIX - CXlRef::Width() CXlRef::Width() returned a BYTE and therefore failed when a range contained 256 columns. It now returns a WORD.
F00030 FIX - CXlArray::GetWidth() + CXlArray::GetHeight() These methods returned WORD. They now return USHORT, in line with COper and CXlOper.
E00035 NEW - New method CXlArray::GetDims() This method was added to bring CXlArray in line with COper and CXlOper.
E00036 NEW - Technical Notes A new topic, "Comparison of COper, CXlOper and CXlArray" has been added to the Technical Notes.
E00037 NEW - AppWizard The AppWizard now opens the project's main C++ source file after it has finished creating the project.
F00031 FIX - Function Wizard changes selection after saving If 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.
F00032 FIX - Function Wizard does not display saved changes If 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.
F00033 FIX - Various typos in Reference Guide and Function Wizard help  
F00034 FIX - Function Wizard displays error when adding column group If 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.
F00035 FIX - Function Wizard pops up argument editor when changing argument type If 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.
F00036 FIX - Generated functions did not include CXlArray instantiation The Function Wizard did not generate code to instantiate a CXlArray object from a LPXLARRAY type input. This has been fixed.
F00037 FIX - Arrays of strings were wrongly declared The 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.
E00038 NEW - New demo project ArgSize A new demo project, ArgSize, has been added. This, along with the test spreadsheet ArgSize.xls, demonstrates argument size limits.

4.1.3

Date: 22-Feb-2002
Description: Maintenance release
Files: xllplus41-02022201.zip
Item Change Description
F00025 FIX - Various typos in User Guide  
E00033 NEW - CXllApp::GetXllName() added A new method, CXllApp::GetXllName(), returns the full path of the current XLL module.
F00026 FIX - CXllCom::OleGetRangeAddress() This function was returning local addresses only. This behavior has been fixed.
F00027 FIX - CVariant::Compare() This method was returning unpredictable results. This behavior has been fixed.
E00034 NEW - CXllCom documentation All the methods of the CXllCom class have now been documented.
F00028 FIX - Incomplete uninstall After uninstallation, some keys were left in the registry, which caused problems the next time MSDev was run. This behavior has been fixed.

4.1.2

Date: 20-Feb-2002
Description: Maintenance release
Files: xllplus41-02022001.zip
Item Change Description
F00022 FIX - Fixed some empty links in User Guide  
F00023 FIX - Clicking on a tool button loses recent changes to text grid fields Function 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.
F00024 FIX - Deleting //}}XLP_SRC caused inconsistent behavior Function 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.1

Date: 14-Feb-2002
Description: Maintenance release
Files: xllplus41-02021401.zip
Item Change Description
F00021 FIX - Function Wizard fails to accept input in empty files If 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.
E00032 NEW - New date functions added New date functions were added to xlldate.h: XlNow(), XlToday(), XlWeekday(), XlStringToSerial() and XlStringToLSerial().

4.1.0

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