Module: wine Branch: master Commit: 2f366935d55ec3dfaf695f3f726037bbe18c7c12 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2f366935d55ec3dfaf695f3f72...
Author: Roy Shea royshea@gmail.com Date: Mon Aug 4 11:46:14 2008 -0700
mstask: Implemented NewWorkItem.
---
dlls/mstask/task_scheduler.c | 13 +++++++++++-- dlls/mstask/tests/task_scheduler.c | 8 ++++---- 2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/dlls/mstask/task_scheduler.c b/dlls/mstask/task_scheduler.c index a1d52a8..bd4cc1d 100644 --- a/dlls/mstask/task_scheduler.c +++ b/dlls/mstask/task_scheduler.c @@ -119,9 +119,18 @@ static HRESULT WINAPI MSTASK_ITaskScheduler_NewWorkItem( REFIID riid, IUnknown **ppunk) { - FIXME("%p, %s, %s, %s, %p: stub\n", iface, debugstr_w(pwszTaskName), + HRESULT hr; + TRACE("(%p, %s, %s, %s, %p)\n", iface, debugstr_w(pwszTaskName), debugstr_guid(rclsid) ,debugstr_guid(riid), ppunk); - return E_NOTIMPL; + + if (!IsEqualGUID(rclsid, &CLSID_CTask)) + return CLASS_E_CLASSNOTAVAILABLE; + + if (!IsEqualGUID(riid, &IID_ITask)) + return E_NOINTERFACE; + + hr = TaskConstructor(pwszTaskName, (LPVOID *)ppunk); + return hr; }
static HRESULT WINAPI MSTASK_ITaskScheduler_AddWorkItem( diff --git a/dlls/mstask/tests/task_scheduler.c b/dlls/mstask/tests/task_scheduler.c index 94614dc..5292a3c 100644 --- a/dlls/mstask/tests/task_scheduler.c +++ b/dlls/mstask/tests/task_scheduler.c @@ -49,25 +49,25 @@ static void test_NewWorkItem(void) /* Test basic task creation */ hres = ITaskScheduler_NewWorkItem(test_task_scheduler, task_name, &CLSID_CTask, &IID_ITask, (IUnknown**)&task); - todo_wine ok(hres == S_OK, "NewNetworkItem failed: %08x\n", hres); + ok(hres == S_OK, "NewNetworkItem failed: %08x\n", hres); if (hres == S_OK) ITask_Release(task);
/* Task creation attempt using invalid work item class ID */ hres = ITaskScheduler_NewWorkItem(test_task_scheduler, task_name, &GUID_BAD, &IID_ITask, (IUnknown**)&task); - todo_wine ok(hres == CLASS_E_CLASSNOTAVAILABLE, + ok(hres == CLASS_E_CLASSNOTAVAILABLE, "Expected CLASS_E_CLASSNOTAVAILABLE: %08x\n", hres);
/* Task creation attempt using invalid interface ID */ hres = ITaskScheduler_NewWorkItem(test_task_scheduler, task_name, &CLSID_CTask, &GUID_BAD, (IUnknown**)&task); - todo_wine ok(hres == E_NOINTERFACE, "Expected E_NOINTERFACE: %08x\n", hres); + ok(hres == E_NOINTERFACE, "Expected E_NOINTERFACE: %08x\n", hres);
/* Task creation attempt using invalid work item class and interface ID */ hres = ITaskScheduler_NewWorkItem(test_task_scheduler, task_name, &GUID_BAD, &GUID_BAD, (IUnknown**)&task); - todo_wine ok(hres == CLASS_E_CLASSNOTAVAILABLE, + ok(hres == CLASS_E_CLASSNOTAVAILABLE, "Expected CLASS_E_CLASSNOTAVAILABLE: %08x\n", hres);
ITaskScheduler_Release(test_task_scheduler);