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.

71 lines
1.7 KiB

  1. #define MAXCOMPONENTS 64
  2. class CPathname : INHERIT_TRACKING,
  3. public ISupportErrorInfo,
  4. public IADsPathname
  5. {
  6. public:
  7. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  8. DECLARE_STD_REFCOUNTING
  9. DECLARE_IDispatch_METHODS
  10. DECLARE_ISupportErrorInfo_METHODS
  11. DECLARE_IADsPathname_METHODS
  12. CPathname::CPathname();
  13. CPathname::~CPathname();
  14. HRESULT SetComponent(DWORD cComponents, BSTR *pbstrElement);
  15. HRESULT
  16. CPathname::SetAll(BSTR bstrADsPath);
  17. HRESULT
  18. CPathname::GetNamespace(
  19. BSTR bstrADsPath,
  20. PWSTR *ppszName
  21. );
  22. static
  23. HRESULT
  24. CPathname::CreatePathname(
  25. REFIID riid,
  26. void **ppvObj
  27. );
  28. static
  29. HRESULT
  30. CPathname::AllocatePathnameObject(
  31. CPathname ** ppPathname
  32. );
  33. static
  34. void
  35. FreeObjInfoComponents(PATH_OBJECTINFO *pObjectInfo);
  36. static
  37. void
  38. CPathname::FreePathInfo(PPATH_OBJECTINFO pPathObjectInfo);
  39. private:
  40. IADsPathnameProvider *m_pPathnameProvider; // pointer to the provider
  41. // that we have initialized
  42. PATH_OBJECTINFO _PathObjectInfo; // Internal storage for cracked
  43. // components
  44. BOOLEAN _fNamingAttribute; // flag indicating the presense
  45. // of the naming attribute
  46. DWORD _dwEscaped; // flag indicating the result
  47. // should be escaped or not
  48. protected:
  49. CDispatchMgr FAR * _pDispMgr;
  50. };