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.

65 lines
1.6 KiB

  1. // DriverPackagesEnum.h: Definition of the CDriverPackagesEnum class
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_DRIVERSENUM_H__840AC5A2_6A60_42B5_8CC7_FF67A2EA72B5__INCLUDED_)
  5. #define AFX_DRIVERSENUM_H__840AC5A2_6A60_42B5_8CC7_FF67A2EA72B5__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "resource.h" // main symbols
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CDriverPackagesEnum
  12. class CDriverPackage;
  13. class ATL_NO_VTABLE CDriverPackagesEnum :
  14. public IDriverPackagesEnum,
  15. public CComObjectRootEx<CComSingleThreadModel>
  16. {
  17. protected:
  18. CDriverPackage** pDrivers;
  19. DWORD Count;
  20. DWORD Position;
  21. public:
  22. BOOL CopyDrivers(CDriverPackage ** pArray,DWORD Count);
  23. CDriverPackagesEnum()
  24. {
  25. pDrivers = NULL;
  26. Count = 0;
  27. Position = 0;
  28. }
  29. ~CDriverPackagesEnum();
  30. BEGIN_COM_MAP(CDriverPackagesEnum)
  31. COM_INTERFACE_ENTRY(IEnumVARIANT)
  32. COM_INTERFACE_ENTRY(IDriverPackagesEnum)
  33. END_COM_MAP()
  34. DECLARE_NOT_AGGREGATABLE(CDriverPackagesEnum)
  35. // IDriverPackagesEnum
  36. public:
  37. STDMETHOD(Next)(
  38. /*[in]*/ ULONG celt,
  39. /*[out, size_is(celt), length_is(*pCeltFetched)]*/ VARIANT * rgVar,
  40. /*[out]*/ ULONG * pCeltFetched
  41. );
  42. STDMETHOD(Skip)(
  43. /*[in]*/ ULONG celt
  44. );
  45. STDMETHOD(Reset)(
  46. );
  47. STDMETHOD(Clone)(
  48. /*[out]*/ IEnumVARIANT ** ppEnum
  49. );
  50. };
  51. #endif // !defined(AFX_DRIVERSENUM_H__840AC5A2_6A60_42B5_8CC7_FF67A2EA72B5__INCLUDED_)