📄 resorgsymbolsdoc.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 + -