Beispiel #1
0
        public void queryKey()
        {
            if (!hKeyQueried)
            {
                IntPtr subKeyNamesUnmanaged;
                int    cSubKeys;
                IntPtr regValuesUnmanaged;
                int    cValues;
                regQuery(hKey, out subKeyNamesUnmanaged, out cSubKeys, out regValuesUnmanaged, out cValues);

                var subKeyNames   = new KeyName[cSubKeys];
                var keyNameStride = Marshal.SizeOf(typeof(KeyName));
                for (int i = 0; i < cSubKeys; i++)
                {
                    var p = new IntPtr(subKeyNamesUnmanaged.ToInt64() + i * keyNameStride);
                    subKeyNames[i] = (KeyName)Marshal.PtrToStructure(p, typeof(KeyName));
                }

                Items.Clear();
                for (int i = 0; i < cSubKeys; i++)
                {
                    Items.Add(new RegTreeViewItem(RegTreeViewItemType.FOLDER)
                    {
                        Title = subKeyNames[i].Name, Parent = this
                    });
                }

                OriginalValues.Clear();
                Values.Clear();
                var regValueStride = Marshal.SizeOf(typeof(RegValue));
                for (int i = 0; i < cValues; i++)
                {
                    var p        = new IntPtr(regValuesUnmanaged.ToInt64() + i * regValueStride);
                    var regValue = (RegValue)Marshal.PtrToStructure(p, typeof(RegValue));
                    OriginalValues.Add(regValue);
                    Values.Add(new RegValueItem(regValue));
                }

                hKeyQueried = true;
            }
        }
Beispiel #2
0
 public static extern void regDelValue(IntPtr hKey, KeyName name);
Beispiel #3
0
 public static extern void regSetKeyStringValue(IntPtr hKey, KeyName name, KeyName data);
Beispiel #4
0
 public static extern void regDelKey(IntPtr parentKey, KeyName name);
Beispiel #5
0
 public static extern void regNewKey(IntPtr parentKey, KeyName name, out IntPtr newKey);
Beispiel #6
0
 public static extern void regOpen(IntPtr parentKey, KeyName name, out IntPtr output);