ちょっとした小ネタ程度ですが。
プログラムにアーカイバ機能をもたせようとする時に、統合アーカイバプロジェクトが提供するDLLを利用するというのが一つの手です。
ですがZIPファイルだけに限って言えば、Windows XP以降はZIPファイルを一つのフォルダとして扱うことが出来るので、これを使うと普通のファイル操作だけでZIPファイルの操作が出来ます。
問題は新しい圧縮フォルダ、即ち新しいZIPファイルの生成です。ファイルを1つも格納していないZIPファイルは、ZIPファイルのフッターだけが存在するファイルを用意すれば出来上がります。
即ち、
BYTE newZip[] = { 'P', 'K', 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
という配列を用意しておいて、ファイルに書き出せば新しいZIPファイルになります。