[PATCH 5/9] mstask: Implement ITask::GetIdleWait().
Dmitry Timoshkov
dmitry at baikal.ru
Fri Apr 20 03:37:18 CDT 2018
Signed-off-by: Dmitry Timoshkov <dmitry at 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();
}
--
2.16.3
More information about the wine-devel
mailing list