CyberArticle普通插件CyberArticle普通插件需要实现一个或者多个接口。
必须实现的接口:ICAPlugin
对于用来编辑文章的插件,还可以实现接口:ICAEditPlugin
(非必须)
注册普通插件当您完成COM组件编写后,您还需要注册您的COM组件。除了标准的COM组件注册外,还需要在注册表的某些位置,写入一些数据,来告诉CyberArticle,有这样一个CyberArticle普通插件。
CyberArticle普通插件注册位置:
HKEY_CURRENT_USER\Software\Wizissoft\CyberArticle\Plugins\Normal
(仅对当前windows用户有效)
或者
HKEY_LOCAL_MACHINE\Software\Wizissoft\CyberArticle\Plugins\Normal(对当前电脑的所有用户有效)
导出插件组件需要在上面的注册表位置下面,创建一个新的KEY,KEY的名称是COM组件的Class ID
(CLSID),在这个KEY下面,默认的value是该插件的描述。
下图就是一个典型的例子:
在卸载插件的时候,需要将相应的注册表项,从注册表中删除。
如果您使用C++编写插件,可以使用CyberArticlePluginHelper.h文件里面的函数注册一个CyberArticle普通插件,例如: #include "C:/Program Files/Wizissoft/CyberArticle/developers/interface/include/CyberArticlePluginHelper.h" ... // DllRegisterServer - Adds entries to the system registry STDAPI DllRegisterServer(void) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); _AtlModule.UpdateRegistryAppId(TRUE); HRESULT hRes2 = _AtlModule.RegisterServer(TRUE); if (hRes2 != S_OK) return hRes2; if (!COleObjectFactory::UpdateRegistryAll(TRUE)) return ResultFromScode(SELFREG_E_CLASS); // //注册CyberArticle插件 CyberArticleRegisterPlugin(CLSID_CACombineNodesPlugin, IDS_COMBINE_NODES); // return S_OK; } // DllUnregisterServer - Removes entries from the system registry STDAPI DllUnregisterServer(void) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); // //卸载CyberArticle插件 CyberArticleUnregisterPlugin(CLSID_CACombineNodesPlugin); // _AtlModule.UpdateRegistryAppId(FALSE); HRESULT hRes2 = _AtlModule.UnregisterServer(TRUE); if (hRes2 != S_OK) return hRes2; if (!COleObjectFactory::UpdateRegistryAll(FALSE)) return ResultFromScode(SELFREG_E_CLASS); return S_OK; } |
|
|