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.

96 lines
1.7 KiB

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