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

89 lines
2.4 KiB
C++

//////////////////////////////////////////////////////////////////////////////
/*++
Copyright (C) Microsoft Corporation, 1998 - 1999
Module Name:
IASEnumerableAttributeInfo.h
Abstract:
Declaration of the CEnumerableAttributeInfo class.
This class is the C++ implementation of the IIASEnumerableAttributeInfo interface on
the EnumerableAttributeInfo COM object.
See IASEnumerableAttributeInfo.cpp for implementation.
Revision History:
mmaguire 06/25/98 - created
--*/
//////////////////////////////////////////////////////////////////////////////
#if !defined(_ENUMERABLE_SCHEMA_ATTRIBUTE_H_)
#define _ENUMERABLE_SCHEMA_ATTRIBUTE_H_
//////////////////////////////////////////////////////////////////////////////
// BEGIN INCLUDES
//
// where we can find what this class derives from:
//
#include "IASBaseAttributeInfo.h"
//
// where we can find what this class has or uses:
//
#include <vector>
//
// END INCLUDES
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CEnumerableAttributeInfo
class ATL_NO_VTABLE CEnumerableAttributeInfo :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CEnumerableAttributeInfo, &CLSID_IASEnumerableAttributeInfo>,
public IDispatchImpl<IIASEnumerableAttributeInfo, &IID_IIASEnumerableAttributeInfo, &LIBID_NAPMMCLib>,
public CBaseAttributeInfo
{
public:
CEnumerableAttributeInfo()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_NAPSNAPIN)
DECLARE_CLASSFACTORY()
BEGIN_COM_MAP(CEnumerableAttributeInfo)
COM_INTERFACE_ENTRY(IIASAttributeInfo)
COM_INTERFACE_ENTRY(IIASEnumerableAttributeInfo)
COM_INTERFACE_ENTRY2(IDispatch, IIASEnumerableAttributeInfo)
END_COM_MAP()
// IEnumerableAttributeInfo
public:
STDMETHOD(get_CountEnumerateDescription)(/*[out, retval]*/ long *pVal);
STDMETHOD(AddEnumerateDescription)( /*[in]*/ BSTR newVal);
STDMETHOD(get_CountEnumerateID)(/*[out, retval]*/ long *pVal);
STDMETHOD(get_EnumerateDescription)(long index, /*[out, retval]*/ BSTR *pVal);
STDMETHOD(AddEnumerateID)( /*[in]*/ long newVal);
STDMETHOD(get_EnumerateID)(long index, /*[out, retval]*/ long *pVal);
// IIASAttributeInfo overide.
// STDMETHOD(get_Clone)(LPUNKNOWN * pVal);
private:
std::vector<long> m_veclEnumerateID;
std::vector<CComBSTR> m_vecbstrEnumerateDescription;
};
#endif // _ENUMERABLE_SCHEMA_ATTRIBUTE_H_