MCPcopy Create free account
hub / github.com/chromium/crashpad / GetModuleVersionAndType

Function GetModuleVersionAndType

util/win/module_version.cc:26–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24namespace crashpad {
25
26bool GetModuleVersionAndType(const base::FilePath& path,
27 VS_FIXEDFILEINFO* vs_fixedfileinfo) {
28 DWORD size = GetFileVersionInfoSize(path.value().c_str(), nullptr);
29 if (!size) {
30 PLOG_IF(WARNING, GetLastError() != ERROR_RESOURCE_TYPE_NOT_FOUND)
31 << "GetFileVersionInfoSize: " << base::WideToUTF8(path.value());
32 return false;
33 }
34
35 auto data = base::HeapArray<uint8_t>::Uninit(size);
36 if (!GetFileVersionInfo(path.value().c_str(),
37 0,
38 static_cast<DWORD>(data.size()),
39 data.data())) {
40 PLOG(WARNING) << "GetFileVersionInfo: " << base::WideToUTF8(path.value());
41 return false;
42 }
43
44 VS_FIXEDFILEINFO* fixed_file_info;
45 UINT ffi_size;
46 if (!VerQueryValue(data.data(),
47 L"\\",
48 reinterpret_cast<void**>(&fixed_file_info),
49 &ffi_size)) {
50 PLOG(WARNING) << "VerQueryValue";
51 return false;
52 }
53
54 *vs_fixedfileinfo = *fixed_file_info;
55 vs_fixedfileinfo->dwFileFlags &= vs_fixedfileinfo->dwFileFlagsMask;
56 return true;
57}
58
59} // namespace crashpad

Callers 3

UserAgentFunction · 0.85
TestVSFixedFileInfoFunction · 0.85
InitializeMethod · 0.85

Calls 3

valueMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45

Tested by 1

TestVSFixedFileInfoFunction · 0.68