Web 应用程序与遗留代码的互操作
我正在尝试将简单的 WinForms 应用程序迁移到 ASP.Net Web 应用程序。 WinForms 应用程序基本上只是复杂的纯 C 应用程序的表示层,并通过 COM 互操作…
如何为第三方定义的 COM 接口注册代理/存根?
有另一家公司提供使用 IAnotherCompanyInterface 的产品。我们想要发送一个实现 IAnotherCompanyInterface 的 COM 对象。该接口与自动化不兼容,因此…
使用 COM 互操作在 SQL 查询期间实现响应式 UI 的 C# 最佳方法
我正在为用 VB6 编写的 EXE 制作一个 C# DLL 插件。我无法访问 EXE 的源代码。 DLL 本身可以正常工作并与 EXE 进行良好的通信。 以下是事件的处理过程…
lock(syncObject) 什么时候可以抛出异常?
我在 .NET 中编写了一个 com 组件,如果我尝试锁定任何方法中的任何对象(由与我的 com 组件通信的非托管代码调用),我会收到异常。 我目前没有异常…
最简单的 COM Interop 应用程序泄漏内存 - 我做错了什么?
C# namespace TestController { [ComVisible(true)] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IController { void D…
即使找到接口,CoCreateInstance也会返回E_NOINTERFACE
我有一个 COM 类 CMyCOMServer 在一个应用程序中实现 IMyInterface,两者都具有正确的 GUID。如果请求 IUnknown 或 IMyInterface,CMyCOMServer::Quer…
有关于 IdentityUnmarshal 接口的文档吗?
每当我将组件放入 COM+ 并在客户端上调用 CoCreateInstance() 时,都会发生以下情况: 运行时实例化对象(调用 IClassFactory::CreateInstance()) 运…
为什么使用 CComBSTR 而不是只传递 WCHAR*?
我是 COM 新手。 的优点到底是什么? L"String" Replace: with CComBSTR(L"String") 我可以在 .NET 应用程序的 COM 部分看到一个更改列表,其中所有字…
如果我违反了 ProgID 的要求,会发生什么?
这篇 MSDN 文章 指出任何 ProgID 都必须满足一些正式要求,包括长度限制。然而,没有提及如果违反这些规定会发生什么。 我在我们的代码库中发现了几个…
导入类型库时添加奇怪的命名空间
我想向我的 COM 接口添加一个接受 IStream* 的方法。以下是 idl 摘录: import "oaidl.idl" import "ocidl.idl" import "objidl.idl"//IStream is dec…
CComBSTR 内存泄漏
我读到以下代码会导致内存泄漏。但不明白为什么。 CComBSTR str pFoo->get_Bar(&str) pFoo->get_Baf(&str) 当我们没有分配任何东西时,它是…
如何通过 COM 方法返回 .NET 对象数组
我有一个 .NET 程序集。它恰好是用 C++/CLI 编写的。我通过 COM 公开了一些对象。一切都工作正常,但我一生都无法弄清楚如何从方法返回我自己的对象的…
从 64 位应用程序使用 32 位进程内 COM 服务器的简单方法有哪些?
我有一个 32 位本机 C++ ATL 进程内 COM 服务器,它依赖于大量旧版 32 位库。我需要在 64 位应用程序中使用它并尽可能进行最小的更改。 一种选择是将…