summaryrefslogtreecommitdiffstats
path: root/chromium/base/file_version_info_win.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/file_version_info_win.h')
-rw-r--r--chromium/base/file_version_info_win.h30
1 files changed, 22 insertions, 8 deletions
diff --git a/chromium/base/file_version_info_win.h b/chromium/base/file_version_info_win.h
index 1e152a86d65..d91b67f67ba 100644
--- a/chromium/base/file_version_info_win.h
+++ b/chromium/base/file_version_info_win.h
@@ -5,20 +5,23 @@
#ifndef BASE_FILE_VERSION_INFO_WIN_H_
#define BASE_FILE_VERSION_INFO_WIN_H_
+#include <windows.h>
+
+#include <stdint.h>
+
#include <memory>
#include <string>
+#include <vector>
#include "base/base_export.h"
#include "base/file_version_info.h"
#include "base/macros.h"
-#include "base/memory/free_deleter.h"
struct tagVS_FIXEDFILEINFO;
typedef tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO;
class BASE_EXPORT FileVersionInfoWin : public FileVersionInfo {
public:
- FileVersionInfoWin(void* data, WORD language, WORD code_page);
~FileVersionInfoWin() override;
// Accessors to the different version properties.
@@ -48,14 +51,25 @@ class BASE_EXPORT FileVersionInfoWin : public FileVersionInfo {
std::wstring GetStringValue(const wchar_t* name);
// Get the fixed file info if it exists. Otherwise NULL
- VS_FIXEDFILEINFO* fixed_file_info() { return fixed_file_info_; }
+ const VS_FIXEDFILEINFO* fixed_file_info() const { return fixed_file_info_; }
private:
- std::unique_ptr<char, base::FreeDeleter> data_;
- WORD language_;
- WORD code_page_;
- // This is a pointer into the data_ if it exists. Otherwise NULL.
- VS_FIXEDFILEINFO* fixed_file_info_;
+ friend FileVersionInfo;
+
+ // |data| is a VS_VERSION_INFO resource. |language| and |code_page| are
+ // extracted from the \VarFileInfo\Translation value of |data|.
+ FileVersionInfoWin(std::vector<uint8_t>&& data,
+ WORD language,
+ WORD code_page);
+ FileVersionInfoWin(void* data, WORD language, WORD code_page);
+
+ const std::vector<uint8_t> owned_data_;
+ const void* const data_;
+ const WORD language_;
+ const WORD code_page_;
+
+ // This is a pointer into |data_| if it exists. Otherwise nullptr.
+ const VS_FIXEDFILEINFO* const fixed_file_info_;
DISALLOW_COPY_AND_ASSIGN(FileVersionInfoWin);
};