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.

122 lines
3.1 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1996-1998 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // Notify.h
  7. //
  8. // Abstract:
  9. // Definition of the CNotify class.
  10. //
  11. // Implementation File:
  12. // Notify.cpp
  13. //
  14. // Author:
  15. // David Potter (davidp) May 22, 1996
  16. //
  17. // Revision History:
  18. //
  19. // Notes:
  20. //
  21. /////////////////////////////////////////////////////////////////////////////
  22. #ifndef _NOTIFY_H_
  23. #define _NOTIFY_H_
  24. /////////////////////////////////////////////////////////////////////////////
  25. // Include Files
  26. /////////////////////////////////////////////////////////////////////////////
  27. /////////////////////////////////////////////////////////////////////////////
  28. // Forward Class Declarations
  29. /////////////////////////////////////////////////////////////////////////////
  30. class CClusterNotifyKey;
  31. class CClusterNotify;
  32. class CClusterNotifyContext;
  33. /////////////////////////////////////////////////////////////////////////////
  34. // External Class Declarations
  35. /////////////////////////////////////////////////////////////////////////////
  36. class CClusterDoc;
  37. class CClusterItem;
  38. /////////////////////////////////////////////////////////////////////////////
  39. // ClusterNotifyKeyType
  40. /////////////////////////////////////////////////////////////////////////////
  41. enum ClusterNotifyKeyType
  42. {
  43. cnktUnknown,
  44. cnktDoc,
  45. cnktClusterItem
  46. };
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CNotifyKey
  49. /////////////////////////////////////////////////////////////////////////////
  50. class CClusterNotifyKey
  51. {
  52. public:
  53. CClusterNotifyKey(IN CClusterDoc * pdoc);
  54. CClusterNotifyKey(IN CClusterItem * pci, IN LPCTSTR pszName);
  55. ClusterNotifyKeyType m_cnkt;
  56. CString m_strName;
  57. union
  58. {
  59. CClusterDoc * m_pdoc;
  60. CClusterItem * m_pci;
  61. };
  62. }; //*** class CNotifyKey
  63. typedef CList<CClusterNotifyKey *, CClusterNotifyKey *> CClusterNotifyKeyList;
  64. /////////////////////////////////////////////////////////////////////////////
  65. // CNotify
  66. /////////////////////////////////////////////////////////////////////////////
  67. class CClusterNotify
  68. {
  69. public:
  70. union
  71. {
  72. DWORD_PTR m_dwNotifyKey;
  73. CClusterNotifyKey * m_pcnk;
  74. };
  75. DWORD m_dwFilterType;
  76. CString m_strName;
  77. }; //*** class CClusterNotify
  78. typedef CList<CClusterNotify *, CClusterNotify *> CClusterNotifyList;
  79. /////////////////////////////////////////////////////////////////////////////
  80. // CClusterNotifyContext
  81. /////////////////////////////////////////////////////////////////////////////
  82. class CClusterNotifyContext : public CObject
  83. {
  84. DECLARE_DYNAMIC(CClusterNotifyContext)
  85. public:
  86. HCHANGE m_hchangeNotifyPort;
  87. HWND m_hwndFrame;
  88. }; //*** class CClusterNotifyContext
  89. /////////////////////////////////////////////////////////////////////////////
  90. // Global Function Prototypes
  91. /////////////////////////////////////////////////////////////////////////////
  92. #ifdef _DEBUG
  93. LPCTSTR PszNotificationName(IN DWORD dwNotification);
  94. #endif // _DEBUG
  95. void DeleteAllItemData(IN OUT CClusterNotifyList & rlp);
  96. /////////////////////////////////////////////////////////////////////////////
  97. #endif // _NOTIFY_H_