Leaked source code of windows server 2003
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.

108 lines
3.0 KiB

  1. /**********************************************************************/
  2. /** Microsoft Windows/NT **/
  3. /** Copyright(c) Microsoft Corporation, 1997 - 1998 **/
  4. /**********************************************************************/
  5. /*
  6. compont.h
  7. base classes for IComponent and IComponentData
  8. FILE HISTORY:
  9. */
  10. #ifndef _COMPONT_H
  11. #define _COMPONT_H
  12. #if _MSC_VER >= 1000 // VC 5.0 or later
  13. #pragma once
  14. #endif
  15. #ifndef __mmc_h__
  16. #include <mmc.h>
  17. #endif
  18. #ifndef _TFSINT_H
  19. #include "tfsint.h"
  20. #endif
  21. class TFSComponentData;
  22. #define IMPL
  23. class TFS_EXPORT_CLASS TFSComponent :
  24. public ITFSComponent,
  25. public IComponent,
  26. public IExtendPropertySheet2,
  27. public IExtendContextMenu,
  28. public IExtendControlbar,
  29. public IResultDataCompare,
  30. public IResultDataCompareEx,
  31. public IResultOwnerData,
  32. public IExtendTaskPad
  33. {
  34. public:
  35. TFSComponent();
  36. virtual ~TFSComponent();
  37. void Construct(ITFSNodeMgr *pNodeMgr,
  38. IComponentData *pCompData,
  39. ITFSComponentData *pTFSCompData);
  40. // INTERFACES
  41. public:
  42. DeclareIUnknownMembers(IMPL)
  43. DeclareIComponentMembers(IMPL)
  44. DeclareIExtendPropertySheetMembers(IMPL)
  45. DeclareIExtendContextMenuMembers(IMPL)
  46. DeclareIExtendControlbarMembers(IMPL)
  47. DeclareIResultDataCompareMembers(IMPL)
  48. DeclareIResultDataCompareExMembers( IMPL )
  49. DeclareIResultOwnerDataMembers(IMPL)
  50. DeclareITFSComponentMembers(IMPL)
  51. DeclareIExtendTaskPadMembers(IMPL)
  52. public:
  53. // These functions are to be implemented by the derived class
  54. //DeclareITFSCompCallbackMembers(PURE)
  55. STDMETHOD(InitializeBitmaps)(MMC_COOKIE cookie) = 0;
  56. STDMETHOD(OnUpdateView)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
  57. STDMETHOD(OnDeselectAll)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
  58. STDMETHOD(OnColumnClick)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
  59. STDMETHOD(OnSnapinHelp)(LPDATAOBJECT pDataObject, LPARAM arg, LPARAM param);
  60. protected:
  61. virtual HRESULT OnNotifyPropertyChange(LPDATAOBJECT lpDataObject,
  62. MMC_NOTIFY_TYPE event,
  63. LPARAM arg,
  64. LPARAM lParam)
  65. {
  66. return E_NOTIMPL;
  67. }
  68. protected:
  69. SPITFSNodeMgr m_spNodeMgr;
  70. SPITFSNode m_spSelectedNode;
  71. SPIConsole m_spConsole; // Console's IConsole interface
  72. SPIHeaderCtrl m_spHeaderCtrl; // Result pane's hdr control
  73. SPIResultData m_spResultData; // if ptr to the result pane
  74. SPIImageList m_spImageList;
  75. SPIConsoleVerb m_spConsoleVerb;
  76. SPIControlBar m_spControlbar;
  77. SPIToolbar m_spToolbar;
  78. SPIDataObject m_spCurrentDataObject;
  79. //$ Review (kennt) : should we be doing this? Should we have
  80. // our components hold onto each other? What if this gets done
  81. // at a higher level?
  82. SPITFSComponentData m_spTFSComponentData;
  83. SPIComponentData m_spComponentData;
  84. LONG_PTR m_ulUserData;
  85. long m_cRef;
  86. };
  87. #endif _COMPONT_H