#if !defined(HVSCODE_H) #define HVSCODE_H #include <cstdio> #include <assert.h> #include <malloc.h> //For VB sKopp 08Mar05 #include <windows.h> #if !defined HVSCODEDLL_API #define HVSCODEDLL_API __declspec(dllexport) #endif /* ------------------------------------------------------------ */ /* Lokale Definitionen: */ #define HVS_MDB "\\hlg_zellko.mdb" #define LEN_HAUS_ZUSATZ 8 #define MAX_FIELD_NUM 16 #define MAX_FIELD_LEN 64 #define MAX_TYPEN 30 #define MAX_TYP_VERWEISE 200 #define MAXLEVEL 8 #define LEN_DEPOT_NBR 4 #define FIELD_SEP '\t' #define FIELD_SEP_STR "\t" #define FIELD_EMPTY "_" #define OK 0 #define NOK -1 #define LAND_DEU "DEU" #define LAND_AUT "AUT" #define POSTF "POSTFACH" #define STRLEN(xxx) (sizeof(xxx)-1) #define STRSET(to, len, from) { strncpy(to, from, len); to[len] = '\0'; } /* ------------------------------------------------------------ */ /* Definitions / PreProcessorMacros: */ #ifndef NULL # define NULL ((void *) 0) #endif #ifdef __STDC__ # define HvsConst const #else /*!__STDC__*/ # define HvsConst #endif /*!__STDC__*/ /* ------------------------------------------------------------ */ /* Datentypen: */ /* ------------------------------------------------------------ */ /* Lokale Datentypen: */ typedef struct { int iLen; int iAlc; char * pszText; } String; #define STRING_INIT { 0, 0, NULL } //typedef char HvsStr2[2*sizeof(HvsStr)]; typedef struct { char * pszLkz; char * pszPlz; char * pszOrt; char * pszStr; char * pszZlw; char * pszHaus1; char * pszZus1; char * pszHausN; char * pszZusN; } HvsKey; typedef unsigned char HvsChr; typedef enum { HvsFalse = 0, HvsTrue = 1 } HvsBool; typedef enum { HvsRcOK = 0, /* Alles OK */ HvsRcNoFind, /* TEZE nicht gefunden , PLZ o.k. */ HvsRcNullPlz, /* Codierung KO wegen PLZ ,nächsthöhere PLZ verwendet */ HvsRcLkzInval, /* Länderkennzeichen ungültig */ HvsRcVersionError, /* Versionsfehler (PLZ ungleich STR oder leer) */ HvsRcNYI, /* Funktion gibt's nicht */ HvsRcPostfach, /* keine Teze wg. Postfach */ HvsRcOutOfSpace, /* m(re)alloc hat ein Problem! */ HvsRcOpenFailed, /* Datei nicht gefunden */ HvsRcSqlError, /* allgemeiner SQL Fehler */ HvsRcMax /* Kommt nicht vor. Anzahl RCs! */ } HvsRc; typedef struct { long lRc[HvsRcMax]; long lLoadStr; long lLoadPlz; double dLoadsPerSecond; long lCalls; long lHits; long lDupKey; long lStdOrt; long lStdStr; } HvsStats; typedef struct { HvsConst HvsChr * pszLkz; HvsConst HvsChr * pszPlz; HvsConst HvsChr * pszOrt; HvsConst HvsChr * pszStr; } HvsAdr; //sKopp 08Mar2005 typedef struct { LPVOID vbLkz; LPVOID vbPlz; LPVOID vbOrt; LPVOID vbStr; } vbHvsAdr; //sKopp 19Apr2005 typedef struct { char* vgLkz[1+1]; char* vbPlz[1+1]; char* vbOrt[1+1]; char* vbStr[1+1]; } glHvsAdr; typedef char HvsLkz[3+1]; // Länderkennzeichen typedef char HvsDepot[3+1]; typedef char HvsStr[50+1]; typedef char HvsPlz[10+1]; typedef char HvsOrt[50+1]; //HvsOrt[24+1]; typedef char HvsZlw[1+1]; /* Zaehlweise */ typedef char HvsMKnz[1+1]; /* MehrfachKnz */ typedef char HvsHaus[4+1]; typedef char HvsZus[1+1]; typedef char HvsTeze[4+1]; typedef char HvsVon[6+1]; typedef char HvsBis[6+1]; typedef char HvsDepotName[20+1]; typedef char HvsVersion[4+1]; typedef char HvsRout[20+1]; typedef char HvsLevel[5+1]; typedef char HvsStelle[80+1]; typedef char HvsKurzt[10+1]; typedef char HvsStrtype[10+1]; typedef char HvsErrMsg[255]; typedef char HvsSqlstate[10]; typedef struct { HvsZlw szZlw; HvsHaus szHaus1; HvsZus szZus1; HvsHaus szHausN; HvsZus szZusN; } HvsAbs; typedef struct { HvsDepot szDepot; HvsDepotName szDepotName; HvsTeze szTeze; HvsStr szStr; HvsHaus szHaus; HvsZus szZus; HvsPlz szPlz; HvsOrt szOrt; HvsVon szVon; HvsBis szBis; HvsZlw szTyp; HvsVersion szVersion; HvsLkz szLkz; HvsErrMsg szErrMsg; } HvsCode; typedef struct { HvsRout szRoutine; HvsLevel szLevel; HvsStelle szStelle; HvsKurzt szKurztyp; } HvsCodeErw; typedef struct { HvsLkz szLkz; HvsStrtype szStrassentyp; HvsKurzt szKurztyp; int szStrTypNr; } HvsTypverweis; typedef struct { int nr; HvsStrtype szStrassentyp; } HvsTypen; typedef struct { int iDepot; HvsPlz plz; HvsDepotName depotName; HvsVersion version; } HvsDepotItems; typedef struct { HvsSqlstate szSqlState; HvsErrMsg szErrMsg; int nativeError; int wErrMsg; } HvsErrorInfo; /* ------------------------------------------------------------ */ /* Datentypen: */ #ifdef __cplusplus extern "C" { #endif /*__cplusplus*/ HVSCODEDLL_API HvsRc __stdcall HvsCodeOpen(HvsConst char * pszDir); HVSCODEDLL_API HvsRc __stdcall HvsCodeTeze(HvsCode * pCode, HvsConst HvsAdr * pAdr); HVSCODEDLL_API HvsRc __stdcall HvsCodeTezeAnalyze(HvsCode * pCode, HvsCodeErw * pCodeErw , HvsConst HvsAdr * pAdr, int * zugriffe, HvsErrorInfo *err); HVSCODEDLL_API void __stdcall HvsCodeClose(); HvsRc HvsCodeTezeIntern (HvsCode * pCode, HvsConst HvsAdr * pAdr, HvsErrorInfo *err); #ifdef __cplusplus }; #endif /*__cplusplus*/ #endif