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.

80 lines
1.5 KiB

  1. class FAR CNDSTreeEnum : public CNDSEnumVariant
  2. {
  3. public:
  4. CNDSTreeEnum(ObjectTypeList ObjList);
  5. CNDSTreeEnum();
  6. ~CNDSTreeEnum();
  7. static
  8. HRESULT
  9. CNDSTreeEnum::Create(
  10. CNDSTreeEnum FAR* FAR* ppenumvariant,
  11. BSTR ADsPath,
  12. VARIANT var,
  13. CCredentials& Credentials
  14. );
  15. private:
  16. ObjectTypeList FAR *_pObjList;
  17. LPNDS_FILTER_LIST _pNdsFilterList;
  18. HANDLE _hObject;
  19. HANDLE _hOperationData;
  20. LPNDS_OBJECT_INFO _lpObjects;
  21. DWORD _dwObjectReturned;
  22. DWORD _dwObjectCurrentEntry;
  23. DWORD _dwObjectTotal;
  24. BSTR _ADsPath;
  25. BOOL _fSchemaReturned;
  26. BOOL _bNoMore;
  27. CCredentials _Credentials;
  28. HRESULT
  29. CNDSTreeEnum::GetGenObject(
  30. IDispatch ** ppDispatch
  31. );
  32. HRESULT
  33. EnumGenericObjects(
  34. ULONG cElements,
  35. VARIANT FAR* pvar,
  36. ULONG FAR* pcElementFetched
  37. );
  38. HRESULT
  39. CNDSTreeEnum::EnumSchema(
  40. ULONG cElements,
  41. VARIANT FAR* pvar,
  42. ULONG FAR* pcElementFetched
  43. );
  44. STDMETHOD(Next)(
  45. ULONG cElements,
  46. VARIANT FAR* pvar,
  47. ULONG FAR* pcElementFetched
  48. );
  49. };
  50. HRESULT
  51. BuildNDSFilterArray(
  52. VARIANT var,
  53. LPBYTE * ppContigFilter
  54. );
  55. void
  56. FreeFilterList(
  57. LPBYTE lpContigFilter
  58. );
  59. LPBYTE
  60. CreateAndAppendFilterEntry(
  61. LPBYTE pContigFilter,
  62. LPWSTR lpObjectClass
  63. );