Ok. Bad Pam. Slap on the wrist for posting poorly documented code.
I'll try to clean up the code and repost it with comments.
Each Sprite has a member called SpriteData which holds the bitmap for the sprite. In my case it's actually frames for the animation.
What I do in SetSpriteData() is pass a Surface that I have loaded in GameInit() from a resource.
To copy the contents of the passed-in Surface to the SpriteData surface, I change the rendering target from the default, which is the BackBuffer, to my SpriteData surface. Then I can Blit the passed-in surface onto the SpriteData surface. Then I set the rendering target back to the default.
I got this part from this thread:
I am definitely taking a peformance hit by using all these classes. But, for my purposes, the performance is still more than adequate. If I get too many sprites going at once, then I'll see it I suppose.
Pam
All the easy problems have been solved.