1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef BASE_FILE_VERSION_INFO_MAC_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define BASE_FILE_VERSION_INFO_MAC_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/file_version_info.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_nsobject.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifdef __OBJC__ 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@class NSBundle; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#else 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass NSBundle; 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass FileVersionInfoMac : public FileVersionInfo { 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch explicit FileVersionInfoMac(NSBundle *bundle); 23dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual ~FileVersionInfoMac(); 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Accessors to the different version properties. 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns an empty string if the property is not found. 2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 company_name(); 2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 company_short_name(); 2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 product_name(); 3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 product_short_name(); 3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 internal_name(); 3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 product_version(); 3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 private_build(); 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 special_build(); 3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 comments(); 3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 original_filename(); 3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 file_description(); 3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 file_version(); 3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 legal_copyright(); 4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 legal_trademarks(); 4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual string16 last_change(); 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual bool is_official_build(); 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // Returns a string16 value for a property name. 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // Returns the empty string if the property does not exist. 4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen string16 GetString16Value(CFStringRef name); 4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen scoped_nsobject<NSBundle> bundle_; 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(FileVersionInfoMac); 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // BASE_FILE_VERSION_INFO_MAC_H_ 55