Update of /cvsroot/objecthandler/ObjectHandler/ohxl
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv2862/ohxl
Modified Files:
conversions.cpp conversions.hpp
Log Message:
make Excel function fail if trigger parameter is #NA/#VALUE/#ERR
Index: conversions.cpp
===================================================================
RCS file: /cvsroot/objecthandler/ObjectHandler/ohxl/conversions.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** conversions.cpp 20 Jun 2006 18:26:41 -0000 1.6
--- conversions.cpp 13 Jul 2006 10:35:39 -0000 1.7
***************
*** 24,27 ****
--- 24,45 ----
namespace ObjHandler {
+ void validateMulti(const OPER *xMulti) {
+ for (int i=0; i<xMulti->val.array.rows * xMulti->val.array.columns; i++)
+ if (xMulti->val.array.lparray[i].xltype == xltypeErr)
+ throw Exception("trigger parameter has error value");
+ }
+
+ DLL_API void validateTrigger(const OPER *xTrigger) {
+ if (xTrigger->xltype == xltypeErr) {
+ throw Exception("trigger parameter has error value");
+ } else if (xTrigger->xltype == xltypeMulti) {
+ validateMulti(xTrigger);
+ } else if (xTrigger->xltype == xltypeRef || xTrigger->xltype == xltypeSRef) {
+ XLOPER xMulti;
+ Excel(xlCoerce, &xMulti, 1, &xTemp, TempInt(xltypeMulti));
+ validateMulti(&xMulti);
+ }
+ }
+
DLL_API void stringToChar(char *c, const std::string &value) {
int len = __min(XL_MAX_STR_LEN, value.length());
Index: conversions.hpp
===================================================================
RCS file: /cvsroot/objecthandler/ObjectHandler/ohxl/conversions.hpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** conversions.hpp 14 Jun 2006 13:15:25 -0000 1.9
--- conversions.hpp 13 Jul 2006 10:35:39 -0000 1.10
***************
*** 28,31 ****
--- 28,32 ----
namespace ObjHandler {
+ DLL_API void validateTrigger(const OPER *xTrigger);
DLL_API void stringToChar(char *c, const std::string &s);
void operToOper(OPER *xTarget, const OPER *xSource);
|