Leaked source code of windows server 2003
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.

78 lines
1.9 KiB

  1. #define PARENTTYPE_CIF 0
  2. #define PARENTTYPE_GROUP 1
  3. #define PARENTTYPE_MODE 2
  4. // 0 = CCifCile, 1 = CCifGroup, 2 = CCifMode
  5. class CCifEntryEnum
  6. {
  7. public:
  8. CCifEntryEnum(UINT dwFilter, UINT dwParentType, LPSTR pszParentID);
  9. ~CCifEntryEnum();
  10. protected:
  11. UINT _cRef;
  12. UINT _uIndex;
  13. char _szParentID[MAX_ID_LENGTH];
  14. UINT _uFilter;
  15. UINT _uParentType; // 0 = CCifCile, 1 = CCifGroup, 2 = CCifMode
  16. };
  17. class CCifComponentEnum : public CCifEntryEnum, public IEnumCifComponents
  18. {
  19. public:
  20. CCifComponentEnum(CCifComponent **pp, UINT dwFilter, UINT dwParentType, LPSTR pszParentID);
  21. ~CCifComponentEnum();
  22. // *** IUnknown methods ***
  23. STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppvObj);
  24. STDMETHOD_(ULONG,AddRef) ();
  25. STDMETHOD_(ULONG,Release) ();
  26. // enum methods
  27. STDMETHOD(Next)(ICifComponent **);
  28. STDMETHOD(Reset)();
  29. private:
  30. CCifComponent **_rpComp;
  31. };
  32. class CCifGroupEnum : public CCifEntryEnum, public IEnumCifGroups
  33. {
  34. public:
  35. CCifGroupEnum(CCifGroup **pp, UINT dwFilter);
  36. ~CCifGroupEnum();
  37. // *** IUnknown methods ***
  38. STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppvObj);
  39. STDMETHOD_(ULONG,AddRef) ();
  40. STDMETHOD_(ULONG,Release) ();
  41. // enum methods
  42. STDMETHOD(Next)(ICifGroup **);
  43. STDMETHOD(Reset)();
  44. private:
  45. CCifGroup **_rpGroup;
  46. };
  47. class CCifModeEnum : public CCifEntryEnum, public IEnumCifModes
  48. {
  49. public:
  50. CCifModeEnum(CCifMode **pp, UINT dwFilter);
  51. ~CCifModeEnum();
  52. // *** IUnknown methods ***
  53. STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppvObj);
  54. STDMETHOD_(ULONG,AddRef) ();
  55. STDMETHOD_(ULONG,Release) ();
  56. // enum methods
  57. STDMETHOD(Next)(ICifMode **);
  58. STDMETHOD(Reset)();
  59. private:
  60. CCifMode **_rpMode;
  61. };