问题标签 [com]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1715 浏览

c++ - 未在 IHTMLElement 事件处理程序中获取事件参数

我已经向 IHTMLElement 实例添加了回调,但是当为事件调用 IDispatch::Invoke 时,从来没有任何参数(即 pDispParams->cArgs 和 pDispParams->cNamedArgs 始终为 0)。例如,我为 onmouseup 事件添加回调。据我所知,这个事件的回调应该接收一个 MouseEvent 对象。那是对的吗?如果是这样,我需要做些什么来确保发生这种情况?

这是在 Windows XP SP2 上使用用于 IE 6 sp2(或更好)的 MSHTML。

0 投票
1 回答
162 浏览

asp.net - 关于将旧版 ASP 站点与 .NET 2.0 混合使用的建议

我们刚刚负责更新电子商务应用程序以使用 PayPal 的 PayFlow 产品。该站点最初是用经典的 ASP 编写的,但信用卡处理部分是一个 COM 组件。

我们的计划是用 .NET 2.0 组件替换 COM 组件。在我们出发之前,我正在寻找提示、问题等。

0 投票
5 回答
5644 浏览

c++ - 在最佳时间从 _variant_t 获取 char*

这是我想加快速度的代码。它从 ADO 记录集中获取一个值并将其转换为 char*。但这很慢。我可以跳过 _bstr_t 的创建吗?

0 投票
1 回答
4602 浏览

com - IDL 枚举未显示在类型库中

我有一个使用 MS ATL 库编写的 COM 对象。我在 IDL 中声明了一堆枚举,但在使用 MS COM 对象查看器工具查看类型库时它们不会出现。问题似乎是缺少的枚举实际上并没有被任何 COM 方法用作参数 - 我怎样才能强制这些枚举出现?

例如,在 IDL 中:

即使有问题的枚举没有被任何方法直接使用,它们仍然对使用该对象的任何人有用,但我无法让它们导出。

有没有人见过这个?

0 投票
3 回答
5651 浏览

c# - 从本机 win32 应用程序调用 C# COM 程序集时,如何调试它?

我正在开发一个 C# 程序集,该程序集将通过 COM 从 Delphi 7(iow,本机 win32,而不是 .net)应用程序中调用。

到目前为止,它似乎奏效了。我已经导出了一个 TLB 文件,将它导入到我的 Delphi 项目中,我可以创建我的 C# 对象并调用它的函数。

太好了,但很快我真的想在 C# 代码运行时使用 Visual Studio 来调试它。设置断点,单步执行代码,所有这些。

我尝试在创建 COM 对象后中断 Delphi 代码,然后寻找 VS 附加到的进程,但我找不到。

有没有办法设置 VS2008 来做到这一点?我更希望能够按 f5 并让 VS 启动 Delphi 可执行文件,等待调用 C# 代码,然后将自身附加到它。但我想我可以手动附加到一个进程。

只是请不要告诉我我必须使用 MessageBox.Show 等。

0 投票
3 回答
14195 浏览

c# - 如何 UAC 使用 .NET 提升 COM 组件

我找到了一篇关于如何通过调用 CoCreateInstanceAsAdmin. 但是我无法找到或做的是一种将我的 .NET (c#) 应用程序的组件实现为 COM 对象然后调用该对象以执行需要 UAC 提升的任务的方法。MSDN 将此记录为管理 COM 对象模型

我知道以管理员身份启动应用程序(或另一个应用程序)是可能且非常容易的,以在单独的进程中执行任务(例如参见Daniel Moth 的帖子,但我正在寻找的是一种方法在同一个未提升的 .NET 可执行文件中执行所有操作。这样做当然会在新进程中生成 COM 对象,但由于透明编组,.NET COM 对象的调用者不应该(太很多)意识到这一点。

关于如何通过CoCreateInstanceAsAdminAPI 从 C# 项目中实例化用 C# 编写的 COM 对象的任何想法都会非常有帮助。所以我真的很想学习如何用 C# 编写 COM 对象,然后我可以通过 COM 提升 API 从 C# 调用它。

如果提升的 COM 对象不在同一进程中运行,请不要介意。我只是不想启动整个应用程序。我只想提升将执行代码的 COM 对象。如果我可以写一些类似的东西:

然后让我的主应用程序ElevatedClass通过CoCreateInstanceAsAdmin调用进行实例化。但也许我只是在做梦。

0 投票
9 回答
153613 浏览

.net - 你能解释一下STA和MTA吗?

你能用你自己的话解释一下 STA 和 MTA 吗?

另外,什么是单元线程,它们是否只与 COM 相关?如果是这样,为什么?

0 投票
2 回答
754 浏览

com - 如何为 OLE 自动化编写类库?

我有 Excel 插件,我添加了很多类模块,现在它非常庞大。我想将其转换为类型库或 COM 包,以便我可以将其重新用于 MS Office 套件中的其他应用程序。

我将加载项作为类库项目移植到 Visual Studio,但 Excel 自动化无法识别已编译的 .dll 文件中的类。直觉上,我认为我的代码中需要一个清单、一个接口或类似的东西。

为了公开类的方法和属性以在 OLE 自动化中使用,我需要知道什么?

0 投票
1 回答
3315 浏览

com - 如何为 Windows Vista 编写有效的 IThumbnailProvider

我已经按照 MSDN 上指定的接口编写了缩略图提供程序。但是,我一直无法弄清楚如何以 Vista 实际调用它的方式注册它。有没有人找到为 Vista 工作的缩略图提供商?示例代码或链接将特别有用。

0 投票
3 回答
8809 浏览

vb.net - 将 COM 组件引用添加到 VB.NET 项目时出现问题

我有一个第三方 COM dll 正在尝试添加到 vb.net (2008 express) 项目中。我将 dll 放入 C:\WINDOWS\system32\ 并使用“regsvr32 vxncom.dll”注册它。当我转到项目 > 添加参考并转到 COM 选项卡时,它会显示在可用组件/库的列表中。但是,当我选择库并点击确定时,Visual Studio 会抱怨:“无法添加对‘vxncom 4.0 库’的引用。无法注册 ActiveX 类型库‘C:\WINDOWS\system32\vxncom.dll’。”

我正在做的项目是分发 dll 的人提供的一个示例。当我启动一个新的(空白)vb.net 项目时,该组件也无法添加。

更新 1:

我在有问题的 dll 上运行了dependency walker,这是我在错误日志中得到的内容:

错误:由于隐式依赖模块中缺少导出函数,至少一个模块具有未解析的导入。

有问题的模块似乎是 libeay32.dll,但它已经存在于 C:\WINDOWS\system32 中。

更新 2:

我去了openssl 站点并下载并使用他们的安装程序来更新 libeay32.dll。我在 vxncom.dll 上再次运行了dependency walker,没有错误。回到视觉工作室,它仍然不想添加参考。与之前完全相同的错误。