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_
11 #include "base/base_export.h"
12 #include "base/basictypes.h"
13 #include "base/file_version_info.h"
14 #include "base/memory/scoped_ptr.h"
16 struct tagVS_FIXEDFILEINFO
;
17 typedef tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO
;
19 class FileVersionInfoWin
: public FileVersionInfo
{
21 BASE_EXPORT
FileVersionInfoWin(void* data
, int language
, int code_page
);
22 BASE_EXPORT
~FileVersionInfoWin();
24 // Accessors to the different version properties.
25 // Returns an empty string if the property is not found.
26 virtual string16
company_name() OVERRIDE
;
27 virtual string16
company_short_name() OVERRIDE
;
28 virtual string16
product_name() OVERRIDE
;
29 virtual string16
product_short_name() OVERRIDE
;
30 virtual string16
internal_name() OVERRIDE
;
31 virtual string16
product_version() OVERRIDE
;
32 virtual string16
private_build() OVERRIDE
;
33 virtual string16
special_build() OVERRIDE
;
34 virtual string16
comments() OVERRIDE
;
35 virtual string16
original_filename() OVERRIDE
;
36 virtual string16
file_description() OVERRIDE
;
37 virtual string16
file_version() OVERRIDE
;
38 virtual string16
legal_copyright() OVERRIDE
;
39 virtual string16
legal_trademarks() OVERRIDE
;
40 virtual string16
last_change() OVERRIDE
;
41 virtual bool is_official_build() OVERRIDE
;
43 // Lets you access other properties not covered above.
44 BASE_EXPORT
bool GetValue(const wchar_t* name
, std::wstring
* value
);
46 // Similar to GetValue but returns a wstring (empty string if the property
48 BASE_EXPORT
std::wstring
GetStringValue(const wchar_t* name
);
50 // Get the fixed file info if it exists. Otherwise NULL
51 VS_FIXEDFILEINFO
* fixed_file_info() { return fixed_file_info_
; }
54 scoped_ptr_malloc
<char> data_
;
57 // This is a pointer into the data_ if it exists. Otherwise NULL.
58 VS_FIXEDFILEINFO
* fixed_file_info_
;
60 DISALLOW_COPY_AND_ASSIGN(FileVersionInfoWin
);
63 #endif // BASE_FILE_VERSION_INFO_WIN_H_