Sorry, that was the method I posted, I happened to paste the wrong function name; this is the entire function with line 852 marked:
Care to give me the actual data type of 'mp_directDraw' ? It seems that as you supposed, it does not use the correct function pointer when you use 'mp_directDraw->CreateSurface' and call instead 'EnumDisplayModes' thus, of course, leading to a crash as the callback function is not filled in properly.
The only thing I find strange is that you call CreateSurface with the 3rd argument being NULL and we should see that in the trace for 'EnumDisplayModes'...
Lionel