XLL+ Class Library (6.3)

CXlOper::operator BOOL() Example

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

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

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

    BOOL bOk = TRUE;
    COper& opArg1 = *(COper*)Arg1;

    // These two lines could have condensed to one: 
    // xloResult = (BOOL)opArg1;
    BOOL b = opArg1;
    xloResult = b;

    return xloResult.Ret();
}

Uses

CXlOper::operator BOOL