ScrollDocVert method

The document data is vertically scrolled as indicated by Type and the current scroll position is returned in the variable pointed to by pPosition.

Method
short ScrollDocVert(
short Type,
VARIANT * pPosition )
Parameters
Type
Specifies a scroll bar code that identifies the type of scrolling required. This must be one of the following scroll types found in ARSOLEEX.H:
  ARS_OLE_SCROLL_LINEUP
  ARS_OLE_SCROLL_LINEDOWN
  ARS_OLE_SCROLL_PAGEUP
  ARS_OLE_SCROLL_PAGEDOWN
  ARS_OLE_SCROLL_TOP
  ARS_OLE_SCROLL_BOTTOM
  ARS_OLE_SCROLL_THUMBPOSITION
  ARS_OLE_SCROLL_THUMBTRACK
  ARS_OLE_SCROLL_ENDSCROLL
pPosition
Points to a variable that contains and/or will contain the scroll position. When Type is ARS_OLE_SCROLL_THUMBPOSITION or ARS_OLE_SCROLL_THUMBTRACK, the variable must contain the position to which to scroll. For all types, on return this variable contains the current scroll position. This variable should be set to type VT_I2.
Description
On input and on return, the position value assumes that the vertical scroll range has been set to ARS_OLE_SCROLL_RANGE. If a different value is used, the units should be converted before and after the call.
Return Value
Refer to return codes.
See Also
ScrollDocHorz method

C/C + +

The following example initializes the vertical scroll bar range and processes WM_VSCROLL messages.
 CArsOle * pArsCtrl;
 CScrollBar * pVertScrollBar;
 short rc, scroll_code;
 VARIANT scroll_position;
   .
   .
 // During initialization:

 pVertScrollBar->SetScrollRange( 0, ARS_OLE_SCROLL_RANGE );
 pVertScrollBar->ShowScrollBar( TRUE );

 // While processing a WM_VSCROLL message:

 scroll_code = (short)LOWORD(wParam);

 switch ( scroll_code )
 {
   case SB_LINEUP:
     scroll_code = ARS_OLE_SCROLL_LINEUP;
     break;
   case SB_LINEDOWN:
     scroll_code = ARS_OLE_SCROLL_LINEDOWN;
     break;
   case SB_PAGEUP:
     scroll_code = ARS_OLE_SCROLL_PAGEUP;
     break;
   case SB_PAGEDOWN:
     scroll_code = ARS_OLE_SCROLL_PAGEDOWN;
     break;
   case SB_TOP:
     scroll_code = ARS_OLE_SCROLL_TOP;
     break;
   case SB_BOTTOM:
     scroll_code = ARS_OLE_SCROLL_BOTTOM;
     break;
   case SB_THUMBPOSITION:
     scroll_code = ARS_OLE_SCROLL_THUMBPOSITION;
     break;
   case SB_THUMBTRACK:
     scroll_code = ARS_OLE_SCROLL_THUMBTRACK;
     break;
   default:
     scroll_code = ARS_OLE_SCROLL_ENDSCROLL;
 }
   .
   .
   .
   .
 if ( scroll_code == (short)ARS_OLE_SCROLL_THUMBPOSITION ||
      scroll_code == (short)ARS_OLE_SCROLL_THUMBTRACK )
 {
   scroll_position.vt = VT_I2;
   scroll_position.iVal = (short)HIWORD(wParam);
 }

 rc = pArsCtrl->ScrollDocVert( scroll_code, &scroll_position );
 if ( rc != ARS_OLE_RC_SUCCESS )
   ERROR;

 pVertScrollBar->SetScrollPos( (int)scroll_position.iVal );
   .
   .

Visual Basic

Dim rc As Integer
Dim scroll_pos, required As Variant

 .
 .

' During initialization

sbVert.Min = 0
sbVert.Max = ARS_OLE_SCROLL_RANGE
sbVert.Visible = True

 .
 .

' During scroll bar Change method

Private Sub sbVert_Change()
    Dim Diff As Integer
    Dim rc As Integer
    Dim ScrollCode As Integer
    Dim NewPos As Variant
    NewPos = 0
    Diff = sbVert.Value - VertScrollOld
    If Diff = sbVert.LargeChange Then
        ScrollCode = ARS_OLE_SCROLL_PAGEDOWN
        rc = ArsOle.ScrollDocVert(ScrollCode, NewPos)
        VertScrollOld = NewPos
        sbVert.Value = NewPos
    ElseIf Diff = -sbVert.LargeChange Then
        ScrollCode = ARS_OLE_SCROLL_PAGEUP
        rc = ArsOle.ScrollDocVert(ScrollCode, NewPos)
        VertScrollOld = NewPos
        sbVert.Value = NewPos
    ElseIf Diff = sbVert.SmallChange Then
        ScrollCode = ARS_OLE_SCROLL_LINEDOWN
        rc = ArsOle.ScrollDocVert(ScrollCode, NewPos)
        VertScrollOld = NewPos
        sbVert.Value = NewPos
    ElseIf Diff = -sbVert.SmallChange Then
        ScrollCode = ARS_OLE_SCROLL_LINEUP
        rc = ArsOle.ScrollDocVert(ScrollCode, NewPos)
        VertScrollOld = NewPos
        sbVert.Value = NewPos
    Else
        ScrollCode = ARS_OLE_SCROLL_THUMBPOSITION
        NewPos = sbVert.Value
        rc = ArsOle.ScrollDocVert(ScrollCode, NewPos)
        VertScrollOld = sbVert.Value
    End If
End Sub