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.

73 lines
1.9 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1993.
  5. //
  6. // File: ObjEnum.hxx
  7. //
  8. // Contents: Pure virtual class for object enumeration
  9. //
  10. // History: 25-Jul-93 KyleP Created
  11. //
  12. //--------------------------------------------------------------------------
  13. #pragma once
  14. class CCursor;
  15. //+-------------------------------------------------------------------------
  16. //
  17. // Class: CObjectEnum
  18. //
  19. // Purpose: Virtual base class for object enumerators
  20. //
  21. // History: 25-Jul-93 KyleP Created
  22. //
  23. // Notes: This class provides a true one-object-at-a-time enumerator
  24. // plus access to stat properties.
  25. //
  26. //--------------------------------------------------------------------------
  27. class CObjectEnum : INHERIT_VIRTUAL_UNWIND
  28. {
  29. INLINE_UNWIND( CObjectEnum );
  30. public:
  31. inline CObjectEnum();
  32. virtual inline ~CObjectEnum();
  33. //
  34. // Iterator
  35. //
  36. virtual WORKID NextObject() = 0;
  37. virtual void RatioFinished (ULONG& denom, ULONG& num) = 0;
  38. //
  39. // Stat properties.
  40. //
  41. virtual UNICODE_STRING const * GetName() = 0;
  42. virtual UNICODE_STRING const * GetPath() = 0;
  43. virtual LONGLONG CreateTime() = 0;
  44. virtual LONGLONG ModifyTime() = 0;
  45. virtual LONGLONG AccessTime() = 0;
  46. virtual LONGLONG ObjectSize() = 0;
  47. virtual ULONG Attributes() = 0;
  48. virtual WORKID WorkId() = 0;
  49. virtual ULONG Rank() = 0;
  50. virtual ULONG HitCount() = 0;
  51. virtual BYTE * GetCachedProperty(PROPID pid, ULONG *pcb) {return(NULL);}
  52. virtual CCursor * GetCursor() { return 0; }
  53. };
  54. inline CObjectEnum::CObjectEnum()
  55. {
  56. END_CONSTRUCTION( CObjectEnum );
  57. }
  58. inline CObjectEnum::~CObjectEnum()
  59. {
  60. }