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

📄 resorgsymbolsdoc.h

📁 ResOrg 图形化管理Vc项目的资源ID的工具的源代码。 ResOrg - Manage and Renumber Resource Symbol IDs Introduction The
💻 H
字号:
/************************************************************************
 *
 *                  Resource ID Organiser Core Library
 *
 * (c) Copyright 2000-2005 by Riverblade Limited (UK). All rights reserved.
 *
 ************************************************************************
 *                                                                       
 *  Description : CResOrgSymbolsDoc - document class for a resource
 *                symbol file
 *                
 *  Compiler    : Microsoft Visual C++ 6.0, Service Pack 3 or later
 *                Microsoft Visual C++ .NET 2003
 *                                                                       
 *  Target                                                               
 *  Environment : Windows 98/NT/2000/XP
 *
 *  NOTE:
 *
 *    This software is provided "as is". All title and copyrights in and
 *    to the software, including but not limited to any images, text etc.
 *    etc. incorporated into it, are the property of Anna-Jayne Metcalfe
 *    and Riverblade Limited, except where acknowledged otherwise.
 *
 *    Your may freely use this code in your own products, PROVIDED
 *    this notice is not removed or modified.
 *
 *    Please visit http://www.riverblade.co.uk/products/resorg
 *    or email support@riverblade.co.uk for latest updates and product support 
 *
 ************************************************************************
 *
 *   MODIFICATION HISTORY:
 *
 *           This is a controlled document. See project configuration
 *           control tool for latest version and full version history.
 *
 *    $Archive: /Projects/AddIns/ResOrg/ResOrgCore/ResOrgSymbolsDoc.h $
 *   $Revision: 22 $
 *       $Date: 31/12/04 16:26 $
 *     $Author: Anna $
 *
 *    $History: ResOrgSymbolsDoc.h $
 * 
 * *****************  Version 22  *****************
 * User: Anna         Date: 31/12/04   Time: 16:26
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * 1.  Added IDP_WARN_CONFIG_LOAD_FAILED and IDP_WARN_CONFIG_SAVE_FAILED
 * string table prompts for use when loading/saving config files (debug
 * builds only)
 * 2.  Updated file banners
 * 
 * *****************  Version 21  *****************
 * User: Anna         Date: 23/08/04   Time: 21:40
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Added support for out of range symbols
 * 
 * *****************  Version 20  *****************
 * User: Anna         Date: 11/07/04   Time: 16:21
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Added support for detection of out of range symbols
 * 
 * *****************  Version 19  *****************
 * User: Anna         Date: 15/04/03   Time: 19:17
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Removed unnecessary header file guards
 * 
 * *****************  Version 18  *****************
 * User: Anna         Date: 1/03/03    Time: 18:10
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * The user can now provide their own XSL stylesheet to generate an HTML
 * report
 * 
 * *****************  Version 17  *****************
 * User: Anna         Date: 19/02/03   Time: 19:20
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Started adding XML export and HTML reports
 * 
 * *****************  Version 16  *****************
 * User: Anna         Date: 15/02/03   Time: 20:48
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Changed big BOOLs into little bools
 * 
 * *****************  Version 15  *****************
 * User: Anna         Date: 28/01/03   Time: 21:19
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Improved multi-file support by allowing files to be Added/Removed from
 * a multi-file display via the File Properties Dialog
 * 
 * *****************  Version 14  *****************
 * User: Anna         Date: 19/01/03   Time: 17:17
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Made CResOrgSymbolsDoc::Add(), Set(), Remove() and
 * CheckNextSymbolValues() virtual
 * 
 * *****************  Version 13  *****************
 * User: Anna         Date: 2/01/03    Time: 0:05
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * The CResourceSymbolManager object used by the document is now held by
 * pointer, to allow it's type to be customised in derived classes
 * 
 * *****************  Version 12  *****************
 * User: Anna         Date: 25/11/02   Time: 15:14
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Changed website address in banner
 * 
 * *****************  Version 11  *****************
 * User: Anna         Date: 22/10/02   Time: 13:24
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Changed name/mail address (at last!)
 * 
 * *****************  Version 10  *****************
 * User: Andy         Date: 7/06/02    Time: 17:04
 * Updated in $/Projects/AddIns/ResOrg/ResOrgCore
 * Renamed the ResOrgUtils module to ResOrgCore. Updated file banners
 * accordingly
 * 
 * *****************  Version 9  *****************
 * User: Andy         Date: 27/05/02   Time: 16:39
 * Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
 * Knock on changes from CResourceSymbolBuffer (now
 * CResourceSymbolManager)
 * 
 * *****************  Version 8  *****************
 * User: Andy         Date: 10/21/01   Time: 11:03p
 * Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
 * 1.  CResOrgSymbolsDoc::Serialize() no longer calls
 * CResOrgSymbolsDoc::CheckNextSymbolValues() - the prompt is now done
 * elseware
 * 2.  CResOrgSymbolsDoc::CheckNextSymbolValues() now takes a parameter to
 * determine whether a prompt dialog should be shown
 * 
 * *****************  Version 7  *****************
 * User: Andy         Date: 10/03/01   Time: 12:26p
 * Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
 * 1.  Added CResOrgSymbolsDoc::CheckNextSymbolValues() to prompt if the
 * "Next Symbol" values are in use
 * 2.  CResOrgSymbolsDoc::Serialize() now calls CheckNextSymbolValues()
 * after loading to ensure that the "Next Symbol" values are OK.
 * 
 * *****************  Version 6  *****************
 * User: Andy         Date: 22/06/01   Time: 9:49
 * Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
 * Made class declaration "Rose friendly"
 * 
 * *****************  Version 5  *****************
 * User: Andy         Date: 2/04/01    Time: 17:04
 * Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
 * Added GetSymbolBuffer() access method; made attributes protected
 * 
 * *****************  Version 4  *****************
 * User: Andy         Date: 17/02/01   Time: 6:57
 * Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
 * 1.  Knock-on changes from renaming of CResOrgSymbolsView to
 * CResOrgSymbolsListView
 * 2.  Added wrappers around commonly used CResourceSymbolBuffer methods
 * [e.g. Set()] to remove the need for views to raise view hints
 * 
 * *****************  Version 3  *****************
 * User: Andy         Date: 29/11/00   Time: 18:38
 * Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
 *  Added file banners
 *
 * $Nokeywords: $
 *
 ************************************************************************/

#pragma once


#include "ResourceSymbolManager.h"



#define CResOrgSymbolsDoc_BASE							CDocument

class RESORGCORE_EXT_CLASS	CResOrgSymbolsDoc : public	CDocument
{
			DECLARE_DYNCREATE(CResOrgSymbolsDoc)

protected:	// create from serialization only
			CResOrgSymbolsDoc(void);

public:
	virtual ~CResOrgSymbolsDoc(void);

// Attributes
protected:
			CResourceSymbolManager*	m_pSymbolManager;

			CNGFileChangeMonitor	m_FileChangeMonitor;

			CString					m_sTemporaryReportPathName;

// Operations
public:
			CResourceSymbolManager*	GetSymbolBuffer(void) const
										{ return m_pSymbolManager; }

	virtual	CResourceSymbol*		Add(	const CString& sSymbolName,
											UINT uSymbolValue,
											int nLineNo);

	virtual	bool					Set(	CResourceSymbol* pSymbol,
											const CString& sName,
											UINT uValue,
											bool bReadOnly = false);

	virtual	bool					Remove(	CResourceSymbol* pSymbol);

	virtual	bool					CheckNextSymbolValues(bool bPrompt = true);

	virtual	void					ShowSymbolFileProperties(CRuntimeClass* pActivePageClass = NULL);

			bool					CreateReport(const CString& sStyleSheetText,
												 const CString& sPathName,
												 CString* psMsg = NULL);


			CString					GenerateReportText(	const CString& sStyleSheetText,
														CString* psMsg = NULL) const;

			CString					GenerateReport(	IXMLDOMDocument* pXmlDoc,
													IXMLDOMDocument* pStyleSheetDoc,
													CString* psMsg = NULL) const;

			bool					WriteXml(const CString& sPathName, CString* psMsg = NULL) const;

			HRESULT					SaveXml(IXMLDOMDocument* pDOMDoc, CString* psMsg = NULL) const;

			CString					LoadXsl(UINT uResourceID) const;


			CString					GetTemporaryReportName(void) const;

			void					DeleteTemporaryReport(void);

			BOOL					PathAddExtension(CString& rsPathName, const CString& sExtension) const;

			void					PathRemoveExtension(CString& rsPathName) const;

// Virtual Overrides
public:
	virtual BOOL					OnNewDocument(void);
	virtual	BOOL					OnOpenDocument(LPCTSTR lpszPathName);
	virtual	BOOL					OnSaveDocument(LPCTSTR lpszPathName);
	virtual	void					OnCloseDocument(void);
	virtual void					Serialize(CArchive& ar);
	virtual void					DeleteContents(void);


// Implementation
protected:

	virtual	bool					CreateSymbolManager(void);


public:
#ifdef _DEBUG
	virtual void					AssertValid(void) const;
	virtual void					Dump(CDumpContext& dc) const;
#endif

protected:
			bool					StartFileChangeMonitor(const CString& sPathName);

			bool					StopFileChangeMonitor(void);

			bool					DoNextSymbolValuesInUsePrompt(void);


// Message handlers
protected:
	afx_msg void					OnCmdFileChanged(void);
	afx_msg	void					OnFileSave(void);
	afx_msg	void					OnFileSaveAs(void);
	afx_msg	void					OnCmdFileExport(void);
	afx_msg void					OnCmdFileProperties(void);
	afx_msg	void					OnCmdFilePropertiesStatistics(void);
	afx_msg	void					OnCmdFilePropertiesNextSymbolValues(void);
	afx_msg void					OnCmdRenumberSymbols(void);
	afx_msg	void					OnUpdateRenumberSymbols(CCmdUI* pCmdUI);
	afx_msg	void					OnCmdReport(void);

	DECLARE_MESSAGE_MAP()
};

⌨️ 快捷键说明

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