1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef BASE_FILE_VERSION_INFO_WIN_H_
6 #define BASE_FILE_VERSION_INFO_WIN_H_
10 #include "base/base_export.h"
11 #include "base/basictypes.h"
12 #include "base/file_version_info.h"
13 #include "base/memory/scoped_ptr.h"
15 struct tagVS_FIXEDFILEINFO
;
16 typedef tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO
;
18 class FileVersionInfoWin
: public FileVersionInfo
{
20 BASE_EXPORT
FileVersionInfoWin(void* data
, WORD language
, WORD code_page
);
21 BASE_EXPORT
~FileVersionInfoWin();
23 // Accessors to the different version properties.
24 // Returns an empty string if the property is not found.
25 virtual base::string16
company_name() override
;
26 virtual base::string16
company_short_name() override
;
27 virtual base::string16
product_name() override
;
28 virtual base::string16
product_short_name() override
;
29 virtual base::string16
internal_name() override
;
30 virtual base::string16
product_version() override
;
31 virtual base::string16
private_build() override
;
32 virtual base::string16
special_build() override
;
33 virtual base::string16
comments() override
;
34 virtual base::string16
original_filename() override
;
35 virtual base::string16
file_description() override
;
36 virtual base::string16
file_version() override
;
37 virtual base::string16
legal_copyright() override
;
38 virtual base::string16
legal_trademarks() override
;
39 virtual base::string16
last_change() override
;
40 virtual bool is_official_build() override
;
42 // Lets you access other properties not covered above.
43 BASE_EXPORT
bool GetValue(const wchar_t* name
, std::wstring
* value
);
45 // Similar to GetValue but returns a wstring (empty string if the property
47 BASE_EXPORT
std::wstring
GetStringValue(const wchar_t* name
);
49 // Get the fixed file info if it exists. Otherwise NULL
50 VS_FIXEDFILEINFO
* fixed_file_info() { return fixed_file_info_
; }
53 scoped_ptr
<char, base::FreeDeleter
> data_
;
56 // This is a pointer into the data_ if it exists. Otherwise NULL.
57 VS_FIXEDFILEINFO
* fixed_file_info_
;
59 DISALLOW_COPY_AND_ASSIGN(FileVersionInfoWin
);
62 #endif // BASE_FILE_VERSION_INFO_WIN_H_