1// VersionInfo.h: interface for the CVersionInfo class.
2//
3//////////////////////////////////////////////////////////////////////
4
5#if !defined(AFX_VERSIONINFO_H__F82E9FF3_5298_11D4_AB87_00C04F789BA0__INCLUDED_)
6#define AFX_VERSIONINFO_H__F82E9FF3_5298_11D4_AB87_00C04F789BA0__INCLUDED_
7
8#if _MSC_VER > 1000
9#pragma once
10#endif // _MSC_VER > 1000
11
12class CVersionInfo
13{
14public:
15	CVersionInfo(CString filename);
16	virtual ~CVersionInfo();
17	BOOL IsValid() {return m_isValid;}
18	DWORD GetStatus() {return m_status;}
19
20	BOOL CopyFileCheckVersion(CVersionInfo &originalFile);
21	BOOL CopyFileNoVersion(CVersionInfo &originalFile);
22
23	const CString &GetFilename() {return m_filename;}
24
25	// Extract the elements of the file's string info block
26	CString GetFileVersionString();
27	CString GetProductVersionString();
28	CString GetComments();
29	CString GetFileDescription();
30	CString GetInternalName();
31	CString GetLegalCopyright();
32	CString GetLegalTrademarks();
33	CString GetOriginalFileName();
34	CString GetProductName();
35	CString GetSpecialBuildString();
36	CString GetPrivateBuildString();
37	CString GetCompanyName();
38
39
40	// Extract the elements of the file's VS_FIXEDFILEINFO block
41	_int64 GetFileVersion();
42	_int64 GetProductVersion();
43	_int64 GetFileDate();
44
45	DWORD GetFileFlagMask();
46	DWORD GetFileFlags();
47	DWORD GetFileOS();
48	DWORD GetFileType();
49	DWORD GetFileSubType();
50
51private:
52	CString m_filename;
53	BOOL m_isValid;
54	LPVOID m_versionInfo;
55	VS_FIXEDFILEINFO *m_fixedInfo;
56	DWORD m_codePage;
57	DWORD m_status;
58
59	CString QueryStringValue(CString value);
60};
61
62#endif // !defined(AFX_VERSIONINFO_H__F82E9FF3_5298_11D4_AB87_00C04F789BA0__INCLUDED_)
63