WindowsXP-SP1/admin/admt/netobjen/nt4enum.h
2020-09-30 16:53:49 +02:00

60 lines
2.0 KiB
C++

/*---------------------------------------------------------------------------
File: NT4Enum.h
Comments: interface for the CNT4Enum class.
(c) Copyright 1999, Mission Critical Software, Inc., All Rights Reserved
Proprietary and confidential to Mission Critical Software, Inc.
REVISION LOG ENTRY
Revision By: Sham Chauthani
Revised on 07/02/99 12:40:00
---------------------------------------------------------------------------
*/
#if !defined(AFX_NT4ENUM_H__C0171FA0_1AB3_11D3_8C81_0090270D48D1__INCLUDED_)
#define AFX_NT4ENUM_H__C0171FA0_1AB3_11D3_8C81_0090270D48D1__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "AttrNode.h"
class CNT4Enum : public IEnumVARIANT
{
public:
TNodeList * m_pNodeList;
TNodeListEnum m_listEnum;
CNT4Enum(TNodeList * pNodeList);
virtual ~CNT4Enum();
HRESULT STDMETHODCALLTYPE Next(unsigned long celt, VARIANT FAR* rgvar, unsigned long FAR* pceltFetched);
HRESULT STDMETHODCALLTYPE Skip(unsigned long celt){ return E_NOTIMPL; }
HRESULT STDMETHODCALLTYPE Reset(){ return E_NOTIMPL; }
HRESULT STDMETHODCALLTYPE Clone(IEnumVARIANT FAR* FAR* ppenum){ return E_NOTIMPL; }
HRESULT STDMETHODCALLTYPE QueryInterface(const struct _GUID &,void ** ){ return E_NOTIMPL; }
ULONG STDMETHODCALLTYPE AddRef(void){ return E_NOTIMPL; }
ULONG STDMETHODCALLTYPE Release(void)
{
if ( m_pNodeList )
{
TAttrNode * pNode = (TAttrNode *)m_pNodeList->Head();
TAttrNode * temp;
for ( pNode = (TAttrNode*)m_listEnum.OpenFirst(m_pNodeList) ; pNode; pNode = temp )
{
temp = (TAttrNode *)m_listEnum.Next();
m_pNodeList->Remove(pNode);
delete pNode;
}
m_listEnum.Close();
delete m_pNodeList;
m_pNodeList = NULL;
delete this;
}
return 0;
}
};
#endif // !defined(AFX_NT4ENUM_H__C0171FA0_1AB3_11D3_8C81_0090270D48D1__INCLUDED_)