XLL+ Class Library (6.3)

XLL+ Change History

XLL+ version history is detailed below.

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_80T_6_3_7.exe setup_xlp7_80R_6_3_7.exe setup_xlp7_90T_6_3_7.exe setup_xlp7_90R_6_3_7.exe setup_xlp7_100T_6_3_7.exe setup_xlp7_100R_6_3_7.exe
Item Change Description
E00229 ENH - 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 ENH - 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 ENH - 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
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 ENH - .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 ENH - 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 ENH - .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 ENH - 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 ENH - 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 ENH - 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.
F00129 FIX - CXllFn::GetArgumentName returned an empty string The library function CXllFn::GetArgumentName() returned an empty string for most arguments. 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 ENH - Visual Studio 2010 A new version has been released which supports Visual Studio 2010.
E00209 ENH - Code-signing The setup programs and some installed components are now signed by the publisher.
E00210 ENH - 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 ENH - .NET Reflection The .NET Reflection tols have been enhanced, and are now more flexible and responsive.
E00206 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - Value list editor improvements The value list editor has been improved, with the addition of support for copy/paste and Excel import/export.
E00204 ENH - 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 ENH - Asynchonous functions The pattern for asynchronous functions has been revised, and is now simpler, faster and less intrusive.
E00187 ENH - 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 ENH - Logging framework A new logging framework is included, which makes it simple and quick to write diagnostic information to log files.
E00189 ENH - Logging sample A new sample application, LogDemo, has been added, to demonstrate the use of logging in add-ins.
E00190 ENH - CXlOper::Resize & CXlOper::Offset Two new methods have been added to CXlOper that simplify manipulating references.
E00191 ENH - CXlMacros::Split & CXlMacros::FreezePanes New command methods have been added to CXlMacros.
E00192 ENH - 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 ENH - 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 ENH - CXllApp::AfterXllOpen event A new event has been added, which occurs after all other XllOpen processing
E00195 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - .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 ENH - Concurrent licensing Concurrent licensing is now fully supported. Users can log on and off license servers from within Visual Studio.
E00183 ENH - 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 ENH - /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 ENH - 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 ENH - Visual Studio 2008 A new version has been released which supports Visual Studio 2008.
E00180 ENH - 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 ENH - 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 ENH - Add external files to help projects The AdditionalFile element can now be used to add your own pages to generated help projects.
E00167 ENH - Localized help Help projects can now be generated in languages other than English.
E00168 ENH - 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 ENH - CXlMacros::Error A new method CXlMacros::Error can be used to switch Excel alerts on and off.
E00170 ENH - CXlErrorSuspend A new helper class, CXlErrorSuspend, can be used to temporarily switch off Excel alert dialogs.
E00171 ENH - French language resources Runtime errors ar now available in French as well as English.
E00172 ENH - 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 ENH - Add macro command A new menu command is available to create macro functions in one step.
E00174 ENH - 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 ENH - New Profiling sample A new sample project, Profiling, has been added. This demonstrates how to implement a Function Extension.
E00176 ENH - 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 ENH - Excel 2007 The design tools and class libraries have been updated to provide support for the new features of Excel 2007.
E00158 ENH - Unicode The class libraries now support Unicode builds, as well as ANSI.
E00158 ENH - 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 ENH - 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 ENH - 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 ENH - Function extensions Developers can define function extensions which can be injected into the code generated by the XLL+ Function Wizard.
E00163 ENH - Exceptions Add-in functions can now be exited early by raising an exception derived from CXlRuntimeException.
E00163 ENH - Help generator An integrated help generator can be used to generate Compiled Help (CHM) format help files for add-in functions.
E00164 ENH - 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 ENH - /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 ENH - 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 ENH - 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 ENH - 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 ENH - ColorCell sample A new sample shows how to set the colors of cells from a macro function.
E00151 ENH - UseTimer sample This sample add-in shows how to run a macro function at a specific time.
E00152 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - Serialization classes The serialization classes (CXlOStream, CXlIStream, CXlSerialData, CXlInputKey, CXlResultSet & CXlOperCache) have been extended for ease of use, and documented.
E00118 ENH - Serialization sample A new sample, "Serialize", has been added, which demonstrates the serialization classes.
E00119 ENH - 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 ENH - Tool bars A new class, CXlToolbar, has been added, which allows the developer to create toolbars, populate them and manage their state.
E00121 ENH - Toolbar samples Three new samples, "Toolbar1", "Toolbar2" and "Toolbar3", have been added, which demonstrate the CXlToolbar class.
E00122 ENH - Creating a long formula New example code has been added to show how to create a long (>512 characters) formula.
E00123 ENH - 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 ENH - 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 ENH - CXlOper::SetLongFormula() A new function has been added, that supports setting formulae of more than 255 characters.
E00126 ENH - 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 ENH - Formatting cells New example code has been added to show how to format a range of cells.
E00128 ENH - International settings New example code has been added to show how to get the current international settings from Excel.
E00129 ENH - 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 ENH - Creating a workbook New example code has been added to show how to create and populate a new workbook.
E00131 ENH - Creating a sheet New example code has been added to show how to create and populate a new sheet in an existing workbook.
E00132 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - CXlOper::GetLongString() A new function has been added, that supports retrieving string values which contain more than 255 characters.
E00144 ENH - CXlRef::MoveBy() A new function has been added, that supports adding a row and column offset to a range reference.
E00145 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - Serialization classes New serialization classes, CXlSerialData and CXlInputKey, have been added to help you store Excel data types.
E00102 ENH - 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 ENH - Cache sample A new sample, AvgOpt, has been added, to demonstrate the use of the CXlOperCache class.
E00104 ENH - 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 ENH - AppWizard cache option The AppWizard now offers an option to add a cache of type CXlOperCache to a new project's application class.
E00106 ENH - AppWizard overrides option The AppWizard now offers an option to add default implementations of OnXllOpenEx() and OnXllClose().
E00107 ENH - 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 ENH - FAQ The Frequently Asked Questions have been copied from the web-site to the on-line help.
E00109 ENH - Functions to get and set Calculation mode Two new functions, CXllApp::GetCalculationMode() and CXllApp::SetCalculationMode() have been added.
E00110 ENH - Integration sample A new advanced sample, Integration, had been added, which uses dialogs and macro functions to integrate functions in a workbook.
E00111 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - COper::ReadGroupItem replaces COper::ReadVectorItem COper::ReadGroupItem is now used in place of COper::ReadVectorItem in functions generated by the Function Wizard.
E00086 ENH - 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 ENH - 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 ENH - Advanced menu sample A new sample, SubMenus, has been added, to demonstrate how to add sub-menus and dynamic menus.
E00089 ENH - COM event handler interface A new simplified COM event handler interface, CXllApp::SetComEventHandler() has been added.
E00090 ENH - COM event handler documentation The COM event handler interfaces have all been documented.
E00091 ENH - 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 ENH - Walkthroughs for array results Two new walkthroughs have been added to demonstrate how to return array results from add-in functions.
E00093 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - .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 ENH - Walkthroughs A new section "Walkthroughs" containing task-oriented walkthroughs has been added to the XLL+ help.
E00076 ENH - 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 ENH - Extended attributes dialog A new dialog, listing extended function attributes,is available from the Edit menu of the XLL+ Function Wizard.
E00078 ENH - 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 ENH - 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 ENH - New string methods for CXllApp A new set of static methods, RetString(), have been added to CXllApp, to return string results to Excel.
E00056 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - New methods for cell formulae New methods CXlOper::GetFormula() and CXlOper::SetFormula() let you inspect and change formulae in spreadheet cells.
E00069 ENH - 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 ENH - New dialog classes New classes CXlDialog and CXlControl have been added, to support the use of native Excel dialogs.
E00071 ENH - 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 ENH - 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 ENH - 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 ENH - XllPush library added The XLLPUSH library, supporting asynchronous functions, was added. New files: XllPush.lib, XlpPush.h, XllPushApp.h, XlpMtMsg.h, XlpAsync.dll.
E00043 ENH - Asynchronous demos added Three new sample libraries were added, to demonstrate various uses of the XllPush library: MtBackground, MtCalc and MtFeed.
E00044 ENH - 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 ENH - New reference methods for CXlOper New methods for references have been added to CXlOper: SetValue(), MakeRef(), GetActiveCell() and SetActiveCell().
E00046 ENH - New reference methods for CXllApp New methods for references have been added to CXllApp: MakeSheetName(), SplitSheetName(), GetSheetId() and GetSheetName().
E00047 ENH - 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 ENH - New class CXllFinder A new class has been added, to support find and replace operations.
E00049 ENH - New sample application FindReplace A new sample application, FindReplace, shows how to use the CXllFinder class.
E00050 ENH - New chapter in user guide: Macro functions A new chapter on Macro functions has been added to the User Guide.
E00051 ENH - 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 ENH - New chapter in user guide: Writing safe functions A new chapter on exception handling has been added to the User Guide.
E00053 ENH - New sample application SafeCode A new sample application, SafeCode, shows how to protect your code with Structured Exception Handling.
E00054 ENH - 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 ENH - ::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 ENH - 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 ENH - 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 ENH - New method CXlArray::GetDims() This method was added to bring CXlArray in line with COper and CXlOper.
E00036 ENH - Technical Notes A new topic, "Comparison of COper, CXlOper and CXlArray" has been added to the Technical Notes.
E00037 ENH - 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 ENH - 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 ENH - 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 ENH - 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 ENH - 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