216 lines
3.6 KiB
C++
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;
|
|
}
|