'==============================================================================
'
'  ADMLIB58 API Referentie voor Tradium Basic Script
'
'  Systeembibliotheek met hulpfuncties voor Tradium-macro's.
'  Kopieer de gewenste Declare-regels naar uw eigen macro.
'
'  Copyright (c) 2001-2026 KeeminK Design B.V.
'  Versie: ADMLIB58.DLL (30 maart 2026)
'
'==============================================================================
Option Explicit


'==============================================================================
'  BESTANDSBEHEER
'==============================================================================

'  CheckBackSlash - Controleert of een pad eindigt met een backslash
'  en voegt er zo nodig een toe.
'  Voorbeeld: CheckBackSlash("C:\Data") retourneert "C:\Data\"
Public Declare Function CheckBackSlash Lib "ADMLIB58.DLL" (ByVal PathSpec As String) As String

'  ExtractDir - Retourneert het pad (zonder bestandsnaam) uit een
'  volledig bestandspad.
'  Voorbeeld: ExtractDir("C:\Data\rapport.doc") retourneert "C:\Data"
Public Declare Function ExtractDir Lib "ADMLIB58.DLL" (ByVal FileName As String) As String

'  ShortName - Retourneert de korte (8.3) bestandsnaam van een
'  lang Windows-bestandspad.
Public Declare Function ShortName Lib "ADMLIB58.DLL" (ByVal LongName As String) As String

'  ValidateFileName - Vervangt ongeldige tekens in een bestandsnaam
'  door underscores. Optioneel hoofdlettergevoelig.
Public Declare Function ValidateFileName Lib "ADMLIB58.DLL" (ByVal Work As String, Optional ByVal MatchCase As Boolean = False) As String

'  LangTemplate - Zoekt een taalspecifieke variant van een
'  documentsjabloon (bijv. "offerte_EN.rtf" naast "offerte.rtf").
'  Retourneert het origineel als er geen variant bestaat.
Public Declare Function LangTemplate Lib "ADMLIB58.DLL" (ByVal DocTemplate As String, ByVal LanguageCode As String) As String

'  LoadStringFromFile - Laadt de volledige inhoud van een
'  tekstbestand als string.
Public Declare Function LoadStringFromFile Lib "ADMLIB58.DLL" (ByVal strFilename As String) As String

'  SaveStringToFile - Slaat een string op als tekstbestand.
'  Bestaande bestanden worden overschreven.
Public Declare Sub SaveStringToFile Lib "ADMLIB58.DLL" (ByVal FileName As String, ByRef FileData As String)

'  CheckDrive - Controleert of een schijfletter beschikbaar is.
'  Retourneert True als het station bestaat.
Public Declare Function CheckDrive Lib "ADMLIB58.DLL" (ByVal Letter As String) As Boolean

'  ANOfile - Genereert de bijbehorende annotatie-bestandsnaam
'  voor een afbeeldingsbestand.
'  Voorbeeld: ANOfile("c:\fax.tiff") retourneert "c:\fax_tiff.ano"
Public Declare Function ANOfile Lib "ADMLIB58.DLL" (ByVal ImageFileName As String) As String


'==============================================================================
'  BESTANDSTYPE HERKENNING
'==============================================================================

'  De volgende functies controleren of een bestand van een bepaald
'  type is, op basis van de extensie en/of de interne structuur
'  (magic bytes). Retourneren True (-1) of False (0).

Public Declare Function IsMailDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean      ' .msg, .eml
Public Declare Function IsRTFdoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean       ' .rtf, .twrd
Public Declare Function IsExceldoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean     ' .xls, .xlsx
Public Declare Function IsTiffDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean      ' .tif, .tiff (magic bytes)
Public Declare Function IsPDFDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean       ' .pdf (magic bytes)
Public Declare Function IsZPLDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean       ' .zpl (Zebra labelprinter)
Public Declare Function IsWordDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean      ' .doc, .docx (magic bytes)
Public Declare Function IsJPGDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean       ' JPEG (magic bytes)
Public Declare Function IsBMPDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean       ' BMP (magic bytes)
Public Declare Function IsPNGDoc Lib "ADMLIB58.DLL" (ByVal FileName As String) As Boolean       ' PNG (magic bytes)
Public Declare Function IsHTML Lib "ADMLIB58.DLL" (ByVal sText As String) As Boolean            ' HTML-opmaak in tekst
Public Declare Function IsRTFstring Lib "ADMLIB58.DLL" (ByVal Work As String) As Boolean        ' RTF-opmaak in tekst


'==============================================================================
'  TEKST EN STRINGBEWERKINGEN
'==============================================================================

'  ReplaceString - Vervangt tekst in een string (hoofdletterongevoelig).
'  NumCount: max aantal vervangingen (0 = onbeperkt).
'  Reloop: True = na elke vervanging opnieuw vanaf het begin zoeken
'  (handig voor het verwijderen van dubbele spaties).
Public Declare Sub ReplaceString Lib "ADMLIB58.DLL" (ByRef Work As String, ByVal OldStr As String, ByVal NewStr As String, Optional NumCount As Long = 0, Optional ByVal Reloop As Boolean = False)

'  CleanUpString - Verwijdert alle tekens die geen letter, cijfer,
'  spatie of gangbaar leesteken zijn. Ongeldige tekens worden
'  vervangen door een spatie.
Public Declare Function CleanUpString Lib "ADMLIB58.DLL" (ByVal Work As String, Optional ByVal MatchCase As Boolean = False) As String

'  CleanQuotes - Verwijdert aanhalingstekens aan het begin en einde
'  van een string. Optioneel wordt een afsluitende backslash toegevoegd.
Public Declare Function CleanQuotes Lib "ADMLIB58.DLL" (ByVal FileName As String, Optional ByVal IsPath As Boolean = False) As String

'  ReadUntil - Leest tekst tot aan een scheidingsteken.
'  De bronstring wordt verkort: het gelezen deel en het
'  scheidingsteken worden verwijderd.
Public Declare Function ReadUntil Lib "ADMLIB58.DLL" (ByRef Work As String, ByVal sDelim As String) As String

'  WordWrap - Breekt tekst af op woordgrenzen wanneer een regel
'  langer is dan het opgegeven aantal tekens.
Public Declare Function WordWrap Lib "ADMLIB58.DLL" (ByVal Tekst As String, ByVal NumChars As Long, ByVal WrapChars As String) As String

'  Wrapped - Herformateert tekst zodat geen enkele regel breder is
'  dan de opgegeven breedte (standaard 75 tekens).
Public Declare Function Wrapped Lib "ADMLIB58.DLL" (ByVal MyText As String, Optional ByVal LineWidth As Long = 75) As String

'  Decode - Decodeert een eerder versleutelde tekenreeks.
Public Declare Function Decode Lib "ADMLIB58.DLL" (ByVal ArtCode As String) As String

'  BuildString - Snel grote strings opbouwen via vooraf gealloceerd
'  geheugen. Stap 1: aanroepen met BufSize > 0 (reserveert ruimte).
'  Stap 2: aanroepen met BufSize = 0 (voegt tekst toe aan buffer).
'  Stap 3: aanroepen met BufSize < 0 (retourneert het resultaat).
Public Declare Function BuildString Lib "ADMLIB58.DLL" (ByRef BufSize As Long, ByVal WorkString As String) As String

'  HexString - Interpreteert hexadecimale codes in een string.
'  Syntaxis: {1B,0D,0A} wordt vertaald naar de overeenkomstige
'  ASCII-tekens (in dit voorbeeld: Escape, CR, LF).
Public Declare Function HexString Lib "ADMLIB58.DLL" (ByVal Work As String) As String

'  Hex2String - Converteert een hexadecimale tekenreeks naar ASCII.
'  Voorbeeld: Hex2String("48656C6C6F") retourneert "Hello"
Public Declare Function Hex2String Lib "ADMLIB58.DLL" (ByVal HexValue As String) As String

'  String2Hex - Converteert een ASCII-string naar hexadecimaal.
'  Voorbeeld: String2Hex("Hello") retourneert "48656C6C6F"
Public Declare Function String2Hex Lib "ADMLIB58.DLL" (ByVal StringValue As String) As String

'  ExtractBetween - Extraheert tekst tussen twee scheidingstekens
'  (hoofdletterongevoelig).
'  Voorbeeld: ExtractBetween("Hallo [naam] welkom", "[", "]")
'  retourneert "naam"
Public Declare Function ExtractBetween Lib "ADMLIB58.DLL" (ByVal Source As String, ByVal Start As String, ByVal Terminator As String) As String


'==============================================================================
'  VALIDATIE EN CONTROLE
'==============================================================================

'  IsNumber - Controleert of een string uitsluitend cijfers bevat.
'  Optioneel wordt een minteken aan het begin toegestaan.
Public Declare Function IsNumber Lib "ADMLIB58.DLL" (ByVal Work As String, Optional ByVal AllowNegative As Boolean = False) As Boolean

'  IsHexString - Controleert of een string een geldige hexadecimale
'  waarde is (0-9, A-F). Hoofdletterongevoelig.
Public Declare Function IsHexString Lib "ADMLIB58.DLL" (ByVal Work As String) As Boolean

'  IsCharString - Controleert of een string uitsluitend letters en
'  cijfers bevat (geen spaties of speciale tekens).
Public Declare Function IsCharString Lib "ADMLIB58.DLL" (ByVal Work As String, Optional ByVal MatchCase As Boolean = False) As Boolean

'  ValidEmailAddress - Controleert of een string voldoet aan het
'  nominale e-mailadresformaat (bevat @ en punt na @).
Public Declare Function ValidEmailAddress Lib "ADMLIB58.DLL" (ByVal MailAddress As String) As Boolean

'  ValidPostalCode - Controleert of een string voldoet aan de
'  Nederlandse postcode-syntaxis (4 cijfers + 2 letters).
Public Declare Function ValidPostalCode Lib "ADMLIB58.DLL" (ByVal PCSearch As String) As Boolean

'  ValidatePhoneNumber - Normaliseert en valideert een telefoonnummer.
'  Verwijdert opmaaktekens (spaties, haakjes, streepjes).
'  Retourneert het genormaliseerde nummer of een lege string
'  bij een ongeldig nummer.
Public Declare Function ValidatePhoneNumber Lib "ADMLIB58.DLL" (ByVal PhoneNum As String, Optional ByVal AllowText As Boolean = False) As String


'==============================================================================
'  NUMERIEKE CONVERSIE EN BEREKENING
'==============================================================================

'  CVCur - Converteert een waarde (string, variant, veld) naar een
'  Double, ongeacht of komma of punt als decimaalteken is gebruikt.
'  Verwerkt negatieve waarden en percentages.
'  Voorbeeld: CVCur("1.234,56") retourneert 1234.56
Public Declare Function CVCur Lib "ADMLIB58.DLL" (Value As Variant) As Double

'  Opslag - Berekent een verkoopprijs op basis van een nettomarge.
'  Het opgegeven percentage vertegenwoordigt de gewenste nettomarge,
'  niet de opslag. Voorbeeld: Opslag(100, 25) retourneert 133.33
Public Declare Function Opslag Lib "ADMLIB58.DLL" (ByVal Prijs As Currency, ByVal Perc As Single) As Currency

'  LocalDecimalSign - Retourneert het decimaalteken van de huidige
'  Windows-landinstellingen ("," of ".").
Public Declare Function LocalDecimalSign Lib "ADMLIB58.DLL" () As String

'  EnglishValue - Converteert een numerieke waarde naar een string
'  met punt als decimaalteken, geschikt voor SQL-query's.
'  Decimals: aantal decimalen (-1 = variabel, -99 = type-info).
Public Declare Function EnglishValue Lib "ADMLIB58.DLL" (Value As Variant, Optional ByVal Decimals As Integer = -1) As String


'==============================================================================
'  DATUM EN TIJD
'==============================================================================

'  SQLDate - Converteert een datumwaarde naar een SQL-gevalideerde
'  string in het formaat 'yyyy-mm-dd hh:nn:ss.mmm'.
'  DenyTimePart: True = alleen datum, geen tijd.
'  UseMinimumTimeValue: True = ' ...00:00:00.000'
'  UseMaximumTimeValue: True = ' ...23:59:59.995'
Public Declare Function SQLDate Lib "ADMLIB58.DLL" (DateValue As Variant, Optional ByVal DenyTimePart As Boolean = False, Optional ByVal UseMinimumTimeValue As Boolean = False, Optional ByVal UseMaximumTimeValue As Boolean = False) As String

'  ISOWeekNum - Retourneert het ISO-weeknummer voor een datum.
Public Declare Function ISOWeekNum Lib "ADMLIB58.DLL" (ByVal wYear As Long, ByVal wMonth As Long, ByVal wDay As Integer) As Long

'  Minutes2Time - Converteert een aantal minuten naar een
'  tijdstring. OnlyMinutes=True geeft "HH:MM", anders "H:MM".
Public Declare Function Minutes2Time Lib "ADMLIB58.DLL" (Minutes As Variant, Optional ByVal OnlyMinutes As Boolean = False) As String

'  Time2Minutes - Converteert een tijdwaarde ("HH:MM" of VB-datum)
'  naar het totaal aantal minuten.
Public Declare Function Time2Minutes Lib "ADMLIB58.DLL" (MyTime As Variant) As Integer

'  CleanDate - Valideert een datumwaarde. Retourneert de datum als
'  string, of de opgegeven DefaultDate als de waarde ongeldig is.
Public Declare Function CleanDate Lib "ADMLIB58.DLL" (DateValue As Variant, DefaultDate As Variant) As String


'==============================================================================
'  SQL HULPFUNCTIES
'==============================================================================

'  SQLText - Maakt een string geschikt voor gebruik in een
'  SQL-query door aanhalingstekens te escapen.
'  UseWild: True = voegt %-wildcards toe voor LIKE-zoekopdrachten.
'  UseRTF: True = converteert tabs en regelafbrekingen naar RTF.
Public Declare Function SQLText Lib "ADMLIB58.DLL" (ByVal Work As String, Optional ByVal UseWild As Boolean = False, Optional ByVal useRTF As Boolean = False) As String

'  SQLCurText - Genereert een SQL-expressie die een veld omrekent
'  naar een andere valuta. Geschikt voor gebruik in SELECT-clausules.
Public Declare Function SQLCurText Lib "ADMLIB58.DLL" (ByVal Expression As String, ByVal Current As Double, Optional ByVal OutputName As String = "") As String

'  SQLFROM - Genereert een FROM-clausule met de juiste locking hints.
'  Standaard: WITH (READUNCOMMITTED).
'  WithRowLock: True = WITH (ROWLOCK).
'  NoLockingHints: True = geen hints (voor tabel-functies e.d.).
Public Declare Function SQLFROM Lib "ADMLIB58.DLL" (ByVal sTableName As String, Optional ByVal sAlias As String = "", Optional ByVal WithRowLock As Boolean = False, Optional ByVal NoLockingHints As Boolean = False) As String

'  SQLDELETE - Genereert een DELETE FROM-clausule met ROWLOCK hint.
'  NoLockingHints: True = geen hints.
Public Declare Function SQLDELETE Lib "ADMLIB58.DLL" (ByVal sTableName As String, Optional ByVal NoLockingHints As Boolean = False) As String

'  SortedQuery - Vervangt of voegt een ORDER BY-clausule toe aan
'  een bestaande SQL-query.
Public Declare Function SortedQuery Lib "ADMLIB58.DLL" (ByVal orgQuery As String, ByVal SortKeys As String) As String

'  FilterQuery - Extraheert het FROM-gedeelte (inclusief eventuele
'  GROUP BY) uit een SQL-query.
Public Declare Function FilterQuery Lib "ADMLIB58.DLL" (ByVal SourceName As String) As String

'  SearchQuery - Bouwt een WHERE-clausule voor zoeken in meerdere
'  velden met LIKE en wildcards. Ondersteunt:
'  = prefix: alle woorden moeten voorkomen (AND)
'  ~ prefix: Nederlandse spellingvarianten meenemen
'  ! prefix: exacte woordgrenzen
'  - prefix per woord: uitsluiten (NOT LIKE)
'  + prefix per woord: verplicht (AND)
Public Declare Function SearchQuery Lib "ADMLIB58.DLL" (ByVal Search As String, FieldNames() As String) As String

'  SearchPostalCode - Bouwt een WHERE-clausule voor het zoeken op
'  Nederlandse postcode en optioneel huisnummer.
Public Declare Function SearchPostalCode Lib "ADMLIB58.DLL" (ByVal PCSearch As String, ByVal AddressField As String, ByVal ZipCodeField As String) As String


'==============================================================================
'  BOOLEAN EN TYPE CONVERSIE
'==============================================================================

'  YesNoValue - Evalueert een waarde naar True of False.
'  Herkent: True/False, Ja/Nee, Yes/No, Waar/Onwaar, en
'  numerieke waarden (0 = False, overig = True).
Public Declare Function YesNoValue Lib "ADMLIB58.DLL" (varValue As Variant) As Boolean


'==============================================================================
'  RTF OPMAAK
'==============================================================================

'  RTF opmaakfuncties: als MyText is opgegeven wordt de tekst
'  ingesloten in de opmaakcode. Zonder tekst wordt alleen de
'  openingstag geretourneerd (zelf afsluiten met "}").

Public Declare Function RTF_BOLD Lib "ADMLIB58.DLL" (Optional ByVal MyText As String = "") As String
Public Declare Function RTF_ITALIC Lib "ADMLIB58.DLL" (Optional ByVal MyText As String = "") As String
Public Declare Function RTF_UNDERLINE Lib "ADMLIB58.DLL" (Optional ByVal MyText As String = "") As String
Public Declare Function RTF_STRIKE Lib "ADMLIB58.DLL" (Optional ByVal MyText As String = "") As String
Public Declare Function RTF_FONT Lib "ADMLIB58.DLL" (ByVal FontSize As Long, Optional ByVal MyText As String = "") As String

'  CrLfToRTF - Vervangt regelafbrekingen door RTF-paragraafcodes.
Public Declare Function CrLfToRTF Lib "ADMLIB58.DLL" (ByVal MyText As String) As String

'  RTFToCrLf - Vervangt RTF-paragraafcodes door regelafbrekingen.
Public Declare Function RTFToCrLf Lib "ADMLIB58.DLL" (ByVal MyText As String) As String

'  StringToHex - Converteert een string naar RTF Unicode hex-codes.
Public Declare Function StringToHex Lib "ADMLIB58.DLL" (ByVal MyString As String) As String


'==============================================================================
'  POSTCODE EN ADRES
'==============================================================================

'  KIXCode - Genereert een KIX-barcode string voor PostNL
'  adreslabels, op basis van postcode en adres.
Public Declare Function KIXCode Lib "ADMLIB58.DLL" (ByVal AddressField As String, ByVal ZipCodeField As String) As String

'  FormatName - Converteert "Achternaam, Voornaam" naar
'  "Voornaam Achternaam".
Public Declare Function FormatName Lib "ADMLIB58.DLL" (ByVal Naam As String) As String


'==============================================================================
'  E-MAIL PARSING
'==============================================================================

'  Functies voor het extraheren van velden uit een e-mailbericht
'  (platte tekst met headers).

Public Declare Function MailExtractAddressee Lib "ADMLIB58.DLL" (ByVal Work As String) As String    ' To/Aan
Public Declare Function MailExtractSender Lib "ADMLIB58.DLL" (ByVal Work As String) As String       ' Reply-To/From
Public Declare Function MailExtractSubject Lib "ADMLIB58.DLL" (ByVal Work As String) As String      ' Subject/Onderwerp


'==============================================================================
'  COMPRESSIE (vereist ZLIB.DLL)
'==============================================================================

'  CompressString - Comprimeert een string met zlib (deflate).
'  De oorspronkelijke lengte wordt vooraan opgeslagen.
'  Retourneert 0 bij succes.
Public Declare Function CompressString Lib "ADMLIB58.DLL" (ByRef TheString As String) As Long

'  DecompressString - Decomprimeert een eerder gecomprimeerde string.
'  Retourneert 0 bij succes.
Public Declare Function DecompressString Lib "ADMLIB58.DLL" (ByRef TheString As String) As Long


'==============================================================================
'  ARRAY BEWERKINGEN
'==============================================================================

'  SortString - Sorteert een string-array oplopend.
Public Declare Sub SortString Lib "ADMLIB58.DLL" (StringArray() As String)

'  SortInt - Sorteert een integer-array oplopend.
Public Declare Sub SortInt Lib "ADMLIB58.DLL" (IntArray() As Integer)

'  SortLong - Sorteert een long-array oplopend.
Public Declare Sub SortLong Lib "ADMLIB58.DLL" (LongArray() As Long)

'  SortSingle - Sorteert een single-array oplopend.
Public Declare Sub SortSingle Lib "ADMLIB58.DLL" (SingleArray() As Single)

'  SortDouble - Sorteert een double-array oplopend.
Public Declare Sub SortDouble Lib "ADMLIB58.DLL" (DoubleArray() As Double)

'  SortCurrency - Sorteert een currency-array oplopend.
Public Declare Sub SortCurrency Lib "ADMLIB58.DLL" (CurrencyArray() As Currency)

'  ScanString - Doorzoekt een string-array (hoofdletterongevoelig).
'  FirstEl: startpositie. NumEls: aantal te doorzoeken elementen.
'  DeleteIfFound: True = verwijdert het gevonden element.
'  Retourneert de positie (1-based) of 0 als niet gevonden.
Public Declare Function ScanString Lib "ADMLIB58.DLL" (StringArray() As String, ByVal FirstEl As Long, ByRef NumEls As Long, ByVal Work As String, Optional ByVal DeleteIfFound As Boolean = False) As Long

'  InsertString - Voegt een element in op de opgegeven positie.
'  LET OP: de array moet groot genoeg zijn!
Public Declare Sub InsertString Lib "ADMLIB58.DLL" (StringArray() As String, ByVal ElPosition As Long, ByVal Work As String)

'  DeleteString - Verwijdert een element op de opgegeven positie.
'  De array-grenzen blijven ongewijzigd; het laatste element wordt leeg.
Public Declare Sub DeleteString Lib "ADMLIB58.DLL" (StringArray() As String, ByVal ElPosition As Long)

'  Conv2Word - Splitst een tekst in losse woorden en vult daarmee
'  een array. WNum retourneert het aantal gevonden woorden.
Public Declare Sub Conv2Word Lib "ADMLIB58.DLL" (ByVal Tekst As String, WordArray() As String, ByRef WNum As Long, Optional ByVal SepChar As String = " ")


'==============================================================================
'  INI-BESTAND
'==============================================================================

'  ReadIni - Leest een waarde uit een .INI-bestand.
'  Zonder AltFileName wordt het standaard Tradium INI-bestand gebruikt.
Public Declare Function ReadIni Lib "ADMLIB58.DLL" Alias "ReadIni" (ByVal AppName As String, ByVal KeyName As String, Optional ByVal AltFileName As String = "") As String

'  WriteIni - Schrijft een waarde naar een .INI-bestand.
Public Declare Sub WriteIni Lib "ADMLIB58.DLL" Alias "WriteIni" (ByVal AppName As String, ByVal KeyName As String, ByVal TheValue As String, Optional ByVal AltFileName As String = "")


'==============================================================================
'  SYSTEEM
'==============================================================================

'  isHost64bit - Controleert of het besturingssysteem 64-bits is.
Public Declare Function isHost64bit Lib "ADMLIB58.DLL" () As Boolean

'  GetWinVersion - Retourneert het versienummer van Windows.
Public Declare Function GetWinVersion Lib "ADMLIB58.DLL" () As String

'  GetWinPlatform - Retourneert het platformtype van Windows.
Public Declare Function GetWinPlatform Lib "ADMLIB58.DLL" () As String

'  GetFileVersion - Retourneert de versie-informatie van een
'  DLL, OCX of EXE bestand.
Public Declare Function GetFileVersion Lib "ADMLIB58.DLL" (ByVal FileName As String) As String

'  GetVolumeID - Leest het serienummer en de volumenaam van een schijf.
Public Declare Function GetVolumeID Lib "ADMLIB58.DLL" (ByVal RootPathName As String, ByRef SerialNumber As Long, ByRef VolumeName As String) As Boolean

'  WinDir - Retourneert het Windows-pad (bijv. "C:\Windows").
Public Declare Function WinDir Lib "ADMLIB58.DLL" () As String

'  WinSysDir - Retourneert het System32-pad
'  (bijv. "C:\Windows\System32").
Public Declare Function WinSysDir Lib "ADMLIB58.DLL" () As String

'  WinKey - Controleert of een Windows-productsleutel aanwezig is
'  in het register.
Public Declare Function WinKey Lib "ADMLIB58.DLL" () As Boolean

'  CreateGUID - Genereert een unieke 128-bits GUID als string
'  (38 tekens, inclusief accolades).
Public Declare Function CreateGUID Lib "ADMLIB58.DLL" () As String

'  ErrorMessageText - Retourneert de Windows-foutmelding
'  behorend bij een foutnummer.
Public Declare Function ErrorMessageText Lib "ADMLIB58.DLL" (ByVal ErrorCode As Long, Optional ByVal DefaultMsg As String = "") As String

'  FileCopyBoot - Kopieert een bestand met vertraging tot de
'  volgende herstart van Windows. Nuttig voor het vervangen
'  van vergrendelde systeembestanden.
Public Declare Function FileCopyBoot Lib "ADMLIB58.DLL" (ByVal FileFrom As String, ByVal FileTo As String) As Long

'  CloseForm - Sluit een venster op basis van het Window Handle.
Public Declare Sub CloseForm Lib "ADMLIB58.DLL" (ByVal Hwnd As Long)


'==============================================================================
'  SERIËLE COMMUNICATIE
'==============================================================================

'  SendToComm - Stuurt data naar een seriële poort.
'  Bij eerste aanroep (Handle=0): opent de poort met de opgegeven
'  instellingen, bijv. SendToComm(0, "COM2,19200,n,8,1").
'  Bij lege string: sluit de poort.
'  Retourneert het handle-nummer of 0 bij een fout.
Public Declare Function SendToComm Lib "ADMLIB58.DLL" (ByVal CommHandle As Long, ByVal StrData As String) As Long

'  ReadFromComm - Leest data van een seriële poort.
'  Retourneert het aantal gelezen bytes, of -1 bij een fout.
Public Declare Function ReadFromComm Lib "ADMLIB58.DLL" (ByVal CommHandle As Long, ByRef StrRecv As String) As Long
