问题标签 [ole]

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 投票
2 回答
8740 浏览

c# - 如何在 OpenOffice 中进行简单的邮件合并

我需要通过 OLE 或本机 API 使用 C++、VBScript、VB.Net 或 C# 在 OpenOffice 中进行简单的邮件合并。有什么好的例子吗?

0 投票
5 回答
5644 浏览

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

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

0 投票
3 回答
2090 浏览

c++ - 为什么Win32 OleGetClipboard() 函数会返回CLIPBRD_E_CANT_OPEN?

Win32 API 函数 OleGetClipboard() 在什么情况下会失败并返回CLIPBRD_E_CANT_OPEN

更多背景信息:我正在协助修复 Firefox 错误。详情在这里:

错误 444800 - 无法以无损格式从剪贴板检索图像数据

在我帮助编写的自动化测试中,我们看到 OleGetClipboard() 有时会失败并返回CLIPBRD_E_CANT_OPEN。这是出乎意料的,从 Windows 剪贴板中提取图像数据的 Firefox 代码取决于该调用是否成功。

0 投票
3 回答
2924 浏览

c# - 为什么我需要 OleDbCommand.Prepare()?

我正在使用通过存储查询(名为“UpdatePaid”,如下所示的 3 个参数)与 MSAccess 表对应的数据网格和适配器,如下所示:

它工作正常......但真正奇怪的是,直到我输入odc.Prepare()调用它才起作用。因此,我的问题是:在使用 OleDb 存储的过程/查询时,我是否需要一直这样做?为什么?我还有另一个项目即将推出,我必须用 SqlDbCommand 做同样的事情......我也必须用这些做吗?

0 投票
1 回答
3392 浏览

c# - 通过 OLE 实现 Excel 自动化 - 抑制/捕获对话框错误?

我通过 C# 程序和 OLE 刷新 Excel 2007 数据连接。大部分工作由单个 Workbooks.RefreshAll() 语句完成。

就像刷新电子表格的本质一样,各种事情都可能出错。在刷新过程中,程序可以给出关于“无法从文件'|'中读取数据”的对话框错误消息,以及关于“重叠的透视表报告”的消息。这两个都是致命的,我应该能够捕捉到这些错误,并以错误退出我的程序。

不幸的是,我似乎无法捕捉到这些问题,相反,我的自动化程序一直处于等待状态,直到我出现并在对话框中按 Enter 键。

有谁知道是否可以以编程方式捕获 excel 对话框中显示的错误,而不是将它们显示给用户?

0 投票
1 回答
333 浏览

windows - SDI 中的 OLE 客户端。如何添加工具栏?

我有一个 SDI,我正在使用 OLE 将 Excel 加载到其中。我想为此添加一个工具栏,我可以使用它来拥有一个非常突出且明显的“导入”按钮(以及其他一些按钮)。当 Excel 激活时,我添加的工具栏MFC全部隐藏或从界面中删除。当 Excel Ole 项目变为活动状态时,有没有办法让工具栏保持在界面上?

我试过FloatControlBar在初始化 Excel OLE 项后调用,但没有效果。我想将菜单(确实保留并正常运行)扭曲成工具栏,但它需要停靠在左侧(要求)并具有用于命令的大而可见的图形描述......我还没有找到了一种方法来做到这一点。CMenu类允许图形菜单项,但我还没有发现一种方法可以对菜单命令本身做很多事情(除了commandid在消息表中获取它)。

0 投票
2 回答
631 浏览

php - 如何使用 OLE_COLOR 作为参数从 PHP 调用 COM 函数?

我正在尝试使用 COM 互操作扩展从 PHP 调用 COM 对象。一个函数需要 OLE_COLOR 作为参数?有没有办法从 PHP 传递这种值?

我尝试传递一个简单的整数值但没有成功。

0 投票
1 回答
1986 浏览

windows - 需要 ActiveX 控件才能将 Excel 嵌入对话框

我正在构建一个“从 Excel 导入”功能。它必须在一个 DLL 中,从非 MFC 应用程序调用。必须提供电子表格的图像,用户可以在其中拖动选择框(以选择单元格),然后单击 IMPORT 按钮,让正确的事情发生。无法启动电子表格,旁边有一个按钮,并且在 DLL 中发生。

我在 DLL 中使用了 MFC 对话框的路线,但在尝试在对话框的窗口上为 excel 调出 OLE 客户端时被阻止。我发现只有使用 OLE 显示 Excel 的支持需要 SDI。我能够让自动化功能工作,我可以读取单元格并在我的对话框中绘制它们的“假图像”......但我担心这将不符合我的要求。

所以我尝试创建一个 SDI。我能够创建一个将 Excel 用作 OLE 客户端的 SDI。我能够处理“选择更改”事件,并获取我需要的单元格数据。在这一点上,我被 2 项挫败:

  1. 无法使此 SDI 在 MFC DLL 中工作。CWinApp 构造函数中的崩溃,断言 AfxGetThread 不为空。将“theApp”移动到单个导出的 DLL 函数中的本地范围内,但仍然无法使其工作,但出现不同的症状:添加时崩溃 AFX_MANAGE_STATE(AfxGetStaticModuleState()); 要导出的 DLL 函数,如果我不使用它,则永远不会输入 OnInitInstance。尝试添加对应用程序的 Run() 函数的调用,但这没有帮助。如果有人认为他们知道问题所在,我可以发布此代码。

  2. Excel 客户端项处于活动状态时无法显示工具栏。我可以将我的“导入”(和其他选项)放在顶部的菜单栏上,但这还不够明显。甚至一个浮动工具栏也被关闭了。这样做是有道理的,因为如果存在无法对当前活动项目执行操作的工具栏会令人困惑……但就我而言,这是一个问题。

所以现在我想我需要回到对话框方法,并嵌入一个 ActiveX 控件,该控件会显示一个要导入的 Excel 电子表格文件。

必须允许我处理选择更改事件,或者必须允许我找到选择了哪些单元格(或者如果单击对话框上的“导入”按钮导致所选单元格变为未选中,则最近选择了哪些单元格)。

它还必须附带合理的许可条款,因为这将用于公众广泛使用的商业应用程序中。

如果有人知道我一直在尝试的任何一种方法的“快速修复”,那也很有用。

希望可以有人帮帮我!

0 投票
1 回答
1176 浏览

vb.net - 我将如何使用 COM OLE 对象进行 TDD

我有一个试图为其编写包装器的 OLE COM 对象,我已决定开始使用 TDD 为其编写代码,因为我相信它会让我对我正在尝试编写的内容有更好的方向感。COM 对象有一个这样的接口:

[Do] 命令将采用以下内容

现在我正在尝试编写一个包装器,所以有一个这样的函数:

现在我遇到的主要问题是,每次我想编写一个新测试和一些代码时,我都必须创建一个 OLE 对象的实例,等待应用程序启动(30 秒+),测试我的小功能,关闭并处理 OLE 对象,更改代码并再次运行它。

我的问题是:有没有更好的方法来完成所有这些,而不必每次都启动 OLE 应用程序?我听说过模拟对象,但没有真正研究过,他们会在这里帮助我吗?如果有怎么办?

编辑:我现在意识到我必须为 Mapinfo 制作一个模拟对象,我的问题是如何制作一个可以采用不同格式字符串的模拟对象?这将如何帮助我验证包装器中的代码是否正确?

0 投票
1 回答
1833 浏览

excel - Microsoft_Office Excel 工作表类的 CoCreateInstance 失败。0x80040514 "类未注册"

我正在处理的示例调用 Microsoft_Office Excel 工作表类的 CoCreateInstance。它失败,HRESULT 为 0x80040514(“类未注册”)。系统上注册了其他 Excel 类(Excel.Application),但没有为 Worksheet 注册的类.....可以注册这个类吗?

更新:我正在使用 Microsoft 的 DSOFramer 示例项目。它首先尝试使用 IMoniker 类进行绑定。如果失败,它会为 clsid 调用 CoCreateInstance。这可能适用于其他 MS Office 对象,但当它是 Excel 时,该类适用于工作表。我将示例修改为 CoCreateInstance _Application,然后获取工作簿,然后为目标文件调用 Workbooks::Open,它返回一个 Worksheet 对象。然后我返回该指针并与原始示例代码路径合并。现在都在工作。