HKEY get_registry_keyname(char* out_keyname, const char* section) { // Every compiler from Visual Studio 2008 onward should have support for UAC #if _MSC_VER >= 1400 if (userSIDValid) { if (needsWOW64()) { if (section) { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\Wow6432Node\\%s\\%s\\%s", userSID.c_str(), szCompanyName, szAppName, section); } else { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\Wow6432Node\\%s\\%s", userSID.c_str(), szCompanyName, szAppName); } } else { if (section) { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\%s\\%s\\%s", userSID.c_str(), szCompanyName, szAppName, section); } else { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\%s\\%s", userSID.c_str(), szCompanyName, szAppName); } } return HKEY_USERS; } else { // This will probably fail if (section) { sprintf(out_keyname, "Software\\%s\\%s\\%s", szCompanyName, szAppName, section); } else { sprintf(out_keyname, "Software\\%s\\%s", szCompanyName, szAppName); } return HKEY_LOCAL_MACHINE; } #else if (section) { sprintf(out_keyname, "Software\\%s\\%s\\%s", szCompanyName, szAppName, section); } else { sprintf(out_keyname, "Software\\%s\\%s", szCompanyName, szAppName); } return HKEY_LOCAL_MACHINE; #endif }
HKEY get_registry_keyname(char* out_keyname, const char* section) { if (!Cmdline_alternate_registry_path) { // Use the original registry path, sometimes breaks for no reason which can be fixed by the code below if (section) { sprintf(out_keyname, "Software\\%s\\%s\\%s", szCompanyName, szAppName, section); } else { sprintf(out_keyname, "Software\\%s\\%s", szCompanyName, szAppName); } return HKEY_LOCAL_MACHINE; } // Every compiler from Visual Studio 2008 onward should have support for UAC #if _MSC_VER >= 1400 if (userSIDValid) { if (needsWOW64()) { if (section) { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\Wow6432Node\\%s\\%s\\%s", userSID.c_str(), szCompanyName, szAppName, section); } else { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\Wow6432Node\\%s\\%s", userSID.c_str(), szCompanyName, szAppName); } } else { if (section) { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\%s\\%s\\%s", userSID.c_str(), szCompanyName, szAppName, section); } else { sprintf(out_keyname, "%s_Classes\\VirtualStore\\Machine\\Software\\%s\\%s", userSID.c_str(), szCompanyName, szAppName); } } return HKEY_USERS; } else { // This will probably fail if (section) { sprintf(out_keyname, "Software\\%s\\%s\\%s", szCompanyName, szAppName, section); } else { sprintf(out_keyname, "Software\\%s\\%s", szCompanyName, szAppName); } return HKEY_LOCAL_MACHINE; } #else if (section) { sprintf(out_keyname, "Software\\%s\\%s\\%s", szCompanyName, szAppName, section); } else { sprintf(out_keyname, "Software\\%s\\%s", szCompanyName, szAppName); } return HKEY_LOCAL_MACHINE; #endif }