From d08a101a283cf00f24bcc3ae99211cd90d3e597b Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Fri, 20 Apr 2018 16:37:18 +0800 Subject: [PATCH] mstask: Implement ITask::GetIdleWait(). Signed-off-by: Dmitry Timoshkov Signed-off-by: Alexandre Julliard --- 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 3f68afb497b..c2cd14ee10a 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 5256424e314..55e491366f4 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(); }