187 lines
5.4 KiB
C++
187 lines
5.4 KiB
C++
|
/**********************************************************************/
|
||
|
/** Microsoft Windows/NT **/
|
||
|
/** Copyright(c) Microsoft Corporation, 1997 - 1997 **/
|
||
|
/**********************************************************************/
|
||
|
|
||
|
/*
|
||
|
rtrstrm.cpp
|
||
|
|
||
|
FILE HISTORY:
|
||
|
|
||
|
*/
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
#include "rtrstrm.h"
|
||
|
#include "xstream.h"
|
||
|
|
||
|
#define CURRENT_RTRSTRM_VERSION 0x00020001
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::RouterAdminConfigStream
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
RouterAdminConfigStream::RouterAdminConfigStream()
|
||
|
: m_nVersion(-1), m_fDirty(FALSE)
|
||
|
{
|
||
|
m_nVersionAdmin = 0x00020000;
|
||
|
m_nVersion = CURRENT_RTRSTRM_VERSION;
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::InitNew
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::InitNew()
|
||
|
{
|
||
|
// Setup the appropriate defaults
|
||
|
// m_nVersionAdmin = 0x00020000;
|
||
|
// m_nVersion = 0x00020000;
|
||
|
// m_fServer = TRUE;
|
||
|
// m_stName.Empty();
|
||
|
return hrOK;
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::SaveTo
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::SaveTo(IStream *pstm)
|
||
|
{
|
||
|
return XferVersion0(pstm, XferStream::MODE_WRITE, NULL);
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::SaveAs
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::SaveAs(UINT nVersion, IStream *pstm)
|
||
|
{
|
||
|
return XferVersion0(pstm, XferStream::MODE_WRITE, NULL);
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::LoadFrom
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::LoadFrom(IStream *pstm)
|
||
|
{
|
||
|
return XferVersion0(pstm, XferStream::MODE_READ, NULL);
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::GetSize
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::GetSize(ULONG *pcbSize)
|
||
|
{
|
||
|
return XferVersion0(NULL, XferStream::MODE_SIZE, NULL);
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::GetVersionInfo
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::GetVersionInfo(DWORD *pdwVersion, DWORD *pdwAdminVersion)
|
||
|
{
|
||
|
if (pdwVersion)
|
||
|
*pdwVersion = m_nVersion;
|
||
|
if (pdwAdminVersion)
|
||
|
*pdwAdminVersion = m_nVersionAdmin;
|
||
|
return hrOK;
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::GetLocationInfo
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::GetLocationInfo(BOOL *pfServer,
|
||
|
CString *pstName, BOOL *pfOverride)
|
||
|
{
|
||
|
if (pfServer)
|
||
|
*pfServer = m_fServer;
|
||
|
if (pstName)
|
||
|
*pstName = m_stName;
|
||
|
if (pfOverride)
|
||
|
*pfOverride = m_fOverride;
|
||
|
return hrOK;
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::SetLocationInfo
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::SetLocationInfo(BOOL fServer,
|
||
|
LPCTSTR pszName, BOOL fOverride)
|
||
|
{
|
||
|
m_fServer = fServer;
|
||
|
m_stName = pszName;
|
||
|
m_fOverride = fOverride;
|
||
|
SetDirty(TRUE);
|
||
|
return hrOK;
|
||
|
}
|
||
|
|
||
|
/*!--------------------------------------------------------------------------
|
||
|
RouterAdminConfigStream::XferVersion0
|
||
|
-
|
||
|
Author: KennT
|
||
|
---------------------------------------------------------------------------*/
|
||
|
HRESULT RouterAdminConfigStream::XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize)
|
||
|
{
|
||
|
XferStream xstm(pstm, mode);
|
||
|
HRESULT hr = hrOK;
|
||
|
|
||
|
CORg( xstm.XferDWORD( RTRSTRM_TAG_VERSION, &m_nVersion ) );
|
||
|
|
||
|
AssertSz(m_nVersion == CURRENT_RTRSTRM_VERSION, "Wrong saved console version!");
|
||
|
|
||
|
CORg( xstm.XferDWORD( RTRSTRM_TAG_VERSIONADMIN, &m_nVersionAdmin ) );
|
||
|
CORg( xstm.XferDWORD( RTRSTRM_TAG_SERVER, &m_fServer ) );
|
||
|
CORg( xstm.XferCString( RTRSTRM_TAG_NAME, &m_stName ) );
|
||
|
CORg( xstm.XferDWORD( RTRSTRM_TAG_OVERRIDE, &m_fOverride ) );
|
||
|
|
||
|
if (pcbSize)
|
||
|
*pcbSize = xstm.GetSize();
|
||
|
|
||
|
Error:
|
||
|
return hr;
|
||
|
}
|
||
|
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
INTERFACES_TAG_VERSION = XFER_TAG(1, XFER_DWORD),
|
||
|
INTERFACES_TAG_VERSIONADMIN = XFER_TAG(2, XFER_DWORD),
|
||
|
INTERFACES_TAG_COLUMNS = XFER_TAG(3, XFER_COLUMNDATA_ARRAY),
|
||
|
INTERFACES_TAG_SORT_COLUMN = XFER_TAG(4, XFER_DWORD),
|
||
|
INTERFACES_TAG_SORT_ASCENDING = XFER_TAG(5, XFER_DWORD),
|
||
|
};
|
||
|
|
||
|
HRESULT RouterComponentConfigStream::XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize)
|
||
|
{
|
||
|
XferStream xstm(pstm, mode);
|
||
|
HRESULT hr = hrOK;
|
||
|
|
||
|
CORg( xstm.XferDWORD( INTERFACES_TAG_VERSION, &m_nVersion ) );
|
||
|
CORg( xstm.XferDWORD( INTERFACES_TAG_VERSIONADMIN, &m_nVersionAdmin ) );
|
||
|
|
||
|
CORg( m_rgViewInfo[0].Xfer(&xstm,
|
||
|
INTERFACES_TAG_SORT_COLUMN,
|
||
|
INTERFACES_TAG_SORT_ASCENDING,
|
||
|
INTERFACES_TAG_COLUMNS) );
|
||
|
if (pcbSize)
|
||
|
*pcbSize = xstm.GetSize();
|
||
|
|
||
|
Error:
|
||
|
return hr;
|
||
|
}
|
||
|
|