You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.7 KiB
115 lines
3.7 KiB
// CMSVidStreamBufferRecorder.h : Declaration of the CMSVidStreamBufferRecorder
|
|
|
|
#ifndef __MSVIDSTREAMBUFFERRECORDER_H_
|
|
#define __MSVIDSTREAMBUFFERRECORDER_H_
|
|
|
|
#include "stdafx.h"
|
|
#include <map>
|
|
#include <Mshtml.h>
|
|
#include <activscp.h>
|
|
#include <Atlctl.h>
|
|
#include <Exdisp.h>
|
|
#include <dvdmedia.h>
|
|
#include <objectwithsiteimplsec.h>
|
|
#include "segimpl.h"
|
|
#include "seg.h"
|
|
#include "resource.h" // main symbols
|
|
#include "mslcid.h"
|
|
#include "sbe.h"
|
|
#include "dvdmedia.h"
|
|
|
|
typedef CComQIPtr<IStreamBufferRecordControl> pqSBERecControl;
|
|
/////////////////////////////////////////////////////
|
|
|
|
|
|
class ATL_NO_VTABLE __declspec(uuid("CAAFDD83-CEFC-4e3d-BA03-175F17A24F91")) CMSVidStreamBufferRecordingControlBase :
|
|
public CComObjectRootEx<CComSingleThreadModel>,
|
|
public CComCoClass<CMSVidStreamBufferRecordingControlBase, &__uuidof(CMSVidStreamBufferRecordingControlBase)>,
|
|
public IObjectWithSiteImplSec<CMSVidStreamBufferRecordingControlBase>,
|
|
public ISupportErrorInfo,
|
|
public IObjectSafetyImpl<CMSVidStreamBufferRecordingControlBase, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>,
|
|
public IDispatchImpl<IMSVidStreamBufferRecordingControl, &IID_IMSVidStreamBufferRecordingControl, &LIBID_MSVidCtlLib>
|
|
{
|
|
|
|
public:
|
|
CMSVidStreamBufferRecordingControlBase()
|
|
{
|
|
m_Start = -1;
|
|
m_Stop = -1;
|
|
}
|
|
|
|
virtual ~CMSVidStreamBufferRecordingControlBase(){
|
|
if(!(!Recorder)){// not not'ing smart pointer, they assert if p == 0
|
|
Recorder.Release();
|
|
}
|
|
}
|
|
REGISTER_AUTOMATION_OBJECT(IDS_PROJNAME,
|
|
IDS_REG_MSVIDSTREAMBUFFERRECORDINGCONTROL_PROGID,
|
|
IDS_REG_MSVIDSTREAMBUFFERRECORDINGCONTROL_DESC,
|
|
LIBID_MSVidCtlLib,
|
|
__uuidof(CMSVidStreamBufferRecordingControlBase));
|
|
|
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
|
|
|
|
|
|
BEGIN_COM_MAP(CMSVidStreamBufferRecordingControlBase)
|
|
COM_INTERFACE_ENTRY(IDispatch)
|
|
COM_INTERFACE_ENTRY(IMSVidStreamBufferRecordingControl)
|
|
COM_INTERFACE_ENTRY(ISupportErrorInfo)
|
|
COM_INTERFACE_ENTRY(IObjectSafety)
|
|
COM_INTERFACE_ENTRY(IObjectWithSite)
|
|
END_COM_MAP()
|
|
protected:
|
|
pqSBERecControl Recorder;
|
|
CComBSTR m_pName;
|
|
REFERENCE_TIME m_Start;
|
|
REFERENCE_TIME m_Stop;
|
|
RecordingType m_Type;
|
|
|
|
|
|
// IMSVidStreamBufferRecordingControl
|
|
public:
|
|
// ISupportsErrorInfo
|
|
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
|
|
STDMETHOD(get_StartTime)(/*[out, retval]*/ long *Start) ;
|
|
STDMETHOD(put_StartTime)(/*[in]*/ long Start) ;
|
|
STDMETHOD(get_StopTime)(/*[out, retval]*/ long *Stop) ;
|
|
STDMETHOD(put_StopTime)(/*[in]*/ long Stop) ;
|
|
STDMETHOD(get_RecordingStopped)(/*[out, retval]*/ VARIANT_BOOL* Result) ;
|
|
STDMETHOD(get_RecordingStarted)(/*[out, retval]*/ VARIANT_BOOL* Result) ;
|
|
STDMETHOD(get_FileName)(/*[out, retval]*/ BSTR* pName);
|
|
STDMETHOD(get_RecordingType)(/*[out, retval]*/ RecordingType *dwType);
|
|
STDMETHOD(get_RecordingAttribute)(/*[out, retval]*/ IUnknown **pRecordingAttribute);
|
|
|
|
};
|
|
class ATL_NO_VTABLE __declspec(uuid("7D0B2FDE-9CA8-4b71-AE65-12193F5F52D8")) CMSVidStreamBufferRecordingControl:
|
|
public CComObject<CMSVidStreamBufferRecordingControlBase>
|
|
{
|
|
public:
|
|
CMSVidStreamBufferRecordingControl(IStreamBufferRecordControl* newVal, BSTR name, DWORD type){
|
|
Recorder.Attach(newVal);
|
|
m_pName.Attach(name);
|
|
if(type == RECORDING_TYPE_CONTENT){
|
|
m_Type = CONTENT;
|
|
}
|
|
else{
|
|
m_Type = REFERENCE;
|
|
}
|
|
}
|
|
virtual ~CMSVidStreamBufferRecordingControl(){}
|
|
};
|
|
|
|
#endif //__MSVIDSTREAMBUFFERRECORDINGCONTROL_H_
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|