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.

68 lines
1.4 KiB

  1. // Copyright (c) 1997-1999 Microsoft Corporation
  2. // CWMIExtension.h: Definition of the CWMIExtension class and the CInner inner class
  3. // The inner class is used for implementation of the controlling
  4. // IUnknown only, needed for an aggregated object.
  5. //
  6. //////////////////////////////////////////////////////////////////////
  7. #ifndef _CWMIEXTENSION_H_
  8. #define _CWMIEXTENSION_H_
  9. class CInner;
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CWMIExtension
  12. class CWMIExtension : public IWMIExtension, public IADsExtension
  13. {
  14. public:
  15. DECLARE_IUnknown_METHODS
  16. DECLARE_IDispatch_METHODS
  17. DECLARE_IWMIExtension_METHODS
  18. DECLARE_IADsExtension_METHODS
  19. CWMIExtension::CWMIExtension();
  20. CWMIExtension::~CWMIExtension();
  21. static
  22. HRESULT
  23. CWMIExtension::CreateExtension(IUnknown *pUnkOuter, void **ppv);
  24. protected :
  25. ULONG m_cRef;
  26. IUnknown *m_pUnkOuter;
  27. IDispatch *m_pDispOuter;
  28. ITypeInfo *m_pTypeInfo;
  29. CInner *m_pInner;
  30. ISWbemLocator *m_pSWMILocator;
  31. BSTR m_bstrADsName;
  32. ISWbemServices *m_pSWMIServices;
  33. ISWbemObject *m_pSWMIObject;
  34. };
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CInner
  37. class CInner : public IUnknown
  38. {
  39. public :
  40. DECLARE_IUnknown_METHODS
  41. CInner::CInner(CWMIExtension *pOwner);
  42. CInner::~CInner();
  43. protected :
  44. ULONG m_cRef;
  45. CWMIExtension *m_pOwner;
  46. };
  47. #endif // _CWMIEXTENSION_H_