Franco,

I would replace:
Code:
Move (dmtGetSignedInfoParam(iparamtype,  0,   pParam, dwParamLen)) to VerifySignedFileResult
with:
Code:
Move (dmtGetSignedInfoParam(iparamtype,  0, AddressOf(pvData), dwParamLen)) to VerifySignedFileResult
and:
Code:
Move (Repeat(character(32), (pvdata.cbData)))   to SerialNumber
with:
Code:
ZeroString pvdata.cbData to SerialNumber
and:
Code:
Move (MemCopy(lpserialnumber ,  pvdata.pbData,    pvdata.cbData)) to iret
with:
Code:
Move (MemCopy(AddressOf(SerialNumber),  pvdata.pbData,    pvdata.cbData)) to iret
Remove all the alloc() and free() stuff