我正在查看的注册表访问
vsjitdebugger.exe
使用
Process Monitor
我注意到
有时
它以以下方式查询注册表(省略了一些信息):
HKCU\Software\Classes\CLSID\{some-guid} NAME NOT FOUND Desired Access: Read
...
HKCU\Software\Classes\CLSID\{some-guid}\TreatAs NAME NOT FOUND Desired Access: Query Value
...
HKCU\Software\Classes\CLSID\{some-guid}\InprocServer32 NAME NOT FOUND Desired Access: Read
...
HKCR\CLSID\{24E669E1-E90F-4595-A012-B0FD3CCC5C5A}\InprocServer32 SUCCESS Desired Access: Read
有关的信息
TreatAs on MSDN
显示它允许为将调用的另一个COM服务器(而不是原始服务器)指定一个GUID。
我找不到关于这个键的更多信息,也不能在我自己的COM对象上使用它:我有两个不同的COM对象实现(在两个单独的DLL中,有两个单独的GUID),当我的进程通过GUID创建对象时,我希望它创建另一个O。对象(通过在treatas中指定的guid)。不幸的是,Windows似乎立即尝试查询
HKCU\Software\Classes\CLSID\{my-guid}\InprocServer32
而不是先找治疗。
我的问题基本上是关于治疗规则,何时以及如何被质疑?