50#define NONAMELESSUNION
174#define TV_HSCROLL 0x01
175#define TV_VSCROLL 0x02
177#define TV_LDRAGGING 0x08
179#define TV_RDRAGGING 0x20
183#define TV_EDIT_TIMER 2
184#define TV_EDIT_TIMER_SET 2
186#define TEXT_CALLBACK_SIZE 260
188#define TREEVIEW_LEFT_MARGIN 8
190#define MINIMUM_INDENT 19
192#define CALLBACK_MASK_ALL (TVIF_TEXT|TVIF_CHILDREN|TVIF_IMAGE|TVIF_SELECTEDIMAGE)
194#define STATEIMAGEINDEX(x) (((x) >> 12) & 0x0f)
195#define OVERLAYIMAGEINDEX(x) (((x) >> 8) & 0x0f)
196#define ISVISIBLE(x) ((x)->visibleOrder >= 0)
198#define GETLINECOLOR(x) ((x) == CLR_DEFAULT ? comctl32_color.clrGrayText : (x))
199#define GETBKCOLOR(x) ((x) == CLR_NONE ? comctl32_color.clrWindow : (x))
200#define GETTXTCOLOR(x) ((x) == CLR_NONE ? comctl32_color.clrWindowText : (x))
201#define GETINSCOLOR(x) ((x) == CLR_DEFAULT ? comctl32_color.clrBtnText : (x))
327 return infoPtr->
hFont;
334 if (
item ==
NULL)
return "<null item>";
336 if (
item->pszText ==
NULL)
return "<null>";
379 while (
item->lastChild)
575 TRACE(
"code:%d action:0x%x olditem:%p newitem:%p\n",
605 TRACE(
"code:%d dragitem:%p\n",
code, dragItem);
627 TRACE(
"drawstage:0x%x hdc:%p\n", dwDrawStage,
hdc);
629 nmcd = &nmcdhdr.
nmcd;
655 dwDrawStage =
CDDS_ITEM | uItemDrawState;
665 nmcd = &nmcdhdr->
nmcd;
674 TRACE(
"drawstage:0x%x hdc:%p item:%lx, itemstate:0x%x, lItemlParam:0x%lx\n",
688 &tvdi.
item, editItem);
704 TRACE(
"mask=0x%x, callbackmask=0x%x\n",
mask,
item->callbackMask);
707 if (
mask == 0)
return;
741 TRACE(
"returned str %s, len=%d, buflen=%d\n",
746 item->pszText = newText;
759 TRACE(
"returned wstr %s, len=%d\n",
764 item->pszText = newText;
782 TRACE(
"same buffer str %s, len=%d, buflen=%d\n",
788 item->pszText = newText;
812 item->state &= ~callback.item.stateMask;
818 item->callbackMask &= ~callback.item.mask;
842 TRACE(
"(hwndFrom=%p, nCommand=%d)\n", hwndFrom, nCommand);
871 item->imageOffset =
item->stateOffset
970 root->state &= ~TVIS_EXPANDED;
977 for (;
root != sibling;
985 if (
root->textWidth == 0)
1058 if (sibling !=
NULL)
1073 if (
parent->firstChild == sibling)
1074 parent->firstChild = newItem;
1077 parent->lastChild = newItem;
1090 if (sibling !=
NULL)
1105 if (
parent->lastChild == sibling)
1106 parent->lastChild = newItem;
1109 parent->firstChild = newItem;
1116 UINT callbackClear = 0;
1117 UINT callbackSet = 0;
1123 item->textWidth = 0;
1143 item->pszText = newText;
1158 TRACE(
"setting callback, item %p\n",
item);
1212 TRACE(
"prevstate 0x%x, state 0x%x, mask 0x%x\n",
item->state, tvItem->
state,
1214 item->state &= ~tvItem->stateMask;
1218 if (tvItem->
mask & TVIF_STATEEX)
1223 item->callbackMask |= callbackSet;
1224 item->callbackMask &= ~callbackClear;
1240 parentItem = infoPtr->
root;
1248 WARN(
"invalid parent %p\n", parentItem);
1265 insertAfter->
parent != parentItem)
1267 WARN(
"invalid insert after %p\n", insertAfter);
1272 TRACE(
"parent %p position %p: %s\n", parentItem, insertAfter,
1279 if (newItem ==
NULL)
1282 newItem->
parent = parentItem;
1322 bTextUpdated =
TRUE;
1326 while (aChild !=
NULL)
1337 aChild == originalFirst)
1339 bItemInserted =
TRUE;
1344 previousChild = aChild;
1361 bItemInserted =
TRUE;
1370 if ((!bItemInserted) && (aChild ==
NULL))
1378 TRACE(
"new item %p; parent %p, mask 0x%x\n", newItem,
1399 if (parentItem == infoPtr->
root ||
1417 for (
item = newItem;
1444 while (kill !=
NULL)
1466 parentItem =
item->parent;
1478 if (
item->prevSibling)
1479 item->prevSibling->nextSibling =
item->nextSibling;
1481 if (
item->nextSibling)
1482 item->nextSibling->prevSibling =
item->prevSibling;
1490 if (
item->firstChild)
1526 TRACE(
"TVI_ROOT\n");
1528 newSelection =
NULL;
1550 if (
item->nextSibling)
1551 newSelection =
item->nextSibling;
1552 else if (
item->parent != infoPtr->
root)
1553 newSelection =
item->parent;
1555 newSelection =
item->prevSibling;
1556 TRACE(
"newSelection = %p\n", newSelection);
1562 if (
item->nextSibling)
1563 newFirstVisible =
item->nextSibling;
1564 else if (
item->prevSibling)
1565 newFirstVisible =
item->prevSibling;
1566 else if (
item->parent != infoPtr->
root)
1567 newFirstVisible =
item->parent;
1649 if (infoPtr->
uIndent != newIndent)
1707 return uOldScrollTime;
1729#define TVHEIGHT_MIN 16
1730#define TVHEIGHT_FONT_ADJUST 3
1753 if (height < infoPtr->normalImageHeight)
1805 ERR(
"unknown imagelist type %u\n",
type);
1817 bRecalcVisible =
TRUE;
1824 bRecalcVisible =
TRUE;
1844 TRACE(
"new=%d, old=%d\n", newHeight, prevHeight);
1845 if (newHeight == -1)
1852 if (newHeight == 0) newHeight = 1;
1967 if (infoPtr->
clrText != prevColor)
1987 infoPtr->
clrBk = newColor;
1989 if (newColor != prevColor)
2063 if (!
item->textWidth)
2070 *lpRect =
item->rect;
2099 infoPtr =
item->infoPtr;
2100 TRACE(
"got item from different tree %p, called from %p\n",
item->infoPtr, infoPtr);
2107 if (!valid_item)
return FALSE;
2115 FIXME(
"I_CHILDRENCALLBACK not supported\n");
2152 FIXME(
" GetItem called with LPSTR_TEXTCALLBACK\n");
2164 FIXME(
" GetItem called with LPSTR_TEXTCALLBACK\n");
2174 if (tvItem->
mask & TVIF_STATEEX)
2176 FIXME(
"Extended item state not supported, returning 0.\n");
2180 TRACE(
"item <%p>, txt %p, img %d, mask 0x%x\n",
2203 originalItem = *
item;
2352 static const unsigned int state_table[] = { 0, 2, 1 };
2358 item->state &= ~TVIS_STATEIMAGEMASK;
2381 LONG centerx, centery;
2388 if (!lar &&
item->iLevel == 0)
2394 centerx = (
item->linesOffset +
item->stateOffset) / 2;
2395 centery = (
item->rect.top +
item->rect.bottom) / 2;
2399 HPEN hOldPen, hNewPen;
2411 centery = (centery + 2) & ~1;
2416 if (
item->prevSibling ||
item->parent != infoPtr->
root)
2422 if (
item->nextSibling)
2432 int pcenterx = (
parent->linesOffset +
parent->stateOffset) / 2;
2455 if (
item->cChildren)
2461 glyphRect.
left =
item->linesOffset;
2473 LONG plussize = (rectsize + 1) * 3 / 4;
2478 Rectangle(
hdc, centerx - rectsize - 1, centery - rectsize - 1,
2479 centerx + rectsize + 2, centery + rectsize + 2);
2491 LineTo(
hdc, centerx + plussize, centery);
2497 LineTo(
hdc, centerx, centery + plussize);
2503 centerx + plussize, centery + 2);
2509 centerx + 2, centery + plussize);
2529 COLORREF oldTextColor, oldTextBkColor;
2573 if (!
item->textWidth)
2582 TRACE(
"prepaint:cditem-app returns 0x%x\n", cditem);
2607 centery = (
item->rect.top +
item->rect.bottom) / 2;
2635 imageIndex =
item->iSelectedImage;
2640 imageIndex =
item->iExpandedImage;
2645 imageIndex =
item->iImage;
2682 TRACE(
"drawing text %s at (%s)\n",
2708 TRACE(
"item:%d,mark:%p\n",
2714 HPEN hNewPen, hOldPen;
2751 TRACE(
"postpaint:cditem-app returns 0x%x\n", cditem);
2903 TRACE(
"%p\n", infoPtr);
2920 TRACE(
"empty window\n");
2988 hdcScreen =
GetDC(0);
3008 TRACE(
"checkbox index %d\n", nIndex);
3023 item->state &= ~TVIS_STATEIMAGEMASK;
3041 TRACE(
"(%p %p)\n", infoPtr, hdc_ref);
3125 else if(
first->pszText)
3194 ERR(
"invalid item hParent=%p\n",
parent);
3201 lpCompare = (
LPARAM)pSort;
3206 lpCompare = (
LPARAM)infoPtr;
3222 if (sortList ==
NULL)
3226 DPA_Sort(sortList, pfnCompare, lpCompare);
3235 item->nextSibling = nextItem;
3238 if (prevItem ==
NULL)
3247 item->prevSibling = prevItem;
3279 if (
item->visibleOrder == visOrder)
3347 BOOL bSetSelection, bSetFirstVisible;
3349 LONG scrollDist = 0;
3365 item->state &= ~TVIS_EXPANDED;
3367 if (wasExpanded && bUser)
3379 if (tmpItem->nextSibling)
3384 tmpItem = tmpItem->
parent;
3388 scrollDist = nextItem->
rect.
top;
3390 if (bRemoveChildren)
3392 INT old_cChildren =
item->cChildren;
3393 TRACE(
"TVE_COLLAPSERESET\n");
3394 item->state &= ~TVIS_EXPANDEDONCE;
3396 item->cChildren = old_cChildren;
3401 if (
item->firstChild)
3407 for (
i =
item->firstChild;
i != sibling;
3410 i->visibleOrder = -1;
3417 scrollDist = -(scrollDist - nextItem->
rect.
top);
3430 scrollRect.
left = 0;
3442 scrollRect.
top =
item->rect.top;
3458 LONG orgNextTop = 0;
3461 BOOL sendsNotifications;
3463 TRACE(
"(%p, %p, partial=%d, %d)\n", infoPtr,
item, partial,
user);
3476 tmpItem = tmpItem->
parent;
3480 orgNextTop = nextItem->
rect.
top;
3484 sendsNotifications =
user || ((
item->cChildren != 0) &&
3486 if (sendsNotifications)
3490 TRACE(
" TVN_ITEMEXPANDING returned TRUE, exiting...\n");
3494 if (!
item->firstChild)
3500 FIXME(
"TVE_EXPANDPARTIAL not implemented\n");
3508 scrollRect.
left = 0;
3513 scrollDist = nextItem->
rect.
top - orgNextTop;
3514 scrollRect.
top = orgNextTop;
3520 scrollRect.
top =
item->rect.top;
3529 int nChildren =
item->lastChild->visibleOrder
3530 -
item->firstChild->visibleOrder + 1;
3532 int visible_pos =
item->visibleOrder
3537 if (visible_pos > 0 && nChildren > rows_below)
3539 int scroll = nChildren - rows_below;
3541 if (scroll > visible_pos)
3542 scroll = visible_pos;
3557 if (sendsNotifications) {
3636 TRACE(
"For (%s) item:%d, flags 0x%x, state:%d\n",
3675 && row < item->visibleOrder +
item->iIntegral)
3700 else if (
x >
rect.right)
3709 else if (
y >
rect.bottom)
3727 if (!
item->textWidth)
3730 if (
x >=
item->textOffset +
item->textWidth)
3734 else if (
x >=
item->textOffset)
3738 else if (
x >=
item->imageOffset)
3742 else if (
x >=
item->stateOffset)
3779 TRACE(
"WM_PAINT start\n");
3782 TRACE(
"WM_PAINT done\n");
3937 if (infoPtr->
hFont != 0)
3956 if (infoPtr->
hFont != 0)
4046 if (!bCancel && bCommit)
4063 ERR(
"OutOfMemory, cannot allocate space for label\n");
4064 if (newText != tmpText)
heap_free(newText);
4078 if (newText != tmpText)
heap_free(newText);
4093 ERR(
"got unknown timer\n");
4098 infoPtr->
Timer &= ~TV_EDIT_TIMER_SET;
4120 r.top =
pt.y - cyDrag;
4121 r.left =
pt.x - cxDrag;
4122 r.bottom =
pt.y + cyDrag;
4123 r.right =
pt.x + cxDrag;
4428 htopdc =
GetDC(hwtop);
4487 TRACE(
"Entering item %p (%s), flag 0x%x, cause 0x%x, state 0x%x\n",
4489 newSelect ? newSelect->
state : 0);
4499 FIXME(
"TVSI_NOSINGLEEXPAND specified.\n");
4504 if (prevSelect == newSelect) {
4518 prevSelect->
state &= ~TVIS_SELECTED;
4541 prevSelect->
state &= ~TVIS_DROPHILITED;
4553 if (newSelect !=
NULL)
4562 TRACE(
"Leaving state 0x%x\n", newSelect ? newSelect->
state : 0);
4636 if (!charCode || !keyData)
return 0;
4640 charCode !=
'.' && charCode !=
'`' && charCode !=
'!' &&
4641 charCode !=
'@' && charCode !=
'#' && charCode !=
'$' &&
4642 charCode !=
'%' && charCode !=
'^' && charCode !=
'&' &&
4643 charCode !=
'*' && charCode !=
'(' && charCode !=
')' &&
4644 charCode !=
'-' && charCode !=
'_' && charCode !=
'+' &&
4645 charCode !=
'=' && charCode !=
'\\'&& charCode !=
']' &&
4646 charCode !=
'}' && charCode !=
'[' && charCode !=
'{' &&
4647 charCode !=
'/' && charCode !=
'?' && charCode !=
'>' &&
4648 charCode !=
'<' && charCode !=
',' && charCode !=
'~')
4665 if (infoPtr->
charCode != charCode) {
4703 if (
idx == endidx)
break;
4718 }
else if ( (charCode != 0) && (nItem ==
NULL) &&
4725 }
while (
idx != endidx);
4727 if (nItem !=
NULL) {
4744 int visible_pos = -1;
4774 if (hasFirstVisible)
4777 if (visible_pos < 0)
4780 newFirstVisible =
item;
4782 else if (visible_pos >= viscount
4788 int scroll = visible_pos - viscount;
4802 x =
item->textWidth;
4810 if (
item->textOffset < 0)
4838 BOOL bUpdateScrollPos)
4844 if (newFirstVisible !=
NULL)
4856 if (newFirstVisible ==
NULL)
4880 item->rect.top += scroll;
4881 item->rect.bottom += scroll;
4884 if (bUpdateScrollPos)
4911 if (!oldFirstVisible)
4917 switch (nScrollCode)
4956 if (newFirstVisible !=
NULL)
4958 if (newFirstVisible != oldFirstVisible)
4973 int scrollX = infoPtr->
scrollX;
4989 switch (nScrollCode)
5013 if (scrollX > maxWidth)
5015 else if (scrollX < 0)
5019 if (scrollX != infoPtr->
scrollX)
5027 item->linesOffset += scroll_pixels;
5028 item->stateOffset += scroll_pixels;
5029 item->imageOffset += scroll_pixels;
5030 item->textOffset += scroll_pixels;
5048 INT pulScrollLines = 3;
5058 wheelDelta = GET_WHEEL_DELTA_WPARAM(
wParam);
5060 if ((wheelDelta < 0 && infoPtr->wheelRemainder < 0) ||
5102 if (infoPtr ==
NULL)
5104 ERR(
"could not allocate info memory!\n");
5241#define SCROLL_ENTRY(dir, code) { ((dir) << 7) | (code) }
5293 nmkeydown.
flags = 0;
5296 if (prevItem ==
NULL)
5333 newSelection = prevItem->
parent;
5375 newSelection = prevItem->
parent;
5376 if (newSelection == infoPtr->
root)
5377 newSelection =
NULL;
5386 if (newSelection && newSelection != prevItem)
5449 if (
item && item_hit)
5476 r.right - cxEdge,
r.bottom - cyEdge);
5477 if (region != (HRGN)1)
5485 r.right - cxEdge,
r.bottom -cyEdge);
5513 TRACE(
"got PGN_CALCSIZE, returning horz size = %d, client=%d\n",
5518 TRACE(
"got PGN_CALCSIZE, returning vert size = %d, client=%d\n",
5561 TRACE(
"checkboxes enabled\n");
5568 FIXME(
"tried to disable checkboxes\n");
5577 TRACE(
"tooltips enabled\n");
5583 TRACE(
"tooltips disabled\n");
5587 infoPtr->
dwStyle = dwNewStyle;
5610 memset(&nmmouse, 0,
sizeof(nmmouse));
5724 FIXME(
"Unimplemented msg TVM_GETISEARCHSTRINGA\n");
5728 FIXME(
"Unimplemented msg TVM_GETISEARCHSTRINGW\n");
5875 case WM_NOTIFYFORMAT:
5902 case WM_STYLECHANGED:
5912 case WM_THEMECHANGED:
5924 TRACE(
"drawItem\n");
5984 if (
item->firstChild)
5990 if (
item->lastChild)
5997 if (
item->nextSibling)
6004 if (
item->prevSibling)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
FORCEINLINE VOID SetPixel(_In_ ULONG Left, _In_ ULONG Top, _In_ UCHAR Color)
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void user(int argc, const char *argv[])
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
HWND COMCTL32_CreateToolTip(HWND) DECLSPEC_HIDDEN
VOID COMCTL32_RefreshSysColors(void) DECLSPEC_HIDDEN
COMCTL32_SysColor comctl32_color
BOOL WINAPI _TrackMouseEvent(TRACKMOUSEEVENT *ptme)
static const struct @264 state_table[]
BOOL WINAPI DPA_Sort(HDPA hdpa, PFNDPACOMPARE pfnCompare, LPARAM lParam)
VOID WINAPI DPA_EnumCallback(HDPA hdpa, PFNDPAENUMCALLBACK enumProc, LPVOID lParam)
INT WINAPI DPA_GetPtrIndex(HDPA hdpa, LPCVOID p)
LPVOID WINAPI DPA_DeletePtr(HDPA hdpa, INT i)
BOOL WINAPI DPA_Destroy(HDPA hdpa)
HDPA WINAPI DPA_Create(INT nGrow)
INT WINAPI DPA_InsertPtr(HDPA hdpa, INT i, LPVOID p)
BOOL WINAPI ImageList_Draw(HIMAGELIST himl, INT i, HDC hdc, INT x, INT y, UINT fStyle)
INT WINAPI ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask)
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_AddMasked(HIMAGELIST himl, HBITMAP hBitmap, COLORREF clrMask)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
BOOL WINAPI ImageList_GetIconSize(HIMAGELIST himl, INT *cx, INT *cy)
static LRESULT TREEVIEW_GetLineColor(const TREEVIEW_INFO *infoPtr)
static UINT TREEVIEW_NaturalHeight(const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_SetScrollTime(TREEVIEW_INFO *infoPtr, UINT uScrollTime)
static LRESULT TREEVIEW_GetTextColor(const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_SetIndent(TREEVIEW_INFO *infoPtr, UINT newIndent)
static LRESULT TREEVIEW_KillFocus(const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_VScroll(TREEVIEW_INFO *infoPtr, WPARAM wParam)
static LRESULT TREEVIEW_SetInsertMarkColor(TREEVIEW_INFO *infoPtr, COLORREF color)
static LRESULT TREEVIEW_Size(TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static LRESULT TREEVIEW_GetImageList(const TREEVIEW_INFO *infoPtr, WPARAM wParam)
static LRESULT TREEVIEW_HScroll(TREEVIEW_INFO *, WPARAM)
static BOOL TREEVIEW_Toggle(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, BOOL user)
static LRESULT TREEVIEW_Paint(TREEVIEW_INFO *infoPtr, HDC hdc_ref)
static void TREEVIEW_UnlinkItem(const TREEVIEW_ITEM *item)
static VOID TREEVIEW_Invalidate(const TREEVIEW_INFO *, const TREEVIEW_ITEM *)
#define TEXT_CALLBACK_SIZE
static BOOL TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, BOOL partial, BOOL user)
static TREEVIEW_ITEM * TREEVIEW_GetListItem(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, LONG count)
static INT TREEVIEW_CountChildren(const TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_SetTextColor(TREEVIEW_INFO *infoPtr, COLORREF color)
static LRESULT TREEVIEW_SetInsertMark(TREEVIEW_INFO *infoPtr, BOOL wParam, HTREEITEM item)
static LRESULT TREEVIEW_SelectItem(TREEVIEW_INFO *infoPtr, INT wParam, HTREEITEM item)
static INT get_notifycode(const TREEVIEW_INFO *infoPtr, INT code)
static LRESULT TREEVIEW_GetItemT(const TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem, BOOL isW)
static void TREEVIEW_RecalculateVisibleOrder(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *start)
static TREEVIEW_ITEM * TREEVIEW_HitTest(const TREEVIEW_INFO *infoPtr, LPTVHITTESTINFO lpht)
static BOOL TREEVIEW_IsItemHit(const TREEVIEW_INFO *infoPtr, const TVHITTESTINFO *ht)
static LRESULT TREEVIEW_GetFont(const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_ExpandMsg(TREEVIEW_INFO *infoPtr, UINT flag, HTREEITEM item)
static LRESULT TREEVIEW_SetUnicodeFormat(TREEVIEW_INFO *infoPtr, BOOL fUnicode)
static LRESULT TREEVIEW_GetUnicodeFormat(const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_DeleteItem(TREEVIEW_INFO *infoPtr, HTREEITEM item)
static void TREEVIEW_InsertAfter(TREEVIEW_ITEM *newItem, TREEVIEW_ITEM *sibling, TREEVIEW_ITEM *parent)
static LRESULT TREEVIEW_InsertItemT(TREEVIEW_INFO *infoPtr, const TVINSERTSTRUCTW *ptdi, BOOL isW)
static void TREEVIEW_VerifyItem(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_SetImageList(TREEVIEW_INFO *infoPtr, UINT type, HIMAGELIST himlNew)
static void TREEVIEW_Refresh(TREEVIEW_INFO *infoPtr, HDC hdc, const RECT *rc)
static VOID TREEVIEW_UpdateScrollBars(TREEVIEW_INFO *infoPtr)
static void TREEVIEW_RemoveTree(TREEVIEW_INFO *infoPtr)
static BOOL TREEVIEW_SendCustomDrawItemNotify(const TREEVIEW_INFO *infoPtr, HDC hdc, TREEVIEW_ITEM *item, UINT uItemDrawState, NMTVCUSTOMDRAW *nmcdhdr)
#define CALLBACK_MASK_ALL
static LRESULT TREEVIEW_SetRedraw(TREEVIEW_INFO *infoPtr, WPARAM wParam)
static LRESULT TREEVIEW_EraseBackground(const TREEVIEW_INFO *infoPtr, HDC hdc)
static BOOL TREEVIEW_NCPaint(const TREEVIEW_INFO *infoPtr, HRGN region, LPARAM lParam)
static INT CALLBACK TREEVIEW_ResetTextWidth(LPVOID pItem, LPVOID unused)
VOID(* TREEVIEW_ItemEnumFunc)(TREEVIEW_INFO *, TREEVIEW_ITEM *, LPVOID)
static INT TREEVIEW_ProcessLetterKeys(TREEVIEW_INFO *infoPtr, WPARAM charCode, LPARAM keyData)
static LRESULT TREEVIEW_SetItemT(TREEVIEW_INFO *infoPtr, const TVITEMEXW *tvItem, BOOL isW)
static INT WINAPI TREEVIEW_SortOnName(TREEVIEW_ITEM *first, TREEVIEW_ITEM *second, const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_GetScrollTime(const TREEVIEW_INFO *infoPtr)
static void TREEVIEW_RemoveAllChildren(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *parentItem)
static void TREEVIEW_VerifyRoot(TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_TrackMouse(const TREEVIEW_INFO *infoPtr, POINT pt)
static LRESULT TREEVIEW_GetEditControl(const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_GetIndent(const TREEVIEW_INFO *infoPtr)
static HWND TREEVIEW_EditLabel(TREEVIEW_INFO *infoPtr, HTREEITEM hItem)
static LRESULT TREEVIEW_Sort(TREEVIEW_INFO *infoPtr, HTREEITEM parent, LPTVSORTCB pSort)
static LRESULT TREEVIEW_Notify(const TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static LRESULT TREEVIEW_LButtonDoubleClick(TREEVIEW_INFO *infoPtr, LPARAM lParam)
static HFONT TREEVIEW_CreateUnderlineFont(HFONT hOrigFont)
static LRESULT CALLBACK TREEVIEW_Edit_SubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static void TREEVIEW_FillBkgnd(const TREEVIEW_INFO *infoPtr, HDC hdc, const RECT *rc)
static int TREEVIEW_GetItemIndex(const TREEVIEW_INFO *infoPtr, HTREEITEM handle)
static LRESULT TREEVIEW_GetInsertMarkColor(const TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_SortChildrenCB(TREEVIEW_INFO *infoPtr, LPTVSORTCB pSort)
static LRESULT TREEVIEW_MouseLeave(TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_SetBkColor(TREEVIEW_INFO *infoPtr, COLORREF newColor)
static LRESULT TREEVIEW_GetItemRect(const TREEVIEW_INFO *infoPtr, BOOL fTextRect, LPRECT lpRect)
VOID TREEVIEW_Register(void)
static LRESULT TREEVIEW_DoSelectItem(TREEVIEW_INFO *, INT, HTREEITEM, INT)
static VOID TREEVIEW_SendExpanded(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, UINT action)
static LRESULT TREEVIEW_KeyDown(TREEVIEW_INFO *infoPtr, WPARAM wParam)
static void TREEVIEW_ResetImageStateIndex(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static TREEVIEW_ITEM * TREEVIEW_GetPrevListItem(const TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *tvItem)
static LRESULT TREEVIEW_EnsureVisible(TREEVIEW_INFO *, HTREEITEM, BOOL)
static LRESULT TREEVIEW_CreateDragImage(TREEVIEW_INFO *infoPtr, LPARAM lParam)
struct tagTREEVIEW_INFO TREEVIEW_INFO
static LRESULT TREEVIEW_PrintClient(TREEVIEW_INFO *infoPtr, HDC hdc, DWORD options)
static HFONT TREEVIEW_FontForItem(const TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
static BOOL item_changed(const TREEVIEW_ITEM *tiOld, const TREEVIEW_ITEM *tiNew, const TVITEMEXW *tvChange)
static void TREEVIEW_SingleExpand(TREEVIEW_INFO *infoPtr, HTREEITEM selection, HTREEITEM item)
static LRESULT TREEVIEW_SetToolTips(TREEVIEW_INFO *infoPtr, HWND hwndTT)
static LRESULT TREEVIEW_ScrollKeyDown(TREEVIEW_INFO *infoPtr, WPARAM key)
static LRESULT TREEVIEW_SetCursor(const TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static LRESULT TREEVIEW_Destroy(TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_GetNextItem(const TREEVIEW_INFO *infoPtr, UINT which, HTREEITEM item)
static LRESULT TREEVIEW_RButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam)
static HDPA TREEVIEW_BuildChildDPA(const TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_SetFont(TREEVIEW_INFO *infoPtr, HFONT hFont, BOOL bRedraw)
static VOID TREEVIEW_UpdateSubTree(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *root)
static TREEVIEW_ITEM * TREEVIEW_GetNextListItem(const TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *tvItem)
static void TREEVIEW_InsertBefore(TREEVIEW_ITEM *newItem, TREEVIEW_ITEM *sibling, TREEVIEW_ITEM *parent)
static INT TREEVIEW_NotifyFormat(TREEVIEW_INFO *infoPtr, HWND hwndFrom, UINT nCommand)
static BOOL TREEVIEW_IsFullRowSelect(const TREEVIEW_INFO *infoPtr)
static const WCHAR themeClass[]
static TREEVIEW_INFO * TREEVIEW_GetInfoPtr(HWND hwnd)
static LRESULT TREEVIEW_SortChildren(TREEVIEW_INFO *infoPtr, LPARAM lParam)
static LRESULT TREEVIEW_HandleTimer(TREEVIEW_INFO *infoPtr, WPARAM wParam)
static VOID TREEVIEW_TVItemFromItem(const TREEVIEW_INFO *infoPtr, UINT mask, TVITEMW *tvItem, TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_Create(HWND hwnd, const CREATESTRUCTW *lpcs)
static VOID TREEVIEW_ComputeItemRect(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_GetCount(const TREEVIEW_INFO *infoPtr)
static INT WINAPI TREEVIEW_CallBackCompare(const TREEVIEW_ITEM *first, const TREEVIEW_ITEM *second, const TVSORTCB *pCallBackSort)
static BOOL TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, BOOL bRemoveChildren, BOOL bUser)
static const char * TREEVIEW_ItemName(const TREEVIEW_ITEM *item)
static BOOL TREEVIEW_DoSetItemT(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, const TVITEMEXW *tvItem, BOOL isW)
static TREEVIEW_ITEM * TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr)
struct _TREEITEM TREEVIEW_ITEM
static LRESULT TREEVIEW_ThemeChanged(const TREEVIEW_INFO *infoPtr)
static BOOL TREEVIEW_BeginLabelEditNotify(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *editItem)
static void TREEVIEW_DrawItemLines(const TREEVIEW_INFO *infoPtr, HDC hdc, const TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_GetToolTips(const TREEVIEW_INFO *infoPtr)
#define SCROLL_ENTRY(dir, code)
static BOOL TREEVIEW_ValidItem(const TREEVIEW_INFO *infoPtr, HTREEITEM handle)
static void TREEVIEW_FreeItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static VOID TREEVIEW_SetFirstVisible(TREEVIEW_INFO *, TREEVIEW_ITEM *, BOOL)
static void TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, UINT mask)
static BOOL TREEVIEW_HasChildren(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static void TREEVIEW_VerifyItemCommon(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
static BOOL TREEVIEW_SendRealNotify(const TREEVIEW_INFO *infoPtr, UINT code, NMHDR *hdr)
static VOID TREEVIEW_ComputeTextWidth(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, HDC hDC)
static LRESULT TREEVIEW_GetItemHeight(const TREEVIEW_INFO *infoPtr)
static BOOL TREEVIEW_SendExpanding(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, UINT action)
static void TREEVIEW_DrawItem(const TREEVIEW_INFO *infoPtr, HDC hdc, TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_Command(TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
#define TVHEIGHT_FONT_ADJUST
static void TREEVIEW_RemoveItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_SetItemHeight(TREEVIEW_INFO *infoPtr, INT newHeight)
static void TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_GetVisibleCount(const TREEVIEW_INFO *infoPtr)
static HFONT TREEVIEW_CreateBoldFont(HFONT hOrigFont)
static BOOL TREEVIEW_SendTreeviewDnDNotify(const TREEVIEW_INFO *infoPtr, UINT code, HTREEITEM dragItem, POINT pt)
static LRESULT TREEVIEW_MouseMove(TREEVIEW_INFO *infoPtr, LPARAM lParam)
static LRESULT TREEVIEW_GetItemState(const TREEVIEW_INFO *infoPtr, HTREEITEM item, UINT mask)
static HFONT TREEVIEW_CreateBoldUnderlineFont(HFONT hfont)
static void TREEVIEW_InvalidateItem(const TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
static VOID TREEVIEW_ComputeItemInternalMetrics(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
#define TV_EDIT_TIMER_SET
static VOID TREEVIEW_ExpandAll(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_MouseWheel(TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static TREEVIEW_ITEM * TREEVIEW_GetLastListItem(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static BOOL TREEVIEW_SendSimpleNotify(const TREEVIEW_INFO *infoPtr, UINT code)
static void TREEVIEW_InitCheckboxes(TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_GetBkColor(const TREEVIEW_INFO *infoPtr)
static LRESULT WINAPI TREEVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static LRESULT TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel)
static BOOL TREEVIEW_SendTreeviewNotify(const TREEVIEW_INFO *infoPtr, UINT code, UINT action, UINT mask, HTREEITEM oldItem, HTREEITEM newItem)
static TREEVIEW_ITEM * TREEVIEW_HitTestPoint(const TREEVIEW_INFO *infoPtr, POINT pt)
static BOOL TREEVIEW_IsChildOf(const TREEVIEW_ITEM *parent, const TREEVIEW_ITEM *child)
static void TREEVIEW_VerifyTree(TREEVIEW_INFO *infoPtr)
#define STATEIMAGEINDEX(x)
static LRESULT TREEVIEW_SetLineColor(TREEVIEW_INFO *infoPtr, COLORREF color)
static BOOL TREEVIEW_SendCustomDrawNotify(const TREEVIEW_INFO *infoPtr, DWORD dwDrawStage, HDC hdc, RECT rc)
static LRESULT TREEVIEW_LButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam)
VOID TREEVIEW_Unregister(void)
static VOID TREEVIEW_ToggleItemState(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
static LRESULT TREEVIEW_SetFocus(TREEVIEW_INFO *infoPtr)
static LRESULT TREEVIEW_StyleChanged(TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
#define WideCharToMultiByte
#define MultiByteToWideChar
#define __EXCEPT_PAGE_FAULT
DWORD WINAPI GetTickCount(VOID)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId, int iStateId)
HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
HTHEME WINAPI GetWindowTheme(HWND hwnd)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
int do_select(int n, fd_set_bits *fds, long *timeout)
int align(int length, int align)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLuint GLdouble GLdouble GLint GLint order
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 flag
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
static const struct newhuff ht[]
_Check_return_ _CRTIMP int __cdecl isalnum(_In_ int _C)
static IPrintDialogCallback callback
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
#define CDDS_ITEMPOSTPAINT
#define TVN_ENDLABELEDITA
#define TVM_CREATEDRAGIMAGE
#define TVN_ITEMEXPANDEDW
_Out_opt_ int _Out_opt_ int * cy
#define TVE_COLLAPSERESET
#define TVM_SORTCHILDRENCB
#define CDDS_ITEMPREPAINT
#define TVGN_FIRSTVISIBLE
#define TVN_ITEMEXPANDINGA
#define LPSTR_TEXTCALLBACKW
#define TVM_ENDEDITLABELNOW
#define TVN_BEGINLABELEDITA
#define TVGN_PREVIOUSVISIBLE
#define TVE_EXPANDPARTIAL
#define TVIS_EXPANDEDONCE
#define CDRF_NOTIFYITEMDRAW
#define LPSTR_TEXTCALLBACKA
#define TVIF_EXPANDEDIMAGE
#define TVHT_ONITEMINDENT
#define TVM_GETUNICODEFORMAT
#define TVM_GETISEARCHSTRINGW
#define TVM_GETITEMHEIGHT
#define TVM_SETSCROLLTIME
#define TVHT_ONITEMBUTTON
#define TVS_SHOWSELALWAYS
#define TVS_FULLROWSELECT
#define CDRF_NOTIFYPOSTPAINT
#define TVSI_NOSINGLEEXPAND
struct _TREEITEM * HTREEITEM
#define TVN_ITEMEXPANDEDA
#define TVM_SETINSERTMARKCOLOR
#define TVHT_ONITEMSTATEICON
#define TVS_NONEVENHEIGHT
#define TVM_GETEDITCONTROL
#define TVM_SETINSERTMARK
#define I_CHILDRENCALLBACK
#define TVM_GETVISIBLECOUNT
int(CALLBACK * PFNDPACOMPARE)(void *p1, void *p2, LPARAM lParam)
#define TVM_SETUNICODEFORMAT
#define TVIS_EXPANDPARTIAL
#define TVM_ENSUREVISIBLE
struct tagTRACKMOUSEEVENT TRACKMOUSEEVENT
#define TVN_ITEMEXPANDINGW
#define INDEXTOSTATEIMAGEMASK(i)
#define TVS_DISABLEDRAGDROP
#define TVM_GETINSERTMARKCOLOR
#define TVN_BEGINLABELEDITW
#define TVM_GETSCROLLTIME
#define TVIF_SELECTEDIMAGE
#define TVN_ENDLABELEDITW
struct NMPGCALCSIZE * LPNMPGCALCSIZE
#define TVM_SETITEMHEIGHT
#define TVM_GETISEARCHSTRINGA
static unsigned __int64 next
COLORREF clrHighlightText
const TREEVIEW_INFO * infoPtr
BOOL bIgnoreEditKillFocus
DWORD lastKeyPressTimestamp
WCHAR szSearchParam[MAX_PATH]
TW_UINT32 TW_UINT16 TW_UINT16 MSG
int WINAPI GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int)
HPEN WINAPI ExtCreatePen(_In_ DWORD iPenStyle, _In_ DWORD cWidth, _In_ const LOGBRUSH *plbrush, _In_ DWORD cStyle, _In_reads_opt_(cStyle) const DWORD *pstyle)
UINT WINAPI SetTextAlign(_In_ HDC, _In_ UINT)
int WINAPI ExcludeClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
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)
int WINAPI CombineRgn(_In_opt_ HRGN hrgnDest, _In_opt_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ int fnCombineMode)
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)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
HBRUSH WINAPI CreateSolidBrush(_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 GetTextExtentPoint32A(_In_ HDC hdc, _In_reads_(c) LPCSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
HWND WINAPI GetFocus(void)
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define GetWindowLongPtrW
HDC WINAPI GetWindowDC(_In_opt_ HWND)
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)
struct tagSCROLLINFO SCROLLINFO
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
HDC WINAPI GetDCEx(_In_opt_ HWND, _In_opt_ HRGN, _In_ DWORD)
HWND WINAPI GetCapture(void)
#define SPI_GETICONTITLELOGFONT
#define WM_SYSCOLORCHANGE
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
int WINAPI SetScrollPos(_In_ HWND, _In_ int, _In_ int, _In_ BOOL)
UINT WINAPI GetDoubleClickTime(void)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
struct tagSTYLESTRUCT * LPSTYLESTRUCT
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
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 UpdateWindow(_In_ HWND)
struct tagNMHDR * LPNMHDR
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HWND WINAPI GetParent(_In_ HWND)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
int WINAPI SetScrollInfo(_In_ HWND, _In_ int, _In_ LPCSCROLLINFO, _In_ BOOL)
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
SHORT WINAPI GetAsyncKeyState(_In_ int)
BOOL WINAPI ShowScrollBar(_In_ HWND, _In_ int, _In_ BOOL)
BOOL WINAPI DrawFocusRect(_In_ HDC, _In_ LPCRECT)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define SetWindowLongPtrW
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI ScrollWindowEx(_In_ HWND, _In_ int, _In_ int, _In_opt_ LPCRECT, _In_opt_ LPCRECT, _In_opt_ HRGN, _Out_opt_ LPRECT, _In_ UINT)
BOOL WINAPI ScrollWindow(_In_ HWND, _In_ int, _In_ int, _In_opt_ LPCRECT, _In_opt_ LPCRECT)
int WINAPI GetSystemMetrics(_In_ int)
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)