From: Vijay Kiran Kamuju infyquest@gmail.com
--- dlls/taskschd/task.c | 11 +++++++++-- dlls/taskschd/tests/scheduler.c | 17 +++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c index 7e1e923aa7d..d988663b4bd 100644 --- a/dlls/taskschd/task.c +++ b/dlls/taskschd/task.c @@ -211,8 +211,15 @@ static HRESULT WINAPI DailyTrigger_put_StartBoundary(IDailyTrigger *iface, BSTR static HRESULT WINAPI DailyTrigger_get_EndBoundary(IDailyTrigger *iface, BSTR *end) { DailyTrigger *This = impl_from_IDailyTrigger(iface); - FIXME("(%p)->(%p)\n", This, end); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, end); + + if (!end) return E_POINTER; + + if (!This->end_boundary) *end = NULL; + else if (!(*end = SysAllocString(This->end_boundary))) return E_OUTOFMEMORY; + + return S_OK; }
static HRESULT WINAPI DailyTrigger_put_EndBoundary(IDailyTrigger *iface, BSTR end) diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c index 7c237a22fb6..1e803c9c7bd 100644 --- a/dlls/taskschd/tests/scheduler.c +++ b/dlls/taskschd/tests/scheduler.c @@ -1331,11 +1331,19 @@ static void test_daily_trigger(ITrigger *trigger) hr = IDailyTrigger_get_StartBoundary(daily_trigger, NULL); ok(hr == E_POINTER, "get_StartBoundary failed: %08lx\n", hr);
+ hr = IDailyTrigger_get_EndBoundary(daily_trigger, NULL); + ok(hr == E_POINTER, "get_EndBoundary failed: %08lx\n", hr); + start_boundary = (BSTR)0xdeadbeef; hr = IDailyTrigger_get_StartBoundary(daily_trigger, &start_boundary); ok(hr == S_OK, "get_StartBoundary failed: %08lx\n", hr); ok(start_boundary == NULL, "start_boundary not set\n");
+ end_boundary = (BSTR)0xdeadbeef; + hr = IDailyTrigger_get_EndBoundary(daily_trigger, &end_boundary); + ok(hr == S_OK, "get_EndBoundary failed: %08lx\n", hr); + ok(end_boundary == NULL, "end_boundary not set\n"); + for (i = 0; i < ARRAY_SIZE(start_test); i++) { winetest_push_context("%lu", i); @@ -1357,6 +1365,15 @@ static void test_daily_trigger(ITrigger *trigger) hr = IDailyTrigger_put_EndBoundary(daily_trigger, end_boundary); ok(hr == start_test[i].hr, "got %08lx expected %08lx\n", hr, start_test[i].hr); SysFreeString(end_boundary); + if (hr == S_OK) + { + end_boundary = NULL; + hr = IDailyTrigger_get_EndBoundary(daily_trigger, &end_boundary); + ok(hr == S_OK, "got %08lx\n", hr); + ok(end_boundary != NULL, "end_boundary not set\n"); + ok(!lstrcmpW(end_boundary, start_test[i].end), "got %s\n", wine_dbgstr_w(end_boundary)); + SysFreeString(end_boundary); + } winetest_pop_context(); }