Hi,
I'm not sure you can do that like that. lock.pBits is allocated with HeapAlloc, and it looks like DIB_CreateDIBSection expects memory allocated with VirtualAlloc, judging by a quick look at the code and the commit comment here:
You could be right with this: I've checked in ddraw, and it allocates the surface memory with VirtualAlloc. I'll look at this
What is the relevant difference between HeapAlloc and VirtualAlloc? I've read the msdn pages, and I couldn't find anything that would make a crucial difference for a bitmap.
Stefan