92 lines
2.4 KiB
C++
92 lines
2.4 KiB
C++
|
//+---------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1995.
|
||
|
//
|
||
|
// File: DisQuery.hxx
|
||
|
//
|
||
|
// Contents: PIInternalQuery for distributed implementation.
|
||
|
//
|
||
|
// Classes: CDistributedQuery
|
||
|
//
|
||
|
// History: 05-Jun-95 KyleP Created
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <oldquery.hxx>
|
||
|
|
||
|
//+---------------------------------------------------------------------------
|
||
|
//
|
||
|
// Class: CDistributedQuery
|
||
|
//
|
||
|
// Purpose: IInternalQuery for distributed implementation.
|
||
|
//
|
||
|
// History: 07-Jun-95 KyleP Created.
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
class CDistributedQuery : INHERIT_VIRTUAL_UNWIND, public PIInternalQuery
|
||
|
{
|
||
|
INLINE_UNWIND( CDistributedQuery )
|
||
|
public:
|
||
|
|
||
|
CDistributedQuery( unsigned cChild );
|
||
|
|
||
|
//
|
||
|
// IUnknown methods.
|
||
|
//
|
||
|
|
||
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void ** ppvObj);
|
||
|
STDMETHOD_(ULONG,AddRef) (THIS);
|
||
|
STDMETHOD_(ULONG,Release) (THIS);
|
||
|
|
||
|
void Execute (IUnknown * pUnkOuter,
|
||
|
RESTRICTION * pRestriction,
|
||
|
CPidMapperWithNames & PidMap,
|
||
|
CColumnSet & rColumns,
|
||
|
CSortSet & rSort,
|
||
|
XPtr<CMRowsetProps> & xRstProps,
|
||
|
CCategorizationSet & rCateg,
|
||
|
ULONG cRowsets,
|
||
|
IUnknown ** ppUnknowns,
|
||
|
CAccessorBag & aAccessors,
|
||
|
IUnknown * pUnkCreator = 0);
|
||
|
|
||
|
BOOL IsQueryActive( ) { return _aChild[0]->IsQueryActive(); }
|
||
|
|
||
|
//
|
||
|
// Local methods
|
||
|
//
|
||
|
|
||
|
inline void Add( PIInternalQuery * pQuery, unsigned pos );
|
||
|
|
||
|
private:
|
||
|
|
||
|
~CDistributedQuery();
|
||
|
|
||
|
XArray<PIInternalQuery *> _aChild;
|
||
|
};
|
||
|
|
||
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// Member: CDistributedQuery::Add, public
|
||
|
//
|
||
|
// Synopsis: Add child node to distributed query.
|
||
|
//
|
||
|
// Arguments: [pQuery] -- Child query.
|
||
|
// [pos] -- Position to add.
|
||
|
//
|
||
|
// History: 07-Jun-95 KyleP Created
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
inline void CDistributedQuery::Add( PIInternalQuery * pQuery, unsigned pos )
|
||
|
{
|
||
|
Win4Assert( 0 == _aChild[pos] );
|
||
|
|
||
|
_aChild[pos] = pQuery;
|
||
|
}
|
||
|
|