### IDirectDrawVideoPort::WaitForSync

The IDirectDrawVideoPort::WaitForSync method waits for VSYNC or until a given scan line is being drawn.

HRESULT WaitForSync(

DWORD dwFlags,

DWORD dwLine,

DWORD dwTimeout

);

##### Parameters

dwFlags
  Flag specifying how the method will wait for the video VSYNC or the specified line number.

  DDVPWAIT_BEGINVBLANK | Return at the start of the vertical blanking interval.
  DDVPWAIT_ENDVBLANK | Return at the end of the vertical blanking interval .
  DDVPWAIT_LINE | Return when the video counter either reaches or passes the line specified by the dwLine parameter.

dwLine
  The video line determining when the method should return, relative to the field height, before prescaling. This parameter is ignored if the dwFlags parameter is set to DDVPWAIT_BEGINVBLANK or DDVPWAIT_ENDVBLANK.
dwTimeout
  Amount of time, in milliseconds, that the method will wait for the next video vertical blank before timing out. If this parameter is 0, the method waits 3 times the value specified in the dwMicrosecondsPerField member of the DDVIDEOPORTDESC.

##### Return Values

If the method succeeds, the return value is DD_OK.

If the method fails, the return value may be one of the following error values:

DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_UNSUPPORTED
DDERR_VIDEONOTACTIVE
DDERR_WASSTILLDRAWING

##### Remarks

This method helps the caller synchronize with the video vertical blank interval or with an arbitrary line of video data. The method blocks the calling thread until either the video VSYNC occurs or when the video line counter matches the specified line number.