⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpdfobject.h

📁 这是一个PDF文件查看的程序
💻 H
字号:
#pragma once

class CBPdf;

class CBXrefEntry
{
// Creation
public:
	CBXrefEntry();
	CBXrefEntry(DWORD dwObjectNumber, DWORD dwOffset);

// Attributes
public:
	DWORD m_dwObjectNumber;
	DWORD m_dwOffset;
};

class CBPdfObject
{
// Creation
public:
	CBPdfObject(CBPdfObject* pobjParent);

// Overrides
public:
	virtual	void			Draw(CBPdf* ppdf, CTreeCtrl* ptree, HTREEITEM hti, DWORD dwDepth, DWORD dwMaxDepth);
	virtual	DWORD			GetImage();
	virtual	CBPdfObject*	GetParent();
	virtual	CString			GetType();
	virtual	void			SaveAsDot(CBPdf* ppdf, CStdioFile* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);
	virtual	void			SaveAsDotVerbose(CBPdf* ppdf, CStdioFile* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);
	virtual	void			SaveAsText(CBPdf* ppdf, FILE* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);

// Implementation
public:
	virtual	~CBPdfObject();

private:
	CBPdfObject*	m_pobjParent;
};

class CBPdfArray : public CBPdfObject
{
// Creation
public:
	CBPdfArray(CBPdfObject* pobjParent);

// Operations
public:
	void	Add(CBPdfObject* pobj);

// Overrides
public:
	void	Draw(CBPdf* ppdf, CTreeCtrl* ptree, HTREEITEM hti, DWORD dwDepth, DWORD dwMaxDepth);
	DWORD	GetImage();
	CString	GetType();
	void	SaveAsDot(CBPdf* ppdf, CStdioFile* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);

//Implementation
public:
	~CBPdfArray();

private:
	CArray<CBPdfObject*, CBPdfObject*>	m_array;
};

class CBPdfDictionary : public CBPdfObject
{
// Creation
public:
	CBPdfDictionary(CBPdfObject* pobjParent);

// Attributes

// Operations
public:
	void	Add(CString strKey, CBPdfObject* pobj);
	BOOL	Lookup(CString strKey, CBPdfObject** ppobj);

// Overrides
public:
	void	Draw(CBPdf* ppdf, CTreeCtrl* ptree, HTREEITEM hti, DWORD dwDepth, DWORD dwMaxDepth);
	DWORD	GetImage();
	CString	GetType();
	void	SaveAsDot(CBPdf* ppdf, CStdioFile* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);

//Implementation
public:
	~CBPdfDictionary();

private:
	CMap<CString, LPCSTR, CBPdfObject*, CBPdfObject*>	m_map;
};

class CBPdfStream : public CBPdfObject
{
// Creation
public:
	CBPdfStream(CBPdfObject* pobjParent, CBPdfDictionary* pdict, DWORD dwPos, DWORD dwSize);

// Attributes
	DWORD	GetStreamPos();
	DWORD	GetStreamSize();

// Operations
public:

// Overrides
public:
	void	Draw(CBPdf* ppdf, CTreeCtrl* ptree, HTREEITEM hti, DWORD dwDepth, DWORD dwMaxDepth);
	DWORD	GetImage();
	CString	GetType();
	void	SaveAsDot(CBPdf* ppdf, CStdioFile* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);

//Implementation
public:
	~CBPdfStream();

private:
	DWORD m_dwPos;
	DWORD m_dwSize;

	CBPdfDictionary* m_pdict;
};

class CBPdfValue : public CBPdfObject
{
// Creation
public:
	CBPdfValue(CBPdfObject* pobjParent, CString str);
	~CBPdfValue();

// Operations
public:
	CString	GetString();

// Overrides
public:
	void	Draw(CBPdf* ppdf, CTreeCtrl* ptree, HTREEITEM hti, DWORD dwDepth, DWORD dwMaxDepth);
	DWORD	GetImage();
	CString	GetType();
	void	SaveAsDot(CBPdf* ppdf, CStdioFile* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);

//Implementation
private:
	CString m_str;
};

class CBPdfReference : public CBPdfObject
{
// Creation
public:
	CBPdfReference(CBPdfObject* pobjParent, CString str);
	~CBPdfReference();

// Operations
public:
	CString	GetString();

// Overrides
public:
	void	Draw(CBPdf* ppdf, CTreeCtrl* ptree, HTREEITEM hti, DWORD dwDepth, DWORD dwMaxDepth);
	DWORD	GetImage();
	CString	GetType();
	void	SaveAsDot(CBPdf* ppdf, CStdioFile* pfile, CString strParent, DWORD dwDepth, DWORD dwMaxDepth);

//Implementation
private:
	CString m_str;
	CBPdfObject* m_pobj;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -