From: Vijay Kiran Kamuju infyquest@gmail.com
--- dlls/taskschd/task.c | 11 +++++++++-- dlls/taskschd/tests/scheduler.c | 6 +++--- 2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c index 1e3b992f0e3..fd4877830e6 100644 --- a/dlls/taskschd/task.c +++ b/dlls/taskschd/task.c @@ -37,6 +37,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(taskschd); typedef struct { IRepetitionPattern IRepetitionPattern_iface; LONG ref; + BOOL stop; } RepetitionPattern;
static inline RepetitionPattern *impl_from_IRepetitionPattern(IRepetitionPattern *iface) @@ -152,8 +153,13 @@ static HRESULT WINAPI RepetitionPattern_put_Interval(IRepetitionPattern *iface, static HRESULT WINAPI RepetitionPattern_get_StopAtDurationEnd(IRepetitionPattern *iface, VARIANT_BOOL *stop) { RepetitionPattern *This = impl_from_IRepetitionPattern(iface); - FIXME("(%p)->(%p)\n", This, stop); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, stop); + + if (!stop) return E_POINTER; + + *stop = This->stop ? VARIANT_TRUE : VARIANT_FALSE; + return S_OK; }
static HRESULT WINAPI RepetitionPattern_put_StopAtDurationEnd(IRepetitionPattern *iface, VARIANT_BOOL stop) @@ -189,6 +195,7 @@ static HRESULT RepetitionPattern_create(IRepetitionPattern **pattern)
rep_pattern->IRepetitionPattern_iface.lpVtbl = &RepetitionPattern_vtbl; rep_pattern->ref = 1; + rep_pattern->stop = FALSE;
*pattern = &rep_pattern->IRepetitionPattern_iface; return S_OK; diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c index 2b51a20959d..0d7493df7c9 100644 --- a/dlls/taskschd/tests/scheduler.c +++ b/dlls/taskschd/tests/scheduler.c @@ -1337,12 +1337,12 @@ static void test_repetition_pattern(IRepetitionPattern *pattern) todo_wine ok(interval == NULL, "interval not set\n");
hr = IRepetitionPattern_get_StopAtDurationEnd(pattern, NULL); - todo_wine ok(hr == E_POINTER, "get_Enabled failed: %08lx\n", hr); + ok(hr == E_POINTER, "get_Enabled failed: %08lx\n", hr);
stopatend = VARIANT_TRUE; hr = IRepetitionPattern_get_StopAtDurationEnd(pattern, &stopatend); - todo_wine ok(hr == S_OK, "get_StopAtDurationEnd failed: %08lx\n", hr); - todo_wine ok(stopatend == VARIANT_FALSE, "got %d\n", stopatend); + ok(hr == S_OK, "get_StopAtDurationEnd failed: %08lx\n", hr); + ok(stopatend == VARIANT_FALSE, "got %d\n", stopatend); }
static void test_daily_trigger(ITrigger *trigger)