MenuPlugin.h
上传用户:easylife05
上传日期:2007-02-14
资源大小:393k
文件大小:2k
源码类别:

PlugIns编程

开发平台:

Visual C++

  1. //----------------------------------
  2. //
  3. //公用COLLECTION结构定义
  4. //
  5. //----------------------------------
  6. #pragma once
  7. #include <afxtempl.h>
  8. #include "ocxcalldlg.h"
  9. class COcxCallDlg;
  10. //-------------------------------
  11. class CMenuItem
  12. {
  13. public:
  14. UINT m_menuID;
  15. CLSID m_classID;
  16. short m_menuAction;
  17. public:
  18. CMenuItem(void);
  19. CMenuItem(UINT menuID,CLSID classID,short menuAction);
  20. ~CMenuItem(void);
  21. };
  22. typedef CTypedPtrList <CPtrList,CMenuItem*> CMenuList;
  23. //---------------------------------------------
  24. class CMenuPlugin
  25. {
  26. public:
  27. CMenuPlugin(void);
  28. ~CMenuPlugin(void);
  29. CMenuList m_menuList;
  30. private:
  31. UINT m_firstMenuID,m_CurrentMenuID;
  32. int m_menuCount;
  33. public:
  34. void InitMenu(UINT menuID);
  35. BOOL Add(CLSID classID, short menuAction);
  36. CLSID Find(UINT menuID,short& actionID);
  37. void ClearAll(void);
  38. };
  39. //-------------------------------------------------
  40. //-------------------------------------------------
  41. class CInterfaceItem
  42. {
  43. public:
  44. CLSID m_classID;
  45. IUnknown* m_interface;
  46. public:
  47. CInterfaceItem(void);
  48. ~CInterfaceItem(void);
  49. };
  50. typedef CTypedPtrList <CPtrList,CInterfaceItem*> CInterfaceList;
  51. //--------------------------------------------------
  52. class CInterfaceDB
  53. {
  54. public:
  55. CInterfaceDB(void);
  56. ~CInterfaceDB(void);
  57. CInterfaceList m_interfaceList;
  58. BOOL Add(CLSID classID, IUnknown* interfaceName);
  59. IUnknown* Find(CLSID classID);
  60. void ClearAll(void);
  61. };
  62. class CActiveXItem
  63. {
  64. public:
  65. CLSID m_classID;
  66. COcxCallDlg* m_ocxDlg;
  67. public:
  68. CActiveXItem(void);
  69. ~CActiveXItem(void);
  70. };
  71. typedef CTypedPtrList <CPtrList,CActiveXItem*> CActiveXList;
  72. class CActiveXDB
  73. {
  74. public:
  75. CActiveXDB(void);
  76. ~CActiveXDB(void);
  77. CActiveXList m_activexList;
  78. BOOL Add(CLSID classID, COcxCallDlg* pocxCallDlg);
  79. void ClearAll(void);
  80. COcxCallDlg* Find(CLSID classID);
  81. };    
  82. //注:有时一个小分号";",就会忙的你直真抓瞎,找不着北!  刘明辉  2003/6/30 AM11:04