Mikołaj Zalewski : shell32: autocomplete: Implement GetDropDownStatus.
Module: wine Branch: master Commit: d9190052a2ff07793e8d2e8676ad0df8cc1da24f URL: http://source.winehq.org/git/wine.git/?a=commit;h=d9190052a2ff07793e8d2e8676... Author: Mikołaj Zalewski <mikolaj(a)zalewski.pl> Date: Wed Sep 17 21:42:46 2008 +0200 shell32: autocomplete: Implement GetDropDownStatus. --- dlls/shell32/autocomplete.c | 31 ++++++++++++++++++++++++++----- 1 files changed, 26 insertions(+), 5 deletions(-) diff --git a/dlls/shell32/autocomplete.c b/dlls/shell32/autocomplete.c index 8901e8f..da11b25 100644 --- a/dlls/shell32/autocomplete.c +++ b/dlls/shell32/autocomplete.c @@ -361,15 +361,36 @@ static HRESULT WINAPI IAutoCompleteDropDown_fnGetDropDownStatus( LPWSTR *ppwszString) { IAutoCompleteImpl *This = impl_from_IAutoCompleteDropDown(iface); + BOOL dropped; - FIXME("(%p) -> (%p, %p): stub\n", This, pdwFlags, ppwszString); + TRACE("(%p) -> (%p, %p)\n", This, pdwFlags, ppwszString); + + dropped = IsWindowVisible(This->hwndListBox); if (pdwFlags) - *pdwFlags = 0; - if (ppwszString) - *ppwszString = NULL; + *pdwFlags = (dropped ? ACDD_VISIBLE : 0); + + if (ppwszString) { + if (dropped) { + int sel; + + sel = SendMessageW(This->hwndListBox, LB_GETCURSEL, 0, 0); + if (sel >= 0) + { + DWORD len; + + len = SendMessageW(This->hwndListBox, LB_GETTEXTLEN, sel, 0); + *ppwszString = CoTaskMemAlloc((len+1)*sizeof(WCHAR)); + SendMessageW(This->hwndListBox, LB_GETTEXT, sel, (LPARAM)*ppwszString); + } + else + *ppwszString = NULL; + } + else + *ppwszString = NULL; + } - return E_NOTIMPL; + return S_OK; } /**************************************************************************
participants (1)
-
Alexandre Julliard