summaryrefslogtreecommitdiff
path: root/src/shared/util.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-29 15:26:04 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-06-29 15:26:04 -0400
commiteab0ec298b81138c4c602259ebf930f583113b95 (patch)
tree2ed827f459a6d462ef32f6fb4ca28153f124ed5d /src/shared/util.h
parent38b9c7c060aeee46d463930e313683e6e5bc0675 (diff)
refactored preloadSsl() into preloadDll()
removed old HGID check moved formatSystemMessage() to uibase added Environment class, lists loaded modules, logged at startup
Diffstat (limited to 'src/shared/util.h')
-rw-r--r--src/shared/util.h50
1 files changed, 48 insertions, 2 deletions
diff --git a/src/shared/util.h b/src/shared/util.h
index 1fdfb089..5d88481c 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -46,8 +46,54 @@ std::wstring ToLower(const std::wstring &text);
bool CaseInsensitiveEqual(const std::wstring &lhs, const std::wstring &rhs);
-VS_FIXEDFILEINFO GetFileVersion(const std::wstring &fileName);
-std::wstring GetFileVersionString(const std::wstring &fileName);
+class Environment
+{
+public:
+ class Module
+ {
+ public:
+ explicit Module(QString path, std::size_t fileSize);
+
+ const QString& path() const;
+ std::size_t fileSize() const;
+ const QString& version() const;
+ const QString& versionString() const;
+ QString timestampString() const;
+
+ QString toString() const;
+
+ private:
+ struct FileInfo
+ {
+ VS_FIXEDFILEINFO ffi;
+ QString fileDescription;
+ };
+
+ QString m_path;
+ std::size_t m_fileSize;
+ QString m_version;
+ QDateTime m_timestamp;
+ QString m_versionString;
+
+ FileInfo getFileInfo() const;
+
+ QString getVersion(const VS_FIXEDFILEINFO& fi) const;
+ QDateTime getTimestamp(const VS_FIXEDFILEINFO& fi) const;
+
+ VS_FIXEDFILEINFO getFixedFileInfo(std::byte* buffer) const;
+ QString getFileDescription(std::byte* buffer) const;
+ };
+
+ Environment();
+
+ const std::vector<Module>& loadedModules();
+
+private:
+ std::vector<Module> m_modules;
+
+ void getLoadedModules();
+};
+
MOBase::VersionInfo createVersionInfo();
} // namespace MOShared