www.pudn.com > Ge_opc_Server_v1.rar > ENUMHELP.H


// ENUMHELP.h 
// 
// This file contains generic Enumerator classes 
// 
// 
//	(C) COPYRIGHT 1996 INTELLUTION INC. 
// ALL RIGHTS RESERVED 
// 
// Original Author: Al Chisholm 
// 
// Modification Log: 
//	Vers    Date   By    Notes 
//	----  -------- ---   ----- 
//	0.00  11/18/96 ACC 
// 
// 
 
 
#ifndef ENUMHELP_H 
#define ENUMHELP_H 
 
///////////////////////////////////////////////////////////////////////////// 
// LHEpipeview specific implementation of an IEnumUnknown Interface for the Server 
// 
class ILHEpipeviewEnumUnknown : public IEnumUnknown 
{ 
  public: 
	ILHEpipeviewEnumUnknown(LPUNKNOWN, ULONG, LPUNKNOWN*, IMalloc*); 
    ~ILHEpipeviewEnumUnknown( void); 
 
	// the IUnknown Functions 
	STDMETHODIMP         QueryInterface( REFIID iid, LPVOID* ppInterface); 
	STDMETHODIMP_(ULONG) AddRef( void); 
	STDMETHODIMP_(ULONG) Release( void); 
 
	// the IEnumUnknown Functions 
	STDMETHODIMP         Next ( 
		ULONG celt, 
		IUnknown **rgelt, 
		ULONG *pceltFetched 
		); 
 
	STDMETHODIMP         Skip ( 
		ULONG celt 
		); 
 
	STDMETHODIMP         Reset( 
		void 
		); 
 
	STDMETHODIMP         Clone( 
		IEnumUnknown **ppenum 
		); 
 
	// Member Variables 
  private: 
	ULONG           m_cRef;     //Object reference count 
	LPUNKNOWN       m_pUnkRef;  //IUnknown for ref counting 
	ULONG           m_iCur;     //Current element 
	ULONG           m_cUnk;     //Number of unknowns in us 
	LPUNKNOWN       *m_prgUnk;   //Source of unknowns 
	IMalloc			*m_pmem;	// memory allocator to use 
}; 
 
 
///////////////////////////////////////////////////////////////////////////// 
// LHEpipeview specific implementation of an IEnumString Interface for the Server 
// 
class ILHEpipeviewEnumString : public IEnumString 
{ 
  public: 
	ILHEpipeviewEnumString(LPUNKNOWN, ULONG, LPOLESTR*, IMalloc*); 
    ~ILHEpipeviewEnumString( void); 
 
	// the IUnknown Functions 
	STDMETHODIMP         QueryInterface( REFIID iid, LPVOID* ppInterface); 
	STDMETHODIMP_(ULONG) AddRef( void); 
	STDMETHODIMP_(ULONG) Release( void); 
 
	// the IEnumString Functions 
	STDMETHODIMP         Next ( 
		ULONG celt, 
		LPOLESTR *rgelt, 
		ULONG *pceltFetched 
		); 
 
	STDMETHODIMP         Skip ( 
		ULONG celt 
		); 
 
	STDMETHODIMP         Reset( 
		void 
		); 
 
	STDMETHODIMP         Clone( 
		IEnumString **ppenum 
		); 
 
	// Member Variables 
  private: 
	ULONG           m_cRef;     //Object reference count 
	LPUNKNOWN       m_pUnkRef;  //IUnknown for ref counting 
	ULONG           m_iCur;     //Current element 
	ULONG           m_cstr;     //Number of strings in us 
	LPOLESTR        *m_prgstr;   //copy of the strings 
	IMalloc			*m_pmem;	// memory allocator to use 
}; 
 
 
#endif