## IAMMediaStream Interface

The IAMMediaStream interface handles the internal connections between DirectShow filters and filter graphs in applications that use multimedia streaming. This enables applications to automatically negotiate the transfer and conversion of data from the source to the application without having to write code to handle the connection, transfer of data, data conversion, and actual data rendering or file storage. This provides a uniform and predictable method of data access and control.

When to Implement

This interface isn't intended for implementation by application developers.

When to Use

This interface isn't intended for use by application developers.

Methods in Vtable Order

IUnknown methods | Description
QueryInterface | Retrieves pointers to supported interfaces.
AddRef | Increments the reference count.
Release | Decrements the reference count.

IAMMediaStream methods | Description
Initialize | Creates and initializes a new media stream with the specified stream type and purpose ID.
SetState | Sets the filter state.
JoinAMMultiMediaStream | The IAMMultiMediaStream::AddMediaStream method calls this method, which adds the specified media stream to the current multimedia stream.
JoinFilter | Connects a media stream to a media stream filter in the underlying filter graph.
JoinFilterGraph | Connects a media stream filter to a filter graph.

###

IAMMediaStream::Initialize

IAMMediaStream Interface

Creates and initializes a new media stream with the specified stream type and purpose ID.

HRESULT Initialize(
IUnknown *pSourceObject,
DWORD dwFlags,
REFMSPID PurposeID,
STREAM_TYPE StreamType
)

##### Parameters

pSourceObject
  [in] Pointer to an IUnknown source object.
dwFlags
  [in] Flags. Must be zero.
PurposeID
  [in] Purpose ID for the new media stream.
StreamType
  [in] A STREAM_TYPE enumeration value that specifies the new media stream's media type.

##### Return Values

Returns S_OK if successful or E_POINTER if one or more of the required parameters are invalid.

###

IAMMediaStream::JoinAMMultiMediaStream

IAMMediaStream Interface

The IAMMultiMediaStream::AddMediaStream method calls this method, which adds the specified media stream to the current multimedia stream.

HRESULT JoinAMMultiMediaStream(
IAMMultiMediaStream* pAMMultiMediaStream
)

##### Parameters

pAMMultiMediaStream
  [in] Specifies the IAMMultiMediaStream object to add the current media stream to.

##### Return Values

Returns S_OK if successful or MS_E_SAMPLEALLOC if the media stream already has allocated stream samples.

##### Remarks

Don't increment the reference count of the supplied multimedia stream because it is already accounted for when created.

Applications should not call this method.

###

IAMMediaStream::JoinFilter

IAMMediaStream Interface

Connects a media stream to a media stream filter in the underlying filter graph.

HRESULT JoinFilter( )

##### Return Values

Returns S_OK if successful or E_POINTER if one or more of the required parameters are NULL.

##### Remarks

Don't increment the reference count for the specified media stream filter.

Applications should not call this method.

###

IAMMediaStream::JoinFilterGraph

IAMMediaStream Interface

Connects a media stream filter to a filter graph.

HRESULT JoinFilterGraph(
IFilterGraph* pGraph
)

##### Parameters

pGraph
  [in] Indicates the current media stream filter to add to the specified filter graph.

##### Return Values

Returns S_OK if successful or E_POINTER if one or more of the required parameters are NULL.

##### Remarks

Don't increment the reference count of the specified filter graph.

Applications should not call this method.

###

IAMMediaStream::SetState

IAMMediaStream Interface

Sets the filter state.

HRESULT SetState(
FILTER_STATE State
)

##### Parameters

State
  [in] Sets the filter's state, as specified by the FILTER_STATE enumerated type.

##### Return Values

Returns S_OK if successful or E_INVALIDARG if the State parameter is invalid..

##### Remarks

Applications should not call this method.

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.