SamLogic C++ Visual Library 2004 - funktioner



C++ Visual Library 2004 utökar Visual C++ med ca 200 nya funktioner. Här nedan beskrivs alla funktioner som ingår i verktyget kortfattat. För en detaljerad beskrivning av en funktion, klicka på det understrykna namnet.


Personnr, organisationsnr, bankgiro, postgiro mm

I C++ Visual Library 2004 finns det funktioner för hantering av organisationsnummer, personnummer, bankgiro, postgiro mm. Dessa funktioner kan bla användas för att kontrollera att en inmatad sifferserie är korrekt.

BankgiroValid -- Testar om ett bankgironummer är korrekt.
CalcCnr -- Beräknar ett kontrollnummer enligt modulus-10-metoden med vikterna 2 och 1.
CnrValid -- Testar om ett nummer har giltig kontrollsiffra.
OrgnrType -- Kategoriserar ett organisationsnummer.
OrgnrValid -- Testar om ett organisationsnummer är giltigt.
PackCnrToLong -- Komprimerar ett personnummer eller organisationsnummer.
PnrValid -- Testar om ett personnummer är korrekt.
PostgiroValid -- Testar om ett postgironummer är korrekt.
UnPackLongToCnr -- Packar upp ett personnummer / organisationsnummer som komprimerats med PackCnrToLong.


Kreditkortsnummer

I C++ Visual Library 2004 finns det även funktioner för validering av kreditkortsnummer och kreditkortsdatum.

CreditCardNrValid -- Testar att ett kreditkortsnummer är giltigt.
CreditCardType -- Fastställer kreditkortstyp (tex VISA, American Express, MasterCard etc) genom att analysera numret.
CreditCardCheckExpiryDate -- Kontrollerar kreditkortets sista giltighetsdatum.


Kryptering och lösenord

Säkerhet blir allt viktigare, bla pga ökad Internet-användning. I C++ Visual Library 2004 finns det ett antal funktioner för kryptering av data. Det finns även funktioner för att spara lösenord i krypterade filer.

CryEncryptBuf  -- Krypterar en databuffert.
CryEncryptFile
-- Krypterar en fil.
CryEncryptStr --
Krypterar en sträng.
CryEncryptText -- Krypterar en text.
CryDecryptBuf -- Dekrypterar en databuffert.
CryDecryptFile -- Dekrypterar en fil.
CryDecryptStr -- Dekrypterar en sträng.
CryDecryptText -- Dekrypterar text.
CryGetLastError -- Returnerar senast inträffade felet i samband med kryptering/dekryptering.
PswLoadPassword --
Laddar in ett lösenord från en krypterad fil.
PswSavePassword --
Sparar ett lösenord i en krypterad fil.
PswGetLastError -- Returnerar senast inträffade felet i samband med lösenordshanteringen.


Postnummerdatabas

I C++ Visual Library 2004 ingår en svensk postnummerdatabas som kan användas till databaser som ska innehålla postnummer och ortnamn, tex ett kundregister. Det finns fyra funktioner för hantering av postnummerdatabasen och en av dessa, XPNrGetPlace, returnerar ett ortnamn för ett postnummer du anger. Denna funktion är mycket användbar i samband med registrering av data. När användaren skrivit in ett postnummer i ett fält kan denne få ortnamnet automatiskt i ortnamnsfältet. Detta snabbar upp registrering av uppgifter samtidigt som risken för felstavningar av ortnamn nästan helt försvinner. Informationen i postnummerdatabasen är helt färsk och är från 2004. 

XPNrCreateTable -- Skapar en komprimerad databas med svenska postnummer och postorter.
XPNrFormatPnr -- Formaterar en sträng med ett postnummer.
XPNrGetPlace -- Returnerar en postort som tillhör ett postnummer.
XPNrLoadTable -- Laddar in en komprimerad postnummerdatabas till minnet.
XPNrPnrValid -- Testar att ett postnummer har giltigt format och ej innehåller ogiltiga tecken.
XPNrUnloadTable -- Laddar ur en
postnummerdatabas från minnet.
XPNrSetSrcLineWidth -- Anger radbredd för en okomprimerad källfil med postnummerdata.


Strängar

I C++ Visual Library 2004 finns ett antal snabba rutiner för manipulering av strängar. Bla finns funktioner för att infoga strängar, radera delsträngar, ersätta delsträngar, formatera versaler/gemener i strängar mm.

PickFirstAndLastName -- Plockar ut förnamn och efternamn ur en sträng med ett personnamn.
PickFirstAndLastAndMiddleName -- Plockar ut förnamn, mellannamn och efternamn ur en sträng med ett personnamn.
StrBetween
-- Plockar ut en sträng mellan två specificerade tecken/strängar.
StrCount
-- Räknar antal förekomster av en delsträng eller ett specifikt tecken i en sträng.
StrDel
-- Raderar ett specificerat antal tecken i en sträng.
StrDelStr --
Raderar en delsträng från en annan sträng.
StrDelSpc -- Raderar alla mellanslag i en sträng.
StrIns -- Infogar en delsträng i en annan sträng.
StrInsC -- Infogar ett visst antal tecken i en sträng.
StrPlace -- Kopierar in en sträng i en annan sträng utan att skjuta tecken framför sig.
StrRep -- Byter ut alla förekomster av en delsträng mot en annan.
StrRnd -- Skapar en ASCII-sträng med slumpmässiga tecken inom angivet intervall.
StrUprF -- Omvandlar första tecknet i en sträng, om det är en gemen, till en versal.
StrUprFW  -- Omvandlar första tecknet i varje ord i en sträng till en versal.
StrUprFWX -- Omvandlar första tecknet i varje ord i en sträng till en versal. Övriga bokstäver omvandlas till gemener.


Datum och tid

I C++ Visual Library 2004 finns det en mängd rutiner för hantering av datum, kalender och tid. Rutinerna är också helt anpassade för att fungera under svenska förhållanden.

DateValid -- Testar om ett datum är giltigt.
DayOfWeek -- Returnerar veckodag.
DayOfWeekStr -- Returnerar veckodagsnamn för ett datum.
GetFirstSpecWeekDay -- Returnerar datum för första specificerade veckodagen i en månad (tex första söndagen i Mars).
GetHolidayStr -- Omvandlar en helgkod till en sträng med svenskt namn (tex "Julafton").
GetLastSpecWeekDay  -- Returnerar datum för sista specificerade veckodagen i en månad (tex sista söndagen i Mars).
GetMonthStr -- Returnerar månadsnamn för ett datum.
GetSpecialDayStr -- Omvandlar en specialdagskod till en sträng med svenskt namn (tex "Skottdagen").
HMSToSec -- Omvandlar timmar, minuter och sekunder till enbart sekunder.
HolidayCode -- Returnerar helgkod för ett datum.
IsLeapYear -- Testar om ett år är ett skottår.
JulianDay -- Omvandlar ett datum till ett julianskt dagtal.
JulianDayNow  -- Returnerar julianskt dagtal för idag.
JulianToDate -- Omvandlar ett julianskt dagtal till ett datum.
LastDay -- Returnerar sista dagen i en månad.
SecToHMS -- Omvandlar sekunder till timmar, minuter och sekunder.
SpecialDayCode -- Returnerar specialdagskod för ett visst datum.
TimeValid -- Testar om ett klockslag är giltigt.
WeekNr -- Returnerar veckonummer för ett datum.
WeeknrValid -- Testar om ett veckonummer är giltigt.
YWDAdd -- Adderar datum med formatet år-veckonr-veckodag.
YWDFromJulian -- Omvandlar ett julianskt dagtal till ett datum i formatet år-veckonr-veckodag.
YWDGetNow -- Erhåller dagens datum i formatet år-veckonr-veckodag.
YWDDif -- Beräknar differensen mellan två datum med formatet år-veckonr-veckodag.
YWDSub -- Subtraherar datum med formatet år-veckonr-veckodag.
YWDToJulian -- Omvandlar ett datum i formatet år-veckonr-veckodag till ett julianskt dagtal.
YWDValid -- Testar om ett datum i formatet år-veckonr-veckodag är giltigt.


Tidszoner och sommartid

I C++ Visual Library 2004 finns även funktioner för att returnera fakta om världens tidszoner och sommartider.

AdjustTimeDifForDaylight -- Justerar en tidsdifferens för eventuell sommartid i något av länderna.
AdjustTimeDifForDaylightSwe -- Justerar en tidsdifferens för eventuell sommartid i ett land med Sverige som utgångspunkt.
GetDaylightTransitionDate -- Returnerar datum och klockslag när vintertid övergår till sommartid.
GetStandardTransitionDate -- Returnerar datum och klockslag när sommartidtid övergår till vintertid.
GetLocaleTimeZoneStr -- Returnerar en sträng som beskriver den aktuella tidszonen i systemet.
GetTimeZoneDif -- Returnerar tidsskillnaden i minuter melan två tidszoner i världen.
GetTimeZoneDifSwe -- Returnerar tidsskillnaden i minuter till en tidszon i världen (från Sverige).
GetUTCTimeZoneDif -- Returnerar tidskillnaden i minuter till UTC-zonen (Coordinated Universal Time).
IsDaylightPeriodNow -- Testar om det är sommartid just nu.


Tidmätning med mycket hög precision

I verktyget finns också funktioner för tidmätning med mycket hög precision. Nogrannheten är en mikrosekund (0.000001 s) vilket ger mycket nogranna mätresultat och är användbart när kraven på hög precision är stora. 

HiResTimer_Start -- Startar tidmätning.
HiResTimer_GetElapsedTime -- Returnerar förfluten tid i mikrosekunder sedan anrop av HiResTimer_Start.


Fil

I C++ Visual Library 2004 finns även en stor mängd funktioner för hantering (tex manipulering) av sökvägar och filnamn.

AppendBackslash -- Adderar "\" sist i en sökväg ifall detta tecken saknas.
AppendFile
-- Slår ihop en fil med en annan.
ChangeFileExt
--
Byter namntillägg på en fil på en enhet.
ChangeFilenameExt -- Byter namntillägg på ett filnamn i en sträng.
ConvertTextFileFromUnixToWin -- Konverterar en textfil från UNIX till Windows-format.
CreateCompactPath -- Förkortar en sökväg i en sträng på ett formaterat sätt. Bra innan utskrift på skärmen.
CreatePath --
Skapar en komplett sökväg med hjälp av en katalogsökväg och ett filnamn.
CreateSystemPath -- Skapar en sökväg till en fil som finns i Windows systemkatalog.
ExtractDirectory -- Plockar ut katalog ur en sträng med en sökväg.
ExtractFilename -- Plockar ut ett filnamn ur en sträng med en sökväg.
ExtractFilenameExt -- Plockar ut ett namntillägg ur en sträng med en sökväg.
ExtractNamePart -- Plockar ut namndelen ur ett filnamn.
FileExists -- Testar om en fil existerar.
FileSpace -- Returnerar hur mycket en fil verkligen tar upp.
FindTextInFile -- Söker efter en textsträng i en fil och returnerar position i filen där strängen finns.
ForceDeleteFile -- Raderar en fil med tvång, även om den är skrivskyddad.
GetAssociatedApp -- Erhåller associerad applikation, dvs vilket program som tillhör ett visst namntillägg.
GetFilenameExtDescription -- Erhåller beskrivning för ett namntillägg.
GetFileVersionData -- Hämtar versionsinformation från en fil (tex produktnamn, företagsnamn, copyright, versionsnr mm).
GetFileVersionNumber -- Returnerar en fils versionsnummer.
InsertBackslash -- Stoppar in "\" först i en sträng med en sökväg ifall detta tecken saknas.
InsertDriveName -- Stoppar in en enhetsbokstav först i en sträng med en sökväg.
IsUnixTextFile -- Testar om en textfil använder UNIX-radbrytningar (ASCII-kod nr 10, Linefeed-tecken).
MakeFileBackup -- Gör en säkerhetskopia av en fil.
RemoveDupBackslashes -- Avlägsnar dubbla "\" i en sökväg.
RemoveDupBackslashesEx -- Avlägsnar dubbla "\" i en sökväg. Hanterar UNC-filnamn.
RemoveLastBackslash -- Avlägsnar ett "\" sist i en sökväg ifall det existerar.
RemoveWriteProtAttribute -- Avlägsnar skrivskydd från en fil.
SetFileDateTime -- Sätter datum och tid för en fil.
SetFileDateTime_Creation -- Sätter datum och tid för en fil (när den skapats). 
SetFileDateTime_Now -- Sätter datum och tid för en fil till nuvarande datum och tid. 
SetWriteProtAttribute -- Skrivskyddar en fil.


Mappar

Ett antal funktioner för hantering av mappar (kataloger) finns också. Bla en funktion som skapar flera nivåer av kataloger på en gång samt ett antal funktioner som returnerar viktiga kataloger i systemet såsom Windows-katalogen, System-katalogen, Program-katalogen mm.

DirCreate -- Skapar en eller flera nivåer av kataloger samtidigt.
DirExists -- Testar om en katalog existerar.
ExploreFolder -- Öppnar Utforskaren med en specificerad folder öppen.
ForceRemoveDir -- Avlägsnar en katalog med tvång, även om den innehåller filer.
GetCommonFilesDir -- Returnerar katalogen med vanliga filer.
GetFontDir -- Returnerar katalogen som innehåller installerade fonter.
GetMyDocumentsDir -- Returnerar katalogen där "Mina dokument" finns.
GetProgramFilesDir -- Returnerar "Program"-katalogen.
GetTemporaryDir -- Returnerar den katalog i systemet som används för temporära filer.


Disk

I C++ Visual Library 2004 finns en mängd rutiner för hantering av diskenheter. Alla funktioner klarar av FAT32 och hårddiskar större än 2 GB.

ClusterSize -- Returnerar cluster-storleken för en diskenhet.
DiskFree -- Returnerar ledigt utrymme för en enhet i bytes. 
DiskFreeKB -- Returnerar ledigt utrymme för en enhet i kilobytes. 
DiskSize -- Returnerar storleken på en enhet i bytes. 
DiskSizeKB -- Returnerar storleken på en enhet i kilobytes. 
DriveType -- Returnerar typ av enhet.
GetFileSystem -- Erhåller en enhets filsystem (tex FAT16, FAT32, NTFS, CDFS etc).
GetFirstCdRomDrive -- Returnerar första CD-enheten i systemet i form av enhetsbokstav.
GetVolumeName -- Erhåller en enhets volymetikett (label).
IsCdRomDrive -- Testar om en enhet är en CD-enhet.
IsFloppyDrive -- Testar om en enhet är en diskettstation.
IsHarddiskDrive -- Testar om en enhet är en hårddisk.
IsNetworkDrive -- Testar om en enhet är en nätverksenhet.
VolumeSerialNumber -- Returnerar serienumret för en enhet.


System


I C++ Visual Library 2004 finns även ett antal funktioner för att avläsa information om systemet och utföra vissa specialoperationer som normalt kräver avsevärda kodrader i Visual C++. Bla finns funktioner för att returnera operativsystem, datorns minnestorlek, processortyp, processorhastighet mm. Det finns även funktioner för att gömma Aktivitetsfältet eller Skrivbordet.

APIFunctionAvailable -- Testar om en funktion existerar i en DLL-modul.
ExecuteWin
-- Exekverar eller aktiverar en applikation beroende på om den är aktiv eller inte.
GetMemoryTotalPhys -- Returnerar storleken på datorns internminne i bytes.
GetMemoryAvailPhys --
Returnerar ledigt minne i bytes.
GetMemoryTotalVirtual --
Returnerar storleken på datorns internminne i bytes.
GetMemoryAvailVirtual --
Returnerar ledigt minne i bytes. 
GetCentralProcessorSpeed -- Returnerar klockfrekvensen i MHz som centralprocessorn arbetar i.
GetCentralProcessorType -- Returnerar fakta om centralprocessorn i datorn.
GetWindowsRegisteredOwner -- Returnerar namn och företagsnamn på Windows registrerade ägare.
GetWinVersionAsStr
-- Returnerar Windows versionsnummer i form av en sträng.
HideWinDesktop
-- Gömmer/visar skrivbordet i Windows (inklusive ikonerna).
HideWinTaskBar
-- Gömmer/visar aktivitetsfältet i Windows.
IsApplicationActive -- Testar om en applikation med specificerat process-ID är aktiv.
IsWindowActive -- Testar om ett fönster eller en applikation är aktiv.
IsWindows95 -- Testar om programmet körs i Windows 95.
IsWindows98 -- Testar om programmet körs i Windows 98.
IsWindowsME -- Testar om programmet körs i Windows ME.
IsWindowsNT -- Testar om programmet körs i Windows NT.
IsWindows2000 -- Testar om programmet körs i Windows 2000.
IsWindowsXP -- Testar om programmet körs i Windows XP.
RunApplication -- Startar ett program på olika sätt. Tex gör paus tills programmet har avslutats eller initierats färdigt.
RunApplicationEx -- Startar ett program och lagrar process-ID. Kan bla användas för att stänga ett program utifrån sedan.
TerminateApplication -- Stänger ett program utifrån genom att utnyttja applikationens process-ID.


Mus

I verktyget ingår även ett antal funktioner för hanteringen av musen.   

MouseShowCursor -- Visar eller gömmer musmarkören.
MouseSetCursorPos -- Sätter musens markör till specificerad position.
MouseClipCursor -- Definierar en rektangel på skärmen där musmarkören endast får befinna sig i.
MouseClickLeftButton -- Simulerar tryck med vänster musknapp.
MouseClickRightButton -- Simulerar tryck med höger musknapp. 


Registry

I verktyget finns också funktioner för att förenkla åtkomst till Registry.   

CreateRegKey -- Skapar en nyckel i Registry.
DeleteRegKey
-- Raderar en nyckel i Registry.
GetRegKeyStr
-- Erhåller sträng-värdet från en Registry-nyckel.
GetRegKeyVal -- Erhåller Long-värdet från en Registry-nyckel.
SetRegKeyStr -- Sätter ett sträng-värde vid en Registry-nyckel.
SetRegKeyVal -- Sätter ett Long-värde vid en Registry-nyckel.
DeleteRegVal -- Raderar ett värde ur Registry.


Landsinställningar


Världen blir allt mer internationell och kraven ökar på att programmen lätt ska kunna anpassas till andra länder. I C++ Visual Library 2004 finns ett antal funktioner som returnerar landsinställningar från systemet såsom datumformat, decimaltecken, valuta mm. Det finns även en funktion som automatiskt omvandlar ett tal till aktuellt format.   

AdjustDecimalDelimiter -- Justerar eventuell decimalpunkt i ett tal till aktuellt format.
ConvertToLocaleNrFormat
-- Justerar ett tal till aktuellt format (justerar decimalpunkt och tusentalsavgränsare).
GetLocaleCountryID -- Erhåller nuvarande landskod.
GetLocaleCountryStr -- Erhåller nuvarande land i form av en sträng.
GetLocaleCurrency -- Returnerar aktuell valuta.
GetLocaleDateFormat -- Returnerar sträng med aktuellt datumformat.
GetLocaleDateSep -- Returnerar aktuell datumavgränsare.
GetLocaleDecimalDelimiter -- Returnerar aktuell decimalpunkt.
GetLocaleLanguageID -- Erhåller nuvarande språkkod.
GetLocaleLanguageStr -- Erhåller nuvarande språk i form av en sträng.
GetLocaleThousandDelimiter -- Returnerar aktuell tusentalsavgränsare.
GetLocaleTimeFormat-- Returnerar sträng med aktuell tidsformat.
GetLocaleTimeSep -- Returnerar aktuell tidsavgränsare.


Grafik, fönster och kontroller

I verktyget finns även ett antal funktioner för hantering av grafik, fönster, kontroller och bildskärm. Bla finns funktioner för att skriva ut text med valfri vinkel eller vertikalt samt funktioner för att returnera antal färger eller antal bitar grafikkortet är inställt på. Dessutom ingår en användbar funktion för att sätta tabb-stopp i en listbox.

CenterWin -- Centrerar ett formulär på skärmen.
CompareColors -- Jämför två färger och undersöker vilken av färgerna som är den ljusaste. 
GetDisplayBitsPerPixel -- Returnerar antal färgbitar per pixel som grafikortet är inställd på (vanligtvis 16, 24 eller 32).
GetDisplayCharSize -- Returnerar teckenstorleken för aktuell bildskärm i pixels per tum. 
GetDisplayNumColors -- Returnerar antal färger som grafikkortet är inställd på.
SetListBoxTabs -- Sätter tabb-stopp i en listbox till valfria positioner.
SetWindowTopMost -- Sätter ett fönster till alltid överst, även när den är inaktiv.
SetWindowNotTopMost -- Sätter ett fönster till normalt uppförande.
SplitRGBColor -- Splittrar upp en RGB-färg i dess beståndsdelar (röd, grön, blå).
TextRotate -- Skriver ut text i valfri vinkel.
TextVertical -- Skriver ut text vertikalt.


Tal

I C++ Visual Library 2004 finns ett antal funktioner för hantering av tal. Bla finns funktioner för manipulering av enskilda bitar i heltal samt en snabb funktion som testar om ett tal är ett primtal.    

BitSet -- Sätter en enskild bit i ett tal.
BitClr
-- Nollställer en enskild bit i ett tal.
BitTest
-- Testar om en enskild bit är satt.
Inch_to_mm
-- Omvandlar tum till millimeter.
IsEven
-- Testar om ett tal är jämnt.
IsOdd -- Testar om ett tal är udda.
IsPrimeNumber -- Testar om ett tal är ett primtal. Hastighetsoptimerad mycket snabb assemblerkod.
mm_to_Inch -- Omvandlar millimeter till tum.
Swap -- Byter värde mellan två 16-bitars tal.
SwapL -- Byter värde mellan två 32-bitars tal.


Specialdialogrutor

I C++ Visual Library 2004 ingår ett par specialdialogrutor som man kommer åt via funktionsanrop. Bla ingår en dialogruta för val av startetikett i samband med utskrift av etiketter och en dialogruta för inmatning av lösenord.

XDlgAskPassword -- Öppnar en dialogruta som frågar efter ett lösenord.
XDlgSelectLabel -- Öppnar en dialogruta där en användare kan välja en startetikett i samband med utskrift.
XDlgSelectLabelDefInit -- Initierar XDlgSelectLabel.
XDlgSelectLabelInit -- Initierar XDlgSelectLabel.
XDlgSetLanguage -- Väljer språk för dialogrutorna.


Diverse

AdjustCompanyName -- Formaterar en sträng som innehåller ett företagsnamn.
XAPIGetVersion -- Returnerar aktuellt versionsnummer för XAPI2000.DLL.