OBJ_VW.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. // obj_vw.h
  2. //
  3. // Interface def for CObjTreeView
  4. //
  5. // This is a part of the Microsoft Foundation Classes C++ library.
  6. // Copyright (C) 1992-1998 Microsoft Corporation
  7. // All rights reserved.
  8. //
  9. // This source code is only intended as a supplement to the
  10. // Microsoft Foundation Classes Reference and related
  11. // electronic documentation provided with the library.
  12. // See these sources for detailed information regarding the
  13. // Microsoft Foundation Classes product.
  14. #ifndef _OBJ_VW_H_
  15. #define _OBJ_VW_H_
  16. #include "view.h"
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CObjectData
  19. class CObjectData : public CObject
  20. {
  21. DECLARE_DYNCREATE(CObjectData)
  22. public:
  23. CObjectData() ;
  24. virtual ~CObjectData() ;
  25. HRESULT CreateInstance( DWORD clsctx ) ;
  26. BOOL Release() ;
  27. DWORD           m_nType;
  28. CLSID           m_clsid ;
  29. TCHAR           m_szProgID[40] ; // max 39 chars
  30. WORD            m_wMajorVer, m_wMinorVer ;
  31. UINT            m_uiBitmap ;
  32. IClassFactory*  m_pcf ;
  33. IUnknown*       m_punk ;
  34. enum {
  35. typeUnknown,
  36. typeObject,
  37. typeTypeLib,
  38. typeInterface,
  39. typeStaticInterface
  40. };
  41. } ;
  42. class CObjTreeView : public CTreeView
  43. {
  44. DECLARE_DYNCREATE(CObjTreeView)
  45. protected: // create from serialization only
  46. CObjTreeView();
  47. // Attributes
  48. public:
  49. COle2ViewDoc* GetDocument();
  50. HTREEITEM     m_hObjects;
  51. HTREEITEM     m_hTypeLibs ;
  52. HTREEITEM     m_hInterfaces;
  53. HTREEITEM     m_hInsertable ;
  54. HTREEITEM     m_hControls ;
  55. HTREEITEM     m_hInternal ;
  56. #ifdef SHOW_CONTAINERS
  57. HTREEITEM     m_hContainers ;
  58. #endif
  59. HTREEITEM     m_hOLE1 ;
  60. HTREEITEM     m_hUnclassified ;
  61. // Operations
  62. public:
  63. void DeleteTreeContents() ;
  64. void DeleteTreeItems( HTREEITEM htree ) ;
  65. BOOL IsValidSel() ;
  66. void ExpandInterfaces( NM_TREEVIEW* pNMTreeView );
  67. void ExpandTypeLibs( NM_TREEVIEW* pNMTreeView );
  68. void ExpandClassification( NM_TREEVIEW* pNMTreeView );
  69. void ExpandObject( NM_TREEVIEW* pNMTreeView );
  70. void CallInterfaceViewer(CObjectData* pObjectData, HTREEITEM hItem);
  71. // Implementation
  72. public:
  73. virtual ~CObjTreeView();
  74. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  75. virtual void OnUpdate( CView* pSender, LPARAM lHint, CObject* pHint ) ;
  76. virtual void OnDraw( CDC* pdc );
  77. virtual void OnInitialUpdate();
  78. #ifdef _DEBUG
  79. virtual void AssertValid() const;
  80. virtual void Dump(CDumpContext& dc) const;
  81. #endif
  82. // Generated message map functions
  83. protected:
  84. //{{AFX_MSG(CObjTreeView)
  85. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  86. afx_msg void OnDestroy();
  87. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  88. afx_msg void OnObjectDelete();
  89. afx_msg void OnObjectVerify();
  90. afx_msg void OnUseInProcServer();
  91. afx_msg void OnUpdateUseInProcServer(CCmdUI* pCmdUI);
  92. afx_msg void OnUseInProcHandler();
  93. afx_msg void OnUpdateUseInProcHandler(CCmdUI* pCmdUI);
  94. afx_msg void OnUseLocalServer();
  95. afx_msg void OnUpdateUseLocalServer(CCmdUI* pCmdUI);
  96. afx_msg void OnFileBind();
  97. //}}AFX_MSG
  98. afx_msg void OnTreeSelchanged(NMHDR* pNMHDR, LRESULT* pResult) ;
  99. afx_msg void OnTreeItemExpanding(NMHDR* pNMHDR, LRESULT* pResult) ;
  100. afx_msg void OnTreeItemExpanded(NMHDR* pNMHDR, LRESULT* pResult) ;
  101. afx_msg void OnTreeDeleteItem(NMHDR* pNMHDR, LRESULT* pResult) ;
  102. afx_msg void OnTreeReturn(NMHDR* pNMHDR, LRESULT* pResult) ;
  103. afx_msg LRESULT OnCommandHelp(WPARAM, LPARAM lParam) ;
  104. DECLARE_MESSAGE_MAP()
  105. friend class CMainFrame;
  106. };
  107. #ifndef _DEBUG  // debug version in vw.cpp
  108. inline COle2ViewDoc* CObjTreeView::GetDocument()
  109.    { return (COle2ViewDoc*) m_pDocument; }
  110. #endif
  111. #endif // _OBJ_VW_H_