bmap_lock can return either 888 or 8888 for 24 bit textures, dependent on how they are stored on the 3D card. Some cards store textures always in 32 bit, regardless if they contain an alpha channel or not. bmap_lock has to return this value because the pixel functions need to know if the bitmap is stored in 24 bit or 32 bit format.

Pixel_for_bmap would not return anything useful for DDS files. They don't contain pixels, but image sections with palettes. But you could convert the DDS file into another format, like TGA, that contains pixels.