Call an add-in function directly, and store the result
[C++]
LPXLOPER CallAddin(
LPXLOPER lpxlopResult
);
The return value of an add-in function.
This function can be used to call an add-in function directly from another add-in function. The result of the call will be placed in the calling CXlOper instance.
For example:
extern "C" __declspec( dllexport ) LPXLOPER BsTheta(double Spot, BOOL Put, const COper* Div, double Borrow, double ImpVol, double Strike, long ValueDate, long Maturity, double RiskFree, short DayCount) { CXlOper xloResult; //}}XLP_SRC // Call the array version of the function CXlOper xloCalc; xloCalc.CallAddin(BsCalc(Spot, Put, Div, Borrow, ImpVol, Strike, ValueDate, Maturity, RiskFree, DayCount)); // Extract a cell from the array if (xloCalc.IsArray()) xloResult = xloCalc.Cell(6, 1); else xloResult = xloCalc; return xloResult.Ret(); }
See the SimpOpt sample for an example of the method in use.
This is the recommended way to call add-in functions directly. Any other method (such as simply copying the return value) may result in memory leaks.
Header: xllplus.h
CXlOper Class
| CXlOper Methods
| CXlOper::Ret()
| CXlOper::Excel()