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.

77 lines
2.4 KiB

  1. //=============================================================================
  2. //
  3. // Copyright (c) 1996-1999, Microsoft Corporation, All rights reserved
  4. //
  5. // STDTRIG.H
  6. //
  7. // This files defines the classes for event filters corresponding to standard
  8. // event filters the users will create
  9. //
  10. // Classes defined:
  11. //
  12. // CBuiltinEventFilter Base class for standard filters
  13. //
  14. // History:
  15. //
  16. // 11/27/96 a-levn Compiles
  17. //
  18. //=============================================================================
  19. #ifndef __BUILTIN_FILTER__H_
  20. #define __BUILTIN_FILTER__H_
  21. #include "eventrep.h"
  22. #include "binding.h"
  23. #include "aggreg.h"
  24. #include "filter.h"
  25. class CEssNamespace;
  26. class CPermanentFilter : public CGenericFilter
  27. {
  28. protected:
  29. CCompressedString* m_pcsQuery;
  30. CInternalString m_isEventNamespace;
  31. PSECURITY_DESCRIPTOR m_pEventAccessRelativeSD;
  32. SECURITY_DESCRIPTOR m_EventAccessAbsoluteSD;
  33. static long mstatic_lNameHandle;
  34. static long mstatic_lLanguageHandle;
  35. static long mstatic_lQueryHandle;
  36. static long mstatic_lEventNamespaceHandle;
  37. static long mstatic_lEventAccessHandle;
  38. static long mstatic_lSidHandle;
  39. static bool mstatic_bHandlesInitialized;
  40. static HRESULT InitializeHandles(_IWmiObject* pObject);
  41. protected:
  42. static SYSFREE_ME BSTR GetBSTR(READ_ONLY IWbemClassObject* pObject,
  43. READ_ONLY LPWSTR wszName);
  44. HRESULT RetrieveQuery(DELETE_ME LPWSTR& wszQuery);
  45. public:
  46. CPermanentFilter(CEssNamespace* pNamespace);
  47. HRESULT Initialize(IWbemClassObject* pFilterObj);
  48. virtual ~CPermanentFilter();
  49. BOOL IsPermanent() {return TRUE;}
  50. virtual HRESULT SetThreadSecurity( IUnknown** ppNewCtx )
  51. { *ppNewCtx = NULL; return S_OK; }
  52. HRESULT ObtainToken(IWbemToken** ppToken);
  53. virtual const PSECURITY_DESCRIPTOR GetEventAccessSD();
  54. virtual HRESULT GetCoveringQuery(DELETE_ME LPWSTR& wszQueryLanguage,
  55. DELETE_ME LPWSTR& wszQuery, BOOL& bExact,
  56. DELETE_ME QL_LEVEL_1_RPN_EXPRESSION** ppExp);
  57. virtual DWORD GetForceFlags() {return 0;}
  58. virtual HRESULT GetEventNamespace(DELETE_ME LPWSTR* pwszNamespace);
  59. static SYSFREE_ME BSTR ComputeKeyFromObj(IWbemClassObject* pFilterObj);
  60. static SYSFREE_ME BSTR ComputeKeyFromPath(LPCWSTR wszPath);
  61. static HRESULT CheckValidity( IWbemClassObject* pFilterObj);
  62. void Park();
  63. };
  64. #endif