Module: wine Branch: master Commit: d79cce769a81c1c49f5df42f1ab34264cdb55ee3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d79cce769a81c1c49f5df42f1a... Author: Dmitry Timoshkov <dmitry(a)baikal.ru> Date: Tue Apr 8 15:49:28 2014 +0900 taskschd: Implement IRegisteredTask::get_Name. --- dlls/taskschd/regtask.c | 19 +++++++++++++++++-- dlls/taskschd/tests/scheduler.c | 11 +++++------ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/dlls/taskschd/regtask.c b/dlls/taskschd/regtask.c index bf50f4f..817ba36 100644 --- a/dlls/taskschd/regtask.c +++ b/dlls/taskschd/regtask.c @@ -117,8 +117,23 @@ static HRESULT WINAPI regtask_Invoke(IRegisteredTask *iface, DISPID dispid, REFI static HRESULT WINAPI regtask_get_Name(IRegisteredTask *iface, BSTR *name) { - FIXME("%p,%p: stub\n", iface, name); - return E_NOTIMPL; + RegisteredTask *regtask = impl_from_IRegisteredTask(iface); + const WCHAR *p_name; + + TRACE("%p,%p\n", iface, name); + + if (!name) return E_POINTER; + + p_name = strrchrW(regtask->path, '\\'); + if (!p_name) + p_name = regtask->path; + else + if (p_name[1] != 0) p_name++; + + *name = SysAllocString(p_name); + if (!*name) return E_OUTOFMEMORY; + + return S_OK; } static HRESULT WINAPI regtask_get_Path(IRegisteredTask *iface, BSTR *path) diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c index e0944fc..d24e1ca 100644 --- a/dlls/taskschd/tests/scheduler.c +++ b/dlls/taskschd/tests/scheduler.c @@ -805,22 +805,21 @@ todo_wine } hr = IRegisteredTask_get_Name(task1, NULL); -todo_wine ok(hr == E_POINTER, "expected E_POINTER, got %#x\n", hr); hr = IRegisteredTask_get_Name(task1, &bstr); -todo_wine ok(hr == S_OK, "get_Name error %#x\n", hr); + ok(!lstrcmpW(bstr, Task1), "expected Task1, got %s\n", wine_dbgstr_w(bstr)); + SysFreeString(bstr); + hr = IRegisteredTask_get_Path(task1, &bstr); +todo_wine + ok(hr == S_OK, "get_Path error %#x\n", hr); /* FIXME: Remove once implemented */ if (hr != S_OK) { ITaskFolder_DeleteTask(root, Wine_Task1, 0); goto failed; } - ok(!lstrcmpW(bstr, Task1), "expected Task1, got %s\n", wine_dbgstr_w(bstr)); - SysFreeString(bstr); - hr = IRegisteredTask_get_Path(task1, &bstr); - ok(hr == S_OK, "get_Path error %#x\n", hr); ok(!lstrcmpW(bstr, Wine_Task1), "expected \\Wine\\Task1, got %s\n", wine_dbgstr_w(bstr)); SysFreeString(bstr); hr = IRegisteredTask_get_State(task1, &state);