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.

65 lines
2.3 KiB

  1. /*--------------------------------------------------------------------------*
  2. *
  3. * Microsoft Windows
  4. * Copyright (C) Microsoft Corporation, 1992 - 1999
  5. *
  6. * File: nodepath.h
  7. *
  8. * Contents: Dynamic node path generation helpers
  9. *
  10. * History: 31-Mar-98 JeffRo Created
  11. *
  12. *--------------------------------------------------------------------------*/
  13. #ifndef NODEPATH_H
  14. #define NODEPATH_H
  15. // Forward declarations
  16. class CMTNode;
  17. class CBookmark;
  18. class CDynamicPathEntryEx;
  19. /*+-------------------------------------------------------------------------*
  20. *class CBookmarkEx
  21. *
  22. *PURPOSE: Provides added functionality to the CBookmark class with methods
  23. * for locating CMTNodes and CNodes.
  24. *
  25. *
  26. *+-------------------------------------------------------------------------*/
  27. class CBookmarkEx : public CBookmark
  28. {
  29. typedef CBookmark BC;
  30. public:
  31. enum { ID_ConsoleRoot = -10 };
  32. // Constructor / destructor
  33. CBookmarkEx(MTNODEID idStatic = ID_Unknown);
  34. CBookmarkEx(bool bIsFastBookmark);
  35. CBookmarkEx(const CBookmark &rhs) {*this = rhs;}
  36. CBookmarkEx(const CBookmarkEx &rhs) {*this = rhs;}
  37. ~CBookmarkEx();
  38. // casts
  39. CBookmarkEx & operator = (const CBookmark &rhs) {BC::operator = (rhs); return *this;}
  40. CBookmarkEx & operator = (const CBookmarkEx &rhs) {BC::operator = (rhs); return *this;}
  41. SC ScGetMTNode(bool bExactMatchRequired, CMTNode **ppMTNode, bool& bExactMatchFound);
  42. std::auto_ptr<CNode> GetNode(CViewData *pViewData);
  43. SC ScRetarget(CMTNode *pMTNode, bool bFastRetrievalOnly);
  44. void ResetUI();
  45. // from the old CNodePath class
  46. public:
  47. SC ScInitialize(CMTNode* pMTNode, CMTNode* pMTViewRootNode, bool bFastRetrievalOnly);
  48. protected:
  49. BOOL IsNodeIDOK(CDynamicPathEntryEx &nodeid);
  50. // find a node directly under the parent node whose node ID matches the specified CDynamicPathEntryEx.
  51. SC ScFindMatchingMTNode(CMTNode *pMTNodeParent, CDynamicPathEntryEx &entry,
  52. CMTNode **ppMatchingMTNode);
  53. };
  54. #endif /* NODEPATH_H */