1 ///////////////////////////////////////////////////////////////////////////////
\r
6 # define _INSTALLER_H
\r
11 /////////////////////////////////////////////////////////////////////////////
\r
15 namespace SetupFile {
\r
25 NT, NT4, W2k, // W2k includes XP
\r
40 u_int32 m_flags; /// user defined flags
\r
41 const _TCHAR *m_from;
\r
42 Destination m_destination;
\r
48 /////////////////////////////////////////////////////////////////////////////
\r
49 // Locale / StringResource
\r
52 LOCALE_Japanese_Japan_932 = 0,
\r
56 struct StringResource {
\r
63 const StringResource *m_stringResources;
\r
69 Resource(const StringResource *i_stringResources);
\r
70 Resource(const StringResource *i_stringResources, Locale i_locale)
\r
71 : m_stringResources(i_stringResources), m_locale(i_locale) { }
\r
73 // get resource string
\r
74 const _TCHAR *loadString(UINT i_id);
\r
77 Locale getLocale() const {
\r
83 /////////////////////////////////////////////////////////////////////////////
\r
84 // Utility Functions
\r
86 // createLink - uses the shell's IShellLink and IPersistFile interfaces
\r
87 // to create and store a shortcut to the specified object.
\r
88 HRESULT createLink(LPCTSTR i_pathObj, LPCTSTR i_pathLink, LPCTSTR i_desc,
\r
89 LPCTSTR i_workingDirectory = NULL);
\r
91 // create file extension information
\r
92 void createFileExtension(const tstringi &i_ext, const tstring &i_contentType,
\r
93 const tstringi &i_fileType,
\r
94 const tstring &i_fileTypeName,
\r
95 const tstringi &i_iconPath,
\r
96 const tstring &i_command);
\r
98 // remove file extension information
\r
99 void removeFileExtension(const tstringi &i_ext, const tstringi &i_fileType);
\r
101 // create uninstallation information
\r
102 void createUninstallInformation(const tstringi &i_name,
\r
103 const tstring &i_displayName,
\r
104 const tstring &i_commandLine);
\r
106 // remove uninstallation information
\r
107 void removeUninstallInformation(const tstringi &i_name);
\r
110 tstringi normalizePath(tstringi i_path);
\r
112 // create deep directory
\r
113 bool createDirectories(const _TCHAR *i_folder);
\r
115 // get driver directory
\r
116 tstringi getDriverDirectory();
\r
118 // get current directory
\r
119 tstringi getModuleDirectory();
\r
121 // get start menu name
\r
122 tstringi getStartMenuName(const tstringi &i_shortcutName);
\r
124 // get start up name
\r
125 tstringi getStartUpName(const tstringi &i_shortcutName);
\r
127 // create driver service
\r
128 DWORD createDriverService(const tstringi &i_serviceName,
\r
129 const tstring &i_serviceDescription,
\r
130 const tstringi &i_driverPath,
\r
131 const _TCHAR *i_preloadedGroups,
\r
134 // remove driver service
\r
135 DWORD removeDriverService(const tstringi &i_serviceName);
\r
137 // check operating system
\r
138 bool checkOs(SetupFile::OS i_os);
\r
141 bool installFiles(const SetupFile::Data *i_setupFiles,
\r
142 size_t i_setupFilesSize, u_int32 i_flags,
\r
143 const tstringi &i_srcDir, const tstringi &i_destDir);
\r
145 // remove files from src
\r
146 bool removeSrcFiles(const SetupFile::Data *i_setupFiles,
\r
147 size_t i_setupFilesSize, u_int32 i_flags,
\r
148 const tstringi &i_srcDir);
\r
151 void removeFiles(const SetupFile::Data *i_setupFiles,
\r
152 size_t i_setupFilesSize, u_int32 i_flags,
\r
153 const tstringi &i_destDir);
\r
156 int uninstallStep1(const _TCHAR *i_uninstallOption);
\r
159 // (after this function, we cannot use any resource)
\r
160 void uninstallStep2(const _TCHAR *i_argByStep1);
\r
164 #endif // _INSTALLER_H
\r