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.

215 lines
3.8 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. /*++
  3. Copyright (C) Microsoft Corporation, 1998 - 1999
  4. Module Name:
  5. IASEnumerableAttributeInfo.cpp
  6. Abstract:
  7. Implementation file for the CEnumerableAttributeInfo class.
  8. Revision History:
  9. mmaguire 06/25/98 - created
  10. --*/
  11. //////////////////////////////////////////////////////////////////////////////
  12. //////////////////////////////////////////////////////////////////////////////
  13. // BEGIN INCLUDES
  14. //
  15. // standard includes:
  16. //
  17. #include "Precompiled.h"
  18. //
  19. // where we can find declaration for main class in this file:
  20. //
  21. #include "IASEnumerableAttributeInfo.h"
  22. //
  23. // where we can find declarations needed in this file:
  24. //
  25. //
  26. // END INCLUDES
  27. //////////////////////////////////////////////////////////////////////////////
  28. //////////////////////////////////////////////////////////////////////////////
  29. /*++
  30. CEnumerableAttributeInfo::get_CountEnumerateID
  31. --*/
  32. //////////////////////////////////////////////////////////////////////////////
  33. STDMETHODIMP CEnumerableAttributeInfo::get_CountEnumerateID(long * pVal)
  34. {
  35. // Check for preconditions:
  36. if( pVal == NULL )
  37. {
  38. return E_INVALIDARG;
  39. }
  40. try
  41. {
  42. *pVal = m_veclEnumerateID.size();
  43. }
  44. catch(...)
  45. {
  46. return E_FAIL;
  47. }
  48. return S_OK;
  49. }
  50. //////////////////////////////////////////////////////////////////////////////
  51. /*++
  52. CEnumerableAttributeInfo::get_EnumerateID
  53. --*/
  54. //////////////////////////////////////////////////////////////////////////////
  55. STDMETHODIMP CEnumerableAttributeInfo::get_EnumerateID(long index, long * pVal)
  56. {
  57. // Check for preconditions:
  58. if( pVal == NULL )
  59. {
  60. return E_INVALIDARG;
  61. }
  62. HRESULT hr = S_OK;
  63. try
  64. {
  65. *pVal = m_veclEnumerateID[index] ;
  66. }
  67. catch(...)
  68. {
  69. return E_FAIL;
  70. }
  71. return hr;
  72. }
  73. //////////////////////////////////////////////////////////////////////////////
  74. /*++
  75. CEnumerableAttributeInfo::AddEnumerateID
  76. --*/
  77. //////////////////////////////////////////////////////////////////////////////
  78. STDMETHODIMP CEnumerableAttributeInfo::AddEnumerateID( long newVal)
  79. {
  80. // Check for preconditions:
  81. // None.
  82. HRESULT hr = S_OK;
  83. try
  84. {
  85. m_veclEnumerateID.push_back( newVal );
  86. }
  87. catch(...)
  88. {
  89. return E_FAIL;
  90. }
  91. return hr;
  92. }
  93. //////////////////////////////////////////////////////////////////////////////
  94. /*++
  95. CEnumerableAttributeInfo::get_CountEnumerateDescription
  96. --*/
  97. //////////////////////////////////////////////////////////////////////////////
  98. STDMETHODIMP CEnumerableAttributeInfo::get_CountEnumerateDescription(long * pVal)
  99. {
  100. // Check for preconditions:
  101. if( pVal == NULL )
  102. {
  103. return E_INVALIDARG;
  104. }
  105. try
  106. {
  107. *pVal = m_vecbstrEnumerateDescription.size();
  108. }
  109. catch(...)
  110. {
  111. return E_FAIL;
  112. }
  113. return S_OK;
  114. }
  115. //////////////////////////////////////////////////////////////////////////////
  116. /*++
  117. CEnumerableAttributeInfo::get_EnumerateDescription
  118. --*/
  119. //////////////////////////////////////////////////////////////////////////////
  120. STDMETHODIMP CEnumerableAttributeInfo::get_EnumerateDescription(long index, BSTR * pVal)
  121. {
  122. // Check for preconditions:
  123. if( pVal == NULL )
  124. {
  125. return E_INVALIDARG;
  126. }
  127. try
  128. {
  129. *pVal = m_vecbstrEnumerateDescription[index].Copy();
  130. }
  131. catch(...)
  132. {
  133. return E_FAIL;
  134. }
  135. return S_OK;
  136. }
  137. //////////////////////////////////////////////////////////////////////////////
  138. /*++
  139. CEnumerableAttributeInfo::AddEnumerateDescription
  140. --*/
  141. //////////////////////////////////////////////////////////////////////////////
  142. STDMETHODIMP CEnumerableAttributeInfo::AddEnumerateDescription( BSTR newVal)
  143. {
  144. // Check for preconditions:
  145. // None.
  146. HRESULT hr = S_OK;
  147. try
  148. {
  149. m_vecbstrEnumerateDescription.push_back( newVal );
  150. }
  151. catch(...)
  152. {
  153. return E_FAIL;
  154. }
  155. return hr;
  156. }