Leaked source code of windows server 2003
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.

96 lines
2.4 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. CTextLexSource *m_pLexerSrc;
  20. BOOL m_bParsed;
  21. CFlexArray m_aClassCache;
  22. CWQLParser *m_pParser;
  23. SWbemRpnEncodedQuery *m_pQuery;
  24. ULONG m_uRestrictedFeatures[WMIQ_LF_LAST];
  25. ULONG m_uRestrictedFeaturesSize;
  26. public:
  27. // IUnknown
  28. virtual ULONG STDMETHODCALLTYPE AddRef (void);
  29. virtual ULONG STDMETHODCALLTYPE Release (void);
  30. virtual HRESULT STDMETHODCALLTYPE QueryInterface (REFIID riid, void **ppv);
  31. // IWbemQuery
  32. virtual HRESULT STDMETHODCALLTYPE Empty( void);
  33. virtual HRESULT STDMETHODCALLTYPE SetLanguageFeatures(
  34. /* [in] */ ULONG uFlags,
  35. /* [in] */ ULONG uArraySize,
  36. /* [in] */ ULONG __RPC_FAR *puFeatures);
  37. virtual HRESULT STDMETHODCALLTYPE TestLanguageFeatures(
  38. /* [in] */ ULONG uFlags,
  39. /* [out][in] */ ULONG __RPC_FAR *uArraySize,
  40. /* [out] */ ULONG __RPC_FAR *puFeatures);
  41. virtual HRESULT STDMETHODCALLTYPE Parse(
  42. /* [in] */ LPCWSTR pszLang,
  43. /* [in] */ LPCWSTR pszQuery,
  44. /* [in] */ ULONG uFlags);
  45. virtual HRESULT STDMETHODCALLTYPE GetAnalysis(
  46. /* [in] */ ULONG uAnalysisType,
  47. /* [in] */ ULONG uFlags,
  48. /* [out] */ LPVOID __RPC_FAR *pAnalysis
  49. );
  50. virtual HRESULT STDMETHODCALLTYPE FreeMemory(
  51. LPVOID pMem
  52. );
  53. virtual HRESULT STDMETHODCALLTYPE GetQueryInfo(
  54. /* [in] */ ULONG uAnalysisType,
  55. /* [in] */ ULONG uInfoId,
  56. /* [in] */ ULONG uBufSize,
  57. /* [out] */ LPVOID pDestBuf);
  58. virtual HRESULT STDMETHODCALLTYPE Dump(LPSTR pszFile);
  59. CWmiQuery();
  60. void InitEmpty(); // Used by the CGenFactory<> class factory.
  61. static HRESULT Startup();
  62. static HRESULT Shutdown();
  63. static HRESULT CanUnload();
  64. private:
  65. ~CWmiQuery();
  66. };
  67. #endif