ICAPlugin 接口// {74074DD7-051D-4941-88D1-3E29D793A642} const GUID IID_ICAPlugin = { 0x74074dd7, 0x51d, 0x4941, { 0x88, 0xd1, 0x3e, 0x29, 0xd7, 0x93, 0xa6, 0x42 } }; interface ICAPlugin: public IUnknown { virtual HRESULT STDMETHODCALLTYPE Init(ICAApp* pApp) = 0; virtual HRESULT STDMETHODCALLTYPE Exit() = 0; virtual HRESULT STDMETHODCALLTYPE get_Flags(long* pnFlags) = 0; virtual HRESULT STDMETHODCALLTYPE put_Flags(long nFlags) = 0; virtual HRESULT STDMETHODCALLTYPE get_MenuItemText(BSTR* pbstrDescription) = 0; virtual HRESULT STDMETHODCALLTYPE get_MenuItemStatus(long* pnStatus) = 0; virtual HRESULT STDMETHODCALLTYPE get_MenuItemOrder(long* pnMenuItemOrder) = 0; virtual HRESULT STDMETHODCALLTYPE Execute() = 0; }; Init(ICAApp* pApp)说明CyberArticle在启动的时候,会调用这个方法。传入ICAApp对象。插件应该在这个方法内,进行一些初始化操作。
参数
返回
Exit()说明CyberArticle在退出的时候,会调用这个方法。插件应该在这个方法内,完成一些清理工作。
参数
返回插件应该返回S_OK。
get_Flags(long* pnFlags)说明该方法返回插件的信息。CyberArticle会调用这个方法,来获取插件信息。
参数
返回插件应该返回S_OK。
注意这里的导入/导出插件,并不是CyberArticle三种插件类型里面的导入/导出插件。
插件包含CAPLUGIN_FLAG_TYPE_IMPORT_TOOL /
CAPLUGIN_FLAG_TYPE_EXPORT_TOOL这两个属性,紧紧是为了给插件进行分类,用来决定插件菜单的显示位置。例如导入/导出CHM文件的插件,并不是CyberArticle导入/导出插件,他们仍然是CyberArticle普通插件,实现的接口,也是ICAPlugin。
|
CAPLUGIN_MIS_ENABLED |
0x00000000L |
菜单有效,可以选择 |
CAPLUGIN_MIS_UNCHECKED |
0x00000000L |
菜单没有被选中 |
CAPLUGIN_MIS_DISABLED |
0x00000001L |
菜单无效(灰色),不能被选中 |
CAPLUGIN_MIS_CHECKED |
0x00000002L |
菜单被选中,前面有一个对号。 |
返回
插件应该返回S_OK。
get_MenuItemOrder(long* pnMenuItemOrder)
说明
用来返回菜单显示顺序。返回一个整数。该整数越小,菜单显示的越靠前。CyberArticle将会调用这个方法,用来给插件菜单排序。
参数
- pnMenuItemOrder:[out]。返回菜单顺序号码。
返回
插件应该返回S_OK。
Execute()
说明
用户点击插件菜单后,CyberArticle将会调用这个方法,通知插件,执行相应的功能。参数
无
返回
插件应该返回S_OK。