windows-nt/Source/XPSP1/NT/admin/wmi/wbem/common/wmiutils/wmiquery.h
2020-09-26 16:20:57 +08:00

98 lines
2.3 KiB
C++

//***************************************************************************
//
// WMIQUERY.H
//
// IWbemQuery, _IWmiQuery implementation
//
// raymcc 10-Apr-00 Created
//
//***************************************************************************
#ifndef _WMIQUERY_H_
#define _WMIQUERY_H_
#include "genlex.h"
#include "assocqp.h"
#include "wqlnode.h"
#include "wql.h"
class CWmiQuery : public _IWmiQuery
{
ULONG m_uRefCount;
CAssocQueryParser *m_pAssocParser;
CTextLexSource *m_pLexerSrc;
BOOL m_bParsed;
CFlexArray m_aClassCache;
CWQLParser *m_pParser;
SWbemRpnEncodedQuery *m_pQuery;
ULONG m_uRestrictedFeatures[WMIQ_LF_LAST];
ULONG m_uRestrictedFeaturesSize;
public:
// IUnknown
virtual ULONG STDMETHODCALLTYPE AddRef (void);
virtual ULONG STDMETHODCALLTYPE Release (void);
virtual HRESULT STDMETHODCALLTYPE QueryInterface (REFIID riid, void **ppv);
// IWbemQuery
virtual HRESULT STDMETHODCALLTYPE Empty( void);
virtual HRESULT STDMETHODCALLTYPE SetLanguageFeatures(
/* [in] */ ULONG uFlags,
/* [in] */ ULONG uArraySize,
/* [in] */ ULONG __RPC_FAR *puFeatures);
virtual HRESULT STDMETHODCALLTYPE TestLanguageFeatures(
/* [in] */ ULONG uFlags,
/* [out][in] */ ULONG __RPC_FAR *uArraySize,
/* [out] */ ULONG __RPC_FAR *puFeatures);
virtual HRESULT STDMETHODCALLTYPE Parse(
/* [in] */ LPCWSTR pszLang,
/* [in] */ LPCWSTR pszQuery,
/* [in] */ ULONG uFlags);
virtual HRESULT STDMETHODCALLTYPE GetAnalysis(
/* [in] */ ULONG uAnalysisType,
/* [in] */ ULONG uFlags,
/* [out] */ LPVOID __RPC_FAR *pAnalysis
);
virtual HRESULT STDMETHODCALLTYPE FreeMemory(
LPVOID pMem
);
virtual HRESULT STDMETHODCALLTYPE GetQueryInfo(
/* [in] */ ULONG uAnalysisType,
/* [in] */ ULONG uInfoId,
/* [in] */ ULONG uBufSize,
/* [out] */ LPVOID pDestBuf);
virtual HRESULT STDMETHODCALLTYPE Dump(LPSTR pszFile);
CWmiQuery();
void InitEmpty(); // Used by the CGenFactory<> class factory.
static HRESULT Startup();
static HRESULT Shutdown();
static HRESULT CanUnload();
private:
~CWmiQuery();
};
#endif