From 3e486193d48963c920ec67bf557d80df5949128c Mon Sep 17 00:00:00 2001 From: Maciej Makowski <377311+maciej-makowski@users.noreply.github.com> Date: Mon, 3 Oct 2022 22:22:54 +0100 Subject: [PATCH 1/3] Fixing crash on Windows > 22000 (#76) --- .gitignore | 3 + .../Interop/Build22000/.Provider.cs | 6 +- .../IVirtualDesktopManagerInternal.cs | 2 + src/VirtualDesktop/Interop/IID.cs | 56 +++++--- .../Properties/Settings.Designer.cs | 30 +++- .../Properties/Settings.settings | 33 +++-- src/VirtualDesktop/app.config | 128 ++++++++++-------- 7 files changed, 166 insertions(+), 92 deletions(-) diff --git a/.gitignore b/.gitignore index 57a1574..a173c77 100644 --- a/.gitignore +++ b/.gitignore @@ -194,3 +194,6 @@ FakesAssemblies/ # Visual Studio 6 workspace options file *.opt + +# Rider settings directory +.idea \ No newline at end of file diff --git a/src/VirtualDesktop/Interop/Build22000/.Provider.cs b/src/VirtualDesktop/Interop/Build22000/.Provider.cs index 6bed4c4..8c127ca 100644 --- a/src/VirtualDesktop/Interop/Build22000/.Provider.cs +++ b/src/VirtualDesktop/Interop/Build22000/.Provider.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using WindowsDesktop.Interop.Build10240; +using WindowsDesktop.Interop.Build10240; using WindowsDesktop.Interop.Proxy; -using WindowsDesktop.Properties; namespace WindowsDesktop.Interop.Build22000; diff --git a/src/VirtualDesktop/Interop/Build22000/.interfaces/IVirtualDesktopManagerInternal.cs b/src/VirtualDesktop/Interop/Build22000/.interfaces/IVirtualDesktopManagerInternal.cs index 1443bcf..519f488 100644 --- a/src/VirtualDesktop/Interop/Build22000/.interfaces/IVirtualDesktopManagerInternal.cs +++ b/src/VirtualDesktop/Interop/Build22000/.interfaces/IVirtualDesktopManagerInternal.cs @@ -17,6 +17,8 @@ public interface IVirtualDesktopManagerInternal IVirtualDesktop GetCurrentDesktop(IntPtr hWndOrMon); + IObjectArray GetAllCurrentDesktops(); + IObjectArray GetDesktops(IntPtr hWndOrMon); IVirtualDesktop GetAdjacentDesktop(IVirtualDesktop pDesktopReference, int uDirection); diff --git a/src/VirtualDesktop/Interop/IID.cs b/src/VirtualDesktop/Interop/IID.cs index 88d0f0c..a0cf256 100644 --- a/src/VirtualDesktop/Interop/IID.cs +++ b/src/VirtualDesktop/Interop/IID.cs @@ -9,34 +9,58 @@ namespace WindowsDesktop.Interop; +internal record OsBuildSettings( + int osBuild, + SettingsProperty prop); + internal static class IID { private static readonly Regex _osBuildRegex = new(@"v_(?\d{5}?)"); - + // ReSharper disable once InconsistentNaming public static Dictionary GetIIDs(string[] interfaceNames) { var result = new Dictionary(); - - foreach (var prop in Settings.Default.Properties.OfType()) - { - if (int.TryParse(_osBuildRegex.Match(prop.Name).Groups["build"].ToString(), out var build) - && build == Environment.OSVersion.Version.Build) + + // Order configuration props by build version + var orderedProps = Settings.Default.Properties.OfType() + .Select(prop => { - foreach (var str in (StringCollection)Settings.Default[prop.Name]) + if (int.TryParse(_osBuildRegex.Match(prop.Name).Groups["build"].ToString(), out var build)) { - if (str == null) continue; + return new OsBuildSettings(build, prop); + } - var pair = str.Split(','); - if (pair.Length != 2) continue; - if (interfaceNames.Contains(pair[0]) == false || result.ContainsKey(pair[0])) continue; - if (Guid.TryParse(pair[1], out var guid) == false) continue; + return null; + }) + .Where(s => s != null) + .OrderByDescending(s => s.osBuild) + .ToArray(); - result.Add(pair[0], guid); - } + // Find first prop with build version >= current OS version + var selectedSettings = orderedProps.FirstOrDefault(p => + Environment.OSVersion.Version.Build >= p.osBuild + ); + + if (selectedSettings == null) + { + var supportedBuilds = orderedProps.Select(v => v.osBuild).ToArray(); + throw new ConfigurationException( + "Invalid application configuration. Unable to determine interop interfaces for " + + $"current OS Build: {Environment.OSVersion.Version.Build}. All configured OS Builds " + + $"have build version greater than current OS: {supportedBuilds}"); + } - break; - } + foreach (var str in (StringCollection)Settings.Default[selectedSettings.prop.Name]) + { + if (str == null) continue; + + var pair = str.Split(','); + if (pair.Length != 2) continue; + if (interfaceNames.Contains(pair[0]) == false || result.ContainsKey(pair[0])) continue; + if (Guid.TryParse(pair[1], out var guid) == false) continue; + + result.Add(pair[0], guid); } var except = interfaceNames.Except(result.Keys).ToArray(); diff --git a/src/VirtualDesktop/Properties/Settings.Designer.cs b/src/VirtualDesktop/Properties/Settings.Designer.cs index 0de3ddd..61d8b5d 100644 --- a/src/VirtualDesktop/Properties/Settings.Designer.cs +++ b/src/VirtualDesktop/Properties/Settings.Designer.cs @@ -1,10 +1,9 @@ //------------------------------------------------------------------------------ // -// このコードはツールによって生成されました。 -// ランタイム バージョン:4.0.30319.42000 +// This code was generated by a tool. // -// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 -// コードが再生成されるときに損失したりします。 +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -12,7 +11,7 @@ namespace WindowsDesktop.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -85,5 +84,26 @@ public static Settings Default { return ((global::System.Collections.Specialized.StringCollection)(this["v_22000"])); } } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@" + +IApplicationView,{372E1D3B-38D3-42E4-A15B-8AB2B178F513} +IApplicationViewCollection,{1841C6D7-4F9D-42C0-AF41-8747538F10E5} +IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} +IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} +IVirtualDesktop,{536D3495-B208-4CC9-AE26-DE8111275BF8} +IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B} +IVirtualDesktopManagerInternal,{B2F925B9-5A0F-4D2E-9F4D-2B1507593C10} +IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8} +IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf} +IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F} +")] + public global::System.Collections.Specialized.StringCollection v_22621 { + get { + return ((global::System.Collections.Specialized.StringCollection)(this["v_22621"])); + } + } } } diff --git a/src/VirtualDesktop/Properties/Settings.settings b/src/VirtualDesktop/Properties/Settings.settings index 0ef2592..751996b 100644 --- a/src/VirtualDesktop/Properties/Settings.settings +++ b/src/VirtualDesktop/Properties/Settings.settings @@ -1,10 +1,10 @@ - + - <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <string>IApplicationView,{871F602A-2B58-42B4-8C4B-6C43D642C06F}</string> <string>IApplicationViewCollection,{2C08ADF0-A386-4B35-9250-0FE183476FCC} </string> <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} </string> @@ -18,8 +18,8 @@ </ArrayOfString> - <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <string>IApplicationView,{9AC0B5C8-1484-4C5B-9533-4134A0F97CEA} </string> <string>IApplicationViewCollection,{2C08ADF0-A386-4B35-9250-0FE183476FCC} </string> <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} </string> @@ -33,8 +33,8 @@ </ArrayOfString> - <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <string>IApplicationView,{372e1d3b-38d3-42e4-a15b-8ab2b178f513} </string> <string>IApplicationViewCollection,{1841c6d7-4f9d-42c0-af41-8747538f10e5} </string> <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} </string> @@ -45,7 +45,24 @@ <string>IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8} </string> <string>IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf} </string> <string>IVirtualDesktopPinnedApps,{4ce81583-1e4c-4632-a621-07a53543148f} </string> +</ArrayOfString> + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> +<string>IApplicationView,{372E1D3B-38D3-42E4-A15B-8AB2B178F513}</string> +<string>IApplicationViewCollection,{1841C6D7-4F9D-42C0-AF41-8747538F10E5}</string> +<string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9}</string> +<string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA}</string> +<string>IVirtualDesktop,{536D3495-B208-4CC9-AE26-DE8111275BF8}</string> +<string>IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B}</string> +<string>IVirtualDesktopManagerInternal,{B2F925B9-5A0F-4D2E-9F4D-2B1507593C10}</string> +<string>IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8}</string> +<string>IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf}</string> +<string>IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F}</string> </ArrayOfString> - \ No newline at end of file + + + diff --git a/src/VirtualDesktop/app.config b/src/VirtualDesktop/app.config index 910e192..3c93356 100644 --- a/src/VirtualDesktop/app.config +++ b/src/VirtualDesktop/app.config @@ -1,60 +1,72 @@  - - -
- - - - - - - - IApplicationView,{871F602A-2B58-42B4-8C4B-6C43D642C06F} - IApplicationViewCollection,{2C08ADF0-A386-4B35-9250-0FE183476FCC} - IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} - IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} - IVirtualDesktop,{FF72FFDD-BE7E-43FC-9C03-AD81681E88E4} - IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B} - IVirtualDesktopManagerInternal,{F31574D6-B682-4CDC-BD56-1827860ABEC6} - IVirtualDesktopNotification,{C179334C-4295-40D3-BEA1-C654D965605A} - IVirtualDesktopNotificationService,{0CD45E71-D927-4F15-8B0A-8FEF525337BF} - IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F} - - - - - - - IApplicationView,{9AC0B5C8-1484-4C5B-9533-4134A0F97CEA} - IApplicationViewCollection,{2C08ADF0-A386-4B35-9250-0FE183476FCC} - IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} - IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} - IVirtualDesktop,{FF72FFDD-BE7E-43FC-9C03-AD81681E88E4} - IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B} - IVirtualDesktopManagerInternal,{F31574D6-B682-4CDC-BD56-1827860ABEC6} - IVirtualDesktopNotification,{C179334C-4295-40D3-BEA1-C654D965605A} - IVirtualDesktopNotificationService,{0CD45E71-D927-4F15-8B0A-8FEF525337BF} - IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F} - - - - - - - IApplicationView,{372e1d3b-38d3-42e4-a15b-8ab2b178f513} - IApplicationViewCollection,{1841c6d7-4f9d-42c0-af41-8747538f10e5} - IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} - IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} - IVirtualDesktop,{536d3495-b208-4cc9-ae26-de8111275bf8} - IVirtualDesktopManager,{a5cd92ff-29be-454c-8d04-d82879fb3f1b} - IVirtualDesktopManagerInternal,{b2f925b9-5a0f-4d2e-9f4d-2b1507593c10} - IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8} - IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf} - IVirtualDesktopPinnedApps,{4ce81583-1e4c-4632-a621-07a53543148f} - - - - - - + + +
+ + + + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <string>IApplicationView,{871F602A-2B58-42B4-8C4B-6C43D642C06F}</string> + <string>IApplicationViewCollection,{2C08ADF0-A386-4B35-9250-0FE183476FCC} </string> + <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} </string> + <string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} </string> + <string>IVirtualDesktop,{FF72FFDD-BE7E-43FC-9C03-AD81681E88E4} </string> + <string>IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B} </string> + <string>IVirtualDesktopManagerInternal,{F31574D6-B682-4CDC-BD56-1827860ABEC6} </string> + <string>IVirtualDesktopNotification,{C179334C-4295-40D3-BEA1-C654D965605A} </string> + <string>IVirtualDesktopNotificationService,{0CD45E71-D927-4F15-8B0A-8FEF525337BF} </string> + <string>IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F} </string> +</ArrayOfString> + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <string>IApplicationView,{9AC0B5C8-1484-4C5B-9533-4134A0F97CEA} </string> + <string>IApplicationViewCollection,{2C08ADF0-A386-4B35-9250-0FE183476FCC} </string> + <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} </string> + <string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} </string> + <string>IVirtualDesktop,{FF72FFDD-BE7E-43FC-9C03-AD81681E88E4} </string> + <string>IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B} </string> + <string>IVirtualDesktopManagerInternal,{F31574D6-B682-4CDC-BD56-1827860ABEC6} </string> + <string>IVirtualDesktopNotification,{C179334C-4295-40D3-BEA1-C654D965605A} </string> + <string>IVirtualDesktopNotificationService,{0CD45E71-D927-4F15-8B0A-8FEF525337BF} </string> + <string>IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F} </string> +</ArrayOfString> + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <string>IApplicationView,{372e1d3b-38d3-42e4-a15b-8ab2b178f513} </string> + <string>IApplicationViewCollection,{1841c6d7-4f9d-42c0-af41-8747538f10e5} </string> + <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} </string> + <string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} </string> + <string>IVirtualDesktop,{536d3495-b208-4cc9-ae26-de8111275bf8} </string> + <string>IVirtualDesktopManager,{a5cd92ff-29be-454c-8d04-d82879fb3f1b} </string> + <string>IVirtualDesktopManagerInternal,{b2f925b9-5a0f-4d2e-9f4d-2b1507593c10} </string> + <string>IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8} </string> + <string>IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf} </string> + <string>IVirtualDesktopPinnedApps,{4ce81583-1e4c-4632-a621-07a53543148f} </string> +</ArrayOfString> + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> +<string>IApplicationView,{372E1D3B-38D3-42E4-A15B-8AB2B178F513}</string> +<string>IApplicationViewCollection,{1841C6D7-4F9D-42C0-AF41-8747538F10E5}</string> +<string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9}</string> +<string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA}</string> +<string>IVirtualDesktop,{536D3495-B208-4CC9-AE26-DE8111275BF8}</string> +<string>IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B}</string> +<string>IVirtualDesktopManagerInternal,{B2F925B9-5A0F-4D2E-9F4D-2B1507593C10}</string> +<string>IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8}</string> +<string>IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf}</string> +<string>IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F}</string> +</ArrayOfString> + + + + \ No newline at end of file From d69a95f3cb346506c2abc8c6b06aa0247d362b99 Mon Sep 17 00:00:00 2001 From: Maciej Makowski <377311+maciej-makowski@users.noreply.github.com> Date: Tue, 4 Oct 2022 20:48:11 +0100 Subject: [PATCH 2/3] Fixing comment and adjusting code --- src/VirtualDesktop/Interop/IID.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/VirtualDesktop/Interop/IID.cs b/src/VirtualDesktop/Interop/IID.cs index a0cf256..75b7fa1 100644 --- a/src/VirtualDesktop/Interop/IID.cs +++ b/src/VirtualDesktop/Interop/IID.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Configuration; @@ -37,9 +37,9 @@ public static Dictionary GetIIDs(string[] interfaceNames) .OrderByDescending(s => s.osBuild) .ToArray(); - // Find first prop with build version >= current OS version + // Find first prop with build version <= current OS version var selectedSettings = orderedProps.FirstOrDefault(p => - Environment.OSVersion.Version.Build >= p.osBuild + p.osBuild <= Environment.OSVersion.Version.Build ); if (selectedSettings == null) From 01317b821f3d0a49fd262dabada808c2f2b6aaa4 Mon Sep 17 00:00:00 2001 From: Maciej Makowski <377311+maciej-makowski@users.noreply.github.com> Date: Sun, 6 Nov 2022 08:18:46 +0000 Subject: [PATCH 3/3] Fixing config file --- src/VirtualDesktop/app.config | 41 +++++++++++++---------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/src/VirtualDesktop/app.config b/src/VirtualDesktop/app.config index 3c93356..6276cea 100644 --- a/src/VirtualDesktop/app.config +++ b/src/VirtualDesktop/app.config @@ -38,34 +38,23 @@ </ArrayOfString> - <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <string>IApplicationView,{372e1d3b-38d3-42e4-a15b-8ab2b178f513} </string> - <string>IApplicationViewCollection,{1841c6d7-4f9d-42c0-af41-8747538f10e5} </string> - <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} </string> - <string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} </string> - <string>IVirtualDesktop,{536d3495-b208-4cc9-ae26-de8111275bf8} </string> - <string>IVirtualDesktopManager,{a5cd92ff-29be-454c-8d04-d82879fb3f1b} </string> - <string>IVirtualDesktopManagerInternal,{b2f925b9-5a0f-4d2e-9f4d-2b1507593c10} </string> - <string>IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8} </string> - <string>IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf} </string> - <string>IVirtualDesktopPinnedApps,{4ce81583-1e4c-4632-a621-07a53543148f} </string> -</ArrayOfString> + + + IApplicationView,{372E1D3B-38D3-42E4-A15B-8AB2B178F513} + IApplicationViewCollection,{1841C6D7-4F9D-42C0-AF41-8747538F10E5} + IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9} + IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA} + IVirtualDesktop,{536D3495-B208-4CC9-AE26-DE8111275BF8} + IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B} + IVirtualDesktopManagerInternal,{B2F925B9-5A0F-4D2E-9F4D-2B1507593C10} + IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8} + IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf} + IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F} + + - <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> -<string>IApplicationView,{372E1D3B-38D3-42E4-A15B-8AB2B178F513}</string> -<string>IApplicationViewCollection,{1841C6D7-4F9D-42C0-AF41-8747538F10E5}</string> -<string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9}</string> -<string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA}</string> -<string>IVirtualDesktop,{536D3495-B208-4CC9-AE26-DE8111275BF8}</string> -<string>IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B}</string> -<string>IVirtualDesktopManagerInternal,{B2F925B9-5A0F-4D2E-9F4D-2B1507593C10}</string> -<string>IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8}</string> -<string>IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf}</string> -<string>IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F}</string> -</ArrayOfString> + <?xml version="1.0" encoding="utf-16"?> <ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <string>IApplicationView,{372E1D3B-38D3-42E4-A15B-8AB2B178F513}</string> <string>IApplicationViewCollection,{1841C6D7-4F9D-42C0-AF41-8747538F10E5}</string> <string>IObjectArray,{92CA9DCD-5622-4BBA-A805-5E9F541BD8C9}</string> <string>IServiceProvider,{6D5140C1-7436-11CE-8034-00AA006009FA}</string> <string>IVirtualDesktop,{536D3495-B208-4CC9-AE26-DE8111275BF8}</string> <string>IVirtualDesktopManager,{A5CD92FF-29BE-454C-8D04-D82879FB3F1B}</string> <string>IVirtualDesktopManagerInternal,{B2F925B9-5A0F-4D2E-9F4D-2B1507593C10}</string> <string>IVirtualDesktopNotification,{cd403e52-deed-4c13-b437-b98380f2b1e8}</string> <string>IVirtualDesktopNotificationService,{0cd45e71-d927-4f15-8b0a-8fef525337bf}</string> <string>IVirtualDesktopPinnedApps,{4CE81583-1E4C-4632-A621-07A53543148F}</string> </ArrayOfString>