Dmitry Timoshkov : mstask: Implement ITask::GetIdleWait().

Alexandre Julliard julliard at winehq.org
Fri Apr 20 17:55:42 CDT 2018


Module: wine
Branch: master
Commit: d08a101a283cf00f24bcc3ae99211cd90d3e597b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d08a101a283cf00f24bcc3ae99211cd90d3e597b

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Fri Apr 20 16:37:18 2018 +0800

mstask: Implement ITask::GetIdleWait().

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 3f68afb..c2cd14e 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 5256424..55e4913 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();
 }
 




More information about the wine-cvs mailing list