I did check again for another Objector version, and i found one, however older than the one i sent you.
One is from june 2015, the other from october 2015 (the one from the zip). 

I am using the word "smooth zooming" by comparison with the smooth scrolling that was available in some windows controls (Listbox)
To better see what i call smooth zooming change both the 
maxK and 
ry parameters into the red code section.
    case WM_MOUSEWHEEL:
        if (GetFocus() != hWnd) { SetFocus(hWnd); }
        ry = float(HIINT(wParam)) / 120.0f * gP.rCameraPos[2] / CAMERA_FOVY;
        maxK = 2;
        if (gP.bEnableSmoothZoom) { // 10-12-2015
            //maxK = 11; ry = ry / 10;
            maxK = 25; ry = ry / 40.0f;
        }
//        nBreak += 1;
        for (K = 1; K < maxK; K++) {
            gP.rCameraPos[2] -= ry;
            if (gP.rCameraPos[2] > CAMERA_ZFAR - 1) {
                gP.rCameraPos[2] = CAMERA_ZFAR - 1;
            } else if (gP.rCameraPos[2] < CAMERA_ZNEAR) {
                gP.rCameraPos[2] = CAMERA_ZNEAR;
            }
            gl_AdjustNearPlane();
            gP.bRedraw = TRUE; // Redraw the OpenGL scene
            if (maxK > 2) { gl_DrawScene(); Sleep(0); }
        }
//        myDoEvents(gP.hMain);
//        nBreak = 0;
        break;The problem is that i am not sure that these values (working fine on my computer) would produce the same effect on others.
I could add inertia, changing the ry value within the loop.
But i want to get something working the same on all computers.