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

PlugIns编程

开发平台:

Visual C++

  1. // Plugin.h : CPlugin 的声明
  2. #pragma once
  3. #include "resource.h"       // 主符号
  4. //--------------------------------------
  5. #include "MyDialog.h"
  6. #include "TestDialog.h"
  7. #include "Plugin2.h"
  8. #include "_IPluginEvents_CP.h"
  9. //#include "iserver.h"
  10. //extern HINSTANCE global_hInstance; //全局程序实例句柄
  11. // CPlugin
  12. const short  FUNCTION_NUM = 2;
  13. class ATL_NO_VTABLE CPlugin : 
  14. public CComObjectRootEx<CComSingleThreadModel>,
  15. public CComCoClass<CPlugin, &CLSID_Plugin>,
  16. public IConnectionPointContainerImpl<CPlugin>,
  17. public CProxy_IPluginEvents<CPlugin>, 
  18. public IPlugin
  19. {
  20. public:
  21. CPlugin()
  22. {
  23. //m_myDlg=new CMyDialog();
  24. m_myDlg=NULL;
  25. m_Paint=false;
  26. }
  27. ~CPlugin()
  28. {
  29. if (m_myDlg!=NULL) delete m_myDlg;
  30. m_Paint=false;
  31. }
  32. DECLARE_REGISTRY_RESOURCEID(IDR_PLUGIN)
  33. BEGIN_COM_MAP(CPlugin)
  34. COM_INTERFACE_ENTRY(IPlugin)
  35. COM_INTERFACE_ENTRY(IConnectionPointContainer)
  36. END_COM_MAP()
  37. BEGIN_CONNECTION_POINT_MAP(CPlugin)
  38. CONNECTION_POINT_ENTRY(__uuidof(_IPluginEvents))
  39. END_CONNECTION_POINT_MAP()
  40. DECLARE_PROTECT_FINAL_CONSTRUCT()
  41. HRESULT FinalConstruct()
  42. {
  43. return S_OK;
  44. }
  45. void FinalRelease() 
  46. {
  47. }
  48. public:
  49. STDMETHOD(GetFunctionCount)(SHORT* pCount);
  50. STDMETHOD(DoFunction)(SHORT index);
  51. STDMETHOD(GetFunctionName)(SHORT index, CHAR* name);
  52. STDMETHOD(GetPluginName)(CHAR* name);
  53. public:
  54. CMyDialog*  m_myDlg;
  55. HDC m_hDC;
  56. HWND m_hWND;
  57. BOOL m_Paint;
  58. POINT m_Source,m_Target;
  59. IServer* m_pServer;
  60. myGraph* m_pGraph;
  61. STDMETHOD(SendMouseMessage)(UINT Message, UINT flags, int x, int y);
  62. STDMETHOD(PassHDC)(HDC hDC);
  63. STDMETHOD(PassHWND)(HWND mHWND);
  64. STDMETHOD(SetServer)(IUnknown* iServer);
  65. STDMETHOD(ReDraw)(void);
  66. STDMETHOD(GetToolBarBitmap)(HBITMAP* hBitmap);
  67. };
  68. OBJECT_ENTRY_AUTO(__uuidof(Plugin), CPlugin)