CyberArticle导出插件CyberArticle导出插件是一个COM组件,该组件必须支持自动化技术(实现IDispatch)。CyberArticle通过IDispatch接口来调用相应的方法,来将文章导出为文件。 COM对象需要的属性:
COM对象需要的方法:
下面是一个比较典型的idl文件片断 interface ICAExportImage : IDispatch{ [propget, id(1), helpstring("property PluginFlags")] HRESULT PluginFlags([out, retval] LONG* pVal); [propput, id(2), helpstring("property ExportFlags")] HRESULT ExportFlags([in] LONG newVal); [id(3), helpstring("method Export")] HRESULT Export([in] IDispatch* pNodeDisp, [in] BSTR bstrPath, [out,retval] VARIANT* pvResultFiles); }; 注册导出插件当您完成COM组件编写后,您还需要注册您的COM组件。除了标准的COM组件注册外,还需要在注册表的某些位置,写入一些数据,来告诉CyberArticle,有这样一个CyberArticle导出插件。
CyberArticle导出插件注册位置:
HKEY_CURRENT_USER\Software\Wizissoft\CyberArticle\Plugins\Export
(仅对当前windows用户有效)
或者
HKEY_LOCAL_MACHINE\Software\Wizissoft\CyberArticle\Plugins\Export
(对当前电脑的所有用户有效)
导出插件组件需要在上面的注册表位置下面,创建一个新的KEY,KEY的名称是COM组件的Class ID
(CLSID),在这个KEY下面,默认的value是该插件的描述。
下图就是一个典型的例子:
在卸载插件的时候,需要将相应的注册表项,从注册表中删除。
如果您使用C++编写插件,可以使用CyberArticleExportPluginHelper.h文件里面的函数注册一个CyberArticle导出插件,例如:
#include "C:/Program Files/Wizissoft/CyberArticle/developers/interface/include/CyberArticleExportPluginHelper.h" ... // DllRegisterServer - Adds entries to the system registry STDAPI DllRegisterServer(void) { // registers object, typelib and all interfaces in typelib HRESULT hr = _AtlModule.DllRegisterServer(); if (SUCCEEDED(hr)) { /* *注册CyberArticle导出插件 */ CyberArticleRegisterExportPlugin(CLSID_CAExportImage, _T("图片")); } return hr; } // DllUnregisterServer - Removes entries from the system registry STDAPI DllUnregisterServer(void) { /* *卸载CyberArticle导出插件 */ CyberArticleUnregisterExportPlugin(CLSID_CAExportImage); // HRESULT hr = _AtlModule.DllUnregisterServer(); return hr; } |
||||||||||||||||||||||||||||||||||
|