2012-03-06 4 views
1

Windowsデスクトップサーチで新しいフィルタを登録しようとしています。達成するための理想的な方法は、既存の永続ハンドラCLSIDに新しいフィルタを登録することです。しかし、これはできません.html PersistentHandler CLSID、{eec97550-47a9-11cf-b952-00aa0051fe20}は、WRP(More about the problem)で保護されています。WiXを使用してWindowsレジストリに新しいCLSIDを追加します。

回避策として、{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の作業を行っているので、私はこれが のはずだと思います。名前のAAサブディレクトリを作成する方法

  • ではなくInprocSever32

の をPersistentAddinsRegisteredおかげ

答えて

1

は、このページhereを見てみると、インストーラにCOMオブジェクトを追加する方法を

1

を示してありI選択したブランチをレジストリファイル(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> 
ある
関連する問題