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.
81 lines
2.9 KiB
81 lines
2.9 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1997.
|
|
//
|
|
// File: cmdprutl.hxx
|
|
//
|
|
// Contents: A wrapper for scope properties around ICommand
|
|
//
|
|
// History: 5-10-97 mohamedn created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
#pragma once
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Class: CGetCmdProps
|
|
//
|
|
// Purpose: A wrapper for scope properties around ICommand
|
|
//
|
|
// History: 05-12-97 mohamedn Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
class CGetCmdProps : INHERIT_UNWIND
|
|
{
|
|
INLINE_UNWIND( CGetCmdProps )
|
|
|
|
public:
|
|
|
|
CGetCmdProps( ICommand *pICommand );
|
|
|
|
void GetProperties();
|
|
ULONG GetCardinality() { return _cCardinality; }
|
|
void PopulateDbProps( IDBProperties *pIDBProperties, ULONG i = 0);
|
|
WCHAR const * GetCatalog(unsigned i = 0 ) const { return (_aCatalogs ? _aCatalogs[i] : 0); }
|
|
|
|
private:
|
|
|
|
void CreateNewPropSet ( ULONG * cPropSets, DBPROPSET ** ppPropSet, ULONG index);
|
|
void CopyPropertySet ( CDbPropSet &destPropSet, CDbPropSet &srcPropSet, ULONG index );
|
|
void CopyDbProp ( CDbProp & destProp, CDbProp & srcProp, ULONG index);
|
|
void ProcessPropSet ( DBPROPSET & propSet );
|
|
void ProcessDbInitPropSet ( DBPROPSET & propSet );
|
|
void ProcessCiFsExtPropSet ( DBPROPSET & propSet );
|
|
|
|
void SetCardinalityValue();
|
|
|
|
WCHAR const * GetMachine(unsigned i = 0 ) const { return (_aMachines ? _aMachines[i] : 0); }
|
|
|
|
WCHAR const ** GetScopes() const { return ((WCHAR const **)_aPaths); }
|
|
DWORD const * GetDepths() const { return (_aDepths ? _aDepths : 0); }
|
|
ULONG GetScopeCount() const { return _cScopes;}
|
|
CiMetaData GetQueryType() const { return _type; }
|
|
GUID const * GetClientGuid() const { return _fGuidValid ? &_clientGuid : 0; }
|
|
|
|
DWORD * _aDepths; // depths of scopes
|
|
WCHAR ** _aPaths; // path pointers
|
|
WCHAR ** _aCatalogs; // pointer to alternate catalog
|
|
CiMetaData _type;
|
|
|
|
ULONG _cDepths; // number of depths
|
|
ULONG _cScopes; // Number of scopes specified
|
|
ULONG _cCatalogs; // number of catalogs
|
|
ULONG _cMachines; // number of machines
|
|
ULONG _cGuids;
|
|
|
|
WCHAR ** _aMachines; // pointer to machines
|
|
GUID _clientGuid; // GUID of the client
|
|
BOOL _fGuidValid; // Set to TRUE if _clientGuid is valid
|
|
|
|
ULONG _cCardinality; // cardinality value
|
|
|
|
|
|
XArrayOLEInPlace<CDbPropSet> _xPropSet;
|
|
ULONG _cPropertySets;
|
|
XInterface<ICommandProperties> _xICmdProp;
|
|
};
|
|
|