Here is the rewritten version of this UDF. See my comments HERE.
Please test the shit out of this thing. It was a major headache, and I want to make sure I didn't miss something. Thanks!
Update 2013/05/28
- Fixed missing @error return in _Zip_ItemExists
- Clarified a few @error return value meanings
- Added an additional check and @error code to _Zip_DeleteItem
- Clarified some of the header notes, esp regarding behavior on XP Update 2011/12/08
- Fixed recursion in ListAll function Up