1 |
tony |
1 |
{************************************************************************}
|
2 |
|
|
{ }
|
3 |
|
|
{ Borland Delphi Visual Component Library }
|
4 |
|
|
{ InterBase Express core components }
|
5 |
|
|
{ }
|
6 |
|
|
{ Copyright (c) 1998-2000 Inprise Corporation }
|
7 |
|
|
{ }
|
8 |
|
|
{ InterBase Express is based in part on the product }
|
9 |
|
|
{ Free IB Components, written by Gregory H. Deatz for }
|
10 |
|
|
{ Hoagland, Longo, Moran, Dunst & Doukas Company. }
|
11 |
|
|
{ Free IB Components is used under license. }
|
12 |
|
|
{ }
|
13 |
|
|
{ The contents of this file are subject to the InterBase }
|
14 |
|
|
{ Public License Version 1.0 (the "License"); you may not }
|
15 |
|
|
{ use this file except in compliance with the License. You }
|
16 |
|
|
{ may obtain a copy of the License at http://www.Inprise.com/IPL.html }
|
17 |
|
|
{ Software distributed under the License is distributed on }
|
18 |
|
|
{ an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either }
|
19 |
|
|
{ express or implied. See the License for the specific language }
|
20 |
|
|
{ governing rights and limitations under the License. }
|
21 |
|
|
{ The Original Code was created by InterBase Software Corporation }
|
22 |
|
|
{ and its successors. }
|
23 |
|
|
{ Portions created by Inprise Corporation are Copyright (C) Inprise }
|
24 |
|
|
{ Corporation. All Rights Reserved. }
|
25 |
|
|
{ Contributor(s): Jeff Overcash }
|
26 |
|
|
{ }
|
27 |
|
|
{************************************************************************}
|
28 |
|
|
|
29 |
|
|
{
|
30 |
|
|
InterBase Express provides component interfaces to
|
31 |
|
|
functions introduced in InterBase 6.0. The Services
|
32 |
|
|
components (TIB*Service, TIBServerProperties) and
|
33 |
|
|
Install components (TIBInstall, TIBUninstall, TIBSetup)
|
34 |
|
|
function only if you have installed InterBase 6.0 or
|
35 |
|
|
later software
|
36 |
|
|
}
|
37 |
|
|
|
38 |
|
|
unit IBInstallHeader;
|
39 |
|
|
|
40 |
|
|
|
41 |
|
|
interface
|
42 |
|
|
|
43 |
|
|
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
|
44 |
|
|
|
45 |
|
|
{ InterBase Install API interface }
|
46 |
|
|
type
|
47 |
|
|
OPTIONS_HANDLE = integer;
|
48 |
|
|
POPTIONS_HANDLE = ^OPTIONS_HANDLE;
|
49 |
|
|
MSG_NO = longint;
|
50 |
|
|
OPT = longint;
|
51 |
|
|
TEXT = PChar;
|
52 |
|
|
FP_ERROR = function(IscCode: MSG_NO; UserContext: Pointer;
|
53 |
|
|
const ActionDescription : TEXT): Integer; stdcall;
|
54 |
|
|
FP_STATUS = function(Status: Integer; UserContext: Pointer;
|
55 |
|
|
const ActionDescription: TEXT): Integer; stdcall;
|
56 |
|
|
|
57 |
|
|
const
|
58 |
|
|
IB_INSTALL_DLL = 'ibinstall.dll'; {do not localize}
|
59 |
|
|
{ These are the values the FP_ERROR routine can return. }
|
60 |
|
|
isc_install_fp_retry = -1;
|
61 |
|
|
isc_install_fp_continue = 0;
|
62 |
|
|
isc_install_fp_abort = 1;
|
63 |
|
|
|
64 |
|
|
{ isc_install_get_info info_types }
|
65 |
|
|
isc_install_info_destination = 1;
|
66 |
|
|
isc_install_info_opspace = 2 ;
|
67 |
|
|
isc_install_info_opname = 3 ;
|
68 |
|
|
isc_install_info_opdescription = 4;
|
69 |
|
|
|
70 |
|
|
|
71 |
|
|
ISC_INSTALL_MAX_MESSAGE_LEN = 300;
|
72 |
|
|
ISC_INSTALL_MAX_MESSAGES = 200;
|
73 |
|
|
ISC_INSTALL_MAX_PATH = 256;
|
74 |
|
|
|
75 |
|
|
{ Basic Components used to install InterBase }
|
76 |
|
|
INTERBASE = 1000;
|
77 |
|
|
IB_SERVER = 1001;
|
78 |
|
|
IB_CLIENT = 1002;
|
79 |
|
|
|
80 |
|
|
IB_CMD_TOOLS = 1003;
|
81 |
|
|
IB_CMD_TOOLS_DB_MGMT = 1004;
|
82 |
|
|
IB_CMD_TOOLS_USR_MGMT = 1005;
|
83 |
|
|
IB_CMD_TOOLS_DB_QUERY = 1006;
|
84 |
|
|
|
85 |
|
|
IB_GUI_TOOLS = 1007;
|
86 |
|
|
|
87 |
|
|
IB_DOC = 1011;
|
88 |
|
|
IB_EXAMPLES = 1012;
|
89 |
|
|
IB_EXAMPLE_API = 1013;
|
90 |
|
|
IB_EXAMPLE_DB = 1014;
|
91 |
|
|
IB_DEV = 1015;
|
92 |
|
|
|
93 |
|
|
IB_CONNECTIVITY_SERVER = 1100;
|
94 |
|
|
IB_CONNECTIVITY = 1101;
|
95 |
|
|
IB_ODBC_CLIENT = 1102;
|
96 |
|
|
IB_JDBC_CLIENT = 1103;
|
97 |
|
|
IB_OLEDB_CLIENT = 1104;
|
98 |
|
|
|
99 |
|
|
{ Error and warning codes }
|
100 |
|
|
isc_install_optlist_empty = -1;
|
101 |
|
|
isc_install_actlist_empty = -2;
|
102 |
|
|
isc_install_fp_copy_delayed = -3;
|
103 |
|
|
isc_install_fp_delete_delayed = -4;
|
104 |
|
|
isc_install_option_not_found = -5;
|
105 |
|
|
isc_install_msg_version = -6;
|
106 |
|
|
isc_install_cant_load_msg = -7;
|
107 |
|
|
isc_install_invalid_msg = -8;
|
108 |
|
|
isc_install_invalid_tbl = -9;
|
109 |
|
|
isc_install_cant_create_msg = -10;
|
110 |
|
|
isc_install_handle_not_allocated = -11;
|
111 |
|
|
isc_install_odbc_comp_notfound = -12;
|
112 |
|
|
isc_install_cant_delete = -13;
|
113 |
|
|
isc_install_cant_rmdir = -14;
|
114 |
|
|
isc_install_key_nonempty = -15;
|
115 |
|
|
|
116 |
|
|
isc_install_success = 0;
|
117 |
|
|
|
118 |
|
|
{ File and directory related errors }
|
119 |
|
|
isc_install_file_error = isc_install_success;
|
120 |
|
|
isc_install_path_not_valid = isc_install_file_error+1;
|
121 |
|
|
isc_install_path_not_exists = isc_install_file_error+2;
|
122 |
|
|
isc_install_cant_write = isc_install_file_error+3;
|
123 |
|
|
isc_install_type_unknown = isc_install_file_error+4;
|
124 |
|
|
isc_install_cant_move_file = isc_install_file_error+5;
|
125 |
|
|
isc_install_device_not_valid = isc_install_file_error+6;
|
126 |
|
|
isc_install_data_truncated = isc_install_file_error+7;
|
127 |
|
|
isc_install_cant_get_temp = isc_install_file_error+8;
|
128 |
|
|
isc_install_no_file = isc_install_file_error+9;
|
129 |
|
|
isc_install_cant_load_lib = isc_install_file_error+10;
|
130 |
|
|
isc_install_cant_lookup_lib = isc_install_file_error+11;
|
131 |
|
|
isc_install_file_exists = isc_install_file_error+12;
|
132 |
|
|
isc_install_cant_open_log = isc_install_file_error+13;
|
133 |
|
|
isc_install_write_error = isc_install_file_error+14;
|
134 |
|
|
isc_install_read_error = isc_install_file_error+15;
|
135 |
|
|
isc_install_invalid_log = isc_install_file_error+16;
|
136 |
|
|
isc_install_cant_read = isc_install_file_error+17;
|
137 |
|
|
isc_install_no_diskspace = isc_install_file_error+18;
|
138 |
|
|
isc_install_cant_create_dir = isc_install_file_error+19;
|
139 |
|
|
isc_install_msg_syntax = isc_install_file_error+20;
|
140 |
|
|
isc_install_fp_delete_error = isc_install_file_error+21;
|
141 |
|
|
isc_install_fp_rename_error = isc_install_file_error+22;
|
142 |
|
|
isc_install_fp_copy_error = isc_install_file_error+23;
|
143 |
|
|
|
144 |
|
|
{ Precheck related errors }
|
145 |
|
|
isc_install_precheck_error = isc_install_file_error+24;
|
146 |
|
|
isc_install_system_not_supported = isc_install_precheck_error;
|
147 |
|
|
isc_install_server_running = isc_install_precheck_error+1;
|
148 |
|
|
isc_install_classic_found = isc_install_precheck_error+2;
|
149 |
|
|
isc_install_no_privileges = isc_install_precheck_error+3;
|
150 |
|
|
isc_install_cant_get_free_space = isc_install_precheck_error+4;
|
151 |
|
|
isc_install_guardian_running = isc_install_precheck_error+5;
|
152 |
|
|
isc_install_invalid_option = isc_install_precheck_error+6;
|
153 |
|
|
isc_install_invalid_handle = isc_install_precheck_error+7;
|
154 |
|
|
isc_install_message_not_found = isc_install_precheck_error+8;
|
155 |
|
|
|
156 |
|
|
{ TCP/IP services related }
|
157 |
|
|
isc_install_ip_error = isc_install_precheck_error+9;
|
158 |
|
|
isc_install_no_stack = isc_install_ip_error;
|
159 |
|
|
isc_install_cant_add_service = isc_install_ip_error+1;
|
160 |
|
|
isc_install_invalid_port = isc_install_ip_error+2;
|
161 |
|
|
isc_install_invalid_service = isc_install_ip_error+3;
|
162 |
|
|
isc_install_no_proto = isc_install_ip_error+4;
|
163 |
|
|
isc_install_no_services_entry = isc_install_ip_error+5;
|
164 |
|
|
isc_install_sock_error = isc_install_ip_error+6;
|
165 |
|
|
isc_install_conversion_error = isc_install_ip_error+7;
|
166 |
|
|
|
167 |
|
|
|
168 |
|
|
{ Operations errors }
|
169 |
|
|
isc_install_op_error = isc_install_ip_error+8;
|
170 |
|
|
isc_install_cant_copy = isc_install_op_error;
|
171 |
|
|
isc_install_no_mem = isc_install_op_error+1;
|
172 |
|
|
isc_install_queue_failed = isc_install_op_error+2;
|
173 |
|
|
isc_install_invalid_param = isc_install_op_error+3;
|
174 |
|
|
isc_install_fp_error_exception = isc_install_op_error+4;
|
175 |
|
|
isc_install_fp_status_exception = isc_install_op_error+5;
|
176 |
|
|
isc_install_user_aborted = isc_install_op_error+6;
|
177 |
|
|
|
178 |
|
|
{ Registry related errors }
|
179 |
|
|
isc_install_reg_error = isc_install_op_error+7;
|
180 |
|
|
isc_install_key_exists = isc_install_reg_error;
|
181 |
|
|
isc_install_cant_create_key = isc_install_reg_error+1;
|
182 |
|
|
isc_install_cant_set_value = isc_install_reg_error+2;
|
183 |
|
|
isc_install_cant_open_key = isc_install_reg_error+3;
|
184 |
|
|
isc_install_cant_delete_key = isc_install_reg_error+4;
|
185 |
|
|
isc_install_cant_query_key = isc_install_reg_error+5;
|
186 |
|
|
isc_install_cant_delete_value = isc_install_reg_error+6;
|
187 |
|
|
|
188 |
|
|
{ OS services related errors }
|
189 |
|
|
isc_install_serv_error = isc_install_reg_error+7;
|
190 |
|
|
isc_install_service_existed = isc_install_serv_error;
|
191 |
|
|
isc_install_cant_create_service = isc_install_serv_error+1;
|
192 |
|
|
isc_install_cant_open_service = isc_install_serv_error+2;
|
193 |
|
|
isc_install_cant_query_service = isc_install_serv_error+3;
|
194 |
|
|
isc_install_service_running = isc_install_serv_error+4;
|
195 |
|
|
isc_install_cant_delete_service = isc_install_serv_error+5;
|
196 |
|
|
isc_install_cant_open_manager = isc_install_serv_error+6;
|
197 |
|
|
isc_install_system_error = isc_install_serv_error+7;
|
198 |
|
|
isc_install_com_regfail = isc_install_serv_error+8;
|
199 |
|
|
isc_install_dcom_required = isc_install_serv_error+9;
|
200 |
|
|
|
201 |
|
|
{ ODBC installation errors }
|
202 |
|
|
isc_install_odbc_error = isc_install_serv_error+10;
|
203 |
|
|
isc_install_odbc_general = isc_install_odbc_error;
|
204 |
|
|
isc_install_core_version = isc_install_odbc_error+1;
|
205 |
|
|
isc_install_drv_version = isc_install_odbc_error+2;
|
206 |
|
|
isc_install_tran_version = isc_install_odbc_error+3;
|
207 |
|
|
|
208 |
|
|
type
|
209 |
|
|
Tisc_install_clear_options = function(hOption: POPTIONS_HANDLE):MSG_NO;
|
210 |
|
|
stdcall;
|
211 |
|
|
|
212 |
|
|
Tisc_install_execute = function (hOption: OPTIONS_HANDLE;
|
213 |
|
|
src_dir: TEXT;
|
214 |
|
|
dest_dir: TEXT;
|
215 |
|
|
status_func: FP_STATUS;
|
216 |
|
|
status_data: pointer;
|
217 |
|
|
error_func: FP_ERROR;
|
218 |
|
|
error_data: pointer;
|
219 |
|
|
uninstal_file_name: TEXT):MSG_NO;
|
220 |
|
|
stdcall;
|
221 |
|
|
|
222 |
|
|
Tisc_install_get_info = function (info_type :integer;
|
223 |
|
|
option :OPT;
|
224 |
|
|
info_buffer : Pointer;
|
225 |
|
|
buf_len : Cardinal): MSG_NO;
|
226 |
|
|
stdcall;
|
227 |
|
|
|
228 |
|
|
|
229 |
|
|
|
230 |
|
|
Tisc_install_get_message = function (hOption: OPTIONS_HANDLE;
|
231 |
|
|
message_no: MSG_NO;
|
232 |
|
|
message_txt: Pointer;
|
233 |
|
|
message_len: Cardinal):MSG_NO;
|
234 |
|
|
stdcall;
|
235 |
|
|
|
236 |
|
|
Tisc_install_load_external_text = function (msg_file_name: TEXT):MSG_NO;
|
237 |
|
|
stdcall;
|
238 |
|
|
|
239 |
|
|
Tisc_install_precheck = function (hOption: OPTIONS_HANDLE;
|
240 |
|
|
src_dir: TEXT;
|
241 |
|
|
dest_dir: TEXT):MSG_NO;
|
242 |
|
|
stdcall;
|
243 |
|
|
|
244 |
|
|
Tisc_install_set_option = function (hOption: POPTIONS_HANDLE;
|
245 |
|
|
option: OPT):MSG_NO;
|
246 |
|
|
stdcall;
|
247 |
|
|
|
248 |
|
|
Tisc_uninstall_execute = function (uninstall_file_name: TEXT;
|
249 |
|
|
status_func: FP_STATUS;
|
250 |
|
|
status_data: pointer;
|
251 |
|
|
error_func: FP_ERROR;
|
252 |
|
|
error_data: pointer):MSG_NO;
|
253 |
|
|
stdcall;
|
254 |
|
|
|
255 |
|
|
Tisc_uninstall_precheck = function (uninstall_file_name: TEXT):MSG_NO;
|
256 |
|
|
stdcall;
|
257 |
|
|
|
258 |
|
|
Tisc_install_unset_option = function (hOption: POPTIONS_HANDLE;
|
259 |
|
|
option: OPT):MSG_NO;
|
260 |
|
|
stdcall;
|
261 |
|
|
implementation
|
262 |
|
|
|
263 |
|
|
|
264 |
|
|
{ EXECute ....check of Install mode and call Install_execute or unistall_execute }
|
265 |
|
|
{ raise an exception on error from the dll }
|
266 |
|
|
{ call the onWarning handler on warning from DLL }
|
267 |
|
|
{ GetSpaceAvailable -- call isc_install_get_info function }
|
268 |
|
|
end.
|