ZLibCompress AS FUNCTION (BYVAL sDestination AS ANY PTR, BYREF nDestinationLen AS ULONG, BYVAL sSource AS ANY PTR, BYVAL nSourceLen AS ULONG) AS LONG
ZLIBCompressBound AS FUNCTION (BYVAL sourceLen AS ULONG) AS ULONG
' Load zLib if it provided
hZlib = LoadLibrary("zlib1.dll")
If hZlib <> 0 Then
ZLibCompress = DyLibSymbol(hZlib, "compress")
ZLibCompressBound = DyLibSymbol(hZlib, "compressBound")
If ZLibCompress = 0 ORELSE ZLibCompressBound = 0 Then
FreeLibrary hZlib
hZlib = 0
End If
End If
Private SUB cPDF.BuildObject(BYREF sObject as STRING, BYVAL sObjectPart AS STRING)
DIM sCRLF AS STRING = CRLF
DIM nObjectSize AS LONG = LEN(sObjectPart)
DIM sNewObject AS STRING
If nObjectSize > 0 Then
sNewObject = SPACE(LEN(sObject) + nObjectSize + LEN(sCRLF))
If LEN(sObject) > 0 Then
memcpy(STRPTR(sNewObject), STRPTR(sObject), LEN(sObject))
memcpy(STRPTR(sNewObject) + LEN(sObject), STRPTR(sObjectPart), LEN(sObjectPart))
Else
memcpy(STRPTR(sNewObject), STRPTR(sObjectPart), LEN(sObjectPart))
End If
memcpy(STRPTR(sNewObject) + LEN(sNewObject) - LEN(sCRLF), STRPTR(sCRLF), LEN(sCRLF))
End If
sObject = sNewObject
End Sub