Question

Je regardais l'accès au Registre des vsjitdebugger.exe utilisant Moniteur et j'ai remarqué que parfois il interroge le registre de la manière suivante (quelques informations entendue rectifier):

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

Informations sur TreatAs sur les émissions de MSDN il permet de spécifier un GUID pour un autre serveur COM qui sera appelée au lieu de l'original.

Je n'ai pas pu trouver beaucoup plus d'informations sur cette clé, et je ne pouvais l'utiliser sur mon propre objet COM: J'ai deux implémentations différentes d'un même objet COM (dans 2 DLLs séparés, ayant 2 GUIDs séparés), et quand mon processus crée l'objet via GUID, je voudrais que ce pour créer l'autre objet au lieu (via GUID spécifié dans TreatAs). Malheureusement, il semble que Windows tente immédiatement de requête HKCU\Software\Classes\CLSID\{my-guid}\InprocServer32, au lieu de la première recherche TreatAs.

Ma question est essentiellement sur les règles de TreatAs, quand et comment est-elle interrogé?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top