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.
178 lines
4.9 KiB
178 lines
4.9 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1991 - 2000.
|
|
//
|
|
// File: Cursor.Hxx
|
|
//
|
|
// Contents: Cursor classes
|
|
//
|
|
// Classes: CCursor - 'The mother of all cursors'
|
|
//
|
|
// History: 15-Apr-91 KyleP Created.
|
|
// 26-Sep-91 BartoszM Rewrote
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#ifdef DISPLAY_INCLUDES
|
|
#pragma message( "#include <" __FILE__ ">..." )
|
|
#endif
|
|
|
|
#define rankInvalid (MAX_QUERY_RANK+1)
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Class: CCursor
|
|
//
|
|
// Purpose: The root class for all cursors
|
|
//
|
|
// Interface:
|
|
//
|
|
// History: 15-Apr-91 KyleP Created.
|
|
// 26-Sep-91 BartoszM Rewrote
|
|
// 26-Feb-92 AmyA Added HitCount().
|
|
// 13-Mar-92 AmyA Added Rank().
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
class CCursor
|
|
{
|
|
public:
|
|
|
|
CCursor ( INDEXID iid, PROPID pid );
|
|
|
|
CCursor ( INDEXID iid );
|
|
|
|
CCursor ();
|
|
|
|
virtual ~CCursor();
|
|
|
|
INDEXID IndexId ();
|
|
|
|
PROPID Pid ();
|
|
|
|
virtual ULONG WorkIdCount();
|
|
|
|
virtual WORKID WorkId() = 0;
|
|
|
|
virtual WORKID NextWorkId() = 0;
|
|
|
|
virtual ULONG HitCount() = 0;
|
|
|
|
virtual LONG Rank() = 0;
|
|
|
|
LONG GetWeight() { return _weight; }
|
|
|
|
void SetWeight(LONG wt) { _weight = wt; }
|
|
|
|
virtual ULONG GetRankVector( LONG * plVector, ULONG cElements );
|
|
|
|
virtual LONG Hit() { return rankInvalid; }
|
|
virtual LONG NextHit() { return rankInvalid; }
|
|
virtual BOOL IsEmpty() { return WorkId() == widInvalid; }
|
|
virtual void RatioFinished ( ULONG& denom, ULONG& num ) = 0;
|
|
|
|
BOOL IsUnfilteredOnly() const
|
|
{
|
|
return _fUnfilteredOnly;
|
|
}
|
|
|
|
void SetUnfilteredOnly( BOOL fUnfilteredOnly = TRUE )
|
|
{
|
|
_fUnfilteredOnly = fUnfilteredOnly;
|
|
}
|
|
|
|
#ifdef CIEXTMODE
|
|
void CiExtDump(void *ciExtSelf);
|
|
#endif
|
|
|
|
protected:
|
|
|
|
PROPID _pid;
|
|
|
|
INDEXID _iid;
|
|
|
|
LONG _weight;
|
|
|
|
BOOL _fUnfilteredOnly;
|
|
};
|
|
|
|
DECLARE_SMARTP( Cursor )
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CCursor::CCursor, public
|
|
//
|
|
// Synopsis:
|
|
//
|
|
// Arguments: [iid] -- index id
|
|
// [pid] -- property id
|
|
//
|
|
// History: 27-Sep-91 BartoszM Created.
|
|
// 23-Jun-92 MikeHew Added weight initialization.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
inline CCursor::CCursor ( INDEXID iid, PROPID pid )
|
|
: _iid(iid), _pid(pid), _weight(MAX_QUERY_RANK), _fUnfilteredOnly( FALSE )
|
|
{}
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CCursor::CCursor, public
|
|
//
|
|
// Synopsis:
|
|
//
|
|
// Arguments: [iid] -- index id
|
|
//
|
|
// History: 27-Sep-91 BartoszM Created.
|
|
// 23-Jun-92 MikeHew Added weight initialization.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
inline CCursor::CCursor ( INDEXID iid )
|
|
: _iid(iid), _weight(MAX_QUERY_RANK), _fUnfilteredOnly( FALSE ), _pid( pidInvalid )
|
|
{}
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CCursor::CCursor, public
|
|
//
|
|
// History: 27-Sep-91 BartoszM Created.
|
|
// 23-Jun-92 MikeHew Added weight initialization.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
inline CCursor::CCursor ()
|
|
: _weight(MAX_QUERY_RANK), _fUnfilteredOnly( FALSE ), _pid( pidInvalid )
|
|
{}
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CCursor::~CCursor, public
|
|
//
|
|
// History: 27-Sep-91 BartoszM Created.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
inline CCursor::~CCursor() { };
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CCursor::IndexId, public
|
|
//
|
|
// History: 27-Sep-91 BartoszM Created.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
inline INDEXID CCursor::IndexId () { return _iid; }
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Member: CCursor::Pid, public
|
|
//
|
|
// Returns: The property id of the current property
|
|
//
|
|
// History: 27-Sep-91 BartoszM Created.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
inline PROPID CCursor::Pid () { return _pid; }
|
|
|
|
|