/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1998 **/ /**********************************************************************/ /* rtrstrm.h Root node configuration data. Use this to get/set configuration data. This class will take care of versioning of config formats as well as serializing of the data. FILE HISTORY: */ #ifndef _RTRSTRM_H #define _RTRSTRM_H #ifndef _XSTREAM_H #include "xstream.h" #endif #ifndef _IFADMIN_H #include "ifadmin.h" #endif #ifndef _COLUMN_H #include "column.h" #endif enum RTRSTRM_TAG { RTRSTRM_TAG_VERSION = XFER_TAG(1, XFER_DWORD), RTRSTRM_TAG_VERSIONADMIN = XFER_TAG(2, XFER_DWORD), RTRSTRM_TAG_SERVER = XFER_TAG(3, XFER_DWORD) , RTRSTRM_TAG_NAME = XFER_TAG(4, XFER_STRING), RTRSTRM_TAG_OVERRIDE = XFER_TAG(5, XFER_DWORD), }; class RouterAdminConfigStream : public ConfigStream { public: RouterAdminConfigStream(); HRESULT InitNew(); // set defaults HRESULT SaveTo(IStream *pstm); HRESULT SaveAs(UINT nVersion, IStream *pstm); HRESULT LoadFrom(IStream *pstm); HRESULT GetSize(ULONG *pcbSize); BOOL GetDirty() { return m_fDirty; } void SetDirty(BOOL fDirty) { m_fDirty = fDirty; }; // -------------------------------------------------------- // Accessors // -------------------------------------------------------- HRESULT GetVersionInfo(DWORD *pnVersion, DWORD *pnAdminVersion); HRESULT GetLocationInfo(BOOL *pfServer, CString *pstName, BOOL *pfOverride); HRESULT SetLocationInfo(BOOL fServer, LPCTSTR pszName, BOOL fOverride); private: DWORD m_nVersionAdmin; DWORD m_nVersion; DWORD m_fServer; DWORD m_fOverride; CString m_stName; BOOL m_fDirty; HRESULT XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize); }; class RouterComponentConfigStream : public ConfigStream { protected: virtual HRESULT XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize); }; #endif _RTRSTRM_H