You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
481 lines
20 KiB
481 lines
20 KiB
//*****************************************************************************
|
|
//
|
|
// Microsoft Windows Media
|
|
// Copyright (C) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// FileName: streamdescription.idl
|
|
//
|
|
// Abstract:
|
|
//
|
|
//*****************************************************************************
|
|
|
|
cpp_quote("//*****************************************************************************")
|
|
cpp_quote("//")
|
|
cpp_quote("// Microsoft Windows Media")
|
|
cpp_quote("// Copyright (C) Microsoft Corporation. All rights reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("// Automatically generated by Midl from streamdescription.idl" )
|
|
cpp_quote("//")
|
|
cpp_quote("// DO NOT EDIT THIS FILE.")
|
|
cpp_quote("//")
|
|
cpp_quote("//*****************************************************************************")
|
|
|
|
cpp_quote("#if _MSC_VER > 1000")
|
|
cpp_quote("#pragma once")
|
|
cpp_quote("#endif // _MSC_VER > 1000")
|
|
|
|
import "objidl.idl";
|
|
|
|
import "WMSBuffer.idl";
|
|
import "WMSContext.idl";
|
|
|
|
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSStreamHeader, 0x3309C903,0x10A4,0x11d2,0x9E,0xEE,0x00,0x60,0x97,0xD2,0xD7,0xCF );" )
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSStreamHeaderList, 0x42176202,0x2B30,0x11d2,0x9E,0xF7,0x00,0x60,0x97,0xD2,0xD7,0xCF );" )
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSContentDescriptionList, 0x105d6f73, 0x6df0, 0x11d2, 0x9f, 0x14, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );" )
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSStreamSwitchDescriptionList, 0x75c3017c, 0x6b3a, 0x4e25, 0xbe, 0x9f, 0xa9, 0x92, 0x7f, 0x4d, 0xd0, 0x58 );")
|
|
|
|
// {52769631-38AA-11d2-9EFA-006097D2D7CF}
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSUnknownStreamFormat, 0x52769631, 0x38aa, 0x11d2, 0x9e, 0xfa, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );")
|
|
|
|
// {52769632-38AA-11d2-9EFA-006097D2D7CF}
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSUnknownStreamType, 0x52769632, 0x38aa, 0x11d2, 0x9e, 0xfa, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );")
|
|
|
|
// {52769631-38AA-11d2-9EFA-006097D2D7CF}
|
|
cpp_quote( "EXTERN_GUID( IID_IWMSUnknownContainerFormat, 0x52769631, 0x38aa, 0x11d2, 0x9e, 0xfa, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );")
|
|
|
|
|
|
interface IWMSContentDescriptionList;
|
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// HEADERS
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// This describes the data format of one stream, including the codec.
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(3309C903-10A4-11d2-9EEE-006097D2D7CF),
|
|
version(9.0),
|
|
helpstring("Contains methods that describe the header for a specific stream.")
|
|
]
|
|
interface IWMSStreamHeader : IUnknown
|
|
{
|
|
// This identifies the stream format.
|
|
// The GUID for ASF is: { 0x75b22630,0x668e,0x11cf,0xa6,0xd9,0x00,0xaa,0x00,0x62,0xce,0x6c }
|
|
[helpstring("Retrieves the stream format.")] HRESULT
|
|
GetFormat( [out] GUID *pFormat );
|
|
[helpstring("Specifies the stream format.")] HRESULT
|
|
SetFormat( [in] GUID Format );
|
|
|
|
// This tells you whether a stream is audio/video/etc. The GUID's
|
|
// for audio and video are:
|
|
//Audio: { 0xD6E229E2,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE }
|
|
//Video: { 0xD6E229E3,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE }
|
|
//Image: {0xD6E229E4,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE }
|
|
//Text: {0xD6E229E6,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE }
|
|
//Script Commands: { 0xD6E229E8,0x35DA,0x11D1,0x90,0x34,0x00,0xA0,0xC9,0x03,0x49,0xBE }
|
|
// Other GUID's may be defined in a later release.
|
|
[helpstring("Retrieves the stream type.")] HRESULT
|
|
GetStreamType( [out] GUID *pStreamType );
|
|
[helpstring("Specifies the stream type.")] HRESULT
|
|
SetStreamType( [in] GUID StreamType );
|
|
|
|
[helpstring("Retrieves the value for an IWMSStreamHeader integer attribute.")] HRESULT
|
|
GetIntegerAttribute( [in] DWORD dwAttributeId, [out] DWORD *pdwAttribute );
|
|
[helpstring("Specifies the value for an IWMSStreamHeader integer attribute.")] HRESULT
|
|
SetIntegerAttribute( [in] DWORD dwAttributeId, [in] DWORD dwAttribute );
|
|
|
|
[helpstring("Retrieves the value for an IWMSStreamHeader string attribute.")] HRESULT
|
|
GetStringAttribute( [in] DWORD dwAttributeId, [out] BSTR *pszAttribute );
|
|
[helpstring("Specifies the value for an IWMSStreamHeader string attribute.")] HRESULT
|
|
SetStringAttribute( [in] DWORD dwAttributeId, [in] BSTR szAttribute );
|
|
|
|
[helpstring("Retrieves the value for an extended attribute defined by a plug-in.")] HRESULT
|
|
GetExtendedAttribute( [in] DWORD dwValueName, [out] VARIANT *pVariantValue );
|
|
[helpstring("Specifies the name and value for an extended attribute defined by a plug-in.")] HRESULT
|
|
SetExtendedAttribute( [in] DWORD dwValueName, [in] VARIANT VariantValue );
|
|
[helpstring("Retrieves the name and value for an extended attribute defined by a plug-in.")] HRESULT
|
|
GetNthExtendedAttribute(
|
|
[in] DWORD dwIndex,
|
|
[out] DWORD *pdwValueName,
|
|
[out] VARIANT *pVariantValue
|
|
);
|
|
[helpstring("Retrieves the number of extended attributes.")] HRESULT
|
|
GetNumExtendedAttributes( [out] DWORD *pdwValueName );
|
|
|
|
[helpstring("Creates a copy of the IWMSStreamHeader object.")] HRESULT
|
|
CloneStreamHeader( [out] IWMSStreamHeader **ppHeader );
|
|
};
|
|
|
|
// IWMSStreamHeader attributes
|
|
cpp_quote("#define WMS_STREAM_ID 0")
|
|
cpp_quote("#define WMS_STREAM_MIN_BITRATE 1")
|
|
cpp_quote("#define WMS_STREAM_MAX_BITRATE 2")
|
|
cpp_quote("#define WMS_STREAM_AVG_BITRATE 3")
|
|
cpp_quote("#define WMS_STREAM_MAX_PACKET_SIZE 4")
|
|
cpp_quote("#define WMS_STREAM_AVG_PACKET_SIZE 5")
|
|
cpp_quote("#define WMS_STREAM_PREROLL 6")
|
|
cpp_quote("#define WMS_STREAM_FLAGS 7")
|
|
cpp_quote("#define WMS_STREAM_NAME 8")
|
|
cpp_quote("#define WMS_STREAM_SHARING_GROUP 9")
|
|
cpp_quote("#define WMS_STREAM_SHARING_BANDWIDTH 10")
|
|
// Increase this value when you add a IWMSStreamHeader attribute above.
|
|
cpp_quote("#define WMS_NUM_STREAMHEADER_ATTRIBUTES 11")
|
|
|
|
// Flags stored in WMS_STREAM_FLAGS
|
|
cpp_quote("#define WMS_STREAM_HAS_NON_KEY_FRAMES 0x0001")
|
|
cpp_quote("#define WMS_STREAM_RELIABLE_FLAG 0x0002")
|
|
cpp_quote("#define WMS_STREAM_CONCEALED_FLAG 0x0004")
|
|
|
|
// Some values used for streaming decisions independent of protocol
|
|
cpp_quote("#define WMS_ASF_THRESHOLD_DURATION 500")
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(42176202-2B30-11d2-9EF7-006097D2D7CF),
|
|
version(9.0),
|
|
helpstring("Contains a collection of IWMSStreamHeader objects and methods that describe each stream in a multimedia stream.")
|
|
]
|
|
interface IWMSStreamHeaderList : IUnknown
|
|
{
|
|
[helpstring("Retrieves the number of IWMSStreamHeader objects in the collection")] HRESULT
|
|
GetHeaderCount( [out] DWORD *pdwNumHeaders );
|
|
[helpstring("Retrieves an IWMSStreamHeader object.")] HRESULT
|
|
GetHeader(
|
|
[in] DWORD dwHeaderNum,
|
|
[out] IWMSStreamHeader **ppHeader
|
|
);
|
|
|
|
[helpstring("Adds a new IWMSStreamHeader object to the collection.")] HRESULT
|
|
AppendHeader( [in] IWMSStreamHeader *pHeader );
|
|
[helpstring("Removes all IWMSStreamHeader objects in the collection.")] HRESULT
|
|
RemoveAllHeaders();
|
|
|
|
// This identifies the stream format.
|
|
// The GUID for ASF is: { 0x75b22630,0x668e,0x11cf,0xa6,0xd9,0x00,0xaa,0x00,0x62,0xce,0x6c }
|
|
[helpstring("Retrieves the stream format for the multimedia stream.")] HRESULT
|
|
GetContainerFormat( [out] GUID *pFormat );
|
|
[helpstring("Specifies the stream format for the multimedia stream.")] HRESULT
|
|
SetContainerFormat( [in] GUID Format );
|
|
|
|
[helpstring("Retrieves the unique identifier for the multimedia stream.")] HRESULT
|
|
GetDataVersion( [out] GUID *pFormat );
|
|
[helpstring("Specifies the unique identifier for the multimedia stream.")] HRESULT
|
|
SetDataVersion( [in] GUID Format );
|
|
|
|
[helpstring("Retrieves the actual header for the multimedia stream.")] HRESULT
|
|
GetNativeContainerHeader(
|
|
[out] INSSBuffer **ppBuffer,
|
|
[out] DWORD *pdwOffset,
|
|
[out] DWORD *pdwLength
|
|
);
|
|
[helpstring("Specifies the actual header for the multimedia stream.")] HRESULT
|
|
SetNativeContainerHeader(
|
|
[in] INSSBuffer *pBuffer,
|
|
[in] DWORD dwOffset,
|
|
[in] DWORD dwLength
|
|
);
|
|
|
|
[helpstring("Retrieves the IWMSContentDescriptionList associated with this IWMSStreamHeaderList object.")] HRESULT
|
|
GetContentDescription( [out] IWMSContentDescriptionList **ppDescription );
|
|
[helpstring("Specifies the IWMSContentDescriptionList associated with this IWMSStreamHeaderList object.")] HRESULT
|
|
SetContentDescription( [in] IWMSContentDescriptionList *pDescription );
|
|
|
|
[helpstring("Retrieves the value for an IWMSStreamHeaderList integer attribute.")] HRESULT
|
|
GetIntegerAttribute( [in] DWORD dwAttributeId, [out] DWORD *pdwAttribute );
|
|
[helpstring("Specifies the value for an IWMSStreamHeaderList integer attribute.")] HRESULT
|
|
SetIntegerAttribute( [in] DWORD dwAttributeId, [in] DWORD dwAttribute );
|
|
|
|
[helpstring("Retrieves the value for an IWMSStreamHeaderList string attribute.")] HRESULT
|
|
GetStringAttribute( [in] DWORD dwAttributeId, [out] BSTR *pszAttribute );
|
|
[helpstring("Specifies the value for an IWMSStreamHeaderList string attribute.")] HRESULT
|
|
SetStringAttribute( [in] DWORD dwAttributeId, [in] BSTR szAttribute );
|
|
|
|
[helpstring("Retrieves the value for an extended attribute defined by a plug-in for this IWMSStreamHeaderList object.")] HRESULT
|
|
GetExtendedAttribute( [in] DWORD dwValueName, [out] VARIANT *pVariantValue );
|
|
[helpstring("Specifies the name and value for an extended attribute defined by a plug-in for this IWMSStreamHeaderList object.")] HRESULT
|
|
SetExtendedAttribute( [in] DWORD dwValueName, [in] VARIANT VariantValue );
|
|
[helpstring("Retrieves the name and value for an extended attribute defined by a plug-in for this IWMSStreamHeaderList object.")] HRESULT
|
|
GetNthExtendedAttribute(
|
|
[in] DWORD dwIndex,
|
|
[out] DWORD *pdwValueName,
|
|
[out] VARIANT *pVariantValue
|
|
);
|
|
[helpstring("Retrieves the number of extended attributes.")] HRESULT
|
|
GetNumExtendedAttributes( [out] DWORD *pdwValueName );
|
|
|
|
[helpstring("Creates a copy of the IWMSStreamHeaderList object.")] HRESULT
|
|
CloneStreamHeaderList(
|
|
[in] IWMSBufferAllocator *pBufferAllocator,
|
|
[out] IWMSStreamHeaderList **ppHeader
|
|
);
|
|
|
|
[helpstring("Specifies the playlist generation ID that identifies the playlist entry that a command from a client is associated with.")] HRESULT
|
|
RecordPlaylistGenerationId(
|
|
[in] IWMSCommandContext *pCommand
|
|
);
|
|
[helpstring("Retrieves the playlist generation ID that identifies the playlist entry that a command from a client is associated with.")] HRESULT
|
|
CheckPlaylistGenerationId(
|
|
[in] IWMSCommandContext *pCommand
|
|
);
|
|
};
|
|
|
|
|
|
|
|
// Attributes used by IWMSStreamHeaderList::GetIntegerAttribute and
|
|
// IWMSStreamHeaderList::SetIntegerAttribute
|
|
cpp_quote("#define WMS_TOTAL_MIN_BITRATE 0")
|
|
cpp_quote("#define WMS_TOTAL_MAX_BITRATE 1")
|
|
cpp_quote("#define WMS_TOTAL_AVG_BITRATE 2")
|
|
cpp_quote("#define WMS_CONTAINER_FLAGS 3")
|
|
cpp_quote("#define WMS_CONTAINER_DURATION_LO 4")
|
|
cpp_quote("#define WMS_CONTAINER_DURATION_HI 5")
|
|
cpp_quote("#define WMS_CONTAINER_MAX_PACKET_SIZE 6")
|
|
cpp_quote("#define WMS_CONTAINER_PLAYLIST_ENTRY_NAME 7")
|
|
cpp_quote("#define WMS_TOTAL_PACKETS_LO 8")
|
|
cpp_quote("#define WMS_TOTAL_PACKETS_HI 9")
|
|
cpp_quote("#define WMS_STREAM_PLAYLIST_GENERATION_ID 10")
|
|
cpp_quote("#define WMS_CONTAINER_FILESIZE_LO 11")
|
|
cpp_quote("#define WMS_CONTAINER_FILESIZE_HI 12")
|
|
cpp_quote("#define WMS_STREAM_DISTRIBUTION_PLAYLIST_GENERATION_ID 13")
|
|
cpp_quote("#define WMS_CONTAINER_LOG_PHYSICAL_URL 14")
|
|
cpp_quote("#define WMS_CONTAINER_IS_VBR 15")
|
|
cpp_quote("#define WMS_STREAM_BROADCAST_GENERATION_ID 16")
|
|
cpp_quote("#define WMS_STREAM_DISTRIBUTION_BROADCAST_GENERATION_ID 17")
|
|
|
|
// Increase this value when you add an attribute to StreamheaderList.
|
|
cpp_quote("#define WMS_NUM_STREAMHEADERLIST_ATTRIBUTES 18")
|
|
|
|
// Flags stored in WMS_CONTAINER_FLAGS attribute.
|
|
cpp_quote("#define WMS_CONTAINER_BROADCAST 0x0001")
|
|
cpp_quote("#define WMS_CONTAINER_CANSEEK 0x0002")
|
|
cpp_quote("#define WMS_CONTAINER_CANSTRIDE 0x0004")
|
|
cpp_quote("#define WMS_CONTAINER_LIVE 0x0008")
|
|
cpp_quote("#define WMS_CONTAINER_RECORDABLE 0x0010")
|
|
cpp_quote("#define WMS_CONTAINER_PART_OF_PLAYLIST 0x0020")
|
|
cpp_quote("#define WMS_CONTAINER_ONDEMAND_PLAYLIST_EMULATING_BCAST 0x0040")
|
|
cpp_quote("#define WMS_CONTAINER_PART_OF_WRAPPER_PLAYLIST 0x0080")
|
|
cpp_quote("#define WMS_CONTAINER_ALLOW_PLAYLIST_SKIP_FORWARD 0x0100")
|
|
cpp_quote("#define WMS_CONTAINER_ALLOW_PLAYLIST_SKIP_BACKWARD 0x0200")
|
|
cpp_quote("#define WMS_CONTAINER_SEEKABLE_EMULATING_BROADCAST 0x0400")
|
|
cpp_quote("#define WMS_CONTAINER_LAST_ENTRY_IN_PLAYLIST 0x0800")
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CONTENT DESCRIPTIONS
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(105D6F73-6DF0-11d2-9F14-006097D2D7CF),
|
|
version(9.0),
|
|
helpstring("Contains a collection of content description contexts for different languages.")
|
|
]
|
|
interface IWMSContentDescriptionList : IUnknown
|
|
{
|
|
[helpstring("Retrieves the number of content descriptions contexts in the collection.")] HRESULT
|
|
GetDescriptionCount( [out] DWORD *pdwNumDescriptions );
|
|
|
|
[helpstring("Retrieves a specific content description context from the collection by index.")] HRESULT
|
|
GetIndexedDescription(
|
|
[in] DWORD dwDescriptionNum,
|
|
[out] LPWSTR *pstrLanguage,
|
|
[out] IWMSContext **ppDescription
|
|
);
|
|
|
|
[helpstring("Retrieves the content description context for a specific language.")] HRESULT
|
|
GetDescriptionInLanguage(
|
|
[in] LPCWSTR pstrLanguage,
|
|
[out] IWMSContext **ppDescription
|
|
);
|
|
|
|
[helpstring("Adds a content description context for a specific language to the collection.")] HRESULT
|
|
AppendDescription(
|
|
[in] LPCWSTR pstrLanguage,
|
|
[in] IWMSContext *pDescription
|
|
);
|
|
|
|
[helpstring("Removes all of the context description contexts in the collection.")] HRESULT
|
|
RemoveAllDescriptions();
|
|
|
|
[helpstring("Retrieves the playlist generation ID.")] HRESULT
|
|
GetPlaylistGenid( DWORD *pdwPlaylistGenerationId );
|
|
|
|
[helpstring("Specifies the playlist generation ID.")] HRESULT
|
|
SetPlaylistGenid( DWORD dwPlaylistGenerationId );
|
|
|
|
[helpstring("Retrieves the broadcast ID.")] HRESULT
|
|
GetBroadcastid( DWORD *pdwPlaylistGenerationId );
|
|
|
|
[helpstring("Specifies the broadcast ID.")] HRESULT
|
|
SetBroadcastid( DWORD dwPlaylistGenerationId );
|
|
|
|
[helpstring("Adds or sets a VARIANT value property for a specific context property in all context description contexts.")] HRESULT
|
|
SetValueOnAllDescriptions(
|
|
[in] LPCWSTR pstrName,
|
|
[in] long lNameHint,
|
|
[in] VARIANT Value,
|
|
[in] long lOptions
|
|
);
|
|
|
|
[helpstring("Removes the specified property from all context description contexts.")] HRESULT
|
|
RemoveValueFromAllDescriptions(
|
|
[in] LPCWSTR pstrName,
|
|
[in] long lNameHint,
|
|
[in] long lOptions
|
|
);
|
|
};
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// STREAM SWITCH DATA STRUCTURE
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef [public] enum
|
|
{
|
|
WMS_DATA_STREAM_MIN = 0x00000000,
|
|
WMS_DATA_STREAM_MAX = 0x0000FFFE,
|
|
WMS_NO_STREAM = 0x0000FFFF,
|
|
WMS_RETRANSMISSION_STREAM_MIN = 0x00010000,
|
|
WMS_RETRANSMISSION_STREAM_MAX = 0x0001FFFE,
|
|
WMS_FEC_STREAM_MIN = 0x00020000,
|
|
WMS_FEC_STREAM_MAX = 0x0002FFFE
|
|
|
|
} WMS_STREAM_CONSTANTS;
|
|
|
|
cpp_quote( "#define IS_DATA_STREAM(x) ( ( x ) >= WMS_DATA_STREAM_MIN && ( x ) <= WMS_DATA_STREAM_MAX )" )
|
|
cpp_quote( "#define IS_RETRANSMISSION_STREAM(x) ( ( x ) >= WMS_RETRANSMISSION_STREAM_MIN && ( x ) <= WMS_RETRANSMISSION_STREAM_MAX )" )
|
|
cpp_quote( "#define IS_FEC_STREAM(x) ( ( x ) >= WMS_FEC_STREAM_MIN && ( x ) <= WMS_FEC_STREAM_MAX )" )
|
|
|
|
|
|
//////////////////////////////////////////
|
|
typedef [public] enum
|
|
{
|
|
WMS_NO_MODIFIER = 0,
|
|
WMS_THINNING_MODIFIER = 1,
|
|
WMS_REMOVE_ALL_FRAMES_MODIFIER = 2
|
|
|
|
} WMS_STREAM_MODIFIERS;
|
|
|
|
|
|
//////////////////////////////////////////
|
|
// WMS_THINNING_MODIFIER
|
|
typedef [public] enum
|
|
{
|
|
WMS_NO_THINNING = 0,
|
|
WMS_INTERMEDIATE_FRAME_THINNING = 1,
|
|
WMS_REMOVE_ALL_FRAMES = 2
|
|
|
|
} WMS_THINNING_MODIFIER_TYPES;
|
|
|
|
|
|
//////////////////////////////////////////
|
|
typedef struct CWMSStreamSwitch
|
|
{
|
|
WORD wPlaylistSequenceNumber;
|
|
|
|
DWORD dwOldStreamNumber;
|
|
DWORD dwNewStreamNumber;
|
|
|
|
WMS_STREAM_MODIFIERS ModifierType;
|
|
DWORD dwModifier;
|
|
|
|
DWORD dwPredictiveStreamSelections;
|
|
} CWMSStreamSwitch;
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// IWMSStreamSwitchDescriptionList
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
[
|
|
object,
|
|
pointer_default(unique),
|
|
uuid(75C3017C-6B3A-4e25-BE9F-A9927F4DD058),
|
|
version(9.0),
|
|
helpstring("Contains methods that control which streams are sent down a data path.")
|
|
]
|
|
interface IWMSStreamSwitchDescriptionList : IUnknown
|
|
{
|
|
[helpstring("Retrieves the number of streams described in the stream switch description list.")] HRESULT
|
|
GetDescriptionCount( [out] DWORD *pdwNumDescriptions );
|
|
|
|
[helpstring("Retrieves the stream switch description data structure that describes the specified stream.")] HRESULT
|
|
GetIndexedDescription(
|
|
[in] DWORD dwDescriptionNum,
|
|
[out] CWMSStreamSwitch *pStreamSwitchDesc
|
|
);
|
|
|
|
[helpstring("Specifies the stream switch description data structure that describes the specified stream.")] HRESULT
|
|
ChangeIndexedDescription(
|
|
[in] DWORD dwDescriptionNum,
|
|
[out] CWMSStreamSwitch *pStreamSwitchDesc
|
|
);
|
|
|
|
[helpstring("Removes a stream switch data structure from the collection.")] HRESULT
|
|
RemoveIndexedDescription(
|
|
[in] DWORD dwDescriptionNum
|
|
);
|
|
[helpstring("Appends a stream switch description data structure to the collection.")] HRESULT
|
|
AppendDescription(
|
|
[in] CWMSStreamSwitch * const pStreamSwitchDesc
|
|
);
|
|
|
|
[helpstring("Removes all stream switch description data structures from the collection.")] HRESULT
|
|
RemoveAllDescriptions( void );
|
|
};
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// STREAM SEEK OPTIONS
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef [public] enum WMS_SEEK_TYPE
|
|
{
|
|
WMS_SEEK_TO_TIME = 1,
|
|
WMS_SEEK_TO_PACKET = 2,
|
|
WMS_SEEK_TO_PLAYLIST_ENTRY = 3,
|
|
WMS_SEEK_TO_BYTE_OFFSET = 4,
|
|
} WMS_SEEK_TYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|