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.

94 lines
2.3 KiB

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