33 #include "wine/unicode.h" 73 #define WCBE_ACTEDIT 0x00000001 77 #define WCBE_EDITCHG 0x00000002 78 #define WCBE_EDITHASCHANGED (WCBE_ACTEDIT | WCBE_EDITCHG) 79 #define WCBE_EDITFOCUSED 0x00000004 80 #define WCBE_MOUSECAPTURED 0x00000008 81 #define WCBE_MOUSEDRAGGED 0x00000010 83 #define ID_CB_EDIT 1001 96 #define ODS_COMBOEXLBOX 0x4000 104 #define CBE_INDENT 10 107 #define CBE_STARTOFFSET 6 112 #define COMBO_SUBCLASSID 1 113 #define EDIT_SUBCLASSID 2 115 #define COMBOEX_GetInfoPtr(hwnd) ((COMBOEX_INFO *)GetWindowLongPtrW (hwnd, 0)) 142 TRACE(
"item %p - mask=%08x, pszText=%p, cchTM=%d, iImage=%d\n",
144 TRACE(
"item %p - iSelectedImage=%d, iOverlay=%d, iIndent=%d, lParam=%08lx\n",
153 TRACE(
"input - mask=%08x, iItem=%ld, pszText=%p, cchTM=%d, iImage=%d\n",
158 TRACE(
"input - iSelectedImage=%d, iOverlay=%d, iIndent=%d, lParam=%08lx\n",
213 if (astr &&
hdr->ceItem.pszText == (
LPWSTR)astr)
214 hdr->ceItem.pszText = wstr;
277 moving = infoPtr->
items;
280 while (moving && (moving !=
item)) {
281 moving = moving->
next;
284 if (!moving || (
index < 0)) {
285 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
299 return item->pszText;
341 TRACE(
"selected font hwnd=%p, height=%d\n", nfont,
size->cy);
395 TRACE(
"Combo font x=%d, y=%d\n", mysize.
cx, mysize.
cy);
401 TRACE(
"Combo client (%s), setting Edit to (%d,%d)-(%d,%d)\n",
418 TRACE(
"upgraded height due to image: height=%d\n",
cy);
424 RECT comboRect, ourRect;
456 return &infoPtr->
edit;
466 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
617 while ((
i >
index) && moving) {
618 moving = moving->
next;
622 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
638 if (!
item->pszText) {
684 if (!wstr)
return -1;
719 TRACE(
"EX_NOEDITIMAGE state changed to %d\n",
808 if (!wstr)
return FALSE;
824 TRACE(
"to %s, was %s\n",
value ?
"TRUE":
"FALSE", bTemp ?
"TRUE":
"FALSE");
866 ERR(
"data structures damaged!\n");
873 TRACE(
"non-valid result from combo, returning 0x%08lx\n",
ret);
905 ERR(
"data structures damaged!\n");
910 TRACE(
"setting lparam to 0x%08lx\n",
data);
913 TRACE(
"non-valid result from combo %p\n",
item1);
920 RECT cb_wrect, cbx_wrect, cbx_crect;
935 TRACE(
"EX window=(%s), client=(%s)\n",
937 TRACE(
"CB window=(%s), EX setting=(0,0)-(%d,%d)\n",
960 if (!infoPtr)
return -1;
973 WARN(
"wrong response to WM_NOTIFYFORMAT (%d), assuming ANSI\n",
i);
984 TRACE(
"EX window=(%s), client=(%s)\n",
1030 if (!infoPtr->font) {
1036 if (infoPtr->hwndEdit) {
1051 TRACE(
"EX window=(%s) client=(%s) CB wnd=(%s)\n",
1103 for (cursel = 0; cursel <
n; cursel++){
1109 TRACE(
"failed to find match??? item=%p cursel=%d\n",
1118 TRACE(
"failed to find match??? item=%p cursel=%d\n",
1126 oldflags = infoPtr->
flags;
1163 ERR(
"item %ld not found. Problem!\n", oldItem);
1218 TRACE(
"CtlType=%08x, CtlID=%08x, itemID=%08x, hwnd=%p, data=%08lx\n",
1223 olditem = infoPtr->
items;
1239 ERR(
"COMBOBOXEX item structures broken. Please report!\n");
1242 olditem =
item->next;
1269 int drawimage, drawstate, xioff,
selected;
1271 TRACE(
"DRAWITEMSTRUCT: CtlType=0x%08x CtlID=0x%08x\n",
1273 TRACE(
"itemID=0x%08x itemAction=0x%08x itemState=0x%08x\n",
1275 TRACE(
"hWnd=%p hDC=%p (%s) itemData=0x%08lx\n",
1289 if (dis->
itemID == 0xffffffff) {
1293 TRACE(
"drawing item -1 special focus, rect=(%s)\n",
1301 RECT exrc, cbrc, edrc;
1304 SetRect(&edrc, -1, -1, -1, -1);
1306 TRACE(
"window rects ex=(%s), cb=(%s), ed=(%s)\n",
1312 ERR(
"NOT drawing item -1 special focus, rect=(%s), action=%08x, state=%08x\n",
1320 if (dis->
itemID == 0xffffffff) {
1333 TRACE(
"edit control hwndEdit=%p, text len=%d str=%s\n",
1344 ERR(
"invalid item for id %d\n", dis->
itemID);
1373 drawimage =
item->iImage;
1375 drawimage =
item->iSelectedImage;
1411 int overlay =
item->iOverlay;
1441 if (drawimage >= 0 &&
1460 TRACE(
"drawing item %d text, rect=(%s)\n",
1470 rect.left = xbase + xioff - 1;
1552 TRACE(
"adjusted height hwnd=%p, height=%d\n",
1562 DWORD oldstyle, newstyle;
1566 if (newstyle != oldstyle) {
1567 TRACE(
"req style %08x, resetting style %08x\n",
1568 oldstyle, newstyle);
1617 RECT cbx_wrect, cbx_crect, cb_wrect;
1629 TRACE(
"winpos=(%d,%d %dx%d) flags=0x%08x\n",
1631 TRACE(
"EX window=(%s), client=(%s)\n",
1633 TRACE(
"CB window=(%s), EX setting=(0,0)-(%d,%d)\n",
1662 WCHAR edit_text[260];
1668 TRACE(
"hwnd=%p msg=%x wparam=%lx lParam=%lx, info_ptr=%p\n",
1702 TRACE(
"special code for VK_ESCAPE\n");
1716 ERR(
"item %ld not found. Problem!\n", oldItem);
1726 TRACE(
"special code for VK_RETURN\n");
1737 TRACE(
"handling VK_RETURN, selected = %ld, selected_text=%s\n",
1739 TRACE(
"handling VK_RETURN, edittext=%s\n",
1752 TRACE(
"Notify requested abort of change\n");
1759 if (oldItem != -1) {
1773 if (oldItem >= 0 && oldItem + step >= 0)
1825 WCHAR edit_text[260];
1827 TRACE(
"hwnd=%p msg=%x wparam=%lx lParam=%lx, info_ptr=%p\n",
1963 TRACE(
"handling EN_CHANGE, selected = %ld, selected_text=%s\n",
1965 TRACE(
"handling EN_CHANGE, edittext=%s\n",
1969 if (cmptext (lastwrk, edit_text)) {
2137 case WM_NOTIFYFORMAT:
#define CBEN_GETDISPINFOW
#define CBS_OWNERDRAWFIXED
static void COMBOEX_ReSize(const COMBOEX_INFO *infoPtr)
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 RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
GLint GLint GLsizei width
#define WCBE_MOUSEDRAGGED
#define WM_SYSCOLORCHANGE
WCHAR szText[CBEMAXSTRLEN]
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
static INT COMBOEX_FindStringExact(const COMBOEX_INFO *infoPtr, INT start, LPCWSTR str)
static void COMBOEX_SetEditText(const COMBOEX_INFO *infoPtr, CBE_ITEMDATA *item)
static CBE_ITEMDATA * get_item_data(const COMBOEX_INFO *infoPtr, INT index)
static CBE_ITEMDATA * COMBOEX_FindItem(COMBOEX_INFO *infoPtr, INT_PTR index)
static LRESULT WINAPI COMBOEX_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
GLubyte GLubyte GLubyte GLubyte w
WINE_DEFAULT_DEBUG_CHANNEL(comboex)
#define CB_GETDROPPEDSTATE
struct _CBE_ITEMDATA * next
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
static const WCHAR indent[]
#define WideCharToMultiByte
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
#define CBEM_GETUNICODEFORMAT
static BOOL COMBOEX_HasEditChanged(COMBOEX_INFO const *infoPtr)
HDC WINAPI GetDC(_In_opt_ HWND)
#define CB_SETDROPPEDWIDTH
static BOOL COMBOEX_WM_DeleteItem(COMBOEX_INFO *infoPtr, DELETEITEMSTRUCT const *dis)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
GLdouble GLdouble GLdouble r
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
GLuint GLuint GLsizei count
BOOL WINAPI DrawFocusRect(_In_ HDC, _In_ LPCRECT)
static void COMBOEX_NotifyDragBegin(const COMBOEX_INFO *infoPtr, LPCWSTR wstr)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
GLint GLint GLint GLint GLint x
HWND WINAPI SetFocus(_In_opt_ HWND)
#define CBES_EX_PATHWORDBREAKPROC
char szText[CBEMAXSTRLEN]
static UINT COMBOEX_GetListboxText(COMBOEX_INFO *infoPtr, INT_PTR n, LPWSTR buf)
static void COMBOEX_DumpInput(COMBOBOXEXITEMW const *input)
#define GetWindowLongPtrW
BOOL WINAPI ImageList_Draw(HIMAGELIST himl, INT i, HDC hdc, INT x, INT y, UINT fStyle)
#define WCBE_EDITHASCHANGED
static BOOL is_textW(LPCWSTR str)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
static LRESULT COMBOEX_Enable(COMBOEX_INFO *infoPtr, BOOL enable)
#define CBES_EX_NOEDITIMAGEINDENT
static DWORD COMBOEX_SetExtendedStyle(COMBOEX_INFO *infoPtr, DWORD mask, DWORD style)
static LRESULT COMBOEX_SetFont(COMBOEX_INFO *infoPtr, HFONT font, BOOL redraw)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
#define CBEN_GETDISPINFOA
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
static DWORD_PTR COMBOEX_SetItemData(COMBOEX_INFO *infoPtr, INT_PTR index, DWORD_PTR data)
GLfloat GLfloat GLfloat GLfloat h
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
static BOOL is_textA(LPCSTR str)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
static void COMBOEX_ResetContent(COMBOEX_INFO *infoPtr)
static INT COMBOEX_DeleteItem(COMBOEX_INFO *infoPtr, INT_PTR index)
GLenum GLuint GLenum GLsizei const GLchar * buf
int WINAPI GetDlgCtrlID(_In_ HWND)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI ImageList_GetImageInfo(HIMAGELIST himl, INT i, IMAGEINFO *pImageInfo)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
static LRESULT COMBOEX_Command(COMBOEX_INFO *infoPtr, WPARAM wParam)
char szText[CBEMAXSTRLEN]
static LPCWSTR COMBOEX_GetText(const COMBOEX_INFO *infoPtr, CBE_ITEMDATA *item)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
static char selected[MAX_PATH+1]
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
_Out_opt_ int _Out_opt_ int * cy
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
COLORREF clrHighlightText
static BOOL COMBOEX_GetItemW(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMW *cit)
static LRESULT COMBOEX_Destroy(COMBOEX_INFO *infoPtr)
static void COMBOEX_DumpItem(CBE_ITEMDATA const *item)
#define CBEM_GETEDITCONTROL
LRESULT WINAPI DefSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL WINAPI IsWindowUnicode(_In_ HWND)
static BOOL COMBOEX_SetUnicodeFormat(COMBOEX_INFO *infoPtr, BOOL value)
static INT COMBOEX_GetIndex(COMBOEX_INFO const *infoPtr, CBE_ITEMDATA const *item)
BOOL WINAPI SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIDSubclass, DWORD_PTR dwRef)
static LRESULT COMBOEX_NCCreate(HWND hwnd)
struct _CBE_ITEMDATA CBE_ITEMDATA
#define CBEM_GETIMAGELIST
static LRESULT COMBOEX_NotifyFormat(COMBOEX_INFO *infoPtr, LPARAM lParam)
#define CB_GETDROPPEDCONTROLRECT
#define CBEM_SETIMAGELIST
static LRESULT COMBOEX_Create(HWND hwnd, CREATESTRUCTA const *cs)
static INT COMBOEX_SetItemHeight(COMBOEX_INFO const *infoPtr, INT index, UINT height)
#define COMBOEX_GetInfoPtr(hwnd)
#define WM_WINDOWPOSCHANGING
#define CBEM_GETEXTENDEDSTYLE
int WINAPI GetWindowTextLengthW(_In_ HWND)
const char * wine_dbgstr_rect(const RECT *rect)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define LPSTR_TEXTCALLBACKW
PVOID Alloc(IN DWORD dwFlags, IN SIZE_T dwBytes)
int WINAPI GetSystemMetrics(_In_ int)
static void COMBOEX_GetComboFontSize(const COMBOEX_INFO *infoPtr, SIZE *size)
void COMBOEX_Unregister(void)
static LRESULT COMBOEX_WindowPosChanging(const COMBOEX_INFO *infoPtr, WINDOWPOS *wp)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
unsigned __int3264 UINT_PTR
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
COMCTL32_SysColor comctl32_color
#define INDEXTOOVERLAYMASK(i)
#define CBEM_SETEXTENDEDSTYLE
static INT COMBOEX_NotifyEndEdit(const COMBOEX_INFO *infoPtr, NMCBEENDEDITW *neew, LPCWSTR wstr)
static INT COMBOEX_NotifyItem(const COMBOEX_INFO *infoPtr, UINT code, NMCOMBOBOXEXW *hdr)
#define CBES_EX_NOSIZELIMIT
static cmp_func_t get_cmp_func(COMBOEX_INFO const *infoPtr)
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)
#define memcpy(s1, s2, n)
GLsizei const GLfloat * value
LRESULT WINAPI SetPathWordBreakProc(HWND hwnd, BOOL bSet)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
GLint GLint GLsizei GLsizei height
static BOOL COMBOEX_SetItemW(COMBOEX_INFO *infoPtr, const COMBOBOXEXITEMW *cit)
#define CBEM_HASEDITCHANGED
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
static INT COMBOEX_InsertItemW(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMW const *cit)
static BOOL COMBOEX_SetItemA(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA const *cit)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
static LPCSTR debugstr_txt(LPCWSTR str)
static LRESULT CALLBACK COMBOEX_EditWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uId, DWORD_PTR ref_data)
void redraw(int x, int y, int cx, int cy)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
HWND WINAPI SetCapture(_In_ HWND hWnd)
WINE_UNICODE_INLINE WCHAR * strcpyW(WCHAR *dst, const WCHAR *src)
static unsigned __int64 next
BOOL WINAPI ImageList_SetOverlayImage(HIMAGELIST himl, INT iImage, INT iOverlay)
GLenum GLenum GLenum input
BOOL WINAPI RemoveWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uID)
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 void COMBOEX_FreeText(CBE_ITEMDATA *item)
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
static void COMBOEX_AdjustEditPos(const COMBOEX_INFO *infoPtr)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define CBES_EX_NOEDITIMAGE
#define CBEM_GETCOMBOCONTROL
void COMBOEX_Register(void)
static INT COMBOEX_InsertItemA(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA const *cit)
static INT COMBOEX_SetCursel(COMBOEX_INFO *infoPtr, INT_PTR index)
#define SPI_GETICONTITLELOGFONT
GLint GLint GLint GLint GLint GLint y
#define MultiByteToWideChar
static INT COMBOEX_Notify(const COMBOEX_INFO *infoPtr, INT code, NMHDR *hdr)
static LRESULT CALLBACK COMBOEX_ComboWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uId, DWORD_PTR ref_data)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
static void COMBOEX_CopyItem(const CBE_ITEMDATA *item, COMBOBOXEXITEMW *cit)
HWND WINAPI GetFocus(void)
BOOL WINAPI ReleaseCapture(void)
#define CBEIF_SELECTEDIMAGE
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
static DWORD_PTR COMBOEX_GetItemData(COMBOEX_INFO *infoPtr, INT_PTR index)
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)
#define SetWindowLongPtrW
static LRESULT COMBOEX_DrawItem(COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *dis)
#define CBES_EX_CASESENSITIVE
static HIMAGELIST COMBOEX_SetImageList(COMBOEX_INFO *infoPtr, HIMAGELIST himl)
#define CBEM_SETUNICODEFORMAT
static BOOL COMBOEX_GetItemA(COMBOEX_INFO *infoPtr, COMBOBOXEXITEMA *cit)
#define WCBE_MOUSECAPTURED
static LRESULT COMBOEX_SetRedraw(const COMBOEX_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
#define CBS_NOINTEGRALHEIGHT
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
WCHAR szText[CBEMAXSTRLEN]
VOID COMCTL32_RefreshSysColors(void) DECLSPEC_HIDDEN
static LRESULT COMBOEX_Size(COMBOEX_INFO *infoPtr, INT width, INT height)
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
BOOL WINAPI GetTextExtentPointW(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)
static LRESULT COMBOEX_MeasureItem(COMBOEX_INFO const *infoPtr, MEASUREITEMSTRUCT *mis)
#define LPSTR_TEXTCALLBACKA
INT(WINAPI * cmp_func_t)(LPCWSTR, LPCWSTR)
#define CB_FINDSTRINGEXACT