Экранная поверхность directDraw не создаётся
PrimaryBuffer не существует
bool DDClass::DDInit(HWND hWnd)
{
HRESULT result;
_DDSURFACEDESC2 ddsd;
result=DirectDrawCreateEx(NULL, (void **)&lpDD,IID_IDirectDraw7, NULL);
if (result!=DD_OK) return false;
result=lpDD->SetCooperativeLevel(hWnd,DDSCL_EXCLUSIVE |
DDSCL_FULLSCREEN);
if (result!=DD_OK) return false;
result=lpDD->SetDisplayMode(1024,786,8,0,0);
if (result!=DD_OK) return false;
// Create Primary Surface
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags=DDSD_CAPS;
ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;
result=lpDD->CreateSurface(&ddsd,&PrimaryBuffer,NULL);
if (result!=DD_OK) return false;
else
return true;
}