After the surface memory is lost, and restored (with lpDDS->Restore() and the ddutil.cpp function DDReLoadBitmap), locking the surface no longer works. It gives me a DDERR_SURFACELOST error. But it's wrong, because Blt, BltFast, and GetDC work perfectly fine.
Any ideas why this is happening?
------------------
~CGameProgrammer( );