It's always a good idea to say how you solved it so others can benefit from it.

Anyway here's how I do it (without being an expert at DirectDraw):
[pascal]if FAILED(FSurface.GetDC(SurfaceDC)) then Exit;
try
if not BitBlt(SurfaceDC, 0, 0, FWidth, FHeight, FBitmap.Canvas.Handle, 0, 0, SRCCOPY) then Exit;
finally
FSurface.ReleaseDC(SurfaceDC);
end;
[/pascal]