Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1999-2002, Ghostgum Software Pty Ltd.  All rights reserved.
2
 
3
  This software is provided AS-IS with no warranty, either express or
4
  implied.
5
 
6
  This software is distributed under license and may not be copied,
7
  modified or distributed except as expressly authorized under the terms
8
  of the license contained in the file LICENSE in this distribution.
9
 
10
  For more information about licensing, please refer to
11
  http://www.ghostscript.com/licensing/. For information on
12
  commercial licensing, go to http://www.artifex.com/licensing/ or
13
  contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
  San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
*/
16
 
17
// $Id: dwinst.h,v 1.7 2004/11/18 06:48:41 ghostgum Exp $
18
 
19
#ifndef dwinst_INCLUDED
20
#  define dwinst_INCLUDED
21
 
22
// Definitions for Ghostscript installer
23
 
24
#ifndef MAXSTR
25
#ifdef MAX_PATH
26
#define MAXSTR MAX_PATH
27
#else
28
#define MAXSTR 256
29
#endif
30
#endif
31
 
32
class CInstall  
33
{
34
public:
35
	CInstall();
36
	virtual ~CInstall();
37
	void SetMessageFunction(void(*fn)(const char *));
38
	void AddMessage(const char *message);
39
	const char *GetMainDir();
40
	const char *GetUninstallName();
41
	BOOL GetPrograms(BOOL bUseCommon, char *buf, int buflen);
42
	BOOL Init(const char *szSourceDir, const char *szFileList);
43
	BOOL InstallFiles(BOOL bNoCopy, BOOL *pbQuit);
44
	BOOL InstallFile(char *filename, BOOL bNoCopy);
45
	BOOL MakeDir(const char *dirname);
46
	FILE * MakeTemp(char *name);
47
 
48
	BOOL SetAllUsers(BOOL bUseCommon);
49
	void SetTargetDir(const char *szTargetDir);
50
	void SetTargetGroup(const char *szTargetGroup);
51
 
52
	BOOL StartMenuBegin();
53
	BOOL StartMenuEnd();
54
	BOOL StartMenuAdd(const char *szDescription, const char *szProgram, const char *szArguments);
55
 
56
	BOOL UpdateRegistryBegin();
57
	BOOL UpdateRegistryKey(const char *product, const char *version);
58
	BOOL UpdateRegistryValue(const char *product, const char *version, const char *name, const char *value);
59
	BOOL UpdateRegistryEnd();
60
 
61
	BOOL WriteUninstall(const char *prog, BOOL bNoCopy);
62
	BOOL MakeLog(void);
63
 
64
	void CleanUp(void);
65
 
66
        void AppendFileNew(const char *filename);
67
 
68
private:
69
	BOOL m_bNoCopy;
70
	BOOL m_bUseCommon;
71
	BOOL m_bQuit;
72
 
73
	// Source directory
74
	char m_szSourceDir[MAXSTR];
75
 
76
	// File containing list of files to install
77
	char m_szFileList[MAXSTR];
78
 
79
	// Target directory for program and fonts.
80
	char m_szTargetDir[MAXSTR];
81
 
82
	// Target Group for shortcut
83
	char m_szTargetGroup[MAXSTR];
84
 
85
	// Directory where the Start Menu is located.
86
	char m_szPrograms[MAXSTR];
87
 
88
	// Name used for uninstall
89
	char m_szUninstallName[MAXSTR];
90
 
91
	// Main directory prefix, where log files should be written
92
	char m_szMainDir[MAXSTR];
93
 
94
	// Full directory where log files should be written
95
	char m_szLogDir[MAXSTR];
96
 
97
	// Temporary log files for uninstall
98
	char m_szFileNew[MAXSTR];
99
	char m_szRegistryNew[MAXSTR];
100
	char m_szRegistryOld[MAXSTR];
101
	char m_szShellNew[MAXSTR];
102
	char m_szShellOld[MAXSTR];
103
 
104
	// Log files
105
	FILE * m_fLogNew;
106
	FILE * m_fLogOld;
107
 
108
 
109
	BOOL SetRegistryValue(HKEY hkey, const char *value_name, const char *value);
110
	BOOL CreateShellLink(LPCSTR description, LPCSTR program, LPCSTR arguments, LPCSTR icon = NULL, int nIconIndex = 0);
111
	void CopyFileContents(FILE *df, FILE *sf);
112
	void ResetReadonly(const char *filename);
113
 
114
	void(*AddMessageFn)(const char *);
115
 
116
};
117
 
118
 
119
#endif /* dwinst_INCLUDED */