Microsoft DirectX 8.1 (C++)

IFilterGraph::Reconnect

The Reconnect method disconnects this and the pin to which it connects and then reconnects it to the same pin. This enables the details of the connection, such as media type and allocator, to be renegotiated.

Syntax

HRESULT Reconnect(
  IPin *ppin
);

Parameters

ppin

[in] Pointer to the pin to disconnect and reconnect.

Return Value

Returns one of the following values.

Value Description
S_OK Success.
E_FAIL Failure.
E_POINTER Null pointer argument.
VFW_E_NOT_CONNECTED Pin is not connected.
VFW_E_WRONG_STATE Filter is not stopped.

Remarks

This method performs its operation on a separate thread that will not hold any relevant locks. It can be called by a pin or filter to enable renegotiation of the connection. When a transform filter has its input connected, it must agree upon some media type. When the output is connected, it might discover that, to please both its upstream and downstream connections, it would have been better to have chosen a different media type for the upstream connection. The solution is to reconnect the input pin. The caller of this method should ensure (for example, by calling IPin::QueryAccept) that the resulting renegotiation will succeed, because the reconnection process is performed asynchronously and there is no mechanism for reporting or correcting errors.

See Also