windows-nt/Source/XPSP1/NT/net/ias/mmc/nap/iasenumerableattributeinfo.cpp
2020-09-26 16:20:57 +08:00

216 lines
3.6 KiB
C++

//////////////////////////////////////////////////////////////////////////////
/*++
Copyright (C) Microsoft Corporation, 1998 - 1999
Module Name:
IASEnumerableAttributeInfo.cpp
Abstract:
Implementation file for the CEnumerableAttributeInfo class.
Revision History:
mmaguire 06/25/98 - created
--*/
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// BEGIN INCLUDES
//
// standard includes:
//
#include "Precompiled.h"
//
// where we can find declaration for main class in this file:
//
#include "IASEnumerableAttributeInfo.h"
//
// where we can find declarations needed in this file:
//
//
// END INCLUDES
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/*++
CEnumerableAttributeInfo::get_CountEnumerateID
--*/
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CEnumerableAttributeInfo::get_CountEnumerateID(long * pVal)
{
// Check for preconditions:
if( pVal == NULL )
{
return E_INVALIDARG;
}
try
{
*pVal = m_veclEnumerateID.size();
}
catch(...)
{
return E_FAIL;
}
return S_OK;
}
//////////////////////////////////////////////////////////////////////////////
/*++
CEnumerableAttributeInfo::get_EnumerateID
--*/
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CEnumerableAttributeInfo::get_EnumerateID(long index, long * pVal)
{
// Check for preconditions:
if( pVal == NULL )
{
return E_INVALIDARG;
}
HRESULT hr = S_OK;
try
{
*pVal = m_veclEnumerateID[index] ;
}
catch(...)
{
return E_FAIL;
}
return hr;
}
//////////////////////////////////////////////////////////////////////////////
/*++
CEnumerableAttributeInfo::AddEnumerateID
--*/
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CEnumerableAttributeInfo::AddEnumerateID( long newVal)
{
// Check for preconditions:
// None.
HRESULT hr = S_OK;
try
{
m_veclEnumerateID.push_back( newVal );
}
catch(...)
{
return E_FAIL;
}
return hr;
}
//////////////////////////////////////////////////////////////////////////////
/*++
CEnumerableAttributeInfo::get_CountEnumerateDescription
--*/
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CEnumerableAttributeInfo::get_CountEnumerateDescription(long * pVal)
{
// Check for preconditions:
if( pVal == NULL )
{
return E_INVALIDARG;
}
try
{
*pVal = m_vecbstrEnumerateDescription.size();
}
catch(...)
{
return E_FAIL;
}
return S_OK;
}
//////////////////////////////////////////////////////////////////////////////
/*++
CEnumerableAttributeInfo::get_EnumerateDescription
--*/
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CEnumerableAttributeInfo::get_EnumerateDescription(long index, BSTR * pVal)
{
// Check for preconditions:
if( pVal == NULL )
{
return E_INVALIDARG;
}
try
{
*pVal = m_vecbstrEnumerateDescription[index].Copy();
}
catch(...)
{
return E_FAIL;
}
return S_OK;
}
//////////////////////////////////////////////////////////////////////////////
/*++
CEnumerableAttributeInfo::AddEnumerateDescription
--*/
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CEnumerableAttributeInfo::AddEnumerateDescription( BSTR newVal)
{
// Check for preconditions:
// None.
HRESULT hr = S_OK;
try
{
m_vecbstrEnumerateDescription.push_back( newVal );
}
catch(...)
{
return E_FAIL;
}
return hr;
}