Hans Leidekker : taskschd: Implement IDailyTrigger_get_StartBoundary.

Alexandre Julliard julliard at winehq.org
Fri Dec 1 14:08:19 CST 2017


Module: wine
Branch: master
Commit: 179d1ed75b55d6a71ba8a8c0c083a87c432b7d97
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=179d1ed75b55d6a71ba8a8c0c083a87c432b7d97

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Fri Dec  1 12:01:52 2017 +0100

taskschd: Implement IDailyTrigger_get_StartBoundary.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 ee5a7dd..8b64663 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -181,8 +181,15 @@ static HRESULT WINAPI DailyTrigger_put_ExecutionTimeLimit(IDailyTrigger *iface,
 static HRESULT WINAPI DailyTrigger_get_StartBoundary(IDailyTrigger *iface, BSTR *start)
 {
     DailyTrigger *This = impl_from_IDailyTrigger(iface);
-    FIXME("(%p)->(%p)\n", This, start);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, start);
+
+    if (!start) return E_POINTER;
+
+    if (!This->start_boundary) *start = NULL;
+    else if (!(*start = SysAllocString(This->start_boundary))) return E_OUTOFMEMORY;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI DailyTrigger_put_StartBoundary(IDailyTrigger *iface, BSTR start)
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c
index fb6d626..d0477a8 100644
--- a/dlls/taskschd/tests/scheduler.c
+++ b/dlls/taskschd/tests/scheduler.c
@@ -1253,12 +1253,29 @@ static void test_daily_trigger(ITrigger *trigger)
     ok(hr == S_OK, "get_DaysInterval failed: %08x\n", hr);
     ok(interval == 2, "interval = %d\n", interval);
 
+    hr = IDailyTrigger_get_StartBoundary(daily_trigger, NULL);
+    ok(hr == E_POINTER, "get_StartBoundary failed: %08x\n", hr);
+
+    start_boundary = (BSTR)0xdeadbeef;
+    hr = IDailyTrigger_get_StartBoundary(daily_trigger, &start_boundary);
+    ok(hr == S_OK, "get_StartBoundary failed: %08x\n", hr);
+    ok(start_boundary == NULL, "start_boundary not set\n");
+
     for (i = 0; i < sizeof(start_test)/sizeof(start_test[0]); i++)
     {
         start_boundary = SysAllocString(start_test[i].str);
         hr = IDailyTrigger_put_StartBoundary(daily_trigger, start_boundary);
         ok(hr == start_test[i].hr, "%u: got %08x expected %08x\n", i, hr, start_test[i].hr);
         SysFreeString(start_boundary);
+        if (hr == S_OK)
+        {
+            start_boundary = NULL;
+            hr = IDailyTrigger_get_StartBoundary(daily_trigger, &start_boundary);
+            ok(hr == S_OK, "%u: got %08x\n", i, hr);
+            ok(start_boundary != NULL, "start_boundary not set\n");
+            ok(!lstrcmpW(start_boundary, start_test[i].str), "%u: got %s\n", i, wine_dbgstr_w(start_boundary));
+            SysFreeString(start_boundary);
+        }
     }
 
     hr = IDailyTrigger_put_StartBoundary(daily_trigger, NULL);




More information about the wine-cvs mailing list