handle example Handle use case.

## Description

This example shows how to get a handle variable and return it to Scilab.

## Gateway Source

    #include "api_scilab.h"

    int handleExample(char *fname,void* pvApiCtx)
    {
        SciErr sciErr;
        int* piAddr = NULL;
        int iType   = 0;
        int iRet    = 0;

        CheckInputArgument(pvApiCtx, 1, 1);
        CheckOutputArgument(pvApiCtx, 0, 1);

        sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
        if(sciErr.iErr)
        {
            printError(&sciErr, 0);
            return 0;
        }
        if(isHandleType(pvApiCtx, piAddr))
        {
            if(isScalar(pvApiCtx, piAddr))
            {
                long long llHandle = 0;
                iRet = getScalarHandle(pvApiCtx, piAddr, &llHandle);
                if(iRet)
                {
                    return 0;
                }
                iRet = createScalarHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, llHandle);
                if(iRet)
                {
                    return 0;
                }
            }
            else
            {
                int iRows	= 0;
                int iCols	= 0;
                long long *pllHandle = NULL;

                sciErr = getMatrixOfHandle(pvApiCtx, piAddr, &iRows, &iCols, &pllHandle);
                if(sciErr.iErr)
                {
                    printError(&sciErr, 0);
                    return 0;
                }

                sciErr = createMatrixOfHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pllHandle);
                if(sciErr.iErr)
                {
                    printError(&sciErr, 0);
                    return 0;
                }
            }
            AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
        }
        else
        {
            AssignOutputVariable(pvApiCtx, 1) = 0;
        }
        return 0;
    }

## Scilab test script

    a = %t;
    b = %f;
    c = [a,b;b,a;a,b;b,a];
    d = c';

    handleExample(a) == a
    handleExample(b) == b
    handleExample(c) == c
    handleExample(d) == d

# History

5.5.0 This function added in Scilab 5.5.0