mirror of https://github.com/tongzx/nt5src
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.
78 lines
2.4 KiB
78 lines
2.4 KiB
//=============================================================================
|
|
//
|
|
// 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
|