

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


 /* File created by MIDL compiler version 7.00.0500 */
/* at Tue Jul 30 19:29:48 2013
 */
/* Compiler settings for .\VideoPlayerSDK.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__ 475
#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 __VideoPlayerSDK_h__
#define __VideoPlayerSDK_h__

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

/* Forward Declarations */ 

#ifndef __ISLTMEnumVideoPlayer4TE_FWD_DEFINED__
#define __ISLTMEnumVideoPlayer4TE_FWD_DEFINED__
typedef interface ISLTMEnumVideoPlayer4TE ISLTMEnumVideoPlayer4TE;
#endif 	/* __ISLTMEnumVideoPlayer4TE_FWD_DEFINED__ */


#ifndef __ISLTMVideoPlayer4_FWD_DEFINED__
#define __ISLTMVideoPlayer4_FWD_DEFINED__
typedef interface ISLTMVideoPlayer4 ISLTMVideoPlayer4;
#endif 	/* __ISLTMVideoPlayer4_FWD_DEFINED__ */


#ifndef __ISLTMVideoPlayerPreparedInfo_FWD_DEFINED__
#define __ISLTMVideoPlayerPreparedInfo_FWD_DEFINED__
typedef interface ISLTMVideoPlayerPreparedInfo ISLTMVideoPlayerPreparedInfo;
#endif 	/* __ISLTMVideoPlayerPreparedInfo_FWD_DEFINED__ */


#ifndef __ISLTMVideoPlayer4TE_FWD_DEFINED__
#define __ISLTMVideoPlayer4TE_FWD_DEFINED__
typedef interface ISLTMVideoPlayer4TE ISLTMVideoPlayer4TE;
#endif 	/* __ISLTMVideoPlayer4TE_FWD_DEFINED__ */


#ifndef __ISLTMVideoPlayer4TEData_FWD_DEFINED__
#define __ISLTMVideoPlayer4TEData_FWD_DEFINED__
typedef interface ISLTMVideoPlayer4TEData ISLTMVideoPlayer4TEData;
#endif 	/* __ISLTMVideoPlayer4TEData_FWD_DEFINED__ */


#ifndef __ISLTMLive4VideoPlayer_FWD_DEFINED__
#define __ISLTMLive4VideoPlayer_FWD_DEFINED__
typedef interface ISLTMLive4VideoPlayer ISLTMLive4VideoPlayer;
#endif 	/* __ISLTMLive4VideoPlayer_FWD_DEFINED__ */


#ifndef __ISLTMLiveAudio4VideoPlayer2_FWD_DEFINED__
#define __ISLTMLiveAudio4VideoPlayer2_FWD_DEFINED__
typedef interface ISLTMLiveAudio4VideoPlayer2 ISLTMLiveAudio4VideoPlayer2;
#endif 	/* __ISLTMLiveAudio4VideoPlayer2_FWD_DEFINED__ */


#ifndef __ISLTMReadFifo_FWD_DEFINED__
#define __ISLTMReadFifo_FWD_DEFINED__
typedef interface ISLTMReadFifo ISLTMReadFifo;
#endif 	/* __ISLTMReadFifo_FWD_DEFINED__ */


#ifndef __ISLTMShowLastHalfShot_FWD_DEFINED__
#define __ISLTMShowLastHalfShot_FWD_DEFINED__
typedef interface ISLTMShowLastHalfShot ISLTMShowLastHalfShot;
#endif 	/* __ISLTMShowLastHalfShot_FWD_DEFINED__ */


#ifndef __ISLTMWatchDog_FWD_DEFINED__
#define __ISLTMWatchDog_FWD_DEFINED__
typedef interface ISLTMWatchDog ISLTMWatchDog;
#endif 	/* __ISLTMWatchDog_FWD_DEFINED__ */


#ifndef __ISLTMAudioPlayer_FWD_DEFINED__
#define __ISLTMAudioPlayer_FWD_DEFINED__
typedef interface ISLTMAudioPlayer ISLTMAudioPlayer;
#endif 	/* __ISLTMAudioPlayer_FWD_DEFINED__ */


#ifndef __SLTMEnumVideoPlayer4TE_FWD_DEFINED__
#define __SLTMEnumVideoPlayer4TE_FWD_DEFINED__

#ifdef __cplusplus
typedef class SLTMEnumVideoPlayer4TE SLTMEnumVideoPlayer4TE;
#else
typedef struct SLTMEnumVideoPlayer4TE SLTMEnumVideoPlayer4TE;
#endif /* __cplusplus */

#endif 	/* __SLTMEnumVideoPlayer4TE_FWD_DEFINED__ */


#ifndef __SLTMVideoPlayer4TE_OEM_FWD_DEFINED__
#define __SLTMVideoPlayer4TE_OEM_FWD_DEFINED__

#ifdef __cplusplus
typedef class SLTMVideoPlayer4TE_OEM SLTMVideoPlayer4TE_OEM;
#else
typedef struct SLTMVideoPlayer4TE_OEM SLTMVideoPlayer4TE_OEM;
#endif /* __cplusplus */

#endif 	/* __SLTMVideoPlayer4TE_OEM_FWD_DEFINED__ */


#ifndef __SLTMAudioPlayer4TE_FWD_DEFINED__
#define __SLTMAudioPlayer4TE_FWD_DEFINED__

#ifdef __cplusplus
typedef class SLTMAudioPlayer4TE SLTMAudioPlayer4TE;
#else
typedef struct SLTMAudioPlayer4TE SLTMAudioPlayer4TE;
#endif /* __cplusplus */

#endif 	/* __SLTMAudioPlayer4TE_FWD_DEFINED__ */


#ifndef __FDExtTitleTargetMgr_FWD_DEFINED__
#define __FDExtTitleTargetMgr_FWD_DEFINED__

#ifdef __cplusplus
typedef class FDExtTitleTargetMgr FDExtTitleTargetMgr;
#else
typedef struct FDExtTitleTargetMgr FDExtTitleTargetMgr;
#endif /* __cplusplus */

#endif 	/* __FDExtTitleTargetMgr_FWD_DEFINED__ */


#ifndef __DVMTitleTargetMgr_FWD_DEFINED__
#define __DVMTitleTargetMgr_FWD_DEFINED__

#ifdef __cplusplus
typedef class DVMTitleTargetMgr DVMTitleTargetMgr;
#else
typedef struct DVMTitleTargetMgr DVMTitleTargetMgr;
#endif /* __cplusplus */

#endif 	/* __DVMTitleTargetMgr_FWD_DEFINED__ */


#ifndef __SLVideoprocessorTitleTarget_FWD_DEFINED__
#define __SLVideoprocessorTitleTarget_FWD_DEFINED__

#ifdef __cplusplus
typedef class SLVideoprocessorTitleTarget SLVideoprocessorTitleTarget;
#else
typedef struct SLVideoprocessorTitleTarget SLVideoprocessorTitleTarget;
#endif /* __cplusplus */

#endif 	/* __SLVideoprocessorTitleTarget_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_VideoPlayerSDK_0000_0000 */
/* [local] */ 

typedef /* [v1_enum] */ 
enum SLTMPlaybackState
    {	SLTMPlaybackStopped	= 0,
	SLTMPlaybackPreparing	= ( SLTMPlaybackStopped + 1 ) ,
	SLTMPlaybackPrepared	= ( SLTMPlaybackPreparing + 1 ) ,
	SLTMPlaybackPaused	= ( SLTMPlaybackPrepared + 1 ) ,
	SLTMPlaybackPlaying	= ( SLTMPlaybackPaused + 1 ) ,
	SLTMPlaybackStopOnError	= ( SLTMPlaybackPlaying + 1 ) 
    } 	SLTMPlaybackState;

typedef /* [v1_enum] */ 
enum SLTMPlayDataType
    {	SLTMPlayImageData	= 1,
	SLTMPlayMaskData	= 2,
	SLTMPlayAudioData	= 4,
	SLTMPlayAnyImage	= 3,
	SLTMPlayAnyMovie	= 7,
	SLTMPlayUseRLECompression	= 8,
	SLTMPlayFullScreen	= 16,
	SLTMPlayAllBits	= 15,
	SLTMPlayAllFullScreen	= 31,
	SLTMPlayPrintReport	= 0x1000
    } 	SLTMPlayDataType;

typedef /* [v1_enum] */ 
enum SLTMVideoPlayerPrepareState
    {	SLTMVideoPlayerNone	= 0,
	SLTMVideoPlayerStandby	= ( SLTMVideoPlayerNone + 1 ) ,
	SLTMVideoPlayerPreparingVideo	= ( SLTMVideoPlayerStandby + 1 ) ,
	SLTMVideoPlayerPreparedVideo	= ( SLTMVideoPlayerPreparingVideo + 1 ) ,
	SLTMVideoPlayerWasError	= ( SLTMVideoPlayerPreparedVideo + 1 ) ,
	SLTMVideoPlayerInTransition	= ( SLTMVideoPlayerWasError + 1 ) 
    } 	SLTMVideoPlayerPrepareState;

typedef /* [v1_enum] */ 
enum SLTMVPAudioVolumeType
    {	SLTMVPAudio_OutputVolume	= 0,
	SLTMVPAudio_LiveVideo1	= 1,
	SLTMVPAudio_LiveVideo2	= ( SLTMVPAudio_LiveVideo1 + 1 ) ,
	SLTMVPAudio_LiveVideo3	= ( SLTMVPAudio_LiveVideo2 + 1 ) ,
	SLTMVPAudio_LiveVideo4	= ( SLTMVPAudio_LiveVideo3 + 1 ) ,
	SLTMVPAudio_LiveVideo5	= ( SLTMVPAudio_LiveVideo4 + 1 ) ,
	SLTMVPAudio_LiveVideo6	= ( SLTMVPAudio_LiveVideo5 + 1 ) ,
	SLTMVPAudio_LiveAux	= 11,
	SLTMVPAudio_None	= -1
    } 	SLTMVPAudioVolumeType;

typedef /* [v1_enum] */ 
enum SLTMVPVideoLineType
    {	SLTMVPVideo_NoLive	= 0,
	SLTMVPVideo_Live1	= 1,
	SLTMVPVideo_Live2	= 2,
	SLTMVPVideo_Live3	= 3,
	SLTMVPVideo_Live4	= 4,
	SLTMVPVideo_Live5	= 5,
	SLTMVPVideo_Live6	= 6,
	SLTMVPVideo_Live4Genlock	= -1,
	SLTMVPVideo_Live4Aux	= -2
    } 	SLTMVPVideoLineType;

typedef /* [v1_enum] */ 
enum SLTMVPAudioFileType
    {	SLTMVPAudioFile_Native	= 0,
	SLTMVPAudioFile_WaveFile	= 1,
	SLTMVPAudioFile_A1A2WaveFiles	= 2,
	SLTMVPAudioFile_A1WaveFile	= 3,
	SLTMVPAudioFile_A2WaveFile	= 4,
	SLTMVPAudioFile_Noninterleaved	= 5,
	SLTMVPAudioFile_MultyLng	= 6,
	SLTMVPAudioFile_Default	= 10,
	SLTMVPAudioFile_NoAudio	= -1
    } 	SLTMVPAudioFileType;

typedef /* [v1_enum] */ 
enum SLTMWatchDogState
    {	SLTMWatchDog_None	= -1,
	SLTMWatchDog_Expired	= 0,
	SLTMWatchDog_Active	= 1
    } 	SLTMWatchDogState;



extern RPC_IF_HANDLE __MIDL_itf_VideoPlayerSDK_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_VideoPlayerSDK_0000_0000_v0_0_s_ifspec;

#ifndef __ISLTMEnumVideoPlayer4TE_INTERFACE_DEFINED__
#define __ISLTMEnumVideoPlayer4TE_INTERFACE_DEFINED__

/* interface ISLTMEnumVideoPlayer4TE */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMEnumVideoPlayer4TE;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5605AA0E-DDF0-4286-952A-5F15FA5698CA")
    ISLTMEnumVideoPlayer4TE : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [in] */ long nVPIndex,
            /* [retval][out] */ BSTR *pUserName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RegName( 
            /* [in] */ long nVPIndex,
            /* [retval][out] */ BSTR *pRegName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [in] */ long nVPIndex,
            /* [retval][out] */ CLSID *pCLSID) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [in] */ long nVPIndex,
            /* [retval][out] */ long *pIndexTE) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMEnumVideoPlayer4TEVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMEnumVideoPlayer4TE * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMEnumVideoPlayer4TE * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ long nVPIndex,
            /* [retval][out] */ BSTR *pUserName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RegName )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ long nVPIndex,
            /* [retval][out] */ BSTR *pRegName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ long nVPIndex,
            /* [retval][out] */ CLSID *pCLSID);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            ISLTMEnumVideoPlayer4TE * This,
            /* [in] */ long nVPIndex,
            /* [retval][out] */ long *pIndexTE);
        
        END_INTERFACE
    } ISLTMEnumVideoPlayer4TEVtbl;

    interface ISLTMEnumVideoPlayer4TE
    {
        CONST_VTBL struct ISLTMEnumVideoPlayer4TEVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMEnumVideoPlayer4TE_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMEnumVideoPlayer4TE_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMEnumVideoPlayer4TE_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMEnumVideoPlayer4TE_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMEnumVideoPlayer4TE_get_Count(This,pVal)	\
    ( (This)->lpVtbl -> get_Count(This,pVal) ) 

#define ISLTMEnumVideoPlayer4TE_get_Name(This,nVPIndex,pUserName)	\
    ( (This)->lpVtbl -> get_Name(This,nVPIndex,pUserName) ) 

#define ISLTMEnumVideoPlayer4TE_get_RegName(This,nVPIndex,pRegName)	\
    ( (This)->lpVtbl -> get_RegName(This,nVPIndex,pRegName) ) 

#define ISLTMEnumVideoPlayer4TE_get_Type(This,nVPIndex,pCLSID)	\
    ( (This)->lpVtbl -> get_Type(This,nVPIndex,pCLSID) ) 

#define ISLTMEnumVideoPlayer4TE_get_Index(This,nVPIndex,pIndexTE)	\
    ( (This)->lpVtbl -> get_Index(This,nVPIndex,pIndexTE) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMEnumVideoPlayer4TE_INTERFACE_DEFINED__ */


#ifndef __ISLTMVideoPlayer4_INTERFACE_DEFINED__
#define __ISLTMVideoPlayer4_INTERFACE_DEFINED__

/* interface ISLTMVideoPlayer4 */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMVideoPlayer4;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FE0D501B-E1AF-49c9-AD74-DB980F58D334")
    ISLTMVideoPlayer4 : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoardInfo( 
            /* [out] */ long *width,
            /* [out] */ long *height,
            /* [out] */ double *frame_rate) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoScaleImage( 
            /* [retval][out] */ long *pEnabled) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoScaleImage( 
            /* [in] */ long bEnable) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoScaleMovie( 
            /* [retval][out] */ long *pEnabled) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoScaleMovie( 
            /* [in] */ long bEnable) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowLive( 
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadImage( 
            /* [in] */ long image_index,
            /* [in] */ BSTR file_name) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowImage( 
            /* [in] */ long image_index,
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrepareVideo( 
            /* [in] */ BSTR file_name,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [in] */ SLTMVPAudioFileType nAudioType,
            /* [out] */ double *duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddVideo( 
            /* [in] */ BSTR file_name,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [in] */ SLTMVPAudioFileType nAudioType,
            /* [out] */ double *duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ResetPrepare( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowPreparedVideo( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PlayVideo( 
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PauseVideo( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnpauseVideo( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RestDuration( 
            /* [out] */ double *pEndingTime,
            /* [retval][out] */ double *pRestDuration) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PrepareState( 
            /* [retval][out] */ SLTMVideoPlayerPrepareState *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorDescription( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaybackState( 
            /* [retval][out] */ SLTMPlaybackState *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaybackErrorDescription( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentTime( 
            /* [retval][out] */ double *pCurrentTime) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMVideoPlayer4Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMVideoPlayer4 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMVideoPlayer4 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMVideoPlayer4 * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoardInfo )( 
            ISLTMVideoPlayer4 * This,
            /* [out] */ long *width,
            /* [out] */ long *height,
            /* [out] */ double *frame_rate);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoScaleImage )( 
            ISLTMVideoPlayer4 * This,
            /* [retval][out] */ long *pEnabled);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoScaleImage )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ long bEnable);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoScaleMovie )( 
            ISLTMVideoPlayer4 * This,
            /* [retval][out] */ long *pEnabled);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoScaleMovie )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ long bEnable);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowLive )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadImage )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ long image_index,
            /* [in] */ BSTR file_name);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowImage )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ long image_index,
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrepareVideo )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ BSTR file_name,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [in] */ SLTMVPAudioFileType nAudioType,
            /* [out] */ double *duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddVideo )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ BSTR file_name,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [in] */ SLTMVPAudioFileType nAudioType,
            /* [out] */ double *duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetPrepare )( 
            ISLTMVideoPlayer4 * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowPreparedVideo )( 
            ISLTMVideoPlayer4 * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PlayVideo )( 
            ISLTMVideoPlayer4 * This,
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PauseVideo )( 
            ISLTMVideoPlayer4 * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnpauseVideo )( 
            ISLTMVideoPlayer4 * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RestDuration )( 
            ISLTMVideoPlayer4 * This,
            /* [out] */ double *pEndingTime,
            /* [retval][out] */ double *pRestDuration);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PrepareState )( 
            ISLTMVideoPlayer4 * This,
            /* [retval][out] */ SLTMVideoPlayerPrepareState *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ErrorDescription )( 
            ISLTMVideoPlayer4 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaybackState )( 
            ISLTMVideoPlayer4 * This,
            /* [retval][out] */ SLTMPlaybackState *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaybackErrorDescription )( 
            ISLTMVideoPlayer4 * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentTime )( 
            ISLTMVideoPlayer4 * This,
            /* [retval][out] */ double *pCurrentTime);
        
        END_INTERFACE
    } ISLTMVideoPlayer4Vtbl;

    interface ISLTMVideoPlayer4
    {
        CONST_VTBL struct ISLTMVideoPlayer4Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMVideoPlayer4_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMVideoPlayer4_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMVideoPlayer4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMVideoPlayer4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMVideoPlayer4_GetBoardInfo(This,width,height,frame_rate)	\
    ( (This)->lpVtbl -> GetBoardInfo(This,width,height,frame_rate) ) 

#define ISLTMVideoPlayer4_get_AutoScaleImage(This,pEnabled)	\
    ( (This)->lpVtbl -> get_AutoScaleImage(This,pEnabled) ) 

#define ISLTMVideoPlayer4_put_AutoScaleImage(This,bEnable)	\
    ( (This)->lpVtbl -> put_AutoScaleImage(This,bEnable) ) 

#define ISLTMVideoPlayer4_get_AutoScaleMovie(This,pEnabled)	\
    ( (This)->lpVtbl -> get_AutoScaleMovie(This,pEnabled) ) 

#define ISLTMVideoPlayer4_put_AutoScaleMovie(This,bEnable)	\
    ( (This)->lpVtbl -> put_AutoScaleMovie(This,bEnable) ) 

#define ISLTMVideoPlayer4_ShowLive(This,start_time,crossfade_duration)	\
    ( (This)->lpVtbl -> ShowLive(This,start_time,crossfade_duration) ) 

#define ISLTMVideoPlayer4_LoadImage(This,image_index,file_name)	\
    ( (This)->lpVtbl -> LoadImage(This,image_index,file_name) ) 

#define ISLTMVideoPlayer4_ShowImage(This,image_index,start_time,crossfade_duration)	\
    ( (This)->lpVtbl -> ShowImage(This,image_index,start_time,crossfade_duration) ) 

#define ISLTMVideoPlayer4_PrepareVideo(This,file_name,fMarkIn,fMarkOut,nAudioType,duration)	\
    ( (This)->lpVtbl -> PrepareVideo(This,file_name,fMarkIn,fMarkOut,nAudioType,duration) ) 

#define ISLTMVideoPlayer4_AddVideo(This,file_name,fMarkIn,fMarkOut,nAudioType,duration)	\
    ( (This)->lpVtbl -> AddVideo(This,file_name,fMarkIn,fMarkOut,nAudioType,duration) ) 

#define ISLTMVideoPlayer4_ResetPrepare(This)	\
    ( (This)->lpVtbl -> ResetPrepare(This) ) 

#define ISLTMVideoPlayer4_ShowPreparedVideo(This)	\
    ( (This)->lpVtbl -> ShowPreparedVideo(This) ) 

#define ISLTMVideoPlayer4_PlayVideo(This,start_time,crossfade_duration)	\
    ( (This)->lpVtbl -> PlayVideo(This,start_time,crossfade_duration) ) 

#define ISLTMVideoPlayer4_PauseVideo(This)	\
    ( (This)->lpVtbl -> PauseVideo(This) ) 

#define ISLTMVideoPlayer4_UnpauseVideo(This)	\
    ( (This)->lpVtbl -> UnpauseVideo(This) ) 

#define ISLTMVideoPlayer4_get_RestDuration(This,pEndingTime,pRestDuration)	\
    ( (This)->lpVtbl -> get_RestDuration(This,pEndingTime,pRestDuration) ) 

#define ISLTMVideoPlayer4_get_PrepareState(This,pVal)	\
    ( (This)->lpVtbl -> get_PrepareState(This,pVal) ) 

#define ISLTMVideoPlayer4_get_ErrorDescription(This,pVal)	\
    ( (This)->lpVtbl -> get_ErrorDescription(This,pVal) ) 

#define ISLTMVideoPlayer4_get_PlaybackState(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaybackState(This,pVal) ) 

#define ISLTMVideoPlayer4_get_PlaybackErrorDescription(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaybackErrorDescription(This,pVal) ) 

#define ISLTMVideoPlayer4_get_CurrentTime(This,pCurrentTime)	\
    ( (This)->lpVtbl -> get_CurrentTime(This,pCurrentTime) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMVideoPlayer4_INTERFACE_DEFINED__ */


#ifndef __ISLTMVideoPlayerPreparedInfo_INTERFACE_DEFINED__
#define __ISLTMVideoPlayerPreparedInfo_INTERFACE_DEFINED__

/* interface ISLTMVideoPlayerPreparedInfo */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMVideoPlayerPreparedInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("709794AA-E399-406d-B9FD-02CA41D85164")
    ISLTMVideoPlayerPreparedInfo : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreparedItemNumber( 
            /* [retval][out] */ long *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPreparedItemInfo( 
            /* [in] */ long nIndex,
            /* [out] */ BSTR *psFileName,
            /* [out] */ double *pfMarkIn,
            /* [out] */ double *pfMarkOut,
            /* [out] */ long *pSLTMPlayDataTypeMask,
            /* [out] */ double *pfStartOffset,
            /* [out] */ double *pfDuration) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMVideoPlayerPreparedInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMVideoPlayerPreparedInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMVideoPlayerPreparedInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMVideoPlayerPreparedInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMVideoPlayerPreparedInfo * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMVideoPlayerPreparedInfo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMVideoPlayerPreparedInfo * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMVideoPlayerPreparedInfo * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreparedItemNumber )( 
            ISLTMVideoPlayerPreparedInfo * This,
            /* [retval][out] */ long *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPreparedItemInfo )( 
            ISLTMVideoPlayerPreparedInfo * This,
            /* [in] */ long nIndex,
            /* [out] */ BSTR *psFileName,
            /* [out] */ double *pfMarkIn,
            /* [out] */ double *pfMarkOut,
            /* [out] */ long *pSLTMPlayDataTypeMask,
            /* [out] */ double *pfStartOffset,
            /* [out] */ double *pfDuration);
        
        END_INTERFACE
    } ISLTMVideoPlayerPreparedInfoVtbl;

    interface ISLTMVideoPlayerPreparedInfo
    {
        CONST_VTBL struct ISLTMVideoPlayerPreparedInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMVideoPlayerPreparedInfo_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMVideoPlayerPreparedInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMVideoPlayerPreparedInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMVideoPlayerPreparedInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMVideoPlayerPreparedInfo_get_PreparedItemNumber(This,pCount)	\
    ( (This)->lpVtbl -> get_PreparedItemNumber(This,pCount) ) 

#define ISLTMVideoPlayerPreparedInfo_GetPreparedItemInfo(This,nIndex,psFileName,pfMarkIn,pfMarkOut,pSLTMPlayDataTypeMask,pfStartOffset,pfDuration)	\
    ( (This)->lpVtbl -> GetPreparedItemInfo(This,nIndex,psFileName,pfMarkIn,pfMarkOut,pSLTMPlayDataTypeMask,pfStartOffset,pfDuration) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMVideoPlayerPreparedInfo_INTERFACE_DEFINED__ */


#ifndef __ISLTMVideoPlayer4TE_INTERFACE_DEFINED__
#define __ISLTMVideoPlayer4TE_INTERFACE_DEFINED__

/* interface ISLTMVideoPlayer4TE */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMVideoPlayer4TE;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A0AE3829-5A0E-45e8-9322-F38BD9C5AEEA")
    ISLTMVideoPlayer4TE : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Init4TitleEngine( 
            /* [in] */ IUnknown *pITitleEngine,
            /* [in] */ long use_memory_MB) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Init4TitleCore( 
            /* [in] */ CLSID clsidTitleCore,
            /* [in] */ long nTitleIndex,
            /* [in] */ long use_memory_MB) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMVideoPlayer4TEVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMVideoPlayer4TE * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMVideoPlayer4TE * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMVideoPlayer4TE * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMVideoPlayer4TE * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMVideoPlayer4TE * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMVideoPlayer4TE * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMVideoPlayer4TE * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Init4TitleEngine )( 
            ISLTMVideoPlayer4TE * This,
            /* [in] */ IUnknown *pITitleEngine,
            /* [in] */ long use_memory_MB);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Init4TitleCore )( 
            ISLTMVideoPlayer4TE * This,
            /* [in] */ CLSID clsidTitleCore,
            /* [in] */ long nTitleIndex,
            /* [in] */ long use_memory_MB);
        
        END_INTERFACE
    } ISLTMVideoPlayer4TEVtbl;

    interface ISLTMVideoPlayer4TE
    {
        CONST_VTBL struct ISLTMVideoPlayer4TEVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMVideoPlayer4TE_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMVideoPlayer4TE_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMVideoPlayer4TE_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMVideoPlayer4TE_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMVideoPlayer4TE_Init4TitleEngine(This,pITitleEngine,use_memory_MB)	\
    ( (This)->lpVtbl -> Init4TitleEngine(This,pITitleEngine,use_memory_MB) ) 

#define ISLTMVideoPlayer4TE_Init4TitleCore(This,clsidTitleCore,nTitleIndex,use_memory_MB)	\
    ( (This)->lpVtbl -> Init4TitleCore(This,clsidTitleCore,nTitleIndex,use_memory_MB) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMVideoPlayer4TE_INTERFACE_DEFINED__ */


#ifndef __ISLTMVideoPlayer4TEData_INTERFACE_DEFINED__
#define __ISLTMVideoPlayer4TEData_INTERFACE_DEFINED__

/* interface ISLTMVideoPlayer4TEData */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ISLTMVideoPlayer4TEData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8DF5B5FE-A05A-42e9-A1A4-C2FF39F91197")
    ISLTMVideoPlayer4TEData : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTitleEngine( 
            /* [out] */ IUnknown **pTitleEngine) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMVideoPlayer4TEDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMVideoPlayer4TEData * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMVideoPlayer4TEData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMVideoPlayer4TEData * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTitleEngine )( 
            ISLTMVideoPlayer4TEData * This,
            /* [out] */ IUnknown **pTitleEngine);
        
        END_INTERFACE
    } ISLTMVideoPlayer4TEDataVtbl;

    interface ISLTMVideoPlayer4TEData
    {
        CONST_VTBL struct ISLTMVideoPlayer4TEDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMVideoPlayer4TEData_GetTitleEngine(This,pTitleEngine)	\
    ( (This)->lpVtbl -> GetTitleEngine(This,pTitleEngine) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMVideoPlayer4TEData_INTERFACE_DEFINED__ */


#ifndef __ISLTMLive4VideoPlayer_INTERFACE_DEFINED__
#define __ISLTMLive4VideoPlayer_INTERFACE_DEFINED__

/* interface ISLTMLive4VideoPlayer */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMLive4VideoPlayer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5E2501A5-ACFD-497e-84AC-5FA974401F25")
    ISLTMLive4VideoPlayer : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ResetAllSettings( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveLiveSet( 
            /* [in] */ IUnknown *pPropBag) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadLiveSet( 
            /* [in] */ IUnknown *pPropBag) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConfigureLive( 
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [in] */ long nHWND) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EnableLive( 
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [retval][out] */ long *pEnabled) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnableLive( 
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [in] */ long bEnable) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ApplyEnables( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrepareLive( 
            /* [in] */ SLTMVPVideoLineType nLiveIndex) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMLive4VideoPlayerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMLive4VideoPlayer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMLive4VideoPlayer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMLive4VideoPlayer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetAllSettings )( 
            ISLTMLive4VideoPlayer * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveLiveSet )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ IUnknown *pPropBag);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadLiveSet )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ IUnknown *pPropBag);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConfigureLive )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [in] */ long nHWND);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [retval][out] */ BSTR *pName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableLive )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [retval][out] */ long *pEnabled);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableLive )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ SLTMVPVideoLineType nLiveIndex,
            /* [in] */ long bEnable);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ApplyEnables )( 
            ISLTMLive4VideoPlayer * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrepareLive )( 
            ISLTMLive4VideoPlayer * This,
            /* [in] */ SLTMVPVideoLineType nLiveIndex);
        
        END_INTERFACE
    } ISLTMLive4VideoPlayerVtbl;

    interface ISLTMLive4VideoPlayer
    {
        CONST_VTBL struct ISLTMLive4VideoPlayerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMLive4VideoPlayer_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMLive4VideoPlayer_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMLive4VideoPlayer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMLive4VideoPlayer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMLive4VideoPlayer_ResetAllSettings(This)	\
    ( (This)->lpVtbl -> ResetAllSettings(This) ) 

#define ISLTMLive4VideoPlayer_SaveLiveSet(This,pPropBag)	\
    ( (This)->lpVtbl -> SaveLiveSet(This,pPropBag) ) 

#define ISLTMLive4VideoPlayer_LoadLiveSet(This,pPropBag)	\
    ( (This)->lpVtbl -> LoadLiveSet(This,pPropBag) ) 

#define ISLTMLive4VideoPlayer_ConfigureLive(This,nLiveIndex,nHWND)	\
    ( (This)->lpVtbl -> ConfigureLive(This,nLiveIndex,nHWND) ) 

#define ISLTMLive4VideoPlayer_get_Name(This,nLiveIndex,pName)	\
    ( (This)->lpVtbl -> get_Name(This,nLiveIndex,pName) ) 

#define ISLTMLive4VideoPlayer_get_EnableLive(This,nLiveIndex,pEnabled)	\
    ( (This)->lpVtbl -> get_EnableLive(This,nLiveIndex,pEnabled) ) 

#define ISLTMLive4VideoPlayer_put_EnableLive(This,nLiveIndex,bEnable)	\
    ( (This)->lpVtbl -> put_EnableLive(This,nLiveIndex,bEnable) ) 

#define ISLTMLive4VideoPlayer_ApplyEnables(This)	\
    ( (This)->lpVtbl -> ApplyEnables(This) ) 

#define ISLTMLive4VideoPlayer_PrepareLive(This,nLiveIndex)	\
    ( (This)->lpVtbl -> PrepareLive(This,nLiveIndex) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMLive4VideoPlayer_INTERFACE_DEFINED__ */


#ifndef __ISLTMLiveAudio4VideoPlayer2_INTERFACE_DEFINED__
#define __ISLTMLiveAudio4VideoPlayer2_INTERFACE_DEFINED__

/* interface ISLTMLiveAudio4VideoPlayer2 */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMLiveAudio4VideoPlayer2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("051F0264-12A9-48e2-A4C4-1D113AA23842")
    ISLTMLiveAudio4VideoPlayer2 : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineCount( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pnAudioLineNumber) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineName( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long nAudioLineIndex,
            /* [retval][out] */ BSTR *pName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AssignedLine( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pnAudioLineIndex) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AssignedLine( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long nAudioLineIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLinePicks( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [out] */ double *pLeft,
            /* [out] */ double *pRight) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Volume( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Volume( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enable( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enable( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mute( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Mute( 
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMLiveAudio4VideoPlayer2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMLiveAudio4VideoPlayer2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMLiveAudio4VideoPlayer2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineCount )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pnAudioLineNumber);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineName )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long nAudioLineIndex,
            /* [retval][out] */ BSTR *pName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AssignedLine )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pnAudioLineIndex);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AssignedLine )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long nAudioLineIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLinePicks )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [out] */ double *pLeft,
            /* [out] */ double *pRight);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Volume )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enable )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enable )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mute )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mute )( 
            ISLTMLiveAudio4VideoPlayer2 * This,
            /* [in] */ SLTMVPVideoLineType nVideoLine,
            /* [in] */ long newVal);
        
        END_INTERFACE
    } ISLTMLiveAudio4VideoPlayer2Vtbl;

    interface ISLTMLiveAudio4VideoPlayer2
    {
        CONST_VTBL struct ISLTMLiveAudio4VideoPlayer2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMLiveAudio4VideoPlayer2_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMLiveAudio4VideoPlayer2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMLiveAudio4VideoPlayer2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMLiveAudio4VideoPlayer2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMLiveAudio4VideoPlayer2_get_LineCount(This,nVideoLine,pnAudioLineNumber)	\
    ( (This)->lpVtbl -> get_LineCount(This,nVideoLine,pnAudioLineNumber) ) 

#define ISLTMLiveAudio4VideoPlayer2_get_LineName(This,nVideoLine,nAudioLineIndex,pName)	\
    ( (This)->lpVtbl -> get_LineName(This,nVideoLine,nAudioLineIndex,pName) ) 

#define ISLTMLiveAudio4VideoPlayer2_get_AssignedLine(This,nVideoLine,pnAudioLineIndex)	\
    ( (This)->lpVtbl -> get_AssignedLine(This,nVideoLine,pnAudioLineIndex) ) 

#define ISLTMLiveAudio4VideoPlayer2_put_AssignedLine(This,nVideoLine,nAudioLineIndex)	\
    ( (This)->lpVtbl -> put_AssignedLine(This,nVideoLine,nAudioLineIndex) ) 

#define ISLTMLiveAudio4VideoPlayer2_GetLinePicks(This,nVideoLine,pLeft,pRight)	\
    ( (This)->lpVtbl -> GetLinePicks(This,nVideoLine,pLeft,pRight) ) 

#define ISLTMLiveAudio4VideoPlayer2_get_Volume(This,nVideoLine,pVal)	\
    ( (This)->lpVtbl -> get_Volume(This,nVideoLine,pVal) ) 

#define ISLTMLiveAudio4VideoPlayer2_put_Volume(This,nVideoLine,newVal)	\
    ( (This)->lpVtbl -> put_Volume(This,nVideoLine,newVal) ) 

#define ISLTMLiveAudio4VideoPlayer2_get_Enable(This,nVideoLine,pVal)	\
    ( (This)->lpVtbl -> get_Enable(This,nVideoLine,pVal) ) 

#define ISLTMLiveAudio4VideoPlayer2_put_Enable(This,nVideoLine,newVal)	\
    ( (This)->lpVtbl -> put_Enable(This,nVideoLine,newVal) ) 

#define ISLTMLiveAudio4VideoPlayer2_get_Mute(This,nVideoLine,pVal)	\
    ( (This)->lpVtbl -> get_Mute(This,nVideoLine,pVal) ) 

#define ISLTMLiveAudio4VideoPlayer2_put_Mute(This,nVideoLine,newVal)	\
    ( (This)->lpVtbl -> put_Mute(This,nVideoLine,newVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMLiveAudio4VideoPlayer2_INTERFACE_DEFINED__ */


#ifndef __ISLTMReadFifo_INTERFACE_DEFINED__
#define __ISLTMReadFifo_INTERFACE_DEFINED__

/* interface ISLTMReadFifo */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMReadFifo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E1433557-5BC5-4635-B86E-9357EFCC5481")
    ISLTMReadFifo : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ReadFifoMB( 
            /* [retval][out] */ long *pnFifoSize_MB) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ReadFifoMB( 
            /* [in] */ long nFifoSize_MB) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMReadFifoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMReadFifo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMReadFifo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMReadFifo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMReadFifo * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMReadFifo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMReadFifo * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMReadFifo * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReadFifoMB )( 
            ISLTMReadFifo * This,
            /* [retval][out] */ long *pnFifoSize_MB);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReadFifoMB )( 
            ISLTMReadFifo * This,
            /* [in] */ long nFifoSize_MB);
        
        END_INTERFACE
    } ISLTMReadFifoVtbl;

    interface ISLTMReadFifo
    {
        CONST_VTBL struct ISLTMReadFifoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMReadFifo_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMReadFifo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMReadFifo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMReadFifo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMReadFifo_get_ReadFifoMB(This,pnFifoSize_MB)	\
    ( (This)->lpVtbl -> get_ReadFifoMB(This,pnFifoSize_MB) ) 

#define ISLTMReadFifo_put_ReadFifoMB(This,nFifoSize_MB)	\
    ( (This)->lpVtbl -> put_ReadFifoMB(This,nFifoSize_MB) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMReadFifo_INTERFACE_DEFINED__ */


#ifndef __ISLTMShowLastHalfShot_INTERFACE_DEFINED__
#define __ISLTMShowLastHalfShot_INTERFACE_DEFINED__

/* interface ISLTMShowLastHalfShot */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMShowLastHalfShot;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("47450041-D962-4ecc-BE8D-E87C83BB9D30")
    ISLTMShowLastHalfShot : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowOneField( 
            /* [retval][out] */ long *pboolShowOneFieldOnly) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowOneField( 
            /* [in] */ long boolShowOneFieldOnly) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMShowLastHalfShotVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMShowLastHalfShot * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMShowLastHalfShot * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMShowLastHalfShot * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMShowLastHalfShot * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMShowLastHalfShot * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMShowLastHalfShot * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMShowLastHalfShot * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowOneField )( 
            ISLTMShowLastHalfShot * This,
            /* [retval][out] */ long *pboolShowOneFieldOnly);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowOneField )( 
            ISLTMShowLastHalfShot * This,
            /* [in] */ long boolShowOneFieldOnly);
        
        END_INTERFACE
    } ISLTMShowLastHalfShotVtbl;

    interface ISLTMShowLastHalfShot
    {
        CONST_VTBL struct ISLTMShowLastHalfShotVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMShowLastHalfShot_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMShowLastHalfShot_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMShowLastHalfShot_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMShowLastHalfShot_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMShowLastHalfShot_get_ShowOneField(This,pboolShowOneFieldOnly)	\
    ( (This)->lpVtbl -> get_ShowOneField(This,pboolShowOneFieldOnly) ) 

#define ISLTMShowLastHalfShot_put_ShowOneField(This,boolShowOneFieldOnly)	\
    ( (This)->lpVtbl -> put_ShowOneField(This,boolShowOneFieldOnly) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMShowLastHalfShot_INTERFACE_DEFINED__ */


#ifndef __ISLTMWatchDog_INTERFACE_DEFINED__
#define __ISLTMWatchDog_INTERFACE_DEFINED__

/* interface ISLTMWatchDog */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ISLTMWatchDog;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FF394C97-EB96-4c8d-BBE5-4FAA737FB0E5")
    ISLTMWatchDog : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetWatchDogTimeout( 
            /* [in] */ long nTimeoutMS) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetWatchDogStatus( 
            /* [out] */ SLTMWatchDogState *pStatus) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMWatchDogVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMWatchDog * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMWatchDog * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMWatchDog * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetWatchDogTimeout )( 
            ISLTMWatchDog * This,
            /* [in] */ long nTimeoutMS);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetWatchDogStatus )( 
            ISLTMWatchDog * This,
            /* [out] */ SLTMWatchDogState *pStatus);
        
        END_INTERFACE
    } ISLTMWatchDogVtbl;

    interface ISLTMWatchDog
    {
        CONST_VTBL struct ISLTMWatchDogVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMWatchDog_SetWatchDogTimeout(This,nTimeoutMS)	\
    ( (This)->lpVtbl -> SetWatchDogTimeout(This,nTimeoutMS) ) 

#define ISLTMWatchDog_GetWatchDogStatus(This,pStatus)	\
    ( (This)->lpVtbl -> GetWatchDogStatus(This,pStatus) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMWatchDog_INTERFACE_DEFINED__ */


#ifndef __ISLTMAudioPlayer_INTERFACE_DEFINED__
#define __ISLTMAudioPlayer_INTERFACE_DEFINED__

/* interface ISLTMAudioPlayer */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ISLTMAudioPlayer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D3DEE2AB-C630-4483-A716-DAAD9E1F550A")
    ISLTMAudioPlayer : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachToVideoPlayer( 
            /* [in] */ IUnknown *pVideoPlayer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrepareAudio( 
            /* [in] */ BSTR file_name,
            /* [out] */ double *duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrepareAudioPart( 
            /* [in] */ BSTR file_name,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [out] */ double *duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ResetPrepare( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PlayAudio( 
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE StopAudio( 
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PauseAudio( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnpauseAudio( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RestDuration( 
            /* [out] */ double *pEndingTime,
            /* [retval][out] */ double *pRestDuration) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PrepareState( 
            /* [retval][out] */ SLTMVideoPlayerPrepareState *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorDescription( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaybackState( 
            /* [retval][out] */ SLTMPlaybackState *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaybackErrorDescription( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Volume( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Volume( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enable( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enable( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mute( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Mute( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrepareAudioPair( 
            /* [in] */ BSTR file_nameLeft,
            /* [in] */ BSTR file_nameRight,
            /* [out] */ double *duration) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrepareAudioPairPart( 
            /* [in] */ BSTR file_nameLeft,
            /* [in] */ BSTR file_nameRight,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [out] */ double *duration) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISLTMAudioPlayerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISLTMAudioPlayer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISLTMAudioPlayer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISLTMAudioPlayer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISLTMAudioPlayer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISLTMAudioPlayer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISLTMAudioPlayer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISLTMAudioPlayer * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachToVideoPlayer )( 
            ISLTMAudioPlayer * This,
            /* [in] */ IUnknown *pVideoPlayer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrepareAudio )( 
            ISLTMAudioPlayer * This,
            /* [in] */ BSTR file_name,
            /* [out] */ double *duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrepareAudioPart )( 
            ISLTMAudioPlayer * This,
            /* [in] */ BSTR file_name,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [out] */ double *duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetPrepare )( 
            ISLTMAudioPlayer * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PlayAudio )( 
            ISLTMAudioPlayer * This,
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *StopAudio )( 
            ISLTMAudioPlayer * This,
            /* [in] */ double start_time,
            /* [in] */ double crossfade_duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PauseAudio )( 
            ISLTMAudioPlayer * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnpauseAudio )( 
            ISLTMAudioPlayer * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RestDuration )( 
            ISLTMAudioPlayer * This,
            /* [out] */ double *pEndingTime,
            /* [retval][out] */ double *pRestDuration);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PrepareState )( 
            ISLTMAudioPlayer * This,
            /* [retval][out] */ SLTMVideoPlayerPrepareState *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ErrorDescription )( 
            ISLTMAudioPlayer * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaybackState )( 
            ISLTMAudioPlayer * This,
            /* [retval][out] */ SLTMPlaybackState *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaybackErrorDescription )( 
            ISLTMAudioPlayer * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Volume )( 
            ISLTMAudioPlayer * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Volume )( 
            ISLTMAudioPlayer * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enable )( 
            ISLTMAudioPlayer * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enable )( 
            ISLTMAudioPlayer * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mute )( 
            ISLTMAudioPlayer * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mute )( 
            ISLTMAudioPlayer * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrepareAudioPair )( 
            ISLTMAudioPlayer * This,
            /* [in] */ BSTR file_nameLeft,
            /* [in] */ BSTR file_nameRight,
            /* [out] */ double *duration);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrepareAudioPairPart )( 
            ISLTMAudioPlayer * This,
            /* [in] */ BSTR file_nameLeft,
            /* [in] */ BSTR file_nameRight,
            /* [in] */ double fMarkIn,
            /* [in] */ double fMarkOut,
            /* [out] */ double *duration);
        
        END_INTERFACE
    } ISLTMAudioPlayerVtbl;

    interface ISLTMAudioPlayer
    {
        CONST_VTBL struct ISLTMAudioPlayerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISLTMAudioPlayer_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISLTMAudioPlayer_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISLTMAudioPlayer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISLTMAudioPlayer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISLTMAudioPlayer_AttachToVideoPlayer(This,pVideoPlayer)	\
    ( (This)->lpVtbl -> AttachToVideoPlayer(This,pVideoPlayer) ) 

#define ISLTMAudioPlayer_PrepareAudio(This,file_name,duration)	\
    ( (This)->lpVtbl -> PrepareAudio(This,file_name,duration) ) 

#define ISLTMAudioPlayer_PrepareAudioPart(This,file_name,fMarkIn,fMarkOut,duration)	\
    ( (This)->lpVtbl -> PrepareAudioPart(This,file_name,fMarkIn,fMarkOut,duration) ) 

#define ISLTMAudioPlayer_ResetPrepare(This)	\
    ( (This)->lpVtbl -> ResetPrepare(This) ) 

#define ISLTMAudioPlayer_PlayAudio(This,start_time,crossfade_duration)	\
    ( (This)->lpVtbl -> PlayAudio(This,start_time,crossfade_duration) ) 

#define ISLTMAudioPlayer_StopAudio(This,start_time,crossfade_duration)	\
    ( (This)->lpVtbl -> StopAudio(This,start_time,crossfade_duration) ) 

#define ISLTMAudioPlayer_PauseAudio(This)	\
    ( (This)->lpVtbl -> PauseAudio(This) ) 

#define ISLTMAudioPlayer_UnpauseAudio(This)	\
    ( (This)->lpVtbl -> UnpauseAudio(This) ) 

#define ISLTMAudioPlayer_get_RestDuration(This,pEndingTime,pRestDuration)	\
    ( (This)->lpVtbl -> get_RestDuration(This,pEndingTime,pRestDuration) ) 

#define ISLTMAudioPlayer_get_PrepareState(This,pVal)	\
    ( (This)->lpVtbl -> get_PrepareState(This,pVal) ) 

#define ISLTMAudioPlayer_get_ErrorDescription(This,pVal)	\
    ( (This)->lpVtbl -> get_ErrorDescription(This,pVal) ) 

#define ISLTMAudioPlayer_get_PlaybackState(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaybackState(This,pVal) ) 

#define ISLTMAudioPlayer_get_PlaybackErrorDescription(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaybackErrorDescription(This,pVal) ) 

#define ISLTMAudioPlayer_get_Volume(This,pVal)	\
    ( (This)->lpVtbl -> get_Volume(This,pVal) ) 

#define ISLTMAudioPlayer_put_Volume(This,newVal)	\
    ( (This)->lpVtbl -> put_Volume(This,newVal) ) 

#define ISLTMAudioPlayer_get_Enable(This,pVal)	\
    ( (This)->lpVtbl -> get_Enable(This,pVal) ) 

#define ISLTMAudioPlayer_put_Enable(This,newVal)	\
    ( (This)->lpVtbl -> put_Enable(This,newVal) ) 

#define ISLTMAudioPlayer_get_Mute(This,pVal)	\
    ( (This)->lpVtbl -> get_Mute(This,pVal) ) 

#define ISLTMAudioPlayer_put_Mute(This,newVal)	\
    ( (This)->lpVtbl -> put_Mute(This,newVal) ) 

#define ISLTMAudioPlayer_PrepareAudioPair(This,file_nameLeft,file_nameRight,duration)	\
    ( (This)->lpVtbl -> PrepareAudioPair(This,file_nameLeft,file_nameRight,duration) ) 

#define ISLTMAudioPlayer_PrepareAudioPairPart(This,file_nameLeft,file_nameRight,fMarkIn,fMarkOut,duration)	\
    ( (This)->lpVtbl -> PrepareAudioPairPart(This,file_nameLeft,file_nameRight,fMarkIn,fMarkOut,duration) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISLTMAudioPlayer_INTERFACE_DEFINED__ */



#ifndef __VIDEOPLAYERSDKLib_LIBRARY_DEFINED__
#define __VIDEOPLAYERSDKLib_LIBRARY_DEFINED__

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


EXTERN_C const IID LIBID_VIDEOPLAYERSDKLib;

EXTERN_C const CLSID CLSID_SLTMEnumVideoPlayer4TE;

#ifdef __cplusplus

class DECLSPEC_UUID("FE9AF59F-516A-4e50-BF9A-9CBFD026288A")
SLTMEnumVideoPlayer4TE;
#endif

EXTERN_C const CLSID CLSID_SLTMVideoPlayer4TE_OEM;

#ifdef __cplusplus

class DECLSPEC_UUID("B03EB4F6-BCA9-493d-A22D-780DA796D860")
SLTMVideoPlayer4TE_OEM;
#endif

EXTERN_C const CLSID CLSID_SLTMAudioPlayer4TE;

#ifdef __cplusplus

class DECLSPEC_UUID("46B629EA-C858-40b1-9157-0EBEAF8C6348")
SLTMAudioPlayer4TE;
#endif

EXTERN_C const CLSID CLSID_FDExtTitleTargetMgr;

#ifdef __cplusplus

class DECLSPEC_UUID("BAFE501E-4874-4EF9-8EF3-22D8F397DC82")
FDExtTitleTargetMgr;
#endif

EXTERN_C const CLSID CLSID_DVMTitleTargetMgr;

#ifdef __cplusplus

class DECLSPEC_UUID("CA5260BE-10C2-438A-B5A5-94237C058317")
DVMTitleTargetMgr;
#endif

EXTERN_C const CLSID CLSID_SLVideoprocessorTitleTarget;

#ifdef __cplusplus

class DECLSPEC_UUID("73DA552F-4946-4670-8484-958F97A223F2")
SLVideoprocessorTitleTarget;
#endif
#endif /* __VIDEOPLAYERSDKLib_LIBRARY_DEFINED__ */

/* 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 * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


