Share via


IStreamSample::Update (Compact 2013)

3/26/2014

This method performs a synchronous or an asynchronous update on the current sample.

Syntax

HRESULT Update(
  DWORD dwFlags,
  HANDLE hEvent,
  PAPCFUNC pfnAPC,
  DWORD dwAPCData
);

Parameters

  • dwFlags
    [in] Flag that specifies whether the update is synchronous or asynchronous.

    The SSUPDATE_ASYNC flag specifies an asynchronous update, which you can set if both hEvent and pfnAPC are NULL.

    Use SSUPDATE_CONTINUOUS to continuously update the sample until you call the IStreamSample::CompletionStatus method.

  • hEvent
    [in] Handle to an event that this method will trigger when the update is complete.
  • pfnAPC
    [in] Pointer to a Win32 asynchronous procedure call (APC) function that this method will call after it completes the sample update.
  • dwAPCData
    [in] Value that this method passes to the function specified by the pfnAPC parameter.

Return Value

Returns one of the following values.

Value

Description

E_ABORT

The update aborted.

E_INVALIDARG

One of the parameters is invalid.

E_POINTER

One of the parameters is invalid.

MS_E_BUSY

This sample already has a pending update.

MS_S_ENDOFSTREAM

Reached the end of the stream; the sample was not updated.

MS_S_PENDING

The asynchronous update is pending.

S_OK

Success.

Remarks

This method can be used to perform a synchronous or asynchronous update of a sample.

If hEvent and pfnAPC are NULL the update is synchronous unless the SSUPDATE_ASYNC or SSUPDATE_CONTINUOUS flag is specified.

When a synchronous update returns, the result of the function contains the I/O completion status.

You cannot specify values for both hEvent and pfnAPC; the method will fail.

Asynchronous updates might complete before the update returns; in that case, the return value is S_OK.

If you specify an event and the update returns S_OK, this method sets the event on return.

If you specify an APC function and the update returns S_OK, the APC is not queued and the function is not called.

Asynchronous updates that do not complete prior to returning return a value of MS_S_PENDING.

Applications that create multiple streams must read from each of them to avoid having their data blocked.

Requirements

Header

dshow.h

Library

Strmiids.lib

See Also

Reference

IStreamSample Interface