c++ - 从非提升的进程连接到提升的 COM 服务器

标签 c++ com windows-7 windows-vista uac

我们有一个程序启动一个托管本地 COM 服务器的子进程,由于各种原因必须提升启动。只要父进程和子进程都被提升,一切都可以正常工作。

但是,我们也希望在父进程未提升时运行。启动子进程会产生一个 UAC 对话框(这是可以接受的),并且子进程似乎正确启动并成功调用了 CoRegisterClassObject。但是,父进程在调用具有相同 CLSID 的 CoCreateInstance 时获取 REGDB_E_CLASSNOTREG。

我认为这是某种权限问题。如何在提升的服务器中注册我的类以允许从非提升的进程调用它?

最佳答案

阅读The COM Elevation Moniker了解几种访问提升的进程外服务器的方法。

关于c++ - 从非提升的进程连接到提升的 COM 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2509969/

相关文章:

C++双向运算符,可能吗?

c++ - 库中的可执行依赖项

c# - C# 中的 System.String[*] 和 System.String[] 区别

wcf - 来自 Windows 7 的缓慢 Web 服务(和 WCF 服务)调用

c++ - 访问冲突读取位置 0xcdcdcdd5

c++ - 使第一个模板参数可选

.net - Powershell-将COM对象类型转换为字符串

python - 如何通过 Python 使用 COM INetCfg 对象?

c++ - 询问 CFSTR_PRINTERGROUP 时出现错误 DV_E_FORMATETC - Windows 7

tomcat - 无法使用xampp控制面板安装Tomcat