You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.2 KiB
82 lines
2.2 KiB
/*++
|
|
|
|
Module Name:
|
|
|
|
JPENum.h
|
|
|
|
Abstract:
|
|
|
|
This file contains the Declaration of the CJunctionPointEnum Class.
|
|
This class implements IEnumVARIANT for DfsJunctionPoint enumeration.
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef __JPENUM_H_
|
|
#define __JPENUM_H_
|
|
|
|
#include "resource.h" // main symbols
|
|
#include "DfsRoot.h"
|
|
|
|
class ATL_NO_VTABLE CJunctionPointEnum :
|
|
public CComObjectRootEx<CComMultiThreadModel>,
|
|
public CComCoClass<CJunctionPointEnum, &CLSID_JunctionPointEnum>,
|
|
public IEnumVARIANT
|
|
{
|
|
public:
|
|
CJunctionPointEnum()
|
|
{
|
|
}
|
|
|
|
~CJunctionPointEnum();
|
|
|
|
// DECLARE_REGISTRY_RESOURCEID(IDR_JPENUM)
|
|
|
|
BEGIN_COM_MAP(CJunctionPointEnum)
|
|
COM_INTERFACE_ENTRY(IEnumVARIANT)
|
|
END_COM_MAP()
|
|
|
|
public:
|
|
// Call this to initialise.
|
|
STDMETHOD( Initialize )
|
|
(
|
|
JUNCTIONNAMELIST* i_pjiList,
|
|
FILTERDFSLINKS_TYPE i_lLinkFilterType,
|
|
BSTR i_bstrEnumFilter, // Filtering string expresseion
|
|
ULONG* o_pulCount = NULL // count of links that matches the filter
|
|
);
|
|
|
|
// IEnumVariant
|
|
public:
|
|
//Get next Junction point
|
|
STDMETHOD(Next)
|
|
(
|
|
ULONG i_ulNumOfJunctionPoints,
|
|
VARIANT * o_pIJunctionPointArray,
|
|
ULONG * o_ulNumOfJunctionPointsFetched
|
|
);
|
|
|
|
//Skip junction points
|
|
STDMETHOD(Skip)
|
|
(
|
|
unsigned long i_ulJunctionPointsToSkip
|
|
);
|
|
|
|
//Reset enumeration.
|
|
STDMETHOD(Reset)();
|
|
|
|
//Clone a Enumerator.
|
|
STDMETHOD(Clone)
|
|
(
|
|
IEnumVARIANT FAR* FAR* ppenum
|
|
);
|
|
|
|
protected:
|
|
void _FreeMemberVariables() {
|
|
FreeJunctionNames(&m_JunctionPoints);
|
|
}
|
|
JUNCTIONNAMELIST::iterator m_iCurrentInEnumOfJunctionPoints; // Current pointer.
|
|
JUNCTIONNAMELIST m_JunctionPoints; // Stores the list of junction point entry path.
|
|
};
|
|
|
|
#endif //__JPENUM_H_
|