You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
2.6 KiB
112 lines
2.6 KiB
/**************************** Module Header ********************************\
|
|
* Module Name:
|
|
*
|
|
* Copyright (c) 1985 - 1999, Microsoft Corporation
|
|
*
|
|
* Scroll bar public APIs
|
|
*
|
|
* History:
|
|
* 08-16-95 FritzS
|
|
\***************************************************************************/
|
|
|
|
#include "precomp.h"
|
|
#pragma hdrstop
|
|
|
|
|
|
WINUSERAPI
|
|
BOOL
|
|
WINAPI
|
|
EnableScrollBar(
|
|
IN HWND hWnd,
|
|
IN UINT wSBflags,
|
|
IN UINT wArrows)
|
|
{
|
|
BOOL ret;
|
|
|
|
BEGIN_USERAPIHOOK()
|
|
ret = guah.pfnEnableScrollBar(hWnd, wSBflags, wArrows);
|
|
END_USERAPIHOOK()
|
|
|
|
return ret;
|
|
}
|
|
|
|
|
|
BOOL RealEnableScrollBar(
|
|
IN HWND hWnd,
|
|
IN UINT wSBflags,
|
|
IN UINT wArrows)
|
|
{
|
|
return NtUserEnableScrollBar(hWnd, wSBflags, wArrows);
|
|
}
|
|
|
|
|
|
|
|
/***************************************************************************\
|
|
* SetScrollPos
|
|
*
|
|
* History:
|
|
\***************************************************************************/
|
|
|
|
|
|
FUNCLOG4(LOG_GENERAL, int, DUMMYCALLINGTYPE, SetScrollPos, HWND, hwnd, int, code, int, pos, BOOL, fRedraw)
|
|
int SetScrollPos(
|
|
HWND hwnd,
|
|
int code,
|
|
int pos,
|
|
BOOL fRedraw)
|
|
{
|
|
SCROLLINFO si;
|
|
|
|
si.fMask = SIF_POS | SIF_RETURNOLDPOS;
|
|
si.nPos = pos;
|
|
si.cbSize = sizeof(SCROLLINFO);
|
|
|
|
return((int) SetScrollInfo(hwnd, code, &si, fRedraw));
|
|
}
|
|
|
|
|
|
/***************************************************************************\
|
|
* SetScrollRange
|
|
*
|
|
* History:
|
|
* 16-May-1991 mikeke Changed to return BOOL
|
|
\***************************************************************************/
|
|
|
|
|
|
FUNCLOG5(LOG_GENERAL, BOOL, DUMMYCALLINGTYPE, SetScrollRange, HWND, hwnd, int, code, int, posMin, int, posMax, BOOL, fRedraw)
|
|
BOOL SetScrollRange(
|
|
HWND hwnd,
|
|
int code,
|
|
int posMin,
|
|
int posMax,
|
|
BOOL fRedraw)
|
|
{
|
|
SCROLLINFO si;
|
|
|
|
/*
|
|
* Validate the window handle first, because the further call
|
|
* to NtUserSetScrollInfo will return the position of the scrollbar
|
|
* and not FALSE if the hwnd is invalid
|
|
*/
|
|
if ( ValidateHwnd((hwnd)) == NULL)
|
|
return FALSE;
|
|
|
|
/*
|
|
* Check if the 'Range'(Max - Min) can be represented by an integer;
|
|
* If not, it is an error;
|
|
* Fix for Bug #1089 -- SANKAR -- 20th Sep, 1989 --.
|
|
*/
|
|
if ((unsigned int)(posMax - posMin) > MAXLONG) {
|
|
RIPERR0(ERROR_INVALID_SCROLLBAR_RANGE, RIP_VERBOSE, "");
|
|
return FALSE;
|
|
}
|
|
|
|
si.fMask = SIF_RANGE;
|
|
si.nMin = posMin;
|
|
si.nMax = posMax;
|
|
si.cbSize = sizeof(SCROLLINFO);
|
|
|
|
SetScrollInfo(hwnd, code, &si, fRedraw);
|
|
|
|
return TRUE;
|
|
}
|