To compress the data given by the Bytes parameter, it returns the result as a string. If there is an error then the error code is in the ErrorValue property.
With a zip algorithm, it is always up to the implementation or the file format to know the size of the original data. So you have to store the original size yourself.