windows-nt/Source/XPSP1/NT/admin/wmi/wbem/adapters/adsi/cwmiextension.h
2020-09-26 16:20:57 +08:00

69 lines
1.4 KiB
C++

// Copyright (c) 1997-1999 Microsoft Corporation
// CWMIExtension.h: Definition of the CWMIExtension class and the CInner inner class
// The inner class is used for implementation of the controlling
// IUnknown only, needed for an aggregated object.
//
//////////////////////////////////////////////////////////////////////
#ifndef _CWMIEXTENSION_H_
#define _CWMIEXTENSION_H_
class CInner;
/////////////////////////////////////////////////////////////////////////////
// CWMIExtension
class CWMIExtension : public IWMIExtension, public IADsExtension
{
public:
DECLARE_IUnknown_METHODS
DECLARE_IDispatch_METHODS
DECLARE_IWMIExtension_METHODS
DECLARE_IADsExtension_METHODS
CWMIExtension::CWMIExtension();
CWMIExtension::~CWMIExtension();
static
HRESULT
CWMIExtension::CreateExtension(IUnknown *pUnkOuter, void **ppv);
protected :
ULONG m_cRef;
IUnknown *m_pUnkOuter;
IDispatch *m_pDispOuter;
ITypeInfo *m_pTypeInfo;
CInner *m_pInner;
ISWbemLocator *m_pSWMILocator;
BSTR m_bstrADsName;
ISWbemServices *m_pSWMIServices;
ISWbemObject *m_pSWMIObject;
};
/////////////////////////////////////////////////////////////////////////////
// CInner
class CInner : public IUnknown
{
public :
DECLARE_IUnknown_METHODS
CInner::CInner(CWMIExtension *pOwner);
CInner::~CInner();
protected :
ULONG m_cRef;
CWMIExtension *m_pOwner;
};
#endif // _CWMIEXTENSION_H_