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);
}