void GetTaskInfoFromXML(BSTR xml, CStringW &app_name, CStringW ¶m) { CStringW xml_str(xml); int pos = xml_str.Find(L"<Command>"); if (pos == -1) { return; } int info_start = pos + 9; pos = xml_str.Find(L"</Command>", info_start); if (pos == -1) { return; } int info_length = pos - info_start; app_name.SetString(xml_str.GetString() + info_start, info_length); pos = xml_str.Find(L"<Arguments>"); if (pos == -1) { return; } info_start = pos + 11; pos = xml_str.Find(L"</Arguments>", info_start); if (pos == -1) { return; } info_length = pos - info_start; param.SetString(xml_str.GetString() + info_start, info_length); }