mirror of https://github.com/tongzx/nt5src
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.
111 lines
2.2 KiB
111 lines
2.2 KiB
//***************************************************************************
|
|
//
|
|
// 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
|