Module: wine Branch: master Commit: a4c4574bd403624c4b8d5c159a9d299deeff309c URL: http://source.winehq.org/git/wine.git/?a=commit;h=a4c4574bd403624c4b8d5c159a...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Mon Jan 20 16:05:50 2014 +0900
taskschd: Implement ITaskFolder::get_Name.
---
dlls/taskschd/folder.c | 19 +++++++++++++++++-- dlls/taskschd/tests/scheduler.c | 5 ----- 2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/dlls/taskschd/folder.c b/dlls/taskschd/folder.c index 9114417..6d69002 100644 --- a/dlls/taskschd/folder.c +++ b/dlls/taskschd/folder.c @@ -115,8 +115,23 @@ static HRESULT WINAPI TaskFolder_Invoke(ITaskFolder *iface, DISPID dispid, REFII
static HRESULT WINAPI TaskFolder_get_Name(ITaskFolder *iface, BSTR *name) { - FIXME("%p,%p: stub\n", iface, name); - return E_NOTIMPL; + TaskFolder *folder = impl_from_ITaskFolder(iface); + const WCHAR *p_name; + + TRACE("%p,%p\n", iface, name); + + if (!name) return E_POINTER; + + p_name = strrchrW(folder->path, '\'); + if (!p_name) + p_name = folder->path; + else + if (p_name[1] != 0) p_name++; + + *name = SysAllocString(p_name); + if (!*name) return E_OUTOFMEMORY; + + return S_OK; }
static HRESULT reg_open_folder(const WCHAR *path, HKEY *hfolder) diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c index 32c8f71..a976de2 100644 --- a/dlls/taskschd/tests/scheduler.c +++ b/dlls/taskschd/tests/scheduler.c @@ -169,17 +169,12 @@ todo_wine ok(hr == S_OK, "GetFolder error %#x\n", hr);
hr = ITaskFolder_get_Name(folder, NULL); -todo_wine ok(hr == E_POINTER, "expected E_POINTER, got %#x\n", hr);
hr = ITaskFolder_get_Name(folder, &bstr); -todo_wine ok (hr == S_OK, "get_Name error %#x\n", hr); -if (hr == S_OK) -{ ok(!lstrcmpW(bstr, bslash), "expected '\', got %s\n", wine_dbgstr_w(bstr)); SysFreeString(bstr); -}
hr = ITaskFolder_get_Path(folder, NULL); ok(hr == E_POINTER, "expected E_POINTER, got %#x\n", hr);