Source code of Windows XP (NT5)
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.

101 lines
2.8 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1998.
  5. //
  6. // File: StdQSpec.hxx
  7. //
  8. // Contents: IQuery for file-based queries
  9. //
  10. // Classes: CQuerySpec
  11. //
  12. // History: 30 Jun 1995 AlanW Created
  13. //
  14. //----------------------------------------------------------------------------
  15. #pragma once
  16. #include "qryspec.hxx"
  17. #define SCOPE_PROPSET_COUNT 2
  18. #define INITIAL_PROPERTIES_COUNT 16
  19. //+---------------------------------------------------------------------------
  20. //
  21. // Class: CQuerySpec
  22. //
  23. // Purpose: Query spec for scope-based queries.
  24. //
  25. // History: 22-Feb-96 KyleP Created.
  26. // 14-May-97 mohamedn hide property details
  27. //
  28. //----------------------------------------------------------------------------
  29. class CQuerySpec : public CRootQuerySpec
  30. {
  31. public:
  32. CQuerySpec( IUnknown * pOuterUnk,
  33. IUnknown ** ppMyUnk,
  34. CDBSession * pSession = 0) :
  35. CRootQuerySpec(pOuterUnk, ppMyUnk, pSession)
  36. {
  37. //
  38. // All scope properties must be set via ICommandProperties::SetProperties().
  39. //
  40. InitScopePropertySets();
  41. }
  42. CQuerySpec( IUnknown * pOuterUnk,
  43. IUnknown ** ppMyUnk,
  44. ICiCDocStore * pDocStore );
  45. //
  46. // ICommandProperties methods
  47. //
  48. STDMETHOD(GetProperties) ( const ULONG cPropertySetIDs,
  49. const DBPROPIDSET rgPropertySetIDs[],
  50. ULONG * pcPropertySets,
  51. DBPROPSET ** prgPropertySets);
  52. STDMETHOD(SetProperties) ( ULONG cPropertySets,
  53. DBPROPSET rgPropertySets[]);
  54. protected:
  55. //
  56. // From CRootQuerySpec
  57. //
  58. PIInternalQuery * QueryInternalQuery( );
  59. private:
  60. void InitScopePropertySets();
  61. //
  62. // Don't use default copy ctor. Generate C2558 if copy ctor is used.
  63. //
  64. CQuerySpec ( CQuerySpec & src ) : CRootQuerySpec( src )
  65. {
  66. Win4Assert( !"CQuerySpec Constructor - NotImplemented" );
  67. }
  68. void SetPropertyset( DBPROPSET *rgPropertySet );
  69. void UpdatePropertySet( DBPROPSET &destPropSet, DBPROPSET &srcPropSet );
  70. void GetPropValues( DBPROPIDSET const & rgPropertySetIDs,
  71. DBPROPSET & rgPropertySet,
  72. BOOL & fFoundErrors );
  73. DBPROPSET _aPropSet[SCOPE_PROPSET_COUNT];
  74. XArrayOLEInPlace<CDbProp> _aCoreProps;
  75. XArrayOLEInPlace<CDbProp> _aFsClientProps;
  76. XInterface<ICiCDocStore> _xDocStore; // Doc store, if known
  77. };