windows-nt/Source/XPSP1/NT/net/mmc/mprsnap/rtrstrm.h
2020-09-26 16:20:57 +08:00

87 lines
2 KiB
C++

/**********************************************************************/
/** 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