📄 caviparser.h
字号:
//
// CAviParser.h
//
#ifndef __H_CAviParser__
#define __H_CAviParser__
#include <afxtempl.h>
#include <dshow.h>
#include <Aviriff.h>
class CAviParser
{
private:
char mFileName[MAX_PATH];
FILE * m_pFile;
UINT64 m_pos, m_len;
public:
AVIMAINHEADER m_avih;
struct strm_t
{
AVISTREAMHEADER strh;
BYTE * strf;
CString strn;
AVISUPERINDEX * indx;
} m_strm;
struct ODMLExtendedAVIHeader
{
DWORD dwTotalFrames;
} m_dmlh;
AVIOLDINDEX * m_idx1;
UINT64 m_idx1Pos;
public:
CAviParser();
~CAviParser();
BOOL SetAviFile(const char * inFile);
BOOL Parse(void);
private:
UINT64 GetPos(void) { return m_pos; }
UINT64 GetLength(void) { return m_len; }
void Seek(UINT64 pos) { m_pos = pos; }
void Release(void);
HRESULT Parse(DWORD parentid, UINT64 end);
HRESULT Read(void* pData, LONG len);
template<typename T> HRESULT TRead(T& var, int offset = 0)
{
#ifdef _DEBUG
int size = sizeof(var);
#endif
memset(&var, 0, sizeof(var));
HRESULT hr = Read((BYTE*)&var + offset, sizeof(var) - offset);
return hr;
}
};
#endif // __H_CAviParser__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -