Компилятор MIDL генерирует код для прокси/заглушки с процедурами регистрации, которые записываются в HKEY_LOCAL_MACHINE. Есть ли способ (желательно без взлома сгенерированного MIDL кода и без обхода всего этого сгенерированного кода в пользу пользовательского кода) зарегистрировать сгенерированный MIDL p/s в HKEY_CURRENT_USER?
Кроме того: будет ли это работать, если и p/s, и COM-сервер зарегистрированы для каждого пользователя? Я только что обнаружил (после очень разочаровывающих 48 часов), что p/s, зарегистрированный для всей машины, не будет работать правильно, если COM-сервер зарегистрирован для каждого пользователя. В частности, в этих обстоятельствах логика асинхронного вызова (ICallFactory::CreateCall) p/s не будет работать.
<RpcProxy.h>
SDK, он использует NdrDllRegisterProxy(). Нет ничего невозможного, но вы должны любить делать ошибки. - person Hans Passant   schedule 15.05.2015ATL::AtlSetPerUserRegistration(true)
, что влияет только на регистрацию, выполняемую ATL. - person Michael Gunter   schedule 15.05.2015RegOverridePredefKey
HKLM куда-то в безопасное место, затем вы делаетеDllRegisterServer
и перенаправляете регистрацию. Поскольку вы уже добились определенных успехов в ручной регистрации, этот подход к перенаправлению выглядит работоспособным и, что более важно, может автоматизировать перенаправление в целом. - person Roman R.   schedule 16.05.2015