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.
79 lines
1.9 KiB
79 lines
1.9 KiB
#define PARENTTYPE_CIF 0
|
|
#define PARENTTYPE_GROUP 1
|
|
#define PARENTTYPE_MODE 2
|
|
|
|
// 0 = CCifCile, 1 = CCifGroup, 2 = CCifMode
|
|
|
|
|
|
class CCifEntryEnum
|
|
{
|
|
public:
|
|
CCifEntryEnum(UINT dwFilter, UINT dwParentType, LPSTR pszParentID);
|
|
~CCifEntryEnum();
|
|
|
|
protected:
|
|
UINT _cRef;
|
|
UINT _uIndex;
|
|
char _szParentID[MAX_ID_LENGTH];
|
|
UINT _uFilter;
|
|
UINT _uParentType; // 0 = CCifCile, 1 = CCifGroup, 2 = CCifMode
|
|
|
|
};
|
|
|
|
class CCifComponentEnum : public CCifEntryEnum, public IEnumCifComponents
|
|
{
|
|
public:
|
|
CCifComponentEnum(CCifComponent **pp, UINT dwFilter, UINT dwParentType, LPSTR pszParentID);
|
|
~CCifComponentEnum();
|
|
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) ();
|
|
STDMETHOD_(ULONG,Release) ();
|
|
|
|
// enum methods
|
|
STDMETHOD(Next)(ICifComponent **);
|
|
STDMETHOD(Reset)();
|
|
private:
|
|
CCifComponent **_rpComp;
|
|
};
|
|
|
|
class CCifGroupEnum : public CCifEntryEnum, public IEnumCifGroups
|
|
{
|
|
public:
|
|
CCifGroupEnum(CCifGroup **pp, UINT dwFilter);
|
|
~CCifGroupEnum();
|
|
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) ();
|
|
STDMETHOD_(ULONG,Release) ();
|
|
|
|
// enum methods
|
|
STDMETHOD(Next)(ICifGroup **);
|
|
STDMETHOD(Reset)();
|
|
private:
|
|
CCifGroup **_rpGroup;
|
|
};
|
|
|
|
class CCifModeEnum : public CCifEntryEnum, public IEnumCifModes
|
|
{
|
|
public:
|
|
CCifModeEnum(CCifMode **pp, UINT dwFilter);
|
|
~CCifModeEnum();
|
|
|
|
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) ();
|
|
STDMETHOD_(ULONG,Release) ();
|
|
|
|
// enum methods
|
|
STDMETHOD(Next)(ICifMode **);
|
|
STDMETHOD(Reset)();
|
|
private:
|
|
CCifMode **_rpMode;
|
|
};
|
|
|