What i've did for PNG, I've that too for DDS I did it mainly for my BRTECH1 engine.

You can download it at http://rootserver.rosseaux.net/stuff/BeRoDDS.pas

The output data format of the LoadDDSImage function is always RGBA32, even when the DDS was DXT1-DXT5 or whatever encoded, for simplify to the loading of DDS files on the API-side.

And it can load only 2D DDS images, no 3D DDS images etc.