mirror of https://github.com/tongzx/nt5src
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.
86 lines
2.2 KiB
86 lines
2.2 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1996.
|
|
//
|
|
// File: SvcQuery.hxx
|
|
//
|
|
// Contents: IInternalQuery interface for cisvc
|
|
//
|
|
// History: 13-Sep-96 dlee Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include <rowset.hxx>
|
|
#include <oldquery.hxx>
|
|
|
|
#include "queryunk.hxx"
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Class: CSvcQuery
|
|
//
|
|
// Purpose: IInternalQuery interface for cisvc
|
|
//
|
|
// History: 18-Jun-93 KyleP Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
class CSvcQuery : public PIInternalQuery
|
|
{
|
|
public:
|
|
|
|
//
|
|
// 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 * pUnkSpec );
|
|
|
|
//
|
|
// Local methods
|
|
//
|
|
|
|
CSvcQuery( WCHAR const * wcsMachine,
|
|
IDBProperties * pDbProperties );
|
|
|
|
BOOL IsQueryActive( ) { return _QueryUnknown.IsQueryActive(); }
|
|
|
|
private:
|
|
|
|
~CSvcQuery()
|
|
{
|
|
TRY
|
|
{
|
|
_client.Disconnect();
|
|
}
|
|
CATCH( CException, e )
|
|
{
|
|
// ignore failures in destruction -- maybe the server died
|
|
|
|
vqDebugOut(( DEB_WARN, "disconnect failed: error 0x%x\n",
|
|
e.GetErrorCode() ));
|
|
}
|
|
END_CATCH;
|
|
}
|
|
|
|
CQueryUnknown _QueryUnknown; // for reference tracking of rowsets
|
|
|
|
CRequestClient _client; // handles communication with cisvc
|
|
};
|
|
|