Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/mstask/task.c | 17 +++++++++++------ dlls/mstask/tests/task.c | 12 +++++++++++- 2 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/dlls/mstask/task.c b/dlls/mstask/task.c index 3f68afb497..c2cd14ee10 100644 --- a/dlls/mstask/task.c +++ b/dlls/mstask/task.c @@ -40,6 +40,7 @@ typedef struct IExecAction *action; LPWSTR task_name; HRESULT status; + WORD idle_minutes, deadline_minutes; DWORD maxRunTime; LPWSTR accountName; } TaskImpl; @@ -190,13 +191,15 @@ static HRESULT WINAPI MSTASK_ITask_SetIdleWait( return E_NOTIMPL; }
-static HRESULT WINAPI MSTASK_ITask_GetIdleWait( - ITask* iface, - WORD *pwIdleMinutes, - WORD *pwDeadlineMinutes) +static HRESULT WINAPI MSTASK_ITask_GetIdleWait(ITask *iface, WORD *idle_minutes, WORD *deadline_minutes) { - FIXME("(%p, %p, %p): stub\n", iface, pwIdleMinutes, pwDeadlineMinutes); - return E_NOTIMPL; + TaskImpl *This = impl_from_ITask(iface); + + TRACE("(%p, %p, %p): stub\n", iface, idle_minutes, deadline_minutes); + + *idle_minutes = This->idle_minutes; + *deadline_minutes = This->deadline_minutes; + return S_OK; }
static HRESULT WINAPI MSTASK_ITask_Run( @@ -840,6 +843,8 @@ HRESULT TaskConstructor(ITaskService *service, const WCHAR *task_name, ITask **t This->task = taskdef; This->task_name = heap_strdupW(task_name); This->status = SCHED_S_TASK_NOT_SCHEDULED; + This->idle_minutes = 10; + This->deadline_minutes = 60; This->accountName = NULL;
/* Default time is 3 days = 259200000 ms */ diff --git a/dlls/mstask/tests/task.c b/dlls/mstask/tests/task.c index 5256424e31..55e491366f 100644 --- a/dlls/mstask/tests/task.c +++ b/dlls/mstask/tests/task.c @@ -502,7 +502,7 @@ static void test_task_state(void) BOOL setup; HRESULT hr, status; DWORD flags; - WORD val1; + WORD val1, val2;
setup = setup_task(); ok(setup, "Failed to setup test_task\n"); @@ -547,6 +547,16 @@ static void test_task_state(void) hr = ITask_GetErrorRetryInterval(test_task, &val1); ok(hr == E_NOTIMPL, "got %#x\n", hr);
+ if (0) /* crashes under Windows */ + hr = ITask_GetIdleWait(test_task, NULL, NULL); + + val1 = 0xdead; + val2 = 0xbeef; + hr = ITask_GetIdleWait(test_task, &val1, &val2); + ok(hr == S_OK, "got %#x\n", hr); + ok(val1 == 10, "got %u\n", val1); + ok(val2 == 60, "got %u\n", val2); + cleanup_task(); }