这是个例子里的overlay初始化部分,希望对你有用  DDPIXELFORMAT ddPixelFormat;
  DDCAPS caps;
  ZeroMemory(&caps, sizeof(DDCAPS));
  caps.dwSize = sizeof(DDCAPS);   if (m_pDD->GetCaps(&caps, NULL)==DD_OK)
  {
    if (caps.dwCaps & DDCAPS_OVERLAY)
{
  ddPixelFormat.dwFlags = DDPF_FOURCC;
  ddPixelFormat.dwFourCC = mmioFOURCC('Y','U','Y','2');
  ddPixelFormat.dwYUVBitCount = 16;   ZeroMemory(&ddsd, sizeof(DDSURFACEDESC2));
  ddsd.dwSize = sizeof(DDSURFACEDESC2);
  ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
  ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY | DDSCAPS_VIDEOMEMORY;
  ddsd.dwWidth = MPEG2GetWidth();
  ddsd.dwHeight = MPEG2GetHeight();   memcpy(&(ddsd.ddpfPixelFormat), &ddPixelFormat, sizeof(DDPIXELFORMAT));   if(FAILED(m_pDD->CreateSurface(&ddsd, &m_pddsOverlay, NULL)))
return FALSE; } else {
  MessageBox(hWnd,GET_ERR(31),GST(ERROR_SECTION),MB_OK);
  return FALSE;
}   }