void CStripDemoDlg::OnTimer(UINT nIDEvent)
{
double y,v[10][2];
short i=0;
VARIANT varray;
SAFEARRAY *psafearray;


    //Speed
    switch (Speed) {
        case 0: //normal
            x += 0.1;
            y = 8 * sin(x) + 3 * cos(x * 0.5);
            Strip.AddY(i, y);
            break;
        case 1: //fast
            for(i=0;i<15;i++) {
                x += 0.1;
                y = 8 * sin(x) + 3 * cos(x * 0.5);
                Strip.AddY((short) 0, y);
                }             break;
        case 2: //really fast
            psafearray = (SAFEARRAY *) new char[sizeof(SAFEARRAY) 
            		+ sizeof(SAFEARRAYBOUND)];
            psafearray->cDims = 2;
            psafearray->cbElements = 8;
            psafearray->rgsabound[0].cElements = 10;
            psafearray->rgsabound[0].lLbound = 0;
            psafearray->rgsabound[1].cElements = 2;
            psafearray->rgsabound[1].lLbound = 0;
            psafearray->pvData = (void *) v;

            varray.vt = VT_ARRAY | VT_R8;
    	    varray.parray = psafearray;

            for(i=0;i<10;i++){
                x += 0.1;
                v[i][0] = x * 10.;
                v[i][1] = 8 * sin(x) + 3 * cos(x * 0.5);
                }

            Strip.AddXYArray((short) 0, &varray);
            break;
        }

    CDialog::OnTimer(nIDEvent);
}