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.

135 lines
3.4 KiB

  1. //***************************************************************************
  2. //
  3. // iisprov.h
  4. //
  5. // Module: WMI IIS Instance provider
  6. //
  7. // Purpose: Genral purpose include file.
  8. //
  9. // Copyright (c)1999 Microsoft Corporation, All Rights Reserved
  10. //
  11. //***************************************************************************
  12. #ifndef _iisprov_H_
  13. #define _iisprov_H_
  14. #include <windows.h>
  15. #include <wbemprov.h>
  16. #include <genlex.h>
  17. #include <opathlex.h>
  18. #include <objpath.h>
  19. #include <comdef.h>
  20. #include <stdio.h>
  21. #include "iisfiles.h"
  22. #include "ntrkcomm.h"
  23. #include "schema.h"
  24. #include "metabase.h"
  25. #include "certmap.h"
  26. #include "adminacl.h"
  27. #include "ipsecurity.h"
  28. #include "enum.h"
  29. #include "utils.h"
  30. // This is an instance qualifier of type bool. This specifies that the WMI
  31. // client wants child nodes to have their own copy of properties being
  32. // updated even if the properties are inherited from a parent node.
  33. #define WSZ_OVERRIDE_PARENT L"OverrideParent"
  34. // These variables keep track of when the module can be unloaded
  35. extern long g_cLock;
  36. // Provider interfaces are provided by objects of this class
  37. class CIISInstProvider : public CImpersonatedProvider
  38. {
  39. public:
  40. CIISInstProvider(
  41. BSTR ObjectPath = NULL,
  42. BSTR User = NULL,
  43. BSTR Password = NULL,
  44. IWbemContext* pCtx = NULL
  45. )
  46. {}
  47. HRESULT STDMETHODCALLTYPE DoDeleteInstanceAsync(
  48. /* [in] */ const BSTR, //ObjectPath,
  49. /* [in] */ long, // lFlags,
  50. /* [in] */ IWbemContext __RPC_FAR *, //pCtx,
  51. /* [in] */ IWbemObjectSink __RPC_FAR * //pResponseHandler
  52. );
  53. HRESULT STDMETHODCALLTYPE DoExecQueryAsync(
  54. /* [in] */ const BSTR, // QueryLanguage,
  55. /* [in] */ const BSTR, // Query,
  56. /* [in] */ long, // lFlags,
  57. /* [in] */ IWbemContext __RPC_FAR *, // pCtx,
  58. /* [in] */ IWbemObjectSink __RPC_FAR * //pResponseHandler
  59. )
  60. {return WBEM_E_NOT_SUPPORTED;};
  61. HRESULT STDMETHODCALLTYPE DoGetObjectAsync(
  62. /* [in] */ const BSTR,
  63. /* [in] */ long,
  64. /* [in] */ IWbemContext __RPC_FAR *,
  65. /* [in] */ IWbemObjectSink __RPC_FAR *
  66. ); // SUPPORTED
  67. HRESULT STDMETHODCALLTYPE DoPutInstanceAsync(
  68. IWbemClassObject __RPC_FAR *,
  69. long,
  70. IWbemContext __RPC_FAR *,
  71. IWbemObjectSink __RPC_FAR *
  72. );
  73. HRESULT STDMETHODCALLTYPE DoCreateInstanceEnumAsync(
  74. const BSTR,
  75. long,
  76. IWbemContext __RPC_FAR *,
  77. IWbemObjectSink __RPC_FAR *
  78. );
  79. HRESULT STDMETHODCALLTYPE DoExecMethodAsync(
  80. const BSTR,
  81. const BSTR,
  82. long,
  83. IWbemContext*,
  84. IWbemClassObject*,
  85. IWbemObjectSink*
  86. ) ;
  87. private:
  88. IWbemClassObject* SetExtendedStatus(WCHAR* a_psz);
  89. };
  90. // This class is the class factory for CInstPro objects.
  91. class CProvFactory : public IClassFactory
  92. {
  93. protected:
  94. ULONG m_cRef;
  95. public:
  96. CProvFactory(void);
  97. ~CProvFactory(void);
  98. //IUnknown members
  99. STDMETHODIMP QueryInterface(REFIID, PPVOID);
  100. STDMETHODIMP_(ULONG) AddRef(void);
  101. STDMETHODIMP_(ULONG) Release(void);
  102. //IClassFactory members
  103. STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, PPVOID);
  104. STDMETHODIMP LockServer(BOOL);
  105. };
  106. #endif