Module: wine Branch: master Commit: 1207e84af50da8525c802cf70593aa2db5e31f45 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1207e84af50da8525c802cf705...
Author: Mike McCormack mike@codeweavers.com Date: Fri Oct 6 17:42:22 2006 +0900
comctl32: Return the correct value for CB_GETLBTEXTLEN.
---
dlls/comctl32/comboex.c | 34 ++++++++++++++++++++++++++++++++-- 1 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/comboex.c b/dlls/comctl32/comboex.c index 1f29024..00c5fc3 100644 --- a/dlls/comctl32/comboex.c +++ b/dlls/comctl32/comboex.c @@ -501,6 +501,32 @@ static inline BOOL COMBOEX_HasEdit(COMBO
/* *** CBEM_xxx message support *** */
+static UINT COMBOEX_GetListboxText(COMBOEX_INFO *infoPtr, int n, LPWSTR buf) +{ + CBE_ITEMDATA *item; + LPCWSTR str; + + item = COMBOEX_FindItem(infoPtr, n); + if (!item) + return 0; + + str = COMBOEX_GetText(infoPtr, item); + + if (infoPtr->unicode) + { + if (buf) + lstrcpyW(buf, str); + return lstrlenW(str); + } + else + { + UINT r; + r = WideCharToMultiByte(CP_ACP, 0, str, -1, (LPSTR)buf, 0x40000000, NULL, NULL); + if (r) r--; + return r; + } +} +
static INT COMBOEX_DeleteItem (COMBOEX_INFO *infoPtr, INT index) { @@ -2193,11 +2219,15 @@ COMBOEX_WindowProc (HWND hwnd, UINT uMsg case WM_GETTEXT: return SendMessageW(infoPtr->hwndEdit, uMsg, wParam, lParam);
+ case CB_GETLBTEXT: + return COMBOEX_GetListboxText(infoPtr, wParam, (LPWSTR)lParam); + + case CB_GETLBTEXTLEN: + return COMBOEX_GetListboxText(infoPtr, wParam, NULL); + /* Combo messages we are not sure if we need to process or just forward */ case CB_GETDROPPEDCONTROLRECT: case CB_GETITEMHEIGHT: - case CB_GETLBTEXT: - case CB_GETLBTEXTLEN: case CB_GETEXTENDEDUI: case CB_LIMITTEXT: case CB_RESETCONTENT: