I found this code on the other side:
void ArxZoom(ads_point pt, double magnf)
{
AcDbViewTableRecord view;
struct resbuf rb;
struct resbuf wcs, dcs, ccs; // acedTrans coord system flags
ads_point vpDir;
ads_point ptmax;
AcGeVector3d viewDir;
AcGePoint2d cenPt;
ads_real lenslength, viewtwist, frontz, backz;
ads_point target;
int /*viewmode,*/tilemode, cvport; // Get window to zoom to:
wcs.restype = RTSHORT; // WORLD coord system flag
wcs.resval.rint = 0;
ccs.restype = RTSHORT; // CURRENT coord system flag
ccs.resval.rint = 1;
dcs.restype = RTSHORT; // DEVICE coord system flag
dcs.resval.rint = 2; // Get the VPOINT' direction vector
acedGetVar("VIEWDIR", &rb);
acedTrans(rb.resval.rpoint, &ccs, &wcs, 0, vpDir);
viewDir.set(vpDir[X], vpDir[Y], vpDir[Z]);
acedTrans(pt, &ccs, &dcs, 0, ptmax);
// set center point of view
cenPt[X] = ptmax[X];
cenPt[Y] = ptmax[Y];
view.setCenterPoint(cenPt);
view.setHeight(magnf*1.2);
view.setWidth(magnf*1.2);
view.setViewDirection(viewDir);
// get and set other properties
acedGetVar("LENSLENGTH", &rb);
lenslength = rb.resval.rreal;
view.setLensLength(lenslength);
acedGetVar("VIEWTWIST", &rb);
viewtwist = rb.resval.rreal;
view.setViewTwist(viewtwist);
acedGetVar("FRONTZ", &rb);
frontz = rb.resval.rreal;
acedGetVar("BACKZ", &rb);
backz = rb.resval.rreal;
view.setPerspectiveEnabled(false);
view.setFrontClipEnabled(false);
view.setBackClipEnabled(false);
view.setFrontClipAtEye(false);
acedGetVar("TILEMODE", &rb);
tilemode = rb.resval.rint;
acedGetVar("CVPORT", &rb);
cvport = rb.resval.rint;
// Paperspace flag
bool paperspace = ((tilemode == 0) && (cvport == 1)) ? Adesk::kTrue:Adesk::kFalse;
view.setIsPaperspaceView(paperspace);
if (Adesk::kFalse == paperspace) {
view.setFrontClipDistance(frontz);
view.setBackClipDistance(backz);
}
else{
view.setFrontClipDistance(0.0);
view.setBackClipDistance(0.0);
}
acedGetVar("TARGET", &rb);
acedTrans(rb.resval.rpoint,&ccs, &wcs, 0, target);
view.setTarget(AcGePoint3d(target[X], target[Y], target[Z]));
// update view
acedSetCurrentView(&view, NULL);
}
Might be useful...