XLL+ Class Library (6.3)

CXlOper::operator double() Example

CopyC++
//{{XLP_SRC(OperCastToDoubleExample) 
    // NOTE - the FunctionWizard will add and remove mapping code here. 
    //    DO NOT EDIT what you see in these blocks of generated code!
IMPLEMENT_XLLFN3(OperCastToDoubleExample, OperCastToDoubleExample_4, 
    OperCastToDoubleExample_12, "RP", "UQ", L"OperCastToDoubleExample", 0, 
    L"Arg1", 0, L"Example", 0, L"Demonstrates casting a COper to a double", 0, 
    L"Argument 1\0", 0, 0, L"{OperCastToDoubleExample,,,Demonstrates casting a"
    L" COper to a double,Example,1,128,U,{{0,{Arg1,Value,0,,Argument 1,,,,}}},"
    L"{},3,,0,0}", 1)
CXlOper* OperCastToDoubleExample_Impl(CXlOper&, const CXlOper*);

extern "C" __declspec(dllexport)
LPXLOPER12 OperCastToDoubleExample_12(LPXLOPER12 Arg1)
{
    XLL_FIX_STATE;
    CXlOper xloResult, Arg1__port(Arg1);
    try {
        CXlStructuredExceptionHandler _seh_;
        xloResult.HandleResult(OperCastToDoubleExample_Impl(xloResult, &
            Arg1__port));
    }
    catch(const CXlRuntimeException& ex) {
        CXllApp::Instance()->DisplayException(xloResult, ex);
    }
    return xloResult.Ret12();
}
extern "C" __declspec(dllexport)
LPXLOPER4 OperCastToDoubleExample_4(LPXLOPER4 Arg1)
{
    XLL_FIX_STATE;
    CXlOper xloResult, Arg1__port(Arg1);
    try {
        CXlStructuredExceptionHandler _seh_;
        xloResult.HandleResult(OperCastToDoubleExample_Impl(xloResult, &
            Arg1__port));
    }
    catch(const CXlRuntimeException& ex) {
        CXllApp::Instance()->DisplayException(xloResult, ex);
    }
    return xloResult.Ret4();
}

CXlOper* OperCastToDoubleExample_Impl(CXlOper& xloResult, const CXlOper* Arg1)
{
    // End of generated code 
//}}XLP_SRC

    BOOL bOk = TRUE;

    // These two lines could have condensed to one: 
    // xloResult = (double)opArg1; 
    double d = *Arg1;
    xloResult = d;

    return xloResult.Ret();
}

Uses

CXlOper::operator double