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.

149 lines
2.7 KiB

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