77#include "wine/unicode.h"
203#define SEPARATOR_WIDTH 8
205#define BOTTOM_BORDER 2
206#define DDARROW_WIDTH 11
207#define ARROW_HEIGHT 3
208#define INSERTMARK_WIDTH 2
230#define NONLIST_NOTEXT_OFFSET 2
232#define TOOLBAR_NOWHERE (-1)
235#define TBSTYLE_EX_ALL (TBSTYLE_EX_DRAWDDARROWS | \
236 TBSTYLE_EX_VERTICAL | \
237 TBSTYLE_EX_MIXEDBUTTONS | \
238 TBSTYLE_EX_DOUBLEBUFFER | \
239 TBSTYLE_EX_HIDECLIPPEDBUTTONS)
242#define COMMON_STYLES (CCS_TOP|CCS_NOMOVEY|CCS_BOTTOM|CCS_NORESIZE| \
243 CCS_NOPARENTALIGN|CCS_ADJUSTABLE|CCS_NODIVIDER|CCS_VERT)
245#define GETIBITMAP(infoPtr, i) (infoPtr->iVersion >= 5 ? LOWORD(i) : i)
246#define GETHIMLID(infoPtr, i) (infoPtr->iVersion >= 5 ? HIWORD(i) : 0)
247#define GETDEFIMAGELIST(infoPtr, id) TOOLBAR_GetImageList(infoPtr->himlDef, infoPtr->cimlDef, id)
248#define GETHOTIMAGELIST(infoPtr, id) TOOLBAR_GetImageList(infoPtr->himlHot, infoPtr->cimlHot, id)
249#define GETDISIMAGELIST(infoPtr, id) TOOLBAR_GetImageList(infoPtr->himlDis, infoPtr->cimlDis, id)
273 return infoPtr->szBarPadding.cy;
316 TRACE(
"TBBUTTON: id %d, bitmap=%d, state=%02x, style=%02x, data=%p, stringid=%p (%s)\n", tbb->
idCommand,
325 TRACE(
"button %d id %d, bitmap=%d, state=%02x, style=%02x, data=%08lx, stringid=0x%08lx\n",
329 TRACE(
"button %d id %d, hot=%s, row=%d, rect=(%s)\n",
342 TRACE(
"toolbar %p at line %d, exStyle=%08x, buttons=%d, bitmaps=%d, strings=%d, style=%08x\n",
346 TRACE(
"toolbar %p at line %d, himlInt=%p, himlDef=%p, himlHot=%p, himlDis=%p, redrawable=%s\n",
404 FIXME(
"[%p] TBSTYLE_REGISTERDROP not implemented\n", infoPtr->
hwndSelf);
419 (infoPtr->
bUnicode) ?
"via Unicode" :
"via ANSI");
441 memset(&nmgd, 0,
sizeof(nmgd));
451 TRACE(
"TBN_GETDISPINFO returned bitmap id %d, mask=%08x, nNumBitmaps=%d\n",
500 WARN(
"bitmap for ID %d, index %d is not valid, number of bitmaps in imagelist: %d\n",
508 ERR(
"TBN_GETDISPINFO returned invalid index %d\n",
526 FIXME(
"Shouldn't reach here\n");
530 TRACE(
"no image list\n");
649 DWORD dwDTFlags = TOOLBAR_GetButtonDTFlags(infoPtr, btnPtr);
661 DWORD dwDTFlags2 = 0;
668 dwDTFlags2 = DTT_GRAYED;
677 DrawThemeText(theme,
hdc, partId, stateId, lpText, -1, dwDTFlags, dwDTFlags2, rcText);
750 HDC hdcMask, hdcImage;
759 RGB(0xff, 0xff, 0xff),
RGB(0,0,0), draw_flags);
829 if (bm.bmBitsPixel == 32)
831 draw_desaturated =
TRUE;
866 TRACE(
"drawing index=%d, himl=%p, left=%d, top=%d, offset=%d\n",
874 else if (draw_desaturated)
879 imldp.
cbSize =
sizeof(imldp);
910 BOOL pressed_look = !non_interactive_state &&
940 BOOL pressed = bDropDownPressed ||
979 BOOL drawSepDropDownArrow = hasDropDownArrow &&
981 RECT rc, rcArrow, rcBitmap, rcText;
987 DWORD dwItemCustDraw;
1019 FIXME(
"Draw some kind of separator: fsStyle=%x\n",
1028 if (hasDropDownArrow)
1037 if (drawSepDropDownArrow)
1040 rcArrow.left =
right;
1061 rcBitmap.left += ((rc.right - rc.left) - infoPtr->
nBitmapWidth) / 2;
1065 rcBitmap.top += infoPtr->themeMargins.cyTopHeight;
1068 TRACE(
"iBitmap=%d, start=(%d,%d) w=%d, h=%d\n",
1069 btnPtr->
iBitmap, rcBitmap.left, rcBitmap.top,
1129 dwItemCustDraw = ntfret & 0xffff;
1130 dwItemCDFlag = ntfret & 0xffff0000;
1155 if (hasDropDownArrow)
1194 if (drawSepDropDownArrow)
1229 TOOLBAR_DrawImage(infoPtr, btnPtr, rcBitmap.left, rcBitmap.top, &tbcd, dwItemCDFlag);
1231 if (hasDropDownArrow && !drawSepDropDownArrow)
1278 RECT rcTemp, rcClient;
1281 DWORD dwBaseCustDraw;
1307 dwBaseCustDraw = ntfret & 0xffff;
1336 rcInsertMark.
top = rcButton.
top;
1383 if(lpText !=
NULL) {
1401 TRACE(
"string size %d x %d!\n", lpSize->
cx, lpSize->
cy);
1433 lpSize->
cy =
tm.tmHeight;
1441 if (sz.
cx > lpSize->
cx)
1443 if (sz.
cy > lpSize->
cy)
1451 TRACE(
"max string size %d x %d\n", lpSize->
cx, lpSize->
cy);
1491 bButtonWrap =
FALSE;
1493 TRACE(
"start ButtonWidth=%d, BitmapWidth=%d, width=%d, nIndent=%d\n",
1499 btnPtr[
i].
fsState &= ~TBSTATE_WRAP;
1504 if (btnPtr[
i].
cx > 0)
1507 else if ((btnPtr[
i].fsStyle &
BTNS_SEP) &&
1524 TRACE(
"wrap point 1 btn %d style %02x\n",
i, btnPtr[
i].fsStyle);
1528 bButtonWrap =
FALSE;
1543 while( ( ((btnPtr[
i].fsStyle &
BTNS_SEP) &&
1546 i < infoPtr->nNumButtons )
1552 if( bFound && i < infoPtr->nNumButtons )
1555 TRACE(
"wrap point 2 btn %d style %02x, x=%d, cx=%d\n",
1556 i, btnPtr[
i].fsStyle,
x,
cx);
1559 bButtonWrap =
FALSE;
1574 TRACE(
"wrap point 3 btn %d style %02x, x=%d, cx=%d\n",
1575 i, btnPtr[
i].fsStyle,
x,
cx);
1578 bButtonWrap =
FALSE;
1595 TRACE(
"wrap point 4 btn %d style %02x, x=%d, cx=%d\n",
1596 i, btnPtr[
i].fsStyle,
x,
cx);
1607 TRACE(
"wrap point 5 btn %d style %02x, x=%d, cx=%d\n",
1608 i, btnPtr[
i].fsStyle,
x,
cx);
1612 bButtonWrap =
FALSE;
1618 TRACE(
"wrap point 6 btn %d style %02x, x=%d, cx=%d\n",
1619 i, btnPtr[
i].fsStyle,
x,
cx);
1735 BOOL bHasBitmap,
BOOL bValidImageList)
1745 if (bValidImageList)
1763 if (sizeString.
cx > 0)
1776 if (sizeString.
cy > 0)
1777 sizeButton.
cy += 1 + sizeString.
cy;
1791 sizeButton.
cx += infoPtr->themeMargins.cxLeftWidth + infoPtr->themeMargins.cxRightWidth;
1792 sizeButton.
cy += infoPtr->themeMargins.cyTopHeight + infoPtr->themeMargins.cyBottomHeight;
1812 SIZE sizeString, sizeButton;
1820 validImageList =
TRUE;
1851 nRows = nSepRows = 0;
1880 cx = (btnPtr->
cx > 0) ? btnPtr->
cx :
1939 TRACE(
"button %d style=%x, bWrap=%d, nRows=%d, nSepRows=%d, btnrow=%d, (%d,%d)-(%d,%d)\n",
1947 y +=
cy + infoPtr->szSpacing.cy;
1954 y +=
cy + ( (btnPtr->
cx > 0 ) ?
1958 y +=
cy + infoPtr->szSpacing.cy;
1976 x +=
cx + infoPtr->szSpacing.cx;
2005 TRACE(
" ON SEPARATOR %d\n",
i);
2011 TRACE(
" ON BUTTON %d\n",
i);
2019 TRACE(
" NOWHERE\n");
2028 INT nOldButtons, nNewButtons, iButton;
2035 nNewButtons = nOldButtons + nAddButtons;
2043 for (iButton = 0; iButton < nAddButtons; iButton++) {
2085 if (CommandIsIndex) {
2086 TRACE(
"command is really index command=%d\n", idCommand);
2093 TRACE(
"command=%d index=%d\n", idCommand,
i);
2097 TRACE(
"no index found for command=%d\n", idCommand);
2108 if ((nIndex < 0) || (nIndex > infoPtr->
nNumButtons))
2112 btnPtr = &infoPtr->
buttons[nIndex];
2119 nRunIndex = nIndex - 1;
2120 while (nRunIndex >= 0) {
2121 btnPtr = &infoPtr->
buttons[nRunIndex];
2132 nRunIndex = nIndex + 1;
2133 while (nRunIndex < infoPtr->nNumButtons) {
2134 btnPtr = &infoPtr->
buttons[nRunIndex];
2272 TRACE(
"index from %d, index to %d\n", nIndexFrom, nIndexTo);
2274 if (nIndexFrom == nIndexTo)
2279 nmtb.
iItem = nIndexFrom;
2300 if (nIndexTo >= (
count - 2))
2316 TRACE(
"Add: nIndexAvail %d, nIndexTo %d\n", nIndexAvail, nIndexTo);
2320 nmtb.
iItem = nIndexAvail;
2331 if (nIndexAvail != 0)
2335 if (nIndexAvail ==
count-1)
2401 if (nCurrentItem >= (nCount - 1))
return FALSE;
2409 if ((nCurrentItem >= 0) && (nCurrentItem < (nCount - 1)))
2417 if (nCurrentItem < 0)
2436 if ((nIndexTo >= 0) && (nIndexTo < (nCount - 1)))
2478 if ((nCurrentItem >= 0) && (nCurrentItem < nCount))
2486 if (nCurrentItem < 0)
2505 if ((nIndexTo >= 0) && (nIndexTo < nCount))
2548 infoPtr = custInfo->tbInfo;
2551 nmtb.
iItem = custInfo->tbInfo->nNumButtons;
2561 TRACE(
"TBNRF_HIDEHELP requested\n");
2566 for (
i = 0;
i < custInfo->tbInfo->nNumButtons;
i++)
2608 TRACE(
"WM_INITDIALOG style: %x iItem(%d) idCommand(%d) iString(%ld) %s\n",
2620 btnInfo->bVirtual =
FALSE;
2621 btnInfo->bRemovable =
TRUE;
2655 btnInfo->bVirtual =
TRUE;
2656 btnInfo->bRemovable =
FALSE;
2717 else if (
index == 0)
2823 if (btnInfo ==
NULL)
2825 FIXME(
"btnInfo invalid\n");
2845 rcButton = lpdis->
rcItem;
2848 rcButton.
right = rcButton.
left + custInfo->tbInfo->nBitmapWidth + 6;
2943 nAdded = nCountAfter - nCountBefore;
2944 if (
bitmap->nButtons == 0)
2947 }
else if (nAdded > (
INT)
bitmap->nButtons) {
2948 TRACE(
"Added more images than wParam: Previous image number %i added %i while wParam %i. Images in list %i\n",
2949 nCountBefore, nAdded,
bitmap->nButtons, nCountAfter);
2965 if (himlDef ==
NULL || himlDef != infoPtr->
himlInt)
2972 TRACE(
"Update icon size: %dx%d -> %dx%d\n",
3004 switch (lpAddBmp->
nID)
3035 WARN(
"unknown bitmap id, %ld\n", lpAddBmp->
nID);
3039 TRACE (
"adding %d internal bitmaps\n",
info.nButtons);
3042 if (lpAddBmp->
nID & 1)
3060 TRACE(
"adding %d bitmaps\n",
info.nButtons);
3075 TRACE (
"creating default image list\n");
3087 WARN(
"No default image list available\n");
3108 TRACE(
"adding %d buttons (unicode=%d)\n", nAddButtons, fUnicode);
3117#define MAX_RESOURCE_STRING_LENGTH 512
3131 TRACE(
"adding string from resource\n");
3139 TRACE(
"string not found in resources\n");
3147 if (
len == 0 ||
len == 1)
3150 TRACE(
"delimiter: 0x%x\n", *szString);
3156 if (next_delim + 1 >= szString +
len)
3176 TRACE(
"adding string(s) from array\n");
3212 TRACE(
"adding string(s) from array\n");
3247 RECT window_rect, parent_rect;
3259 x = parent_rect.
left;
3260 y = parent_rect.
top;
3269 y = window_rect.top;
3330 btnPtr = &infoPtr->
buttons[nIndex];
3356 btnPtr = &infoPtr->
buttons[nIndex];
3366 if (nOldIndex == nIndex)
3368 if (nOldIndex != -1)
3376 if (nOldIndex != -1)
3401 custInfo.
tbInfo = infoPtr;
3423 if ((nIndex < 0) || (nIndex >= infoPtr->
nNumButtons))
3426 memset(&nmtb, 0,
sizeof(nmtb));
3440 TRACE(
" simple delete\n");
3448 TRACE(
"complex delete [nIndex=%d]\n", nIndex);
3457 if (nIndex < infoPtr->nNumButtons) {
3488 btnPtr = &infoPtr->
buttons[nIndex];
3542 if ((nIndex < 0) || (nIndex >= infoPtr->
nNumButtons))
3545 btnPtr = &infoPtr->
buttons[nIndex];
3566 if (lpTbInfo ==
NULL)
3575 WARN(
"Invalid button size\n");
3583 btnPtr = &infoPtr->
buttons[nIndex];
3609 }
else if (!bUnicode || lpTbInfo->
pszText)
3642 if (lpStr)
strcpyW (lpStr, lpText);
3704 TRACE(
"hwnd = %p, lptbim = %p\n", infoPtr->
hwndSelf, lptbim);
3706 *lptbim = infoPtr->
tbim;
3726 btnPtr = &infoPtr->
buttons[nIndex];
3727 if ((nIndex < 0) || (nIndex >= infoPtr->
nNumButtons))
3753 TRACE(
"maximum size %d x %d\n",
3775 pMetrics->
cxBarPad = infoPtr->szBarPadding.cx;
3776 pMetrics->
cyBarPad = infoPtr->szBarPadding.cy;
3806 btnPtr = &infoPtr->
buttons[nIndex];
3807 if ((nIndex < 0) || (nIndex >= infoPtr->
nNumButtons))
3825 return infoPtr->
nRows;
3868 TRACE(
"%s hwnd=%p\n",
3895 btnPtr = &infoPtr->
buttons[nIndex];
3901 btnPtr->
fsState &= ~TBSTATE_HIDDEN;
3903 if (oldState != btnPtr->
fsState) {
3930 btnPtr = &infoPtr->
buttons[nIndex];
3936 btnPtr->
fsState &= ~TBSTATE_INDETERMINATE;
3938 if(oldState != btnPtr->
fsState)
3960 }
else if (nIndex < 0)
3963 TRACE(
"inserting button index=%d\n", nIndex);
3966 TRACE(
"adjust index=%d\n", nIndex);
4069 WCHAR wszAccel[] = {
'&',wAccel,0};
4072 TRACE(
"hwnd = %p, wAccel = %x(%s), pIDButton = %p\n",
4089 if ((lpszStr[0] ==
'&') && (lpszStr[1] ==
'&'))
4094 if (!
strncmpiW(lpszStr, wszAccel, iLen))
4114 TRACE(
"hwnd = %p, Id = %d, fMark = 0%d\n", infoPtr->
hwndSelf,
Id, fMark);
4120 btnPtr = &infoPtr->
buttons[nIndex];
4126 btnPtr->
fsState &= ~TBSTATE_MARKED;
4128 if(oldState != btnPtr->
fsState)
4142 else if (*
pIndex == nIndex)
4149 else if (*
pIndex == nIndex)
4162 TRACE(
"hwnd=%p, Id=%d, nMoveIndex=%d\n", infoPtr->
hwndSelf,
Id, nMoveIndex);
4165 if ((nIndex == -1) || (nMoveIndex < 0))
4174 if (nIndex < nMoveIndex)
4176 nCount = nMoveIndex - nIndex;
4185 else if (nIndex > nMoveIndex)
4187 nCount = nIndex - nMoveIndex;
4216 btnPtr = &infoPtr->
buttons[nIndex];
4222 btnPtr->
fsState &= ~TBSTATE_PRESSED;
4224 if(oldState != btnPtr->
fsState)
4236 int i = 0, nOldButtons = 0,
pos = 0;
4237 int nOldBitmaps, nNewBitmaps = 0;
4240 TRACE(
"hInstOld %p nIDOld %lx hInstNew %p nIDNew %lx nButtons %x\n",
4246 FIXME(
"changing standard bitmaps not implemented\n");
4250 FIXME(
"resources not in the current module not implemented\n");
4255 TRACE(
"tbimapinfo %d hInstOld %p nIDOld %x\n",
i, tbi->
hInst, tbi->
nID);
4263 TRACE(
"tbimapinfo changed %d hInstOld %p nIDOld %x\n",
i, tbi->
hInst, tbi->
nID);
4269 if (nOldButtons == 0)
4271 WARN(
"No hinst/bitmap found! hInst %p nID %lx\n", lpReplace->
hInstOld, lpReplace->
nIDOld);
4288 for (
i =
pos + nOldBitmaps - 1;
i >=
pos;
i--)
4300 TRACE(
" pos %d %d old bitmaps replaced by %d new ones.\n",
4301 pos, nOldBitmaps, nNewBitmaps);
4319 memset( &save, 0,
sizeof(save) );
4396 memset(&nmtbr, 0,
sizeof(nmtbr));
4480 if (
idx == -1)
continue;
4488 memset( &bi, 0,
sizeof(bi) );
4521 if (lpSave ==
NULL)
return 0;
4533 LPWSTR pszValueName = 0, pszSubKey = 0;
4538 if (lpSave ==
NULL)
return 0;
4542 if (!pszSubKey)
goto exit;
4547 if (!pszValueName)
goto exit;
4556 Free (pszValueName);
4568 TRACE(
"hwnd=%p, bAnchor = %s\n", infoPtr->
hwndSelf, bAnchor ?
"TRUE" :
"FALSE");
4588 FIXME(
"wParam is %ld. Perhaps image list index?\n",
wParam);
4597 TRACE(
"%d buttons, undoc change to bitmap size : %d-%d -> %d-%d\n",
4615 if ((himlDef == infoPtr->
himlInt) &&
4645 btnPtr = &infoPtr->
buttons[nIndex];
4653 btnPtr->
cx = lptbbi->
cx;
4663 oldBtnRect = btnPtr->
rect;
4681 if ((
cx < 0) || (
cy < 0))
4700 if (
cx == 0)
cx = 24;
4701 if (
cy == 0)
cy = 22;
4731 TRACE(
"matches current width, min=%d, max=%d, no recalc\n",
4743 TRACE(
"number of buttons %d, cx=%d, cy=%d, recalcing\n",
4757 if ((nIndex < 0) || (nIndex >= infoPtr->
nNumButtons))
4764 FIXME(
"change tool tip\n");
4822 FIXME(
"Unknown Toolbar Extended Style 0x%08x. Please report.\n",
4875 nmhotitem.
idOld = oldBtnPtr->idCommand;
4880 nmhotitem.
idOld = 0;
4885 btnPtr = &infoPtr->
buttons[nHit];
4891 nmhotitem.
idNew = 0;
4899 oldBtnPtr->bHot =
FALSE;
4919 TRACE(
"hwnd = %p, nHotItem = %d\n", infoPtr->
hwndSelf, nHotItem);
4932 if (nOldHotItem < 0)
4971 TRACE(
"hwnd %p, new himl=%p, id = %d, count=%d, bitmap w=%d, h=%d\n",
4989 if(infoPtr->
nIndent != nIndent)
5011 if ((lptbim->
iButton == -1) ||
5015 infoPtr->
tbim = *lptbim;
5020 ERR(
"Invalid button index %d\n", lptbim->
iButton);
5067 infoPtr->szBarPadding.cx = pMetrics->
cxBarPad;
5068 infoPtr->szBarPadding.cy = pMetrics->
cyBarPad;
5105 TRACE(
"cx=%d, cy=%d\n",
5121 return (
LRESULT)hwndOldNotify;
5133 TRACE(
"Setting rows to %d (%d)\n", rows, bLarger);
5135 if(infoPtr->
nRows != rows)
5162 btnPtr[
i].
fsState &= ~TBSTATE_WRAP;
5170 if (seps)
FIXME(
"Separators unhandled\n");
5177 if (bLarger && idealWrap > 1)
5179 int resRows = (infoPtr->
nNumButtons + (idealWrap-1)) / idealWrap;
5180 int moreRows = (infoPtr->
nNumButtons + (idealWrap-2)) / (idealWrap-1);
5182 if (resRows < rows && moreRows > rows)
5185 TRACE(
"Changing idealWrap due to bLarger (now %d)\n", idealWrap);
5189 curColumn = curRow = 0;
5191 TRACE(
"Trying to wrap at %d (%d,%d,%d)\n", idealWrap,
5208 if (curColumn > (idealWrap-1)) {
5214 TRACE(
"Result - %d rows\n", curRow + 1);
5255 btnPtr = &infoPtr->
buttons[nIndex];
5279 for (
i = 0;
i <
info->nNumButtons;
i++)
5321 TRACE(
"hwnd=%p, hwndTooltip=%p\n", infoPtr->
hwndSelf, hwndTooltip);
5333 TRACE(
"%s hwnd=%p\n",
5358 TRACE(
"new colors Hl=%x Shd=%x, old colors Hl=%x Shd=%x\n",
5376 if (iOldVersion == 6)
5400 TRACE(
"hwnd=%p, iString=%d, buffersize=%d, string=%p\n", infoPtr->
hwndSelf, iString, buffersize,
str);
5402 if (iString < infoPtr->nNumStrings)
5410 WARN(
"String index %d out of range (largest is %d)\n", iString, infoPtr->
nNumStrings - 1);
5425 if (iString < infoPtr->nNumStrings)
5439 WARN(
"String index %d out of range (largest is %d)\n", iString, infoPtr->
nNumStrings - 1);
5447 FIXME(
"hwnd=%p, wParam=0x%08lx, size.cx=%d, size.cy=%d stub\n",
hwnd,
wParam, pSize->
cx, pSize->
cy);
5459 TRACE(
"old item=%d, new item=%d, flags=%08x\n",
5462 if (nHotItem < 0 || nHotItem > infoPtr->
nNumButtons)
5470 return (nOldHotItem < 0) ? -1 : (
LRESULT)nOldHotItem;
5478 TRACE(
"hwnd=%p iListGap=%d\n", infoPtr->
hwndSelf, iListGap);
5511 TRACE(
"wParam %ld, lParam 0x%08lx -> 0x%08x 0x%08x\n",
5516 if (lpsize->
cx == -1) {
5540 TRACE(
"set to -> 0x%08x 0x%08x\n",
5541 lpsize->
cx, lpsize->
cy);
5641 DWORD dwEraseCustDraw = 0;
5652 dwEraseCustDraw = ntfret & 0xffff;
5655 switch (dwEraseCustDraw)
5662 FIXME(
"[%p] response %d not handled to NM_CUSTOMDRAW (CDDS_PREERASE)\n",
5691 dwEraseCustDraw = ntfret & 0xffff;
5692 switch (dwEraseCustDraw)
5699 FIXME(
"[%p] response %d not handled to NM_CUSTOMDRAW (CDDS_POSTERASE)\n",
5723 if ((nNewHotItem + iDirection < 0) ||
5724 (nNewHotItem + iDirection >= infoPtr->
nNumButtons))
5735 nNewHotItem += iDirection;
5811 BOOL bDragKeyPressed;
5831 btnPtr = &infoPtr->
buttons[nHit];
5853 arrowRect = btnPtr->
rect;
5872 memset(&nmtb, 0,
sizeof(nmtb));
5876 TRACE(
"TBN_DROPDOWN responded with %ld\n",
res);
5884 btnPtr->
fsState &= ~TBSTATE_PRESSED;
5920 memset(&nmtb, 0,
sizeof(nmtb));
6000 memset(&tbb, 0,
sizeof(tbb));
6033 btnPtr->
fsState &= ~TBSTATE_PRESSED;
6039 if ((nOldIndex != nHit) &&
6046 btnPtr->
fsState &= ~TBSTATE_CHECKED;
6052 if (nOldIndex != -1)
6068 memset(&nmtb, 0,
sizeof(nmtb));
6156 btnPtr->
fsState &= ~TBSTATE_PRESSED;
6190 btnPtr->
fsState &= ~TBSTATE_PRESSED;
6270 btnPtr->
fsState &= ~TBSTATE_PRESSED;
6330 infoPtr->
cxMin = -1;
6331 infoPtr->
cxMax = -1;
6356 infoPtr->szSpacing.cx = 0;
6357 infoPtr->szSpacing.cy = 0;
6358 memset(&infoPtr->themeMargins, 0 ,
sizeof(infoPtr->themeMargins));
6444 wszBuffer[0] =
'\0';
6521 unsigned int len = pszText ?
strlenW(pszText) : 0;
6556 switch (lpnmh->
code)
6564 TRACE(
"processed PGN_CALCSIZE, returning horz size = %d\n",
6569 TRACE(
"processed PGN_CALCSIZE, returning vert size = %d\n",
6581 TRACE(
"processed PGN_SCROLL, returning scroll=%d, dir=%d\n",
6590 FIXME(
"TTN_GETDISPINFOA - should not be received; please report\n");
6613 ERR(
"wrong response to WM_NOTIFYFORMAT (%ld), assuming ANSI\n",
6690 TRACE(
"set to %s\n",
6691 (
wParam) ?
"TRUE" :
"FALSE");
6696 return (oldredraw) ? 1 : 0;
6703 TRACE(
"sizing toolbar\n");
6708 DWORD min_x, max_x, min_y, max_y;
6734 SetRect(&delta_width, min_x, 0, max_x, min_y);
6735 SetRect(&delta_height, 0, min_y, max_x, max_y);
6779 memset(&infoPtr->themeMargins, 0 ,
sizeof(infoPtr->themeMargins));
6798 TRACE(
"hwnd=%p msg=%x wparam=%lx lparam=%lx\n",
7165 case WM_NOTIFYFORMAT:
7184 case WM_STYLECHANGED:
7189 case WM_THEMECHANGED:
7211 ERR(
"unknown msg %04x wp=%08lx lp=%08lx\n",
7253TOOLBARv6_Register (
void)
7270TOOLBARv6_Unregister (
void)
7316 for (
i = 0;
i < *cies;
i++)
7334 for (
i = 0;
i < cies;
i++)
7336 if (pies[
i]->
id ==
id)
7354 himlDef = pie->
himl;
ACPI_SIZE strlen(const char *String)
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)
#define RegCloseKey(hKey)
INT Str_GetPtrWtoA(LPCWSTR lpSrc, LPSTR lpDest, INT nMaxLen) DECLSPEC_HIDDEN
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
#define IDC_AVAILBTN_LBOX
#define IDC_TOOLBARBTN_LBOX
BOOL Str_SetPtrAtoW(LPWSTR *lppDest, LPCSTR lpSrc) DECLSPEC_HIDDEN
void COMCTL32_DrawInsertMark(HDC hDC, const RECT *lpRect, COLORREF clrInsertMark, BOOL bHorizontal) DECLSPEC_HIDDEN
void COMCTL32_EnsureBitmapSize(HBITMAP *pBitmap, int cxMinWidth, int cyMinHeight, COLORREF crBackground) DECLSPEC_HIDDEN
VOID COMCTL32_RefreshSysColors(void) DECLSPEC_HIDDEN
INT WINAPI Str_GetPtrW(LPCWSTR, LPWSTR, INT)
COMCTL32_SysColor comctl32_color
BOOL WINAPI _TrackMouseEvent(TRACKMOUSEEVENT *ptme)
HBITMAP WINAPI CreateMappedBitmap(HINSTANCE hInstance, INT_PTR idBitmap, UINT wFlags, LPCOLORMAP lpColorMap, INT iNumMaps)
HBRUSH COMCTL32_hPattern55AABrush
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
BOOL WINAPI ImageList_SetIconSize(HIMAGELIST himl, INT cx, INT cy)
BOOL WINAPI ImageList_Draw(HIMAGELIST himl, INT i, HDC hdc, INT x, INT y, UINT fStyle)
BOOL WINAPI ImageList_Remove(HIMAGELIST himl, INT i)
BOOL WINAPI ImageList_GetImageInfo(HIMAGELIST himl, INT i, IMAGEINFO *pImageInfo)
BOOL WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS *pimldp)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
BOOL WINAPI ImageList_DrawEx(HIMAGELIST himl, INT i, HDC hdc, INT x, INT y, INT dx, INT dy, COLORREF rgbBk, COLORREF rgbFg, UINT fStyle)
INT WINAPI ImageList_GetImageCount(HIMAGELIST himl)
INT WINAPI ImageList_AddMasked(HIMAGELIST himl, HBITMAP hBitmap, COLORREF clrMask)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
BOOL WINAPI ImageList_SetImageCount(HIMAGELIST himl, UINT iImageCount)
BOOL WINAPI ImageList_GetIconSize(HIMAGELIST himl, INT *cx, INT *cy)
BOOL WINAPI Str_SetPtrW(LPWSTR *lppDest, LPCWSTR lpSrc)
#define WideCharToMultiByte
#define MultiByteToWideChar
HRSRC WINAPI FindResourceW(HINSTANCE hModule, LPCWSTR name, LPCWSTR type)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
HRESULT WINAPI DrawThemeText(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCWSTR pszText, int iCharCount, DWORD dwTextFlags, DWORD dwTextFlags2, const RECT *pRect)
HRESULT WINAPI GetThemeMargins(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, int iPropId, RECT *prc, MARGINS *pMargins)
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)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
BOOL WINAPI MakeDragList(HWND hwndLB)
VOID WINAPI DrawInsert(HWND hwndParent, HWND hwndLB, INT nItem)
INT WINAPI LBItemFromPt(HWND hwndLB, POINT pt, BOOL bAutoScroll)
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)
#define wrap(journal, var)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble top
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
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
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 GLint GLint j
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
_Out_ PULONG _Out_ PULONG pIndex
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
#define TB_GETUNICODEFORMAT
#define NM_RELEASEDCAPTURE
#define CDDS_ITEMPOSTPAINT
_Out_opt_ int _Out_opt_ int * cy
#define TB_GETBUTTONINFOA
#define TB_SETEXTENDEDSTYLE
#define IDB_VIEW_LARGE_COLOR
#define CDRF_NOTIFYPOSTERASE
#define TB_ISBUTTONPRESSED
#define TBSTATE_INDETERMINATE
#define TB_GETINSERTMARKCOLOR
#define CDDS_ITEMPREPAINT
#define IDB_HIST_LARGE_COLOR
#define LPSTR_TEXTCALLBACKW
#define TBN_TOOLBARCHANGE
#define TBSTYLE_EX_DRAWDDARROWS
#define TB_GETBUTTONTEXTW
#define CDRF_NOTIFYITEMDRAW
#define TBN_HOTITEMCHANGE
#define TB_GETBUTTONINFOW
#define CDIS_INDETERMINATE
struct tagTOOLINFOW TTTOOLINFOW
#define TB_GETDISABLEDIMAGELIST
#define IDB_HIST_SMALL_COLOR
#define TBSTYLE_EX_MIXEDBUTTONS
#define IDB_VIEW_SMALL_COLOR
#define TB_BUTTONSTRUCTSIZE
#define TB_SETUNICODEFORMAT
#define TB_GETANCHORHIGHLIGHT
#define CCM_SETCOLORSCHEME
#define TB_SETDISABLEDIMAGELIST
#define NM_TOOLTIPSCREATED
#define CDRF_NOTIFYPOSTPAINT
#define TBN_GETBUTTONINFOW
#define IDB_STD_LARGE_COLOR
#define TB_ISBUTTONINDETERMINATE
#define TBN_INITCUSTOMIZE
#define TBSTYLE_EX_HIDECLIPPEDBUTTONS
#define TB_SETBUTTONINFOW
#define TB_SETBOUNDINGSIZE
#define TB_SETANCHORHIGHLIGHT
#define TBCDRF_NOBACKGROUND
#define TBSTYLE_TRANSPARENT
#define TB_GETEXTENDEDSTYLE
#define TOOLBARCLASSNAMEW
#define TBMF_BUTTONSPACING
#define TBN_GETBUTTONINFOA
#define CCM_GETCOLORSCHEME
#define TBSTYLE_REGISTERDROP
#define TB_SETDRAWTEXTFLAGS
struct _TBBUTTON TBBUTTON
#define TB_GETBITMAPFLAGS
#define TB_ISBUTTONHIGHLIGHTED
struct tagTRACKMOUSEEVENT TRACKMOUSEEVENT
struct NMPGSCROLL * LPNMPGSCROLL
#define TBDDRET_TREATPRESSED
#define TB_GETHOTIMAGELIST
#define CCS_NOPARENTALIGN
#define TBCDRF_HILITEHOTTRACK
#define TB_MAPACCELERATORW
#define TBSTYLE_CUSTOMERASE
#define TBSTYLE_EX_VERTICAL
#define TB_SETHOTIMAGELIST
#define TB_SETBUTTONWIDTH
#define TB_GETBUTTONTEXTA
#define TB_SETINSERTMARKCOLOR
#define TB_ISBUTTONCHECKED
#define TB_ISBUTTONHIDDEN
#define TB_SETMAXTEXTROWS
#define TB_ISBUTTONENABLED
#define TB_COMMANDTOINDEX
struct NMPGCALCSIZE * LPNMPGCALCSIZE
#define TB_SETBUTTONINFOA
#define TBN_DELETINGBUTTON
#define BTNS_WHOLEDROPDOWN
#define IDB_STD_SMALL_COLOR
#define TB_MAPACCELERATORA
#define TB_GETIMAGELISTCOUNT
#define strncmpiW(s1, s2, n)
COLORREF clrHighlightText
COLORREF clrTextHighlight
COLORREF clrHighlightHotTrack
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define TMT_CONTENTMARGINS
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI SetWindowOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
BOOL WINAPI RectVisible(_In_ HDC, _In_ LPCRECT)
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)
BOOL WINAPI ExtTextOutW(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCWSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx)
BOOL WINAPI OffsetWindowOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
struct tagDRAWITEMSTRUCT * LPDRAWITEMSTRUCT
HWND WINAPI SetCapture(_In_ HWND hWnd)
HWND WINAPI ChildWindowFromPoint(_In_ HWND, _In_ POINT)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
#define GetWindowLongPtrW
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI ReleaseCapture(void)
DWORD WINAPI GetMessagePos(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CAPTURECHANGED
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
#define LR_CREATEDIBSECTION
#define IS_INTRESOURCE(i)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
HDC WINAPI GetDCEx(_In_opt_ HWND, _In_opt_ HRGN, _In_ DWORD)
#define SPI_GETICONTITLELOGFONT
#define WM_SYSCOLORCHANGE
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
HANDLE WINAPI CopyImage(_In_ HANDLE, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
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)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
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)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
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 IntersectRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
BOOL WINAPI UpdateWindow(_In_ HWND)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HDC WINAPI GetDC(_In_opt_ HWND)
LONG WINAPI GetMessageTime(void)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
HWND WINAPI GetParent(_In_ HWND)
_In_ int _Inout_ LPRECT lprc
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
int WINAPI GetDlgCtrlID(_In_ HWND)
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
BOOL WINAPI DrawFocusRect(_In_ HDC, _In_ LPCRECT)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define SetWindowLongPtrW
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
SHORT WINAPI GetKeyState(_In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free