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

Alexandre Julliard julliard at winehq.org
Tue May 15 16:25:22 CDT 2018


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

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Tue May 15 16:26:52 2018 +0800

mstask: Implement ITask::GetExitCode().

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

---

 dlls/mstask/task.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/dlls/mstask/task.c b/dlls/mstask/task.c
index 4bf9166..d487aeb 100644
--- a/dlls/mstask/task.c
+++ b/dlls/mstask/task.c
@@ -59,10 +59,9 @@ typedef struct
     ITaskDefinition *task;
     IExecAction *action;
     LPWSTR task_name;
-    UINT flags;
     HRESULT status;
     WORD idle_minutes, deadline_minutes;
-    DWORD priority, maxRunTime;
+    DWORD flags, priority, maxRunTime, exit_code;
     LPWSTR accountName;
     DWORD trigger_count;
     TASK_TRIGGER *trigger;
@@ -492,10 +491,12 @@ static HRESULT WINAPI MSTASK_ITask_GetStatus(ITask *iface, HRESULT *status)
 
 static HRESULT WINAPI MSTASK_ITask_GetExitCode(ITask *iface, DWORD *exit_code)
 {
-    FIXME("(%p, %p): stub\n", iface, exit_code);
+    TaskImpl *This = impl_from_ITask(iface);
 
-    *exit_code = 0;
-    return SCHED_S_TASK_HAS_NOT_RUN;
+    TRACE("(%p, %p)\n", iface, exit_code);
+
+    *exit_code = This->exit_code;
+    return SCHED_S_TASK_HAS_NOT_RUN; /* FIXME */
 }
 
 static HRESULT WINAPI MSTASK_ITask_SetComment(ITask *iface, LPCWSTR comment)
@@ -1073,6 +1074,7 @@ static HRESULT load_job_data(TaskImpl *This, BYTE *data, DWORD size)
     TRACE("maximum_runtime %u\n", fixed->maximum_runtime);
     This->maxRunTime = fixed->maximum_runtime;
     TRACE("exit_code %#x\n", fixed->exit_code);
+    This->exit_code = fixed->exit_code;
     TRACE("status %08x\n", fixed->status);
     This->status = fixed->status;
     TRACE("flags %08x\n", fixed->flags);
@@ -1428,7 +1430,7 @@ static HRESULT WINAPI MSTASK_IPersistFile_Save(IPersistFile *iface, LPCOLESTR ta
     fixed.idle_deadline = This->deadline_minutes;
     fixed.priority = This->priority;
     fixed.maximum_runtime = This->maxRunTime;
-    fixed.exit_code = 0;
+    fixed.exit_code = This->exit_code;
     if (This->status == SCHED_S_TASK_NOT_SCHEDULED && This->trigger_count)
         This->status = SCHED_S_TASK_HAS_NOT_RUN;
     fixed.status = This->status;
@@ -1656,6 +1658,7 @@ HRESULT TaskConstructor(ITaskService *service, const WCHAR *name, ITask **task)
     This->task_name = heap_strdupW(task_name);
     This->flags = 0;
     This->status = SCHED_S_TASK_NOT_SCHEDULED;
+    This->exit_code = 0;
     This->idle_minutes = 10;
     This->deadline_minutes = 60;
     This->priority = NORMAL_PRIORITY_CLASS;




More information about the wine-cvs mailing list