ChangeLog Make comboex send its notifications to the parent window passed to it in CREATESTRUCT. Based on a treeview patch by Igor Grahek. Index: dlls/comctl32/comboex.c =================================================================== RCS file: /var/cvs/wine/dlls/comctl32/comboex.c,v retrieving revision 1.67 diff -u -r1.67 comboex.c --- dlls/comctl32/comboex.c 22 Sep 2003 21:32:34 -0000 1.67 +++ dlls/comctl32/comboex.c 19 Nov 2003 05:07:08 -0000 @@ -64,6 +64,7 @@ { HIMAGELIST himl; HWND hwndSelf; /* my own hwnd */ + HWND hwndNotify; /* my parent hwnd */ HWND hwndCombo; HWND hwndEdit; WNDPROC prevEditWndProc; /* previous Edit WNDPROC value */ @@ -190,11 +191,9 @@ hdr->hwndFrom = infoPtr->hwndSelf; hdr->code = code; if (infoPtr->NtfUnicode) - return SendMessageW (GetParent(infoPtr->hwndSelf), WM_NOTIFY, 0, - (LPARAM)hdr); + return SendMessageW (infoPtr->hwndNotify, WM_NOTIFY, 0, (LPARAM)hdr); else - return SendMessageA (GetParent(infoPtr->hwndSelf), WM_NOTIFY, 0, - (LPARAM)hdr); + return SendMessageA (infoPtr->hwndNotify, WM_NOTIFY, 0, (LPARAM)hdr); } @@ -935,8 +934,9 @@ infoPtr->selected = -1; infoPtr->unicode = IsWindowUnicode (hwnd); + infoPtr->hwndNotify = cs->hwndParent; - i = SendMessageW(GetParent (hwnd), WM_NOTIFYFORMAT, (WPARAM)hwnd, NF_QUERY); + i = SendMessageW(infoPtr->hwndNotify, WM_NOTIFYFORMAT, (WPARAM)hwnd, NF_QUERY); if ((i != NFR_ANSI) && (i != NFR_UNICODE)) { WARN("wrong response to WM_NOTIFYFORMAT (%d), assuming ANSI\n", i); i = NFR_ANSI; @@ -1079,7 +1079,7 @@ INT cursel, n, oldItem; NMCBEENDEDITW cbeend; DWORD oldflags; - HWND parent = GetParent (infoPtr->hwndSelf); + HWND parent = infoPtr->hwndNotify; TRACE("for command %d\n", command); @@ -1587,7 +1587,7 @@ static LRESULT COMBOEX_NotifyFormat (COMBOEX_INFO *infoPtr, LPARAM lParam) { if (lParam == NF_REQUERY) { - INT i = SendMessageW(GetParent (infoPtr->hwndSelf), + INT i = SendMessageW(infoPtr->hwndNotify, WM_NOTIFYFORMAT, (WPARAM)infoPtr->hwndSelf, NF_QUERY); infoPtr->NtfUnicode = (i == NFR_UNICODE) ? 1 : 0; } @@ -2070,7 +2070,7 @@ /* strings not equal -- indicate edit has changed */ infoPtr->flags |= WCBE_EDITCHG; } - SendMessageW ( GetParent(infoPtr->hwndSelf), WM_COMMAND, + SendMessageW ( infoPtr->hwndNotify, WM_COMMAND, MAKEWPARAM(GetDlgCtrlID (infoPtr->hwndSelf), CBN_EDITCHANGE), (LPARAM)infoPtr->hwndSelf); @@ -2236,9 +2236,9 @@ case WM_NOTIFY: if (infoPtr->NtfUnicode) - return SendMessageW (GetParent (hwnd), uMsg, wParam, lParam); + return SendMessageW (infoPtr->hwndNotify, uMsg, wParam, lParam); else - return SendMessageA (GetParent (hwnd), uMsg, wParam, lParam); + return SendMessageA (infoPtr->hwndNotify, uMsg, wParam, lParam); /* Window messages we need to process */ -- Dimi.