| Index: base/file_version_info.h
|
| ===================================================================
|
| --- base/file_version_info.h (revision 82561)
|
| +++ base/file_version_info.h (working copy)
|
| @@ -6,11 +6,18 @@
|
| #define BASE_FILE_VERSION_INFO_H__
|
| #pragma once
|
|
|
| +#include "build/build_config.h"
|
| +
|
| +#if defined(OS_WIN)
|
| +#include <windows.h>
|
| +// http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx
|
| +extern "C" IMAGE_DOS_HEADER __ImageBase;
|
| +#endif // OS_WIN
|
| +
|
| #include <string>
|
|
|
| #include "base/base_api.h"
|
| #include "base/string16.h"
|
| -#include "build/build_config.h"
|
|
|
| class FilePath;
|
|
|
| @@ -24,19 +31,37 @@
|
| // version returns values from the Info.plist as appropriate. TODO(avi): make
|
| // this a less-obvious Windows-ism.
|
|
|
| -class BASE_API FileVersionInfo {
|
| +class FileVersionInfo {
|
| public:
|
| virtual ~FileVersionInfo() {}
|
| #if defined(OS_WIN) || defined(OS_MACOSX)
|
| // Creates a FileVersionInfo for the specified path. Returns NULL if something
|
| // goes wrong (typically the file does not exit or cannot be opened). The
|
| // returned object should be deleted when you are done with it.
|
| - static FileVersionInfo* CreateFileVersionInfo(const FilePath& file_path);
|
| + BASE_API static FileVersionInfo* CreateFileVersionInfo(
|
| + const FilePath& file_path);
|
| #endif // OS_WIN || OS_MACOSX
|
|
|
| +#if defined(OS_WIN)
|
| + // Creates a FileVersionInfo for the specified module. Returns NULL in case
|
| + // of error. The returned object should be deleted when you are done with it.
|
| + BASE_API static FileVersionInfo* CreateFileVersionInfoForModule(
|
| + HMODULE module);
|
| +
|
| // Creates a FileVersionInfo for the current module. Returns NULL in case
|
| // of error. The returned object should be deleted when you are done with it.
|
| + // This function should be inlined so that the "current module" is evaluated
|
| + // correctly, instead of being the module that contains base.
|
| + __forceinline static FileVersionInfo*
|
| + CreateFileVersionInfoForCurrentModule() {
|
| + HMODULE module = reinterpret_cast<HMODULE>(&__ImageBase);
|
| + return CreateFileVersionInfoForModule(module);
|
| + }
|
| +#else
|
| + // Creates a FileVersionInfo for the current module. Returns NULL in case
|
| + // of error. The returned object should be deleted when you are done with it.
|
| static FileVersionInfo* CreateFileVersionInfoForCurrentModule();
|
| +#endif // OS_WIN
|
|
|
| // Accessors to the different version properties.
|
| // Returns an empty string if the property is not found.
|
|
|