blob: d3c9815b38a827d0b45d0a3ed473dff27d5f4227 [file] [log] [blame]
// 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_