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.

151 lines
2.7 KiB

  1. class CNDSGenObject;
  2. class CNDSGenObject : INHERIT_TRACKING,
  3. public CCoreADsObject,
  4. public IADs,
  5. public IADsContainer,
  6. public IDirectoryObject,
  7. public IDirectorySearch,
  8. public IDirectorySchemaMgmt,
  9. public IADsPropertyList
  10. {
  11. public:
  12. /* IUnknown methods */
  13. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  14. DECLARE_STD_REFCOUNTING
  15. DECLARE_IDispatch_METHODS
  16. DECLARE_IADs_METHODS
  17. DECLARE_IADsPropertyList_METHODS
  18. DECLARE_IADsContainer_METHODS
  19. DECLARE_IDirectoryObject_METHODS
  20. DECLARE_IDirectorySearch_METHODS
  21. DECLARE_IDirectorySchemaMgmt_METHODS
  22. CNDSGenObject::CNDSGenObject();
  23. CNDSGenObject::~CNDSGenObject();
  24. static
  25. HRESULT
  26. CNDSGenObject::CreateGenericObject(
  27. BSTR bstrADsPath,
  28. BSTR ClassName,
  29. CCredentials& Credentials,
  30. DWORD dwObjectState,
  31. REFIID riid,
  32. void **ppvObj
  33. );
  34. static
  35. HRESULT
  36. CNDSGenObject::CreateGenericObject(
  37. BSTR Parent,
  38. BSTR CommonName,
  39. BSTR ClassName,
  40. CCredentials& Credentials,
  41. DWORD dwObjectState,
  42. REFIID riid,
  43. void **ppvObj
  44. );
  45. static
  46. HRESULT
  47. CNDSGenObject::AllocateGenObject(
  48. CCredentials& Credentials,
  49. CNDSGenObject ** ppGenObject
  50. );
  51. STDMETHOD(GetInfo)(
  52. BOOL fExplicit
  53. );
  54. HRESULT
  55. CNDSGenObject::NDSSetObject();
  56. HRESULT
  57. CNDSGenObject::NDSCreateObject();
  58. void
  59. CNDSGenObject::InitSearchPrefs();
  60. protected:
  61. IUnknown FAR * _pOuterUnknown;
  62. BOOL _fIsAggregated;
  63. VARIANT _vFilter;
  64. CPropertyCache FAR * _pPropertyCache;
  65. CDispatchMgr FAR * _pDispMgr;
  66. CCredentials _Credentials;
  67. NDS_SEARCH_PREF _SearchPref;
  68. NDS_CONTEXT_HANDLE _hADsContext;
  69. LPWSTR _pszNDSTreeName;
  70. LPWSTR _pszNDSDn;
  71. };
  72. HRESULT
  73. ConvertSafeArrayToVariantArray(
  74. VARIANT varSafeArray,
  75. PVARIANT * ppVarArray,
  76. PDWORD pdwNumVariants
  77. );
  78. HRESULT
  79. ConvertByRefSafeArrayToVariantArray(
  80. VARIANT varSafeArray,
  81. PVARIANT * ppVarArray,
  82. PDWORD pdwNumVariants
  83. );
  84. HRESULT
  85. CreatePropEntry(
  86. LPWSTR szPropName,
  87. DWORD ADsType,
  88. DWORD numValues,
  89. VARIANT varData,
  90. REFIID riid,
  91. LPVOID * ppDispatch
  92. );
  93. HRESULT
  94. ConvertNdsValuesToVariant(
  95. BSTR bstrPropName,
  96. LPNDSOBJECT pNdsSrcObjects,
  97. DWORD dwNumValues,
  98. PVARIANT pVarProp
  99. );
  100. HRESULT
  101. ConvertVariantToNdsValues(
  102. VARIANT varData,
  103. LPWSTR szPropertyName,
  104. PDWORD pdwControlCode,
  105. PNDSOBJECT * ppNdsDestObjects,
  106. PDWORD pdwNumValues,
  107. PDWORD dwSyntaxId
  108. );