std::wstring FromRegistry()

in src/VSIXBootstrapper.Shared/VSIXBootstrapper.h [179:198]


std::wstring FromRegistry(_In_ LPCWSTR wszVersion) noexcept
{
    try
    {
        WCHAR wzPath[MAX_PATH] = {};
        if (0 > swprintf_s(wzPath, _countof(wzPath), L"SOFTWARE\\Microsoft\\VisualStudio\\%ls\\Setup\\VS", wszVersion))
        {
            throw win32_error(E_UNEXPECTED);
        }

        RegistryKey<_Traits> key(HKEY_LOCAL_MACHINE, wzPath);
        return key.GetString(L"EnvironmentDirectory");
    }
    catch (...)
    {
        // TODO: Consider tracing errors.
    }

    return std::wstring();
}