|
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. |
|
4 |
|
5 #ifndef BASE_FILE_VERSION_INFO_WIN_H_ |
|
6 #define BASE_FILE_VERSION_INFO_WIN_H_ |
|
7 |
|
8 #include <string> |
|
9 |
|
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" |
|
14 |
|
15 struct tagVS_FIXEDFILEINFO; |
|
16 typedef tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO; |
|
17 |
|
18 class FileVersionInfoWin : public FileVersionInfo { |
|
19 public: |
|
20 BASE_EXPORT FileVersionInfoWin(void* data, int language, int code_page); |
|
21 BASE_EXPORT ~FileVersionInfoWin(); |
|
22 |
|
23 // Accessors to the different version properties. |
|
24 // Returns an empty string if the property is not found. |
|
25 virtual string16 company_name() OVERRIDE; |
|
26 virtual string16 company_short_name() OVERRIDE; |
|
27 virtual string16 product_name() OVERRIDE; |
|
28 virtual string16 product_short_name() OVERRIDE; |
|
29 virtual string16 internal_name() OVERRIDE; |
|
30 virtual string16 product_version() OVERRIDE; |
|
31 virtual string16 private_build() OVERRIDE; |
|
32 virtual string16 special_build() OVERRIDE; |
|
33 virtual string16 comments() OVERRIDE; |
|
34 virtual string16 original_filename() OVERRIDE; |
|
35 virtual string16 file_description() OVERRIDE; |
|
36 virtual string16 file_version() OVERRIDE; |
|
37 virtual string16 legal_copyright() OVERRIDE; |
|
38 virtual string16 legal_trademarks() OVERRIDE; |
|
39 virtual string16 last_change() OVERRIDE; |
|
40 virtual bool is_official_build() OVERRIDE; |
|
41 |
|
42 // Lets you access other properties not covered above. |
|
43 BASE_EXPORT bool GetValue(const wchar_t* name, std::wstring* value); |
|
44 |
|
45 // Similar to GetValue but returns a wstring (empty string if the property |
|
46 // does not exist). |
|
47 BASE_EXPORT std::wstring GetStringValue(const wchar_t* name); |
|
48 |
|
49 // Get the fixed file info if it exists. Otherwise NULL |
|
50 VS_FIXEDFILEINFO* fixed_file_info() { return fixed_file_info_; } |
|
51 |
|
52 private: |
|
53 scoped_ptr_malloc<char> data_; |
|
54 int language_; |
|
55 int code_page_; |
|
56 // This is a pointer into the data_ if it exists. Otherwise NULL. |
|
57 VS_FIXEDFILEINFO* fixed_file_info_; |
|
58 |
|
59 DISALLOW_COPY_AND_ASSIGN(FileVersionInfoWin); |
|
60 }; |
|
61 |
|
62 #endif // BASE_FILE_VERSION_INFO_WIN_H_ |