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.

101 lines
2.2 KiB

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