[ObjectHandler-cvs] ObjectHandler/ohxl/Functions manual.cpp, 1.10, 1.11
Brought to you by:
ericehlers,
nando
From: Eric E. <eri...@us...> - 2006-12-08 14:46:15
|
Update of /cvsroot/objecthandler/ObjectHandler/ohxl/Functions In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv10559/ohxl/Functions Modified Files: manual.cpp Log Message: implement ohDependsOn2() as a possible replacement for ohDependsOn() Index: manual.cpp =================================================================== RCS file: /cvsroot/objecthandler/ObjectHandler/ohxl/Functions/manual.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** manual.cpp 5 Dec 2006 11:55:18 -0000 1.10 --- manual.cpp 8 Dec 2006 14:46:13 -0000 1.11 *************** *** 59,62 **** --- 59,72 ---- } + void validateReference(const XLOPER *xReference, const std::string &name) { + if (xReference->xltype != xltypeMissing + && xReference->xltype != xltypeRef + && xReference->xltype != xltypeSRef) { + std::ostringstream msg; + msg << "parameter '" << name << "' is not a valid range reference"; + throw ObjHandler::Exception(msg.str()); + } + } + XLL_DEC long *ohDependsOn( XLOPER *dummy0, *************** *** 85,99 **** ObjHandler::ObjectHandlerXL::instance().resetCaller(); ! // invoke the utility function ! ObjHandler::validateReference(dummy0, "dummy0"); ! ObjHandler::validateReference(dummy1, "dummy1"); ! ObjHandler::validateReference(dummy2, "dummy2"); ! ObjHandler::validateReference(dummy3, "dummy3"); ! ObjHandler::validateReference(dummy4, "dummy4"); ! ObjHandler::validateReference(dummy5, "dummy5"); ! ObjHandler::validateReference(dummy6, "dummy6"); ! ObjHandler::validateReference(dummy7, "dummy7"); ! ObjHandler::validateReference(dummy8, "dummy8"); ! ObjHandler::validateReference(dummy9, "dummy9"); static std::map<std::string, long> iterators; --- 95,108 ---- ObjHandler::ObjectHandlerXL::instance().resetCaller(); ! validateReference(dummy0, "dummy0"); ! validateReference(dummy1, "dummy1"); ! validateReference(dummy2, "dummy2"); ! validateReference(dummy3, "dummy3"); ! validateReference(dummy4, "dummy4"); ! validateReference(dummy5, "dummy5"); ! validateReference(dummy6, "dummy6"); ! validateReference(dummy7, "dummy7"); ! validateReference(dummy8, "dummy8"); ! validateReference(dummy9, "dummy9"); static std::map<std::string, long> iterators; *************** *** 111,114 **** --- 120,163 ---- } + void validateReference2(const XLOPER *xReference, const std::string &name) { + if (xReference->xltype == xltypeErr && xReference->val.err == xlerrRef) { + std::ostringstream msg; + msg << "parameter '" << name << "' is not a valid range reference"; + throw ObjHandler::Exception(msg.str()); + } + } + + XLL_DEC long *ohDependsOn2( + XLOPER *dummy0, + XLOPER *dummy1, + XLOPER *dummy2, + XLOPER *dummy3, + XLOPER *dummy4, + XLOPER *dummy5, + XLOPER *dummy6, + XLOPER *dummy7, + XLOPER *dummy8, + XLOPER *dummy9) { + try { + validateReference2(dummy0, "dummy0"); + validateReference2(dummy1, "dummy1"); + validateReference2(dummy2, "dummy2"); + validateReference2(dummy3, "dummy3"); + validateReference2(dummy4, "dummy4"); + validateReference2(dummy5, "dummy5"); + validateReference2(dummy6, "dummy6"); + validateReference2(dummy7, "dummy7"); + validateReference2(dummy8, "dummy8"); + validateReference2(dummy9, "dummy9"); + + static long returnValue = 0; + returnValue++; + return &returnValue; + } catch (const std::exception &e) { + ObjHandler::logMessage(e.what(), 2); + return 0; + } + } + XLL_DEC long *ohFunctionCount() { static long returnValue = FUNCTION_COUNT; |