www.pudn.com > mitab-1.5.1.zip > mitab_cdecl.pas


{********************************************************************** 
 * $Id: mitab_cdecl.pas,v 1.7 2004/07/07 22:10:32 dmorissette Exp $ 
 * 
 * Name:     mitab_cdecl.pas 
 * Project:  MapInfo TAB Read/Write library 
 * Language: Pascal 
 * Purpose:  Pascal interface unit for MITAB API prototypes using CDECL 
 *           calling convention. Used with MITAB dll compiled without 
 *           the /Gz qualifier. 
 * Author:   Bo Thomsen, bvt@sns.dk 
 * 
 ********************************************************************** 
 * Copyright (c) 2002, Bo Thomsen 
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a 
 * copy of this software and associated documentation files (the "Software"), 
 * to deal in the Software without restriction, including without limitation 
 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
 * and/or sell copies of the Software, and to permit persons to whom the 
 * Software is furnished to do so, subject to the following conditions: 
 * 
 * The above copyright notice and this permission notice shall be included 
 * in all copies or substantial portions of the Software. 
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 * DEALINGS IN THE SOFTWARE. 
 ********************************************************************** 
 * 
 * $Log: mitab_cdecl.pas,v $ 
 * Revision 1.7  2004/07/07 22:10:32  dmorissette 
 * Update for 1.3.0 release by BVT 
 * 
 * Revision 1.7  2004/07/06 18:51:00  bvt 
 * Added declaration for: 
 * mitab_c_load_coordsys_table 
 * mitab_c_get_extended_mif_coordsys 
 * mitab_c_get_extended_mif_coordsys_vb 
 * mitab_c_get_feature_count 
 * mitab_c_get_field_as_double 
 * 
 * Revision 1.6  2003/08/07 18:51:00  dmorissette 
 * Added mitab_c_getlibversion declaration (BVT - Bug 21) 
 * 
 * Revision 1.5  2003/07/29 14:39:26  dmorissette 
 * Update for v1.2.4 from BVT (mitab_c_add_field declaration changed) 
 * 
 * Revision 1.5  2003/07/29 13:53:11  daniel 
 * Update for v1.2.4 from BVT (mitab_c_add_field declaration changed) 
 * 
 * Revision 1.4  2002/08/01 13:53:11  daniel 
 * Update for v1.2.2 from BVT 
 * 
 * Revision 1.4  2002/07/07 22:04:22  bvt 
 * Added declaration for mitab_c_is_interior_ring 
 * 
 * Revision 1.3  2002/05/09 22:04:22  daniel 
 * Added missing TABFC_MultiPoint=10 
 * 
 * Revision 1.2  2002/05/08 20:23:53  daniel 
 * Update from Bo, and re-re-renamed mitab_vb.dll to mitab.dll (stdcall is default now) 
 * 
 * Revision 1.21  2002/05/07 13:43:30  bvt 
 * Changed the pas file name to mitab.pas to reflect the name of the dll. 
 * 
 * Revision 1.2  2002/05/05 13:43:30  bvt 
 * Added mitab_c_get_field_width and mitab_c_get_field_precision to api. 
 * 
 * Revision 1.1  2002/02/22 13:43:30  daniel 
 * Initial Revision from Bo Thomsen 
 * 
 * Revision 1.00  2002/02/20 12:35:00  bvt 
 * New - used in conjunction with mitab_capi.cpp,v 1.15 compiled without 
 * /Gz (cdecl calling convention) 
 * 
 *} 
 
unit Mitab_cdecl; 
 
interface 
 
Type 
 
  mitab_handle = Longword; 
  mitab_feature = Longword; 
  mitab_projinfo = Longword; 
 
const 
 
// feature type values 
  TABFC_NoGeom      = 0; 
  TABFC_Point       = 1; 
  TABFC_FontPoint   = 2; 
  TABFC_CustomPoint = 3; 
  TABFC_Text        = 4; 
  TABFC_Polyline    = 5; 
  TABFC_Arc         = 6; 
  TABFC_Region      = 7; 
  TABFC_Rectangle   = 8; 
  TABFC_Ellipse     = 9; 
  TABFC_MultiPoint  = 10; 
 
// field types 
  TABFT_Char        = 1; 
  TABFT_Integer     = 2; 
  TABFT_SmallInt    = 3; 
  TABFT_Decimal     = 4; 
  TABFT_Float       = 5; 
  TABFT_Date        = 6; 
  TABFT_Logical     = 7; 
 
// text justification 
  TABTJ_Left        = 0; 
  TABTJ_Center      = 1; 
  TABTJ_Right       = 2; 
 
// text spacing 
  TABTS_Single      = 0; 
  TABTS_1_5         = 1; 
  TABTS_Double      = 2; 
 
// test linetype 
  TABTL_NoLine      = 0; 
  TABTL_Simple      = 1; 
  TABTL_Arrow       = 2; 
 
const 
 
  DLL = 'mitab_cdecl.dll'; 
  Libversion = 1002004; 
 
function  mitab_c_add_field              (handle: mitab_handle; field_name: pchar;field_type, width, precision, indexed, unique: longint): longint;             cdecl; external DLL Name 'mitab_c_add_field'               ; 
procedure mitab_c_close                  (handle: mitab_handle);                                                                                                cdecl; external DLL Name 'mitab_c_close'                   ; 
function  mitab_c_create                 (filename, mif_or_tab, mif_projectiondef: pchar; north, south, east, west: double): mitab_handle;                      cdecl; external DLL Name 'mitab_c_create'                  ; 
function  mitab_c_create_feature         (handle: mitab_handle; feature_type: longint): mitab_feature;                                                          cdecl; external DLL Name 'mitab_c_create_feature'          ; 
procedure mitab_c_destroy_feature        (feature: mitab_feature);                                                                                              cdecl; external DLL Name 'mitab_c_destroy_feature'         ; 
function  mitab_c_get_brush_bgcolor      (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_brush_bgcolor'       ; 
function  mitab_c_get_brush_fgcolor      (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_brush_fgcolor'       ; 
function  mitab_c_get_brush_pattern      (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_brush_pattern'       ; 
function  mitab_c_get_brush_transparent  (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_brush_transparent'   ; 
function  mitab_c_get_field_as_string_vb (feature: mitab_feature; field: longint; value: pchar; l: longint): longint;                                           cdecl; external DLL Name 'mitab_c_get_field_as_string_vb'  ; 
function  mitab_c_get_field_as_string    (feature: mitab_feature; field: longint): pchar;                                                                       cdecl; external DLL Name 'mitab_c_get_field_as_string'     ; 
function  mitab_c_get_field_count        (handle: mitab_handle): longint;                                                                                       cdecl; external DLL Name 'mitab_c_get_field_count'         ; 
function  mitab_c_get_field_name_vb      (handle: mitab_handle; field: longint; name: pchar; l: longint): longint;                                              cdecl; external DLL Name 'mitab_c_get_field_name_vb'       ; 
function  mitab_c_get_field_name         (handle: mitab_handle; field: longint): pchar;                                                                         cdecl; external DLL Name 'mitab_c_get_field_name'          ; 
function  mitab_c_get_field_type         (handle: mitab_handle; field: longint): longint;                                                                       cdecl; external DLL Name 'mitab_c_get_field_type'          ; 
function  mitab_c_get_font_vb            (feature: mitab_feature; font: pchar; l: longint): longint;                                                            cdecl; external DLL Name 'mitab_c_get_font_vb'             ; 
function  mitab_c_get_font               (feature: mitab_feature): pchar;                                                                                       cdecl; external DLL Name 'mitab_c_get_font'                ; 
function  mitab_c_getlibversion          (): longint;                                                                                                           cdecl; external DLL Name 'mitab_c_getlibversion'           ; 
function  mitab_c_get_mif_coordsys_vb    (dataset: mitab_handle; coordsys: pchar; l: longint): longint;                                                         cdecl; external DLL Name 'mitab_c_get_mif_coordsys_vb'     ; 
function  mitab_c_get_extended_mif_coordsys_vb (dataset: mitab_handle; coordsys: pchar; l: longint): longint;                                                   cdecl; external DLL Name 'mitab_c_get_extended_mif_coordsys_vb'; 
function  mitab_c_get_mif_coordsys       (dataset: mitab_handle): pchar;                                                                                        cdecl; external DLL Name 'mitab_c_get_mif_coordsys'        ; 
function  mitab_c_get_parts              (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_parts'               ; 
function  mitab_c_get_pen_color          (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_pen_color'           ; 
function  mitab_c_get_pen_pattern        (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_pen_pattern'         ; 
function  mitab_c_get_pen_width          (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_pen_width'           ; 
function  mitab_c_get_projinfo           (dataset: mitab_handle): mitab_projinfo;                                                                               cdecl; external DLL Name 'mitab_c_get_projinfo'            ; 
function  mitab_c_get_symbol_color       (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_symbol_color'        ; 
function  mitab_c_get_symbol_no          (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_symbol_no'           ; 
function  mitab_c_get_symbol_size        (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_symbol_size'         ; 
function  mitab_c_get_text_vb            (feature: mitab_feature; text: pchar; l: longint): longint;                                                            cdecl; external DLL Name 'mitab_c_get_text_vb'             ; 
function  mitab_c_get_text               (feature: mitab_feature): pchar;                                                                                       cdecl; external DLL Name 'mitab_c_get_text'                ; 
function  mitab_c_get_text_angle         (feature: mitab_feature): double;                                                                                      cdecl; external DLL Name 'mitab_c_get_text_angle'          ; 
function  mitab_c_get_text_bgcolor       (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_text_bgcolor'        ; 
function  mitab_c_get_text_fgcolor       (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_text_fgcolor'        ; 
function  mitab_c_get_text_height        (feature: mitab_feature): double;                                                                                      cdecl; external DLL Name 'mitab_c_get_text_height'         ; 
function  mitab_c_get_text_justification (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_text_justification'  ; 
function  mitab_c_get_text_linetype      (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_text_linetype'       ; 
function  mitab_c_get_text_spacing       (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_text_spacing'        ; 
function  mitab_c_get_text_width         (feature: mitab_feature): double;                                                                                      cdecl; external DLL Name 'mitab_c_get_text_width'          ; 
function  mitab_c_get_type               (feature: mitab_feature): longint;                                                                                     cdecl; external DLL Name 'mitab_c_get_type'                ; 
function  mitab_c_get_vertex_count       (feature: mitab_feature; part: longint): longint;                                                                      cdecl; external DLL Name 'mitab_c_get_vertex_count'        ; 
function  mitab_c_get_vertex_x           (feature: mitab_feature; part, vertex: longint): double;                                                               cdecl; external DLL Name 'mitab_c_get_vertex_x'            ; 
function  mitab_c_get_vertex_y           (feature: mitab_feature; part, vertex: longint): double;                                                               cdecl; external DLL Name 'mitab_c_get_vertex_y'            ; 
function  mitab_c_getlasterrormsg_vb     (errormsg: pchar; l: longint): longint;                                                                                cdecl; external DLL Name 'mitab_c_getlasterrormsg_vb'      ; 
function  mitab_c_getlasterrormsg        (): pchar;                                                                                                             cdecl; external DLL Name 'mitab_c_getlasterrormsg'         ; 
function  mitab_c_getlasterrorno         (): longint;                                                                                                           cdecl; external DLL Name 'mitab_c_getlasterrorno'          ; 
function  mitab_c_next_feature_id        (handle: mitab_handle; last_feature_id: longint): longint;                                                             cdecl; external DLL Name 'mitab_c_next_feature_id'         ; 
function  mitab_c_open                   (filename: pchar): mitab_handle;                                                                                       cdecl; external DLL Name 'mitab_c_open'                    ; 
function  mitab_c_read_feature           (handle:  mitab_handle; feature_id: longint): mitab_feature;                                                           cdecl; external DLL Name 'mitab_c_read_feature'            ; 
procedure mitab_c_set_arc                (feature: mitab_feature; center_x, center_y, x_radius, y_radius, start_angle, end_angle: double);                      cdecl; external DLL Name 'mitab_c_set_arc'                 ; 
procedure mitab_c_set_brush              (feature: mitab_feature; fg_color, bg_color, pattern, transparent: longint);                                           cdecl; external DLL Name 'mitab_c_set_brush'               ; 
procedure mitab_c_set_field              (feature: mitab_feature; field_index: longint; value: pchar);                                                          cdecl; external DLL Name 'mitab_c_set_field'               ; 
procedure mitab_c_set_font               (feature: mitab_feature; font_name: pchar);                                                                            cdecl; external DLL Name 'mitab_c_set_font'                ; 
procedure mitab_c_set_pen                (feature: mitab_feature; width, pattern, color: longint);                                                              cdecl; external DLL Name 'mitab_c_set_pen'                 ; 
procedure mitab_c_set_points             (feature: mitab_feature; part, vertex_count: longint; var x,y: double);                                                cdecl; external DLL Name 'mitab_c_set_points'              ; 
function  mitab_c_set_projinfo           (dataset: mitab_handle; projinfo: mitab_projinfo): longint;                                                            cdecl; external DLL Name 'mitab_c_set_projinfo'            ; 
procedure mitab_c_set_symbol             (feature: mitab_feature; symbol_no, symbol_size, symbol_color: longint);                                               cdecl; external DLL Name 'mitab_c_set_symbol'              ; 
procedure mitab_c_set_text               (feature: mitab_feature; text: pchar);                                                                                 cdecl; external DLL Name 'mitab_c_set_text'                ; 
procedure mitab_c_set_text_display       (feature: mitab_feature; angle, height, width: double; fg_color, bg_color, justification, spacing, linetype: longint); cdecl; external DLL Name 'mitab_c_set_text_display'        ; 
function  mitab_c_write_feature          (handle: mitab_handle; feature: mitab_feature): longint;                                                               cdecl; external DLL Name 'mitab_c_write_feature'           ; 
function  mitab_c_get_field_width        (handle: mitab_handle; field: longint): longint;                                                                       cdecl; external DLL Name 'mitab_c_get_field_width'         ;               
function  mitab_c_get_field_precision    (handle: mitab_handle; field: longint): longint;                                                                       cdecl; external DLL Name 'mitab_c_get_field_precision'     ; 
function  mitab_c_is_interior_ring       (feature: mitab_feature; requestedringindex: longint): longint;                                                        cdecl; external DLL Name 'mitab_c_is_interior_ring'        ; 
function  mitab_c_load_coordsys_table    (filename: pchar): longint;                                                                                            cdecl; external DLL Name 'mitab_c_load_coordsys_table'     ; 
function  mitab_c_get_extended_mif_coordsys (dataset: mitab_handle): pchar;                                                                                     cdecl; external DLL Name 'mitab_c_get_extended_mif_coordsys'; 
function  mitab_c_get_feature_count      (handle: mitab_handle): longint;                                                                                       cdecl; external DLL Name 'mitab_c_get_feature_count'       ; 
function  mitab_c_get_field_as_double    (feature: mitab_feature; field: longint): double;                                                                      cdecl; external DLL Name 'mitab_c_get_field_as_double'     ; 
 
implementation 
end.