Lol, I totally didn't see your post, pka4916...
I came in here to edit a few of your posts to test my new syntax highlighter.
Anyways, if, by some odd reason, you manage to read this, from the looks of your declare, VarPtr is returning the pointer to an Object rather than a variable. In VB6 (and I suspect in .NET) Objects are actually stored as pointers.
I'm still betting that it's the fact that you can't get a pointer to the buffer.
bytbuffC will have data, cause it's the input you're feeding into zlib.
bytbuff is the output you're getting from zlib, so will initially be empty.
If, after running the function, bytBuff is still empty, it means that zlib isn't doing any decompression. So it's a pointer issue still.