Muster einer Visual Objects-Schnittstelle

 

 

//************************************************************************

//    Visual Objects 1.0 / 2.0 / 2.5 / 2.6 / 2.7 / 2.8-Schnittstelle     *

//      zu einigen Funktionen der 32 Bit Dynamic Link Library GeoDLL.    *

//     Sie muss gegebenenfalls um andere Funktionen erweitert werden.    *

//   Die Schnittstelle kann direkt in den VO Quellcode eingebaut werden  *

//        oder als Library in das VO-Resposity eingebaut werden.         *

//                                                                       *

//      Eine komplette Visual-Objects Schnittstelle steht als Datei      *

//                       geodllvo.aef zur Verfügung                      *

//                                                                       *

//                   Autor: Killet GeoSoftware Ing.-GbR                  *

//                                                                       *

//    Im Aufrufverzeichnis von GeoDLL müssen die Dateien geodll32.dll    *

//                    und geodllbn.bin vorhanden sein.                   *

//************************************************************************

 

 

_DLL FUNCTION coordtrans;

     (nCoordXQ AS REAL8,;                   // 8 Byte

     nCoordYQ AS REAL8,;                    // 8 Byte

     pszKoordQ AS PSZ,;                     // 4 Byte, char*

     nCoordSysQ AS WORD,;                   // 2 Byte

     nRefSysQ AS WORD,;                     // 2 Byte

     nCoordXZ REF REAL8,;                   // 4 Byte

     nCoordYZ REF REAL8,;                   // 4 Byte

     pszKoordZ REF PSZ,;                    // 4 Byte, char**, 16 alloc.

     nCoordSysZ AS WORD,;                   // 2 Byte

     nRefSysZ AS WORD,;                     // 2 Byte

     nStripZ AS WORD);                      // 2 Byte

AS LOGIC PASCAL:geodll32.coordtrans         // 4 Byte

// Prototyp der DLL-Funktion coordtrans() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist nur dann

// notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.

 

_DLL FUNCTION coordtrans2;

     (nCoordXQ AS REAL8,;                   // 8 Byte

     nCoordYQ AS REAL8,;                    // 8 Byte

     pszCoordQ AS PSZ,;                     // 4 Byte, char*

     nCoordSysQ AS WORD,;                   // 2 Byte

     nRefSysQ AS WORD,;                     // 2 Byte

     nCoordXZ REF REAL8,;                   // 4 Byte

     nCoordYZ REF REAL8,;                   // 4 Byte

     pszCoordZ AS PSZ,;                     // 4 Byte, char*, 16 alloc.

     nCoordSysZ AS WORD,;                   // 2 Byte

     nRefSysZ AS WORD,;                     // 2 Byte

     nStripZ AS WORD);                      // 2 Byte

AS LOGIC PASCAL:geodll32.coordtrans2        // 4 Byte

// Prototyp der DLL-Funktion coordtrans2() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist zwingend

// notwendig!

 

_DLL FUNCTION coordtrans3;

     (nCoordXQ AS REAL8,;                   // 8 Byte

     nCoordYQ AS REAL8,;                    // 8 Byte

     nCoordSysQ AS WORD,;                   // 2 Byte

     nRefSysQ AS WORD,;                     // 2 Byte

     nNotationQ AS WORD,;                   // 2 Byte

     nCoordXZ REF REAL8,;                   // 4 Byte

     nCoordYZ REF REAL8,;                   // 4 Byte

     nCoordSysZ AS WORD,;                   // 2 Byte

     nRefSysZ AS WORD,;                     // 2 Byte

     nNotationZ AS WORD,;                   // 2 Byte

     nStripZ AS WORD);                      // 2 Byte

AS LOGIC PASCAL:geodll32.coordtrans3        // 4 Byte

// Prototyp der DLL-Funktion coordtrans3() in Visual-Objects Syntax.

 

_DLL FUNCTION distancegeo;

     (nGeoLaenge1 AS REAL8,;                // 8 Byte

      nGeoBreite1 AS REAL8,;                // 8 Byte

      nGeoLaenge2 AS REAL8,;                // 8 Byte

      nGeoBreite2 AS REAL8,;                // 8 Byte

      nStrecke REF REAL8,;                  // 4 Byte

      nEllipsoid AS WORD);                  // 2 Byte

AS LOGIC PASCAL:geodll32.distancegeo        // 4 Byte

// Prototyp der DLL-Funktion distancegeo() in Visual-Objects Syntax.

 

_DLL FUNCTION distanceutm;

     (nUtmRechts1 AS REAL8,;                // 8 Byte

      nUtmHoch1 AS REAL8,;                  // 8 Byte

      nUtmRechts2 AS REAL8,;                // 8 Gyte

      nUtmHoch2 AS REAL8,;                  // 8 Byte

      nStrecke REF REAL8);                  // 4 Byte

AS LOGIC PASCAL:geodll32.distanceutm        // 4 Byte

// Prototyp der DLL-Funktion distanceutm() in Visual-Objects Syntax.

 

_DLL FUNCTION getauthor;

     (pszAuthor REF PSZ);                   // 4 Byte, char**, 200 alloc.

AS LOGIC PASCAL:geodll32.getauthor          // 4 Byte

// Prototyp der DLL-Funktion getauthor() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist nur dann

// notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.

 

_DLL FUNCTION getcoordsys;

     (wCoordSysQ AS WORD,;                  // 2 Byte

      pszCoordSys REF PSZ);                 // 4 Byte, char**, 800 alloc.

AS LOGIC PASCAL:geodll32.getcoordsys        // 4 Byte

// Prototyp der DLL-Funktion getcoordsys() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist nur dann

// notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.

 

_DLL FUNCTION getdllversion;

     (pszVersion REF PSZ);                  // 4 Byte, char**, 10 alloc.

AS LOGIC PASCAL:geodll32.getdllversion      // 4 Byte

// Prototyp der DLL-Funktion getdllversion() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist nur dann

// notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.

 

_DLL FUNCTION geterrorcode;

     (pszError REF PSZ);                    // 4 Byte, char**, 200 alloc.

AS LOGIC PASCAL:geodll32.geterrorcode       // 4 Byte

// Prototyp der DLL-Funktion geterrorcode() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist nur dann

// notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.

 

_DLL FUNCTION getlicensee;

     (pszLicensee REF PSZ);                 // 4 Byte, char**, 120 alloc.

AS LOGIC PASCAL:geodll32.getlicensee        // 4 Byte

// Prototyp der DLL-Funktion getlicensee() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist nur dann

// notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.

 

_DLL FUNCTION getrefsys;

     (wRefSysQ AS WORD,;                    // 2 Byte

      wRefSysZ AS WORD,;                    // 2 Byte

      wCoordSysQ AS WORD,;                  // 2 Byte

      wCoordSysZ AS WORD,;                  // 2 Byte

      pszRefSys REF PSZ);                   // 4 Byte, char**, 1200 alloc.

AS LOGIC PASCAL:geodll32.getrefsys          // 4 Byte

// Prototyp der DLL-Funktion getrefsys() in Visual-Objects Syntax.

// Die Allokation von Speicher für das zurückzugebende PSZ ist nur dann

// notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.

 

_DLL FUNCTION meritrans;

     (nCoordXQ AS REAL8,;                   // 8 Byte

     nCoordYQ AS REAL8,;                    // 8 Byte

     nCoordXZ REF REAL8,;                   // 4 Byte

     nCoordYZ REF REAL8,;                   // 4 Byte

     nCoordSys AS WORD,;                    // 2 Byte

     nEllipsoid AS WORD,;                   // 2 Byte

     nStrip AS WORD);                       // 2 Byte

AS LOGIC PASCAL:geodll32.meritrans          // 4 Byte

// Prototyp der DLL-Funktion meritrans() in Visual-Objects Syntax.

 

_DLL FUNCTION setcoordarea;

     (lSchalter AS LOGIC);                  // 4 Byte

AS LOGIC PASCAL:geodll32.setcoordarea       // 4 Byte

// Prototyp der DLL-Funktion setcoordarea() in Visual-Objects Syntax.

 

_DLL FUNCTION setstringallocate;

     (lSchalter AS LOGIC);                  // 4 Byte

AS LOGIC PASCAL:geodll32.setstringallocate  // 4 Byte

// Prototyp der DLL-Funktion setstringallocate() in Visual-Objects Syntax.

 

_DLL FUNCTION setunlockcode;

     (pszFreischaltcode AS PSZ,;            // 4 Byte, char*

      pszLizenznehmer AS PSZ);              // 4 Byte, char*

AS LOGIC PASCAL:geodll32.setunlockcode      // 4 Byte

// Prototyp der DLL-Funktion setunlockcode() in Visual-Objects Syntax.

 

_DLL FUNCTION setuserellsource;

     (nEllipsoid AS WORD,;                  // 2 Byte

      nHalbAchsGr AS REAL8,;                 // 8 Byte

      nHalbAchsKl AS REAL8);                 // 8 Byte

AS LOGIC PASCAL:geodll32.setuserellsource   // 4 Byte

// Prototyp der DLL-Funktion setuserellsource() in Visual-Objects Syntax.

 

_DLL FUNCTION setuserelltarget;

     (nEllipsoid AS WORD,;                  // 2 Byte

      nHalbAchsGr AS REAL8,;                 // 8 Byte

      nHalbAchsKl AS REAL8);                 // 8 Byte

AS LOGIC PASCAL:geodll32.setuserelltarget   // 4 Byte

// Prototyp der DLL-Funktion setuserelltarget() in Visual-Objects Syntax.

 

_DLL FUNCTION setuserrefsys;

     (nRefSysTyp AS WORD,;                  // 2 Byte

      nVerschX AS REAL8,;                   // 8 Byte

      nVerschY AS REAL8,;                   // 8 Byte

      nVerschZ AS REAL8,;                   // 8 Byte

      nDrehungX AS REAL8,;                  // 8 Byte

      nDrehungY AS REAL8,;                  // 8 Byte

      nDrehungZ AS REAL8,;                  // 8 Byte

      nMasstab AS REAL8);                   // 8 Byte

AS LOGIC PASCAL:geodll32.setuserrefsys      // 4 Byte

// Prototyp der DLL-Funktion setuserrefsys() in Visual-Objects Syntax.