windows-nt/Source/XPSP1/NT/ds/dns/server/wmi/source/objectpath.h

344 lines
6.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999 Microsoft Corporation
//
// Module Name:
// objectpath.h
//
// Implementation File:
// objectpath.cpp
//
// Description:
// Definition of the CObjpath class and other common class.
//
// Author:
// Henry Wang (Henrywa) March 8, 2000
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "common.h"
#include <list>
#include <string>
#include "genlex.h" //wbem sdk header
#include "objpath.h" //wbem sdk header
using namespace std;
class CPropertyValue
{
public:
CPropertyValue();
CPropertyValue(
const CPropertyValue&
);
CPropertyValue& operator=(
const CPropertyValue&
);
virtual ~CPropertyValue();
wstring m_PropName;
VARIANT m_PropValue;
wstring m_Operator;
};
/////////////////////////////////////////////////////////////////////////////
//++
//
// class CObjPath
//
// Description:
// CObjpath class make it easier to work with Object path string
//
// Inheritance:
//
//
//--
/////////////////////////////////////////////////////////////////////////////
class CObjPath
{
public:
wstring GetObjectPathString();
BOOL SetProperty(
const WCHAR * wszName,
//string & strValue
const WCHAR * wszValue
);
BOOL AddProperty(
const WCHAR*,
string&
);
BOOL AddProperty(
const WCHAR * wszName,
const WCHAR * wszValue
);
BOOL AddProperty(
const WCHAR * wszName,
VARIANT * pvValue
);
BOOL AddProperty(
const WCHAR * wszName,
WORD wValue
);
BOOL SetServer(
const WCHAR *
);
BOOL SetNameSpace(
const WCHAR *wszValue
);
BOOL SetClass(
const WCHAR *wszValue
);
wstring GetStringValueForProperty(
const WCHAR* str
);
BOOL GetNumericValueForProperty(
const WCHAR * wszName,
WORD * wValue
);
wstring GetClassName(void);
BOOL Init(
const WCHAR* szObjPath
);
/* wstring m_Server;
wstring m_NameSpace;
wstring m_Class;
list<CPropertyValue> m_PropList;
*/
CObjPath();
CObjPath(
const CObjPath&
);
virtual ~CObjPath();
protected:
wstring m_Server;
wstring m_NameSpace;
wstring m_Class;
list<CPropertyValue> m_PropList;
};
class CDomainNode
{
public:
wstring wstrZoneName;
wstring wstrNodeName;
wstring wstrChildName;
CDomainNode();
~CDomainNode();
CDomainNode(
const CDomainNode&
);
};
/////////////////////////////////////////////////////////////////////////////
//++
//
// class CObjPath
//
// Description:
// base provider exception class
//
// Inheritance:
// exception
//
//--
/////////////////////////////////////////////////////////////////////////////
class CDnsProvException : public exception
{
public:
CDnsProvException(
const char* ,
DWORD = 0);
CDnsProvException();
~CDnsProvException();
CDnsProvException(
const CDnsProvException&
)
throw();
CDnsProvException& operator=(
const CDnsProvException&
) throw();
const char *what() const throw();
DWORD GetErrorCode(void);
protected:
string m_strError;
DWORD m_dwCode;
};
/////////////////////////////////////////////////////////////////////////////
//++
//
// class CObjPath
//
// Description:
// exception class specialized for set value exception
//
// Inheritance:
// CDnsProvException
//
//--
/////////////////////////////////////////////////////////////////////////////
class CDnsProvSetValueException : public CDnsProvException
{
public:
CDnsProvSetValueException();
~CDnsProvSetValueException();
CDnsProvSetValueException(
const WCHAR*
);
CDnsProvSetValueException(
const CDnsProvSetValueException& rhs
) throw();
CDnsProvSetValueException& operator=(
const CDnsProvSetValueException& rhs
) throw();
};
/////////////////////////////////////////////////////////////////////////////
//++
//
// class CObjPath
//
// Description:
// exception class specialized for get value exception
//
// Inheritance:
// CDnsProvException
//
//--
/////////////////////////////////////////////////////////////////////////////
class CDnsProvGetValueException : public CDnsProvException
{
public:
CDnsProvGetValueException();
~CDnsProvGetValueException();
CDnsProvGetValueException(
const WCHAR*
);
CDnsProvGetValueException(
const CDnsProvGetValueException& rhs
) throw();
CDnsProvGetValueException& operator=(
const CDnsProvGetValueException& rhs
) throw();
};
/////////////////////////////////////////////////////////////////////////////
//++
//
// class CWbemClassObject
//
// Description:
// Wrap for IWbemClassObject
//
//
// Inheritance:
//
//
//--
/////////////////////////////////////////////////////////////////////////////
class CWbemClassObject
{
protected:
IWbemClassObject* m_pClassObject;
VARIANT m_v;
public:
CWbemClassObject();
CWbemClassObject(IWbemClassObject*);
virtual ~CWbemClassObject();
IWbemClassObject** operator&();
SCODE SetProperty(
LPCSTR pszValue,
LPCWSTR wszPropName
);
SCODE SetProperty(
DWORD dwValue,
LPCWSTR wszPropName
);
SCODE SetProperty(
UCHAR ucValue,
LPCWSTR wszPropName
);
SCODE SetProperty(
LPCWSTR pszValue,
LPCWSTR wszPropName
);
SCODE SetProperty(
wstring & wstrValue,
LPCWSTR wszPropName
);
SCODE SetProperty(
SAFEARRAY * psa,
LPCWSTR wszPropName
);
SCODE SetProperty(
DWORD * pdwValue,
DWORD dwSize,
LPCWSTR wszPropName
);
SCODE GetProperty(
DWORD * dwValue,
LPCWSTR wszPropName
);
SCODE GetProperty(
wstring & wsStr,
LPCWSTR wszPropName
);
SCODE GetProperty(
string & strStr,
LPCWSTR wszPropName
);
SCODE GetProperty(
BOOL * bValue,
LPCWSTR szPropName
);
SCODE GetProperty(
SAFEARRAY** ,
LPCWSTR);
SCODE GetProperty(
DWORD ** ppValue,
DWORD * dwSize,
LPCWSTR szPropName
);
SCODE GetProperty(
DWORD Value[],
DWORD *dwSize,
LPCWSTR szPropName
);
SCODE GetProperty(
VARIANT * pv,
LPCWSTR wszPropName
);
SCODE GetMethod(
BSTR name,
LONG lFlag,
IWbemClassObject** ppIN,
IWbemClassObject** ppOut
);
SCODE SpawnInstance(
LONG,
IWbemClassObject**);
IWbemClassObject* data() { return m_pClassObject;};
};