ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/runtime/IBIntf.pas
Revision: 1
Committed: Mon Jul 31 16:43:00 2000 UTC (23 years, 8 months ago) by tony
Content type: text/x-pascal
File size: 24590 byte(s)
Log Message:
Borland IBX Open Source Release

File Contents

# User Rev Content
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     unit IBIntf;
30    
31     interface
32    
33     uses Windows, IBHeader, IBInstallHeader, IBExternals;
34    
35     var
36     BLOB_get: TBLOB_get;
37     BLOB_put: TBLOB_put;
38     isc_sqlcode: Tisc_sqlcode;
39     isc_sql_interprete: Tisc_sql_interprete;
40     isc_interprete: Tisc_interprete;
41     isc_vax_integer: Tisc_vax_integer;
42     isc_blob_info: Tisc_blob_info;
43     isc_open_blob2: Tisc_open_blob2;
44     isc_close_blob: Tisc_close_blob;
45     isc_get_segment: Tisc_get_segment;
46     isc_put_segment: Tisc_put_segment;
47     isc_create_blob2: Tisc_create_blob2;
48     isc_service_attach: Tisc_service_attach;
49     isc_service_detach: Tisc_service_detach;
50     isc_service_query: Tisc_service_query;
51     isc_service_start: Tisc_service_start;
52     isc_decode_date: Tisc_decode_date;
53     isc_decode_sql_date: Tisc_decode_sql_date;
54     isc_decode_sql_time: Tisc_decode_sql_time;
55     isc_decode_timestamp: Tisc_decode_timestamp;
56     isc_encode_date: Tisc_encode_date;
57     isc_encode_sql_date: Tisc_encode_sql_date;
58     isc_encode_sql_time: Tisc_encode_sql_time;
59     isc_encode_timestamp: Tisc_encode_timestamp;
60     isc_dsql_free_statement: Tisc_dsql_free_statement;
61     isc_dsql_execute2: Tisc_dsql_execute2;
62     isc_dsql_execute: Tisc_dsql_execute;
63     isc_dsql_set_cursor_name: Tisc_dsql_set_cursor_name;
64     isc_dsql_fetch: Tisc_dsql_fetch;
65     isc_dsql_sql_info: Tisc_dsql_sql_info;
66     isc_dsql_alloc_statement2: Tisc_dsql_alloc_statement2;
67     isc_dsql_prepare: Tisc_dsql_prepare;
68     isc_dsql_describe_bind: Tisc_dsql_describe_bind;
69     isc_dsql_describe: Tisc_dsql_describe;
70     isc_dsql_execute_immediate: Tisc_dsql_execute_immediate;
71     isc_drop_database: Tisc_drop_database;
72     isc_detach_database: Tisc_detach_database;
73     isc_attach_database: Tisc_attach_database;
74     isc_database_info: Tisc_database_info;
75     isc_start_multiple: Tisc_start_multiple;
76     isc_commit_transaction: Tisc_commit_transaction;
77     isc_commit_retaining: Tisc_commit_retaining;
78     isc_rollback_transaction: Tisc_rollback_transaction;
79     isc_rollback_retaining: Tisc_rollback_retaining;
80     isc_cancel_events: Tisc_cancel_events;
81     isc_que_events: Tisc_que_events;
82     isc_event_counts: Tisc_event_counts;
83     isc_event_block: Tisc_event_block;
84     isc_free: Tisc_free;
85     isc_add_user : Tisc_add_user;
86     isc_delete_user: Tisc_delete_user;
87     isc_modify_user: Tisc_modify_user;
88    
89     isc_install_clear_options: Tisc_install_clear_options;
90     isc_install_execute: Tisc_install_execute;
91     isc_install_get_info: Tisc_install_get_info;
92     isc_install_get_message: Tisc_install_get_message;
93     isc_install_load_external_text: Tisc_install_load_external_text;
94     isc_install_precheck: Tisc_install_precheck;
95     isc_install_set_option: Tisc_install_set_option;
96     isc_uninstall_execute: Tisc_uninstall_execute;
97     isc_uninstall_precheck: Tisc_uninstall_precheck;
98     isc_install_unset_option: Tisc_install_unset_option;
99    
100     { Library Initialization }
101     procedure LoadIBLibrary;
102     procedure FreeIBLibrary;
103     procedure LoadIBInstallLibrary;
104     procedure FreeIBInstallLibrary;
105     function TryIBLoad: Boolean;
106     procedure CheckIBLoaded;
107     function GetIBClientVersion: Integer;
108     procedure CheckIBInstallLoaded;
109    
110     { Stubs for 6.0 only functions }
111     function isc_rollback_retaining_stub(status_vector : PISC_STATUS;
112     tran_handle : PISC_TR_HANDLE):
113     ISC_STATUS; stdcall;
114     function isc_service_attach_stub(status_vector : PISC_STATUS;
115     isc_arg2 : UShort;
116     isc_arg3 : PChar;
117     service_handle : PISC_SVC_HANDLE;
118     isc_arg5 : UShort;
119     isc_arg6 : PChar):
120     ISC_STATUS; stdcall;
121     function isc_service_detach_stub(status_vector : PISC_STATUS;
122     service_handle : PISC_SVC_HANDLE):
123     ISC_STATUS; stdcall;
124     function isc_service_query_stub(status_vector : PISC_STATUS;
125     service_handle : PISC_SVC_HANDLE;
126     recv_handle : PISC_SVC_HANDLE;
127     isc_arg4 : UShort;
128     isc_arg5 : PChar;
129     isc_arg6 : UShort;
130     isc_arg7 : PChar;
131     isc_arg8 : UShort;
132     isc_arg9 : PChar):
133     ISC_STATUS; stdcall;
134     function isc_service_start_stub(status_vector : PISC_STATUS;
135     service_handle : PISC_SVC_HANDLE;
136     recv_handle : PISC_SVC_HANDLE;
137     isc_arg4 : UShort;
138     isc_arg5 : PChar):
139     ISC_STATUS; stdcall;
140    
141     procedure isc_encode_sql_date_stub(tm_date : PCTimeStructure;
142     ib_date : PISC_DATE);
143     stdcall;
144    
145     procedure isc_encode_sql_time_stub(tm_date : PCTimeStructure;
146     ib_time : PISC_TIME);
147     stdcall;
148    
149     procedure isc_encode_timestamp_stub(tm_date : PCTimeStructure;
150     ib_timestamp : PISC_TIMESTAMP);
151     stdcall;
152    
153     procedure isc_decode_sql_date_stub(ib_date : PISC_DATE;
154     tm_date : PCTimeStructure);
155     stdcall;
156    
157     procedure isc_decode_sql_time_stub(ib_time : PISC_TIME;
158     tm_date : PCTimeStructure);
159     stdcall;
160    
161     procedure isc_decode_timestamp_stub(ib_timestamp : PISC_TIMESTAMP;
162     tm_date : PCTimeStructure);
163     stdcall;
164    
165     { stubs for install functions }
166     function isc_install_clear_options_stub(hOption: POPTIONS_HANDLE):MSG_NO; stdcall;
167     function isc_install_execute_stub(hOption: OPTIONS_HANDLE;
168     src_dir: TEXT;
169     dest_dir: TEXT;
170     status_func: FP_STATUS;
171     status_data: pointer;
172     error_func: FP_ERROR;
173     error_data: pointer;
174     uninstal_file_name: TEXT):MSG_NO; stdcall;
175     function isc_install_get_info_stub(info_type :integer;
176     option :OPT;
177     info_buffer : Pointer;
178     buf_len : Cardinal): MSG_NO; stdcall;
179     function isc_install_get_message_stub(hOption: OPTIONS_HANDLE;
180     message_no: MSG_NO;
181     message_txt: Pointer;
182     message_len: Cardinal):MSG_NO; stdcall;
183     function isc_install_load_external_text_stub(msg_file_name: TEXT):MSG_NO; stdcall;
184     function isc_install_precheck_stub(hOption: OPTIONS_HANDLE;
185     src_dir: TEXT;
186     dest_dir: TEXT):MSG_NO; stdcall;
187     function isc_install_set_option_stub(hOption: POPTIONS_HANDLE;
188     option: OPT):MSG_NO; stdcall;
189     function isc_uninstall_execute_stub(uninstall_file_name: TEXT;
190     status_func: FP_STATUS;
191     status_data: pointer;
192     error_func: FP_ERROR;
193     error_data: pointer):MSG_NO; stdcall;
194     function isc_uninstall_precheck_stub(uninstall_file_name: TEXT):MSG_NO; stdcall;
195     function isc_install_unset_option_stub(hOption: POPTIONS_HANDLE;
196     option: OPT):MSG_NO; stdcall;
197    
198     implementation
199    
200     uses Sysutils, IB;
201    
202     var
203     IBLibrary: THandle;
204     IBInstallLibrary: THandle;
205     IBClientVersion: Integer;
206    
207     procedure LoadIBLibrary;
208    
209     function GetProcAddr(ProcName: PChar): Pointer;
210     begin
211     Result := GetProcAddress(IBLibrary, ProcName);
212     if not Assigned(Result) then
213     RaiseLastWin32Error;
214     end;
215    
216     begin
217     IBLibrary := LoadLibrary(PChar(IBASE_DLL));
218     if (IBLibrary > HINSTANCE_ERROR) then
219     begin
220     BLOB_get := GetProcAddr('BLOB_get'); {do not localize}
221     BLOB_put := GetProcAddr('BLOB_put'); {do not localize}
222     isc_sqlcode := GetProcAddr('isc_sqlcode'); {do not localize}
223     isc_sql_interprete := GetProcAddr('isc_sql_interprete'); {do not localize}
224     isc_interprete := GetProcAddr('isc_interprete'); {do not localize}
225     isc_vax_integer := GetProcAddr('isc_vax_integer'); {do not localize}
226     isc_blob_info := GetProcAddr('isc_blob_info'); {do not localize}
227     isc_open_blob2 := GetProcAddr('isc_open_blob2'); {do not localize}
228     isc_close_blob := GetProcAddr('isc_close_blob'); {do not localize}
229     isc_get_segment := GetProcAddr('isc_get_segment'); {do not localize}
230     isc_put_segment := GetProcAddr('isc_put_segment'); {do not localize}
231     isc_create_blob2 := GetProcAddr('isc_create_blob2'); {do not localize}
232     isc_decode_date := GetProcAddr('isc_decode_date'); {do not localize}
233     isc_encode_date := GetProcAddr('isc_encode_date'); {do not localize}
234     isc_dsql_free_statement := GetProcAddr('isc_dsql_free_statement'); {do not localize}
235     isc_dsql_execute2 := GetProcAddr('isc_dsql_execute2'); {do not localize}
236     isc_dsql_execute := GetProcAddr('isc_dsql_execute'); {do not localize}
237     isc_dsql_set_cursor_name := GetProcAddr('isc_dsql_set_cursor_name'); {do not localize}
238     isc_dsql_fetch := GetProcAddr('isc_dsql_fetch'); {do not localize}
239     isc_dsql_sql_info := GetProcAddr('isc_dsql_sql_info'); {do not localize}
240     isc_dsql_alloc_statement2 := GetProcAddr('isc_dsql_alloc_statement2'); {do not localize}
241     isc_dsql_prepare := GetProcAddr('isc_dsql_prepare'); {do not localize}
242     isc_dsql_describe_bind := GetProcAddr('isc_dsql_describe_bind'); {do not localize}
243     isc_dsql_describe := GetProcAddr('isc_dsql_describe'); {do not localize}
244     isc_dsql_execute_immediate := GetProcAddr('isc_dsql_execute_immediate'); {do not localize}
245     isc_drop_database := GetProcAddr('isc_drop_database'); {do not localize}
246     isc_detach_database := GetProcAddr('isc_detach_database'); {do not localize}
247     isc_attach_database := GetProcAddr('isc_attach_database'); {do not localize}
248     isc_database_info := GetProcAddr('isc_database_info'); {do not localize}
249     isc_start_multiple := GetProcAddr('isc_start_multiple'); {do not localize}
250     isc_commit_transaction := GetProcAddr('isc_commit_transaction'); {do not localize}
251     isc_commit_retaining := GetProcAddr('isc_commit_retaining'); {do not localize}
252     isc_rollback_transaction := GetProcAddr('isc_rollback_transaction'); {do not localize}
253     isc_cancel_events := GetProcAddr('isc_cancel_events'); {do not localize}
254     isc_que_events := GetProcAddr('isc_que_events'); {do not localize}
255     isc_event_counts := GetProcAddr('isc_event_counts'); {do not localize}
256     isc_event_block := GetProcAddr('isc_event_block'); {do not localize}
257     isc_free := GetProcAddr('isc_free'); {do not localize}
258     isc_add_user := GetProcAddr('isc_add_user'); {do not localize}
259     isc_delete_user := GetProcAddr('isc_delete_user'); {do not localize}
260     isc_modify_user := GetProcAddr('isc_modify_user'); {do not localize}
261    
262     IBClientVersion := 6;
263     isc_rollback_retaining := GetProcAddress(IBLibrary, 'isc_rollback_retaining'); {do not localize}
264     if Assigned(isc_rollback_retaining) then
265     begin
266     isc_service_attach := GetProcAddr('isc_service_attach'); {do not localize}
267     isc_service_detach := GetProcAddr('isc_service_detach'); {do not localize}
268     isc_service_query := GetProcAddr('isc_service_query'); {do not localize}
269     isc_service_start := GetProcAddr('isc_service_start'); {do not localize}
270     isc_decode_sql_date := GetProcAddr('isc_decode_sql_date'); {do not localize}
271     isc_decode_sql_time := GetProcAddr('isc_decode_sql_time'); {do not localize}
272     isc_decode_timestamp := GetProcAddr('isc_decode_timestamp'); {do not localize}
273     isc_encode_sql_date := GetProcAddr('isc_encode_sql_date'); {do not localize}
274     isc_encode_sql_time := GetProcAddr('isc_encode_sql_time'); {do not localize}
275     isc_encode_timestamp := GetProcAddr('isc_encode_timestamp'); {do not localize}
276     end else
277     begin
278     IBClientVersion := 5;
279     isc_rollback_retaining := isc_rollback_retaining_stub;
280     isc_service_attach := isc_service_attach_stub;
281     isc_service_detach := isc_service_detach_stub;
282     isc_service_query := isc_service_query_stub;
283     isc_service_start := isc_service_start_stub;
284     isc_decode_sql_date := isc_decode_sql_date_stub;
285     isc_decode_sql_time := isc_decode_sql_time_stub;
286     isc_decode_timestamp := isc_decode_timestamp_stub;
287     isc_encode_sql_date := isc_encode_sql_date_stub;
288     isc_encode_sql_time := isc_encode_sql_time_stub;
289     isc_encode_timestamp := isc_encode_timestamp_stub;
290     end;
291     end;
292     end;
293    
294     procedure FreeIBLibrary;
295     begin
296     if IBLibrary > HINSTANCE_ERROR then
297     begin
298     FreeLibrary(IBLibrary);
299     IBLibrary := 0;
300     end;
301     end;
302    
303     procedure LoadIBInstallLibrary;
304    
305     function GetProcAddr(ProcName: PChar): Pointer;
306     begin
307     Result := GetProcAddress(IBInstallLibrary, ProcName);
308     if not Assigned(Result) then RaiseLastWin32Error;
309     end;
310    
311     begin
312     IBInstallLibrary := LoadLibrary(PChar(IB_INSTALL_DLL));
313     if (IBInstallLibrary > HINSTANCE_ERROR) then
314     begin
315     isc_install_clear_options := GetProcAddr('isc_install_clear_options'); {do not localize}
316     isc_install_execute := GetProcAddr('isc_install_execute'); {do not localize}
317     isc_install_get_info := GetProcAddr('isc_install_get_info'); {do not localize}
318     isc_install_get_message := GetProcAddr('isc_install_get_message'); {do not localize}
319     isc_install_load_external_text := GetProcAddr('isc_install_load_external_text'); {do not localize}
320     isc_install_precheck := GetProcAddr('isc_install_precheck'); {do not localize}
321     isc_install_set_option := GetProcAddr('isc_install_set_option'); {do not localize}
322     isc_uninstall_execute := GetProcAddr('isc_uninstall_execute'); {do not localize}
323     isc_uninstall_precheck := GetProcAddr('isc_uninstall_precheck'); {do not localize}
324     isc_install_unset_option := GetProcAddr('isc_install_unset_option'); {do not localize}
325     end
326     else begin
327     isc_install_clear_options := isc_install_clear_options_stub;
328     isc_install_execute := isc_install_execute_stub;
329     isc_install_get_info := isc_install_get_info_stub;
330     isc_install_get_message := isc_install_get_message_stub;
331     isc_install_load_external_text := isc_install_load_external_text_stub;
332     isc_install_precheck := isc_install_precheck_stub;
333     isc_install_set_option := isc_install_set_option_stub;
334     isc_uninstall_execute := isc_uninstall_execute_stub;
335     isc_uninstall_precheck := isc_uninstall_precheck_stub;
336     isc_install_unset_option := isc_install_unset_option_stub;
337     end;
338     end;
339    
340     procedure FreeIBInstallLibrary;
341     begin
342     if IBInstallLibrary > HINSTANCE_ERROR then
343     begin
344     FreeLibrary(IBInstallLibrary);
345     IBInstallLibrary := 0;
346     end;
347     end;
348    
349     function TryIBLoad: Boolean;
350     begin
351     if (IBLibrary <= HINSTANCE_ERROR) then
352     LoadIBLibrary;
353     if (IBLibrary <= HINSTANCE_ERROR) then
354     result := False
355     else
356     result := True;
357     end;
358    
359     procedure CheckIBLoaded;
360     begin
361     if not TryIBLoad then
362     IBError(ibxeInterBaseMissing, [nil]);
363     end;
364    
365     function GetIBClientVersion: Integer;
366     begin
367     CheckIBLoaded;
368     result := IBClientVersion;
369     end;
370    
371     procedure CheckIBInstallLoaded;
372     begin
373     if (IBInstallLibrary <= HINSTANCE_ERROR) then
374     LoadIBInstallLibrary;
375     if (IBInstallLibrary <= HINSTANCE_ERROR) then
376     IBError(ibxeInterBaseInstallMissing, [nil]);
377     end;
378    
379     function isc_rollback_retaining_stub(status_vector : PISC_STATUS;
380     tran_handle : PISC_TR_HANDLE):
381     ISC_STATUS; stdcall;
382     begin
383     Result := 0;
384     IBError(ibxeIB60feature, ['isc_rollback_retaining']); {do not localize}
385     end;
386    
387     function isc_service_attach_stub(status_vector : PISC_STATUS;
388     isc_arg2 : UShort;
389     isc_arg3 : PChar;
390     service_handle : PISC_SVC_HANDLE;
391     isc_arg5 : UShort;
392     isc_arg6 : PChar):
393     ISC_STATUS; stdcall;
394     begin
395     Result := 0;
396     IBError(ibxeIB60feature, ['isc_service_attach']); {do not localize}
397     end;
398    
399     function isc_service_detach_stub(status_vector : PISC_STATUS;
400     service_handle : PISC_SVC_HANDLE):
401     ISC_STATUS; stdcall;
402     begin
403     Result := 0;
404     IBError(ibxeIB60feature, ['isc_service_detach']); {do not localize}
405     end;
406    
407     function isc_service_query_stub(status_vector : PISC_STATUS;
408     service_handle : PISC_SVC_HANDLE;
409     recv_handle : PISC_SVC_HANDLE;
410     isc_arg4 : UShort;
411     isc_arg5 : PChar;
412     isc_arg6 : UShort;
413     isc_arg7 : PChar;
414     isc_arg8 : UShort;
415     isc_arg9 : PChar):
416     ISC_STATUS; stdcall;
417     begin
418     Result := 0;
419     IBError(ibxeIB60feature, ['isc_service_query']); {do not localize}
420     end;
421    
422     function isc_service_start_stub(status_vector : PISC_STATUS;
423     service_handle : PISC_SVC_HANDLE;
424     recv_handle : PISC_SVC_HANDLE;
425     isc_arg4 : UShort;
426     isc_arg5 : PChar):
427     ISC_STATUS; stdcall;
428     begin
429     Result := 0;
430     IBError(ibxeIB60feature, ['isc_service_start']); {do not localize}
431     end;
432    
433     procedure isc_encode_sql_date_stub(tm_date : PCTimeStructure;
434     ib_date : PISC_DATE);
435     stdcall;
436     begin
437     IBError(ibxeIB60feature, ['isc_encode_sql_date']); {do not localize}
438     end;
439    
440     procedure isc_encode_sql_time_stub(tm_date : PCTimeStructure;
441     ib_time : PISC_TIME);
442     stdcall;
443     begin
444     IBError(ibxeIB60feature, ['isc_encode_sql_time']); {do not localize}
445     end;
446    
447     procedure isc_encode_timestamp_stub(tm_date : PCTimeStructure;
448     ib_timestamp : PISC_TIMESTAMP);
449     stdcall;
450     begin
451     IBError(ibxeIB60feature, ['isc_encode_sql_timestamp']); {do not localize}
452     end;
453    
454     procedure isc_decode_sql_date_stub(ib_date : PISC_DATE;
455     tm_date : PCTimeStructure);
456     stdcall;
457     begin
458     IBError(ibxeIB60feature, ['isc_decode_sql_date']); {do not localize}
459     end;
460    
461     procedure isc_decode_sql_time_stub(ib_time : PISC_TIME;
462     tm_date : PCTimeStructure);
463     stdcall;
464     begin
465     IBError(ibxeIB60feature, ['isc_decode_sql_time']); {do not localize}
466     end;
467    
468     procedure isc_decode_timestamp_stub(ib_timestamp : PISC_TIMESTAMP;
469     tm_date : PCTimeStructure);
470     stdcall;
471     begin
472     IBError(ibxeIB60feature, ['isc_decode_timestamp']); {do not localize}
473     end;
474    
475     function isc_install_clear_options_stub(hOption: POPTIONS_HANDLE):MSG_NO; stdcall;
476     begin
477     Result := 0;
478     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
479     end;
480    
481     function isc_install_execute_stub(hOption: OPTIONS_HANDLE;
482     src_dir: TEXT;
483     dest_dir: TEXT;
484     status_func: FP_STATUS;
485     status_data: pointer;
486     error_func: FP_ERROR;
487     error_data: pointer;
488     uninstal_file_name: TEXT):MSG_NO; stdcall;
489     begin
490     Result := 0;
491     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
492     end;
493    
494     function isc_install_get_info_stub(info_type :integer;
495     option :OPT;
496     info_buffer : Pointer;
497     buf_len : Cardinal): MSG_NO; stdcall;
498     begin
499     Result := 0;
500     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
501     end;
502    
503     function isc_install_get_message_stub(hOption: OPTIONS_HANDLE;
504     message_no: MSG_NO;
505     message_txt: Pointer;
506     message_len: Cardinal):MSG_NO; stdcall;
507     begin
508     Result := 0;
509     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
510     end;
511    
512     function isc_install_load_external_text_stub(msg_file_name: TEXT):MSG_NO; stdcall;
513     begin
514     Result := 0;
515     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
516     end;
517    
518     function isc_install_precheck_stub(hOption: OPTIONS_HANDLE;
519     src_dir: TEXT;
520     dest_dir: TEXT):MSG_NO; stdcall;
521     begin
522     Result := 0;
523     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
524     end;
525    
526     function isc_install_set_option_stub(hOption: POPTIONS_HANDLE;
527     option: OPT):MSG_NO; stdcall;
528     begin
529     Result := 0;
530     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
531     end;
532    
533     function isc_uninstall_execute_stub(uninstall_file_name: TEXT;
534     status_func: FP_STATUS;
535     status_data: pointer;
536     error_func: FP_ERROR;
537     error_data: pointer):MSG_NO; stdcall;
538     begin
539     Result := 0;
540     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
541     end;
542    
543     function isc_uninstall_precheck_stub(uninstall_file_name: TEXT):MSG_NO; stdcall;
544     begin
545     Result := 0;
546     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
547     end;
548    
549     function isc_install_unset_option_stub(hOption: POPTIONS_HANDLE;
550     option: OPT):MSG_NO; stdcall;
551     begin
552     Result := 0;
553     IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
554     end;
555    
556     initialization
557    
558     finalization
559     FreeIBLibrary;
560     FreeIBInstallLibrary;
561     end.