What would you want it to do though?
i mean i kinda understand what you want... but like do you want it to extract the files and assign them within Pro, or what?
I mean i think GuyS added WinZip compression within his Zip tools - and as all a PK3 (which i believe is the pack format that DBS uses is then simply use that ...
#define IDPAKHEADER (('K'<<24)+('C'<<16)+('A'<<8)+'P')
typedef struct
{
char name[56];
int filepos, filelen;
} dpackfile_t;
typedef struct
{
int ident; // == IDPAKHEADER
int dirofs;
int dirlen;
} dpackheader_t;
#define MAX_FILES_IN_PACK 4096
thats the Quake2 Pak format
if you change the int to dwords and the char [56] to 56 individual ascii character bytes

you can begin to understand how it works quite simply
file position is the position in bytes to a file, file len is the count of the files ... and the offset, well doesn't take a rocket scientist to figure that out
just read and write dwords of data between them and et voila, you have the files
Toad... you're use is flawed - because some service packed version of the Windows have some features available, its far better to simply use a function to get the actual version and build, that way you're completely certain that it is what you think it is.
I mean for that very reason above is why DirectX9 believes my laptop is still DirectX 8.1 rather than 9.0 - because its searching for features in files which haven't changed because of the Debug, yet the retail version have.
But as it primarily uses the Debug rather than retail thats where it looks.
Its insane but that Microsoft for ya
Anata aru kowagaru no watashi! 