72#define WCBE_ACTEDIT 0x00000001
76#define WCBE_EDITCHG 0x00000002
77#define WCBE_EDITHASCHANGED (WCBE_ACTEDIT | WCBE_EDITCHG)
78#define WCBE_EDITFOCUSED 0x00000004
79#define WCBE_MOUSECAPTURED 0x00000008
80#define WCBE_MOUSEDRAGGED 0x00000010
82#define ID_CB_EDIT 1001
95#define ODS_COMBOEXLBOX 0x4000
106#define CBE_STARTOFFSET 6
111#define COMBO_SUBCLASSID 1
112#define EDIT_SUBCLASSID 2
114#define COMBOEX_GetInfoPtr(hwnd) ((COMBOEX_INFO *)GetWindowLongPtrW (hwnd, 0))
141 TRACE(
"item %p - mask=%08x, pszText=%p, cchTM=%d, iImage=%d\n",
143 TRACE(
"item %p - iSelectedImage=%d, iOverlay=%d, iIndent=%d, lParam=%08lx\n",
152 TRACE(
"input - mask=%08x, iItem=%ld, pszText=%p, cchTM=%d, iImage=%d\n",
157 TRACE(
"input - iSelectedImage=%d, iOverlay=%d, iIndent=%d, lParam=%08lx\n",
212 if (astr &&
hdr->ceItem.pszText == (
LPWSTR)astr)
213 hdr->ceItem.pszText = wstr;
276 moving = infoPtr->
items;
279 while (moving && (moving !=
item)) {
280 moving = moving->
next;
283 if (!moving || (
index < 0)) {
284 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
298 return item->pszText;
340 TRACE(
"selected font hwnd=%p, height=%d\n", nfont,
size->cy);
394 TRACE(
"Combo font x=%d, y=%d\n", mysize.
cx, mysize.
cy);
400 TRACE(
"Combo client (%s), setting Edit to (%d,%d)-(%d,%d)\n",
417 TRACE(
"upgraded height due to image: height=%d\n",
cy);
423 RECT comboRect, ourRect;
455 return &infoPtr->
edit;
465 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
616 while ((
i >
index) && moving) {
617 moving = moving->
next;
621 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
637 if (!
item->pszText) {
683 if (!wstr)
return -1;
718 TRACE(
"EX_NOEDITIMAGE state changed to %d\n",
807 if (!wstr)
return FALSE;
823 TRACE(
"to %s, was %s\n",
value ?
"TRUE":
"FALSE", bTemp ?
"TRUE":
"FALSE");
865 ERR(
"data structures damaged!\n");
872 TRACE(
"non-valid result from combo, returning 0x%08lx\n",
ret);
904 ERR(
"data structures damaged!\n");
909 TRACE(
"setting lparam to 0x%08lx\n",
data);
912 TRACE(
"non-valid result from combo %p\n",
item1);
919 RECT cb_wrect, cbx_wrect, cbx_crect;
934 TRACE(
"EX window=(%s), client=(%s)\n",
936 TRACE(
"CB window=(%s), EX setting=(0,0)-(%d,%d)\n",
959 if (!infoPtr)
return -1;
972 WARN(
"wrong response to WM_NOTIFYFORMAT (%d), assuming ANSI\n",
i);
983 TRACE(
"EX window=(%s), client=(%s)\n",
1029 if (!infoPtr->
font) {
1050 TRACE(
"EX window=(%s) client=(%s) CB wnd=(%s)\n",
1102 for (cursel = 0; cursel <
n; cursel++){
1108 TRACE(
"failed to find match??? item=%p cursel=%d\n",
1117 TRACE(
"failed to find match??? item=%p cursel=%d\n",
1125 oldflags = infoPtr->
flags;
1162 ERR(
"item %ld not found. Problem!\n", oldItem);
1217 TRACE(
"CtlType=%08x, CtlID=%08x, itemID=%08x, hwnd=%p, data=%08lx\n",
1222 olditem = infoPtr->
items;
1238 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
1241 olditem =
item->next;
1268 int drawimage, drawstate, xioff,
selected;
1270 TRACE(
"DRAWITEMSTRUCT: CtlType=0x%08x CtlID=0x%08x\n",
1272 TRACE(
"itemID=0x%08x itemAction=0x%08x itemState=0x%08x\n",
1274 TRACE(
"hWnd=%p hDC=%p (%s) itemData=0x%08lx\n",
1288 if (dis->
itemID == 0xffffffff) {
1292 TRACE(
"drawing item -1 special focus, rect=(%s)\n",
1300 RECT exrc, cbrc, edrc;
1303 SetRect(&edrc, -1, -1, -1, -1);
1305 TRACE(
"window rects ex=(%s), cb=(%s), ed=(%s)\n",
1311 ERR(
"NOT drawing item -1 special focus, rect=(%s), action=%08x, state=%08x\n",
1319 if (dis->
itemID == 0xffffffff) {
1325 item->mask &= ~CBEIF_TEXT;
1332 TRACE(
"edit control hwndEdit=%p, text len=%d str=%s\n",
1343 ERR(
"invalid item for id %d\n", dis->
itemID);
1372 drawimage =
item->iImage;
1374 drawimage =
item->iSelectedImage;
1410 int overlay =
item->iOverlay;
1440 if (drawimage >= 0 &&
1459 TRACE(
"drawing item %d text, rect=(%s)\n",
1469 rect.left = xbase + xioff - 1;
1551 TRACE(
"adjusted height hwnd=%p, height=%d\n",
1561 DWORD oldstyle, newstyle;
1565 if (newstyle != oldstyle) {
1566 TRACE(
"req style %08x, resetting style %08x\n",
1567 oldstyle, newstyle);
1616 RECT cbx_wrect, cbx_crect, cb_wrect;
1628 TRACE(
"winpos=(%d,%d %dx%d) flags=0x%08x\n",
1630 TRACE(
"EX window=(%s), client=(%s)\n",
1632 TRACE(
"CB window=(%s), EX setting=(0,0)-(%d,%d)\n",
1661 WCHAR edit_text[260];
1667 TRACE(
"hwnd=%p msg=%x wparam=%lx lParam=%lx, info_ptr=%p\n",
1701 TRACE(
"special code for VK_ESCAPE\n");
1715 ERR(
"item %ld not found. Problem!\n", oldItem);
1725 TRACE(
"special code for VK_RETURN\n");
1736 TRACE(
"handling VK_RETURN, selected = %ld, selected_text=%s\n",
1738 TRACE(
"handling VK_RETURN, edittext=%s\n",
1751 TRACE(
"Notify requested abort of change\n");
1758 if (oldItem != -1) {
1772 if (oldItem >= 0 && oldItem + step >= 0)
1792 infoPtr->
flags &= ~WCBE_EDITFOCUSED;
1824 WCHAR edit_text[260];
1826 TRACE(
"hwnd=%p msg=%x wparam=%lx lParam=%lx, info_ptr=%p\n",
1888 infoPtr->
flags &= ~WCBE_MOUSECAPTURED;
1890 infoPtr->
flags &= ~WCBE_MOUSEDRAGGED;
1940 infoPtr->
flags &= ~WCBE_EDITCHG;
1962 TRACE(
"handling EN_CHANGE, selected = %ld, selected_text=%s\n",
1964 TRACE(
"handling EN_CHANGE, edittext=%s\n",
1968 if (cmptext (lastwrk, edit_text)) {
2136 case WM_NOTIFYFORMAT:
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
PVOID Alloc(IN DWORD dwFlags, IN SIZE_T dwBytes)
static BOOL COMBOEX_SetItemA(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA const *cit)
static LRESULT COMBOEX_Command(COMBOEX_INFO *infoPtr, WPARAM wParam)
static INT COMBOEX_FindStringExact(const COMBOEX_INFO *infoPtr, INT start, LPCWSTR str)
static BOOL COMBOEX_SetItemW(COMBOEX_INFO *infoPtr, const COMBOBOXEXITEMW *cit)
static LRESULT COMBOEX_MeasureItem(COMBOEX_INFO const *infoPtr, MEASUREITEMSTRUCT *mis)
static INT COMBOEX_SetItemHeight(COMBOEX_INFO const *infoPtr, INT index, UINT height)
static LRESULT COMBOEX_SetFont(COMBOEX_INFO *infoPtr, HFONT font, BOOL redraw)
static void COMBOEX_GetComboFontSize(const COMBOEX_INFO *infoPtr, SIZE *size)
static void COMBOEX_CopyItem(const CBE_ITEMDATA *item, COMBOBOXEXITEMW *cit)
static LPCSTR debugstr_txt(LPCWSTR str)
static BOOL COMBOEX_HasEditChanged(COMBOEX_INFO const *infoPtr)
static INT COMBOEX_InsertItemW(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMW const *cit)
static BOOL is_textW(LPCWSTR str)
static DWORD COMBOEX_SetExtendedStyle(COMBOEX_INFO *infoPtr, DWORD mask, DWORD style)
static BOOL COMBOEX_GetItemW(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMW *cit)
struct _CBE_ITEMDATA CBE_ITEMDATA
static void COMBOEX_DumpItem(CBE_ITEMDATA const *item)
static LRESULT COMBOEX_NCCreate(HWND hwnd)
#define COMBOEX_GetInfoPtr(hwnd)
static CBE_ITEMDATA * COMBOEX_FindItem(COMBOEX_INFO *infoPtr, INT_PTR index)
static INT COMBOEX_GetIndex(COMBOEX_INFO const *infoPtr, CBE_ITEMDATA const *item)
static INT COMBOEX_Notify(const COMBOEX_INFO *infoPtr, INT code, NMHDR *hdr)
INT(WINAPI * cmp_func_t)(LPCWSTR, LPCWSTR)
static INT COMBOEX_InsertItemA(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA const *cit)
static LRESULT WINAPI COMBOEX_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static void COMBOEX_NotifyDragBegin(const COMBOEX_INFO *infoPtr, LPCWSTR wstr)
static LRESULT COMBOEX_SetRedraw(const COMBOEX_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
#define WCBE_MOUSECAPTURED
static void COMBOEX_DumpInput(COMBOBOXEXITEMW const *input)
static INT COMBOEX_NotifyEndEdit(const COMBOEX_INFO *infoPtr, NMCBEENDEDITW *neew, LPCWSTR wstr)
static LRESULT COMBOEX_WindowPosChanging(const COMBOEX_INFO *infoPtr, WINDOWPOS *wp)
static LRESULT COMBOEX_Enable(COMBOEX_INFO *infoPtr, BOOL enable)
static DWORD_PTR COMBOEX_SetItemData(COMBOEX_INFO *infoPtr, INT_PTR index, DWORD_PTR data)
static UINT COMBOEX_GetListboxText(COMBOEX_INFO *infoPtr, INT_PTR n, LPWSTR buf)
static LRESULT COMBOEX_Create(HWND hwnd, CREATESTRUCTA const *cs)
static INT COMBOEX_SetCursel(COMBOEX_INFO *infoPtr, INT_PTR index)
static BOOL is_textA(LPCSTR str)
static void COMBOEX_ReSize(const COMBOEX_INFO *infoPtr)
void COMBOEX_Unregister(void)
static LRESULT COMBOEX_NotifyFormat(COMBOEX_INFO *infoPtr, LPARAM lParam)
static LRESULT CALLBACK COMBOEX_ComboWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uId, DWORD_PTR ref_data)
static DWORD_PTR COMBOEX_GetItemData(COMBOEX_INFO *infoPtr, INT_PTR index)
void COMBOEX_Register(void)
static BOOL COMBOEX_SetUnicodeFormat(COMBOEX_INFO *infoPtr, BOOL value)
static void COMBOEX_ResetContent(COMBOEX_INFO *infoPtr)
static LRESULT CALLBACK COMBOEX_EditWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uId, DWORD_PTR ref_data)
static INT COMBOEX_NotifyItem(const COMBOEX_INFO *infoPtr, UINT code, NMCOMBOBOXEXW *hdr)
static BOOL COMBOEX_WM_DeleteItem(COMBOEX_INFO *infoPtr, DELETEITEMSTRUCT const *dis)
static HIMAGELIST COMBOEX_SetImageList(COMBOEX_INFO *infoPtr, HIMAGELIST himl)
#define WCBE_EDITHASCHANGED
static void COMBOEX_SetEditText(const COMBOEX_INFO *infoPtr, CBE_ITEMDATA *item)
static LRESULT COMBOEX_Destroy(COMBOEX_INFO *infoPtr)
static INT COMBOEX_DeleteItem(COMBOEX_INFO *infoPtr, INT_PTR index)
static BOOL COMBOEX_GetItemA(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA *cit)
#define WCBE_MOUSEDRAGGED
static cmp_func_t get_cmp_func(COMBOEX_INFO const *infoPtr)
static LRESULT COMBOEX_DrawItem(COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *dis)
static CBE_ITEMDATA * get_item_data(const COMBOEX_INFO *infoPtr, INT index)
static LPCWSTR COMBOEX_GetText(const COMBOEX_INFO *infoPtr, CBE_ITEMDATA *item)
static void COMBOEX_FreeText(CBE_ITEMDATA *item)
static void COMBOEX_AdjustEditPos(const COMBOEX_INFO *infoPtr)
static LRESULT COMBOEX_Size(COMBOEX_INFO *infoPtr, INT width, INT height)
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
LRESULT WINAPI SetPathWordBreakProc(HWND hwnd, BOOL bSet)
VOID COMCTL32_RefreshSysColors(void) DECLSPEC_HIDDEN
COMCTL32_SysColor comctl32_color
BOOL WINAPI SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIDSubclass, DWORD_PTR dwRef)
BOOL WINAPI RemoveWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uID)
LRESULT WINAPI DefSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static char selected[MAX_PATH+1]
BOOL WINAPI ImageList_Draw(HIMAGELIST himl, INT i, HDC hdc, INT x, INT y, UINT fStyle)
BOOL WINAPI ImageList_SetOverlayImage(HIMAGELIST himl, INT iImage, INT iOverlay)
BOOL WINAPI ImageList_GetImageInfo(HIMAGELIST himl, INT i, IMAGEINFO *pImageInfo)
static const WCHAR indent[]
#define WideCharToMultiByte
#define MultiByteToWideChar
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLenum GLenum input
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
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
#define memcpy(s1, s2, n)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
#define CBEM_GETUNICODEFORMAT
_Out_opt_ int _Out_opt_ int * cy
#define CBES_EX_NOEDITIMAGE
#define CBEM_HASEDITCHANGED
#define LPSTR_TEXTCALLBACKW
#define CBEM_GETIMAGELIST
#define LPSTR_TEXTCALLBACKA
#define CBEIF_SELECTEDIMAGE
#define CBEM_GETCOMBOCONTROL
#define CBEN_GETDISPINFOA
#define CBEM_SETEXTENDEDSTYLE
#define CBES_EX_NOEDITIMAGEINDENT
#define CBEM_SETIMAGELIST
#define CBES_EX_NOSIZELIMIT
#define CBES_EX_CASESENSITIVE
#define INDEXTOOVERLAYMASK(i)
#define CBEN_GETDISPINFOW
#define CBEM_SETUNICODEFORMAT
#define CBES_EX_PATHWORDBREAKPROC
#define CBEM_GETEXTENDEDSTYLE
#define CBEM_GETEDITCONTROL
void redraw(int x, int y, int cx, int cy)
static unsigned __int64 next
COLORREF clrHighlightText
char szText[CBEMAXSTRLEN]
WCHAR szText[CBEMAXSTRLEN]
char szText[CBEMAXSTRLEN]
WCHAR szText[CBEMAXSTRLEN]
struct _CBE_ITEMDATA * next
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI GetTextExtentPointW(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
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)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
HWND WINAPI GetFocus(void)
#define CBS_OWNERDRAWFIXED
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define CB_SETDROPPEDWIDTH
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)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CBS_NOINTEGRALHEIGHT
#define WM_WINDOWPOSCHANGING
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
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 *)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CB_FINDSTRINGEXACT
#define SPI_GETICONTITLELOGFONT
#define WM_SYSCOLORCHANGE
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI IsWindowUnicode(_In_ HWND)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define CB_GETDROPPEDCONTROLRECT
HWND WINAPI SetFocus(_In_opt_ HWND)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HDC WINAPI GetDC(_In_opt_ HWND)
int WINAPI GetWindowTextLengthW(_In_ HWND)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
#define CB_GETDROPPEDSTATE
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
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 SetWindowLongPtrW
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI IsWindowVisible(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free