[PATCH] shell32: autocomplete: implement GetDropDownStatus
Mikołaj Zalewski
mikolaj at zalewski.pl
Wed Sep 17 14:42:46 CDT 2008
---
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 fb3d0fc..d6b50c4 100644
--- a/dlls/shell32/autocomplete.c
+++ b/dlls/shell32/autocomplete.c
@@ -360,15 +360,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;
}
/**************************************************************************
--
1.5.4
--------------010504000302040706060801--
More information about the wine-patches
mailing list