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.

228 lines
4.4 KiB

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