Source code of Windows XP (NT5)
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.

76 lines
1.7 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1994.
  5. //
  6. // File: InvCur.hxx
  7. //
  8. // Contents: 'Invalid' cursor. Cursor over the pidUnfiltered property
  9. // based on a given widmap.
  10. //
  11. // Classes: CInvalidCursor
  12. //
  13. // History: 09-Nov-94 KyleP Created.
  14. //
  15. //----------------------------------------------------------------------------
  16. #pragma once
  17. #include <keycur.hxx>
  18. class CWidTable;
  19. class CUnfilteredCursor : public CKeyCursor
  20. {
  21. public:
  22. CUnfilteredCursor( INDEXID iid, WORKID widMax, CWidTable const & widtab );
  23. static int CompareAgainstUnfilteredKey( CKey const & key );
  24. //
  25. // From CCursor
  26. //
  27. virtual ULONG WorkIdCount();
  28. virtual WORKID WorkId();
  29. virtual WORKID NextWorkId();
  30. virtual ULONG HitCount();
  31. //
  32. // From COccCursor
  33. //
  34. virtual OCCURRENCE Occurrence();
  35. virtual OCCURRENCE NextOccurrence();
  36. virtual ULONG OccurrenceCount();
  37. //
  38. // From CKeyCursor
  39. //
  40. virtual const CKeyBuf * GetKey();
  41. virtual const CKeyBuf * GetNextKey();
  42. OCCURRENCE MaxOccurrence();
  43. void RatioFinished ( ULONG& denom, ULONG& num );
  44. private:
  45. CWidTable const & _widtab;
  46. unsigned _iCurrentFakeWid; // Current fake wid
  47. OCCURRENCE _occ; // Invalid after NextOccurrence
  48. BOOL _fAtEnd; // TRUE when out of wids
  49. BOOL _fKeyMoved; // TRUE after GetNextKey called
  50. static CKeyBuf _TheUnfilteredKey; // The only key available through cursor
  51. };