我正在尝试使用Windows桌面搜索注册新的过滤器。实现这一目标的理想方法是使用现有的持久性处理程序CLSID注册新的过滤器。但是这是不可能的,因为.html PersistentHandler CLSID {eec97550-47a9-11cf-b952-00aa0051fe20}
受WRP(More about the problem)保护。
作为一种解决方法,我正在尝试创建一个与{eec97550-47a9-11cf-b952-00aa0051fe20}
完成相同工作的不同CLSID。
这是我关注的示例代码。我是WiX新手并编辑Windows注册表。
<File Id="HTMLfilter.DLL">
<Class Id="$(var.CLSID_HtmlIFilter)" Context="InprocServer32" ThreadingModel="both" Description="Html Filter" />
</File>
有人可以帮我解决这些问题;
如何创建不隶属于任何文件的CLSID?既然我的 新的CLSID正在做上面提到的CLSID的工作,我想这是 它应该如何。
如何创建名为PersistentAddinsRegistered的子目录 而不是InprocSever32
由于
答案 0 :(得分:1)
查看此页面here显示如何将COM对象添加到安装程序
答案 1 :(得分:1)
我建议将所选分支导出到注册表文件(Export all or part of the registry to a text file)。
然后使用Heat.exe收获注册表文件并将其输出包含在您的项目中。
这是一个例子
<Fragment>
<DirectoryRef Id="TARGETDIR">
<Component Id="cmp6E2CE62C9ADECD355465514E3C8F354E" Guid="PUT-GUID-HERE" KeyPath="yes">
<RegistryKey Key=".ascx\PersistentHandler" Root="HKCR">
<RegistryValue Value="{eec97550-47a9-11cf-b952-00aa0051fe20}" Type="string" />
</RegistryKey>
</Component>
</DirectoryRef>
</Fragment>