Somy last post on passing bstrs as longs and then stealing the ref, didnt work for me today.
its so annoying that vb6 screws around with any arguments/return values passed as string. But there is a way that it wont, and that is if you pass the string inside a variant.
So the following examples shows base64/gzip/zlib functions working on byte arrays and strings inside of variants. So one function prototype allows you pass a string or bytearray to the functions and it will figure it out on the fly.