Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/mstask/task.c | 15 +++++++++------ dlls/mstask/tests/task.c | 10 +++++++++- 2 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/dlls/mstask/task.c b/dlls/mstask/task.c index c2cd14ee10..27f476699b 100644 --- a/dlls/mstask/task.c +++ b/dlls/mstask/task.c @@ -41,7 +41,7 @@ typedef struct LPWSTR task_name; HRESULT status; WORD idle_minutes, deadline_minutes; - DWORD maxRunTime; + DWORD priority, maxRunTime; LPWSTR accountName; } TaskImpl;
@@ -626,12 +626,14 @@ static HRESULT WINAPI MSTASK_ITask_SetPriority( return E_NOTIMPL; }
-static HRESULT WINAPI MSTASK_ITask_GetPriority( - ITask* iface, - DWORD *pdwPriority) +static HRESULT WINAPI MSTASK_ITask_GetPriority(ITask *iface, DWORD *priority) { - FIXME("(%p, %p): stub\n", iface, pdwPriority); - return E_NOTIMPL; + TaskImpl *This = impl_from_ITask(iface); + + TRACE("(%p, %p)\n", iface, priority); + + *priority = This->priority; + return S_OK; }
static HRESULT WINAPI MSTASK_ITask_SetTaskFlags( @@ -845,6 +847,7 @@ HRESULT TaskConstructor(ITaskService *service, const WCHAR *task_name, ITask **t This->status = SCHED_S_TASK_NOT_SCHEDULED; This->idle_minutes = 10; This->deadline_minutes = 60; + This->priority = NORMAL_PRIORITY_CLASS; 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 55e491366f..5952b53692 100644 --- a/dlls/mstask/tests/task.c +++ b/dlls/mstask/tests/task.c @@ -501,7 +501,7 @@ static void test_task_state(void) { BOOL setup; HRESULT hr, status; - DWORD flags; + DWORD flags, val; WORD val1, val2;
setup = setup_task(); @@ -557,6 +557,14 @@ static void test_task_state(void) ok(val1 == 10, "got %u\n", val1); ok(val2 == 60, "got %u\n", val2);
+ if (0) /* crashes under Windows */ + hr = ITask_GetPriority(test_task, NULL); + + val = 0xdeadbeef; + hr = ITask_GetPriority(test_task, &val); + ok(hr == S_OK, "got %#x\n", hr); + ok(val == NORMAL_PRIORITY_CLASS, "got %#x\n", val); + cleanup_task(); }