WindowsXP-SP1/admin/wmi/wbem/scripting/site.h
2020-09-30 16:53:49 +02:00

112 lines
2.3 KiB
C++

//***************************************************************************
//
// Copyright (c) 1998-1999 Microsoft Corporation
//
// site.h
//
// alanbos 13-Feb-98 Created.
//
// Defines site information for an object
//
//***************************************************************************
#ifndef _SITE_H_
#define _SITE_H_
class CSWbemObject;
class CSWbemProperty;
//***************************************************************************
//
// CLASS NAME:
//
// CWbemSite
//
// DESCRIPTION:
//
// Abstract base class
//
//***************************************************************************
class CWbemSite
{
protected:
CWbemSite () { m_cRef = 1; }
long m_cRef;
public:
virtual ~CWbemSite (void) { }
virtual void Update () = 0;
ULONG AddRef ();
ULONG Release ();
};
//***************************************************************************
//
// CLASS NAME:
//
// CWbemObjectSite
//
// DESCRIPTION:
//
// Site class for ISWbemObject
//
//***************************************************************************
class CWbemObjectSite : public CWbemSite
{
private:
ISWbemInternalObject *m_pSWbemObject;
public:
CWbemObjectSite (ISWbemInternalObject *pObject);
~CWbemObjectSite ();
// Overriden methods of base class
void Update ();
};
//***************************************************************************
//
// CLASS NAME:
//
// CWbemPropertySite
//
// DESCRIPTION:
//
// Site class for ISWbemProperty, where the property is non-array valued.
// Embedded objects that are not in an array use this as their site.
//
//***************************************************************************
class CWbemPropertySite : public CWbemSite
{
private:
// The property representing the embedded object
CSWbemProperty *m_pSWbemProperty;
// The array index of the property value at which
// this embedded object occurs (or -1 if not array)
long m_index;
// The embedded object itself
IWbemClassObject *m_pIWbemClassObject;
public:
CWbemPropertySite (CSWbemProperty *pProperty,
IWbemClassObject *pSourceObject,
long index = -1);
~CWbemPropertySite ();
// Overriden methods of base class
void Update ();
};
#endif