// --srowlst.h-----------------------------------------------------------------
//
// Header file for classes CSROWNODE and CSROWLST.
//
// Copyright (C) Microsoft Corp,, 1986-1996. All rights reserved.
//
//-----------------------------------------------------------------------------
#ifndef_SROWLST_H
#define _SROWLST_H
#include "llmacro.h"
// Count of properties supported by the ACL object.
#defineC_ACLPROPS3
// Indices of ACL properties in the SRow associated with a rule object.
#defineI_MEMBER_ENTRYID0
#defineI_MEMBER_RIGHTS1
#defineI_MEMBER_NAME2
class CSROWNODE// srn
{
friend class CIExchangeFolderACLs;
friend class CSROWLST;
public:
// constructor & destructor
CSROWNODE(
INLPSRowlpSRow
);
~CSROWNODE();
protected:
CSROWNODE *m_pNxt;
CSROWNODE *m_pPrv;
SRowm_SRow;
};
class CSROWLST// srl
{
public:
CSROWLST(); // constructor
~CSROWLST(); // destructor
// standard C++ Get and Set member functions
CSROWNODE * GetCurrentNode(VOID);
LONG GetCursor(VOID) const;
LONG GetNodeCount(VOID) const;
LONG SetCursor(
INLONGlPos
);
HRESULT HrInitialize(
INLPSRowSetlpRows
);
HRESULT HrDelete(VOID);
HRESULT HrInsert(
INLPSRowlpSRow
);
HRESULT HrRemoveFromLst(
OUTCSROWNODE * *ppRemovedNode
);
HRESULT HrWriteToTable(
INLPEXCHANGEMODIFYTABLElpExchTbl
);
private:
ULONGm_cNodes;
LONGm_lPos;
CSROWNODE *m_pCurNode;
CSROWNODE *m_pLstHd;
};
// $--CSROWNODE::GetCurrentNode------------------------------------------------
//
// DESCRIPTION:Return a ptr to the current node.
//
// INPUT: None.
//
// RETURNS:A ptr to the current node.
//
//-----------------------------------------------------------------------------
inline CSROWNODE * CSROWLST::GetCurrentNode(VOID)
{
return m_pCurNode;
}
// $--CSROWLST::GetCursor------------------------------------------------------
//
// DESCRIPTION:Return the current cursor position.
//
// INPUT: None.
//
// RETURNS:The current cursor position.
//
//-----------------------------------------------------------------------------
inline LONG CSROWLST::GetCursor() const
{
return m_lPos;
}
// $--CSROWLST::GetNodeCount---------------------------------------------------
//
// DESCRIPTION:Return the count of nodes in the list.
//
// INPUT: None.
//
// RETURNS:The count of nodes in the list.
//
//-----------------------------------------------------------------------------
inline LONG CSROWLST::GetNodeCount(VOID) const
{
return m_cNodes;
}
#endif // _SROWLSTH_