CyberArticle HTML处理插件

CyberArticle HTML处理插件需要实现一个接口:ICAHtmlPlugin
 

注册HTML处理插件

当您完成COM组件编写后,您还需要注册您的COM组件。除了标准的COM组件注册外,还需要在注册表的某些位置,写入一些数据,来告诉CyberArticle,有这样一个CyberArticle HTML处理插件。
 
CyberArticle HTML处理插件注册位置:
    HKEY_CURRENT_USER\Software\Wizissoft\CyberArticle\Plugins\Html(仅对当前windows用户有效)
或者
    HKEY_LOCAL_MACHINE\Software\Wizissoft\CyberArticle\Plugins\Html(对当前电脑的所有用户有效)
 
 HTML处理插件组件需要在上面的注册表位置下面,创建一个新的KEY,KEY的名称是COM组件的Class ID (CLSID),在这个KEY下面,默认的value是该插件的描述。
下图就是一个典型的例子:
 
 
在卸载插件的时候,需要将相应的注册表项,从注册表中删除。
 
如果您使用C++编写插件,可以使用CyberArticleHtmlPluginHelper.h文件里面的函数注册一个CyberArticle HTML处理插件,例如:
 
#include "C:/Program Files/Wizissoft/CyberArticle/developers/interface/include/CyberArticleHtmlPluginHelper.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插件
    CyberArticleRegisterHtmlPlugin(CLSID_CASaveFlvPlugin, _T("保存Flv视频"));
    //
    return S_OK;
}

// DllUnregisterServer - Removes entries from the system registry
STDAPI DllUnregisterServer(void)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    //
    //卸载CyberArticle插件
    CyberArticleUnregisterHtmlPlugin(CLSID_CASaveFlvPlugin);
    //
    _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;
}