Module: wine Branch: master Commit: cd88a0f32cac438baedfe885c388d4c85931d929 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cd88a0f32cac438baedfe885c3...
Author: Francois Gouget fgouget@free.fr Date: Tue Sep 27 00:17:45 2011 +0200
shell32: Add definitions for the IEnumACString interface.
Enable the corresponding browseui:autocomplete tests.
---
dlls/browseui/tests/autocomplete.c | 9 ++++----- include/shldisp.idl | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/dlls/browseui/tests/autocomplete.c b/dlls/browseui/tests/autocomplete.c index e56c599..e566e6e 100644 --- a/dlls/browseui/tests/autocomplete.c +++ b/dlls/browseui/tests/autocomplete.c @@ -23,6 +23,7 @@ #include <initguid.h> #include <windows.h> #include <shlobj.h> +#include <shldisp.h> #include <shlwapi.h> #include <shlguid.h>
@@ -127,10 +128,8 @@ static HRESULT STDMETHODCALLTYPE TestACL_QueryInterface(IEnumString *iface, REFI return S_OK; }
-#if 0 /* IID_IEnumACString not defined yet in wine */ if (!IsEqualGUID(iid, &IID_IEnumACString)) trace("unknown interface queried\n"); -#endif return E_NOINTERFACE; }
@@ -239,6 +238,7 @@ static void test_ACLMulti(void) const char *strings2[] = {"a", "b", "d"}; WCHAR exp[] = {'A','B','C',0}; IEnumString *obj; + IEnumACString *unk; TestACL *acl1, *acl2; IACList *acl; IObjMgr *mgr; @@ -252,11 +252,10 @@ static void test_ACLMulti(void) ok(obj->lpVtbl->QueryInterface(obj, &IID_IACList2, &tmp) == E_NOINTERFACE, "Unexpected interface IACList2 in ACLMulti\n"); stop_on_error(obj->lpVtbl->QueryInterface(obj, &IID_IObjMgr, (LPVOID *)&mgr)); -#if 0 /* IID_IEnumACString not defined yet in wine */ - ole_ok(obj->lpVtbl->QueryInterface(obj, &IID_IEnumACString, &unk)); + + todo_wine ole_ok(obj->lpVtbl->QueryInterface(obj, &IID_IEnumACString, (LPVOID*)&unk)); if (unk != NULL) unk->lpVtbl->Release(unk); -#endif
ok(obj->lpVtbl->Next(obj, 1, (LPOLESTR *)&tmp, &i) == S_FALSE, "Unexpected return from Next\n"); ok(i == 0, "Unexpected fetched value %d\n", i); diff --git a/include/shldisp.idl b/include/shldisp.idl index 8df56cd..5c04f71 100644 --- a/include/shldisp.idl +++ b/include/shldisp.idl @@ -28,6 +28,35 @@ import "comcat.idl"; #include <shdispid.h>
/***************************************************************************** + * IEnumACString interface + */ +[ + local, + object, + uuid(8e74c210-cf9d-4eaf-a403-7356428f0a5a), + pointer_default(unique) +] +interface IEnumACString : IEnumString +{ + typedef IEnumACString *PENUMACSTRING, *LPENUMACSTRING; + + typedef enum _tagACENUMOPTION + { + ACEO_NONE = 0x00000000, + ACEO_MOSTRECENTFIRST = 0x00000001, + ACEO_FIRSTUNUSED = 0x00010000, + } ACENUMOPTION; + + HRESULT NextItem( [out] LPWSTR pszUrl, + [in] ULONG cchMax, + [out] ULONG *pulSortIndex); + + HRESULT SetEnumOptions( [in] DWORD dwOptions ); + + HRESULT GetEnumOptions( [out] DWORD *pdwOptions ); +} + +/***************************************************************************** * IAutoComplete interface */ [