MCPcopy Create free account
hub / github.com/ModOrganizer2/modorganizer / GetFileVersion

Function GetFileVersion

src/shared/util.cpp:155–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

153}
154
155VS_FIXEDFILEINFO GetFileVersion(const std::wstring& fileName)
156{
157 DWORD handle = 0UL;
158 DWORD size = ::GetFileVersionInfoSizeW(fileName.c_str(), &handle);
159 if (size == 0) {
160 throw windows_error("failed to determine file version info size");
161 }
162
163 boost::scoped_array<char> buffer(new char[size]);
164 try {
165 handle = 0UL;
166 if (!::GetFileVersionInfoW(fileName.c_str(), handle, size, buffer.get())) {
167 throw windows_error("failed to determine file version info");
168 }
169
170 void* versionInfoPtr = nullptr;
171 UINT versionInfoLength = 0;
172 if (!::VerQueryValue(buffer.get(), L"\\", &versionInfoPtr, &versionInfoLength)) {
173 throw windows_error("failed to determine file version");
174 }
175
176 VS_FIXEDFILEINFO result = *(VS_FIXEDFILEINFO*)versionInfoPtr;
177 return result;
178 } catch (...) {
179 throw;
180 }
181}
182
183std::wstring GetFileVersionString(const std::wstring& fileName)
184{

Callers 1

createVersionInfoFunction · 0.85

Calls 2

windows_errorClass · 0.85
getMethod · 0.45

Tested by

no test coverage detected