Visual C++ Example
#import "ScrRecX.tlb" no_namespace named_guids raw_interfaces_only
...
CComPtr< IFMScrRec > m_pRec;
...
//
// Create Video Recorder
//
HRESULT CreateVideoRecorder()
{
// Create Object
HRESULT hr = m_pRec.CoCreateInstance(CLSID_FMScrRec);
if ( FAILED(hr) )
return hr;
// Trace Level
m_pRec->SetTraceLevel(9);
return S_OK;
}
//
// Start Recording
//
HRESULT Start()
{
// Screen Area
m_pRec->put_Left(100);
m_pRec->put_Top(100);
m_pRec->put_Right(400);
m_pRec->put_Bottom(200);
// Video Format: AVI
m_pRec->put_VideoFormat(0);
// Video Codec
CComBSTR bstrVideoCodecName(CString(_T("Microsoft Video 1")).AllocSysString());
HRESULT hr = m_pRec->put_VideoCodecName(bstrVideoCodecName);
if ( FAILED(hr) )
return hr;
// Audio Codec
CComBSTR bstrAudioCodecName(CString(_T("PCM")).AllocSysString());
hr = m_pRec->put_AudioCodecName(bstrAudioCodecName);
if ( FAILED(hr) )
return hr;
// Screen Area Alignment
m_pRec->put_Alignment(4);
// Video File
CComBSTR bstrVideoFile(CString(_T("test.avi")).AllocSysString());
m_pRec->put_VideoFile(bstrVideoFile);
// Frame Rate
m_pRec->put_FramesPerSecond(15.0);
// Record Cursor: Yes
m_pRec->put_RecordCursor(1);
// Highlight Cursor: No
m_pRec->put_HighlightCursor(0);
// Flashing Border: Yes
m_pRec->put_FlashingBorder(1);
// Key Frame Interval
m_pRec->put_KeyFrameInterval(100);
// Follow Mouse: No
m_pRec->put_FollowMouse(0);
// Record Sound: Yes
m_pRec->put_RecordAudio(1);
// Start Recording
m_pRec->Start(0);
return S_OK;
}
//
// Start Recording
//
HRESULT Stop()
{
return m_pRec->Stop();
}
|