From 48e35424a65ddb89e9877e72f3a997c6e97a6617 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Tue, 17 Nov 2020 00:55:17 +0100 Subject: [PATCH] taskschd: Use wide-char string literals. Also merge some strings. Signed-off-by: Michael Stefaniuc Signed-off-by: Alexandre Julliard --- dlls/taskschd/folder.c | 5 +- dlls/taskschd/regtask.c | 3 +- dlls/taskschd/task.c | 297 +++++++++++++++++------------------------------- 3 files changed, 108 insertions(+), 197 deletions(-) diff --git a/dlls/taskschd/folder.c b/dlls/taskschd/folder.c index eea404acd27..8b2630f4ec3 100644 --- a/dlls/taskschd/folder.c +++ b/dlls/taskschd/folder.c @@ -203,7 +203,6 @@ static HRESULT WINAPI TaskFolder_CreateFolder(ITaskFolder *iface, BSTR path, VAR WCHAR *get_full_path(const WCHAR *parent, const WCHAR *path) { - static const WCHAR bslash[] = { '\\', 0 }; WCHAR *folder_path; int len = 0; @@ -224,7 +223,7 @@ WCHAR *get_full_path(const WCHAR *parent, const WCHAR *path) { len = lstrlenW(folder_path); if (!len || folder_path[len - 1] != '\\') - lstrcatW(folder_path, bslash); + lstrcatW(folder_path, L"\\"); while (*path == '\\') path++; lstrcatW(folder_path, path); @@ -232,7 +231,7 @@ WCHAR *get_full_path(const WCHAR *parent, const WCHAR *path) len = lstrlenW(folder_path); if (!len) - lstrcatW(folder_path, bslash); + lstrcatW(folder_path, L"\\"); return folder_path; } diff --git a/dlls/taskschd/regtask.c b/dlls/taskschd/regtask.c index b5d726920cf..0b4b5717657 100644 --- a/dlls/taskschd/regtask.c +++ b/dlls/taskschd/regtask.c @@ -357,11 +357,10 @@ HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, ITaskDefinit } else { - static const WCHAR languages[] = { 0 }; DWORD count = 0; WCHAR *xml = NULL; - hr = SchRpcRetrieveTask(full_name, languages, &count, &xml); + hr = SchRpcRetrieveTask(full_name, L"", &count, &xml); if (hr != S_OK || (hr = ITaskDefinition_put_XmlText(definition, xml)) != S_OK) { heap_free(full_name); diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c index 8d81a18b3f5..dd7380e75ac 100644 --- a/dlls/taskschd/task.c +++ b/dlls/taskschd/task.c @@ -1440,7 +1440,6 @@ static const ITaskSettingsVtbl TaskSettings_vtbl = static HRESULT TaskSettings_create(ITaskSettings **obj) { - static const WCHAR exec_time_limit[] = { 'P','T','7','2','H',0 }; TaskSettings *taskset; taskset = heap_alloc(sizeof(*taskset)); @@ -1450,7 +1449,7 @@ static HRESULT TaskSettings_create(ITaskSettings **obj) taskset->ref = 1; /* set the defaults */ taskset->restart_interval = NULL; - taskset->execution_time_limit = heap_strdupW(exec_time_limit); + taskset->execution_time_limit = heap_strdupW(L"PT72H"); taskset->delete_expired_task_after = NULL; taskset->restart_count = 0; taskset->priority = 7; @@ -2398,56 +2397,6 @@ static HRESULT WINAPI TaskDefinition_put_Actions(ITaskDefinition *iface, IAction return S_OK; } -static const WCHAR Task[] = {'T','a','s','k',0}; -static const WCHAR version[] = {'v','e','r','s','i','o','n',0}; -static const WCHAR v1_0[] = {'1','.','0',0}; -static const WCHAR v1_1[] = {'1','.','1',0}; -static const WCHAR v1_2[] = {'1','.','2',0}; -static const WCHAR v1_3[] = {'1','.','3',0}; -static const WCHAR xmlns[] = {'x','m','l','n','s',0}; -static const WCHAR task_ns[] = {'h','t','t','p',':','/','/','s','c','h','e','m','a','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','w','i','n','d','o','w','s','/','2','0','0','4','/','0','2','/','m','i','t','/','t','a','s','k',0}; -static const WCHAR RegistrationInfo[] = {'R','e','g','i','s','t','r','a','t','i','o','n','I','n','f','o',0}; -static const WCHAR Author[] = {'A','u','t','h','o','r',0}; -static const WCHAR Description[] = {'D','e','s','c','r','i','p','t','i','o','n',0}; -static const WCHAR Source[] = {'S','o','u','r','c','e',0}; -static const WCHAR Date[] = {'D','a','t','e',0}; -static const WCHAR Version[] = {'V','e','r','s','i','o','n',0}; -static const WCHAR Documentation[] = {'D','o','c','u','m','e','n','t','a','t','i','o','n',0}; -static const WCHAR URI[] = {'U','R','I',0}; -static const WCHAR SecurityDescriptor[] = {'S','e','c','u','r','i','t','y','D','e','s','c','r','i','p','t','o','r',0}; -static const WCHAR Settings[] = {'S','e','t','t','i','n','g','s',0}; -static const WCHAR Triggers[] = {'T','r','i','g','g','e','r','s',0}; -static const WCHAR Principals[] = {'P','r','i','n','c','i','p','a','l','s',0}; -static const WCHAR principalW[] = {'P','r','i','n','c','i','p','a','l',0}; -static const WCHAR id[] = {'i','d',0}; -static const WCHAR UserId[] = {'U','s','e','r','I','d',0}; -static const WCHAR LogonType[] = {'L','o','g','o','n','T','y','p','e',0}; -static const WCHAR GroupId[] = {'G','r','o','u','p','I','d',0}; -static const WCHAR DisplayName[] = {'D','i','s','p','l','a','y','N','a','m','e',0}; -static const WCHAR HighestAvailable[] = {'H','i','g','h','e','s','t','A','v','a','i','l','a','b','l','e',0}; -static const WCHAR Password[] = {'P','a','s','s','w','o','r','d',0}; -static const WCHAR S4U[] = {'S','4','U',0}; -static const WCHAR InteractiveToken[] = {'I','n','t','e','r','a','c','t','i','v','e','T','o','k','e','n',0}; -static const WCHAR RunLevel[] = {'R','u','n','L','e','v','e','l',0}; -static const WCHAR LeastPrivilege[] = {'L','e','a','s','t','P','r','i','v','i','l','e','g','e',0}; -static const WCHAR actionsW[] = {'A','c','t','i','o','n','s',0}; -static const WCHAR Exec[] = {'E','x','e','c',0}; -static const WCHAR MultipleInstancesPolicy[] = {'M','u','l','t','i','p','l','e','I','n','s','t','a','n','c','e','s','P','o','l','i','c','y',0}; -static const WCHAR IgnoreNew[] = {'I','g','n','o','r','e','N','e','w',0}; -static const WCHAR DisallowStartIfOnBatteries[] = {'D','i','s','a','l','l','o','w','S','t','a','r','t','I','f','O','n','B','a','t','t','e','r','i','e','s',0}; -static const WCHAR AllowStartOnDemand[] = {'A','l','l','o','w','S','t','a','r','t','O','n','D','e','m','a','n','d',0}; -static const WCHAR StopIfGoingOnBatteries[] = {'S','t','o','p','I','f','G','o','i','n','g','O','n','B','a','t','t','e','r','i','e','s',0}; -static const WCHAR AllowHardTerminate[] = {'A','l','l','o','w','H','a','r','d','T','e','r','m','i','n','a','t','e',0}; -static const WCHAR StartWhenAvailable[] = {'S','t','a','r','t','W','h','e','n','A','v','a','i','l','a','b','l','e',0}; -static const WCHAR RunOnlyIfNetworkAvailable[] = {'R','u','n','O','n','l','y','I','f','N','e','t','w','o','r','k','A','v','a','i','l','a','b','l','e',0}; -static const WCHAR Enabled[] = {'E','n','a','b','l','e','d',0}; -static const WCHAR Hidden[] = {'H','i','d','d','e','n',0}; -static const WCHAR RunOnlyIfIdle[] = {'R','u','n','O','n','l','y','I','f','I','d','l','e',0}; -static const WCHAR WakeToRun[] = {'W','a','k','e','T','o','R','u','n',0}; -static const WCHAR ExecutionTimeLimit[] = {'E','x','e','c','u','t','i','o','n','T','i','m','e','L','i','m','i','t',0}; -static const WCHAR Priority[] = {'P','r','i','o','r','i','t','y',0}; -static const WCHAR IdleSettings[] = {'I','d','l','e','S','e','t','t','i','n','g','s',0}; - static int xml_indent; static inline void push_indent(void) @@ -2467,59 +2416,45 @@ static inline HRESULT write_stringW(IStream *stream, const WCHAR *str) static void write_indent(IStream *stream) { - static const WCHAR spacesW[] = {' ',' ',0}; int i; for (i = 0; i < xml_indent; i += 2) - write_stringW(stream, spacesW); + write_stringW(stream, L" "); } -static const WCHAR start_element[] = {'<',0}; -static const WCHAR start_end_element[] = {'<','/',0}; -static const WCHAR close_element[] = {'>',0}; -static const WCHAR end_empty_element[] = {'/','>',0}; -static const WCHAR eol[] = {'\n',0}; -static const WCHAR spaceW[] = {' ',0}; -static const WCHAR equalW[] = {'=',0}; -static const WCHAR quoteW[] = {'"',0}; - static inline HRESULT write_empty_element(IStream *stream, const WCHAR *name) { write_indent(stream); - write_stringW(stream, start_element); + write_stringW(stream, L"<"); write_stringW(stream, name); - write_stringW(stream, end_empty_element); - return write_stringW(stream, eol); + return write_stringW(stream, L"/>\n"); } static inline HRESULT write_element(IStream *stream, const WCHAR *name) { write_indent(stream); - write_stringW(stream, start_element); + write_stringW(stream, L"<"); write_stringW(stream, name); - write_stringW(stream, close_element); - return write_stringW(stream, eol); + return write_stringW(stream, L">\n"); } static inline HRESULT write_element_end(IStream *stream, const WCHAR *name) { write_indent(stream); - write_stringW(stream, start_end_element); + write_stringW(stream, L"\n"); } static inline HRESULT write_text_value(IStream *stream, const WCHAR *name, const WCHAR *value) { write_indent(stream); - write_stringW(stream, start_element); + write_stringW(stream, L"<"); write_stringW(stream, name); - write_stringW(stream, close_element); + write_stringW(stream, L">"); write_stringW(stream, value); - write_stringW(stream, start_end_element); + write_stringW(stream, L"\n"); } static HRESULT write_task_attributes(IStream *stream, ITaskDefinition *taskdef) @@ -2540,35 +2475,23 @@ static HRESULT write_task_attributes(IStream *stream, ITaskDefinition *taskdef) switch (level) { case TASK_COMPATIBILITY_AT: - compatibility = v1_0; + compatibility = L"1.0"; break; case TASK_COMPATIBILITY_V1: - compatibility = v1_1; + compatibility = L"1.1"; break; case TASK_COMPATIBILITY_V2: - compatibility = v1_2; + compatibility = L"1.2"; break; default: - compatibility = v1_3; + compatibility = L"1.3"; break; } - write_stringW(stream, start_element); - write_stringW(stream, Task); - write_stringW(stream, spaceW); - write_stringW(stream, version); - write_stringW(stream, equalW); - write_stringW(stream, quoteW); + write_stringW(stream, L""); + return write_stringW(stream, L"\n"); } static HRESULT write_registration_info(IStream *stream, IRegistrationInfo *reginfo) @@ -2578,9 +2501,9 @@ static HRESULT write_registration_info(IStream *stream, IRegistrationInfo *regin VARIANT var; if (!reginfo) - return write_empty_element(stream, RegistrationInfo); + return write_empty_element(stream, L"RegistrationInfo"); - hr = write_element(stream, RegistrationInfo); + hr = write_element(stream, L"RegistrationInfo"); if (hr != S_OK) return hr; push_indent(); @@ -2588,49 +2511,49 @@ static HRESULT write_registration_info(IStream *stream, IRegistrationInfo *regin hr = IRegistrationInfo_get_Source(reginfo, &bstr); if (hr == S_OK && bstr) { - hr = write_text_value(stream, Source, bstr); + hr = write_text_value(stream, L"Source", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IRegistrationInfo_get_Date(reginfo, &bstr); if (hr == S_OK && bstr) { - hr = write_text_value(stream, Date, bstr); + hr = write_text_value(stream, L"Date", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IRegistrationInfo_get_Author(reginfo, &bstr); if (hr == S_OK && bstr) { - hr = write_text_value(stream, Author, bstr); + hr = write_text_value(stream, L"Author", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IRegistrationInfo_get_Version(reginfo, &bstr); if (hr == S_OK && bstr) { - hr = write_text_value(stream, Version, bstr); + hr = write_text_value(stream, L"Version", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IRegistrationInfo_get_Description(reginfo, &bstr); if (hr == S_OK && bstr) { - hr = write_text_value(stream, Description, bstr); + hr = write_text_value(stream, L"Description", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IRegistrationInfo_get_Documentation(reginfo, &bstr); if (hr == S_OK && bstr) { - hr = write_text_value(stream, Documentation, bstr); + hr = write_text_value(stream, L"Documentation", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IRegistrationInfo_get_URI(reginfo, &bstr); if (hr == S_OK && bstr) { - hr = write_text_value(stream, URI, bstr); + hr = write_text_value(stream, L"URI", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } @@ -2639,7 +2562,7 @@ static HRESULT write_registration_info(IStream *stream, IRegistrationInfo *regin { if (V_VT(&var) == VT_BSTR) { - hr = write_text_value(stream, SecurityDescriptor, V_BSTR(&var)); + hr = write_text_value(stream, L"SecurityDescriptor", V_BSTR(&var)); VariantClear(&var); if (hr != S_OK) return hr; } @@ -2649,7 +2572,7 @@ static HRESULT write_registration_info(IStream *stream, IRegistrationInfo *regin pop_indent(); - return write_element_end(stream, RegistrationInfo); + return write_element_end(stream, L"RegistrationInfo"); } static HRESULT write_principal(IStream *stream, IPrincipal *principal) @@ -2660,9 +2583,9 @@ static HRESULT write_principal(IStream *stream, IPrincipal *principal) TASK_RUNLEVEL_TYPE level; if (!principal) - return write_empty_element(stream, Principals); + return write_empty_element(stream, L"Principals"); - hr = write_element(stream, Principals); + hr = write_element(stream, L"Principals"); if (hr != S_OK) return hr; push_indent(); @@ -2671,41 +2594,34 @@ static HRESULT write_principal(IStream *stream, IPrincipal *principal) if (hr == S_OK) { write_indent(stream); - write_stringW(stream, start_element); - write_stringW(stream, principalW); - write_stringW(stream, spaceW); - write_stringW(stream, id); - write_stringW(stream, equalW); - write_stringW(stream, quoteW); + write_stringW(stream, L"\n"); SysFreeString(bstr); } else - write_element(stream, principalW); + write_element(stream, L"Principal"); push_indent(); hr = IPrincipal_get_GroupId(principal, &bstr); if (hr == S_OK) { - hr = write_text_value(stream, GroupId, bstr); + hr = write_text_value(stream, L"GroupId", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IPrincipal_get_DisplayName(principal, &bstr); if (hr == S_OK) { - hr = write_text_value(stream, DisplayName, bstr); + hr = write_text_value(stream, L"DisplayName", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } hr = IPrincipal_get_UserId(principal, &bstr); if (hr == S_OK && lstrlenW(bstr)) { - hr = write_text_value(stream, UserId, bstr); + hr = write_text_value(stream, L"UserId", bstr); SysFreeString(bstr); if (hr != S_OK) return hr; } @@ -2717,10 +2633,10 @@ static HRESULT write_principal(IStream *stream, IPrincipal *principal) switch (level) { case TASK_RUNLEVEL_HIGHEST: - level_str = HighestAvailable; + level_str = L"HighestAvailable"; break; case TASK_RUNLEVEL_LUA: - level_str = LeastPrivilege; + level_str = L"LeastPrivilege"; break; default: FIXME("Principal run level %d\n", level); @@ -2729,7 +2645,7 @@ static HRESULT write_principal(IStream *stream, IPrincipal *principal) if (level_str) { - hr = write_text_value(stream, RunLevel, level_str); + hr = write_text_value(stream, L"RunLevel", level_str); if (hr != S_OK) return hr; } } @@ -2741,13 +2657,13 @@ static HRESULT write_principal(IStream *stream, IPrincipal *principal) switch (logon) { case TASK_LOGON_PASSWORD: - logon_str = Password; + logon_str = L"Password"; break; case TASK_LOGON_S4U: - logon_str = S4U; + logon_str = L"S4U"; break; case TASK_LOGON_INTERACTIVE_TOKEN: - logon_str = InteractiveToken; + logon_str = L"InteractiveToken"; break; default: FIXME("Principal logon type %d\n", logon); @@ -2756,22 +2672,22 @@ static HRESULT write_principal(IStream *stream, IPrincipal *principal) if (logon_str) { - hr = write_text_value(stream, LogonType, logon_str); + hr = write_text_value(stream, L"LogonType", logon_str); if (hr != S_OK) return hr; } } pop_indent(); - write_element_end(stream, principalW); + write_element_end(stream, L"Principal"); pop_indent(); - return write_element_end(stream, Principals); + return write_element_end(stream, L"Principals"); } static HRESULT write_settings(IStream *stream, ITaskSettings *settings) { if (!settings) - return write_empty_element(stream, Settings); + return write_empty_element(stream, L"Settings"); FIXME("stub\n"); return S_OK; @@ -2780,7 +2696,7 @@ static HRESULT write_settings(IStream *stream, ITaskSettings *settings) static HRESULT write_triggers(IStream *stream, ITriggerCollection *triggers) { if (!triggers) - return write_empty_element(stream, Triggers); + return write_empty_element(stream, L"Triggers"); FIXME("stub\n"); return S_OK; @@ -2790,11 +2706,11 @@ static HRESULT write_actions(IStream *stream, IActionCollection *actions) { if (!actions) { - write_element(stream, actionsW); + write_element(stream, L"Actions"); push_indent(); - write_empty_element(stream, Exec); + write_empty_element(stream, L"Exec"); pop_indent(); - return write_element_end(stream, actionsW); + return write_element_end(stream, L"Actions"); } FIXME("stub\n"); @@ -2843,7 +2759,7 @@ static HRESULT WINAPI TaskDefinition_get_XmlText(ITaskDefinition *iface, BSTR *x pop_indent(); - write_element_end(stream, Task); + write_element_end(stream, L"Task"); IStream_Write(stream, "\0\0", 2, NULL); p = GlobalLock(hmem); @@ -2889,17 +2805,15 @@ static HRESULT read_text_value(IXmlReader *reader, WCHAR **value) static HRESULT read_variantbool_value(IXmlReader *reader, VARIANT_BOOL *vbool) { - static const WCHAR trueW[] = {'t','r','u','e',0}; - static const WCHAR falseW[] = {'f','a','l','s','e',0}; HRESULT hr; WCHAR *value; hr = read_text_value(reader, &value); if (hr != S_OK) return hr; - if (!lstrcmpW(value, trueW)) + if (!lstrcmpW(value, L"true")) *vbool = VARIANT_TRUE; - else if (!lstrcmpW(value, falseW)) + else if (!lstrcmpW(value, L"false")) *vbool = VARIANT_FALSE; else { @@ -2947,7 +2861,7 @@ static HRESULT read_principal_attributes(IXmlReader *reader, IPrincipal *princip TRACE("%s=%s\n", debugstr_w(name), debugstr_w(value)); - if (!lstrcmpW(name, id)) + if (!lstrcmpW(name, L"id")) IPrincipal_put_Id(principal, (BSTR)value); else FIXME("unhandled Principal attribute %s\n", debugstr_w(name)); @@ -2983,7 +2897,7 @@ static HRESULT read_principal(IXmlReader *reader, IPrincipal *principal) TRACE("/%s\n", debugstr_w(name)); - if (!lstrcmpW(name, principalW)) + if (!lstrcmpW(name, L"Principal")) return S_OK; break; @@ -2994,20 +2908,20 @@ static HRESULT read_principal(IXmlReader *reader, IPrincipal *principal) TRACE("Element: %s\n", debugstr_w(name)); - if (!lstrcmpW(name, UserId)) + if (!lstrcmpW(name, L"UserId")) { hr = read_text_value(reader, &value); if (hr == S_OK) IPrincipal_put_UserId(principal, value); } - else if (!lstrcmpW(name, LogonType)) + else if (!lstrcmpW(name, L"LogonType")) { hr = read_text_value(reader, &value); if (hr == S_OK) { TASK_LOGON_TYPE logon = TASK_LOGON_NONE; - if (!lstrcmpW(value, InteractiveToken)) + if (!lstrcmpW(value, L"InteractiveToken")) logon = TASK_LOGON_INTERACTIVE_TOKEN; else FIXME("unhandled LogonType %s\n", debugstr_w(value)); @@ -3015,14 +2929,14 @@ static HRESULT read_principal(IXmlReader *reader, IPrincipal *principal) IPrincipal_put_LogonType(principal, logon); } } - else if (!lstrcmpW(name, RunLevel)) + else if (!lstrcmpW(name, L"RunLevel")) { hr = read_text_value(reader, &value); if (hr == S_OK) { TASK_RUNLEVEL_TYPE level = TASK_RUNLEVEL_LUA; - if (!lstrcmpW(value, LeastPrivilege)) + if (!lstrcmpW(value, L"LeastPrivilege")) level = TASK_RUNLEVEL_LUA; else FIXME("unhandled RunLevel %s\n", debugstr_w(value)); @@ -3071,7 +2985,7 @@ static HRESULT read_principals(IXmlReader *reader, ITaskDefinition *taskdef) TRACE("/%s\n", debugstr_w(name)); - if (!lstrcmpW(name, Principals)) + if (!lstrcmpW(name, L"Principals")) return S_OK; break; @@ -3082,7 +2996,7 @@ static HRESULT read_principals(IXmlReader *reader, ITaskDefinition *taskdef) TRACE("Element: %s\n", debugstr_w(name)); - if (!lstrcmpW(name, principalW)) + if (!lstrcmpW(name, L"Principal")) { IPrincipal *principal; @@ -3147,7 +3061,7 @@ static HRESULT read_settings(IXmlReader *reader, ITaskSettings *taskset) TRACE("/%s\n", debugstr_w(name)); - if (!lstrcmpW(name, Settings)) + if (!lstrcmpW(name, L"Settings")) return S_OK; break; @@ -3158,14 +3072,14 @@ static HRESULT read_settings(IXmlReader *reader, ITaskSettings *taskset) TRACE("Element: %s\n", debugstr_w(name)); - if (!lstrcmpW(name, MultipleInstancesPolicy)) + if (!lstrcmpW(name, L"MultipleInstancesPolicy")) { hr = read_text_value(reader, &value); if (hr == S_OK) { int_val = TASK_INSTANCES_IGNORE_NEW; - if (!lstrcmpW(value, IgnoreNew)) + if (!lstrcmpW(value, L"IgnoreNew")) int_val = TASK_INSTANCES_IGNORE_NEW; else FIXME("unhandled MultipleInstancesPolicy %s\n", debugstr_w(value)); @@ -3173,79 +3087,79 @@ static HRESULT read_settings(IXmlReader *reader, ITaskSettings *taskset) ITaskSettings_put_MultipleInstances(taskset, int_val); } } - else if (!lstrcmpW(name, DisallowStartIfOnBatteries)) + else if (!lstrcmpW(name, L"DisallowStartIfOnBatteries")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_DisallowStartIfOnBatteries(taskset, bool_val); } - else if (!lstrcmpW(name, AllowStartOnDemand)) + else if (!lstrcmpW(name, L"AllowStartOnDemand")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_AllowDemandStart(taskset, bool_val); } - else if (!lstrcmpW(name, StopIfGoingOnBatteries)) + else if (!lstrcmpW(name, L"StopIfGoingOnBatteries")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_StopIfGoingOnBatteries(taskset, bool_val); } - else if (!lstrcmpW(name, AllowHardTerminate)) + else if (!lstrcmpW(name, L"AllowHardTerminate")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_AllowHardTerminate(taskset, bool_val); } - else if (!lstrcmpW(name, StartWhenAvailable)) + else if (!lstrcmpW(name, L"StartWhenAvailable")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_StartWhenAvailable(taskset, bool_val); } - else if (!lstrcmpW(name, RunOnlyIfNetworkAvailable)) + else if (!lstrcmpW(name, L"RunOnlyIfNetworkAvailable")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_RunOnlyIfNetworkAvailable(taskset, bool_val); } - else if (!lstrcmpW(name, Enabled)) + else if (!lstrcmpW(name, L"Enabled")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_Enabled(taskset, bool_val); } - else if (!lstrcmpW(name, Hidden)) + else if (!lstrcmpW(name, L"Hidden")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_Hidden(taskset, bool_val); } - else if (!lstrcmpW(name, RunOnlyIfIdle)) + else if (!lstrcmpW(name, L"RunOnlyIfIdle")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_RunOnlyIfIdle(taskset, bool_val); } - else if (!lstrcmpW(name, WakeToRun)) + else if (!lstrcmpW(name, L"WakeToRun")) { hr = read_variantbool_value(reader, &bool_val); if (hr != S_OK) return hr; ITaskSettings_put_WakeToRun(taskset, bool_val); } - else if (!lstrcmpW(name, ExecutionTimeLimit)) + else if (!lstrcmpW(name, L"ExecutionTimeLimit")) { hr = read_text_value(reader, &value); if (hr == S_OK) ITaskSettings_put_ExecutionTimeLimit(taskset, value); } - else if (!lstrcmpW(name, Priority)) + else if (!lstrcmpW(name, L"Priority")) { hr = read_int_value(reader, &int_val); if (hr == S_OK) ITaskSettings_put_Priority(taskset, int_val); } - else if (!lstrcmpW(name, IdleSettings)) + else if (!lstrcmpW(name, L"IdleSettings")) { hr = read_idle_settings(reader, taskset); if (hr != S_OK) return hr; @@ -3292,7 +3206,7 @@ static HRESULT read_registration_info(IXmlReader *reader, IRegistrationInfo *inf TRACE("/%s\n", debugstr_w(name)); - if (!lstrcmpW(name, RegistrationInfo)) + if (!lstrcmpW(name, L"RegistrationInfo")) return S_OK; break; @@ -3303,43 +3217,43 @@ static HRESULT read_registration_info(IXmlReader *reader, IRegistrationInfo *inf TRACE("Element: %s\n", debugstr_w(name)); - if (!lstrcmpW(name, Author)) + if (!lstrcmpW(name, L"Author")) { hr = read_text_value(reader, &value); if (hr == S_OK) IRegistrationInfo_put_Author(info, value); } - else if (!lstrcmpW(name, Description)) + else if (!lstrcmpW(name, L"Description")) { hr = read_text_value(reader, &value); if (hr == S_OK) IRegistrationInfo_put_Description(info, value); } - else if (!lstrcmpW(name, Version)) + else if (!lstrcmpW(name, L"Version")) { hr = read_text_value(reader, &value); if (hr == S_OK) IRegistrationInfo_put_Version(info, value); } - else if (!lstrcmpW(name, Date)) + else if (!lstrcmpW(name, L"Date")) { hr = read_text_value(reader, &value); if (hr == S_OK) IRegistrationInfo_put_Date(info, value); } - else if (!lstrcmpW(name, Documentation)) + else if (!lstrcmpW(name, L"Documentation")) { hr = read_text_value(reader, &value); if (hr == S_OK) IRegistrationInfo_put_Documentation(info, value); } - else if (!lstrcmpW(name, URI)) + else if (!lstrcmpW(name, L"URI")) { hr = read_text_value(reader, &value); if (hr == S_OK) IRegistrationInfo_put_URI(info, value); } - else if (!lstrcmpW(name, Source)) + else if (!lstrcmpW(name, L"Source")) { hr = read_text_value(reader, &value); if (hr == S_OK) @@ -3389,26 +3303,26 @@ static HRESULT read_task_attributes(IXmlReader *reader, ITaskDefinition *taskdef TRACE("%s=%s\n", debugstr_w(name), debugstr_w(value)); - if (!lstrcmpW(name, version)) + if (!lstrcmpW(name, L"version")) { TASK_COMPATIBILITY compatibility = TASK_COMPATIBILITY_V2; - if (!lstrcmpW(value, v1_0)) + if (!lstrcmpW(value, L"1.0")) compatibility = TASK_COMPATIBILITY_AT; - else if (!lstrcmpW(value, v1_1)) + else if (!lstrcmpW(value, L"1.1")) compatibility = TASK_COMPATIBILITY_V1; - else if (!lstrcmpW(value, v1_2)) + else if (!lstrcmpW(value, L"1.2")) compatibility = TASK_COMPATIBILITY_V2; - else if (!lstrcmpW(value, v1_3)) + else if (!lstrcmpW(value, L"1.3")) compatibility = TASK_COMPATIBILITY_V2_1; else FIXME("unknown version %s\n", debugstr_w(value)); ITaskSettings_put_Compatibility(taskset, compatibility); } - else if (!lstrcmpW(name, xmlns)) + else if (!lstrcmpW(name, L"xmlns")) { - if (lstrcmpW(value, task_ns)) + if (lstrcmpW(value, L"http://schemas.microsoft.com/windows/2004/02/mit/task")) { FIXME("unknown namespace %s\n", debugstr_w(value)); break; @@ -3447,7 +3361,7 @@ static HRESULT read_task(IXmlReader *reader, ITaskDefinition *taskdef) TRACE("/%s\n", debugstr_w(name)); - if (!lstrcmpW(name, Task)) + if (!lstrcmpW(name, L"Task")) return S_OK; break; @@ -3458,7 +3372,7 @@ static HRESULT read_task(IXmlReader *reader, ITaskDefinition *taskdef) TRACE("Element: %s\n", debugstr_w(name)); - if (!lstrcmpW(name, RegistrationInfo)) + if (!lstrcmpW(name, L"RegistrationInfo")) { IRegistrationInfo *info; @@ -3467,7 +3381,7 @@ static HRESULT read_task(IXmlReader *reader, ITaskDefinition *taskdef) hr = read_registration_info(reader, info); IRegistrationInfo_Release(info); } - else if (!lstrcmpW(name, Settings)) + else if (!lstrcmpW(name, L"Settings")) { ITaskSettings *taskset; @@ -3476,11 +3390,11 @@ static HRESULT read_task(IXmlReader *reader, ITaskDefinition *taskdef) hr = read_settings(reader, taskset); ITaskSettings_Release(taskset); } - else if (!lstrcmpW(name, Triggers)) + else if (!lstrcmpW(name, L"Triggers")) hr = read_triggers(reader, taskdef); - else if (!lstrcmpW(name, Principals)) + else if (!lstrcmpW(name, L"Principals")) hr = read_principals(reader, taskdef); - else if (!lstrcmpW(name, actionsW)) + else if (!lstrcmpW(name, L"Actions")) hr = read_actions(reader, taskdef); else FIXME("unhandled Task element %s\n", debugstr_w(name)); @@ -3522,7 +3436,7 @@ static HRESULT read_xml(IXmlReader *reader, ITaskDefinition *taskdef) TRACE("Element: %s\n", debugstr_w(name)); - if (!lstrcmpW(name, Task)) + if (!lstrcmpW(name, L"Task")) { hr = read_task_attributes(reader, taskdef); if (hr != S_OK) return hr; @@ -3782,18 +3696,17 @@ static inline BOOL is_variant_null(const VARIANT *var) static HRESULT start_schedsvc(void) { - static const WCHAR scheduleW[] = { 'S','c','h','e','d','u','l','e',0 }; SC_HANDLE scm, service; SERVICE_STATUS_PROCESS status; ULONGLONG start_time; HRESULT hr = SCHED_E_SERVICE_NOT_RUNNING; - TRACE("Trying to start %s service\n", debugstr_w(scheduleW)); + TRACE("Trying to start Schedule service\n"); scm = OpenSCManagerW(NULL, NULL, 0); if (!scm) return SCHED_E_SERVICE_NOT_INSTALLED; - service = OpenServiceW(scm, scheduleW, SERVICE_START | SERVICE_QUERY_STATUS); + service = OpenServiceW(scm, L"Schedule", SERVICE_START | SERVICE_QUERY_STATUS); if (service) { if (StartServiceW(service, 0, NULL) || GetLastError() == ERROR_SERVICE_ALREADY_RUNNING) @@ -3837,7 +3750,7 @@ static HRESULT start_schedsvc(void) static HRESULT WINAPI TaskService_Connect(ITaskService *iface, VARIANT server, VARIANT user, VARIANT domain, VARIANT password) { - static WCHAR ncalrpc[] = { 'n','c','a','l','r','p','c',0 }; + static WCHAR ncalrpc[] = L"ncalrpc"; TaskService *task_svc = impl_from_ITaskService(iface); WCHAR comp_name[MAX_COMPUTERNAME_LENGTH + 1]; DWORD len; -- 2.11.4.GIT