79 lines
2.4 KiB
C
79 lines
2.4 KiB
C
|
//=============================================================================
|
||
|
//
|
||
|
// Copyright (c) 1996-1999, Microsoft Corporation, All rights reserved
|
||
|
//
|
||
|
// STDTRIG.H
|
||
|
//
|
||
|
// This files defines the classes for event filters corresponding to standard
|
||
|
// event filters the users will create
|
||
|
//
|
||
|
// Classes defined:
|
||
|
//
|
||
|
// CBuiltinEventFilter Base class for standard filters
|
||
|
//
|
||
|
// History:
|
||
|
//
|
||
|
// 11/27/96 a-levn Compiles
|
||
|
//
|
||
|
//=============================================================================
|
||
|
|
||
|
#ifndef __BUILTIN_FILTER__H_
|
||
|
#define __BUILTIN_FILTER__H_
|
||
|
|
||
|
#include "eventrep.h"
|
||
|
#include "binding.h"
|
||
|
#include "aggreg.h"
|
||
|
#include "filter.h"
|
||
|
|
||
|
class CEssNamespace;
|
||
|
class CPermanentFilter : public CGenericFilter
|
||
|
{
|
||
|
protected:
|
||
|
CCompressedString* m_pcsQuery;
|
||
|
CInternalString m_isEventNamespace;
|
||
|
|
||
|
PSECURITY_DESCRIPTOR m_pEventAccessRelativeSD;
|
||
|
SECURITY_DESCRIPTOR m_EventAccessAbsoluteSD;
|
||
|
|
||
|
static long mstatic_lNameHandle;
|
||
|
static long mstatic_lLanguageHandle;
|
||
|
static long mstatic_lQueryHandle;
|
||
|
static long mstatic_lEventNamespaceHandle;
|
||
|
static long mstatic_lEventAccessHandle;
|
||
|
static long mstatic_lSidHandle;
|
||
|
static bool mstatic_bHandlesInitialized;
|
||
|
static long mstatic_lGuardNamespaceHandle;
|
||
|
static long mstatic_lGuardHandle;
|
||
|
|
||
|
static HRESULT InitializeHandles(_IWmiObject* pObject);
|
||
|
protected:
|
||
|
static SYSFREE_ME BSTR GetBSTR(READ_ONLY IWbemClassObject* pObject,
|
||
|
READ_ONLY LPWSTR wszName);
|
||
|
HRESULT RetrieveQuery(DELETE_ME LPWSTR& wszQuery);
|
||
|
|
||
|
public:
|
||
|
CPermanentFilter(CEssNamespace* pNamespace);
|
||
|
HRESULT Initialize(IWbemClassObject* pFilterObj);
|
||
|
|
||
|
virtual ~CPermanentFilter();
|
||
|
|
||
|
BOOL IsPermanent() {return TRUE;}
|
||
|
virtual HRESULT SetThreadSecurity() {return S_OK;}
|
||
|
HRESULT ObtainToken(IWbemToken** ppToken);
|
||
|
|
||
|
virtual const PSECURITY_DESCRIPTOR GetEventAccessSD();
|
||
|
|
||
|
virtual HRESULT GetCoveringQuery(DELETE_ME LPWSTR& wszQueryLanguage,
|
||
|
DELETE_ME LPWSTR& wszQuery, BOOL& bExact,
|
||
|
DELETE_ME QL_LEVEL_1_RPN_EXPRESSION** ppExp);
|
||
|
virtual DWORD GetForceFlags() {return 0;}
|
||
|
virtual HRESULT GetEventNamespace(DELETE_ME LPWSTR* pwszNamespace);
|
||
|
static SYSFREE_ME BSTR ComputeKeyFromObj(IWbemClassObject* pFilterObj);
|
||
|
static SYSFREE_ME BSTR ComputeKeyFromPath(LPCWSTR wszPath);
|
||
|
static HRESULT CheckValidity( IWbemClassObject* pFilterObj);
|
||
|
|
||
|
void Park();
|
||
|
};
|
||
|
|
||
|
#endif
|