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. |