Module: wine Branch: master Commit: 6fb10a6e9196d6f9025f5391cab577336d78c79e URL: http://source.winehq.org/git/wine.git/?a=commit;h=6fb10a6e9196d6f9025f5391ca...
Author: Alexander Morozov amorozov@etersoft.ru Date: Tue Jan 18 21:37:39 2011 +0300
shell32: Partially implement Folder::get_Title.
---
dlls/shell32/shelldispatch.c | 17 +++++++++++++++-- dlls/shell32/tests/shelldispatch.c | 4 ---- 2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/dlls/shell32/shelldispatch.c b/dlls/shell32/shelldispatch.c index 3ec5347..67501ae 100644 --- a/dlls/shell32/shelldispatch.c +++ b/dlls/shell32/shelldispatch.c @@ -180,10 +180,23 @@ static HRESULT WINAPI FolderImpl_Invoke(Folder3 *iface, DISPID dispIdMember,
static HRESULT WINAPI FolderImpl_get_Title(Folder3 *iface, BSTR *pbs) { - FIXME("(%p,%p)\n", iface, pbs); + FolderImpl *This = impl_from_Folder(iface); + WCHAR *p; + int len; + + TRACE("(%p,%p)\n", iface, pbs);
*pbs = NULL; - return E_NOTIMPL; + + if (V_VT(&This->dir) == VT_I4) + { + FIXME("special folder constants are not supported\n"); + return E_NOTIMPL; + } + p = PathFindFileNameW(V_BSTR(&This->dir)); + len = lstrlenW(p); + *pbs = SysAllocStringLen(p, p[len - 1] == '\' ? len - 1 : len); + return *pbs ? S_OK : E_OUTOFMEMORY; }
static HRESULT WINAPI FolderImpl_get_Application(Folder3 *iface, diff --git a/dlls/shell32/tests/shelldispatch.c b/dlls/shell32/tests/shelldispatch.c index a34ec39..f253627 100644 --- a/dlls/shell32/tests/shelldispatch.c +++ b/dlls/shell32/tests/shelldispatch.c @@ -148,11 +148,9 @@ static void test_namespace(void) if (r == S_OK) { r = Folder_get_Title(folder, &title); - todo_wine ok(r == S_OK, "Folder::get_Title failed: %08x\n", r); if (r == S_OK) { - todo_wine ok(!lstrcmpW(title, winetestW), "bad title: %s\n", wine_dbgstr_w(title)); SysFreeString(title); @@ -172,11 +170,9 @@ static void test_namespace(void) if (r == S_OK) { r = Folder_get_Title(folder, &title); - todo_wine ok(r == S_OK, "Folder::get_Title failed: %08x\n", r); if (r == S_OK) { - todo_wine ok(!lstrcmpW(title, winetestW), "bad title: %s\n", wine_dbgstr_w(title)); SysFreeString(title);