[创建一个DirectDraw对象] 
   
  LPDIRECTDRAW lpDD; 
  HRESULT ddrval; 
  ddrval = DirectDrawCreate( NULL, &lpDD, NULL ); 
if( ddrval != DD_OK ) 
  { 
  // 在这里输出一些错误检测代码 
  } 
   
  [设置协作级别] 
   
  ddrval = lpDD->SetCooperativeLevel( hWnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN ); 
  if( ddrval != DD_OK) 
  { 
  // 在这里输出一些错误检测代码 
  } 
   
  [设置视频模式] 
   
  ddrval = lpDD->SetDisplayMode( 640, 480, 8); 
  if( ddrval != DD_OK) 
  { 
  // 在这里输出一些错误检测代码 
  } 
   
  [创建主表面] 
   
  LPDIRECTDRAWSURFACE lpDDSPrimary; 
  DDURFACEDESC ddsd; 
  HRESULT ddrval; 
   
  // 清除结构中所有的数据 
  memset( &&ddsd, 0, sizeof(ddsd) ); 
   
  // 设置标记 
  ddsd.dwSize = sizeof( ddsd ); 
  ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT; 
  ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX; 
  ddsd.dwBackBufferCount = 1; 
   
  // 创建表面 
  ddrval = lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL ); 
   
  if( ddrval != DD_OK ) 
  { 
  // 在这里输出一些错误检测代码 
  } 
   
  [创建后表面] 
   
  DDSCAPS ddscaps; 
   
  LPDIRECTDRAWSURFACE lpDDSBack; ddscaps.dwCaps = DDSCAPS_BACKBUFFER; 
  ddrval = lpDDSPrimary->GetAttachedSurface( &ddscaps, &lpDDSBack ); 
  if( ddrval != DD_OK ) 
  { 
  // 在这里输出一些错误检测代码 
  } 
   
  [创建离屏表面] 
   
  LPDIRECTDRAWSURFACE lpDDSOffscreen; 
  DDSURFACEDESC ddsd; 
  HRESULT ddrval; 
   
  ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; 
  ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; 
  ddsd.dwHeight = 480; 
  ddsd.dwWidth = 640; 
   
  ddrval = lpDD->CreateSurface( &ddsd, &lpDDSOffscreen, NULL ); 
  if( ddrval != DD_OK ) 
  { 
  // 在这里输出一些错误检测代码 
  }