// Copyright 2003-2009 Google Inc. | |
// | |
// Licensed under the Apache License, Version 2.0 (the "License"); | |
// you may not use this file except in compliance with the License. | |
// You may obtain a copy of the License at | |
// | |
// http://www.apache.org/licenses/LICENSE-2.0 | |
// | |
// Unless required by applicable law or agreed to in writing, software | |
// distributed under the License is distributed on an "AS IS" BASIS, | |
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
// See the License for the specific language governing permissions and | |
// limitations under the License. | |
// ======================================================================== | |
#ifndef OMAHA_COMMON_FILE_VER_H_ | |
#define OMAHA_COMMON_FILE_VER_H_ | |
#include <windows.h> | |
#include <tchar.h> | |
#include <atlstr.h> | |
#include "base/basictypes.h" | |
namespace omaha { | |
class FileVer { | |
public: | |
FileVer(); | |
~FileVer(); | |
// opens the version info for the specified file | |
BOOL Open(const TCHAR* lpszModuleName); | |
// Cleanup | |
void Close(); | |
// Query for a given vlaue | |
CString QueryValue(const TCHAR* lpszValueName) const; | |
// Shortcuts for common values | |
CString GetFileDescription() const {return QueryValue(_T("FileDescription"));} | |
CString GetFileVersion() const {return QueryValue(_T("FileVersion")); } | |
CString GetCompanyName() const {return QueryValue(_T("CompanyName")); } | |
CString GetProductName() const {return QueryValue(_T("ProductName")); } | |
CString GetProductVersion() const {return QueryValue(_T("ProductVersion")); } | |
// gets the FIXEDFILEINFO datastructure | |
BOOL GetFixedInfo(VS_FIXEDFILEINFO& vsffi) const; // NOLINT | |
// returns a formated string representing the file and product versions | |
// e.g. 2.4.124.34 | |
CString FormatFixedFileVersion() const; | |
CString FormatFixedProductVersion() const; | |
// Returns a ULONGLONG containing the version in DLL version format. | |
ULONGLONG GetFileVersionAsULONGLONG() const; | |
// gets the language ID | |
LCID GetLanguageID() const { return HIWORD(lang_charset_); } | |
private: | |
// versioning data returned by GetFileVersionInfo | |
byte* file_ver_data_; | |
// language charset | |
DWORD lang_charset_; | |
DISALLOW_EVIL_CONSTRUCTORS(FileVer); | |
}; | |
} // namespace omaha | |
#endif // OMAHA_COMMON_FILE_VER_H_ |