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