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.

120 lines
3.0 KiB

  1. class CWinNTNamespace;
  2. class CWinNTNamespace : INHERIT_TRACKING,
  3. public CCoreADsObject,
  4. public ISupportErrorInfo,
  5. public IADsContainer,
  6. public IADs,
  7. public IADsOpenDSObject,
  8. public IADsPathnameProvider,
  9. public INonDelegatingUnknown,
  10. public IADsExtension
  11. {
  12. public:
  13. /* IUnknown methods */
  14. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  15. STDMETHODIMP_(ULONG) AddRef(void);
  16. STDMETHODIMP_(ULONG) Release(void);
  17. // INonDelegatingUnknown methods
  18. STDMETHOD(NonDelegatingQueryInterface)(THIS_
  19. const IID&,
  20. void **
  21. );
  22. DECLARE_NON_DELEGATING_REFCOUNTING
  23. DECLARE_IDispatch_METHODS
  24. DECLARE_ISupportErrorInfo_METHODS
  25. DECLARE_IADs_METHODS
  26. DECLARE_IADsContainer_METHODS
  27. DECLARE_IADsOpenDSObject_METHODS
  28. DECLARE_IADsExtension_METHODS
  29. CWinNTNamespace::CWinNTNamespace();
  30. CWinNTNamespace::~CWinNTNamespace();
  31. STDMETHOD(ParsePath)(THIS_ BSTR bstrPath, DWORD dwType, PPATH_OBJECTINFO pObjectInfo);
  32. STDMETHOD(ConstructPath)(THIS_ PPATH_OBJECTINFO pObjectInfo, DWORD dwType, DWORD dwFlag, DWORD dwEscapedMode, BSTR *pbstrPath);
  33. static
  34. HRESULT
  35. CWinNTNamespace::CreateNamespace(
  36. BSTR Parent,
  37. BSTR NamespaceName,
  38. DWORD dwObjectState,
  39. REFIID riid,
  40. CWinNTCredentials& Credentials,
  41. void **ppvObj
  42. );
  43. static
  44. HRESULT
  45. CWinNTNamespace::AllocateNamespaceObject(
  46. CWinNTNamespace ** ppNamespace
  47. );
  48. static
  49. HRESULT
  50. CWinNTNamespace::SetObjInfoComponents(OBJECTINFO *pObjectInfo,
  51. PATH_OBJECTINFO *pObjectInfoTarget);
  52. static
  53. void
  54. CWinNTNamespace::FreeObjInfoComponents(
  55. PATH_OBJECTINFO *pObjectInfo
  56. );
  57. void
  58. CWinNTNamespace::SetComponent(
  59. LPWSTR szReturn,
  60. DWORD cComponents,
  61. BOOL fEscaped
  62. );
  63. HRESULT
  64. CWinNTNamespace::SetComponents(
  65. LPWSTR szReturn,
  66. LPWSTR chSeparator,
  67. DWORD dwType,
  68. BOOL fEscaped
  69. );
  70. STDMETHODIMP
  71. CWinNTNamespace::GetEscapedElement(
  72. LONG lnReserved,
  73. BSTR bstrInStr,
  74. BSTR* pbstrOutStr
  75. );
  76. STDMETHOD(ImplicitGetInfo)(void);
  77. protected:
  78. VARIANT _vFilter;
  79. CWinNTCredentials _Credentials;
  80. CAggregatorDispMgr *_pDispMgr;
  81. PPATH_OBJECTINFO _pObjectInfo; // PathCracker pathinfo
  82. };
  83. enum {
  84. ADS_COMPONENT_LEAF,
  85. ADS_COMPONENT_DN,
  86. ADS_COMPONENT_PARENT
  87. };