31 #ifdef SUPPORT_UXTHEME 41 #define CI_TEXT_MARGIN_WIDTH (8) 42 #define CI_TEXT_MARGIN_HEIGHT (3) 43 #define CI_TEXT_SELECTIONMARGIN (1) 45 #define TIMER_ID_SETHITFOCUS (1) 46 #define TIMER_ID_RESETQUICKSEARCH (2) 48 #define DEFAULT_QUICKSEARCH_SETFOCUS_DELAY (2000) 49 #define DEFAULT_QUICKSEARCH_RESET_DELAY (3000) 87 UINT HoveredCheckItemBox;
118 if (infoPtr->hNotify !=
NULL)
144 for (
Item = infoPtr->CheckItemListHead;
168 for (
Item = infoPtr->CheckItemListHead;
191 for (CurItem = infoPtr->CheckItemListHead,
Index = 0;
211 for (CurItem = infoPtr->CheckItemListHead;
213 CurItem = CurItem->
Next)
232 for (CurItem = infoPtr->CheckItemListHead;
234 CurItem = CurItem->
Next)
254 for (CurItem = infoPtr->CheckItemListHead;
256 CurItem = CurItem->
Next)
260 LastEnabledItem = CurItem;
264 if (LastEnabledItem !=
NULL)
270 return LastEnabledItem;
279 if (infoPtr->FocusedCheckItem !=
NULL)
281 Item = infoPtr->FocusedCheckItem;
283 if (infoPtr->FocusedCheckItemBox ==
CLB_DENY &&
296 for (CurItem = infoPtr->CheckItemListHead;
297 CurItem != infoPtr->FocusedCheckItem;
298 CurItem = CurItem->
Next)
328 if (infoPtr->FocusedCheckItem !=
NULL)
330 Item = infoPtr->FocusedCheckItem;
332 if (infoPtr->FocusedCheckItemBox !=
CLB_DENY &&
398 Index = FirstVisible + (ppt->y / infoPtr->ItemHeight);
411 if (DirectlyInCheckBox !=
NULL)
413 INT y = ppt->y % infoPtr->ItemHeight;
419 (((ppt->x >= (infoPtr->CheckBoxLeft[
CLB_ALLOW] - (cxBox / 2))) &&
420 (ppt->x < (infoPtr->CheckBoxLeft[
CLB_ALLOW] - (cxBox / 2) + cxBox)))
422 ((ppt->x >= (infoPtr->CheckBoxLeft[
CLB_DENY] - (cxBox / 2))) &&
423 (ppt->x < (infoPtr->CheckBoxLeft[
CLB_DENY] - (cxBox / 2) + cxBox)))))
425 *DirectlyInCheckBox =
TRUE;
429 *DirectlyInCheckBox =
FALSE;
442 CurItem = infoPtr->CheckItemListHead;
443 while (CurItem !=
NULL)
452 infoPtr->CheckItemListHead =
NULL;
453 infoPtr->CheckItemCount = 0;
461 PCHECKITEM *PrevPtr = &infoPtr->CheckItemListHead;
463 for (CurItem = infoPtr->CheckItemListHead;
465 CurItem = CurItem->
Next)
469 if (
Item == infoPtr->QuickSearchHitItem && infoPtr->QuickSearchEnabled)
475 if (
Item == infoPtr->HoveredCheckItem)
477 ChangeCheckItemHotTrack(infoPtr,
483 if (
Item == infoPtr->FocusedCheckItem)
490 *PrevPtr = CurItem->
Next;
494 infoPtr->CheckItemCount--;
498 PrevPtr = &CurItem->
Next;
513 PCHECKITEM *PrevPtr = &infoPtr->CheckItemListHead;
519 for (CurItem = infoPtr->CheckItemListHead,
i = 0;
521 CurItem = CurItem->
Next)
523 PrevPtr = &CurItem->
Next;
534 infoPtr->CheckItemCount++;
551 for (CurItem = infoPtr->CheckItemListHead;
553 CurItem = CurItem->
Next)
575 ScrollInfo.
cbSize =
sizeof(ScrollInfo);
578 ScrollInfo.
nMax = infoPtr->CheckItemCount;
579 ScrollInfo.
nPage = ((rcClient.
bottom - rcClient.
top) + infoPtr->ItemHeight - 1) / infoPtr->ItemHeight;
583 VisibleItems = (rcClient.
bottom - rcClient.
top) / infoPtr->ItemHeight;
606 INT VisibleFirst, VisibleItems;
614 if (
Index >= VisibleFirst)
619 VisibleItems = ((rcClient.
bottom - rcClient.
top) + infoPtr->ItemHeight - 1) / infoPtr->ItemHeight;
621 if (
Index <= VisibleFirst + VisibleItems)
627 rcUpdate.
top = (
Index - VisibleFirst) * infoPtr->ItemHeight;
628 rcUpdate.
bottom = rcUpdate.
top + infoPtr->ItemHeight;
644 INT VisibleFirst, VisibleItems, NewPos;
652 if (
Index <= VisibleFirst)
661 VisibleItems = (rcClient.
bottom - rcClient.
top) / infoPtr->ItemHeight;
662 if (
Index - VisibleItems + 1 > VisibleFirst)
664 NewPos =
Index - VisibleItems + 1;
668 NewPos = VisibleFirst;
672 if (VisibleFirst != NewPos)
676 ScrollInfo.
cbSize =
sizeof(ScrollInfo);
678 ScrollInfo.
nPos = NewPos;
684 if (VisibleFirst != NewPos)
688 (NewPos - VisibleFirst) * infoPtr->ItemHeight,
741 HFONT hOldFont = infoPtr->hFont;
742 infoPtr->hFont =
hFont;
744 if (hOldFont !=
hFont)
749 if (infoPtr->ShowingCaret)
797 UINT VisibleFirstIndex = rcUpdate->
top / infoPtr->ItemHeight;
798 UINT LastTouchedIndex = rcUpdate->bottom / infoPtr->ItemHeight;
811 ScrollPos + VisibleFirstIndex);
812 if (FirstItem !=
NULL)
814 RECT TextRect, ItemRect, CheckBox;
830 ItemRect.
top = VisibleFirstIndex * infoPtr->ItemHeight;
847 for (
Item = FirstItem, CurrentIndex = VisibleFirstIndex;
848 Item !=
NULL && CurrentIndex <= LastTouchedIndex;
852 ItemRect.
bottom = ItemRect.
top + infoPtr->ItemHeight;
864 infoPtr->TextColor[PrevEnabled]);
868 ItemHovered = (
Enabled && infoPtr->HoveredCheckItem ==
Item);
871 if (infoPtr->QuickSearchHitItem ==
Item)
875 SIZE_T TextLen, HighlightLen =
wcslen(infoPtr->QuickSearchText);
883 COLORREF HighlightTextColor, HighlightBackground;
884 RECT rcHighlight = TextRect;
889 rcHighlight.
right = rcHighlight.
left + TextSize.
cx;
896 HighlightBackground);
914 if (HighlightLen < TextLen)
920 Item->Name + HighlightLen,
937 CheckBox.
top = TextRect.
top;
941 IsPushed = (
Enabled &&
Item == infoPtr->FocusedCheckItem && infoPtr->HasFocus &&
943 infoPtr->FocusedPushed);
948 if (infoPtr->ThemeHandle !=
NULL)
952 (ItemHovered && infoPtr->HoveredCheckItemBox !=
CLB_DENY),
982 if (
Item == infoPtr->FocusedCheckItem && !(infoPtr->UIState & UISF_HIDEFOCUS) &&
984 infoPtr->FocusedCheckItemBox !=
CLB_DENY)
986 RECT rcFocus = CheckBox;
997 IsPushed = (
Enabled &&
Item == infoPtr->FocusedCheckItem && infoPtr->HasFocus &&
999 infoPtr->FocusedPushed);
1004 if (infoPtr->ThemeHandle !=
NULL)
1008 (ItemHovered && infoPtr->HoveredCheckItemBox ==
CLB_DENY),
1037 if (infoPtr->HasFocus && !(infoPtr->UIState & UISF_HIDEFOCUS) &&
1038 Item == infoPtr->FocusedCheckItem &&
1039 infoPtr->FocusedCheckItemBox ==
CLB_DENY)
1041 RECT rcFocus = CheckBox;
1051 TextRect.
top += infoPtr->ItemHeight;
1052 ItemRect.
top += infoPtr->ItemHeight;
1073 if (NewFocus != infoPtr->FocusedCheckItem)
1075 PCHECKITEM OldFocus = infoPtr->FocusedCheckItem;
1076 infoPtr->FocusedCheckItem = NewFocus;
1077 infoPtr->FocusedCheckItemBox = NewFocusBox;
1079 if (OldFocus !=
NULL)
1087 infoPtr->FocusedCheckItemBox = NewFocusBox;
1090 if (NewFocus !=
NULL)
1105 INT VisibleFirst, VisibleItems;
1113 if (
Index >= VisibleFirst)
1118 VisibleItems = ((rcClient.
bottom - rcClient.
top) + infoPtr->ItemHeight - 1) / infoPtr->ItemHeight;
1120 if (
Index <= VisibleFirst + VisibleItems)
1124 rcUpdate.
left = rcClient.
left + infoPtr->CheckBoxLeft[ItemBox] - (infoPtr->ItemHeight / 2);
1125 rcUpdate.
right = rcUpdate.
left + infoPtr->ItemHeight;
1126 rcUpdate.
top = ((
Index - VisibleFirst) * infoPtr->ItemHeight);
1127 rcUpdate.
bottom = rcUpdate.
top + infoPtr->ItemHeight;
1144 if (NewHotTrack != infoPtr->HoveredCheckItem)
1146 PCHECKITEM OldHotTrack = infoPtr->HoveredCheckItem;
1147 UINT OldHotTrackBox = infoPtr->HoveredCheckItemBox;
1149 infoPtr->HoveredCheckItem = NewHotTrack;
1150 infoPtr->HoveredCheckItemBox = NewHotTrackBox;
1152 if (OldHotTrack !=
NULL)
1161 infoPtr->HoveredCheckItemBox = NewHotTrackBox;
1164 if (NewHotTrack !=
NULL)
1179 DWORD OldState = CheckItem->State;
1181 BOOL Checked = (CheckItem->State & CheckedBit) != 0;
1184 CheckData.
NewState = (
Checked ? OldState & ~CheckedBit : OldState | CheckedBit);
1185 CheckData.
CheckBox = infoPtr->FocusedCheckItemBox;
1192 CheckItem->State = CheckData.
NewState;
1195 return (CheckItem->State != OldState);
1203 infoPtr->ShowingCaret =
TRUE;
1207 infoPtr->CaretWidth,
1219 infoPtr->ShowingCaret =
FALSE;
1253 prcItem->left = rcClient.
left;
1254 prcItem->right = rcClient.
right;
1255 prcItem->top = (
Index - VisibleFirst) * infoPtr->ItemHeight;
1256 prcItem->bottom = prcItem->top + infoPtr->ItemHeight;
1263 prcItem->bottom = 0;
1270 if (infoPtr->ShowingCaret && infoPtr->QuickSearchHitItem !=
NULL)
1282 if (infoPtr->QuickSearchText[0] ==
L'\0' ||
1284 infoPtr->QuickSearchHitItem->Name,
1285 wcslen(infoPtr->QuickSearchText),
1291 infoPtr->QuickSearchHitItem,
1311 if (infoPtr->QuickSearchEnabled && infoPtr->QuickSearchHitItem !=
NULL)
1313 PCHECKITEM OldHit = infoPtr->QuickSearchHitItem;
1315 infoPtr->QuickSearchHitItem =
NULL;
1316 infoPtr->QuickSearchText[0] =
L'\0';
1319 if (infoPtr->FocusedCheckItem !=
NULL)
1322 infoPtr->FocusedCheckItem);
1339 PCHECKITEM OldHit = infoPtr->QuickSearchHitItem;
1341 infoPtr->QuickSearchHitItem = NewHit;
1343 if (OldHit != NewHit)
1370 if (infoPtr->QuickSearchSetFocusDelay != 0)
1374 infoPtr->QuickSearchSetFocusDelay,
1383 if (infoPtr->QuickSearchEnabled)
1393 Ret = infoPtr->QuickSearchHitItem !=
NULL;
1401 infoPtr->QuickSearchHitItem,
1411 if (infoPtr->QuickSearchHitItem !=
NULL)
1413 INT SearchLen =
wcslen(infoPtr->QuickSearchText);
1417 infoPtr->QuickSearchText[--SearchLen] =
L'\0';
1423 infoPtr->QuickSearchText);
1446 INT SearchLen =
wcslen(infoPtr->QuickSearchText);
1447 if (SearchLen < (
INT)(
sizeof(infoPtr->QuickSearchText) /
sizeof(infoPtr->QuickSearchText[0])) - 1)
1449 infoPtr->QuickSearchText[SearchLen++] =
c;
1450 infoPtr->QuickSearchText[SearchLen] =
L'\0';
1453 infoPtr->QuickSearchText);
1465 infoPtr->QuickSearchText[--SearchLen] =
L'\0';
1491 goto HandleDefaultMessage;
1537 if (hWndCapture ==
NULL && infoPtr->ThemeHandle !=
NULL)
1541 UINT HotTrackItemBox;
1547 if (HotTrackItem !=
NULL && InCheckBox)
1549 if (infoPtr->HoveredCheckItem != HotTrackItem ||
1550 infoPtr->HoveredCheckItemBox != HotTrackItemBox)
1552 ChangeCheckItemHotTrack(infoPtr,
1559 ChangeCheckItemHotTrack(infoPtr,
1564 tme.
cbSize =
sizeof(tme);
1603 ScrollInfo.
cbSize =
sizeof(ScrollInfo);
1619 if (ScrollInfo.
nPos < ScrollInfo.
nMax)
1626 if (ScrollInfo.
nPos > 0)
1645 ScrollLines =
max(1,
1648 if (ScrollInfo.
nPos + ScrollLines <= ScrollInfo.
nMax)
1650 ScrollInfo.
nPos += ScrollLines;
1672 ScrollLines =
max(1,
1675 if (ScrollInfo.
nPos >= ScrollLines)
1677 ScrollInfo.
nPos -= ScrollLines;
1681 ScrollInfo.
nPos = 0;
1694 ScrollInfo.
nPos = 0;
1698 if (OldPos != ScrollInfo.
nPos)
1707 if (OldPos != ScrollInfo.
nPos)
1777 if (
Item->State != OldState)
1887 case WM_STYLECHANGED:
1907 UINT ScrollLines = 3;
1915 if (ScrollLines != 0 &&
1920 ScrollInfo.
cbSize =
sizeof(ScrollInfo);
1930 if (ScrollInfo.
nPos < 0)
1931 ScrollInfo.
nPos = 0;
1932 else if (ScrollInfo.
nPos > ScrollInfo.
nMax)
1935 if (OldPos != ScrollInfo.
nPos)
1944 if (OldPos != ScrollInfo.
nPos)
2011 UINT NewFocusBox = 0;
2023 if (NewFocus !=
NULL)
2109 DWORD OtherStateOld = PtItem->
State & OtherStateMask;
2113 ((PtItem->
State & OtherStateMask) != OtherStateOld))
2172 DWORD OtherStateMask;
2173 DWORD OtherStateOld;
2179 OtherStateMask = ((OtherBox ==
CLB_ALLOW) ?
2207 UINT NewFocusBox = 0;
2233 goto HandleDefaultMessage;
2335 if (infoPtr->HoveredCheckItem !=
NULL)
2338 ChangeCheckItemHotTrack(infoPtr,
2345 case WM_THEMECHANGED:
2347 if (infoPtr->ThemeHandle !=
NULL)
2350 infoPtr->ThemeHandle =
NULL;
2369 &infoPtr->HoverTime,
2401 case WM_UPDATEUISTATE:
2416 if (OldUIState != infoPtr->
UIState)
2476 if (infoPtr !=
NULL)
2487 infoPtr->CheckItemListHead =
NULL;
2488 infoPtr->CheckItemCount = 0;
2492 &infoPtr->CaretWidth,
2495 infoPtr->CaretWidth = 2;
2497 infoPtr->ItemHeight = 10;
2498 infoPtr->ShowingCaret =
FALSE;
2500 infoPtr->HasFocus =
FALSE;
2501 infoPtr->FocusedCheckItem =
NULL;
2502 infoPtr->FocusedCheckItemBox = 0;
2503 infoPtr->FocusedPushed =
FALSE;
2511 infoPtr->CheckBoxLeft[0] = rcClient.
right - 30;
2512 infoPtr->CheckBoxLeft[1] = rcClient.
right - 15;
2514 infoPtr->QuickSearchEnabled =
FALSE;
2515 infoPtr->QuickSearchText[0] =
L'\0';
2521 infoPtr->HoveredCheckItem =
NULL;
2522 infoPtr->HoveredCheckItemBox = 0;
2525 &infoPtr->HoverTime,
2538 infoPtr->ThemeHandle =
NULL;
2564 if (infoPtr->ThemeHandle !=
NULL)
2581 HandleDefaultMessage:
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
#define WM_SYSCOLORCHANGE
HWND WINAPI GetAncestor(_In_ HWND, _In_ UINT)
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
#define CLM_SETCHECKBOXCOLUMN
UINT QuickSearchSetFocusDelay
static VOID ChangeCheckItemFocus(IN PCHECKLISTWND infoPtr, IN PCHECKITEM NewFocus, IN UINT NewFocusBox)
#define CLN_CHANGINGITEMCHECKBOX
HDC WINAPI GetDC(_In_opt_ HWND)
static PCHECKITEM FindEnabledCheckBox(IN PCHECKLISTWND infoPtr, IN BOOL ReverseSearch, OUT UINT *CheckBox)
static PCHECKITEM FindCheckItem(IN PCHECKLISTWND infoPtr, IN LPWSTR SearchText)
struct _CHECKLISTWND * PCHECKLISTWND
BOOL WINAPI DrawFocusRect(_In_ HDC, _In_ LPCRECT)
#define CIS_ALLOWDISABLED
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
#define SystemParametersInfo
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
HWND WINAPI SetFocus(_In_opt_ HWND)
UINT QuickSearchResetDelay
VOID UnregisterCheckListControl(HINSTANCE hInstance)
#define DEFAULT_QUICKSEARCH_RESET_DELAY
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
WCHAR QuickSearchText[65]
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
#define CI_TEXT_SELECTIONMARGIN
#define CLM_FINDITEMBYACCESSMASK
DWORD WINAPI GetSysColor(_In_ int)
BOOL RegisterCheckListControl(IN HINSTANCE hInstance)
struct tagNMHDR * LPNMHDR
BOOL WINAPI TrackMouseEvent(_Inout_ LPTRACKMOUSEEVENT)
static PCHECKITEM FindLastEnabledCheckBox(IN PCHECKLISTWND infoPtr, OUT UINT *CheckBox)
struct _CHECKLISTWND CHECKLISTWND
static PCHECKITEM FindFirstEnabledCheckBox(IN PCHECKLISTWND infoPtr, OUT UINT *CheckBox)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
#define CLM_SETQUICKSEARCH_TIMEOUT_RESET
BOOL WINAPI HideCaret(_In_opt_ HWND)
BOOL WINAPI IsAppThemed(void)
BOOL WINAPI CreateCaret(_In_ HWND, _In_opt_ HBITMAP, _In_ int, _In_ int)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
HWND WINAPI GetCapture(void)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
static VOID ChangeSearchHit(IN PCHECKLISTWND infoPtr, IN PCHECKITEM NewHit)
static PCHECKITEM FindCheckItemByIndex(IN PCHECKLISTWND infoPtr, IN INT Index)
BOOL WINAPI SetBrushOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
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 IsWindowEnabled(_In_ HWND)
#define COLOR_HIGHLIGHTTEXT
static UINT ClearCheckBoxes(IN PCHECKLISTWND infoPtr)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
SHORT WINAPI GetKeyState(_In_ int)
struct _CHECKITEM CHECKITEM
#define CI_TEXT_MARGIN_WIDTH
static VOID UpdateCheckItem(IN PCHECKLISTWND infoPtr, IN PCHECKITEM Item)
static const WCHAR szCheckListWndClass[]
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
PCHECKITEM CheckItemListHead
static PCHECKITEM FindNextEnabledCheckBox(IN PCHECKLISTWND infoPtr, OUT UINT *CheckBox)
static VOID PaintControl(IN PCHECKLISTWND infoPtr, IN HDC hDC, IN PRECT rcUpdate)
#define TIMER_ID_SETHITFOCUS
_In_ WDFCOLLECTION _In_ ULONG Index
int WINAPI GetScrollPos(_In_ HWND, _In_ int)
_In_ ACCESS_MASK AccessMask
static VOID RemoveCaret(IN PCHECKLISTWND infoPtr)
static PCHECKITEM AddCheckItem(IN PCHECKLISTWND infoPtr, IN LPWSTR Name, IN DWORD State, IN ACCESS_MASK AccessMask, OUT INT *Index)
#define CLM_CLEARCHECKBOXES
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
BOOL WINAPI GetScrollInfo(_In_ HWND, _In_ int, _Inout_ LPSCROLLINFO)
#define CLM_GETCHECKBOXCOLUMN
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
static VOID MapItemToRect(IN PCHECKLISTWND infoPtr, IN PCHECKITEM CheckItem, OUT RECT *prcItem)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
static LRESULT NotifyControlParent(IN PCHECKLISTWND infoPtr, IN UINT code, IN OUT PVOID data)
BOOL WINAPI GetUpdateRect(_In_ HWND, _Out_opt_ LPRECT, _In_ BOOL)
static VOID KillQuickSearchTimers(IN PCHECKLISTWND infoPtr)
static PCHECKITEM FindPreviousEnabledCheckBox(IN PCHECKLISTWND infoPtr, OUT UINT *CheckBox)
static VOID ClearCheckItems(IN PCHECKLISTWND infoPtr)
static INT CheckItemToIndex(IN PCHECKLISTWND infoPtr, IN PCHECKITEM Item)
static VOID MakeCheckItemVisible(IN PCHECKLISTWND infoPtr, IN PCHECKITEM Item)
GLint GLint GLsizei GLsizei height
static BOOL QuickSearchFindHit(IN PCHECKLISTWND infoPtr, IN WCHAR c)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
static HFONT RetChangeControlFont(IN PCHECKLISTWND infoPtr, IN HFONT hFont, IN BOOL Redraw)
HWND WINAPI SetCapture(_In_ HWND hWnd)
static VOID DisplayCaret(IN PCHECKLISTWND infoPtr)
static PCHECKITEM PtToCheckItemBox(IN PCHECKLISTWND infoPtr, IN PPOINT ppt, OUT UINT *CheckBox, OUT BOOL *DirectlyInCheckBox)
#define DEFAULT_QUICKSEARCH_SETFOCUS_DELAY
#define CLM_SETQUICKSEARCH_TIMEOUT_SETFOCUS
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 LRESULT CALLBACK CheckListWndProc(IN HWND hwnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
BOOL WINAPI DestroyCaret(void)
static VOID UpdateCaretPos(IN PCHECKLISTWND infoPtr)
struct tagCREATESTRUCTW * LPCREATESTRUCTW
#define TIMER_ID_RESETQUICKSEARCH
static VOID UpdateCheckItemBox(IN PCHECKLISTWND infoPtr, IN PCHECKITEM Item, IN UINT ItemBox)
static BOOL ChangeCheckBox(IN PCHECKLISTWND infoPtr, IN PCHECKITEM CheckItem, IN UINT CheckItemBox)
#define SW_SCROLLCHILDREN
GLint GLint GLint GLint GLint GLint y
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define CLM_ENABLEQUICKSEARCH
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static VOID UpdateControl(IN PCHECKLISTWND infoPtr)
BOOL WINAPI ReleaseCapture(void)
static VOID EscapeQuickSearch(IN PCHECKLISTWND infoPtr)
static UINT GetIdealItemHeight(IN PCHECKLISTWND infoPtr)
#define GetTextExtentPoint32
static BOOL DeleteCheckItem(IN PCHECKLISTWND infoPtr, IN PCHECKITEM Item)
BOOL WINAPI ShowCaret(_In_opt_ HWND)
static LPDATABLOCK_HEADER NextItem(LPDBLIST lpList)
PCHECKITEM FocusedCheckItem
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
PCHECKITEM QuickSearchHitItem
BOOL WINAPI SetCaretPos(_In_ int, _In_ int)
int WINAPI SetScrollInfo(_In_ HWND, _In_ int, _In_ LPCSCROLLINFO, _In_ BOOL)
#define HeapFree(x, y, z)
static INT FindCheckItemIndexByAccessMask(IN PCHECKLISTWND infoPtr, IN ACCESS_MASK AccessMask)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
#define CI_TEXT_MARGIN_HEIGHT
struct _CHECKITEM * PCHECKITEM