60 lines
1.9 KiB
C
60 lines
1.9 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_)
|