A .NET Cabinet file interface

The third and final installment of my article series on reading and writing Microsoft CAB files from .NET is available now on DevSource.  Creating an Object-Oriented Interface to CAB Files describes the CabCompressor and CabDecompressor objects that I created, which wrap the Cabinet SDK functionality in .NET objects and present a familiar .NET event interface to the callbacks.  Full project source code is available from a link at the end of the article.

Accessing Cabinet Files from .NET, Part 2

Just a quick note to say that the second in my three-part series of articles on accessing cabinet files from .NET is available at DevSource.  This article shows how to implement the callback functions and drive the Cabinet SDK functions.

Reading and Writing CAB Files from .NET, Part 1:  Creating a CABINET.DLL Interface

Reading and Writing CAB Files from .NET, Part 2: Using the CABINET.DLL Interface

You can find the code and Visual Studio project files here.

Accessing Cabinet Files from .NET

One of the things that’s kept me busy the last month or so is a project to access Microsoft cabinet files from a .NET program.  I mentioned this in passing before.  It turns out that interfacing with CABINET.DLL from .NET is much more difficult than from C or Pascal, mostly due to calling conventions and string marshaling across the managed/unmanaged layer.

I’m now working on a three-part series of articles on this topic for DevSource.  The first article, Creating a CABINET.DLL Interface, is now available.  To my knowledge (and I looked pretty hard before taking on the project), this is the only published information about accessing cab files from .NET programs.