97 lines
2.8 KiB
C++
97 lines
2.8 KiB
C++
/*++
|
|
|
|
© 1998 Seagate Software, Inc. All rights reserved
|
|
|
|
Module Name:
|
|
|
|
wsbenum.h
|
|
|
|
Abstract:
|
|
|
|
These classes provides enumerators (iterators) for the collection classes.
|
|
|
|
Author:
|
|
|
|
Chuck Bardeen [cbardeen] 29-Oct-1996
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "resource.h" // main symbols
|
|
|
|
#if !defined WSBENUM_INCL
|
|
#define WSBENUM_INCL
|
|
|
|
class CWsbIndexedEnum :
|
|
public IEnumUnknown,
|
|
public IWsbEnum,
|
|
public IWsbEnumEx,
|
|
public CComObjectRoot,
|
|
public CComCoClass<CWsbIndexedEnum,&CLSID_CWsbIndexedEnum>
|
|
{
|
|
public:
|
|
CWsbIndexedEnum() {}
|
|
BEGIN_COM_MAP(CWsbIndexedEnum)
|
|
COM_INTERFACE_ENTRY(IWsbEnum)
|
|
COM_INTERFACE_ENTRY(IWsbEnumEx)
|
|
COM_INTERFACE_ENTRY(IEnumUnknown)
|
|
END_COM_MAP()
|
|
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CWsbIndexedEnum)
|
|
|
|
// CComObjectRoot
|
|
public:
|
|
STDMETHOD(FinalConstruct)(void);
|
|
|
|
// IWsbEnum
|
|
public:
|
|
STDMETHOD(First)(REFIID riid, void** ppElement);
|
|
STDMETHOD(Next)(REFIID riid, void** ppElement);
|
|
STDMETHOD(This)(REFIID riid, void** ppElement);
|
|
STDMETHOD(Previous)(REFIID riid, void** ppElement);
|
|
STDMETHOD(Last)(REFIID riid, void** ppElement);
|
|
|
|
STDMETHOD(FindNext)(IUnknown* pCollectable, REFIID riid, void** ppElement);
|
|
STDMETHOD(Find)(IUnknown* pCollectable, REFIID riid, void** ppElements);
|
|
STDMETHOD(FindPrevious)(IUnknown* pCollectable, REFIID riid, void** ppElement);
|
|
|
|
STDMETHOD(SkipToFirst)(void);
|
|
STDMETHOD(SkipNext)(ULONG element);
|
|
STDMETHOD(SkipTo)(ULONG index);
|
|
STDMETHOD(SkipPrevious)(ULONG element);
|
|
STDMETHOD(SkipToLast)(void);
|
|
|
|
STDMETHOD(Init)(IWsbCollection* pCollection);
|
|
STDMETHOD(Clone)(IWsbEnum** ppEnum);
|
|
|
|
// IWsbEnumEx
|
|
public:
|
|
STDMETHOD(First)(ULONG element, REFIID riid, void** elements, ULONG* pElementsFetched);
|
|
STDMETHOD(Next)(ULONG element, REFIID riid, void** elements, ULONG* pElementsFetched);
|
|
STDMETHOD(This)(ULONG element, REFIID riid, void** elements, ULONG* pElementsFetched);
|
|
STDMETHOD(Previous)(ULONG element, REFIID riid, void** elements, ULONG* pElementsFetched);
|
|
STDMETHOD(Last)(ULONG element, REFIID riid, void** elements, ULONG* pElementsFetched);
|
|
|
|
STDMETHOD(FindNext)(IUnknown* pCollectable, ULONG element, REFIID riid, void** elements, ULONG* elementsFetched);
|
|
STDMETHOD(Find)(IUnknown* pCollectable, ULONG element, REFIID riid, void** elements, ULONG* elementsFetched);
|
|
STDMETHOD(FindPrevious)(IUnknown* pCollectable, ULONG element, REFIID riid, void** elements, ULONG* elementsFetched);
|
|
|
|
STDMETHOD(Clone)(IWsbEnumEx** ppEnum);
|
|
|
|
// IEnumUnknown
|
|
public:
|
|
STDMETHOD(Next)(ULONG element, IUnknown** elements, ULONG* pElementsFetched);
|
|
STDMETHOD(Skip)(ULONG element);
|
|
STDMETHOD(Clone)(IEnumUnknown** ppEnum);
|
|
|
|
// Shared
|
|
public:
|
|
STDMETHOD(Reset)(void);
|
|
|
|
protected:
|
|
CComPtr<IWsbIndexedCollection> m_pCollection;
|
|
ULONG m_currentIndex;
|
|
};
|
|
|
|
#endif |