windows-nt/Source/XPSP1/NT/inetsrv/query/cindex/invcur.hxx

77 lines
1.7 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+---------------------------------------------------------------------------
//
// 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
};