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