Not sure if it's the most used way, but I've seen programs that use a large image where all sprites are inside a grid. After that it's a bit of a guess as to wether the seperate images are first loaded into memory or drawn directly from the large image. I believe both options could work.

It's almost the same as using a dximagelist though, only the images would not get inserted inside the exe. And I have learned that not including images in the exe speeds up the game, depending on the number of images, quite a bit.