

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


 /* File created by MIDL compiler version 7.00.0555 */
/* at Mon Aug 13 19:34:15 2012
 */
/* Compiler settings for .\TotalRecorder.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 
    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 __TotalRecorder_i_h__
#define __TotalRecorder_i_h__

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

/* Forward Declarations */ 

#ifndef __ITotalRecorderApplication_FWD_DEFINED__
#define __ITotalRecorderApplication_FWD_DEFINED__
typedef interface ITotalRecorderApplication ITotalRecorderApplication;
#endif 	/* __ITotalRecorderApplication_FWD_DEFINED__ */


#ifndef ___ITotalRecorderApplicationEvents_FWD_DEFINED__
#define ___ITotalRecorderApplicationEvents_FWD_DEFINED__
typedef interface _ITotalRecorderApplicationEvents _ITotalRecorderApplicationEvents;
#endif 	/* ___ITotalRecorderApplicationEvents_FWD_DEFINED__ */


#ifndef __ITotalRecorderDocument_FWD_DEFINED__
#define __ITotalRecorderDocument_FWD_DEFINED__
typedef interface ITotalRecorderDocument ITotalRecorderDocument;
#endif 	/* __ITotalRecorderDocument_FWD_DEFINED__ */


#ifndef __ITotalRecorderSoundFormat_FWD_DEFINED__
#define __ITotalRecorderSoundFormat_FWD_DEFINED__
typedef interface ITotalRecorderSoundFormat ITotalRecorderSoundFormat;
#endif 	/* __ITotalRecorderSoundFormat_FWD_DEFINED__ */


#ifndef __ITotalRecorderMixer_FWD_DEFINED__
#define __ITotalRecorderMixer_FWD_DEFINED__
typedef interface ITotalRecorderMixer ITotalRecorderMixer;
#endif 	/* __ITotalRecorderMixer_FWD_DEFINED__ */


#ifndef __ITotalRecorderRecordingParameters_FWD_DEFINED__
#define __ITotalRecorderRecordingParameters_FWD_DEFINED__
typedef interface ITotalRecorderRecordingParameters ITotalRecorderRecordingParameters;
#endif 	/* __ITotalRecorderRecordingParameters_FWD_DEFINED__ */


#ifndef __ITotalRecorderWaveDevices_FWD_DEFINED__
#define __ITotalRecorderWaveDevices_FWD_DEFINED__
typedef interface ITotalRecorderWaveDevices ITotalRecorderWaveDevices;
#endif 	/* __ITotalRecorderWaveDevices_FWD_DEFINED__ */


#ifndef __ITotalRecorderConfiguration_FWD_DEFINED__
#define __ITotalRecorderConfiguration_FWD_DEFINED__
typedef interface ITotalRecorderConfiguration ITotalRecorderConfiguration;
#endif 	/* __ITotalRecorderConfiguration_FWD_DEFINED__ */


#ifndef __TotalRecorderApplication_FWD_DEFINED__
#define __TotalRecorderApplication_FWD_DEFINED__

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

#endif 	/* __TotalRecorderApplication_FWD_DEFINED__ */


#ifndef __TotalRecorderDocument_FWD_DEFINED__
#define __TotalRecorderDocument_FWD_DEFINED__

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

#endif 	/* __TotalRecorderDocument_FWD_DEFINED__ */


#ifndef __TotalRecorderSoundFormat_FWD_DEFINED__
#define __TotalRecorderSoundFormat_FWD_DEFINED__

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

#endif 	/* __TotalRecorderSoundFormat_FWD_DEFINED__ */


#ifndef __TotalRecorderMixer_FWD_DEFINED__
#define __TotalRecorderMixer_FWD_DEFINED__

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

#endif 	/* __TotalRecorderMixer_FWD_DEFINED__ */


#ifndef __TotalRecorderRecordingParameters_FWD_DEFINED__
#define __TotalRecorderRecordingParameters_FWD_DEFINED__

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

#endif 	/* __TotalRecorderRecordingParameters_FWD_DEFINED__ */


#ifndef __TotalRecorderWaveDevices_FWD_DEFINED__
#define __TotalRecorderWaveDevices_FWD_DEFINED__

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

#endif 	/* __TotalRecorderWaveDevices_FWD_DEFINED__ */


#ifndef __TotalRecorderConfiguration_FWD_DEFINED__
#define __TotalRecorderConfiguration_FWD_DEFINED__

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

#endif 	/* __TotalRecorderConfiguration_FWD_DEFINED__ */


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

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_TotalRecorder_0000_0000 */
/* [local] */ 











extern RPC_IF_HANDLE __MIDL_itf_TotalRecorder_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_TotalRecorder_0000_0000_v0_0_s_ifspec;

#ifndef __ITotalRecorderApplication_INTERFACE_DEFINED__
#define __ITotalRecorderApplication_INTERFACE_DEFINED__

/* interface ITotalRecorderApplication */
/* [nonextensible][unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ITotalRecorderApplication;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("39EE2B55-3EC4-11D5-8720-00A0248A5955")
    ITotalRecorderApplication : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Visible( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Visible( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveDocument( 
            /* [retval][out] */ ITotalRecorderDocument **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DefaultFilePath( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DefaultFilePath( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FullName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Quit( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LastErrorMessage( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_StatusMessage( 
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoJob( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoJob( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Playing( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Playing( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Recording( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Recording( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Paused( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Paused( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreRecording( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PreRecording( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreRecorded( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Position( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Position( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Level( 
            /* [in] */ long Channel,
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SelectionVisible( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SelectionVisible( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LeftMarker( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LeftMarker( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RightMarker( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RightMarker( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Configuration( 
            /* [retval][out] */ ITotalRecorderConfiguration **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Configuration( 
            /* [in] */ ITotalRecorderConfiguration *newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RecordingParameters( 
            /* [retval][out] */ ITotalRecorderRecordingParameters **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RecordingParameters( 
            /* [in] */ ITotalRecorderRecordingParameters *newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mixer( 
            /* [retval][out] */ ITotalRecorderMixer **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_WaveDevices( 
            /* [retval][out] */ ITotalRecorderWaveDevices **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClearPreRecording( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MessageMode( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MessageMode( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ModalDialog( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_StopPlayAtSelBound( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_StopPlayAtSelBound( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowSoundImage( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowSoundImage( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InsertMode( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_InsertMode( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindNextSplitPoint( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAsSplit( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowLevelPeak( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowLevelPeak( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RepeatPlayback( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RepeatPlayback( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowVolumePanel( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowVolumePanel( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AddonsCount( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AddonName( 
            long AddonNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AddonNumber( 
            BSTR AddonName,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AddonParamsCount( 
            long AddonNumber,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AddonParamName( 
            long AddonNumber,
            long ParameterNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AddonParamNumber( 
            long AddonNumber,
            BSTR ParameterName,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AddonParamValue( 
            long AddonNumber,
            long ParameterNumber,
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AddonParamValue( 
            long AddonNumber,
            long ParameterNumber,
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddonExecuteChanges( 
            long AddonNumber) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AlwaysOnTop( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AlwaysOnTop( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowInformationPanel( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowInformationPanel( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowSoundImageWindow( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowSoundImageWindow( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowMainToolbar( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowMainToolbar( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ViewType( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ViewType( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoSetLevel( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoSetLevel( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MixingMode( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MixingMode( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MonitoringMode( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MonitoringMode( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowSoundApplications( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowSoundApplications( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowVideoWindow( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowVideoWindow( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoFullScreen( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_VideoFullScreen( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoScale( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_VideoScale( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowPlaylistWindow( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowPlaylistWindow( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowCueSheetEditor( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowCueSheetEditor( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlayingSpeed( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlayingSpeed( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowRuler( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowRuler( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITotalRecorderApplicationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITotalRecorderApplication * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITotalRecorderApplication * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITotalRecorderApplication * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ITotalRecorderApplication * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ITotalRecorderApplication * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ITotalRecorderApplication * 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 )( 
            ITotalRecorderApplication * 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_Name )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveDocument )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ ITotalRecorderDocument **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( 
            ITotalRecorderApplication * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultFilePath )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DefaultFilePath )( 
            ITotalRecorderApplication * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FullName )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Quit )( 
            ITotalRecorderApplication * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastErrorMessage )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StatusMessage )( 
            ITotalRecorderApplication * This,
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoJob )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoJob )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Playing )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Playing )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Recording )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Recording )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Paused )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Paused )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreRecording )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PreRecording )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreRecorded )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Position )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Position )( 
            ITotalRecorderApplication * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Level )( 
            ITotalRecorderApplication * This,
            /* [in] */ long Channel,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectionVisible )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SelectionVisible )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LeftMarker )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LeftMarker )( 
            ITotalRecorderApplication * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RightMarker )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RightMarker )( 
            ITotalRecorderApplication * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Configuration )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ ITotalRecorderConfiguration **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Configuration )( 
            ITotalRecorderApplication * This,
            /* [in] */ ITotalRecorderConfiguration *newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecordingParameters )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ ITotalRecorderRecordingParameters **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecordingParameters )( 
            ITotalRecorderApplication * This,
            /* [in] */ ITotalRecorderRecordingParameters *newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mixer )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ ITotalRecorderMixer **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WaveDevices )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ ITotalRecorderWaveDevices **pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClearPreRecording )( 
            ITotalRecorderApplication * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MessageMode )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MessageMode )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModalDialog )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StopPlayAtSelBound )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_StopPlayAtSelBound )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowSoundImage )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowSoundImage )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InsertMode )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_InsertMode )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindNextSplitPoint )( 
            ITotalRecorderApplication * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAsSplit )( 
            ITotalRecorderApplication * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowLevelPeak )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowLevelPeak )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RepeatPlayback )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RepeatPlayback )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowVolumePanel )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowVolumePanel )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AddonsCount )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AddonName )( 
            ITotalRecorderApplication * This,
            long AddonNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AddonNumber )( 
            ITotalRecorderApplication * This,
            BSTR AddonName,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AddonParamsCount )( 
            ITotalRecorderApplication * This,
            long AddonNumber,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AddonParamName )( 
            ITotalRecorderApplication * This,
            long AddonNumber,
            long ParameterNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AddonParamNumber )( 
            ITotalRecorderApplication * This,
            long AddonNumber,
            BSTR ParameterName,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AddonParamValue )( 
            ITotalRecorderApplication * This,
            long AddonNumber,
            long ParameterNumber,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AddonParamValue )( 
            ITotalRecorderApplication * This,
            long AddonNumber,
            long ParameterNumber,
            /* [in] */ double newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddonExecuteChanges )( 
            ITotalRecorderApplication * This,
            long AddonNumber);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlwaysOnTop )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AlwaysOnTop )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowInformationPanel )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowInformationPanel )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowSoundImageWindow )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowSoundImageWindow )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowMainToolbar )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowMainToolbar )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ViewType )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ViewType )( 
            ITotalRecorderApplication * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoSetLevel )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoSetLevel )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MixingMode )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MixingMode )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MonitoringMode )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MonitoringMode )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowSoundApplications )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowSoundApplications )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowVideoWindow )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowVideoWindow )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoFullScreen )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_VideoFullScreen )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoScale )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_VideoScale )( 
            ITotalRecorderApplication * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowPlaylistWindow )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowPlaylistWindow )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowCueSheetEditor )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowCueSheetEditor )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlayingSpeed )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlayingSpeed )( 
            ITotalRecorderApplication * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowRuler )( 
            ITotalRecorderApplication * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowRuler )( 
            ITotalRecorderApplication * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        END_INTERFACE
    } ITotalRecorderApplicationVtbl;

    interface ITotalRecorderApplication
    {
        CONST_VTBL struct ITotalRecorderApplicationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ITotalRecorderApplication_get_Name(This,pVal)	\
    ( (This)->lpVtbl -> get_Name(This,pVal) ) 

#define ITotalRecorderApplication_get_Application(This,pVal)	\
    ( (This)->lpVtbl -> get_Application(This,pVal) ) 

#define ITotalRecorderApplication_get_Visible(This,pVal)	\
    ( (This)->lpVtbl -> get_Visible(This,pVal) ) 

#define ITotalRecorderApplication_put_Visible(This,newVal)	\
    ( (This)->lpVtbl -> put_Visible(This,newVal) ) 

#define ITotalRecorderApplication_get_ActiveDocument(This,pVal)	\
    ( (This)->lpVtbl -> get_ActiveDocument(This,pVal) ) 

#define ITotalRecorderApplication_get_Caption(This,pVal)	\
    ( (This)->lpVtbl -> get_Caption(This,pVal) ) 

#define ITotalRecorderApplication_put_Caption(This,newVal)	\
    ( (This)->lpVtbl -> put_Caption(This,newVal) ) 

#define ITotalRecorderApplication_get_DefaultFilePath(This,pVal)	\
    ( (This)->lpVtbl -> get_DefaultFilePath(This,pVal) ) 

#define ITotalRecorderApplication_put_DefaultFilePath(This,newVal)	\
    ( (This)->lpVtbl -> put_DefaultFilePath(This,newVal) ) 

#define ITotalRecorderApplication_get_FullName(This,pVal)	\
    ( (This)->lpVtbl -> get_FullName(This,pVal) ) 

#define ITotalRecorderApplication_get_Parent(This,pVal)	\
    ( (This)->lpVtbl -> get_Parent(This,pVal) ) 

#define ITotalRecorderApplication_get_Path(This,pVal)	\
    ( (This)->lpVtbl -> get_Path(This,pVal) ) 

#define ITotalRecorderApplication_Quit(This)	\
    ( (This)->lpVtbl -> Quit(This) ) 

#define ITotalRecorderApplication_get_LastErrorMessage(This,pVal)	\
    ( (This)->lpVtbl -> get_LastErrorMessage(This,pVal) ) 

#define ITotalRecorderApplication_get_StatusMessage(This,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_StatusMessage(This,LineNumber,pVal) ) 

#define ITotalRecorderApplication_get_AutoJob(This,pVal)	\
    ( (This)->lpVtbl -> get_AutoJob(This,pVal) ) 

#define ITotalRecorderApplication_put_AutoJob(This,newVal)	\
    ( (This)->lpVtbl -> put_AutoJob(This,newVal) ) 

#define ITotalRecorderApplication_get_Playing(This,pVal)	\
    ( (This)->lpVtbl -> get_Playing(This,pVal) ) 

#define ITotalRecorderApplication_put_Playing(This,newVal)	\
    ( (This)->lpVtbl -> put_Playing(This,newVal) ) 

#define ITotalRecorderApplication_get_Recording(This,pVal)	\
    ( (This)->lpVtbl -> get_Recording(This,pVal) ) 

#define ITotalRecorderApplication_put_Recording(This,newVal)	\
    ( (This)->lpVtbl -> put_Recording(This,newVal) ) 

#define ITotalRecorderApplication_get_Paused(This,pVal)	\
    ( (This)->lpVtbl -> get_Paused(This,pVal) ) 

#define ITotalRecorderApplication_put_Paused(This,newVal)	\
    ( (This)->lpVtbl -> put_Paused(This,newVal) ) 

#define ITotalRecorderApplication_get_PreRecording(This,pVal)	\
    ( (This)->lpVtbl -> get_PreRecording(This,pVal) ) 

#define ITotalRecorderApplication_put_PreRecording(This,newVal)	\
    ( (This)->lpVtbl -> put_PreRecording(This,newVal) ) 

#define ITotalRecorderApplication_get_PreRecorded(This,pVal)	\
    ( (This)->lpVtbl -> get_PreRecorded(This,pVal) ) 

#define ITotalRecorderApplication_get_Position(This,pVal)	\
    ( (This)->lpVtbl -> get_Position(This,pVal) ) 

#define ITotalRecorderApplication_put_Position(This,newVal)	\
    ( (This)->lpVtbl -> put_Position(This,newVal) ) 

#define ITotalRecorderApplication_get_Level(This,Channel,pVal)	\
    ( (This)->lpVtbl -> get_Level(This,Channel,pVal) ) 

#define ITotalRecorderApplication_get_SelectionVisible(This,pVal)	\
    ( (This)->lpVtbl -> get_SelectionVisible(This,pVal) ) 

#define ITotalRecorderApplication_put_SelectionVisible(This,newVal)	\
    ( (This)->lpVtbl -> put_SelectionVisible(This,newVal) ) 

#define ITotalRecorderApplication_get_LeftMarker(This,pVal)	\
    ( (This)->lpVtbl -> get_LeftMarker(This,pVal) ) 

#define ITotalRecorderApplication_put_LeftMarker(This,newVal)	\
    ( (This)->lpVtbl -> put_LeftMarker(This,newVal) ) 

#define ITotalRecorderApplication_get_RightMarker(This,pVal)	\
    ( (This)->lpVtbl -> get_RightMarker(This,pVal) ) 

#define ITotalRecorderApplication_put_RightMarker(This,newVal)	\
    ( (This)->lpVtbl -> put_RightMarker(This,newVal) ) 

#define ITotalRecorderApplication_get_Configuration(This,pVal)	\
    ( (This)->lpVtbl -> get_Configuration(This,pVal) ) 

#define ITotalRecorderApplication_put_Configuration(This,newVal)	\
    ( (This)->lpVtbl -> put_Configuration(This,newVal) ) 

#define ITotalRecorderApplication_get_RecordingParameters(This,pVal)	\
    ( (This)->lpVtbl -> get_RecordingParameters(This,pVal) ) 

#define ITotalRecorderApplication_put_RecordingParameters(This,newVal)	\
    ( (This)->lpVtbl -> put_RecordingParameters(This,newVal) ) 

#define ITotalRecorderApplication_get_Mixer(This,pVal)	\
    ( (This)->lpVtbl -> get_Mixer(This,pVal) ) 

#define ITotalRecorderApplication_get_WaveDevices(This,pVal)	\
    ( (This)->lpVtbl -> get_WaveDevices(This,pVal) ) 

#define ITotalRecorderApplication_ClearPreRecording(This)	\
    ( (This)->lpVtbl -> ClearPreRecording(This) ) 

#define ITotalRecorderApplication_get_MessageMode(This,pVal)	\
    ( (This)->lpVtbl -> get_MessageMode(This,pVal) ) 

#define ITotalRecorderApplication_put_MessageMode(This,newVal)	\
    ( (This)->lpVtbl -> put_MessageMode(This,newVal) ) 

#define ITotalRecorderApplication_get_ModalDialog(This,pVal)	\
    ( (This)->lpVtbl -> get_ModalDialog(This,pVal) ) 

#define ITotalRecorderApplication_get_StopPlayAtSelBound(This,pVal)	\
    ( (This)->lpVtbl -> get_StopPlayAtSelBound(This,pVal) ) 

#define ITotalRecorderApplication_put_StopPlayAtSelBound(This,newVal)	\
    ( (This)->lpVtbl -> put_StopPlayAtSelBound(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowSoundImage(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowSoundImage(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowSoundImage(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowSoundImage(This,newVal) ) 

#define ITotalRecorderApplication_get_InsertMode(This,pVal)	\
    ( (This)->lpVtbl -> get_InsertMode(This,pVal) ) 

#define ITotalRecorderApplication_put_InsertMode(This,newVal)	\
    ( (This)->lpVtbl -> put_InsertMode(This,newVal) ) 

#define ITotalRecorderApplication_FindNextSplitPoint(This)	\
    ( (This)->lpVtbl -> FindNextSplitPoint(This) ) 

#define ITotalRecorderApplication_SaveAsSplit(This)	\
    ( (This)->lpVtbl -> SaveAsSplit(This) ) 

#define ITotalRecorderApplication_get_ShowLevelPeak(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowLevelPeak(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowLevelPeak(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowLevelPeak(This,newVal) ) 

#define ITotalRecorderApplication_get_RepeatPlayback(This,pVal)	\
    ( (This)->lpVtbl -> get_RepeatPlayback(This,pVal) ) 

#define ITotalRecorderApplication_put_RepeatPlayback(This,newVal)	\
    ( (This)->lpVtbl -> put_RepeatPlayback(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowVolumePanel(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowVolumePanel(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowVolumePanel(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowVolumePanel(This,newVal) ) 

#define ITotalRecorderApplication_get_AddonsCount(This,pVal)	\
    ( (This)->lpVtbl -> get_AddonsCount(This,pVal) ) 

#define ITotalRecorderApplication_get_AddonName(This,AddonNumber,pVal)	\
    ( (This)->lpVtbl -> get_AddonName(This,AddonNumber,pVal) ) 

#define ITotalRecorderApplication_get_AddonNumber(This,AddonName,pVal)	\
    ( (This)->lpVtbl -> get_AddonNumber(This,AddonName,pVal) ) 

#define ITotalRecorderApplication_get_AddonParamsCount(This,AddonNumber,pVal)	\
    ( (This)->lpVtbl -> get_AddonParamsCount(This,AddonNumber,pVal) ) 

#define ITotalRecorderApplication_get_AddonParamName(This,AddonNumber,ParameterNumber,pVal)	\
    ( (This)->lpVtbl -> get_AddonParamName(This,AddonNumber,ParameterNumber,pVal) ) 

#define ITotalRecorderApplication_get_AddonParamNumber(This,AddonNumber,ParameterName,pVal)	\
    ( (This)->lpVtbl -> get_AddonParamNumber(This,AddonNumber,ParameterName,pVal) ) 

#define ITotalRecorderApplication_get_AddonParamValue(This,AddonNumber,ParameterNumber,pVal)	\
    ( (This)->lpVtbl -> get_AddonParamValue(This,AddonNumber,ParameterNumber,pVal) ) 

#define ITotalRecorderApplication_put_AddonParamValue(This,AddonNumber,ParameterNumber,newVal)	\
    ( (This)->lpVtbl -> put_AddonParamValue(This,AddonNumber,ParameterNumber,newVal) ) 

#define ITotalRecorderApplication_AddonExecuteChanges(This,AddonNumber)	\
    ( (This)->lpVtbl -> AddonExecuteChanges(This,AddonNumber) ) 

#define ITotalRecorderApplication_get_AlwaysOnTop(This,pVal)	\
    ( (This)->lpVtbl -> get_AlwaysOnTop(This,pVal) ) 

#define ITotalRecorderApplication_put_AlwaysOnTop(This,newVal)	\
    ( (This)->lpVtbl -> put_AlwaysOnTop(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowInformationPanel(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowInformationPanel(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowInformationPanel(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowInformationPanel(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowSoundImageWindow(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowSoundImageWindow(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowSoundImageWindow(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowSoundImageWindow(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowMainToolbar(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowMainToolbar(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowMainToolbar(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowMainToolbar(This,newVal) ) 

#define ITotalRecorderApplication_get_ViewType(This,pVal)	\
    ( (This)->lpVtbl -> get_ViewType(This,pVal) ) 

#define ITotalRecorderApplication_put_ViewType(This,newVal)	\
    ( (This)->lpVtbl -> put_ViewType(This,newVal) ) 

#define ITotalRecorderApplication_get_AutoSetLevel(This,pVal)	\
    ( (This)->lpVtbl -> get_AutoSetLevel(This,pVal) ) 

#define ITotalRecorderApplication_put_AutoSetLevel(This,newVal)	\
    ( (This)->lpVtbl -> put_AutoSetLevel(This,newVal) ) 

#define ITotalRecorderApplication_get_MixingMode(This,pVal)	\
    ( (This)->lpVtbl -> get_MixingMode(This,pVal) ) 

#define ITotalRecorderApplication_put_MixingMode(This,newVal)	\
    ( (This)->lpVtbl -> put_MixingMode(This,newVal) ) 

#define ITotalRecorderApplication_get_MonitoringMode(This,pVal)	\
    ( (This)->lpVtbl -> get_MonitoringMode(This,pVal) ) 

#define ITotalRecorderApplication_put_MonitoringMode(This,newVal)	\
    ( (This)->lpVtbl -> put_MonitoringMode(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowSoundApplications(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowSoundApplications(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowSoundApplications(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowSoundApplications(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowVideoWindow(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowVideoWindow(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowVideoWindow(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowVideoWindow(This,newVal) ) 

#define ITotalRecorderApplication_get_VideoFullScreen(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoFullScreen(This,pVal) ) 

#define ITotalRecorderApplication_put_VideoFullScreen(This,newVal)	\
    ( (This)->lpVtbl -> put_VideoFullScreen(This,newVal) ) 

#define ITotalRecorderApplication_get_VideoScale(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoScale(This,pVal) ) 

#define ITotalRecorderApplication_put_VideoScale(This,newVal)	\
    ( (This)->lpVtbl -> put_VideoScale(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowPlaylistWindow(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowPlaylistWindow(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowPlaylistWindow(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowPlaylistWindow(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowCueSheetEditor(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowCueSheetEditor(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowCueSheetEditor(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowCueSheetEditor(This,newVal) ) 

#define ITotalRecorderApplication_get_PlayingSpeed(This,pVal)	\
    ( (This)->lpVtbl -> get_PlayingSpeed(This,pVal) ) 

#define ITotalRecorderApplication_put_PlayingSpeed(This,newVal)	\
    ( (This)->lpVtbl -> put_PlayingSpeed(This,newVal) ) 

#define ITotalRecorderApplication_get_ShowRuler(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowRuler(This,pVal) ) 

#define ITotalRecorderApplication_put_ShowRuler(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowRuler(This,newVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITotalRecorderApplication_INTERFACE_DEFINED__ */



#ifndef __TotalRecorderLib_LIBRARY_DEFINED__
#define __TotalRecorderLib_LIBRARY_DEFINED__

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


EXTERN_C const IID LIBID_TotalRecorderLib;

#ifndef ___ITotalRecorderApplicationEvents_DISPINTERFACE_DEFINED__
#define ___ITotalRecorderApplicationEvents_DISPINTERFACE_DEFINED__

/* dispinterface _ITotalRecorderApplicationEvents */
/* [helpstring][uuid] */ 


EXTERN_C const IID DIID__ITotalRecorderApplicationEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("39EE2B57-3EC4-11D5-8720-00A0248A5955")
    _ITotalRecorderApplicationEvents : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct _ITotalRecorderApplicationEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _ITotalRecorderApplicationEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _ITotalRecorderApplicationEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _ITotalRecorderApplicationEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _ITotalRecorderApplicationEvents * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _ITotalRecorderApplicationEvents * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _ITotalRecorderApplicationEvents * 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 )( 
            _ITotalRecorderApplicationEvents * 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);
        
        END_INTERFACE
    } _ITotalRecorderApplicationEventsVtbl;

    interface _ITotalRecorderApplicationEvents
    {
        CONST_VTBL struct _ITotalRecorderApplicationEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* ___ITotalRecorderApplicationEvents_DISPINTERFACE_DEFINED__ */


#ifndef __ITotalRecorderDocument_INTERFACE_DEFINED__
#define __ITotalRecorderDocument_INTERFACE_DEFINED__

/* interface ITotalRecorderDocument */
/* [nonextensible][unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ITotalRecorderDocument;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AD6A0F74-4373-11D5-8728-00A0248A5955")
    ITotalRecorderDocument : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FullName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Saved( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Close( 
            /* [optional][in] */ VARIANT SaveChanges,
            /* [optional][in] */ VARIANT FileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAs( 
            /* [optional][in] */ VARIANT FileName,
            /* [optional][in] */ VARIANT Format) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Duration( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Format( 
            /* [retval][out] */ ITotalRecorderSoundFormat **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Normalization( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Normalization( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( 
            /* [in] */ BSTR FileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SavePartAs( 
            /* [in] */ BSTR FileName,
            /* [in] */ double StartPosition,
            /* [in] */ double EndPosition,
            /* [optional][in] */ VARIANT Format) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SelectionBegin( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SelectionBegin( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SelectionEnd( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SelectionEnd( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExistSelection( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ExistSelection( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CanUndo( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CanRedo( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CanPaste( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Undo( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Redo( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CutSelection( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CopySelection( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteSelection( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Paste( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertFile( 
            /* [in] */ BSTR FileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SplitNow( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FadeInOut( 
            /* [in] */ VARIANT_BOOL ApplyToSelection,
            /* [in] */ long FadeDuration,
            /* [in] */ long FadeType) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DcOffset( 
            long Channel,
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveDcOffset( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalizationChannel( 
            long Channel,
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_NormalizationChannel( 
            long Channel,
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PausesReduction( 
            /* [in] */ double PauseLevel,
            /* [in] */ double PauseDuration) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NormalizationIgnorePeaks( 
            long Channel,
            double IgnoredDuration,
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remix( 
            /* [in] */ double Volume1,
            /* [in] */ double Volume2,
            /* [in] */ double CrossfadeSeconds) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MixingClipboard( 
            /* [in] */ double Volume1,
            /* [in] */ double Volume2,
            /* [in] */ double CrossfadeSeconds,
            /* [in] */ VARIANT_BOOL Trim) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MixingFile( 
            /* [in] */ double Volume1,
            /* [in] */ double Volume2,
            /* [in] */ double CrossfadeSeconds,
            /* [in] */ VARIANT_BOOL Trim,
            /* [in] */ BSTR FileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveMixedSeparatelyAs( 
            /* [in] */ long PartNumber,
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Format) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InsertSilence( 
            /* [in] */ double SilenceDuration) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsAudioPresent( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsVideoPresent( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsVideoFrameBound( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoFramePrevious( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoFrameNext( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsVideoKeyFrameBound( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoKeyFramePrevious( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoKeyFrameNext( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoAttributes( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoFourCC( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoFourCCDescription( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAudioAs( 
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Format) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveVideoAs( 
            /* [in] */ BSTR FileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveVideoFrameAs( 
            /* [in] */ BSTR FileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddAudioStream( 
            /* [in] */ BSTR FileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAsMono( 
            /* [in] */ BSTR FileName,
            /* [in] */ double LeftChannel,
            /* [in] */ double RightChannel,
            /* [optional][in] */ VARIANT Format) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveAsSpeed( 
            /* [in] */ BSTR FileName,
            /* [in] */ double Speed,
            /* [in] */ VARIANT_BOOL PreserveTone,
            /* [optional][in] */ VARIANT Format) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITotalRecorderDocumentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITotalRecorderDocument * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITotalRecorderDocument * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITotalRecorderDocument * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ITotalRecorderDocument * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ITotalRecorderDocument * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ITotalRecorderDocument * 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 )( 
            ITotalRecorderDocument * 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_Application )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FullName )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Saved )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Close )( 
            ITotalRecorderDocument * This,
            /* [optional][in] */ VARIANT SaveChanges,
            /* [optional][in] */ VARIANT FileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAs )( 
            ITotalRecorderDocument * This,
            /* [optional][in] */ VARIANT FileName,
            /* [optional][in] */ VARIANT Format);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Duration )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ ITotalRecorderSoundFormat **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Normalization )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Normalization )( 
            ITotalRecorderDocument * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SavePartAs )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName,
            /* [in] */ double StartPosition,
            /* [in] */ double EndPosition,
            /* [optional][in] */ VARIANT Format);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectionBegin )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SelectionBegin )( 
            ITotalRecorderDocument * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectionEnd )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SelectionEnd )( 
            ITotalRecorderDocument * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExistSelection )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ExistSelection )( 
            ITotalRecorderDocument * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanUndo )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanRedo )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanPaste )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Undo )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Redo )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CutSelection )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CopySelection )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteSelection )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Paste )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertFile )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SplitNow )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FadeInOut )( 
            ITotalRecorderDocument * This,
            /* [in] */ VARIANT_BOOL ApplyToSelection,
            /* [in] */ long FadeDuration,
            /* [in] */ long FadeType);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DcOffset )( 
            ITotalRecorderDocument * This,
            long Channel,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveDcOffset )( 
            ITotalRecorderDocument * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalizationChannel )( 
            ITotalRecorderDocument * This,
            long Channel,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_NormalizationChannel )( 
            ITotalRecorderDocument * This,
            long Channel,
            /* [in] */ double newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PausesReduction )( 
            ITotalRecorderDocument * This,
            /* [in] */ double PauseLevel,
            /* [in] */ double PauseDuration);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NormalizationIgnorePeaks )( 
            ITotalRecorderDocument * This,
            long Channel,
            double IgnoredDuration,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remix )( 
            ITotalRecorderDocument * This,
            /* [in] */ double Volume1,
            /* [in] */ double Volume2,
            /* [in] */ double CrossfadeSeconds);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MixingClipboard )( 
            ITotalRecorderDocument * This,
            /* [in] */ double Volume1,
            /* [in] */ double Volume2,
            /* [in] */ double CrossfadeSeconds,
            /* [in] */ VARIANT_BOOL Trim);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MixingFile )( 
            ITotalRecorderDocument * This,
            /* [in] */ double Volume1,
            /* [in] */ double Volume2,
            /* [in] */ double CrossfadeSeconds,
            /* [in] */ VARIANT_BOOL Trim,
            /* [in] */ BSTR FileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveMixedSeparatelyAs )( 
            ITotalRecorderDocument * This,
            /* [in] */ long PartNumber,
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Format);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InsertSilence )( 
            ITotalRecorderDocument * This,
            /* [in] */ double SilenceDuration);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsAudioPresent )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsVideoPresent )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsVideoFrameBound )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoFramePrevious )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoFrameNext )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsVideoKeyFrameBound )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoKeyFramePrevious )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoKeyFrameNext )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoAttributes )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoFourCC )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoFourCCDescription )( 
            ITotalRecorderDocument * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAudioAs )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName,
            /* [optional][in] */ VARIANT Format);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveVideoAs )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveVideoFrameAs )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddAudioStream )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAsMono )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName,
            /* [in] */ double LeftChannel,
            /* [in] */ double RightChannel,
            /* [optional][in] */ VARIANT Format);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveAsSpeed )( 
            ITotalRecorderDocument * This,
            /* [in] */ BSTR FileName,
            /* [in] */ double Speed,
            /* [in] */ VARIANT_BOOL PreserveTone,
            /* [optional][in] */ VARIANT Format);
        
        END_INTERFACE
    } ITotalRecorderDocumentVtbl;

    interface ITotalRecorderDocument
    {
        CONST_VTBL struct ITotalRecorderDocumentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ITotalRecorderDocument_get_Application(This,pVal)	\
    ( (This)->lpVtbl -> get_Application(This,pVal) ) 

#define ITotalRecorderDocument_get_FullName(This,pVal)	\
    ( (This)->lpVtbl -> get_FullName(This,pVal) ) 

#define ITotalRecorderDocument_get_Name(This,pVal)	\
    ( (This)->lpVtbl -> get_Name(This,pVal) ) 

#define ITotalRecorderDocument_get_Parent(This,pVal)	\
    ( (This)->lpVtbl -> get_Parent(This,pVal) ) 

#define ITotalRecorderDocument_get_Path(This,pVal)	\
    ( (This)->lpVtbl -> get_Path(This,pVal) ) 

#define ITotalRecorderDocument_get_Saved(This,pVal)	\
    ( (This)->lpVtbl -> get_Saved(This,pVal) ) 

#define ITotalRecorderDocument_Activate(This)	\
    ( (This)->lpVtbl -> Activate(This) ) 

#define ITotalRecorderDocument_Close(This,SaveChanges,FileName)	\
    ( (This)->lpVtbl -> Close(This,SaveChanges,FileName) ) 

#define ITotalRecorderDocument_Save(This)	\
    ( (This)->lpVtbl -> Save(This) ) 

#define ITotalRecorderDocument_SaveAs(This,FileName,Format)	\
    ( (This)->lpVtbl -> SaveAs(This,FileName,Format) ) 

#define ITotalRecorderDocument_get_Duration(This,pVal)	\
    ( (This)->lpVtbl -> get_Duration(This,pVal) ) 

#define ITotalRecorderDocument_get_Format(This,pVal)	\
    ( (This)->lpVtbl -> get_Format(This,pVal) ) 

#define ITotalRecorderDocument_get_Normalization(This,pVal)	\
    ( (This)->lpVtbl -> get_Normalization(This,pVal) ) 

#define ITotalRecorderDocument_put_Normalization(This,newVal)	\
    ( (This)->lpVtbl -> put_Normalization(This,newVal) ) 

#define ITotalRecorderDocument_Open(This,FileName)	\
    ( (This)->lpVtbl -> Open(This,FileName) ) 

#define ITotalRecorderDocument_SavePartAs(This,FileName,StartPosition,EndPosition,Format)	\
    ( (This)->lpVtbl -> SavePartAs(This,FileName,StartPosition,EndPosition,Format) ) 

#define ITotalRecorderDocument_get_SelectionBegin(This,pVal)	\
    ( (This)->lpVtbl -> get_SelectionBegin(This,pVal) ) 

#define ITotalRecorderDocument_put_SelectionBegin(This,newVal)	\
    ( (This)->lpVtbl -> put_SelectionBegin(This,newVal) ) 

#define ITotalRecorderDocument_get_SelectionEnd(This,pVal)	\
    ( (This)->lpVtbl -> get_SelectionEnd(This,pVal) ) 

#define ITotalRecorderDocument_put_SelectionEnd(This,newVal)	\
    ( (This)->lpVtbl -> put_SelectionEnd(This,newVal) ) 

#define ITotalRecorderDocument_get_ExistSelection(This,pVal)	\
    ( (This)->lpVtbl -> get_ExistSelection(This,pVal) ) 

#define ITotalRecorderDocument_put_ExistSelection(This,newVal)	\
    ( (This)->lpVtbl -> put_ExistSelection(This,newVal) ) 

#define ITotalRecorderDocument_get_CanUndo(This,pVal)	\
    ( (This)->lpVtbl -> get_CanUndo(This,pVal) ) 

#define ITotalRecorderDocument_get_CanRedo(This,pVal)	\
    ( (This)->lpVtbl -> get_CanRedo(This,pVal) ) 

#define ITotalRecorderDocument_get_CanPaste(This,pVal)	\
    ( (This)->lpVtbl -> get_CanPaste(This,pVal) ) 

#define ITotalRecorderDocument_Undo(This)	\
    ( (This)->lpVtbl -> Undo(This) ) 

#define ITotalRecorderDocument_Redo(This)	\
    ( (This)->lpVtbl -> Redo(This) ) 

#define ITotalRecorderDocument_CutSelection(This)	\
    ( (This)->lpVtbl -> CutSelection(This) ) 

#define ITotalRecorderDocument_CopySelection(This)	\
    ( (This)->lpVtbl -> CopySelection(This) ) 

#define ITotalRecorderDocument_DeleteSelection(This)	\
    ( (This)->lpVtbl -> DeleteSelection(This) ) 

#define ITotalRecorderDocument_Paste(This)	\
    ( (This)->lpVtbl -> Paste(This) ) 

#define ITotalRecorderDocument_InsertFile(This,FileName)	\
    ( (This)->lpVtbl -> InsertFile(This,FileName) ) 

#define ITotalRecorderDocument_SplitNow(This)	\
    ( (This)->lpVtbl -> SplitNow(This) ) 

#define ITotalRecorderDocument_FadeInOut(This,ApplyToSelection,FadeDuration,FadeType)	\
    ( (This)->lpVtbl -> FadeInOut(This,ApplyToSelection,FadeDuration,FadeType) ) 

#define ITotalRecorderDocument_get_DcOffset(This,Channel,pVal)	\
    ( (This)->lpVtbl -> get_DcOffset(This,Channel,pVal) ) 

#define ITotalRecorderDocument_RemoveDcOffset(This)	\
    ( (This)->lpVtbl -> RemoveDcOffset(This) ) 

#define ITotalRecorderDocument_get_NormalizationChannel(This,Channel,pVal)	\
    ( (This)->lpVtbl -> get_NormalizationChannel(This,Channel,pVal) ) 

#define ITotalRecorderDocument_put_NormalizationChannel(This,Channel,newVal)	\
    ( (This)->lpVtbl -> put_NormalizationChannel(This,Channel,newVal) ) 

#define ITotalRecorderDocument_PausesReduction(This,PauseLevel,PauseDuration)	\
    ( (This)->lpVtbl -> PausesReduction(This,PauseLevel,PauseDuration) ) 

#define ITotalRecorderDocument_get_NormalizationIgnorePeaks(This,Channel,IgnoredDuration,pVal)	\
    ( (This)->lpVtbl -> get_NormalizationIgnorePeaks(This,Channel,IgnoredDuration,pVal) ) 

#define ITotalRecorderDocument_Remix(This,Volume1,Volume2,CrossfadeSeconds)	\
    ( (This)->lpVtbl -> Remix(This,Volume1,Volume2,CrossfadeSeconds) ) 

#define ITotalRecorderDocument_MixingClipboard(This,Volume1,Volume2,CrossfadeSeconds,Trim)	\
    ( (This)->lpVtbl -> MixingClipboard(This,Volume1,Volume2,CrossfadeSeconds,Trim) ) 

#define ITotalRecorderDocument_MixingFile(This,Volume1,Volume2,CrossfadeSeconds,Trim,FileName)	\
    ( (This)->lpVtbl -> MixingFile(This,Volume1,Volume2,CrossfadeSeconds,Trim,FileName) ) 

#define ITotalRecorderDocument_SaveMixedSeparatelyAs(This,PartNumber,FileName,Format)	\
    ( (This)->lpVtbl -> SaveMixedSeparatelyAs(This,PartNumber,FileName,Format) ) 

#define ITotalRecorderDocument_InsertSilence(This,SilenceDuration)	\
    ( (This)->lpVtbl -> InsertSilence(This,SilenceDuration) ) 

#define ITotalRecorderDocument_get_IsAudioPresent(This,pVal)	\
    ( (This)->lpVtbl -> get_IsAudioPresent(This,pVal) ) 

#define ITotalRecorderDocument_get_IsVideoPresent(This,pVal)	\
    ( (This)->lpVtbl -> get_IsVideoPresent(This,pVal) ) 

#define ITotalRecorderDocument_get_IsVideoFrameBound(This,pVal)	\
    ( (This)->lpVtbl -> get_IsVideoFrameBound(This,pVal) ) 

#define ITotalRecorderDocument_get_VideoFramePrevious(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoFramePrevious(This,pVal) ) 

#define ITotalRecorderDocument_get_VideoFrameNext(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoFrameNext(This,pVal) ) 

#define ITotalRecorderDocument_get_IsVideoKeyFrameBound(This,pVal)	\
    ( (This)->lpVtbl -> get_IsVideoKeyFrameBound(This,pVal) ) 

#define ITotalRecorderDocument_get_VideoKeyFramePrevious(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoKeyFramePrevious(This,pVal) ) 

#define ITotalRecorderDocument_get_VideoKeyFrameNext(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoKeyFrameNext(This,pVal) ) 

#define ITotalRecorderDocument_get_VideoAttributes(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoAttributes(This,pVal) ) 

#define ITotalRecorderDocument_get_VideoFourCC(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoFourCC(This,pVal) ) 

#define ITotalRecorderDocument_get_VideoFourCCDescription(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoFourCCDescription(This,pVal) ) 

#define ITotalRecorderDocument_SaveAudioAs(This,FileName,Format)	\
    ( (This)->lpVtbl -> SaveAudioAs(This,FileName,Format) ) 

#define ITotalRecorderDocument_SaveVideoAs(This,FileName)	\
    ( (This)->lpVtbl -> SaveVideoAs(This,FileName) ) 

#define ITotalRecorderDocument_SaveVideoFrameAs(This,FileName)	\
    ( (This)->lpVtbl -> SaveVideoFrameAs(This,FileName) ) 

#define ITotalRecorderDocument_AddAudioStream(This,FileName)	\
    ( (This)->lpVtbl -> AddAudioStream(This,FileName) ) 

#define ITotalRecorderDocument_SaveAsMono(This,FileName,LeftChannel,RightChannel,Format)	\
    ( (This)->lpVtbl -> SaveAsMono(This,FileName,LeftChannel,RightChannel,Format) ) 

#define ITotalRecorderDocument_SaveAsSpeed(This,FileName,Speed,PreserveTone,Format)	\
    ( (This)->lpVtbl -> SaveAsSpeed(This,FileName,Speed,PreserveTone,Format) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITotalRecorderDocument_INTERFACE_DEFINED__ */


#ifndef __ITotalRecorderSoundFormat_INTERFACE_DEFINED__
#define __ITotalRecorderSoundFormat_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ITotalRecorderSoundFormat;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE6C3553-54D5-11D5-8745-00A0248A5955")
    ITotalRecorderSoundFormat : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FormatTag( 
            /* [retval][out] */ short *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FormatTag( 
            /* [in] */ short newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Channels( 
            /* [retval][out] */ short *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Channels( 
            /* [in] */ short newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SamplesPerSec( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SamplesPerSec( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BlockAlign( 
            /* [retval][out] */ short *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BlockAlign( 
            /* [in] */ short newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitsPerSample( 
            /* [retval][out] */ short *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BitsPerSample( 
            /* [in] */ short newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Valid( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TagName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AttributesName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Validate( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InternalString( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FormatType( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FormatType( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitrateType( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BitrateType( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Quality( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Quality( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitrateMin( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BitrateMin( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitrateMax( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BitrateMax( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitrateNom( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BitrateNom( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BitrateForQuality( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3LameQuality( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3LameQuality( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3LameVBRMethod( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3LameVBRMethod( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3LameVBRQuality( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3LameVBRQuality( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_WMAQuality( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_WMAQuality( 
            /* [in] */ long newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITotalRecorderSoundFormatVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITotalRecorderSoundFormat * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITotalRecorderSoundFormat * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ITotalRecorderSoundFormat * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ITotalRecorderSoundFormat * 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 )( 
            ITotalRecorderSoundFormat * 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_Name )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FormatTag )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ short *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FormatTag )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ short newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Channels )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ short *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Channels )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ short newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SamplesPerSec )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SamplesPerSec )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AvgBytesPerSec )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AvgBytesPerSec )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BlockAlign )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ short *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BlockAlign )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ short newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitsPerSample )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ short *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BitsPerSample )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ short newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Valid )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TagName )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AttributesName )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            ITotalRecorderSoundFormat * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Validate )( 
            ITotalRecorderSoundFormat * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InternalString )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FormatType )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FormatType )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitrateType )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BitrateType )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Quality )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Quality )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitrateMin )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BitrateMin )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitrateMax )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BitrateMax )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitrateNom )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BitrateNom )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitrateForQuality )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3LameQuality )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3LameQuality )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3LameVBRMethod )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3LameVBRMethod )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3LameVBRQuality )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3LameVBRQuality )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WMAQuality )( 
            ITotalRecorderSoundFormat * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_WMAQuality )( 
            ITotalRecorderSoundFormat * This,
            /* [in] */ long newVal);
        
        END_INTERFACE
    } ITotalRecorderSoundFormatVtbl;

    interface ITotalRecorderSoundFormat
    {
        CONST_VTBL struct ITotalRecorderSoundFormatVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ITotalRecorderSoundFormat_get_Name(This,pVal)	\
    ( (This)->lpVtbl -> get_Name(This,pVal) ) 

#define ITotalRecorderSoundFormat_get_Application(This,pVal)	\
    ( (This)->lpVtbl -> get_Application(This,pVal) ) 

#define ITotalRecorderSoundFormat_get_Parent(This,pVal)	\
    ( (This)->lpVtbl -> get_Parent(This,pVal) ) 

#define ITotalRecorderSoundFormat_get_FormatTag(This,pVal)	\
    ( (This)->lpVtbl -> get_FormatTag(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_FormatTag(This,newVal)	\
    ( (This)->lpVtbl -> put_FormatTag(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_Channels(This,pVal)	\
    ( (This)->lpVtbl -> get_Channels(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_Channels(This,newVal)	\
    ( (This)->lpVtbl -> put_Channels(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_SamplesPerSec(This,pVal)	\
    ( (This)->lpVtbl -> get_SamplesPerSec(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_SamplesPerSec(This,newVal)	\
    ( (This)->lpVtbl -> put_SamplesPerSec(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_AvgBytesPerSec(This,pVal)	\
    ( (This)->lpVtbl -> get_AvgBytesPerSec(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_AvgBytesPerSec(This,newVal)	\
    ( (This)->lpVtbl -> put_AvgBytesPerSec(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_BlockAlign(This,pVal)	\
    ( (This)->lpVtbl -> get_BlockAlign(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_BlockAlign(This,newVal)	\
    ( (This)->lpVtbl -> put_BlockAlign(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_BitsPerSample(This,pVal)	\
    ( (This)->lpVtbl -> get_BitsPerSample(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_BitsPerSample(This,newVal)	\
    ( (This)->lpVtbl -> put_BitsPerSample(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_Valid(This,pVal)	\
    ( (This)->lpVtbl -> get_Valid(This,pVal) ) 

#define ITotalRecorderSoundFormat_get_TagName(This,pVal)	\
    ( (This)->lpVtbl -> get_TagName(This,pVal) ) 

#define ITotalRecorderSoundFormat_get_AttributesName(This,pVal)	\
    ( (This)->lpVtbl -> get_AttributesName(This,pVal) ) 

#define ITotalRecorderSoundFormat_Clear(This)	\
    ( (This)->lpVtbl -> Clear(This) ) 

#define ITotalRecorderSoundFormat_Validate(This)	\
    ( (This)->lpVtbl -> Validate(This) ) 

#define ITotalRecorderSoundFormat_get_InternalString(This,pVal)	\
    ( (This)->lpVtbl -> get_InternalString(This,pVal) ) 

#define ITotalRecorderSoundFormat_get_FormatType(This,pVal)	\
    ( (This)->lpVtbl -> get_FormatType(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_FormatType(This,newVal)	\
    ( (This)->lpVtbl -> put_FormatType(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_BitrateType(This,pVal)	\
    ( (This)->lpVtbl -> get_BitrateType(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_BitrateType(This,newVal)	\
    ( (This)->lpVtbl -> put_BitrateType(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_Quality(This,pVal)	\
    ( (This)->lpVtbl -> get_Quality(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_Quality(This,newVal)	\
    ( (This)->lpVtbl -> put_Quality(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_BitrateMin(This,pVal)	\
    ( (This)->lpVtbl -> get_BitrateMin(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_BitrateMin(This,newVal)	\
    ( (This)->lpVtbl -> put_BitrateMin(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_BitrateMax(This,pVal)	\
    ( (This)->lpVtbl -> get_BitrateMax(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_BitrateMax(This,newVal)	\
    ( (This)->lpVtbl -> put_BitrateMax(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_BitrateNom(This,pVal)	\
    ( (This)->lpVtbl -> get_BitrateNom(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_BitrateNom(This,newVal)	\
    ( (This)->lpVtbl -> put_BitrateNom(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_BitrateForQuality(This,pVal)	\
    ( (This)->lpVtbl -> get_BitrateForQuality(This,pVal) ) 

#define ITotalRecorderSoundFormat_get_MP3LameQuality(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3LameQuality(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_MP3LameQuality(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3LameQuality(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_MP3LameVBRMethod(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3LameVBRMethod(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_MP3LameVBRMethod(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3LameVBRMethod(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_MP3LameVBRQuality(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3LameVBRQuality(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_MP3LameVBRQuality(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3LameVBRQuality(This,newVal) ) 

#define ITotalRecorderSoundFormat_get_WMAQuality(This,pVal)	\
    ( (This)->lpVtbl -> get_WMAQuality(This,pVal) ) 

#define ITotalRecorderSoundFormat_put_WMAQuality(This,newVal)	\
    ( (This)->lpVtbl -> put_WMAQuality(This,newVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITotalRecorderSoundFormat_INTERFACE_DEFINED__ */


#ifndef __ITotalRecorderMixer_INTERFACE_DEFINED__
#define __ITotalRecorderMixer_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ITotalRecorderMixer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE6C3555-54D5-11D5-8745-00A0248A5955")
    ITotalRecorderMixer : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LinesCount( 
            /* [in] */ long LineDestination,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MultiSelect( 
            /* [in] */ long LineDestination,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineName( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineShortName( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineDeviceName( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineType( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineChannels( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineOnOff( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LineOnOff( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LineVolume( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [in] */ long Channel,
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LineVolume( 
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [in] */ long Channel,
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecuteChanges( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITotalRecorderMixerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITotalRecorderMixer * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITotalRecorderMixer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITotalRecorderMixer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ITotalRecorderMixer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ITotalRecorderMixer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ITotalRecorderMixer * 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 )( 
            ITotalRecorderMixer * 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_Application )( 
            ITotalRecorderMixer * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ITotalRecorderMixer * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LinesCount )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MultiSelect )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineName )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineShortName )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineDeviceName )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineType )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineChannels )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineOnOff )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LineOnOff )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineVolume )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [in] */ long Channel,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LineVolume )( 
            ITotalRecorderMixer * This,
            /* [in] */ long LineDestination,
            /* [in] */ long LineNumber,
            /* [in] */ long Channel,
            /* [in] */ double newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecuteChanges )( 
            ITotalRecorderMixer * This);
        
        END_INTERFACE
    } ITotalRecorderMixerVtbl;

    interface ITotalRecorderMixer
    {
        CONST_VTBL struct ITotalRecorderMixerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ITotalRecorderMixer_get_Application(This,pVal)	\
    ( (This)->lpVtbl -> get_Application(This,pVal) ) 

#define ITotalRecorderMixer_get_Parent(This,pVal)	\
    ( (This)->lpVtbl -> get_Parent(This,pVal) ) 

#define ITotalRecorderMixer_get_LinesCount(This,LineDestination,pVal)	\
    ( (This)->lpVtbl -> get_LinesCount(This,LineDestination,pVal) ) 

#define ITotalRecorderMixer_get_MultiSelect(This,LineDestination,pVal)	\
    ( (This)->lpVtbl -> get_MultiSelect(This,LineDestination,pVal) ) 

#define ITotalRecorderMixer_get_LineName(This,LineDestination,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_LineName(This,LineDestination,LineNumber,pVal) ) 

#define ITotalRecorderMixer_get_LineShortName(This,LineDestination,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_LineShortName(This,LineDestination,LineNumber,pVal) ) 

#define ITotalRecorderMixer_get_LineDeviceName(This,LineDestination,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_LineDeviceName(This,LineDestination,LineNumber,pVal) ) 

#define ITotalRecorderMixer_get_LineType(This,LineDestination,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_LineType(This,LineDestination,LineNumber,pVal) ) 

#define ITotalRecorderMixer_get_LineChannels(This,LineDestination,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_LineChannels(This,LineDestination,LineNumber,pVal) ) 

#define ITotalRecorderMixer_get_LineOnOff(This,LineDestination,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_LineOnOff(This,LineDestination,LineNumber,pVal) ) 

#define ITotalRecorderMixer_put_LineOnOff(This,LineDestination,LineNumber,newVal)	\
    ( (This)->lpVtbl -> put_LineOnOff(This,LineDestination,LineNumber,newVal) ) 

#define ITotalRecorderMixer_get_LineVolume(This,LineDestination,LineNumber,Channel,pVal)	\
    ( (This)->lpVtbl -> get_LineVolume(This,LineDestination,LineNumber,Channel,pVal) ) 

#define ITotalRecorderMixer_put_LineVolume(This,LineDestination,LineNumber,Channel,newVal)	\
    ( (This)->lpVtbl -> put_LineVolume(This,LineDestination,LineNumber,Channel,newVal) ) 

#define ITotalRecorderMixer_ExecuteChanges(This)	\
    ( (This)->lpVtbl -> ExecuteChanges(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITotalRecorderMixer_INTERFACE_DEFINED__ */


#ifndef __ITotalRecorderRecordingParameters_INTERFACE_DEFINED__
#define __ITotalRecorderRecordingParameters_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ITotalRecorderRecordingParameters;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE6C3557-54D5-11D5-8745-00A0248A5955")
    ITotalRecorderRecordingParameters : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Source( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Convert( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Convert( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RecordInput( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RecordInput( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SeparateChannel( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SeparateChannel( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Accelerate( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Accelerate( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AccelerateSpeed( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AccelerateSpeed( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RemoveSilence( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RemoveSilence( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UseMixer( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UseMixer( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UseLine( 
            /* [in] */ long LineNumber,
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UseLine( 
            /* [in] */ long LineNumber,
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Format( 
            /* [retval][out] */ ITotalRecorderSoundFormat **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Format( 
            /* [in] */ ITotalRecorderSoundFormat *newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InternalString( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreservePauses( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PreservePauses( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RecordingLevel( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RecordingLevel( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PausesReduction( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PausesReduction( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PauseLevel( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PauseLevel( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LeavePauseDuration( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LeavePauseDuration( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DeviceNumber( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DeviceNumber( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MixAllowChangeAfter( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MixAllowChangeAfter( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MixOldVolume( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MixOldVolume( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MixNewVolume( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MixNewVolume( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MixCrossfade( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MixCrossfade( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MixCrossfadeSeconds( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MixCrossfadeSeconds( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RecordOnlyAfter( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RecordOnlyAfter( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RecordOnlyApplication( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RecordOnlyApplication( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RecordAudio( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RecordAudio( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RecordVideo( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RecordVideo( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoParametersAsString( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_VideoParametersAsString( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoParametersError( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_VideoContainerType( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_VideoContainerType( 
            /* [in] */ BSTR newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITotalRecorderRecordingParametersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITotalRecorderRecordingParameters * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITotalRecorderRecordingParameters * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ITotalRecorderRecordingParameters * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ITotalRecorderRecordingParameters * 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 )( 
            ITotalRecorderRecordingParameters * 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_Application )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Source )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Convert )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Convert )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecordInput )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecordInput )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SeparateChannel )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SeparateChannel )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Accelerate )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Accelerate )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AccelerateSpeed )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AccelerateSpeed )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RemoveSilence )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RemoveSilence )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseMixer )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseMixer )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseLine )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ long LineNumber,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseLine )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ long LineNumber,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ ITotalRecorderSoundFormat **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Format )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ ITotalRecorderSoundFormat *newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            ITotalRecorderRecordingParameters * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InternalString )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreservePauses )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PreservePauses )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecordingLevel )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecordingLevel )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PausesReduction )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PausesReduction )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PauseLevel )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PauseLevel )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LeavePauseDuration )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LeavePauseDuration )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeviceNumber )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DeviceNumber )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MixAllowChangeAfter )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MixAllowChangeAfter )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MixOldVolume )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MixOldVolume )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MixNewVolume )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MixNewVolume )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MixCrossfade )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MixCrossfade )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MixCrossfadeSeconds )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MixCrossfadeSeconds )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecordOnlyAfter )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecordOnlyAfter )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecordOnlyApplication )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecordOnlyApplication )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecordAudio )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecordAudio )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecordVideo )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecordVideo )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoParametersAsString )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_VideoParametersAsString )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoParametersError )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_VideoContainerType )( 
            ITotalRecorderRecordingParameters * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_VideoContainerType )( 
            ITotalRecorderRecordingParameters * This,
            /* [in] */ BSTR newVal);
        
        END_INTERFACE
    } ITotalRecorderRecordingParametersVtbl;

    interface ITotalRecorderRecordingParameters
    {
        CONST_VTBL struct ITotalRecorderRecordingParametersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ITotalRecorderRecordingParameters_get_Application(This,pVal)	\
    ( (This)->lpVtbl -> get_Application(This,pVal) ) 

#define ITotalRecorderRecordingParameters_get_Parent(This,pVal)	\
    ( (This)->lpVtbl -> get_Parent(This,pVal) ) 

#define ITotalRecorderRecordingParameters_get_Source(This,pVal)	\
    ( (This)->lpVtbl -> get_Source(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_Source(This,newVal)	\
    ( (This)->lpVtbl -> put_Source(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_Convert(This,pVal)	\
    ( (This)->lpVtbl -> get_Convert(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_Convert(This,newVal)	\
    ( (This)->lpVtbl -> put_Convert(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_RecordInput(This,pVal)	\
    ( (This)->lpVtbl -> get_RecordInput(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_RecordInput(This,newVal)	\
    ( (This)->lpVtbl -> put_RecordInput(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_SeparateChannel(This,pVal)	\
    ( (This)->lpVtbl -> get_SeparateChannel(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_SeparateChannel(This,newVal)	\
    ( (This)->lpVtbl -> put_SeparateChannel(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_Accelerate(This,pVal)	\
    ( (This)->lpVtbl -> get_Accelerate(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_Accelerate(This,newVal)	\
    ( (This)->lpVtbl -> put_Accelerate(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_AccelerateSpeed(This,pVal)	\
    ( (This)->lpVtbl -> get_AccelerateSpeed(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_AccelerateSpeed(This,newVal)	\
    ( (This)->lpVtbl -> put_AccelerateSpeed(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_RemoveSilence(This,pVal)	\
    ( (This)->lpVtbl -> get_RemoveSilence(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_RemoveSilence(This,newVal)	\
    ( (This)->lpVtbl -> put_RemoveSilence(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_UseMixer(This,pVal)	\
    ( (This)->lpVtbl -> get_UseMixer(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_UseMixer(This,newVal)	\
    ( (This)->lpVtbl -> put_UseMixer(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_UseLine(This,LineNumber,pVal)	\
    ( (This)->lpVtbl -> get_UseLine(This,LineNumber,pVal) ) 

#define ITotalRecorderRecordingParameters_put_UseLine(This,LineNumber,newVal)	\
    ( (This)->lpVtbl -> put_UseLine(This,LineNumber,newVal) ) 

#define ITotalRecorderRecordingParameters_get_Format(This,pVal)	\
    ( (This)->lpVtbl -> get_Format(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_Format(This,newVal)	\
    ( (This)->lpVtbl -> put_Format(This,newVal) ) 

#define ITotalRecorderRecordingParameters_Clear(This)	\
    ( (This)->lpVtbl -> Clear(This) ) 

#define ITotalRecorderRecordingParameters_get_InternalString(This,pVal)	\
    ( (This)->lpVtbl -> get_InternalString(This,pVal) ) 

#define ITotalRecorderRecordingParameters_get_PreservePauses(This,pVal)	\
    ( (This)->lpVtbl -> get_PreservePauses(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_PreservePauses(This,newVal)	\
    ( (This)->lpVtbl -> put_PreservePauses(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_RecordingLevel(This,pVal)	\
    ( (This)->lpVtbl -> get_RecordingLevel(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_RecordingLevel(This,newVal)	\
    ( (This)->lpVtbl -> put_RecordingLevel(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_PausesReduction(This,pVal)	\
    ( (This)->lpVtbl -> get_PausesReduction(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_PausesReduction(This,newVal)	\
    ( (This)->lpVtbl -> put_PausesReduction(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_PauseLevel(This,pVal)	\
    ( (This)->lpVtbl -> get_PauseLevel(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_PauseLevel(This,newVal)	\
    ( (This)->lpVtbl -> put_PauseLevel(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_LeavePauseDuration(This,pVal)	\
    ( (This)->lpVtbl -> get_LeavePauseDuration(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_LeavePauseDuration(This,newVal)	\
    ( (This)->lpVtbl -> put_LeavePauseDuration(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_DeviceNumber(This,pVal)	\
    ( (This)->lpVtbl -> get_DeviceNumber(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_DeviceNumber(This,newVal)	\
    ( (This)->lpVtbl -> put_DeviceNumber(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_MixAllowChangeAfter(This,pVal)	\
    ( (This)->lpVtbl -> get_MixAllowChangeAfter(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_MixAllowChangeAfter(This,newVal)	\
    ( (This)->lpVtbl -> put_MixAllowChangeAfter(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_MixOldVolume(This,pVal)	\
    ( (This)->lpVtbl -> get_MixOldVolume(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_MixOldVolume(This,newVal)	\
    ( (This)->lpVtbl -> put_MixOldVolume(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_MixNewVolume(This,pVal)	\
    ( (This)->lpVtbl -> get_MixNewVolume(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_MixNewVolume(This,newVal)	\
    ( (This)->lpVtbl -> put_MixNewVolume(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_MixCrossfade(This,pVal)	\
    ( (This)->lpVtbl -> get_MixCrossfade(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_MixCrossfade(This,newVal)	\
    ( (This)->lpVtbl -> put_MixCrossfade(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_MixCrossfadeSeconds(This,pVal)	\
    ( (This)->lpVtbl -> get_MixCrossfadeSeconds(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_MixCrossfadeSeconds(This,newVal)	\
    ( (This)->lpVtbl -> put_MixCrossfadeSeconds(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_RecordOnlyAfter(This,pVal)	\
    ( (This)->lpVtbl -> get_RecordOnlyAfter(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_RecordOnlyAfter(This,newVal)	\
    ( (This)->lpVtbl -> put_RecordOnlyAfter(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_RecordOnlyApplication(This,pVal)	\
    ( (This)->lpVtbl -> get_RecordOnlyApplication(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_RecordOnlyApplication(This,newVal)	\
    ( (This)->lpVtbl -> put_RecordOnlyApplication(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_RecordAudio(This,pVal)	\
    ( (This)->lpVtbl -> get_RecordAudio(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_RecordAudio(This,newVal)	\
    ( (This)->lpVtbl -> put_RecordAudio(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_RecordVideo(This,pVal)	\
    ( (This)->lpVtbl -> get_RecordVideo(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_RecordVideo(This,newVal)	\
    ( (This)->lpVtbl -> put_RecordVideo(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_VideoParametersAsString(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoParametersAsString(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_VideoParametersAsString(This,newVal)	\
    ( (This)->lpVtbl -> put_VideoParametersAsString(This,newVal) ) 

#define ITotalRecorderRecordingParameters_get_VideoParametersError(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoParametersError(This,pVal) ) 

#define ITotalRecorderRecordingParameters_get_VideoContainerType(This,pVal)	\
    ( (This)->lpVtbl -> get_VideoContainerType(This,pVal) ) 

#define ITotalRecorderRecordingParameters_put_VideoContainerType(This,newVal)	\
    ( (This)->lpVtbl -> put_VideoContainerType(This,newVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITotalRecorderRecordingParameters_INTERFACE_DEFINED__ */


#ifndef __ITotalRecorderWaveDevices_INTERFACE_DEFINED__
#define __ITotalRecorderWaveDevices_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ITotalRecorderWaveDevices;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE6C3559-54D5-11D5-8745-00A0248A5955")
    ITotalRecorderWaveDevices : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OwnDeviceName( 
            /* [in] */ long DeviceType,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DevicesCount( 
            /* [in] */ long DeviceType,
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DeviceName( 
            /* [in] */ long DeviceType,
            /* [in] */ long DeviceNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreferredDevice( 
            /* [in] */ long DeviceType,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PreferredDevice( 
            /* [in] */ long DeviceType,
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreferredOnly( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PreferredOnly( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITotalRecorderWaveDevicesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITotalRecorderWaveDevices * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITotalRecorderWaveDevices * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ITotalRecorderWaveDevices * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ITotalRecorderWaveDevices * 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 )( 
            ITotalRecorderWaveDevices * 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_Application )( 
            ITotalRecorderWaveDevices * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ITotalRecorderWaveDevices * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OwnDeviceName )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ long DeviceType,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DevicesCount )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ long DeviceType,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeviceName )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ long DeviceType,
            /* [in] */ long DeviceNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreferredDevice )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ long DeviceType,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PreferredDevice )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ long DeviceType,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreferredOnly )( 
            ITotalRecorderWaveDevices * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PreferredOnly )( 
            ITotalRecorderWaveDevices * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        END_INTERFACE
    } ITotalRecorderWaveDevicesVtbl;

    interface ITotalRecorderWaveDevices
    {
        CONST_VTBL struct ITotalRecorderWaveDevicesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ITotalRecorderWaveDevices_get_Application(This,pVal)	\
    ( (This)->lpVtbl -> get_Application(This,pVal) ) 

#define ITotalRecorderWaveDevices_get_Parent(This,pVal)	\
    ( (This)->lpVtbl -> get_Parent(This,pVal) ) 

#define ITotalRecorderWaveDevices_get_OwnDeviceName(This,DeviceType,pVal)	\
    ( (This)->lpVtbl -> get_OwnDeviceName(This,DeviceType,pVal) ) 

#define ITotalRecorderWaveDevices_get_DevicesCount(This,DeviceType,pVal)	\
    ( (This)->lpVtbl -> get_DevicesCount(This,DeviceType,pVal) ) 

#define ITotalRecorderWaveDevices_get_DeviceName(This,DeviceType,DeviceNumber,pVal)	\
    ( (This)->lpVtbl -> get_DeviceName(This,DeviceType,DeviceNumber,pVal) ) 

#define ITotalRecorderWaveDevices_get_PreferredDevice(This,DeviceType,pVal)	\
    ( (This)->lpVtbl -> get_PreferredDevice(This,DeviceType,pVal) ) 

#define ITotalRecorderWaveDevices_put_PreferredDevice(This,DeviceType,newVal)	\
    ( (This)->lpVtbl -> put_PreferredDevice(This,DeviceType,newVal) ) 

#define ITotalRecorderWaveDevices_get_PreferredOnly(This,pVal)	\
    ( (This)->lpVtbl -> get_PreferredOnly(This,pVal) ) 

#define ITotalRecorderWaveDevices_put_PreferredOnly(This,newVal)	\
    ( (This)->lpVtbl -> put_PreferredOnly(This,newVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITotalRecorderWaveDevices_INTERFACE_DEFINED__ */


#ifndef __ITotalRecorderConfiguration_INTERFACE_DEFINED__
#define __ITotalRecorderConfiguration_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ITotalRecorderConfiguration;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE6C355B-54D5-11D5-8745-00A0248A5955")
    ITotalRecorderConfiguration : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ITotalRecorderApplication **pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SystemSoundsOff( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SystemSoundsOff( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RealPlaybackDevice( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RealPlaybackDevice( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RealRecordingDevice( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RealRecordingDevice( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UseDriverPermanently( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UseDriverPermanently( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreferredOnly( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PreferredOnly( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TemporaryFolder( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TemporaryFolder( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UseLastFolder( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UseLastFolder( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DefaultFolder( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DefaultFolder( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Append( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Append( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OverwritePrompt( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_OverwritePrompt( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UseOwnAlgorithm( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UseOwnAlgorithm( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3EncoderType( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3EncoderType( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3EncoderName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3EncoderName( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3EncoderVersion( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3StereoModeMask( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3StereoMode( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3StereoMode( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3QualitiesCount( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3QualityName( 
            /* [in] */ long QualityNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3Quality( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3Quality( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MP3AsWav( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MP3AsWav( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreRecordSeconds( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PreRecordSeconds( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PreRecordingAtStartup( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PreRecordingAtStartup( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ErrorMessage( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitMode( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitMode( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnStream( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnStream( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnMinutes( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnMinutes( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitMinutes( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitMinutes( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnMegabytes( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnMegabytes( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitMegabytes( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitMegabytes( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameBase( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameBase( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameOnNumber( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameOnNumber( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameNumberDigit( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameNumberDigit( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameOnDate( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameOnDate( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameDateFormat( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameDateFormat( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameOnTime( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameOnTime( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameTimeFormat( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameTimeFormat( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnPause( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnPause( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitPauseDuration( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitPauseDuration( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitPauseLevel( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitPauseLevel( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitBeforePauseDuration( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitBeforePauseDuration( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameSample( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileNameRulesCount( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileNameRuleName( 
            long iRuleNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileNameRuleErrorMessage( 
            BSTR RuleDescription,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileNameRuleDelErrorMessage( 
            BSTR RuleName,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileNameRule( 
            BSTR RuleName,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FileNameRule( 
            BSTR RuleName,
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileNameRuleUsedTag( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FileNameRuleUsedTag( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileNameRuleSample( 
            BSTR RuleDescription,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitFileNameRule( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitFileNameRule( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnClipInfoChanged( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnClipInfoChanged( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitUseClipInfo( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitUseClipInfo( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitCheckClipInfoMSec( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitCheckClipInfoMSec( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitCheckedPlayerName( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitCheckedPlayerName( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_KnownPlayersCount( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_KnownPlayerName( 
            long iPlayerNumber,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitDuplicate( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitDuplicate( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitDuplicateSeconds( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitDuplicateSeconds( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ShowInSystemTray( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ShowInSystemTray( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FlacFileExt( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FlacFileExt( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FlacCompressionLevel( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FlacCompressionLevel( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitPauseDurationD( 
            /* [retval][out] */ double *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitPauseDurationD( 
            /* [in] */ double newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlayMaxSamplesPerSec( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlayMaxSamplesPerSec( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlayMaxBitsPerSample( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlayMaxBitsPerSample( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OwnPlaybackDevice( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_OwnPlaybackDevice( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnPauseMin( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnPauseMin( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnClipInfoMin( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnClipInfoMin( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitOnClipInfoMinSearch( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitOnClipInfoMinSearch( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitDuplicatePrevious( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitDuplicatePrevious( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitDuplicatePreviousSeconds( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitDuplicatePreviousSeconds( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitDuplicateNext( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitDuplicateNext( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitDuplicateNextSeconds( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitDuplicateNextSeconds( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistDefaultType( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistDefaultType( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistNameRule( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistNameRule( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistSaveNew( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistSaveNew( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistSaveChanged( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistSaveChanged( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistUseFullPath( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistUseFullPath( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistDefaultAction( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistDefaultAction( 
            /* [in] */ long newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistOpenLast( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistOpenLast( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistStorePosition( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistStorePosition( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistPlayNext( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistPlayNext( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlaylistSelectCurrent( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlaylistSelectCurrent( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UseRecycleBin( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UseRecycleBin( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InternalStringPlaylistProp( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PlayFileOnOpen( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PlayFileOnOpen( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoCreateFileFileNameRule( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoCreateFileFileNameRule( 
            /* [in] */ BSTR newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoCreateFile( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoCreateFile( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CueCreate( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CueCreate( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitTrackFillSequentially( 
            /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitTrackFillSequentially( 
            /* [in] */ VARIANT_BOOL newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoCreateFileFileNameSample( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SplitSeconds( 
            /* [retval][out] */ long *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SplitSeconds( 
            /* [in] */ long newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ITotalRecorderConfigurationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ITotalRecorderConfiguration * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ITotalRecorderConfiguration * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ITotalRecorderConfiguration * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ITotalRecorderConfiguration * 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 )( 
            ITotalRecorderConfiguration * 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_Application )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ ITotalRecorderApplication **pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SystemSoundsOff )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SystemSoundsOff )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RealPlaybackDevice )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RealPlaybackDevice )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RealRecordingDevice )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RealRecordingDevice )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseDriverPermanently )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseDriverPermanently )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreferredOnly )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PreferredOnly )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TemporaryFolder )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TemporaryFolder )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseLastFolder )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseLastFolder )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultFolder )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DefaultFolder )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Append )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Append )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OverwritePrompt )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_OverwritePrompt )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseOwnAlgorithm )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseOwnAlgorithm )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3EncoderType )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3EncoderType )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3EncoderName )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3EncoderName )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3EncoderVersion )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3StereoModeMask )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3StereoMode )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3StereoMode )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3QualitiesCount )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3QualityName )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long QualityNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3Quality )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3Quality )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MP3AsWav )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MP3AsWav )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreRecordSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PreRecordSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PreRecordingAtStartup )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PreRecordingAtStartup )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ErrorMessage )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitMode )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitMode )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnStream )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnStream )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnMinutes )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnMinutes )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitMinutes )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitMinutes )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnMegabytes )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnMegabytes )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitMegabytes )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitMegabytes )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameBase )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameBase )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameOnNumber )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameOnNumber )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameNumberDigit )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameNumberDigit )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameOnDate )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameOnDate )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameDateFormat )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameDateFormat )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameOnTime )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameOnTime )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameTimeFormat )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameTimeFormat )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnPause )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnPause )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitPauseDuration )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitPauseDuration )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitPauseLevel )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitPauseLevel )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitBeforePauseDuration )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitBeforePauseDuration )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameSample )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileNameRulesCount )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileNameRuleName )( 
            ITotalRecorderConfiguration * This,
            long iRuleNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileNameRuleErrorMessage )( 
            ITotalRecorderConfiguration * This,
            BSTR RuleDescription,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileNameRuleDelErrorMessage )( 
            ITotalRecorderConfiguration * This,
            BSTR RuleName,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileNameRule )( 
            ITotalRecorderConfiguration * This,
            BSTR RuleName,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileNameRule )( 
            ITotalRecorderConfiguration * This,
            BSTR RuleName,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileNameRuleUsedTag )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileNameRuleUsedTag )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileNameRuleSample )( 
            ITotalRecorderConfiguration * This,
            BSTR RuleDescription,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitFileNameRule )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitFileNameRule )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnClipInfoChanged )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnClipInfoChanged )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitUseClipInfo )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitUseClipInfo )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitCheckClipInfoMSec )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitCheckClipInfoMSec )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitCheckedPlayerName )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitCheckedPlayerName )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_KnownPlayersCount )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_KnownPlayerName )( 
            ITotalRecorderConfiguration * This,
            long iPlayerNumber,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitDuplicate )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitDuplicate )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitDuplicateSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitDuplicateSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowInSystemTray )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowInSystemTray )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FlacFileExt )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FlacFileExt )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FlacCompressionLevel )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FlacCompressionLevel )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitPauseDurationD )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ double *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitPauseDurationD )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ double newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlayMaxSamplesPerSec )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlayMaxSamplesPerSec )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlayMaxBitsPerSample )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlayMaxBitsPerSample )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OwnPlaybackDevice )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_OwnPlaybackDevice )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnPauseMin )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnPauseMin )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnClipInfoMin )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnClipInfoMin )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitOnClipInfoMinSearch )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitOnClipInfoMinSearch )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitDuplicatePrevious )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitDuplicatePrevious )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitDuplicatePreviousSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitDuplicatePreviousSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitDuplicateNext )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitDuplicateNext )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitDuplicateNextSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitDuplicateNextSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistDefaultType )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistDefaultType )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistNameRule )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistNameRule )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistSaveNew )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistSaveNew )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistSaveChanged )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistSaveChanged )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistUseFullPath )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistUseFullPath )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistDefaultAction )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistDefaultAction )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistOpenLast )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistOpenLast )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistStorePosition )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistStorePosition )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistPlayNext )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistPlayNext )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlaylistSelectCurrent )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlaylistSelectCurrent )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseRecycleBin )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseRecycleBin )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InternalStringPlaylistProp )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlayFileOnOpen )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PlayFileOnOpen )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoCreateFileFileNameRule )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoCreateFileFileNameRule )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ BSTR newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoCreateFile )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoCreateFile )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CueCreate )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CueCreate )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitTrackFillSequentially )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ VARIANT_BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitTrackFillSequentially )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ VARIANT_BOOL newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoCreateFileFileNameSample )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SplitSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [retval][out] */ long *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SplitSeconds )( 
            ITotalRecorderConfiguration * This,
            /* [in] */ long newVal);
        
        END_INTERFACE
    } ITotalRecorderConfigurationVtbl;

    interface ITotalRecorderConfiguration
    {
        CONST_VTBL struct ITotalRecorderConfigurationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define ITotalRecorderConfiguration_get_Application(This,pVal)	\
    ( (This)->lpVtbl -> get_Application(This,pVal) ) 

#define ITotalRecorderConfiguration_get_Parent(This,pVal)	\
    ( (This)->lpVtbl -> get_Parent(This,pVal) ) 

#define ITotalRecorderConfiguration_get_SystemSoundsOff(This,pVal)	\
    ( (This)->lpVtbl -> get_SystemSoundsOff(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SystemSoundsOff(This,newVal)	\
    ( (This)->lpVtbl -> put_SystemSoundsOff(This,newVal) ) 

#define ITotalRecorderConfiguration_get_RealPlaybackDevice(This,pVal)	\
    ( (This)->lpVtbl -> get_RealPlaybackDevice(This,pVal) ) 

#define ITotalRecorderConfiguration_put_RealPlaybackDevice(This,newVal)	\
    ( (This)->lpVtbl -> put_RealPlaybackDevice(This,newVal) ) 

#define ITotalRecorderConfiguration_get_RealRecordingDevice(This,pVal)	\
    ( (This)->lpVtbl -> get_RealRecordingDevice(This,pVal) ) 

#define ITotalRecorderConfiguration_put_RealRecordingDevice(This,newVal)	\
    ( (This)->lpVtbl -> put_RealRecordingDevice(This,newVal) ) 

#define ITotalRecorderConfiguration_get_UseDriverPermanently(This,pVal)	\
    ( (This)->lpVtbl -> get_UseDriverPermanently(This,pVal) ) 

#define ITotalRecorderConfiguration_put_UseDriverPermanently(This,newVal)	\
    ( (This)->lpVtbl -> put_UseDriverPermanently(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PreferredOnly(This,pVal)	\
    ( (This)->lpVtbl -> get_PreferredOnly(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PreferredOnly(This,newVal)	\
    ( (This)->lpVtbl -> put_PreferredOnly(This,newVal) ) 

#define ITotalRecorderConfiguration_get_TemporaryFolder(This,pVal)	\
    ( (This)->lpVtbl -> get_TemporaryFolder(This,pVal) ) 

#define ITotalRecorderConfiguration_put_TemporaryFolder(This,newVal)	\
    ( (This)->lpVtbl -> put_TemporaryFolder(This,newVal) ) 

#define ITotalRecorderConfiguration_get_UseLastFolder(This,pVal)	\
    ( (This)->lpVtbl -> get_UseLastFolder(This,pVal) ) 

#define ITotalRecorderConfiguration_put_UseLastFolder(This,newVal)	\
    ( (This)->lpVtbl -> put_UseLastFolder(This,newVal) ) 

#define ITotalRecorderConfiguration_get_DefaultFolder(This,pVal)	\
    ( (This)->lpVtbl -> get_DefaultFolder(This,pVal) ) 

#define ITotalRecorderConfiguration_put_DefaultFolder(This,newVal)	\
    ( (This)->lpVtbl -> put_DefaultFolder(This,newVal) ) 

#define ITotalRecorderConfiguration_get_Append(This,pVal)	\
    ( (This)->lpVtbl -> get_Append(This,pVal) ) 

#define ITotalRecorderConfiguration_put_Append(This,newVal)	\
    ( (This)->lpVtbl -> put_Append(This,newVal) ) 

#define ITotalRecorderConfiguration_get_OverwritePrompt(This,pVal)	\
    ( (This)->lpVtbl -> get_OverwritePrompt(This,pVal) ) 

#define ITotalRecorderConfiguration_put_OverwritePrompt(This,newVal)	\
    ( (This)->lpVtbl -> put_OverwritePrompt(This,newVal) ) 

#define ITotalRecorderConfiguration_get_UseOwnAlgorithm(This,pVal)	\
    ( (This)->lpVtbl -> get_UseOwnAlgorithm(This,pVal) ) 

#define ITotalRecorderConfiguration_put_UseOwnAlgorithm(This,newVal)	\
    ( (This)->lpVtbl -> put_UseOwnAlgorithm(This,newVal) ) 

#define ITotalRecorderConfiguration_get_MP3EncoderType(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3EncoderType(This,pVal) ) 

#define ITotalRecorderConfiguration_put_MP3EncoderType(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3EncoderType(This,newVal) ) 

#define ITotalRecorderConfiguration_get_MP3EncoderName(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3EncoderName(This,pVal) ) 

#define ITotalRecorderConfiguration_put_MP3EncoderName(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3EncoderName(This,newVal) ) 

#define ITotalRecorderConfiguration_get_MP3EncoderVersion(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3EncoderVersion(This,pVal) ) 

#define ITotalRecorderConfiguration_get_MP3StereoModeMask(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3StereoModeMask(This,pVal) ) 

#define ITotalRecorderConfiguration_get_MP3StereoMode(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3StereoMode(This,pVal) ) 

#define ITotalRecorderConfiguration_put_MP3StereoMode(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3StereoMode(This,newVal) ) 

#define ITotalRecorderConfiguration_get_MP3QualitiesCount(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3QualitiesCount(This,pVal) ) 

#define ITotalRecorderConfiguration_get_MP3QualityName(This,QualityNumber,pVal)	\
    ( (This)->lpVtbl -> get_MP3QualityName(This,QualityNumber,pVal) ) 

#define ITotalRecorderConfiguration_get_MP3Quality(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3Quality(This,pVal) ) 

#define ITotalRecorderConfiguration_put_MP3Quality(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3Quality(This,newVal) ) 

#define ITotalRecorderConfiguration_get_MP3AsWav(This,pVal)	\
    ( (This)->lpVtbl -> get_MP3AsWav(This,pVal) ) 

#define ITotalRecorderConfiguration_put_MP3AsWav(This,newVal)	\
    ( (This)->lpVtbl -> put_MP3AsWav(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PreRecordSeconds(This,pVal)	\
    ( (This)->lpVtbl -> get_PreRecordSeconds(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PreRecordSeconds(This,newVal)	\
    ( (This)->lpVtbl -> put_PreRecordSeconds(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PreRecordingAtStartup(This,pVal)	\
    ( (This)->lpVtbl -> get_PreRecordingAtStartup(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PreRecordingAtStartup(This,newVal)	\
    ( (This)->lpVtbl -> put_PreRecordingAtStartup(This,newVal) ) 

#define ITotalRecorderConfiguration_get_ErrorMessage(This,pVal)	\
    ( (This)->lpVtbl -> get_ErrorMessage(This,pVal) ) 

#define ITotalRecorderConfiguration_get_SplitMode(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitMode(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitMode(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitMode(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnStream(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnStream(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnStream(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnStream(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnMinutes(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnMinutes(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnMinutes(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnMinutes(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitMinutes(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitMinutes(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitMinutes(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitMinutes(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnMegabytes(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnMegabytes(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnMegabytes(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnMegabytes(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitMegabytes(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitMegabytes(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitMegabytes(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitMegabytes(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameBase(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameBase(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameBase(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameBase(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameOnNumber(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameOnNumber(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameOnNumber(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameOnNumber(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameNumberDigit(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameNumberDigit(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameNumberDigit(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameNumberDigit(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameOnDate(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameOnDate(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameOnDate(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameOnDate(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameDateFormat(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameDateFormat(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameDateFormat(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameDateFormat(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameOnTime(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameOnTime(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameOnTime(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameOnTime(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameTimeFormat(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameTimeFormat(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameTimeFormat(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameTimeFormat(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnPause(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnPause(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnPause(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnPause(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitPauseDuration(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitPauseDuration(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitPauseDuration(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitPauseDuration(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitPauseLevel(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitPauseLevel(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitPauseLevel(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitPauseLevel(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitBeforePauseDuration(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitBeforePauseDuration(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitBeforePauseDuration(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitBeforePauseDuration(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameSample(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameSample(This,pVal) ) 

#define ITotalRecorderConfiguration_get_FileNameRulesCount(This,pVal)	\
    ( (This)->lpVtbl -> get_FileNameRulesCount(This,pVal) ) 

#define ITotalRecorderConfiguration_get_FileNameRuleName(This,iRuleNumber,pVal)	\
    ( (This)->lpVtbl -> get_FileNameRuleName(This,iRuleNumber,pVal) ) 

#define ITotalRecorderConfiguration_get_FileNameRuleErrorMessage(This,RuleDescription,pVal)	\
    ( (This)->lpVtbl -> get_FileNameRuleErrorMessage(This,RuleDescription,pVal) ) 

#define ITotalRecorderConfiguration_get_FileNameRuleDelErrorMessage(This,RuleName,pVal)	\
    ( (This)->lpVtbl -> get_FileNameRuleDelErrorMessage(This,RuleName,pVal) ) 

#define ITotalRecorderConfiguration_get_FileNameRule(This,RuleName,pVal)	\
    ( (This)->lpVtbl -> get_FileNameRule(This,RuleName,pVal) ) 

#define ITotalRecorderConfiguration_put_FileNameRule(This,RuleName,newVal)	\
    ( (This)->lpVtbl -> put_FileNameRule(This,RuleName,newVal) ) 

#define ITotalRecorderConfiguration_get_FileNameRuleUsedTag(This,pVal)	\
    ( (This)->lpVtbl -> get_FileNameRuleUsedTag(This,pVal) ) 

#define ITotalRecorderConfiguration_put_FileNameRuleUsedTag(This,newVal)	\
    ( (This)->lpVtbl -> put_FileNameRuleUsedTag(This,newVal) ) 

#define ITotalRecorderConfiguration_get_FileNameRuleSample(This,RuleDescription,pVal)	\
    ( (This)->lpVtbl -> get_FileNameRuleSample(This,RuleDescription,pVal) ) 

#define ITotalRecorderConfiguration_get_SplitFileNameRule(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitFileNameRule(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitFileNameRule(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitFileNameRule(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnClipInfoChanged(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnClipInfoChanged(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnClipInfoChanged(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnClipInfoChanged(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitUseClipInfo(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitUseClipInfo(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitUseClipInfo(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitUseClipInfo(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitCheckClipInfoMSec(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitCheckClipInfoMSec(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitCheckClipInfoMSec(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitCheckClipInfoMSec(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitCheckedPlayerName(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitCheckedPlayerName(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitCheckedPlayerName(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitCheckedPlayerName(This,newVal) ) 

#define ITotalRecorderConfiguration_get_KnownPlayersCount(This,pVal)	\
    ( (This)->lpVtbl -> get_KnownPlayersCount(This,pVal) ) 

#define ITotalRecorderConfiguration_get_KnownPlayerName(This,iPlayerNumber,pVal)	\
    ( (This)->lpVtbl -> get_KnownPlayerName(This,iPlayerNumber,pVal) ) 

#define ITotalRecorderConfiguration_get_SplitDuplicate(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitDuplicate(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitDuplicate(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitDuplicate(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitDuplicateSeconds(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitDuplicateSeconds(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitDuplicateSeconds(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitDuplicateSeconds(This,newVal) ) 

#define ITotalRecorderConfiguration_get_ShowInSystemTray(This,pVal)	\
    ( (This)->lpVtbl -> get_ShowInSystemTray(This,pVal) ) 

#define ITotalRecorderConfiguration_put_ShowInSystemTray(This,newVal)	\
    ( (This)->lpVtbl -> put_ShowInSystemTray(This,newVal) ) 

#define ITotalRecorderConfiguration_get_FlacFileExt(This,pVal)	\
    ( (This)->lpVtbl -> get_FlacFileExt(This,pVal) ) 

#define ITotalRecorderConfiguration_put_FlacFileExt(This,newVal)	\
    ( (This)->lpVtbl -> put_FlacFileExt(This,newVal) ) 

#define ITotalRecorderConfiguration_get_FlacCompressionLevel(This,pVal)	\
    ( (This)->lpVtbl -> get_FlacCompressionLevel(This,pVal) ) 

#define ITotalRecorderConfiguration_put_FlacCompressionLevel(This,newVal)	\
    ( (This)->lpVtbl -> put_FlacCompressionLevel(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitPauseDurationD(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitPauseDurationD(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitPauseDurationD(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitPauseDurationD(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlayMaxSamplesPerSec(This,pVal)	\
    ( (This)->lpVtbl -> get_PlayMaxSamplesPerSec(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlayMaxSamplesPerSec(This,newVal)	\
    ( (This)->lpVtbl -> put_PlayMaxSamplesPerSec(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlayMaxBitsPerSample(This,pVal)	\
    ( (This)->lpVtbl -> get_PlayMaxBitsPerSample(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlayMaxBitsPerSample(This,newVal)	\
    ( (This)->lpVtbl -> put_PlayMaxBitsPerSample(This,newVal) ) 

#define ITotalRecorderConfiguration_get_OwnPlaybackDevice(This,pVal)	\
    ( (This)->lpVtbl -> get_OwnPlaybackDevice(This,pVal) ) 

#define ITotalRecorderConfiguration_put_OwnPlaybackDevice(This,newVal)	\
    ( (This)->lpVtbl -> put_OwnPlaybackDevice(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnPauseMin(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnPauseMin(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnPauseMin(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnPauseMin(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnClipInfoMin(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnClipInfoMin(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnClipInfoMin(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnClipInfoMin(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitOnClipInfoMinSearch(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitOnClipInfoMinSearch(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitOnClipInfoMinSearch(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitOnClipInfoMinSearch(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitDuplicatePrevious(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitDuplicatePrevious(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitDuplicatePrevious(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitDuplicatePrevious(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitDuplicatePreviousSeconds(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitDuplicatePreviousSeconds(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitDuplicatePreviousSeconds(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitDuplicatePreviousSeconds(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitDuplicateNext(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitDuplicateNext(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitDuplicateNext(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitDuplicateNext(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitDuplicateNextSeconds(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitDuplicateNextSeconds(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitDuplicateNextSeconds(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitDuplicateNextSeconds(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistDefaultType(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistDefaultType(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistDefaultType(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistDefaultType(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistNameRule(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistNameRule(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistNameRule(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistNameRule(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistSaveNew(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistSaveNew(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistSaveNew(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistSaveNew(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistSaveChanged(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistSaveChanged(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistSaveChanged(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistSaveChanged(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistUseFullPath(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistUseFullPath(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistUseFullPath(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistUseFullPath(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistDefaultAction(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistDefaultAction(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistDefaultAction(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistDefaultAction(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistOpenLast(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistOpenLast(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistOpenLast(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistOpenLast(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistStorePosition(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistStorePosition(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistStorePosition(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistStorePosition(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistPlayNext(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistPlayNext(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistPlayNext(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistPlayNext(This,newVal) ) 

#define ITotalRecorderConfiguration_get_PlaylistSelectCurrent(This,pVal)	\
    ( (This)->lpVtbl -> get_PlaylistSelectCurrent(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlaylistSelectCurrent(This,newVal)	\
    ( (This)->lpVtbl -> put_PlaylistSelectCurrent(This,newVal) ) 

#define ITotalRecorderConfiguration_get_UseRecycleBin(This,pVal)	\
    ( (This)->lpVtbl -> get_UseRecycleBin(This,pVal) ) 

#define ITotalRecorderConfiguration_put_UseRecycleBin(This,newVal)	\
    ( (This)->lpVtbl -> put_UseRecycleBin(This,newVal) ) 

#define ITotalRecorderConfiguration_get_InternalStringPlaylistProp(This,pVal)	\
    ( (This)->lpVtbl -> get_InternalStringPlaylistProp(This,pVal) ) 

#define ITotalRecorderConfiguration_get_PlayFileOnOpen(This,pVal)	\
    ( (This)->lpVtbl -> get_PlayFileOnOpen(This,pVal) ) 

#define ITotalRecorderConfiguration_put_PlayFileOnOpen(This,newVal)	\
    ( (This)->lpVtbl -> put_PlayFileOnOpen(This,newVal) ) 

#define ITotalRecorderConfiguration_get_AutoCreateFileFileNameRule(This,pVal)	\
    ( (This)->lpVtbl -> get_AutoCreateFileFileNameRule(This,pVal) ) 

#define ITotalRecorderConfiguration_put_AutoCreateFileFileNameRule(This,newVal)	\
    ( (This)->lpVtbl -> put_AutoCreateFileFileNameRule(This,newVal) ) 

#define ITotalRecorderConfiguration_get_AutoCreateFile(This,pVal)	\
    ( (This)->lpVtbl -> get_AutoCreateFile(This,pVal) ) 

#define ITotalRecorderConfiguration_put_AutoCreateFile(This,newVal)	\
    ( (This)->lpVtbl -> put_AutoCreateFile(This,newVal) ) 

#define ITotalRecorderConfiguration_get_CueCreate(This,pVal)	\
    ( (This)->lpVtbl -> get_CueCreate(This,pVal) ) 

#define ITotalRecorderConfiguration_put_CueCreate(This,newVal)	\
    ( (This)->lpVtbl -> put_CueCreate(This,newVal) ) 

#define ITotalRecorderConfiguration_get_SplitTrackFillSequentially(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitTrackFillSequentially(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitTrackFillSequentially(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitTrackFillSequentially(This,newVal) ) 

#define ITotalRecorderConfiguration_get_AutoCreateFileFileNameSample(This,pVal)	\
    ( (This)->lpVtbl -> get_AutoCreateFileFileNameSample(This,pVal) ) 

#define ITotalRecorderConfiguration_get_SplitSeconds(This,pVal)	\
    ( (This)->lpVtbl -> get_SplitSeconds(This,pVal) ) 

#define ITotalRecorderConfiguration_put_SplitSeconds(This,newVal)	\
    ( (This)->lpVtbl -> put_SplitSeconds(This,newVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_SplitOnClipInfoMinSearch_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ long *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_SplitOnClipInfoMinSearch_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ long newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_SplitDuplicatePrevious_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_SplitDuplicatePrevious_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_SplitDuplicatePreviousSeconds_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ long *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_SplitDuplicatePreviousSeconds_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ long newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_SplitDuplicateNext_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_SplitDuplicateNext_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_SplitDuplicateNextSeconds_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ long *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_SplitDuplicateNextSeconds_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ long newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistDefaultType_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ BSTR *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistDefaultType_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ BSTR newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistNameRule_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ BSTR *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistNameRule_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ BSTR newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistSaveNew_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ long *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistSaveNew_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ long newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistSaveChanged_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ long *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistSaveChanged_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ long newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistUseFullPath_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistUseFullPath_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistDefaultAction_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ long *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistDefaultAction_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ long newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistOpenLast_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistOpenLast_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistStorePosition_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistStorePosition_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistPlayNext_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistPlayNext_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlaylistSelectCurrent_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlaylistSelectCurrent_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_UseRecycleBin_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_UseRecycleBin_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_InternalStringPlaylistProp_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ BSTR *pVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_PlayFileOnOpen_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_PlayFileOnOpen_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_AutoCreateFileFileNameRule_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ BSTR *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_AutoCreateFileFileNameRule_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ BSTR newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_AutoCreateFile_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_AutoCreateFile_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_CueCreate_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_CueCreate_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_SplitTrackFillSequentially_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ VARIANT_BOOL *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_SplitTrackFillSequentially_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ VARIANT_BOOL newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_AutoCreateFileFileNameSample_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ BSTR *pVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_get_SplitSeconds_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [retval][out] */ long *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITotalRecorderConfiguration_put_SplitSeconds_Proxy( 
    ITotalRecorderConfiguration * This,
    /* [in] */ long newVal);


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



#endif 	/* __ITotalRecorderConfiguration_INTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_TotalRecorderApplication;

#ifdef __cplusplus

class DECLSPEC_UUID("39EE2B56-3EC4-11D5-8720-00A0248A5955")
TotalRecorderApplication;
#endif

EXTERN_C const CLSID CLSID_TotalRecorderDocument;

#ifdef __cplusplus

class DECLSPEC_UUID("AD6A0F77-4373-11D5-8728-00A0248A5955")
TotalRecorderDocument;
#endif

EXTERN_C const CLSID CLSID_TotalRecorderSoundFormat;

#ifdef __cplusplus

class DECLSPEC_UUID("BE6C3554-54D5-11D5-8745-00A0248A5955")
TotalRecorderSoundFormat;
#endif

EXTERN_C const CLSID CLSID_TotalRecorderMixer;

#ifdef __cplusplus

class DECLSPEC_UUID("BE6C3556-54D5-11D5-8745-00A0248A5955")
TotalRecorderMixer;
#endif

EXTERN_C const CLSID CLSID_TotalRecorderRecordingParameters;

#ifdef __cplusplus

class DECLSPEC_UUID("BE6C3558-54D5-11D5-8745-00A0248A5955")
TotalRecorderRecordingParameters;
#endif

EXTERN_C const CLSID CLSID_TotalRecorderWaveDevices;

#ifdef __cplusplus

class DECLSPEC_UUID("BE6C355A-54D5-11D5-8745-00A0248A5955")
TotalRecorderWaveDevices;
#endif

EXTERN_C const CLSID CLSID_TotalRecorderConfiguration;

#ifdef __cplusplus

class DECLSPEC_UUID("BE6C355C-54D5-11D5-8745-00A0248A5955")
TotalRecorderConfiguration;
#endif
#endif /* __TotalRecorderLib_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


