#pragma option push -b -a8 -pc -A- /*P_O_Push*/


/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 7.00.0499 */
/* Compiler settings for streamdescription.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __streamdescription_h__
#define __streamdescription_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IWMSStreamHeader_FWD_DEFINED__
#define __IWMSStreamHeader_FWD_DEFINED__
typedef interface IWMSStreamHeader IWMSStreamHeader;
#endif 	/* __IWMSStreamHeader_FWD_DEFINED__ */


#ifndef __IWMSStreamHeaderList_FWD_DEFINED__
#define __IWMSStreamHeaderList_FWD_DEFINED__
typedef interface IWMSStreamHeaderList IWMSStreamHeaderList;
#endif 	/* __IWMSStreamHeaderList_FWD_DEFINED__ */


#ifndef __IWMSContentDescriptionList_FWD_DEFINED__
#define __IWMSContentDescriptionList_FWD_DEFINED__
typedef interface IWMSContentDescriptionList IWMSContentDescriptionList;
#endif 	/* __IWMSContentDescriptionList_FWD_DEFINED__ */


#ifndef __IWMSStreamSwitchDescriptionList_FWD_DEFINED__
#define __IWMSStreamSwitchDescriptionList_FWD_DEFINED__
typedef interface IWMSStreamSwitchDescriptionList IWMSStreamSwitchDescriptionList;
#endif 	/* __IWMSStreamSwitchDescriptionList_FWD_DEFINED__ */


/* header files for imported files */
#include "objidl.h"
#include "WMSBuffer.h"
#include "WMSContext.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_streamdescription_0000_0000 */
/* [local] */ 

//*****************************************************************************
//
// Microsoft Windows Media
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// Automatically generated by Midl from streamdescription.idl
//
// DO NOT EDIT THIS FILE.
//
//*****************************************************************************
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
EXTERN_GUID( IID_IWMSStreamHeader, 0x3309C903,0x10A4,0x11d2,0x9E,0xEE,0x00,0x60,0x97,0xD2,0xD7,0xCF );
EXTERN_GUID( IID_IWMSStreamHeaderList, 0x42176202,0x2B30,0x11d2,0x9E,0xF7,0x00,0x60,0x97,0xD2,0xD7,0xCF );
EXTERN_GUID( IID_IWMSContentDescriptionList, 0x105d6f73, 0x6df0, 0x11d2, 0x9f, 0x14, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );
EXTERN_GUID( IID_IWMSStreamSwitchDescriptionList, 0x75c3017c, 0x6b3a, 0x4e25, 0xbe, 0x9f, 0xa9, 0x92, 0x7f, 0x4d, 0xd0, 0x58 );
EXTERN_GUID( IID_IWMSUnknownStreamFormat, 0x52769631, 0x38aa, 0x11d2, 0x9e, 0xfa, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );
EXTERN_GUID( IID_IWMSUnknownStreamType, 0x52769632, 0x38aa, 0x11d2, 0x9e, 0xfa, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );
EXTERN_GUID( IID_IWMSUnknownContainerFormat, 0x52769631, 0x38aa, 0x11d2, 0x9e, 0xfa, 0x0, 0x60, 0x97, 0xd2, 0xd7, 0xcf );



extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0000_v0_0_s_ifspec;

#ifndef __IWMSStreamHeader_INTERFACE_DEFINED__
#define __IWMSStreamHeader_INTERFACE_DEFINED__

/* interface IWMSStreamHeader */
/* [helpstring][version][uuid][unique][object] */ 


EXTERN_C const IID IID_IWMSStreamHeader;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3309C903-10A4-11d2-9EEE-006097D2D7CF")
    IWMSStreamHeader : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFormat( 
            /* [out] */ __RPC__out GUID *pFormat) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFormat( 
            /* [in] */ GUID Format) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStreamType( 
            /* [out] */ __RPC__out GUID *pStreamType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetStreamType( 
            /* [in] */ GUID StreamType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIntegerAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__out DWORD *pdwAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetIntegerAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ DWORD dwAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStringAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__deref_out_opt BSTR *pszAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetStringAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ __RPC__in BSTR szAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetExtendedAttribute( 
            /* [in] */ DWORD dwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetExtendedAttribute( 
            /* [in] */ DWORD dwValueName,
            /* [in] */ VARIANT VariantValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNthExtendedAttribute( 
            /* [in] */ DWORD dwIndex,
            /* [out] */ __RPC__out DWORD *pdwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumExtendedAttributes( 
            /* [out] */ __RPC__out DWORD *pdwValueName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CloneStreamHeader( 
            /* [out] */ __RPC__deref_out_opt IWMSStreamHeader **ppHeader) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWMSStreamHeaderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IWMSStreamHeader * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IWMSStreamHeader * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IWMSStreamHeader * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFormat )( 
            IWMSStreamHeader * This,
            /* [out] */ __RPC__out GUID *pFormat);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFormat )( 
            IWMSStreamHeader * This,
            /* [in] */ GUID Format);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStreamType )( 
            IWMSStreamHeader * This,
            /* [out] */ __RPC__out GUID *pStreamType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetStreamType )( 
            IWMSStreamHeader * This,
            /* [in] */ GUID StreamType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIntegerAttribute )( 
            IWMSStreamHeader * This,
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__out DWORD *pdwAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetIntegerAttribute )( 
            IWMSStreamHeader * This,
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ DWORD dwAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStringAttribute )( 
            IWMSStreamHeader * This,
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__deref_out_opt BSTR *pszAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetStringAttribute )( 
            IWMSStreamHeader * This,
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ __RPC__in BSTR szAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetExtendedAttribute )( 
            IWMSStreamHeader * This,
            /* [in] */ DWORD dwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetExtendedAttribute )( 
            IWMSStreamHeader * This,
            /* [in] */ DWORD dwValueName,
            /* [in] */ VARIANT VariantValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNthExtendedAttribute )( 
            IWMSStreamHeader * This,
            /* [in] */ DWORD dwIndex,
            /* [out] */ __RPC__out DWORD *pdwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumExtendedAttributes )( 
            IWMSStreamHeader * This,
            /* [out] */ __RPC__out DWORD *pdwValueName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CloneStreamHeader )( 
            IWMSStreamHeader * This,
            /* [out] */ __RPC__deref_out_opt IWMSStreamHeader **ppHeader);
        
        END_INTERFACE
    } IWMSStreamHeaderVtbl;

    interface IWMSStreamHeader
    {
        CONST_VTBL struct IWMSStreamHeaderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWMSStreamHeader_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IWMSStreamHeader_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IWMSStreamHeader_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IWMSStreamHeader_GetFormat(This,pFormat)	\
    ( (This)->lpVtbl -> GetFormat(This,pFormat) ) 

#define IWMSStreamHeader_SetFormat(This,Format)	\
    ( (This)->lpVtbl -> SetFormat(This,Format) ) 

#define IWMSStreamHeader_GetStreamType(This,pStreamType)	\
    ( (This)->lpVtbl -> GetStreamType(This,pStreamType) ) 

#define IWMSStreamHeader_SetStreamType(This,StreamType)	\
    ( (This)->lpVtbl -> SetStreamType(This,StreamType) ) 

#define IWMSStreamHeader_GetIntegerAttribute(This,dwAttributeId,pdwAttribute)	\
    ( (This)->lpVtbl -> GetIntegerAttribute(This,dwAttributeId,pdwAttribute) ) 

#define IWMSStreamHeader_SetIntegerAttribute(This,dwAttributeId,dwAttribute)	\
    ( (This)->lpVtbl -> SetIntegerAttribute(This,dwAttributeId,dwAttribute) ) 

#define IWMSStreamHeader_GetStringAttribute(This,dwAttributeId,pszAttribute)	\
    ( (This)->lpVtbl -> GetStringAttribute(This,dwAttributeId,pszAttribute) ) 

#define IWMSStreamHeader_SetStringAttribute(This,dwAttributeId,szAttribute)	\
    ( (This)->lpVtbl -> SetStringAttribute(This,dwAttributeId,szAttribute) ) 

#define IWMSStreamHeader_GetExtendedAttribute(This,dwValueName,pVariantValue)	\
    ( (This)->lpVtbl -> GetExtendedAttribute(This,dwValueName,pVariantValue) ) 

#define IWMSStreamHeader_SetExtendedAttribute(This,dwValueName,VariantValue)	\
    ( (This)->lpVtbl -> SetExtendedAttribute(This,dwValueName,VariantValue) ) 

#define IWMSStreamHeader_GetNthExtendedAttribute(This,dwIndex,pdwValueName,pVariantValue)	\
    ( (This)->lpVtbl -> GetNthExtendedAttribute(This,dwIndex,pdwValueName,pVariantValue) ) 

#define IWMSStreamHeader_GetNumExtendedAttributes(This,pdwValueName)	\
    ( (This)->lpVtbl -> GetNumExtendedAttributes(This,pdwValueName) ) 

#define IWMSStreamHeader_CloneStreamHeader(This,ppHeader)	\
    ( (This)->lpVtbl -> CloneStreamHeader(This,ppHeader) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IWMSStreamHeader_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_streamdescription_0000_0001 */
/* [local] */ 

#define WMS_STREAM_ID                    0
#define WMS_STREAM_MIN_BITRATE           1
#define WMS_STREAM_MAX_BITRATE           2
#define WMS_STREAM_AVG_BITRATE           3
#define WMS_STREAM_MAX_PACKET_SIZE       4
#define WMS_STREAM_AVG_PACKET_SIZE       5
#define WMS_STREAM_PREROLL               6
#define WMS_STREAM_FLAGS                 7
#define WMS_STREAM_NAME                  8
#define WMS_STREAM_SHARING_GROUP         9
#define WMS_STREAM_SHARING_BANDWIDTH     10
#define WMS_NUM_STREAMHEADER_ATTRIBUTES  11
#define WMS_STREAM_HAS_NON_KEY_FRAMES    0x0001
#define WMS_STREAM_RELIABLE_FLAG         0x0002
#define WMS_STREAM_CONCEALED_FLAG        0x0004
#define WMS_ASF_THRESHOLD_DURATION       500


extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0001_v0_0_s_ifspec;

#ifndef __IWMSStreamHeaderList_INTERFACE_DEFINED__
#define __IWMSStreamHeaderList_INTERFACE_DEFINED__

/* interface IWMSStreamHeaderList */
/* [helpstring][version][uuid][unique][object] */ 


EXTERN_C const IID IID_IWMSStreamHeaderList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("42176202-2B30-11d2-9EF7-006097D2D7CF")
    IWMSStreamHeaderList : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHeaderCount( 
            /* [out] */ __RPC__out DWORD *pdwNumHeaders) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHeader( 
            /* [in] */ DWORD dwHeaderNum,
            /* [out] */ __RPC__deref_out_opt IWMSStreamHeader **ppHeader) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AppendHeader( 
            /* [in] */ __RPC__in_opt IWMSStreamHeader *pHeader) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveAllHeaders( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetContainerFormat( 
            /* [out] */ __RPC__out GUID *pFormat) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetContainerFormat( 
            /* [in] */ GUID Format) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDataVersion( 
            /* [out] */ __RPC__out GUID *pFormat) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDataVersion( 
            /* [in] */ GUID Format) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNativeContainerHeader( 
            /* [out] */ __RPC__deref_out_opt INSSBuffer **ppBuffer,
            /* [out] */ __RPC__out DWORD *pdwOffset,
            /* [out] */ __RPC__out DWORD *pdwLength) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNativeContainerHeader( 
            /* [in] */ __RPC__in_opt INSSBuffer *pBuffer,
            /* [in] */ DWORD dwOffset,
            /* [in] */ DWORD dwLength) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetContentDescription( 
            /* [out] */ __RPC__deref_out_opt IWMSContentDescriptionList **ppDescription) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetContentDescription( 
            /* [in] */ __RPC__in_opt IWMSContentDescriptionList *pDescription) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIntegerAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__out DWORD *pdwAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetIntegerAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ DWORD dwAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStringAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__deref_out_opt BSTR *pszAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetStringAttribute( 
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ __RPC__in BSTR szAttribute) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetExtendedAttribute( 
            /* [in] */ DWORD dwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetExtendedAttribute( 
            /* [in] */ DWORD dwValueName,
            /* [in] */ VARIANT VariantValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNthExtendedAttribute( 
            /* [in] */ DWORD dwIndex,
            /* [out] */ __RPC__out DWORD *pdwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumExtendedAttributes( 
            /* [out] */ __RPC__out DWORD *pdwValueName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CloneStreamHeaderList( 
            /* [in] */ __RPC__in_opt IWMSBufferAllocator *pBufferAllocator,
            /* [out] */ __RPC__deref_out_opt IWMSStreamHeaderList **ppHeader) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RecordPlaylistGenerationId( 
            /* [in] */ __RPC__in_opt IWMSCommandContext *pCommand) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CheckPlaylistGenerationId( 
            /* [in] */ __RPC__in_opt IWMSCommandContext *pCommand) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWMSStreamHeaderListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IWMSStreamHeaderList * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IWMSStreamHeaderList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IWMSStreamHeaderList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHeaderCount )( 
            IWMSStreamHeaderList * This,
            /* [out] */ __RPC__out DWORD *pdwNumHeaders);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHeader )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwHeaderNum,
            /* [out] */ __RPC__deref_out_opt IWMSStreamHeader **ppHeader);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AppendHeader )( 
            IWMSStreamHeaderList * This,
            /* [in] */ __RPC__in_opt IWMSStreamHeader *pHeader);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveAllHeaders )( 
            IWMSStreamHeaderList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetContainerFormat )( 
            IWMSStreamHeaderList * This,
            /* [out] */ __RPC__out GUID *pFormat);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetContainerFormat )( 
            IWMSStreamHeaderList * This,
            /* [in] */ GUID Format);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDataVersion )( 
            IWMSStreamHeaderList * This,
            /* [out] */ __RPC__out GUID *pFormat);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDataVersion )( 
            IWMSStreamHeaderList * This,
            /* [in] */ GUID Format);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNativeContainerHeader )( 
            IWMSStreamHeaderList * This,
            /* [out] */ __RPC__deref_out_opt INSSBuffer **ppBuffer,
            /* [out] */ __RPC__out DWORD *pdwOffset,
            /* [out] */ __RPC__out DWORD *pdwLength);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNativeContainerHeader )( 
            IWMSStreamHeaderList * This,
            /* [in] */ __RPC__in_opt INSSBuffer *pBuffer,
            /* [in] */ DWORD dwOffset,
            /* [in] */ DWORD dwLength);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetContentDescription )( 
            IWMSStreamHeaderList * This,
            /* [out] */ __RPC__deref_out_opt IWMSContentDescriptionList **ppDescription);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetContentDescription )( 
            IWMSStreamHeaderList * This,
            /* [in] */ __RPC__in_opt IWMSContentDescriptionList *pDescription);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIntegerAttribute )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__out DWORD *pdwAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetIntegerAttribute )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ DWORD dwAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStringAttribute )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwAttributeId,
            /* [out] */ __RPC__deref_out_opt BSTR *pszAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetStringAttribute )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwAttributeId,
            /* [in] */ __RPC__in BSTR szAttribute);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetExtendedAttribute )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetExtendedAttribute )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwValueName,
            /* [in] */ VARIANT VariantValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNthExtendedAttribute )( 
            IWMSStreamHeaderList * This,
            /* [in] */ DWORD dwIndex,
            /* [out] */ __RPC__out DWORD *pdwValueName,
            /* [out] */ __RPC__out VARIANT *pVariantValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumExtendedAttributes )( 
            IWMSStreamHeaderList * This,
            /* [out] */ __RPC__out DWORD *pdwValueName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CloneStreamHeaderList )( 
            IWMSStreamHeaderList * This,
            /* [in] */ __RPC__in_opt IWMSBufferAllocator *pBufferAllocator,
            /* [out] */ __RPC__deref_out_opt IWMSStreamHeaderList **ppHeader);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RecordPlaylistGenerationId )( 
            IWMSStreamHeaderList * This,
            /* [in] */ __RPC__in_opt IWMSCommandContext *pCommand);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CheckPlaylistGenerationId )( 
            IWMSStreamHeaderList * This,
            /* [in] */ __RPC__in_opt IWMSCommandContext *pCommand);
        
        END_INTERFACE
    } IWMSStreamHeaderListVtbl;

    interface IWMSStreamHeaderList
    {
        CONST_VTBL struct IWMSStreamHeaderListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWMSStreamHeaderList_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IWMSStreamHeaderList_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IWMSStreamHeaderList_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IWMSStreamHeaderList_GetHeaderCount(This,pdwNumHeaders)	\
    ( (This)->lpVtbl -> GetHeaderCount(This,pdwNumHeaders) ) 

#define IWMSStreamHeaderList_GetHeader(This,dwHeaderNum,ppHeader)	\
    ( (This)->lpVtbl -> GetHeader(This,dwHeaderNum,ppHeader) ) 

#define IWMSStreamHeaderList_AppendHeader(This,pHeader)	\
    ( (This)->lpVtbl -> AppendHeader(This,pHeader) ) 

#define IWMSStreamHeaderList_RemoveAllHeaders(This)	\
    ( (This)->lpVtbl -> RemoveAllHeaders(This) ) 

#define IWMSStreamHeaderList_GetContainerFormat(This,pFormat)	\
    ( (This)->lpVtbl -> GetContainerFormat(This,pFormat) ) 

#define IWMSStreamHeaderList_SetContainerFormat(This,Format)	\
    ( (This)->lpVtbl -> SetContainerFormat(This,Format) ) 

#define IWMSStreamHeaderList_GetDataVersion(This,pFormat)	\
    ( (This)->lpVtbl -> GetDataVersion(This,pFormat) ) 

#define IWMSStreamHeaderList_SetDataVersion(This,Format)	\
    ( (This)->lpVtbl -> SetDataVersion(This,Format) ) 

#define IWMSStreamHeaderList_GetNativeContainerHeader(This,ppBuffer,pdwOffset,pdwLength)	\
    ( (This)->lpVtbl -> GetNativeContainerHeader(This,ppBuffer,pdwOffset,pdwLength) ) 

#define IWMSStreamHeaderList_SetNativeContainerHeader(This,pBuffer,dwOffset,dwLength)	\
    ( (This)->lpVtbl -> SetNativeContainerHeader(This,pBuffer,dwOffset,dwLength) ) 

#define IWMSStreamHeaderList_GetContentDescription(This,ppDescription)	\
    ( (This)->lpVtbl -> GetContentDescription(This,ppDescription) ) 

#define IWMSStreamHeaderList_SetContentDescription(This,pDescription)	\
    ( (This)->lpVtbl -> SetContentDescription(This,pDescription) ) 

#define IWMSStreamHeaderList_GetIntegerAttribute(This,dwAttributeId,pdwAttribute)	\
    ( (This)->lpVtbl -> GetIntegerAttribute(This,dwAttributeId,pdwAttribute) ) 

#define IWMSStreamHeaderList_SetIntegerAttribute(This,dwAttributeId,dwAttribute)	\
    ( (This)->lpVtbl -> SetIntegerAttribute(This,dwAttributeId,dwAttribute) ) 

#define IWMSStreamHeaderList_GetStringAttribute(This,dwAttributeId,pszAttribute)	\
    ( (This)->lpVtbl -> GetStringAttribute(This,dwAttributeId,pszAttribute) ) 

#define IWMSStreamHeaderList_SetStringAttribute(This,dwAttributeId,szAttribute)	\
    ( (This)->lpVtbl -> SetStringAttribute(This,dwAttributeId,szAttribute) ) 

#define IWMSStreamHeaderList_GetExtendedAttribute(This,dwValueName,pVariantValue)	\
    ( (This)->lpVtbl -> GetExtendedAttribute(This,dwValueName,pVariantValue) ) 

#define IWMSStreamHeaderList_SetExtendedAttribute(This,dwValueName,VariantValue)	\
    ( (This)->lpVtbl -> SetExtendedAttribute(This,dwValueName,VariantValue) ) 

#define IWMSStreamHeaderList_GetNthExtendedAttribute(This,dwIndex,pdwValueName,pVariantValue)	\
    ( (This)->lpVtbl -> GetNthExtendedAttribute(This,dwIndex,pdwValueName,pVariantValue) ) 

#define IWMSStreamHeaderList_GetNumExtendedAttributes(This,pdwValueName)	\
    ( (This)->lpVtbl -> GetNumExtendedAttributes(This,pdwValueName) ) 

#define IWMSStreamHeaderList_CloneStreamHeaderList(This,pBufferAllocator,ppHeader)	\
    ( (This)->lpVtbl -> CloneStreamHeaderList(This,pBufferAllocator,ppHeader) ) 

#define IWMSStreamHeaderList_RecordPlaylistGenerationId(This,pCommand)	\
    ( (This)->lpVtbl -> RecordPlaylistGenerationId(This,pCommand) ) 

#define IWMSStreamHeaderList_CheckPlaylistGenerationId(This,pCommand)	\
    ( (This)->lpVtbl -> CheckPlaylistGenerationId(This,pCommand) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IWMSStreamHeaderList_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_streamdescription_0000_0002 */
/* [local] */ 

#define WMS_TOTAL_MIN_BITRATE                            0
#define WMS_TOTAL_MAX_BITRATE                            1
#define WMS_TOTAL_AVG_BITRATE                            2
#define WMS_CONTAINER_FLAGS                              3
#define WMS_CONTAINER_DURATION_LO                        4
#define WMS_CONTAINER_DURATION_HI                        5
#define WMS_CONTAINER_MAX_PACKET_SIZE                    6
#define WMS_CONTAINER_PLAYLIST_ENTRY_NAME                7
#define WMS_TOTAL_PACKETS_LO                             8
#define WMS_TOTAL_PACKETS_HI                             9
#define WMS_STREAM_PLAYLIST_GENERATION_ID                10
#define WMS_CONTAINER_FILESIZE_LO                        11
#define WMS_CONTAINER_FILESIZE_HI                        12
#define WMS_STREAM_DISTRIBUTION_PLAYLIST_GENERATION_ID   13
#define WMS_CONTAINER_LOG_PHYSICAL_URL                   14
#define WMS_CONTAINER_IS_VBR                             15
#define WMS_STREAM_BROADCAST_GENERATION_ID               16
#define WMS_STREAM_DISTRIBUTION_BROADCAST_GENERATION_ID  17
#define WMS_NUM_STREAMHEADERLIST_ATTRIBUTES              18
#define WMS_CONTAINER_BROADCAST                          0x0001
#define WMS_CONTAINER_CANSEEK                            0x0002
#define WMS_CONTAINER_CANSTRIDE                          0x0004
#define WMS_CONTAINER_LIVE                               0x0008
#define WMS_CONTAINER_RECORDABLE                         0x0010
#define WMS_CONTAINER_PART_OF_PLAYLIST                   0x0020
#define WMS_CONTAINER_ONDEMAND_PLAYLIST_EMULATING_BCAST  0x0040
#define WMS_CONTAINER_PART_OF_WRAPPER_PLAYLIST           0x0080
#define WMS_CONTAINER_ALLOW_PLAYLIST_SKIP_FORWARD        0x0100
#define WMS_CONTAINER_ALLOW_PLAYLIST_SKIP_BACKWARD       0x0200
#define WMS_CONTAINER_SEEKABLE_EMULATING_BROADCAST       0x0400
#define WMS_CONTAINER_LAST_ENTRY_IN_PLAYLIST             0x0800


extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0002_v0_0_s_ifspec;

#ifndef __IWMSContentDescriptionList_INTERFACE_DEFINED__
#define __IWMSContentDescriptionList_INTERFACE_DEFINED__

/* interface IWMSContentDescriptionList */
/* [helpstring][version][uuid][unique][object] */ 


EXTERN_C const IID IID_IWMSContentDescriptionList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("105D6F73-6DF0-11d2-9F14-006097D2D7CF")
    IWMSContentDescriptionList : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDescriptionCount( 
            /* [out] */ __RPC__out DWORD *pdwNumDescriptions) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIndexedDescription( 
            /* [in] */ DWORD dwDescriptionNum,
            /* [out] */ __RPC__deref_out_opt LPWSTR *pstrLanguage,
            /* [out] */ __RPC__deref_out_opt IWMSContext **ppDescription) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDescriptionInLanguage( 
            /* [in] */ __RPC__in LPCWSTR pstrLanguage,
            /* [out] */ __RPC__deref_out_opt IWMSContext **ppDescription) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AppendDescription( 
            /* [in] */ __RPC__in LPCWSTR pstrLanguage,
            /* [in] */ __RPC__in_opt IWMSContext *pDescription) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveAllDescriptions( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPlaylistGenid( 
            __RPC__in DWORD *pdwPlaylistGenerationId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPlaylistGenid( 
            DWORD dwPlaylistGenerationId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBroadcastid( 
            __RPC__in DWORD *pdwPlaylistGenerationId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetBroadcastid( 
            DWORD dwPlaylistGenerationId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetValueOnAllDescriptions( 
            /* [in] */ __RPC__in LPCWSTR pstrName,
            /* [in] */ long lNameHint,
            /* [in] */ VARIANT Value,
            /* [in] */ long lOptions) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveValueFromAllDescriptions( 
            /* [in] */ __RPC__in LPCWSTR pstrName,
            /* [in] */ long lNameHint,
            /* [in] */ long lOptions) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWMSContentDescriptionListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IWMSContentDescriptionList * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IWMSContentDescriptionList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IWMSContentDescriptionList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDescriptionCount )( 
            IWMSContentDescriptionList * This,
            /* [out] */ __RPC__out DWORD *pdwNumDescriptions);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIndexedDescription )( 
            IWMSContentDescriptionList * This,
            /* [in] */ DWORD dwDescriptionNum,
            /* [out] */ __RPC__deref_out_opt LPWSTR *pstrLanguage,
            /* [out] */ __RPC__deref_out_opt IWMSContext **ppDescription);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDescriptionInLanguage )( 
            IWMSContentDescriptionList * This,
            /* [in] */ __RPC__in LPCWSTR pstrLanguage,
            /* [out] */ __RPC__deref_out_opt IWMSContext **ppDescription);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AppendDescription )( 
            IWMSContentDescriptionList * This,
            /* [in] */ __RPC__in LPCWSTR pstrLanguage,
            /* [in] */ __RPC__in_opt IWMSContext *pDescription);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveAllDescriptions )( 
            IWMSContentDescriptionList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPlaylistGenid )( 
            IWMSContentDescriptionList * This,
            __RPC__in DWORD *pdwPlaylistGenerationId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPlaylistGenid )( 
            IWMSContentDescriptionList * This,
            DWORD dwPlaylistGenerationId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBroadcastid )( 
            IWMSContentDescriptionList * This,
            __RPC__in DWORD *pdwPlaylistGenerationId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetBroadcastid )( 
            IWMSContentDescriptionList * This,
            DWORD dwPlaylistGenerationId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetValueOnAllDescriptions )( 
            IWMSContentDescriptionList * This,
            /* [in] */ __RPC__in LPCWSTR pstrName,
            /* [in] */ long lNameHint,
            /* [in] */ VARIANT Value,
            /* [in] */ long lOptions);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveValueFromAllDescriptions )( 
            IWMSContentDescriptionList * This,
            /* [in] */ __RPC__in LPCWSTR pstrName,
            /* [in] */ long lNameHint,
            /* [in] */ long lOptions);
        
        END_INTERFACE
    } IWMSContentDescriptionListVtbl;

    interface IWMSContentDescriptionList
    {
        CONST_VTBL struct IWMSContentDescriptionListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWMSContentDescriptionList_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IWMSContentDescriptionList_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IWMSContentDescriptionList_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IWMSContentDescriptionList_GetDescriptionCount(This,pdwNumDescriptions)	\
    ( (This)->lpVtbl -> GetDescriptionCount(This,pdwNumDescriptions) ) 

#define IWMSContentDescriptionList_GetIndexedDescription(This,dwDescriptionNum,pstrLanguage,ppDescription)	\
    ( (This)->lpVtbl -> GetIndexedDescription(This,dwDescriptionNum,pstrLanguage,ppDescription) ) 

#define IWMSContentDescriptionList_GetDescriptionInLanguage(This,pstrLanguage,ppDescription)	\
    ( (This)->lpVtbl -> GetDescriptionInLanguage(This,pstrLanguage,ppDescription) ) 

#define IWMSContentDescriptionList_AppendDescription(This,pstrLanguage,pDescription)	\
    ( (This)->lpVtbl -> AppendDescription(This,pstrLanguage,pDescription) ) 

#define IWMSContentDescriptionList_RemoveAllDescriptions(This)	\
    ( (This)->lpVtbl -> RemoveAllDescriptions(This) ) 

#define IWMSContentDescriptionList_GetPlaylistGenid(This,pdwPlaylistGenerationId)	\
    ( (This)->lpVtbl -> GetPlaylistGenid(This,pdwPlaylistGenerationId) ) 

#define IWMSContentDescriptionList_SetPlaylistGenid(This,dwPlaylistGenerationId)	\
    ( (This)->lpVtbl -> SetPlaylistGenid(This,dwPlaylistGenerationId) ) 

#define IWMSContentDescriptionList_GetBroadcastid(This,pdwPlaylistGenerationId)	\
    ( (This)->lpVtbl -> GetBroadcastid(This,pdwPlaylistGenerationId) ) 

#define IWMSContentDescriptionList_SetBroadcastid(This,dwPlaylistGenerationId)	\
    ( (This)->lpVtbl -> SetBroadcastid(This,dwPlaylistGenerationId) ) 

#define IWMSContentDescriptionList_SetValueOnAllDescriptions(This,pstrName,lNameHint,Value,lOptions)	\
    ( (This)->lpVtbl -> SetValueOnAllDescriptions(This,pstrName,lNameHint,Value,lOptions) ) 

#define IWMSContentDescriptionList_RemoveValueFromAllDescriptions(This,pstrName,lNameHint,lOptions)	\
    ( (This)->lpVtbl -> RemoveValueFromAllDescriptions(This,pstrName,lNameHint,lOptions) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IWMSContentDescriptionList_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_streamdescription_0000_0003 */
/* [local] */ 

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_streamdescription_0000_0003_0001
    {	WMS_DATA_STREAM_MIN	= 0,
	WMS_DATA_STREAM_MAX	= 0xfffe,
	WMS_NO_STREAM	= 0xffff,
	WMS_RETRANSMISSION_STREAM_MIN	= 0x10000,
	WMS_RETRANSMISSION_STREAM_MAX	= 0x1fffe,
	WMS_FEC_STREAM_MIN	= 0x20000,
	WMS_FEC_STREAM_MAX	= 0x2fffe
    } 	WMS_STREAM_CONSTANTS;

#define IS_DATA_STREAM(x)   ( ( x ) >= WMS_DATA_STREAM_MIN && ( x ) <= WMS_DATA_STREAM_MAX )
#define IS_RETRANSMISSION_STREAM(x)    ( ( x ) >= WMS_RETRANSMISSION_STREAM_MIN && ( x ) <= WMS_RETRANSMISSION_STREAM_MAX )
#define IS_FEC_STREAM(x)    ( ( x ) >= WMS_FEC_STREAM_MIN && ( x ) <= WMS_FEC_STREAM_MAX )
typedef /* [public][public][public][public][public] */ 
enum __MIDL___MIDL_itf_streamdescription_0000_0003_0002
    {	WMS_NO_MODIFIER	= 0,
	WMS_THINNING_MODIFIER	= 1,
	WMS_REMOVE_ALL_FRAMES_MODIFIER	= 2
    } 	WMS_STREAM_MODIFIERS;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_streamdescription_0000_0003_0003
    {	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;



extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0003_v0_0_s_ifspec;

#ifndef __IWMSStreamSwitchDescriptionList_INTERFACE_DEFINED__
#define __IWMSStreamSwitchDescriptionList_INTERFACE_DEFINED__

/* interface IWMSStreamSwitchDescriptionList */
/* [helpstring][version][uuid][unique][object] */ 


EXTERN_C const IID IID_IWMSStreamSwitchDescriptionList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("75C3017C-6B3A-4e25-BE9F-A9927F4DD058")
    IWMSStreamSwitchDescriptionList : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDescriptionCount( 
            /* [out] */ __RPC__out DWORD *pdwNumDescriptions) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIndexedDescription( 
            /* [in] */ DWORD dwDescriptionNum,
            /* [out] */ __RPC__out CWMSStreamSwitch *pStreamSwitchDesc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ChangeIndexedDescription( 
            /* [in] */ DWORD dwDescriptionNum,
            /* [out] */ __RPC__out CWMSStreamSwitch *pStreamSwitchDesc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveIndexedDescription( 
            /* [in] */ DWORD dwDescriptionNum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AppendDescription( 
            /* [in] */ __RPC__in CWMSStreamSwitch *const pStreamSwitchDesc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveAllDescriptions( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWMSStreamSwitchDescriptionListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IWMSStreamSwitchDescriptionList * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IWMSStreamSwitchDescriptionList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IWMSStreamSwitchDescriptionList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDescriptionCount )( 
            IWMSStreamSwitchDescriptionList * This,
            /* [out] */ __RPC__out DWORD *pdwNumDescriptions);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIndexedDescription )( 
            IWMSStreamSwitchDescriptionList * This,
            /* [in] */ DWORD dwDescriptionNum,
            /* [out] */ __RPC__out CWMSStreamSwitch *pStreamSwitchDesc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChangeIndexedDescription )( 
            IWMSStreamSwitchDescriptionList * This,
            /* [in] */ DWORD dwDescriptionNum,
            /* [out] */ __RPC__out CWMSStreamSwitch *pStreamSwitchDesc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveIndexedDescription )( 
            IWMSStreamSwitchDescriptionList * This,
            /* [in] */ DWORD dwDescriptionNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AppendDescription )( 
            IWMSStreamSwitchDescriptionList * This,
            /* [in] */ __RPC__in CWMSStreamSwitch *const pStreamSwitchDesc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveAllDescriptions )( 
            IWMSStreamSwitchDescriptionList * This);
        
        END_INTERFACE
    } IWMSStreamSwitchDescriptionListVtbl;

    interface IWMSStreamSwitchDescriptionList
    {
        CONST_VTBL struct IWMSStreamSwitchDescriptionListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWMSStreamSwitchDescriptionList_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IWMSStreamSwitchDescriptionList_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IWMSStreamSwitchDescriptionList_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IWMSStreamSwitchDescriptionList_GetDescriptionCount(This,pdwNumDescriptions)	\
    ( (This)->lpVtbl -> GetDescriptionCount(This,pdwNumDescriptions) ) 

#define IWMSStreamSwitchDescriptionList_GetIndexedDescription(This,dwDescriptionNum,pStreamSwitchDesc)	\
    ( (This)->lpVtbl -> GetIndexedDescription(This,dwDescriptionNum,pStreamSwitchDesc) ) 

#define IWMSStreamSwitchDescriptionList_ChangeIndexedDescription(This,dwDescriptionNum,pStreamSwitchDesc)	\
    ( (This)->lpVtbl -> ChangeIndexedDescription(This,dwDescriptionNum,pStreamSwitchDesc) ) 

#define IWMSStreamSwitchDescriptionList_RemoveIndexedDescription(This,dwDescriptionNum)	\
    ( (This)->lpVtbl -> RemoveIndexedDescription(This,dwDescriptionNum) ) 

#define IWMSStreamSwitchDescriptionList_AppendDescription(This,pStreamSwitchDesc)	\
    ( (This)->lpVtbl -> AppendDescription(This,pStreamSwitchDesc) ) 

#define IWMSStreamSwitchDescriptionList_RemoveAllDescriptions(This)	\
    ( (This)->lpVtbl -> RemoveAllDescriptions(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IWMSStreamSwitchDescriptionList_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_streamdescription_0000_0004 */
/* [local] */ 

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;



extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0004_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_streamdescription_0000_0004_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); 
void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * ); 

unsigned long             __RPC_USER  BSTR_UserSize64(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal64(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal64(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree64(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  VARIANT_UserSize64(     unsigned long *, unsigned long            , VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserMarshal64(  unsigned long *, unsigned char *, VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserUnmarshal64(unsigned long *, unsigned char *, VARIANT * ); 
void                      __RPC_USER  VARIANT_UserFree64(     unsigned long *, VARIANT * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif




#pragma option pop /*P_O_Pop*/
