mirror of
https://github.com/reactos/wine.git
synced 2025-02-07 12:48:02 +00:00
taskschd: Implement ITaskFolder::RegisterTask as a wrapper around ITaskFolder::RegisterTaskDefinition.
This commit is contained in:
parent
d73750f086
commit
433598c10b
@ -318,12 +318,33 @@ static HRESULT WINAPI TaskFolder_DeleteTask(ITaskFolder *iface, BSTR name, LONG
|
||||
static HRESULT WINAPI TaskFolder_RegisterTask(ITaskFolder *iface, BSTR name, BSTR xml, LONG flags,
|
||||
VARIANT user, VARIANT password, TASK_LOGON_TYPE logon,
|
||||
VARIANT sddl, IRegisteredTask **task)
|
||||
{
|
||||
ITaskDefinition *taskdef;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("%p,%s,%s,%x,%s,%s,%d,%s,%p\n", iface, debugstr_w(name), debugstr_w(xml), flags,
|
||||
debugstr_variant(&user), debugstr_variant(&password), logon, debugstr_variant(&sddl), task);
|
||||
|
||||
hr = TaskDefinition_create(&taskdef);
|
||||
if (hr != S_OK) return hr;
|
||||
|
||||
hr = ITaskDefinition_put_XmlText(taskdef, xml);
|
||||
if (hr == S_OK)
|
||||
hr = ITaskFolder_RegisterTaskDefinition(iface, name, taskdef, flags, user, password, logon, sddl, task);
|
||||
|
||||
ITaskDefinition_Release(taskdef);
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI TaskFolder_RegisterTaskDefinition(ITaskFolder *iface, BSTR name, ITaskDefinition *definition, LONG flags,
|
||||
VARIANT user, VARIANT password, TASK_LOGON_TYPE logon,
|
||||
VARIANT sddl, IRegisteredTask **task)
|
||||
{
|
||||
TaskFolder *folder = impl_from_ITaskFolder(iface);
|
||||
IRegisteredTask *regtask = NULL;
|
||||
HRESULT hr;
|
||||
|
||||
FIXME("%p,%s,%s,%x,%s,%s,%d,%s,%p: stub\n", iface, debugstr_w(name), debugstr_w(xml), flags,
|
||||
FIXME("%p,%s,%p,%x,%s,%s,%d,%s,%p: stub\n", iface, debugstr_w(name), definition, flags,
|
||||
debugstr_variant(&user), debugstr_variant(&password), logon, debugstr_variant(&sddl), task);
|
||||
|
||||
if (!is_variant_null(&sddl))
|
||||
@ -334,7 +355,7 @@ static HRESULT WINAPI TaskFolder_RegisterTask(ITaskFolder *iface, BSTR name, BST
|
||||
|
||||
if (!task) task = ®task;
|
||||
|
||||
hr = RegisteredTask_create(folder->path, name, xml, logon, task, TRUE);
|
||||
hr = RegisteredTask_create(folder->path, name, definition, logon, task, TRUE);
|
||||
|
||||
if (regtask)
|
||||
IRegisteredTask_Release(regtask);
|
||||
@ -342,15 +363,6 @@ static HRESULT WINAPI TaskFolder_RegisterTask(ITaskFolder *iface, BSTR name, BST
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI TaskFolder_RegisterTaskDefinition(ITaskFolder *iface, BSTR path, ITaskDefinition *definition, LONG flags,
|
||||
VARIANT user, VARIANT password, TASK_LOGON_TYPE logon,
|
||||
VARIANT sddl, IRegisteredTask **task)
|
||||
{
|
||||
FIXME("%p,%s,%p,%x,%s,%s,%d,%s,%p: stub\n", iface, debugstr_w(path), definition, flags,
|
||||
debugstr_variant(&user), debugstr_variant(&password), logon, debugstr_variant(&sddl), task);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI TaskFolder_GetSecurityDescriptor(ITaskFolder *iface, LONG info, BSTR *sddl)
|
||||
{
|
||||
FIXME("%p,%x,%p: stub\n", iface, info, sddl);
|
||||
|
@ -251,7 +251,7 @@ static const IRegisteredTaskVtbl RegisteredTask_vtbl =
|
||||
regtask_GetRunTimes
|
||||
};
|
||||
|
||||
HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, const WCHAR *xml,
|
||||
HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, ITaskDefinition *definition,
|
||||
TASK_LOGON_TYPE logon, IRegisteredTask **obj, BOOL create)
|
||||
{
|
||||
RegisteredTask *regtask;
|
||||
|
@ -787,7 +787,7 @@ static const ITaskDefinitionVtbl TaskDefinition_vtbl =
|
||||
TaskDefinition_put_XmlText
|
||||
};
|
||||
|
||||
static HRESULT TaskDefinition_create(ITaskDefinition **obj)
|
||||
HRESULT TaskDefinition_create(ITaskDefinition **obj)
|
||||
{
|
||||
TaskDefinition *taskdef;
|
||||
|
||||
|
@ -22,9 +22,10 @@
|
||||
#include "wine/unicode.h"
|
||||
|
||||
HRESULT TaskService_create(void **obj) DECLSPEC_HIDDEN;
|
||||
HRESULT TaskDefinition_create(ITaskDefinition **obj) DECLSPEC_HIDDEN;
|
||||
HRESULT TaskFolder_create(const WCHAR *parent, const WCHAR *path, ITaskFolder **obj, BOOL create) DECLSPEC_HIDDEN;
|
||||
HRESULT TaskFolderCollection_create(const WCHAR *path, ITaskFolderCollection **obj) DECLSPEC_HIDDEN;
|
||||
HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, const WCHAR *xml, TASK_LOGON_TYPE logon,
|
||||
HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, ITaskDefinition *definition, TASK_LOGON_TYPE logon,
|
||||
IRegisteredTask **obj, BOOL create) DECLSPEC_HIDDEN;
|
||||
HRESULT RegisteredTaskCollection_create(const WCHAR *path, IRegisteredTaskCollection **obj) DECLSPEC_HIDDEN;
|
||||
|
||||
|
@ -734,6 +734,7 @@ static void test_GetTask(void)
|
||||
MultiByteToWideChar(CP_ACP, 0, xml1, -1, xmlW, sizeof(xmlW)/sizeof(xmlW[0]));
|
||||
|
||||
hr = ITaskFolder_RegisterTask(root, Wine_Task1, xmlW, TASK_CREATE, v_null, v_null, TASK_LOGON_NONE, v_null, NULL);
|
||||
todo_wine
|
||||
ok(hr == S_OK, "RegisterTask error %#x\n", hr);
|
||||
|
||||
hr = ITaskFolder_RegisterTask(root, Wine_Task1, xmlW, TASK_CREATE, v_null, v_null, TASK_LOGON_NONE, v_null, &task1);
|
||||
@ -741,7 +742,10 @@ todo_wine
|
||||
ok(hr == HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS), "expected ERROR_ALREADY_EXISTS, got %#x\n", hr);
|
||||
|
||||
hr = ITaskFolder_RegisterTask(root, Wine_Task1, xmlW, TASK_CREATE_OR_UPDATE, v_null, v_null, TASK_LOGON_NONE, v_null, &task1);
|
||||
todo_wine
|
||||
ok(hr == S_OK, "RegisterTask error %#x\n", hr);
|
||||
/* FIXME: Remove once implemented */
|
||||
if (hr != S_OK) goto failed;
|
||||
|
||||
hr = IRegisteredTask_get_Name(task1, NULL);
|
||||
todo_wine
|
||||
|
Loading…
x
Reference in New Issue
Block a user