OSDN Git Service

Fix build errors
[winmerge-jp/winmerge-jp.git] / Src / FileVersion.h
1 /** 
2  * @file  FileVersion.h
3  *
4  * @brief Declaration file for FileVersion
5  */
6 #pragma once
7
8 #include "UnicodeString.h"
9
10 /**
11  * @brief A class that contains file version information.
12  * This class contains file version information that Windows allows
13  * file to have (file version, product version).
14  */
15 class FileVersion
16 {
17 private:
18         unsigned m_fileVersionMS; //*< File version most significant dword. */
19         unsigned m_fileVersionLS; //*< File version least significant dword. */
20
21 public:
22         FileVersion();
23         void Clear();
24         bool IsCleared() const { return m_fileVersionMS == 0xffffffff && m_fileVersionLS == 0xffffffff; };
25         void SetFileVersion(unsigned versionMS, unsigned versionLS);
26         void SetFileVersionNone() { m_fileVersionMS = 0xffffffff; m_fileVersionLS = 0xfffffffe; };
27         String GetFileVersionString() const;
28         uint64_t GetFileVersionQWORD() const { return (static_cast<uint64_t>(m_fileVersionMS) << 32) + m_fileVersionLS; };
29 };
30
31 /**
32  * @brief Reset version data to zeroes.
33  */
34 inline void FileVersion::Clear()
35 {
36         m_fileVersionMS = m_fileVersionLS = 0xffffffff;
37 }
38
39 /**
40  * @brief Set file version number.
41  * @param [in] versionMS Most significant dword for version.
42  * @param [in] versionLS Least significant dword for version.
43  */
44 inline void FileVersion::SetFileVersion(unsigned versionMS, unsigned versionLS)
45 {
46         m_fileVersionMS = versionMS;
47         m_fileVersionLS = versionLS;
48 }
49