├── UWPSettingsEditor_Demo.png ├── src ├── UWPSettingsEditor │ ├── Assets │ │ ├── Exit_16x.png │ │ ├── OpenFile_16x.png │ │ ├── RegistryIcon.png │ │ └── Close_White_16x.png │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── Interfaces │ │ └── IValueDataSet.cs │ ├── packages.config │ ├── App.xaml.cs │ ├── Program.cs │ ├── Controls │ │ ├── DateTimeOffsetComponent.xaml │ │ ├── StringComponent.xaml │ │ ├── IntComponent.xaml │ │ ├── StringComponent.xaml.cs │ │ ├── BooleanComponent.xaml │ │ ├── BooleanComponent.xaml.cs │ │ ├── DateTimeOffsetComponent.xaml.cs │ │ ├── CharComponent.xaml │ │ ├── GuidComponent.xaml │ │ ├── PointSizeComponent.xaml │ │ ├── Basic │ │ │ └── DateTimePicker.xaml │ │ ├── GuidComponent.xaml.cs │ │ ├── RectComponent.xaml │ │ ├── CharComponent.xaml.cs │ │ ├── RectComponent.xaml.cs │ │ ├── PointSizeComponent.xaml.cs │ │ └── IntComponent.xaml.cs │ ├── Windows │ │ ├── AboutWindow.xaml │ │ ├── AboutWindow.xaml.cs │ │ ├── EditValueWindow.xaml │ │ ├── CreateValueWindow.xaml │ │ ├── EditValueWindow.xaml.cs │ │ └── CreateValueWindow.xaml.cs │ ├── App.config │ ├── Converters │ │ ├── TreeViewLineConverter.cs │ │ └── DataTypeEnumToStringConverter.cs │ ├── Registry │ │ ├── Util │ │ │ ├── Sizes.cs │ │ │ ├── MathUtilities.cs │ │ │ ├── Range.cs │ │ │ └── Numbers.cs │ │ ├── Ownership.cs │ │ ├── ValueFlags.cs │ │ ├── Internal │ │ │ ├── SetupHelper.cs │ │ │ ├── UnixFileType.cs │ │ │ ├── FileLocator.cs │ │ │ ├── FileOpenEventArgs.cs │ │ │ └── LocalFileLocator.cs │ │ ├── Interfaces │ │ │ ├── IByteArraySerializable.cs │ │ │ └── IBuffer.cs │ │ ├── BinHeader.cs │ │ ├── RegistryValueType.cs │ │ ├── RegistryCorruptException.cs │ │ ├── Cell.cs │ │ ├── ListCell.cs │ │ ├── RegistryKeyFlags.cs │ │ ├── SecurityCell.cs │ │ ├── ValueCell.cs │ │ ├── HiveHeader.cs │ │ └── KeyNodeCell.cs │ ├── Classes │ │ ├── PrimitiveStructs.cs │ │ ├── NativeMethods.cs │ │ ├── Models.cs │ │ ├── MethodHelpers.cs │ │ └── Serializer.cs │ ├── Enums │ │ └── DataTypeEnum.cs │ └── app.manifest ├── UWPSettingsEditorPkg │ ├── Images │ │ ├── StoreLogo.png │ │ ├── SplashScreen.scale-200.png │ │ ├── LockScreenLogo.scale-200.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Wide310x150Logo.scale-200.png │ │ ├── Square150x150Logo.scale-200.png │ │ └── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── Package.appxmanifest │ └── UWPSettingsEditorPkg.wapproj └── UWPSettingsEditor.sln ├── README.md ├── LICENSE └── .gitignore /UWPSettingsEditor_Demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/UWPSettingsEditor_Demo.png -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Assets/Exit_16x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditor/Assets/Exit_16x.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UWPSettingsEditor ALPHA 2 | Edit any settings.dat (UWP settings) 3 | 4 | ![UWP Setting Editor Preview](UWPSettingsEditor_Demo.png) 5 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Assets/OpenFile_16x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditor/Assets/OpenFile_16x.png -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Assets/RegistryIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditor/Assets/RegistryIcon.png -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Images/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditorPkg/Images/StoreLogo.png -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Assets/Close_White_16x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditor/Assets/Close_White_16x.png -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Images/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditorPkg/Images/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Images/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditorPkg/Images/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Images/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditorPkg/Images/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Images/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditorPkg/Images/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Images/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditorPkg/Images/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Images/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ADeltaX/UWPSettingsEditor/HEAD/src/UWPSettingsEditorPkg/Images/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Interfaces/IValueDataSet.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace UWPSettingsEditor.Interfaces 4 | { 5 | public interface IValueDataSet : INotifyPropertyChanged 6 | { 7 | void SetValueData(byte[] dataRaw); 8 | byte[] GetValueData(); 9 | bool IsDataValid { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace UWPSettingsEditor 10 | { 11 | /// 12 | /// Interaction logic for App.xaml 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace UWPSettingsEditor 11 | { 12 | public class Program 13 | { 14 | [STAThreadAttribute] 15 | public static void Main() 16 | { 17 | App.Main(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/DateTimeOffsetComponent.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Windows/AboutWindow.xaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Windows/AboutWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Shapes; 14 | 15 | namespace UWPSettingsEditor 16 | { 17 | /// 18 | /// Interaction logic for About.xaml 19 | /// 20 | public partial class AboutWindow : Window 21 | { 22 | public AboutWindow() 23 | { 24 | InitializeComponent(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/StringComponent.xaml: -------------------------------------------------------------------------------- 1 | 9 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/IntComponent.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Converters/TreeViewLineConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows.Controls; 7 | using System.Windows.Data; 8 | 9 | namespace UWPSettingsEditor.Converters 10 | { 11 | class TreeViewLineConverter : IValueConverter 12 | { 13 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 14 | { 15 | TreeViewItem item = (TreeViewItem)value; 16 | ItemsControl ic = ItemsControl.ItemsControlFromItemContainer(item); 17 | 18 | //if (ic == null) 19 | // return false; 20 | 21 | return ic.ItemContainerGenerator.IndexFromContainer(item) == ic.Items.Count - 1; 22 | } 23 | 24 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 25 | { 26 | return false; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 ADeltaX 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/StringComponent.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Windows.Controls; 4 | using UWPSettingsEditor.Interfaces; 5 | using static UWPSettingsEditor.UWPDeserializer; 6 | using static UWPSettingsEditor.UWPSerializer; 7 | 8 | namespace UWPSettingsEditor.Controls 9 | { 10 | /// 11 | /// Interaction logic for StringComponent.xaml 12 | /// 13 | public partial class StringComponent : UserControl, IValueDataSet 14 | { 15 | private DateTimeOffset _timestamp; 16 | 17 | public StringComponent() 18 | { 19 | InitializeComponent(); 20 | _timestamp = DateTimeOffset.Now; 21 | } 22 | 23 | public bool IsDataValid => true; 24 | 25 | public event PropertyChangedEventHandler PropertyChanged; 26 | 27 | public byte[] GetValueData() => FromString(TextBox.Text, _timestamp); 28 | 29 | public void SetValueData(byte[] dataRaw) 30 | { 31 | var tmp = MethodHelpers.SplitDataRaw(dataRaw); 32 | 33 | _timestamp = GetDateTimeOffset(tmp.Key); 34 | TextBox.Text = GetString(tmp.Value); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace UWPSettingsEditor.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/BooleanComponent.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | True 19 | 20 | False 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/BooleanComponent.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Windows.Controls; 4 | using UWPSettingsEditor.Interfaces; 5 | using static UWPSettingsEditor.UWPDeserializer; 6 | using static UWPSettingsEditor.UWPSerializer; 7 | 8 | namespace UWPSettingsEditor.Controls 9 | { 10 | /// 11 | /// Interaction logic for BooleanComponent.xaml 12 | /// 13 | public partial class BooleanComponent : UserControl, IValueDataSet 14 | { 15 | private DateTimeOffset _timestamp; 16 | 17 | public BooleanComponent() 18 | { 19 | InitializeComponent(); 20 | cmBox.SelectedIndex = 0; 21 | _timestamp = DateTimeOffset.Now; 22 | } 23 | 24 | public bool IsDataValid => true; 25 | 26 | public event PropertyChangedEventHandler PropertyChanged; 27 | 28 | public byte[] GetValueData() => FromBoolean(bool.Parse((cmBox.SelectedItem as ComboBoxItem).Tag.ToString()), _timestamp); 29 | 30 | public void SetValueData(byte[] dataRaw) 31 | { 32 | var tmp = MethodHelpers.SplitDataRaw(dataRaw); 33 | 34 | _timestamp = GetDateTimeOffset(tmp.Key); 35 | var @bool = GetBoolean(tmp.Value); 36 | 37 | if (@bool) 38 | cmBox.SelectedIndex = 0; 39 | else 40 | cmBox.SelectedIndex = 1; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Registry/Util/Sizes.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2011, Kenneth Bell 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a 5 | // copy of this software and associated documentation files (the "Software"), 6 | // to deal in the Software without restriction, including without limitation 7 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | // and/or sell copies of the Software, and to permit persons to whom the 9 | // Software is furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20 | // DEALINGS IN THE SOFTWARE. 21 | // 22 | 23 | namespace DiscUtils.Streams 24 | { 25 | public static class Sizes 26 | { 27 | public const long OneKiB = 1024; 28 | public const long OneMiB = 1024 * OneKiB; 29 | public const long OneGiB = 1024 * OneMiB; 30 | 31 | public const int Sector = 512; 32 | } 33 | } -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/DateTimeOffsetComponent.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using UWPSettingsEditor.Interfaces; 4 | using static UWPSettingsEditor.UWPDeserializer; 5 | using static UWPSettingsEditor.UWPSerializer; 6 | 7 | // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238 8 | 9 | namespace UWPSettingsEditor.Controls 10 | { 11 | /// 12 | /// An empty page that can be used on its own or navigated to within a Frame. 13 | /// 14 | public sealed partial class DateTimeOffsetComponent : IValueDataSet 15 | { 16 | private DateTimeOffset _timestamp; 17 | private DateTimeOffset _dateTimeOffset; 18 | 19 | public DateTimeOffsetComponent() 20 | { 21 | this.InitializeComponent(); 22 | dateBox.SelectedDate = DateTime.Now; 23 | _timestamp = DateTimeOffset.Now; 24 | } 25 | 26 | public bool IsDataValid => throw new NotImplementedException(); 27 | 28 | public event PropertyChangedEventHandler PropertyChanged; 29 | 30 | public byte[] GetValueData() 31 | => FromDateTimeOffset(new DateTimeOffset(dateBox.SelectedDate, _dateTimeOffset.Offset), _timestamp); 32 | 33 | public void SetValueData(byte[] dataRaw) 34 | { 35 | var tmp = MethodHelpers.SplitDataRaw(dataRaw); 36 | 37 | _timestamp = GetDateTimeOffset(tmp.Key); 38 | _dateTimeOffset = GetDateTimeOffset(tmp.Value); 39 | 40 | dateBox.SelectedDate = _dateTimeOffset.DateTime; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Classes/PrimitiveStructs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace UWPSettingsEditor 8 | { 9 | public struct Point 10 | { 11 | public double X { get; set; } 12 | public double Y { get; set; } 13 | 14 | public Point(double x, double y) 15 | { 16 | X = x; 17 | Y = y; 18 | } 19 | 20 | public override string ToString() 21 | { 22 | return $"X: {X}, Y: {Y}"; 23 | } 24 | } 25 | public struct Size 26 | { 27 | public double Width { get; set; } 28 | public double Height { get; set; } 29 | 30 | public Size(double width, double height) 31 | { 32 | Width = width; 33 | Height = height; 34 | } 35 | 36 | public override string ToString() 37 | { 38 | return $"Width: {Width}, Height: {Height}"; 39 | } 40 | } 41 | 42 | public struct Rect 43 | { 44 | public double X { get; set; } 45 | public double Y { get; set; } 46 | public double Width { get; set; } 47 | public double Height { get; set; } 48 | 49 | public Rect(double x, double y, double width, double height) 50 | { 51 | X = x; 52 | Y = y; 53 | Width = width; 54 | Height = height; 55 | } 56 | 57 | public override string ToString() 58 | { 59 | return $"X: {X}, Y: {Y}, Width: {Width}, Height: {Height}"; 60 | } 61 | 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/CharComponent.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Registry/Ownership.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2011, Kenneth Bell 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a 5 | // copy of this software and associated documentation files (the "Software"), 6 | // to deal in the Software without restriction, including without limitation 7 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | // and/or sell copies of the Software, and to permit persons to whom the 9 | // Software is furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20 | // DEALINGS IN THE SOFTWARE. 21 | // 22 | 23 | namespace DiscUtils.Streams 24 | { 25 | /// 26 | /// Enumeration used to indicate transfer of disposable objects. 27 | /// 28 | public enum Ownership 29 | { 30 | /// 31 | /// Indicates there is no transfer of ownership. 32 | /// 33 | None, 34 | 35 | /// 36 | /// Indicates ownership of the stream is transfered, the owner should dispose of the stream when appropriate. 37 | /// 38 | Dispose 39 | } 40 | } -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/GuidComponent.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Registry/ValueFlags.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2011, Kenneth Bell 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a 5 | // copy of this software and associated documentation files (the "Software"), 6 | // to deal in the Software without restriction, including without limitation 7 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | // and/or sell copies of the Software, and to permit persons to whom the 9 | // Software is furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20 | // DEALINGS IN THE SOFTWARE. 21 | // 22 | 23 | using System; 24 | 25 | namespace DiscUtils.Registry 26 | { 27 | [Flags] 28 | internal enum ValueFlags : ushort 29 | { 30 | Named = 0x0001, 31 | Unknown0002 = 0x0002, 32 | Unknown0004 = 0x0004, 33 | Unknown0008 = 0x0008, 34 | Unknown0010 = 0x0010, 35 | Unknown0020 = 0x0020, 36 | Unknown0040 = 0x0040, 37 | Unknown0080 = 0x0080, 38 | Unknown0100 = 0x0100, 39 | Unknown0200 = 0x0200, 40 | Unknown0400 = 0x0400, 41 | Unknown0800 = 0x0800, 42 | Unknown1000 = 0x1000, 43 | Unknown2000 = 0x2000, 44 | Unknown4000 = 0x4000, 45 | Unknown8000 = 0x8000 46 | } 47 | } -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Registry/Internal/SetupHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Reflection; 4 | //using DiscUtils.CoreCompat; 5 | 6 | namespace DiscUtils.Setup 7 | { 8 | /// 9 | /// Helps setup new DiscUtils dependencies, when loaded into target programs 10 | /// 11 | public static class SetupHelper 12 | { 13 | //private static readonly HashSet _alreadyLoaded; 14 | 15 | //static SetupHelper() 16 | //{ 17 | // _alreadyLoaded = new HashSet(); 18 | 19 | // // Register the core DiscUtils lib 20 | // RegisterAssembly(ReflectionHelper.GetAssembly(typeof(SetupHelper))); 21 | //} 22 | 23 | ///// 24 | ///// Registers the types provided by an assembly to all relevant DiscUtils managers 25 | ///// 26 | ///// 27 | //public static void RegisterAssembly(Assembly assembly) 28 | //{ 29 | // lock (_alreadyLoaded) 30 | // { 31 | // if (!_alreadyLoaded.Add(assembly.FullName)) 32 | // return; 33 | 34 | // FileSystemManager.RegisterFileSystems(assembly); 35 | // VirtualDiskManager.RegisterVirtualDiskTypes(assembly); 36 | // VolumeManager.RegisterLogicalVolumeFactory(assembly); 37 | // } 38 | //} 39 | 40 | /// 41 | /// Allows intercepting any file open operation 42 | /// 43 | /// 44 | /// Can be used to wrap the opened file for special use cases, 45 | /// modify the parameters for opening files, validate file names 46 | /// and many more. 47 | /// 48 | public static event EventHandler OpeningFile; 49 | 50 | internal static void OnOpeningFile(object sender, FileOpenEventArgs e) 51 | { 52 | OpeningFile?.Invoke(sender, e); 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/UWPSettingsEditorPkg/Package.appxmanifest: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 15 | UWPSettingsEditor 16 | ADX 17 | Images\StoreLogo.png 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Controls/PointSizeComponent.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Enums/DataTypeEnum.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace UWPSettingsEditor 8 | { 9 | public enum DataTypeEnum 10 | { 11 | RegNone = 0, 12 | RegSz = 1, 13 | RegExpandSz = 2, 14 | RegBinary = 3, 15 | RegDword = 4, 16 | RegDwordBigEndian = 5, 17 | RegLink = 6, 18 | RegMultiSz = 7, 19 | RegResourceList = 8, 20 | RegFullResourceDescription = 9, 21 | RegResourceRequirementsList = 0xA, 22 | RegQword = 0xB, 23 | RegFileTime = 0x10, 24 | 25 | RegUwpByte = 0x5f5e_101, 26 | RegUwpInt16 = 0x5f5e_102, 27 | RegUwpUint16 = 0x5f5e_103, 28 | RegUwpInt32 = 0x5f5e_104, 29 | RegUwpUint32 = 0x5f5e_105, 30 | RegUwpInt64 = 0x5f5e_106, 31 | RegUwpUint64 = 0x5f5e_107, 32 | RegUwpSingle = 0x5f5e_108, 33 | RegUwpDouble = 0x5f5e_109, 34 | RegUwpChar = 0x5f5e_10A, 35 | RegUwpBoolean = 0x5f5e_10B, 36 | RegUwpString = 0x5f5e_10C, 37 | RegUwpCompositeValue = 0x5f5e_10D, 38 | RegUwpDateTimeOffset = 0x5f5e_10E, 39 | RegUwpTimeSpan = 0x5f5e_10F, 40 | RegUwpGuid = 0x5f5e_110, 41 | RegUwpPoint = 0x5f5e_111, 42 | RegUwpSize = 0x5f5e_112, 43 | RegUwpRect = 0x5f5e_113, 44 | RegUwpArrayByte = 0x5f5e_114, 45 | RegUwpArrayInt16 = 0x5f5e_115, 46 | RegUwpArrayUint16 = 0x5f5e_116, 47 | RegUwpArrayInt32 = 0x5f5e_117, 48 | RegUwpArrayUint32 = 0x5f5e_118, 49 | RegUwpArrayInt64 = 0x5f5e_119, 50 | RegUwpArrayUint64 = 0x5f5e_11A, 51 | RegUwpArraySingle = 0x5f5e_11B, 52 | RegUwpArrayDouble = 0x5f5e_11C, 53 | RegUwpArrayChar16 = 0x5f5e_11D, 54 | RegUwpArrayBoolean = 0x5f5e_11E, 55 | RegUwpArrayString = 0x5f5e_11F, 56 | RegUwpArrayDateTimeOffset = 0x5f5e_120, 57 | RegUwpArrayTimeSpan = 0x5f5e_121, 58 | RegUwpArrayGuid = 0x5f5e_122, 59 | RegUwpArrayPoint = 0x5f5e_123, 60 | RegUwpArraySize = 0x5f5e_124, 61 | RegUwpArrayRect = 0x5f5e_125, 62 | 63 | RegUnknown = 999 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Registry/Interfaces/IByteArraySerializable.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2011, Kenneth Bell 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a 5 | // copy of this software and associated documentation files (the "Software"), 6 | // to deal in the Software without restriction, including without limitation 7 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | // and/or sell copies of the Software, and to permit persons to whom the 9 | // Software is furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20 | // DEALINGS IN THE SOFTWARE. 21 | // 22 | 23 | namespace DiscUtils.Streams 24 | { 25 | /// 26 | /// Common interface for reading structures to/from byte arrays. 27 | /// 28 | public interface IByteArraySerializable 29 | { 30 | /// 31 | /// Gets the total number of bytes the structure occupies. 32 | /// 33 | int Size { get; } 34 | 35 | /// 36 | /// Reads the structure from a byte array. 37 | /// 38 | /// The buffer to read from. 39 | /// The buffer offset to start reading from. 40 | /// The number of bytes read. 41 | int ReadFrom(byte[] buffer, int offset); 42 | 43 | /// 44 | /// Writes a structure to a byte array. 45 | /// 46 | /// The buffer to write to. 47 | /// The buffer offset to start writing at. 48 | void WriteTo(byte[] buffer, int offset); 49 | } 50 | } -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Registry/Internal/UnixFileType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2011, Kenneth Bell 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a 5 | // copy of this software and associated documentation files (the "Software"), 6 | // to deal in the Software without restriction, including without limitation 7 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | // and/or sell copies of the Software, and to permit persons to whom the 9 | // Software is furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 20 | // DEALINGS IN THE SOFTWARE. 21 | // 22 | 23 | namespace DiscUtils 24 | { 25 | /// 26 | /// Standard Unix-style file type. 27 | /// 28 | public enum UnixFileType 29 | { 30 | /// 31 | /// No type specified. 32 | /// 33 | None = 0, 34 | 35 | /// 36 | /// A FIFO / Named Pipe. 37 | /// 38 | Fifo = 0x1, 39 | 40 | /// 41 | /// A character device. 42 | /// 43 | Character = 0x2, 44 | 45 | /// 46 | /// A normal directory. 47 | /// 48 | Directory = 0x4, 49 | 50 | /// 51 | /// A block device. 52 | /// 53 | Block = 0x6, 54 | 55 | /// 56 | /// A regular file. 57 | /// 58 | Regular = 0x8, 59 | 60 | /// 61 | /// A soft link. 62 | /// 63 | Link = 0xA, 64 | 65 | /// 66 | /// A unix socket. 67 | /// 68 | Socket = 0xC 69 | } 70 | } -------------------------------------------------------------------------------- /src/UWPSettingsEditor/Windows/EditValueWindow.xaml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | 34 | 36 | 37 | 38 | 39 |