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

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1994.
//
// File: InvCur.hxx
//
// Contents: 'Invalid' cursor. Cursor over the pidUnfiltered property
// based on a given widmap.
//
// Classes: CInvalidCursor
//
// History: 09-Nov-94 KyleP Created.
//
//----------------------------------------------------------------------------
#pragma once
#include <keycur.hxx>
class CWidTable;
class CUnfilteredCursor : public CKeyCursor
{
public:
CUnfilteredCursor( INDEXID iid, WORKID widMax, CWidTable const & widtab );
static int CompareAgainstUnfilteredKey( CKey const & key );
//
// From CCursor
//
virtual ULONG WorkIdCount();
virtual WORKID WorkId();
virtual WORKID NextWorkId();
virtual ULONG HitCount();
//
// From COccCursor
//
virtual OCCURRENCE Occurrence();
virtual OCCURRENCE NextOccurrence();
virtual ULONG OccurrenceCount();
//
// From CKeyCursor
//
virtual const CKeyBuf * GetKey();
virtual const CKeyBuf * GetNextKey();
OCCURRENCE MaxOccurrence();
void RatioFinished ( ULONG& denom, ULONG& num );
private:
CWidTable const & _widtab;
unsigned _iCurrentFakeWid; // Current fake wid
OCCURRENCE _occ; // Invalid after NextOccurrence
BOOL _fAtEnd; // TRUE when out of wids
BOOL _fKeyMoved; // TRUE after GetNextKey called
static CKeyBuf _TheUnfilteredKey; // The only key available through cursor
};