Source code of Windows XP (NT5)
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.

137 lines
4.7 KiB

  1. /*++
  2. Copyright (C) 1999-2001 Microsoft Corporation
  3. Module Name:
  4. Abstract:
  5. History:
  6. --*/
  7. #ifndef _PROVIDER__H_
  8. #define _PROVIDER__H_
  9. #include <windows.h>
  10. #include <hmmsvc.h>
  11. #include <genlex.h>
  12. #include <objpath.h>
  13. #include "baseloc.h"
  14. class CBaseProvider : public IHmmServices
  15. {
  16. protected:
  17. LONG m_cRef; //Object reference count
  18. IHmmServices * m_pNamespace;
  19. IHmmClassObject * m_pStatusClass;
  20. public:
  21. CBaseProvider(BSTR ObjectPath = NULL, BSTR User = NULL,
  22. BSTR Password = NULL);
  23. ~CBaseProvider();
  24. //Non-delegating object IUnknown
  25. STDMETHOD(QueryInterface)(REFIID, PPVOID);
  26. STDMETHOD_(ULONG, AddRef)(void);
  27. STDMETHOD_(ULONG, Release)(void);
  28. STDMETHOD(GetTypeInfoCount)(UINT* pctinfo){return HMM_E_NOT_SUPPORTED;};
  29. STDMETHOD(GetTypeInfo)(
  30. THIS_
  31. UINT itinfo,
  32. LCID lcid,
  33. ITypeInfo** pptinfo){return HMM_E_NOT_SUPPORTED;};
  34. STDMETHOD(GetIDsOfNames)(
  35. THIS_
  36. REFIID riid,
  37. OLECHAR** rgszNames,
  38. UINT cNames,
  39. LCID lcid,
  40. DISPID* rgdispid){return HMM_E_NOT_SUPPORTED;};
  41. STDMETHOD(Invoke)(
  42. THIS_
  43. DISPID dispidMember,
  44. REFIID riid,
  45. LCID lcid,
  46. WORD wFlags,
  47. DISPPARAMS* pdispparams,
  48. VARIANT* pvarResult,
  49. EXCEPINFO* pexcepinfo,
  50. UINT* puArgErr){return HMM_E_NOT_SUPPORTED;};
  51. //IHmmServices
  52. STDMETHOD(OpenNamespace)(BSTR Namespace, long lFlags,
  53. IHmmServices** ppNewContext,
  54. IHmmClassObject** ppErrorObject) {return HMM_E_NOT_SUPPORTED;}
  55. STDMETHOD(CancelAsyncRequest)(long lAsyncRequestHandle)
  56. {return HMM_E_NOT_SUPPORTED;};
  57. STDMETHOD(QueryObjectSink)(IHmmObjectSink** ppResponseHandler,
  58. IHmmClassObject** ppErrorObject){return HMM_E_NOT_SUPPORTED;};
  59. STDMETHOD(GetObject)(BSTR ObjectPath, long lFlags,
  60. IHmmClassObject** ppObject, IHmmClassObject** ppErrorObject)
  61. {return HMM_E_NOT_SUPPORTED;}
  62. STDMETHOD(GetObjectAsync)(BSTR ObjectPath, long lFlags,
  63. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle);
  64. STDMETHOD(PutClass)(IHmmClassObject* pObject, long lFlags,
  65. IHmmClassObject** ppErrorObject){return HMM_E_NOT_SUPPORTED;};
  66. STDMETHOD(PutClassAsync)(IHmmClassObject* pObject, long lFlags,
  67. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle)
  68. {return HMM_E_NOT_SUPPORTED;};
  69. STDMETHOD(DeleteClass)(BSTR Class, long lFlags,
  70. IHmmClassObject** ppErrorObject){return HMM_E_NOT_SUPPORTED;};
  71. STDMETHOD(DeleteClassAsync)(BSTR Class, long lFlags,
  72. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle)
  73. {return HMM_E_NOT_SUPPORTED;};
  74. STDMETHOD(CreateClassEnum)(BSTR Superclass, long lFlags,
  75. IEnumHmmClassObject** ppEnum, IHmmClassObject** ppErrorObject)
  76. {return HMM_E_NOT_SUPPORTED;};
  77. STDMETHOD(CreateClassEnumAsync)(BSTR Superclass, long lFlags,
  78. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle)
  79. {return HMM_E_NOT_SUPPORTED;};
  80. STDMETHOD(PutInstance)(IHmmClassObject* pInst, long lFlags,
  81. IHmmClassObject** ppErrorObject);
  82. STDMETHOD(PutInstanceAsync)(IHmmClassObject* pInst, long lFlags,
  83. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle)
  84. {return HMM_E_NOT_SUPPORTED;};
  85. STDMETHOD(DeleteInstance)(BSTR ObjectPath, long lFlags,
  86. IHmmClassObject** ppErrorObject){return HMM_E_NOT_SUPPORTED;};
  87. STDMETHOD(DeleteInstanceAsync)(BSTR ObjectPath, long lFlags,
  88. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle)
  89. {return HMM_E_NOT_SUPPORTED;};
  90. STDMETHOD(CreateInstanceEnum)(BSTR Class, long lFlags,
  91. IEnumHmmClassObject** ppEnum, IHmmClassObject** ppErrorObject)
  92. {return HMM_E_NOT_SUPPORTED;}
  93. STDMETHOD(CreateInstanceEnumAsync)(BSTR Class, long lFlags,
  94. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle);
  95. STDMETHOD(ExecQuery)(BSTR QueryLanguage, BSTR Query, long lFlags,
  96. IEnumHmmClassObject** ppEnum, IHmmClassObject** ppErrorObject)
  97. {return HMM_E_NOT_SUPPORTED;}
  98. STDMETHOD(ExecQueryAsync)(BSTR QueryFormat, BSTR Query, long lFlags,
  99. IHmmObjectSink* pResponseHandler, long* plAsyncRequestHandle);
  100. public: //helpers
  101. HRESULT StuffErrorCode(HRESULT hCode, IHmmObjectSink* pSink);
  102. protected: // override
  103. virtual HRESULT EnumInstances(BSTR strClass, long lFlags,
  104. IHmmObjectSink* pHandler) = 0;
  105. virtual HRESULT GetInstance(ParsedObjectPath* pPath, long lFlags,
  106. IHmmClassObject** ppInstance) = 0;
  107. };
  108. #endif