Sample of a Visual Objects interface

 

 

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

//Sample of a Visual Objects 1.0 / 2.0 / 2.5 / 2.6 / 2.7 / 2.8 interface *

//     for some functions of the 32 bit Dynamic Link Library GeoDLL      *

//   The interface must be extended for other functions if necessary.    *

//     The interface can be included in the VO source code directly.     *

//                                                                       *

//    A complete-Objects interface is available as file geodllvo.aef.    *

//                                                                       *

//                 Author: Killet GeoSoftware Ing.-GbR                   *

//                                                                       *

//      In the calling directory of GeoDLL the files geodll32.dll        *

//                  and geodllbn.bin must be present.                    *

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

 

 

_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

// Prototype of the DLL function coordtrans() in Visual Objects syntax.

// The allocation of memory for the psz to return is necessary only if

// setstringallocate(FALSE) is called before.

 

_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

// Prototype of the DLL function coordtrans2() in Visual Objects syntax.

// The allocation of memory for the psz which can be returned is

// compellingly necessary!

 

_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

// Prototype of the DLL function 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

// Prototype of the DLL function 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

// Prototype of the DLL function distanceutm() in Visual Objects syntax.

 

_DLL FUNCTION getauthor;

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

AS LOGIC PASCAL:geodll32.getauthor          // 4 Byte

// Prototype of the DLL function getauthor() in Visual Objects syntax.

// The allocation of memory for the psz to return is necessary only if

// setstringallocate(FALSE) is called before.

 

_DLL FUNCTION getcoordsys;

     (wCoordSysQ AS WORD,;                  // 2 Byte

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

AS LOGIC PASCAL:geodll32.getcoordsys        // 4 Byte

// Prototype of the DLL function getcoordsys() in Visual Objects syntax.

// The allocation of memory for the psz to return is necessary only if

// setstringallocate(FALSE) is called before.

 

_DLL FUNCTION getdllversion;

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

AS LOGIC PASCAL:geodll32.getdllversion      // 4 Byte

// Prototype of the DLL function getcoordsys() in Visual Objects syntax.

// The allocation of memory for the psz to return is necessary only if

// setstringallocate(FALSE) is called before.

 

_DLL FUNCTION geterrorcode;

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

AS LOGIC PASCAL:geodll32.geterrorcode       // 4 Byte

// Prototype of the DLL function geterrorcode() in Visual Objects syntax.

// The allocation of memory for the psz to return is necessary only if

// setstringallocate(FALSE) is called before.

 

_DLL FUNCTION getlicensee;

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

AS LOGIC PASCAL:geodll32.getlicensee        // 4 Byte

// Prototype of the DLL function getlicensee() in Visual Objects syntax.

// The allocation of memory for the psz to return is necessary only if

// setstringallocate(FALSE) is called before.

 

_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

// Prototype of the DLL function getrefsys() in Visual Objects syntax.

// The allocation of memory for the psz to return is necessary only if

// setstringallocate(FALSE) is called before.

 

_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

// Prototype of the DLL function meritrans() in Visual Objects syntax.

 

_DLL FUNCTION setcoordarea;

     (lSchalter AS LOGIC);                  // 4 Byte

AS LOGIC PASCAL:geodll32.setcoordarea       // 4 Byte

// Prototype of the DLL function setcoordarea() in Visual Objects syntax.

 

_DLL FUNCTION setstringallocate;

     (lSchalter AS LOGIC);                  // 4 Byte

AS LOGIC PASCAL:geodll32.setstringallocate  // 4 Byte

// Prototype of the DLL function 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

// Prototype of the DLL function 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

// Prototype of the DLL function setunlockcode() 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

// Prototype of the DLL function setuserellsource() 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

// Prototype of the DLL function setuserrefsys() in Visual-Objects Syntax.