// 先初始化COM
CoInitialize(NULL);
** CreateWindow
// 建窗口之后就可以初始化DDraw - 全屏的
if (FAILED(DirectDrawCreateEx(NULL, (LPVOID *) &g_lpDD, IID_IDirectDraw7, NULL)))
{
return FALSE;
}
if (FAILED(g_lpDD->SetCooperativeLevel(g_hWnd, DDSCL_ALLOWREBOOT | DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN)))
{
return FALSE;
}
if (FAILED(g_lpDD->SetDisplayMode(1024, 768, 16, 0/*refresh rate*/, DDSDM_STANDARDVGAMODE)))
{
return FALSE;
}
DDSURFACEDESC2 ddsd = {0}; // surface description structure
ddsd.dwSize = sizeof(ddsd);
// create primary surface
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
g_lpDD->CreateSurface(&ddsd, &g_lpddsPrimary, NULL);
// create a back surface
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | D