Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Informs the pin to begin a flush operation.
HRESULT BeginFlush(void);
Return Values
Returns an HRESULTvalue that depends on the implementation. HRESULTcan be one of the following standard constants, or other values not listed.
E_FAIL | Failure. |
E_POINTER | Null pointer argument. |
E_INVALIDARG | Invalid argument. |
E_NOTIMPL | Method isn't supported. |
S_OK or NOERROR | Success. |
Remarks
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::Receivemethods from succeeding.
Discard any queued data.
Free the pin if it was blocked by the Receivemethod, if possible.
Pass the IPin::BeginFlushmethod to any downstream pins.
The BeginFlushnotification is passed downstream until it reaches the renderer, which must free any sample it holds. This unblocks other pins (usually in the IMemAllocator::GetBufferor IMemInputPin::Receivemethods).
After BeginFlushis called, all samples passed by the Receivemethod to the pin, or on another transport, are rejected with S_FALSE until the IPin::EndFlushmethod is called.
This method is implemented in the base classes by CBaseInputPin::BeginFlush.