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.

232 lines
4.4 KiB

  1. //---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1995
  5. //
  6. // File: cenumvar.cxx
  7. //
  8. // Contents: Windows NT 3.5 Enumerator Code
  9. //
  10. // CNDSEnumVariant::Create
  11. // CNDSEnumVariant::CNDSEnumVariant
  12. // CNDSEnumVariant::~CNDSEnumVariant
  13. // CNDSEnumVariant::QueryInterface
  14. // CNDSEnumVariant::AddRef
  15. // CNDSEnumVariant::Release
  16. // CNDSEnumVariant::Next
  17. // CNDSEnumVariant::Skip
  18. // CNDSEnumVariant::Clone
  19. //
  20. // History:
  21. //----------------------------------------------------------------------------
  22. #include "nds.hxx"
  23. #pragma hdrstop
  24. //+---------------------------------------------------------------------------
  25. //
  26. // Function: CNDSEnumVariant::CNDSEnumVariant
  27. //
  28. // Synopsis:
  29. //
  30. //
  31. // Arguments:
  32. //
  33. //
  34. // Returns:
  35. //
  36. // Modifies:
  37. //
  38. // History: 01-30-95 krishnag Created.
  39. //
  40. //----------------------------------------------------------------------------
  41. CNDSEnumVariant::CNDSEnumVariant()
  42. {
  43. //
  44. // Set the reference count on the enumerator.
  45. //
  46. m_cRef = 1;
  47. }
  48. //+---------------------------------------------------------------------------
  49. //
  50. // Function: CNDSEnumVariant::~CNDSEnumVariant
  51. //
  52. // Synopsis:
  53. //
  54. //
  55. // Arguments:
  56. //
  57. // Returns:
  58. //
  59. // Modifies:
  60. //
  61. // History: 01-30-95 krishnag Created.
  62. //
  63. //----------------------------------------------------------------------------
  64. CNDSEnumVariant::~CNDSEnumVariant()
  65. {
  66. //
  67. // Bump down the reference count on the Collection object
  68. //
  69. }
  70. //+---------------------------------------------------------------------------
  71. //
  72. // Function: CNDSEnumVariant::QueryInterface
  73. //
  74. // Synopsis:
  75. //
  76. // Arguments: [iid]
  77. // [ppv]
  78. //
  79. // Returns: HRESULT
  80. //
  81. // Modifies:
  82. //
  83. // History: 01-30-95 krishnag Created.
  84. //
  85. //----------------------------------------------------------------------------
  86. STDMETHODIMP
  87. CNDSEnumVariant::QueryInterface(REFIID iid, void FAR* FAR* ppv)
  88. {
  89. if (ppv == NULL) {
  90. RRETURN(E_POINTER);
  91. }
  92. *ppv = NULL;
  93. if (iid == IID_IUnknown || iid == IID_IEnumVARIANT) {
  94. *ppv = this;
  95. }
  96. else {
  97. return ResultFromScode(E_NOINTERFACE);
  98. }
  99. AddRef();
  100. return NOERROR;
  101. }
  102. //+---------------------------------------------------------------------------
  103. //
  104. // Function: CNDSEnumVariant::AddRef
  105. //
  106. // Synopsis:
  107. //
  108. // Arguments:
  109. //
  110. // Returns: HRESULT
  111. //
  112. // Modifies:
  113. //
  114. // History: 01-30-95 krishnag Created.
  115. //----------------------------------------------------------------------------
  116. STDMETHODIMP_(ULONG)
  117. CNDSEnumVariant::AddRef(void)
  118. {
  119. return ++m_cRef;
  120. }
  121. //+---------------------------------------------------------------------------
  122. //
  123. // Function: CNDSEnumVariant::Release
  124. //
  125. // Synopsis:
  126. //
  127. //
  128. // Arguments: [void]
  129. //
  130. // Returns:
  131. //
  132. // Modifies:
  133. //
  134. // History: 01-30-95 krishnag Created.
  135. //----------------------------------------------------------------------------
  136. STDMETHODIMP_(ULONG)
  137. CNDSEnumVariant::Release(void)
  138. {
  139. if(--m_cRef == 0){
  140. delete this;
  141. return 0;
  142. }
  143. return m_cRef;
  144. }
  145. //+---------------------------------------------------------------------------
  146. //
  147. // Function: CNDSEnumVariant::Skip
  148. //
  149. // Synopsis:
  150. //
  151. // Arguments: [cElements]
  152. //
  153. // Returns: HRESULT
  154. //
  155. // Modifies:
  156. //
  157. // History: 01-30-95 krishnag Created.
  158. //
  159. //----------------------------------------------------------------------------
  160. STDMETHODIMP
  161. CNDSEnumVariant::Skip(ULONG cElements)
  162. {
  163. RRETURN(E_NOTIMPL);
  164. }
  165. //+---------------------------------------------------------------------------
  166. //
  167. // Function: CNDSEnumVariant::Reset
  168. //
  169. // Synopsis:
  170. //
  171. // Arguments: []
  172. //
  173. // Returns: HRESULT
  174. //
  175. // Modifies:
  176. //
  177. // History:
  178. //
  179. //----------------------------------------------------------------------------
  180. STDMETHODIMP
  181. CNDSEnumVariant::Reset()
  182. {
  183. RRETURN(E_NOTIMPL);
  184. }
  185. //+---------------------------------------------------------------------------
  186. //
  187. // Function: CNDSEnumVariant::Clone
  188. //
  189. // Synopsis:
  190. //
  191. // Arguments: [pCollection]
  192. // [ppEnumVariant]
  193. //
  194. // Returns: HRESULT
  195. //
  196. // Modifies:
  197. //
  198. // History: 01-30-95 krishnag Created.
  199. //
  200. //----------------------------------------------------------------------------
  201. STDMETHODIMP
  202. CNDSEnumVariant::Clone(IEnumVARIANT FAR* FAR* ppenum)
  203. {
  204. RRETURN(E_NOTIMPL);
  205. }