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.

97 lines
2.3 KiB

  1. //***************************************************************************
  2. //
  3. // WMIQUERY.H
  4. //
  5. // IWbemQuery, _IWmiQuery implementation
  6. //
  7. // raymcc 10-Apr-00 Created
  8. //
  9. //***************************************************************************
  10. #ifndef _WMIQUERY_H_
  11. #define _WMIQUERY_H_
  12. #include "genlex.h"
  13. #include "assocqp.h"
  14. #include "wqlnode.h"
  15. #include "wql.h"
  16. class CWmiQuery : public _IWmiQuery
  17. {
  18. ULONG m_uRefCount;
  19. CAssocQueryParser *m_pAssocParser;
  20. CTextLexSource *m_pLexerSrc;
  21. BOOL m_bParsed;
  22. CFlexArray m_aClassCache;
  23. CWQLParser *m_pParser;
  24. SWbemRpnEncodedQuery *m_pQuery;
  25. ULONG m_uRestrictedFeatures[WMIQ_LF_LAST];
  26. ULONG m_uRestrictedFeaturesSize;
  27. public:
  28. // IUnknown
  29. virtual ULONG STDMETHODCALLTYPE AddRef (void);
  30. virtual ULONG STDMETHODCALLTYPE Release (void);
  31. virtual HRESULT STDMETHODCALLTYPE QueryInterface (REFIID riid, void **ppv);
  32. // IWbemQuery
  33. virtual HRESULT STDMETHODCALLTYPE Empty( void);
  34. virtual HRESULT STDMETHODCALLTYPE SetLanguageFeatures(
  35. /* [in] */ ULONG uFlags,
  36. /* [in] */ ULONG uArraySize,
  37. /* [in] */ ULONG __RPC_FAR *puFeatures);
  38. virtual HRESULT STDMETHODCALLTYPE TestLanguageFeatures(
  39. /* [in] */ ULONG uFlags,
  40. /* [out][in] */ ULONG __RPC_FAR *uArraySize,
  41. /* [out] */ ULONG __RPC_FAR *puFeatures);
  42. virtual HRESULT STDMETHODCALLTYPE Parse(
  43. /* [in] */ LPCWSTR pszLang,
  44. /* [in] */ LPCWSTR pszQuery,
  45. /* [in] */ ULONG uFlags);
  46. virtual HRESULT STDMETHODCALLTYPE GetAnalysis(
  47. /* [in] */ ULONG uAnalysisType,
  48. /* [in] */ ULONG uFlags,
  49. /* [out] */ LPVOID __RPC_FAR *pAnalysis
  50. );
  51. virtual HRESULT STDMETHODCALLTYPE FreeMemory(
  52. LPVOID pMem
  53. );
  54. virtual HRESULT STDMETHODCALLTYPE GetQueryInfo(
  55. /* [in] */ ULONG uAnalysisType,
  56. /* [in] */ ULONG uInfoId,
  57. /* [in] */ ULONG uBufSize,
  58. /* [out] */ LPVOID pDestBuf);
  59. virtual HRESULT STDMETHODCALLTYPE Dump(LPSTR pszFile);
  60. CWmiQuery();
  61. void InitEmpty(); // Used by the CGenFactory<> class factory.
  62. static HRESULT Startup();
  63. static HRESULT Shutdown();
  64. static HRESULT CanUnload();
  65. private:
  66. ~CWmiQuery();
  67. };
  68. #endif