wbemprox: Implement Win32_LogicalDisk.VolumeSerialNumber.
[wine.git] / include / wine / schrpc.idl
blobc45108225fed766644a66e089c3eb073c68fba95
1 /*
2 * Task Scheduler Service definitions
4 * Copyright 2014 Dmitry Timoshkov
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 cpp_quote("#define SCHEDSVC_TRANSPORT {'n','c','a','l','r','p','c',0}")
23 import "oaidl.idl";
24 import "ocidl.idl";
27 uuid(86d35949-83c9-4044-b424-db363231fd0c),
28 implicit_handle(handle_t rpc_handle),
29 version(1.0),
30 pointer_default(unique)
32 interface ITaskSchedulerService
34 typedef struct _TASK_USER_CRED
36 [string] const WCHAR *user;
37 [string] const WCHAR *password;
38 DWORD flags;
39 } TASK_USER_CRED;
41 typedef struct _TASK_XML_ERROR_INFO
43 DWORD line, column;
44 [string] WCHAR *node;
45 [string] WCHAR *value;
46 } TASK_XML_ERROR_INFO;
48 typedef [string] WCHAR **TASK_NAMES;
50 HRESULT SchRpcHighestVersion([out] DWORD *version);
51 HRESULT SchRpcRegisterTask([in, string, unique] const WCHAR *path,
52 [in, string] const WCHAR *xml, [in] DWORD flags,
53 [in, string, unique] const WCHAR *sddl,
54 [in] DWORD task_logon_type, [in] DWORD n_creds,
55 [in, size_is(n_creds), unique] const TASK_USER_CRED *creds,
56 [out, string] WCHAR **actual_path,
57 [out] TASK_XML_ERROR_INFO **xml_error_info);
58 HRESULT SchRpcRetrieveTask([in, string] const WCHAR *path,
59 [in, string] const WCHAR *languages,
60 [in] unsigned long *n_languages, [out, string] WCHAR **xml);
61 HRESULT SchRpcCreateFolder([in, string] const WCHAR *path,
62 [in, string, unique] const WCHAR *sddl, [in] DWORD flags);
63 HRESULT SchRpcSetSecurity([in, string] const WCHAR *path,
64 [in, string] const WCHAR *sddl, [in] DWORD flags);
65 HRESULT SchRpcGetSecurity([in, string] const WCHAR *path,
66 [in] DWORD flags, [out, string] WCHAR **sddl);
67 HRESULT SchRpcEnumFolders([in, string] const WCHAR *path,
68 [in] DWORD flags, [in, out] DWORD *start_index,
69 [in] DWORD n_requested, [out] DWORD *n_names,
70 [out, size_is(,*n_names)] TASK_NAMES *names);
71 HRESULT SchRpcEnumTasks([in, string] const WCHAR *path,
72 [in] DWORD flags, [in, out] DWORD *start_index,
73 [in] DWORD n_requested, [out] DWORD *n_names,
74 [out, size_is(,*n_names)] TASK_NAMES *names);
75 HRESULT SchRpcEnumInstances([in, string, unique] const WCHAR *path,
76 [in] DWORD flags, [out] DWORD *n_guids,
77 [out, size_is(,*n_guids)] GUID **guids);
78 HRESULT SchRpcGetInstanceInfo([in] GUID guid, [out, string] WCHAR **path,
79 [out] DWORD *task_state, [out, string] WCHAR **action,
80 [out, string] WCHAR **info, [out] DWORD *n_instances,
81 [out, size_is(,*n_instances)] GUID **instances, [out] DWORD *pid);
82 HRESULT SchRpcStopInstance([in] GUID guid, [in] DWORD flags);
83 HRESULT SchRpcStop([in, string, unique] const WCHAR *path, [in] DWORD flags);
84 HRESULT SchRpcRun([in, string] const WCHAR *path,
85 [in] DWORD n_args, [in, size_is(n_args),unique] const WCHAR **args,
86 [in] DWORD flags, [in] DWORD session_id,
87 [in, unique, string] const WCHAR *user, [out] GUID *guid);
88 HRESULT SchRpcDelete([in, string] const WCHAR *path, [in] DWORD flags);
89 HRESULT SchRpcRename([in, string] const WCHAR *path, [in, string] const WCHAR *name, [in] DWORD flags);
90 HRESULT SchRpcScheduledRuntimes([in, string] const WCHAR *path,
91 [in, unique] SYSTEMTIME *start, [in, unique] SYSTEMTIME *end,
92 [in] DWORD flags, [in] DWORD n_requested, [out] DWORD *n_runtimes,
93 [out, size_is(,*n_runtimes)] SYSTEMTIME **runtimes);
94 HRESULT SchRpcGetLastRunInfo([in, string] const WCHAR *path,
95 [out] SYSTEMTIME *last_runtime, [out] DWORD *last_return_code);
96 HRESULT SchRpcGetTaskInfo([in, string] const WCHAR *path, [in] DWORD flags,
97 [out] DWORD *enabled, [out] DWORD *task_state);
98 HRESULT SchRpcGetNumberOfMissedRuns([in, string] const WCHAR *path, [out] DWORD *runs);
99 HRESULT SchRpcEnableTask([in, string] const WCHAR *path, [in] DWORD enabled);