Leaked source code of windows server 2003
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.
 
 
 
 
 
 

150 lines
3.2 KiB

/////////////////////////////////////////////////////////////////////
//
// CopyRight ( c ) 1999 Microsoft Corporation
//
// Module Name: dnsbase.cpp
//
// Description:
// Implementation of CDnsbase class
//
// Author:
// Henry Wang ( henrywa ) March 8, 2000
//
//
//////////////////////////////////////////////////////////////////////
#include "DnsWmi.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDnsBase::CDnsBase()
{
}
/////////////////////////////////////////////////////////////////////////////
//++
//
// CProvBase::CProvBase
//
// Description:
// constructor
//
// Arguments:
// wzName [IN] class name
// pNamespace [IN] WMI namespace
//
// Return Value:
// none
//
//--
/////////////////////////////////////////////////////////////////////////////
CDnsBase::CDnsBase(
const WCHAR * wzName,
CWbemServices * pNamespace)
:m_pNamespace(NULL),
m_pClass(NULL)
{
m_pNamespace = pNamespace;
BSTR bstrClass = SysAllocString(wzName);
SCODE sc;
if(bstrClass == NULL)
{
sc = WBEM_E_OUT_OF_MEMORY;
}
else
{
sc = m_pNamespace->GetObject(
bstrClass,
0,
0,
&m_pClass,
NULL);
SysFreeString(bstrClass);
}
// failed to construct object,
if( FAILED ( sc ) )
{
throw sc;
}
}
CDnsBase::~CDnsBase()
{
if(m_pClass)
m_pClass->Release();
}
/////////////////////////////////////////////////////////////////////////////
//++
//
// CDnsBase::PutInstance
//
// Description:
// default implementation of PutInstance
//
// Arguments:
// pInst [IN] WMI object to be saved
// lFlags [IN] WMI flag
// pCtx* [IN] WMI context
// pHandler* [IN] WMI sink pointer
//
// Return Value:
// WBEM_E_NOT_SUPPORTED
//
//--
/////////////////////////////////////////////////////////////////////////////
SCODE CDnsBase::PutInstance(
IWbemClassObject * pInst ,
long lFlags,
IWbemContext* pCtx ,
IWbemObjectSink * pHandler)
{
return WBEM_E_NOT_SUPPORTED;
};
/////////////////////////////////////////////////////////////////////////////
//++
//
// CProvBase::DeleteInstance
//
// Description:
// delete the instance pointed by ObjectPath
//
// Arguments:
// ObjectPath [IN] ObjPath for the instance to be deleted
// lFlags [IN] WMI flag
// pCtx* [IN] WMI context
// pHandler* [IN] WMI sink pointer
//
// Return Value:
// WBEM_E_NOT_SUPPORTED
//
//--
/////////////////////////////////////////////////////////////////////////////
SCODE CDnsBase::DeleteInstance(
CObjPath& ObjectPath,
long lFlags,
IWbemContext * pCtx,
IWbemObjectSink * pHandler)
{
return WBEM_E_NOT_SUPPORTED;
}
SCODE CDnsBase::ExecQuery(
CSqlEval* pSqlEval,
long lFlags,
IWbemContext * pCtx,
IWbemObjectSink * pHandler)
{
return EnumInstance(
lFlags,
pCtx,
pHandler);
}