// This is a part of the Microsoft Foundation Classes C++ library. // Copyright (C) 1992-1998 Microsoft Corporation // All rights reserved. // // This source code is only intended as a supplement to the // Microsoft Foundation Classes Reference and related // electronic documentation provided with the library. // See these sources for detailed information regarding the // Microsoft Foundation Classes product. // Note: This header file contains useful classes that are documented only // in the MFC Technical Notes. These classes may change from version to // version, so be prepared to change your code accordingly if you utilize // this header. In the future, commonly used portions of this header // may be moved and officially documented. #ifndef __AFXADV_H__ #define __AFXADV_H__ #ifndef __AFXWIN_H__ #include #endif #ifdef _AFX_MINREBUILD #pragma component(minrebuild, off) #endif #ifndef _AFX_FULLTYPEINFO #pragma component(mintypeinfo, on) #endif #ifdef _AFX_PACKING #pragma pack(push, _AFX_PACKING) #endif ///////////////////////////////////////////////////////////////////////////// // AFXADV - MFC Advanced Classes // Classes declared in this file //CObject //CFile //CMemFile class CSharedFile; // Shared memory file class CRecentFileList; // used in CWinApp for MRU list class CDockState; // state of docking toolbars ///////////////////////////////////////////////////////////////////////////// #undef AFX_DATA #define AFX_DATA AFX_CORE_DATA ///////////////////////////////////////////////////////////////////////////// // Shared file support class CSharedFile : public CMemFile { DECLARE_DYNAMIC(CSharedFile) public: // Constructors CSharedFile(UINT nAllocFlags = GMEM_DDESHARE|GMEM_MOVEABLE, UINT nGrowBytes = 4096); // Attributes HGLOBAL Detach(); void SetHandle(HGLOBAL hGlobalMemory, BOOL bAllowGrow = TRUE); // Implementation public: virtual ~CSharedFile(); protected: virtual BYTE* Alloc(DWORD nBytes); virtual BYTE* Realloc(BYTE* lpMem, DWORD nBytes); virtual void Free(BYTE* lpMem); UINT m_nAllocFlags; HGLOBAL m_hGlobalMemory; BOOL m_bAllowGrow; }; ///////////////////////////////////////////////////////////////////////////// // CRecentFileList #define AFX_ABBREV_FILENAME_LEN 30 class CRecentFileList { // Constructors public: CRecentFileList(UINT nStart, LPCTSTR lpszSection, LPCTSTR lpszEntryFormat, int nSize, int nMaxDispLen = AFX_ABBREV_FILENAME_LEN); // Attributes int GetSize() const; CString& operator[](int nIndex); // Operations virtual void Remove(int nIndex); virtual void Add(LPCTSTR lpszPathName); BOOL GetDisplayName(CString& strName, int nIndex, LPCTSTR lpszCurDir, int nCurDir, BOOL bAtLeastName = TRUE) const; virtual void UpdateMenu(CCmdUI* pCmdUI); virtual void ReadList(); // reads from registry or ini file virtual void WriteList(); // writes to registry or ini file // Implementation virtual ~CRecentFileList(); int m_nSize; // contents of the MRU list CString* m_arrNames; CString m_strSectionName; // for saving CString m_strEntryFormat; UINT m_nStart; // for displaying int m_nMaxDisplayLength; CString m_strOriginal; // original menu item contents }; AFX_INLINE int CRecentFileList::GetSize() const { return m_nSize; } AFX_INLINE CString& CRecentFileList::operator[](int nIndex) { ASSERT(nIndex < m_nSize); return m_arrNames[nIndex]; } ///////////////////////////////////////////////////////////////////////////// // CDockState - used for docking serialization class CDockState : public CObject { DECLARE_SERIAL(CDockState) CDockState(); public: // Attributes CPtrArray m_arrBarInfo; public: // Operations void LoadState(LPCTSTR lpszProfileName); void SaveState(LPCTSTR lpszProfileName); void Clear(); //deletes all the barinfo's DWORD GetVersion(); // Implementation protected: BOOL m_bScaling; CRect m_rectDevice; CRect m_rectClip; CSize m_sizeLogical; DWORD m_dwVersion; public: ~CDockState(); virtual void Serialize(CArchive& ar); // scaling implementation void ScalePoint(CPoint& pt); void ScaleRectPos(CRect& rect); CSize GetScreenSize(); void SetScreenSize(CSize& size); }; ///////////////////////////////////////////////////////////////////////////// #ifdef _AFX_PACKING #pragma pack(pop) #endif #undef AFX_DATA #define AFX_DATA #ifdef _AFX_MINREBUILD #pragma component(minrebuild, on) #endif #ifndef _AFX_FULLTYPEINFO #pragma component(mintypeinfo, off) #endif #endif // __AFXADV_H__ /////////////////////////////////////////////////////////////////////////////