70#define TB_REFRESH_TIMER 1
71#define TB_REFRESH_DELAY 500
73#define TOOLTIP_OFFSET 2
75#define TB_DEFAULTPAGESIZE 20
80#define TB_THUMBPOSCHANGED 0x00000001
81#define TB_THUMBSIZECHANGED 0x00000002
82#define TB_THUMBCHANGED (TB_THUMBPOSCHANGED | TB_THUMBSIZECHANGED)
83#define TB_SELECTIONCHANGED 0x00000004
84#define TB_DRAG_MODE 0x00000008
85#define TB_AUTO_PAGE_LEFT 0x00000010
86#define TB_AUTO_PAGE_RIGHT 0x00000020
87#define TB_AUTO_PAGE (TB_AUTO_PAGE_LEFT | TB_AUTO_PAGE_RIGHT)
88#define TB_THUMB_HOT 0x00000040
91#define TB_USER_PAGE 0x00000080
92#define TB_IS_FOCUSED 0x00000100
96#define TIC_SELECTIONMARKMAX 0x80
97#define TIC_SELECTIONMARKMIN 0x100
98#define TIC_SELECTIONMARK (TIC_SELECTIONMARKMAX | TIC_SELECTIONMARKMIN)
162 if (!infoPtr->
tics) {
171 for (
i = 0;
i < nrTics;
i++, tic += infoPtr->
uTicFreq)
172 infoPtr->
tics[
i] = tic;
196 else if (pos < infoPtr->lRangeMin)
223 if (
PtInRect(&pageRect, clickPoint))
229 return clickPos - infoPtr->
lPos;
279 INT cyChannel, offsetthumb, offsetedge;
285 offsetedge = offsetthumb + 3;
288 channel->
top = lpRect.
top + offsetedge;
306 channel->
right = channel->
left + cyChannel;
308 channel->
left = lpRect.
left + offsetedge;
311 channel->
top = lpRect.
top + ((infoPtr->
uThumbLen - cyChannel + 2) / 2);
326 channel->
bottom = channel->
top + cyChannel;
337 thumbwidth = (infoPtr->
uThumbLen / 2) | 1;
396 if (newPos != oldPos)
534 else y +=
len * side;
570 int ticFlags = infoPtr->
dwStyle & 0x0f;
572 HPEN hOldPen, hTicPen;
621 PointDepth = (thumb->
bottom - thumb->
top) / 2;
655 PointDepth = (thumb->
right - thumb->
left) / 2;
661 points[1].y = thumb->
top + PointDepth + 1;
667 points[4].y = thumb->
top + PointDepth + 1;
757 thumb.
left += PointDepth;
761 thumb.
left -= PointDepth;
768 thumb.
top += PointDepth;
769 thumb.
bottom += PointDepth;
776 thumb.
right -= PointDepth;
781 thumb.
right += PointDepth + 1;
787 thumb.
top += PointDepth;
788 thumb.
bottom += PointDepth;
797 thumb.
top += PointDepth;
804 thumb.
top -= PointDepth;
808 thumb.
left += PointDepth;
809 thumb.
right += PointDepth;
815 thumb.
bottom -= PointDepth;
822 thumb.
bottom += PointDepth;
826 thumb.
left += PointDepth;
827 thumb.
right += PointDepth;
854 static const WCHAR fmt[] = {
'%',
'l',
'd', 0 };
898 HBITMAP hOldBmp = 0, hOffScreenBmp = 0;
1029 RECT rcSelf, rcBuddy;
1042 (rcBuddy.right - rcBuddy.left) / 2 + rcSelf.
left;
1043 y = rcSelf.
top - (rcBuddy.bottom - rcBuddy.top);
1046 x = rcSelf.
left - (rcBuddy.right - rcBuddy.left);
1048 (rcBuddy.bottom - rcBuddy.top) / 2 + rcSelf.
top;
1063 (rcBuddy.right - rcBuddy.left) / 2 + rcSelf.
left;
1069 (rcBuddy.bottom - rcBuddy.top) / 2 + rcSelf.
top;
1093 if (infoPtr->
tics) {
1133 TRACE(
"(a=%d, b=%d)\n",
a,
b);
1134 if (
a <
b)
return -1;
1135 if (
a >
b)
return 1;
1143 if ((iTic < 0) || (iTic >= infoPtr->
uNumTics) || !infoPtr->
tics)
1147 return infoPtr->
tics[iTic];
1157 if ((iTic < 0) || (iTic >= infoPtr->
uNumTics) || !infoPtr->
tics)
1217 if (lPageSize == -1)
1219 infoPtr->
flags &= ~TB_USER_PAGE;
1236 infoPtr->
lPos = lPosition;
1244 if (fPosition && oldPos != lPosition)
1290 if (infoPtr->
lPos > rightmost) {
1291 infoPtr->
lPos = rightmost;
1410 if ((lPos < infoPtr->lRangeMin) || (lPos> infoPtr->
lRangeMax))
1413 TRACE(
"lPos=%d\n", lPos);
1418 if (!infoPtr->
tics) {
1492 client_size =
rect.right -
rect.left;
1494 client_size =
rect.bottom -
rect.top;
1496 if (client_size < infoPtr->uThumbLen)
1503 infoPtr->
flags &= ~TB_SELECTIONCHANGED;
1515 if (!infoPtr)
return -1;
1586 infoPtr->
flags &= ~TB_IS_FOCUSED;
1610 if (
dir == 0)
return 0;
1627 infoPtr->
flags &= ~TB_DRAG_MODE;
1635 infoPtr->
flags &= ~TB_AUTO_PAGE;
1734 LONG dragPos, oldPos = infoPtr->
lPos;
1736 TRACE(
"(x=%d. y=%d)\n",
x,
y);
1757 tme.
cbSize =
sizeof( tme );
1766 tme.
cbSize =
sizeof( tme );
1770 infoPtr->
flags &= ~TB_THUMB_HOT;
1779 if (dragPos == oldPos)
return TRUE;
1781 infoPtr->
lPos = dragPos;
1799 TRACE(
"%x\n", nVirtKey);
1869 infoPtr->
dwStyle &= ~WS_DISABLED;
1912 return infoPtr->
lPos;
2031 infoPtr->
flags &= ~TB_THUMB_HOT;
2048 case WM_STYLECHANGED:
2051 case WM_THEMECHANGED:
static const char * wine_dbgstr_point(const POINT *ppt)
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
PVOID ReAlloc(IN DWORD dwFlags, IN PVOID lpMem, IN SIZE_T dwBytes)
PVOID Alloc(IN DWORD dwFlags, IN SIZE_T dwBytes)
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
COMCTL32_SysColor comctl32_color
HBRUSH COMCTL32_hPattern55AABrush
void __cdecl qsort(_Inout_updates_bytes_(_NumOfElements *_SizeOfElements) void *_Base, _In_ size_t _NumOfElements, _In_ size_t _SizeOfElements, _In_ int(__cdecl *_PtFuncCompare)(const void *, const void *))
static void TRACKBAR_DrawTic(const TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos, int flags)
static BOOL TRACKBAR_KeyDown(TRACKBAR_INFO *infoPtr, INT nVirtKey)
static LRESULT TRACKBAR_Paint(TRACKBAR_INFO *infoPtr, HDC hdc)
static LRESULT TRACKBAR_ClearTics(TRACKBAR_INFO *infoPtr, BOOL fRedraw)
static LRESULT TRACKBAR_SetPos(TRACKBAR_INFO *infoPtr, BOOL fPosition, LONG lPosition)
static LONG TRACKBAR_SetLineSize(TRACKBAR_INFO *infoPtr, LONG lLineSize)
static void TRACKBAR_InvalidateThumbMove(const TRACKBAR_INFO *infoPtr, LONG oldPos, LONG newPos)
static void TRACKBAR_DrawOneTic(const TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos, int flags)
static LRESULT TRACKBAR_SetSelEnd(TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lEnd)
#define TB_SELECTIONCHANGED
static LONG TRACKBAR_GetAutoPageDirection(const TRACKBAR_INFO *infoPtr, POINT clickPoint)
static LRESULT TRACKBAR_Create(HWND hwnd, const CREATESTRUCTW *lpcs)
static void TRACKBAR_DrawTics(const TRACKBAR_INFO *infoPtr, HDC hdc)
#define TIC_SELECTIONMARKMAX
static LRESULT TRACKBAR_GetChannelRect(const TRACKBAR_INFO *infoPtr, LPRECT lprc)
static void TRACKBAR_DrawChannel(const TRACKBAR_INFO *infoPtr, HDC hdc)
static INT TRACKBAR_SetTipSide(TRACKBAR_INFO *infoPtr, INT fLocation)
static LRESULT TRACKBAR_SetRange(TRACKBAR_INFO *infoPtr, BOOL redraw, LONG range)
static LRESULT TRACKBAR_CaptureChanged(const TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_MouseMove(TRACKBAR_INFO *infoPtr, INT x, INT y)
#define TIC_SELECTIONMARK
static LRESULT TRACKBAR_SetTicFreq(TRACKBAR_INFO *infoPtr, WORD wFreq)
static BOOL TRACKBAR_AutoPage(TRACKBAR_INFO *infoPtr, POINT clickPoint)
#define TB_THUMBSIZECHANGED
static void TRACKBAR_CalcThumb(const TRACKBAR_INFO *infoPtr, LONG lPos, RECT *thumb)
static void TRACKBAR_UpdatePageSize(TRACKBAR_INFO *infoPtr)
static LONG TRACKBAR_GetTicPos(const TRACKBAR_INFO *infoPtr, INT iTic)
#define TB_AUTO_PAGE_LEFT
static void TRACKBAR_LineDown(TRACKBAR_INFO *infoPtr)
static HWND TRACKBAR_SetBuddy(TRACKBAR_INFO *infoPtr, BOOL fLocation, HWND hwndBuddy)
static LRESULT TRACKBAR_Timer(TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_InitializeThumb(TRACKBAR_INFO *infoPtr)
static int __cdecl comp_tics(const void *ap, const void *bp)
static void notify_with_scroll(const TRACKBAR_INFO *infoPtr, UINT code)
static void TRACKBAR_InvalidateAll(const TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_SetThumbLength(TRACKBAR_INFO *infoPtr, UINT iLength)
static LRESULT TRACKBAR_SetFocus(TRACKBAR_INFO *infoPtr)
static int notify_customdraw(const TRACKBAR_INFO *infoPtr, NMCUSTOMDRAW *pnmcd, int stage)
#define TB_AUTO_PAGE_RIGHT
static LRESULT TRACKBAR_SetRangeMax(TRACKBAR_INFO *infoPtr, BOOL redraw, LONG lMax)
static LRESULT TRACKBAR_Size(TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_ClearSel(TRACKBAR_INFO *infoPtr, BOOL fRedraw)
static LRESULT WINAPI TRACKBAR_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static void TRACKBAR_DrawThumb(TRACKBAR_INFO *infoPtr, HDC hdc)
static const WCHAR themeClass[]
static LONG TRACKBAR_ConvertPlaceToPosition(const TRACKBAR_INFO *infoPtr, int place)
static LRESULT TRACKBAR_KillFocus(TRACKBAR_INFO *infoPtr)
#define TB_THUMBPOSCHANGED
static void TRACKBAR_ActivateToolTip(const TRACKBAR_INFO *infoPtr, BOOL fShow)
static void TRACKBAR_CalcSelection(TRACKBAR_INFO *infoPtr)
void TRACKBAR_Unregister(void)
static LRESULT TRACKBAR_SetTic(TRACKBAR_INFO *infoPtr, LONG lPos)
static LONG TRACKBAR_SetPageSize(TRACKBAR_INFO *infoPtr, LONG lPageSize)
void TRACKBAR_Register(void)
static void TRACKBAR_PageDown(TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_SetToolTips(TRACKBAR_INFO *infoPtr, HWND hwndTT)
static void TRACKBAR_InvalidateThumb(const TRACKBAR_INFO *infoPtr, LONG thumbPos)
static BOOL TRACKBAR_HasSelection(const TRACKBAR_INFO *infoPtr)
static void TRACKBAR_LineUp(TRACKBAR_INFO *infoPtr)
#define TB_DEFAULTPAGESIZE
static LRESULT TRACKBAR_Destroy(TRACKBAR_INFO *infoPtr)
static void TRACKBAR_AlignBuddies(const TRACKBAR_INFO *infoPtr)
static LRESULT notify_hdr(const TRACKBAR_INFO *infoPtr, INT code, LPNMHDR pnmh)
static LRESULT TRACKBAR_Enable(TRACKBAR_INFO *infoPtr, BOOL enable)
static LRESULT TRACKBAR_StyleChanged(TRACKBAR_INFO *infoPtr, WPARAM wStyleType, const STYLESTRUCT *lpss)
static void TRACKBAR_UpdateThumb(TRACKBAR_INFO *infoPtr)
static LONG TRACKBAR_GetNumTics(const TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_SetSel(TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lSel)
static BOOL TRACKBAR_SetUnicodeFormat(TRACKBAR_INFO *infoPtr, BOOL fUnicode)
static void TRACKBAR_CalcChannel(TRACKBAR_INFO *infoPtr)
static LONG TRACKBAR_GetTic(const TRACKBAR_INFO *infoPtr, INT iTic)
static BOOL TRACKBAR_KeyUp(const TRACKBAR_INFO *infoPtr, INT nVirtKey)
#define TIC_SELECTIONMARKMIN
static void TRACKBAR_Refresh(TRACKBAR_INFO *infoPtr, HDC hdcDst)
static LRESULT TRACKBAR_LButtonDown(TRACKBAR_INFO *infoPtr, INT x, INT y)
static void TRACKBAR_UpdateToolTip(const TRACKBAR_INFO *infoPtr)
static void TRACKBAR_RecalculateTics(TRACKBAR_INFO *infoPtr)
static int TRACKBAR_FillThumb(const TRACKBAR_INFO *infoPtr, HDC hdc, HBRUSH hbrush)
static int get_scaled_metric(const TRACKBAR_INFO *infoPtr, int value)
static void TRACKBAR_PageUp(TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_SetSelStart(TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lStart)
static LRESULT theme_changed(const TRACKBAR_INFO *infoPtr)
static LRESULT TRACKBAR_SetRangeMin(TRACKBAR_INFO *infoPtr, BOOL redraw, LONG lMin)
static LRESULT TRACKBAR_LButtonUp(TRACKBAR_INFO *infoPtr)
static const WCHAR indent[]
static void cleanup(void)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc)
HRESULT WINAPI GetThemeColor(HTHEME hTheme, int iPartId, int iStateId, int iPropId, COLORREF *pColor)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
HTHEME WINAPI GetWindowTheme(HWND hwnd)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
UINT WINAPI GetDpiForWindow(_In_ HWND hWnd)
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLboolean GLboolean GLboolean GLboolean a
GLsizei const GLfloat * points
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_Check_return_ _CRTIMP double __cdecl floor(_In_ double x)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
BOOL Polygon(CONST PPOINT UnsafePoints, int Count, int polyFillMode)
#define NM_RELEASEDCAPTURE
#define CDDS_ITEMPOSTPAINT
#define CDDS_ITEMPREPAINT
#define CDRF_NOTIFYITEMDRAW
#define CDRF_NOTIFYPOSTPAINT
#define TBM_GETCHANNELRECT
#define TTM_TRACKPOSITION
#define TBS_ENABLESELRANGE
#define TTM_UPDATETIPTEXTW
#define TBM_GETUNICODEFORMAT
#define TBM_SETUNICODEFORMAT
#define TBM_SETTHUMBLENGTH
#define TTM_TRACKACTIVATE
#define TTM_GETBUBBLESIZE
#define TBM_GETTHUMBLENGTH
void redraw(int x, int y, int cx, int cy)
void int int ULONGLONG int va_list * ap
HGDIOBJ WINAPI GetStockObject(_In_ int)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
HPEN WINAPI CreatePenIndirect(_In_ const LOGPEN *)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
int WINAPI SetPolyFillMode(_In_ HDC, _In_ int)
HWND WINAPI SetCapture(_In_ HWND hWnd)
DWORD WINAPI GetSysColor(_In_ int)
BOOL WINAPI CopyRect(_Out_ LPRECT, _In_ LPCRECT)
#define WM_CTLCOLORSTATIC
#define GetWindowLongPtrW
BOOL WINAPI ReleaseCapture(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CAPTURECHANGED
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
#define BF_DIAGONAL_ENDTOPRIGHT
BOOL WINAPI TrackMouseEvent(_Inout_ LPTRACKMOUSEEVENT)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI DrawEdge(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
HWND WINAPI SetFocus(_In_opt_ HWND)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
BOOL WINAPI UpdateWindow(_In_ HWND)
#define BF_DIAGONAL_ENDBOTTOMLEFT
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
HWND WINAPI GetParent(_In_ HWND)
#define BF_DIAGONAL_ENDBOTTOMRIGHT
_In_ int _Inout_ LPRECT lprc
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
BOOL WINAPI DrawFocusRect(_In_ HDC, _In_ LPCRECT)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define SetWindowLongPtrW
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define BF_DIAGONAL_ENDTOPLEFT
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList