This method informs the pin to begin a flush operation.

HRESULT BeginFlush(void);



Return Values

Returns an HRESULT value that depends on the implementation. HRESULT can be one of the following standard constants, or other values not listed.

Value Description
E_FAIL Failure.
E_POINTER Null pointer argument.
E_INVALIDARG Invalid argument.
E_NOTIMPL Method is not supported.
S_OK or NOERROR Success.


When this method is called, the pin is entering flush state. In this case, carry out the following steps.

Set a flushing flag to prevent any more IMemInputPin::Receive methods from succeeding.

Discard any queued data.

Free the pin if it was blocked by the Receive method, if possible.

Pass the IPin::BeginFlush method to any downstream pins.

The BeginFlush notification is passed downstream until it reaches the renderer, which must free any sample it holds. This unblocks other pins (usually in the IMemAllocator::GetBuffer or IMemInputPin::Receive methods).

After BeginFlush is called, all samples passed by the Receive method to the pin, or on another transport, are rejected with S_FALSE until the IPin::EndFlush method is called.

This method is implemented in the base classes by CBaseInputPin::BeginFlush.


DirectShow applications and DirectShow filters have different include file and link library requirements. See Setting Up the Build Environment for more information.

OS Versions: Windows CE 2.12 and later. Version 2.12 requires DXPAK 1.0 or later.

See Also

IPin Interface

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.