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