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


/* File created by MIDL compiler version 5.01.0164 */
/* at Tue Oct 03 00:37:04 2000
 */
/* Compiler settings for tvpsnd.idl:
    Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
*/
//@@MIDL_FILE_HEADING(  )


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

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

#ifndef __tvpsnd_h__
#define __tvpsnd_h__

#ifdef __cplusplus
extern "C"{
#endif 

/* Forward Declarations */ 

#ifndef __ITSSMediaBaseInfo_FWD_DEFINED__
#define __ITSSMediaBaseInfo_FWD_DEFINED__
typedef interface ITSSMediaBaseInfo ITSSMediaBaseInfo;
#endif 	/* __ITSSMediaBaseInfo_FWD_DEFINED__ */


#ifndef __ITSSStorageProvider_FWD_DEFINED__
#define __ITSSStorageProvider_FWD_DEFINED__
typedef interface ITSSStorageProvider ITSSStorageProvider;
#endif 	/* __ITSSStorageProvider_FWD_DEFINED__ */


#ifndef __ITSSModule_FWD_DEFINED__
#define __ITSSModule_FWD_DEFINED__
typedef interface ITSSModule ITSSModule;
#endif 	/* __ITSSModule_FWD_DEFINED__ */


#ifndef __ITSSWaveDecoder_FWD_DEFINED__
#define __ITSSWaveDecoder_FWD_DEFINED__
typedef interface ITSSWaveDecoder ITSSWaveDecoder;
#endif 	/* __ITSSWaveDecoder_FWD_DEFINED__ */


void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 


#ifndef __TVPSndSysLib_LIBRARY_DEFINED__
#define __TVPSndSysLib_LIBRARY_DEFINED__

/* library TVPSndSysLib */
/* [helpstring][version][uuid] */ 

typedef /* [helpstring][version][uuid] */ struct  tagTSSWaveFormat
    {
    /* [helpstring] */ unsigned long dwSamplesPerSec;
    /* [helpstring] */ unsigned long dwChannels;
    /* [helpstring] */ unsigned long dwBitsPerSample;
    /* [helpstring] */ unsigned long dwSeekable;
    /* [helpstring] */ unsigned __int64 ui64TotalSamples;
    /* [helpstring] */ unsigned long dwTotalTime;
    long dwReserved1;
    long dwReserved2;
    }	TSSWaveFormat;


EXTERN_C const IID LIBID_TVPSndSysLib;

#ifndef __ITSSMediaBaseInfo_INTERFACE_DEFINED__
#define __ITSSMediaBaseInfo_INTERFACE_DEFINED__

/* interface ITSSMediaBaseInfo */
/* [object][helpstring][version][uuid] */ 


EXTERN_C const IID IID_ITSSMediaBaseInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B4C4239B-7D27-43CC-8523-66955BDF59DF")
    ITSSMediaBaseInfo : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT __stdcall GetMediaType( 
            /* [in] */ LPWSTR shortname,
            /* [in] */ LPWSTR descbuf,
            /* [in] */ unsigned long descbuflen) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetLength( 
            /* [retval][out] */ unsigned long __RPC_FAR *length) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetTitle( 
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetCopyright( 
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetComment( 
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetArtist( 
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITSSMediaBaseInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ITSSMediaBaseInfo __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ITSSMediaBaseInfo __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ITSSMediaBaseInfo __RPC_FAR * This);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetMediaType )( 
            ITSSMediaBaseInfo __RPC_FAR * This,
            /* [in] */ LPWSTR shortname,
            /* [in] */ LPWSTR descbuf,
            /* [in] */ unsigned long descbuflen);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetLength )( 
            ITSSMediaBaseInfo __RPC_FAR * This,
            /* [retval][out] */ unsigned long __RPC_FAR *length);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetTitle )( 
            ITSSMediaBaseInfo __RPC_FAR * This,
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetCopyright )( 
            ITSSMediaBaseInfo __RPC_FAR * This,
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetComment )( 
            ITSSMediaBaseInfo __RPC_FAR * This,
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetArtist )( 
            ITSSMediaBaseInfo __RPC_FAR * This,
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen);
        
        END_INTERFACE
    } ITSSMediaBaseInfoVtbl;

    interface ITSSMediaBaseInfo
    {
        CONST_VTBL struct ITSSMediaBaseInfoVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ITSSMediaBaseInfo_GetMediaType(This,shortname,descbuf,descbuflen)	\
    (This)->lpVtbl -> GetMediaType(This,shortname,descbuf,descbuflen)

#define ITSSMediaBaseInfo_GetLength(This,length)	\
    (This)->lpVtbl -> GetLength(This,length)

#define ITSSMediaBaseInfo_GetTitle(This,buf,buflen)	\
    (This)->lpVtbl -> GetTitle(This,buf,buflen)

#define ITSSMediaBaseInfo_GetCopyright(This,buf,buflen)	\
    (This)->lpVtbl -> GetCopyright(This,buf,buflen)

#define ITSSMediaBaseInfo_GetComment(This,buf,buflen)	\
    (This)->lpVtbl -> GetComment(This,buf,buflen)

#define ITSSMediaBaseInfo_GetArtist(This,buf,buflen)	\
    (This)->lpVtbl -> GetArtist(This,buf,buflen)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT __stdcall ITSSMediaBaseInfo_GetMediaType_Proxy( 
    ITSSMediaBaseInfo __RPC_FAR * This,
    /* [in] */ LPWSTR shortname,
    /* [in] */ LPWSTR descbuf,
    /* [in] */ unsigned long descbuflen);


void __RPC_STUB ITSSMediaBaseInfo_GetMediaType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSMediaBaseInfo_GetLength_Proxy( 
    ITSSMediaBaseInfo __RPC_FAR * This,
    /* [retval][out] */ unsigned long __RPC_FAR *length);


void __RPC_STUB ITSSMediaBaseInfo_GetLength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSMediaBaseInfo_GetTitle_Proxy( 
    ITSSMediaBaseInfo __RPC_FAR * This,
    /* [in] */ LPWSTR buf,
    /* [in] */ unsigned long buflen);


void __RPC_STUB ITSSMediaBaseInfo_GetTitle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSMediaBaseInfo_GetCopyright_Proxy( 
    ITSSMediaBaseInfo __RPC_FAR * This,
    /* [in] */ LPWSTR buf,
    /* [in] */ unsigned long buflen);


void __RPC_STUB ITSSMediaBaseInfo_GetCopyright_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSMediaBaseInfo_GetComment_Proxy( 
    ITSSMediaBaseInfo __RPC_FAR * This,
    /* [in] */ LPWSTR buf,
    /* [in] */ unsigned long buflen);


void __RPC_STUB ITSSMediaBaseInfo_GetComment_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSMediaBaseInfo_GetArtist_Proxy( 
    ITSSMediaBaseInfo __RPC_FAR * This,
    /* [in] */ LPWSTR buf,
    /* [in] */ unsigned long buflen);


void __RPC_STUB ITSSMediaBaseInfo_GetArtist_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ITSSMediaBaseInfo_INTERFACE_DEFINED__ */


#ifndef __ITSSStorageProvider_INTERFACE_DEFINED__
#define __ITSSStorageProvider_INTERFACE_DEFINED__

/* interface ITSSStorageProvider */
/* [object][helpstring][version][uuid] */ 


EXTERN_C const IID IID_ITSSStorageProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7DD61993-615D-481D-B060-A9FD48394430")
    ITSSStorageProvider : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT __stdcall GetStreamForRead( 
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetStreamForWrite( 
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetStreamForUpdate( 
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITSSStorageProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ITSSStorageProvider __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ITSSStorageProvider __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ITSSStorageProvider __RPC_FAR * This);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetStreamForRead )( 
            ITSSStorageProvider __RPC_FAR * This,
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetStreamForWrite )( 
            ITSSStorageProvider __RPC_FAR * This,
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetStreamForUpdate )( 
            ITSSStorageProvider __RPC_FAR * This,
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream);
        
        END_INTERFACE
    } ITSSStorageProviderVtbl;

    interface ITSSStorageProvider
    {
        CONST_VTBL struct ITSSStorageProviderVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ITSSStorageProvider_GetStreamForRead(This,url,stream)	\
    (This)->lpVtbl -> GetStreamForRead(This,url,stream)

#define ITSSStorageProvider_GetStreamForWrite(This,url,stream)	\
    (This)->lpVtbl -> GetStreamForWrite(This,url,stream)

#define ITSSStorageProvider_GetStreamForUpdate(This,url,stream)	\
    (This)->lpVtbl -> GetStreamForUpdate(This,url,stream)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT __stdcall ITSSStorageProvider_GetStreamForRead_Proxy( 
    ITSSStorageProvider __RPC_FAR * This,
    /* [in] */ LPWSTR url,
    /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream);


void __RPC_STUB ITSSStorageProvider_GetStreamForRead_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSStorageProvider_GetStreamForWrite_Proxy( 
    ITSSStorageProvider __RPC_FAR * This,
    /* [in] */ LPWSTR url,
    /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream);


void __RPC_STUB ITSSStorageProvider_GetStreamForWrite_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSStorageProvider_GetStreamForUpdate_Proxy( 
    ITSSStorageProvider __RPC_FAR * This,
    /* [in] */ LPWSTR url,
    /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *stream);


void __RPC_STUB ITSSStorageProvider_GetStreamForUpdate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ITSSStorageProvider_INTERFACE_DEFINED__ */


#ifndef __ITSSModule_INTERFACE_DEFINED__
#define __ITSSModule_INTERFACE_DEFINED__

/* interface ITSSModule */
/* [object][helpstring][version][uuid] */ 


EXTERN_C const IID IID_ITSSModule;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A938D1A5-2980-498B-B051-99931D41895D")
    ITSSModule : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT __stdcall GetModuleCopyright( 
            /* [in] */ LPWSTR buffer,
            /* [in] */ unsigned long buflen) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetModuleDescription( 
            /* [in] */ LPWSTR buffer,
            /* [in] */ unsigned long buflen) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetSupportExts( 
            /* [in] */ unsigned long index,
            /* [in] */ LPWSTR mediashortname,
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetMediaInfo( 
            /* [in] */ LPWSTR url,
            /* [retval][out] */ ITSSMediaBaseInfo __RPC_FAR *__RPC_FAR *info) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetMediaSupport( 
            /* [in] */ LPWSTR url) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall GetMediaInstance( 
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *instance) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITSSModuleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ITSSModule __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ITSSModule __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ITSSModule __RPC_FAR * This);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetModuleCopyright )( 
            ITSSModule __RPC_FAR * This,
            /* [in] */ LPWSTR buffer,
            /* [in] */ unsigned long buflen);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetModuleDescription )( 
            ITSSModule __RPC_FAR * This,
            /* [in] */ LPWSTR buffer,
            /* [in] */ unsigned long buflen);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetSupportExts )( 
            ITSSModule __RPC_FAR * This,
            /* [in] */ unsigned long index,
            /* [in] */ LPWSTR mediashortname,
            /* [in] */ LPWSTR buf,
            /* [in] */ unsigned long buflen);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetMediaInfo )( 
            ITSSModule __RPC_FAR * This,
            /* [in] */ LPWSTR url,
            /* [retval][out] */ ITSSMediaBaseInfo __RPC_FAR *__RPC_FAR *info);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetMediaSupport )( 
            ITSSModule __RPC_FAR * This,
            /* [in] */ LPWSTR url);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetMediaInstance )( 
            ITSSModule __RPC_FAR * This,
            /* [in] */ LPWSTR url,
            /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *instance);
        
        END_INTERFACE
    } ITSSModuleVtbl;

    interface ITSSModule
    {
        CONST_VTBL struct ITSSModuleVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ITSSModule_GetModuleCopyright(This,buffer,buflen)	\
    (This)->lpVtbl -> GetModuleCopyright(This,buffer,buflen)

#define ITSSModule_GetModuleDescription(This,buffer,buflen)	\
    (This)->lpVtbl -> GetModuleDescription(This,buffer,buflen)

#define ITSSModule_GetSupportExts(This,index,mediashortname,buf,buflen)	\
    (This)->lpVtbl -> GetSupportExts(This,index,mediashortname,buf,buflen)

#define ITSSModule_GetMediaInfo(This,url,info)	\
    (This)->lpVtbl -> GetMediaInfo(This,url,info)

#define ITSSModule_GetMediaSupport(This,url)	\
    (This)->lpVtbl -> GetMediaSupport(This,url)

#define ITSSModule_GetMediaInstance(This,url,instance)	\
    (This)->lpVtbl -> GetMediaInstance(This,url,instance)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT __stdcall ITSSModule_GetModuleCopyright_Proxy( 
    ITSSModule __RPC_FAR * This,
    /* [in] */ LPWSTR buffer,
    /* [in] */ unsigned long buflen);


void __RPC_STUB ITSSModule_GetModuleCopyright_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSModule_GetModuleDescription_Proxy( 
    ITSSModule __RPC_FAR * This,
    /* [in] */ LPWSTR buffer,
    /* [in] */ unsigned long buflen);


void __RPC_STUB ITSSModule_GetModuleDescription_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSModule_GetSupportExts_Proxy( 
    ITSSModule __RPC_FAR * This,
    /* [in] */ unsigned long index,
    /* [in] */ LPWSTR mediashortname,
    /* [in] */ LPWSTR buf,
    /* [in] */ unsigned long buflen);


void __RPC_STUB ITSSModule_GetSupportExts_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSModule_GetMediaInfo_Proxy( 
    ITSSModule __RPC_FAR * This,
    /* [in] */ LPWSTR url,
    /* [retval][out] */ ITSSMediaBaseInfo __RPC_FAR *__RPC_FAR *info);


void __RPC_STUB ITSSModule_GetMediaInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSModule_GetMediaSupport_Proxy( 
    ITSSModule __RPC_FAR * This,
    /* [in] */ LPWSTR url);


void __RPC_STUB ITSSModule_GetMediaSupport_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSModule_GetMediaInstance_Proxy( 
    ITSSModule __RPC_FAR * This,
    /* [in] */ LPWSTR url,
    /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *instance);


void __RPC_STUB ITSSModule_GetMediaInstance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ITSSModule_INTERFACE_DEFINED__ */


#ifndef __ITSSWaveDecoder_INTERFACE_DEFINED__
#define __ITSSWaveDecoder_INTERFACE_DEFINED__

/* interface ITSSWaveDecoder */
/* [object][helpstring][version][uuid] */ 


EXTERN_C const IID IID_ITSSWaveDecoder;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("313864E2-910E-496F-8A6D-43465C105B58")
    ITSSWaveDecoder : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT __stdcall GetFormat( 
            /* [in] */ TSSWaveFormat __RPC_FAR *format) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall Render( 
            /* [in] */ void __RPC_FAR *buf,
            /* [in] */ unsigned long bufsamplelen,
            /* [out] */ unsigned long __RPC_FAR *rendered,
            /* [retval][out] */ unsigned long __RPC_FAR *status) = 0;
        
        virtual /* [helpstring][id] */ HRESULT __stdcall SetPosition( 
            /* [in] */ unsigned __int64 samplepos) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITSSWaveDecoderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            ITSSWaveDecoder __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            ITSSWaveDecoder __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            ITSSWaveDecoder __RPC_FAR * This);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *GetFormat )( 
            ITSSWaveDecoder __RPC_FAR * This,
            /* [in] */ TSSWaveFormat __RPC_FAR *format);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *Render )( 
            ITSSWaveDecoder __RPC_FAR * This,
            /* [in] */ void __RPC_FAR *buf,
            /* [in] */ unsigned long bufsamplelen,
            /* [out] */ unsigned long __RPC_FAR *rendered,
            /* [retval][out] */ unsigned long __RPC_FAR *status);
        
        /* [helpstring][id] */ HRESULT ( __stdcall __RPC_FAR *SetPosition )( 
            ITSSWaveDecoder __RPC_FAR * This,
            /* [in] */ unsigned __int64 samplepos);
        
        END_INTERFACE
    } ITSSWaveDecoderVtbl;

    interface ITSSWaveDecoder
    {
        CONST_VTBL struct ITSSWaveDecoderVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ITSSWaveDecoder_GetFormat(This,format)	\
    (This)->lpVtbl -> GetFormat(This,format)

#define ITSSWaveDecoder_Render(This,buf,bufsamplelen,rendered,status)	\
    (This)->lpVtbl -> Render(This,buf,bufsamplelen,rendered,status)

#define ITSSWaveDecoder_SetPosition(This,samplepos)	\
    (This)->lpVtbl -> SetPosition(This,samplepos)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT __stdcall ITSSWaveDecoder_GetFormat_Proxy( 
    ITSSWaveDecoder __RPC_FAR * This,
    /* [in] */ TSSWaveFormat __RPC_FAR *format);


void __RPC_STUB ITSSWaveDecoder_GetFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSWaveDecoder_Render_Proxy( 
    ITSSWaveDecoder __RPC_FAR * This,
    /* [in] */ void __RPC_FAR *buf,
    /* [in] */ unsigned long bufsamplelen,
    /* [out] */ unsigned long __RPC_FAR *rendered,
    /* [retval][out] */ unsigned long __RPC_FAR *status);


void __RPC_STUB ITSSWaveDecoder_Render_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT __stdcall ITSSWaveDecoder_SetPosition_Proxy( 
    ITSSWaveDecoder __RPC_FAR * This,
    /* [in] */ unsigned __int64 samplepos);


void __RPC_STUB ITSSWaveDecoder_SetPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ITSSWaveDecoder_INTERFACE_DEFINED__ */

#endif /* __TVPSndSysLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif
