wine-wine/include/wine/schrpc.idl

102 lines
4.9 KiB
Plaintext

/*
* Task Scheduler Service definitions
*
* Copyright 2014 Dmitry Timoshkov
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
cpp_quote("#define SCHEDSVC_TRANSPORT {'n','c','a','l','r','p','c',0}")
cpp_quote("#define SCH_FLAG_STATE 0x10000000")
import "oaidl.idl";
import "ocidl.idl";
[
uuid(86d35949-83c9-4044-b424-db363231fd0c),
implicit_handle(handle_t schrpc_handle),
version(1.0),
pointer_default(unique)
]
interface ITaskSchedulerService
{
typedef struct _TASK_USER_CRED
{
[string] const WCHAR *user;
[string] const WCHAR *password;
DWORD flags;
} TASK_USER_CRED;
typedef struct _TASK_XML_ERROR_INFO
{
DWORD line, column;
[string] WCHAR *node;
[string] WCHAR *value;
} TASK_XML_ERROR_INFO;
typedef [string] WCHAR **TASK_NAMES;
HRESULT SchRpcHighestVersion([out] DWORD *version);
HRESULT SchRpcRegisterTask([in, string, unique] const WCHAR *path,
[in, string] const WCHAR *xml, [in] DWORD flags,
[in, string, unique] const WCHAR *sddl,
[in] DWORD task_logon_type, [in] DWORD n_creds,
[in, size_is(n_creds), unique] const TASK_USER_CRED *creds,
[out, string] WCHAR **actual_path,
[out] TASK_XML_ERROR_INFO **xml_error_info);
HRESULT SchRpcRetrieveTask([in, string] const WCHAR *path,
[in, string] const WCHAR *languages,
[in] unsigned long *n_languages, [out, string] WCHAR **xml);
HRESULT SchRpcCreateFolder([in, string] const WCHAR *path,
[in, string, unique] const WCHAR *sddl, [in] DWORD flags);
HRESULT SchRpcSetSecurity([in, string] const WCHAR *path,
[in, string] const WCHAR *sddl, [in] DWORD flags);
HRESULT SchRpcGetSecurity([in, string] const WCHAR *path,
[in] DWORD flags, [out, string] WCHAR **sddl);
HRESULT SchRpcEnumFolders([in, string] const WCHAR *path,
[in] DWORD flags, [in, out] DWORD *start_index,
[in] DWORD n_requested, [out] DWORD *n_names,
[out, string, size_is(,*n_names)] TASK_NAMES *names);
HRESULT SchRpcEnumTasks([in, string] const WCHAR *path,
[in] DWORD flags, [in, out] DWORD *start_index,
[in] DWORD n_requested, [out] DWORD *n_names,
[out, string, size_is(,*n_names)] TASK_NAMES *names);
HRESULT SchRpcEnumInstances([in, string, unique] const WCHAR *path,
[in] DWORD flags, [out] DWORD *n_guids,
[out, size_is(,*n_guids)] GUID **guids);
HRESULT SchRpcGetInstanceInfo([in] GUID guid, [out, string] WCHAR **path,
[out] DWORD *task_state, [out, string] WCHAR **action,
[out, string] WCHAR **info, [out] DWORD *n_instances,
[out, size_is(,*n_instances)] GUID **instances, [out] DWORD *pid);
HRESULT SchRpcStopInstance([in] GUID guid, [in] DWORD flags);
HRESULT SchRpcStop([in, string, unique] const WCHAR *path, [in] DWORD flags);
HRESULT SchRpcRun([in, string] const WCHAR *path,
[in] DWORD n_args, [in, size_is(n_args),unique] const WCHAR **args,
[in] DWORD flags, [in] DWORD session_id,
[in, unique, string] const WCHAR *user, [out] GUID *guid);
HRESULT SchRpcDelete([in, string] const WCHAR *path, [in] DWORD flags);
HRESULT SchRpcRename([in, string] const WCHAR *path, [in, string] const WCHAR *name, [in] DWORD flags);
HRESULT SchRpcScheduledRuntimes([in, string] const WCHAR *path,
[in, unique] SYSTEMTIME *start, [in, unique] SYSTEMTIME *end,
[in] DWORD flags, [in] DWORD n_requested, [out] DWORD *n_runtimes,
[out, size_is(,*n_runtimes)] SYSTEMTIME **runtimes);
HRESULT SchRpcGetLastRunInfo([in, string] const WCHAR *path,
[out] SYSTEMTIME *last_runtime, [out] DWORD *last_return_code);
HRESULT SchRpcGetTaskInfo([in, string] const WCHAR *path, [in] DWORD flags,
[out] DWORD *enabled, [out] DWORD *task_state);
HRESULT SchRpcGetNumberOfMissedRuns([in, string] const WCHAR *path, [out] DWORD *runs);
HRESULT SchRpcEnableTask([in, string] const WCHAR *path, [in] DWORD enabled);
}