Source code of Windows XP (NT5)
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.

88 lines
2.4 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. /*++
  3. Copyright (C) Microsoft Corporation, 1998 - 1999
  4. Module Name:
  5. IASEnumerableAttributeInfo.h
  6. Abstract:
  7. Declaration of the CEnumerableAttributeInfo class.
  8. This class is the C++ implementation of the IIASEnumerableAttributeInfo interface on
  9. the EnumerableAttributeInfo COM object.
  10. See IASEnumerableAttributeInfo.cpp for implementation.
  11. Revision History:
  12. mmaguire 06/25/98 - created
  13. --*/
  14. //////////////////////////////////////////////////////////////////////////////
  15. #if !defined(_ENUMERABLE_SCHEMA_ATTRIBUTE_H_)
  16. #define _ENUMERABLE_SCHEMA_ATTRIBUTE_H_
  17. //////////////////////////////////////////////////////////////////////////////
  18. // BEGIN INCLUDES
  19. //
  20. // where we can find what this class derives from:
  21. //
  22. #include "IASBaseAttributeInfo.h"
  23. //
  24. // where we can find what this class has or uses:
  25. //
  26. #include <vector>
  27. //
  28. // END INCLUDES
  29. //////////////////////////////////////////////////////////////////////////////
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CEnumerableAttributeInfo
  32. class ATL_NO_VTABLE CEnumerableAttributeInfo :
  33. public CComObjectRootEx<CComSingleThreadModel>,
  34. public CComCoClass<CEnumerableAttributeInfo, &CLSID_IASEnumerableAttributeInfo>,
  35. public IDispatchImpl<IIASEnumerableAttributeInfo, &IID_IIASEnumerableAttributeInfo, &LIBID_NAPMMCLib>,
  36. public CBaseAttributeInfo
  37. {
  38. public:
  39. CEnumerableAttributeInfo()
  40. {
  41. }
  42. DECLARE_REGISTRY_RESOURCEID(IDR_NAPSNAPIN)
  43. DECLARE_CLASSFACTORY()
  44. BEGIN_COM_MAP(CEnumerableAttributeInfo)
  45. COM_INTERFACE_ENTRY(IIASAttributeInfo)
  46. COM_INTERFACE_ENTRY(IIASEnumerableAttributeInfo)
  47. COM_INTERFACE_ENTRY2(IDispatch, IIASEnumerableAttributeInfo)
  48. END_COM_MAP()
  49. // IEnumerableAttributeInfo
  50. public:
  51. STDMETHOD(get_CountEnumerateDescription)(/*[out, retval]*/ long *pVal);
  52. STDMETHOD(AddEnumerateDescription)( /*[in]*/ BSTR newVal);
  53. STDMETHOD(get_CountEnumerateID)(/*[out, retval]*/ long *pVal);
  54. STDMETHOD(get_EnumerateDescription)(long index, /*[out, retval]*/ BSTR *pVal);
  55. STDMETHOD(AddEnumerateID)( /*[in]*/ long newVal);
  56. STDMETHOD(get_EnumerateID)(long index, /*[out, retval]*/ long *pVal);
  57. // IIASAttributeInfo overide.
  58. // STDMETHOD(get_Clone)(LPUNKNOWN * pVal);
  59. private:
  60. std::vector<long> m_veclEnumerateID;
  61. std::vector<CComBSTR> m_vecbstrEnumerateDescription;
  62. };
  63. #endif // _ENUMERABLE_SCHEMA_ATTRIBUTE_H_