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.0 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1991 - 1999
  5. //
  6. // File: cdlink.cxx
  7. //
  8. // Contents:
  9. //
  10. // Classes: CDlink
  11. //
  12. // History: 16-Oct-91 KevinRo Created
  13. //
  14. //--------------------------------------------------------------------------
  15. #include "pch.h"
  16. //+-------------------------------------------------------------------------
  17. //
  18. // Member: CDLink::LinkAfter
  19. //
  20. // Purpose: Links this after dlPrev and before dlPrev->_dlNext
  21. //
  22. // Returns: this
  23. //
  24. // Note: None.
  25. //
  26. //--------------------------------------------------------------------------
  27. VOID CDLink::LinkAfter(CDLink * dlPrev)
  28. {
  29. _dlPrev = dlPrev;
  30. if(dlPrev != NULL)
  31. {
  32. _dlNext = dlPrev->_dlNext;
  33. dlPrev->_dlNext = this;
  34. if(_dlNext != NULL) {
  35. _dlNext->_dlPrev = this;
  36. }
  37. }
  38. else
  39. {
  40. _dlNext = NULL;
  41. }
  42. }
  43. //+-------------------------------------------------------------------------
  44. //
  45. // Member: CDLink::LinkBefore
  46. //
  47. // Purpose: Links this Before dlNext and after dlNext->_dlPrev
  48. //
  49. // Returns: this
  50. //
  51. //--------------------------------------------------------------------------
  52. VOID CDLink::LinkBefore(CDLink * dlNext)
  53. {
  54. _dlNext = dlNext;
  55. if(dlNext != NULL)
  56. {
  57. _dlPrev = dlNext->_dlPrev;
  58. dlNext->_dlPrev = this;
  59. if(_dlPrev != NULL) {
  60. _dlPrev->_dlNext = this;
  61. }
  62. }
  63. else
  64. {
  65. _dlPrev = NULL;
  66. }
  67. }
  68. //+-------------------------------------------------------------------------
  69. //
  70. // Member: CDLink::Unlink()
  71. //
  72. // Purpose: Removes this from double linked list
  73. //
  74. // Returns: this
  75. //
  76. //--------------------------------------------------------------------------
  77. VOID CDLink::UnLink()
  78. {
  79. if(_dlNext != NULL) {
  80. _dlNext->_dlPrev = _dlPrev;
  81. }
  82. if(_dlPrev != NULL) {
  83. _dlPrev->_dlNext = _dlNext;
  84. }
  85. _dlNext = _dlPrev = NULL;
  86. }