Thanks for the replies It's nice that some one is prepared to help beginners

I have put FlipToGDISurface to work now and it does what I want, which is to restore the GDI surface. But...

The back buffer needs the component I am using blitting to it before I flip. (not using windowed mode btw)

I have just added this code before the flip, and it just ends the app? no errors? If I remove it, I can happily flip the surface...

What am I doing wrong?

g_pDDSBack.GetDC(dxHDC);
BitBlt(dxHDC,0,0,redtMessages.Width,redtMessages.H eight,frmMain.Canvas.Handle,redtMessages.Left,redt Messages.Top,SRCCOPY);
g_pDDSBack.ReleaseDC(dxHDC);

Thanks