Microsoft.Tools.WindowsInstaller.RegistryView.MapRoot C# (CSharp) Method

MapRoot() private method

private MapRoot ( string path, bool is64bit, char hive ) : string
path string
is64bit bool
hive char
return string
        private string MapRoot(string path, bool is64bit, char hive)
        {
            // Check for impossible mapping.
            if (!this.Is64Bit && is64bit)
            {
                return null;
            }

            // HKEY_CLASSES_ROOT
            if ('0' == hive)
            {
                return this.Is64Bit == is64bit ? HKCR : HKCR_WOW64;
            }

            // HKEY_CURRENT_USER
            if ('1' == hive)
            {
                return this.Is64Bit == is64bit ? HKCU : HKCU_WOW64;
            }

            // HKEY_LOCAL_MACHINE
            if ('2' == hive)
            {
                return this.Is64Bit == is64bit ? HKLM : HKLM_WOW64;
            }

            // HKEY_USERS
            if ('3' == hive && !string.IsNullOrEmpty(path))
            {
                if (this.Is64Bit == is64bit)
                {
                    return HKU;
                }
                else
                {
                    // Extract the user SID with leading backslash.
                    var userSid = path.Substring(0, path.IndexOf(Path.DirectorySeparatorChar, 1));
                    return HKU + userSid + SOFTWARE_WOW64;
                }
            }

            return null;
        }