问题标签 [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 投票
1 回答
2223 浏览

java - 带有附加图像对象的 JXL 和 Apache POI 解析 excel

我曾尝试使用 JXL 和 Apache POI 从 excel 文件中加载数据,到目前为止,JXL 机制运行良好。即使我在文件中嵌入了图像。

我从一个不会解析的源收到一个文件,我得到以下 POI 异常

并且使用 jxl 我得到一个超出范围的索引

该文件加载到excel中但没有加载到开放式办公室中,我在原始数据中唯一能看到的是Adobe XMP Core 4.1相关对象......这似乎是问题的原因,如果我删除图像它工作正常...如果我在其罚款中粘贴另一个 jpg。

有什么办法可以忽略这个吗?我将如何解析这个文件。

谢谢。

0 投票
1 回答
4076 浏览

perl - 如何从 Perl 以只读方式打开 Word 文档?

Perl 中是否有任何方法可以让我以只读模式获取对象,以避免在文件被其他用户锁定时弹出对话框?

0 投票
2 回答
1027 浏览

vba - Word COM/OLE/VBA:如何在内存中保存/加载文档?

根据“Microsoft Office Word™ 2003 Visual Basic Reference”,似乎 Document 对象只能从磁盘加载文件或将文件保存到磁盘。是否可以将文档保存到内存或从内存中加载文档?因为我需要将文档保存到数据库而不是磁盘文件。我用德尔福。

先感谢您。

0 投票
4 回答
8071 浏览

vba - 如何将 stdole.StdPicture 转换为不同的类型?

要获得赏金,请提供带有工作代码的答案。谢谢。

我有一个类型为 vbPicTypeIcon 的 stdole.StdPicture 对象。我需要将其转换为类型 vbPicTypeBitmap。由于项目限制,我需要能够使用 Win32 或 VBA 来执行此操作。我正在尝试将文件的图标加载到命令栏按钮。这是我到目前为止所拥有的。它会产生一个可爱的黑色方块:)我对图形领域真的很陌生,所以如果这是一个基本问题,请原谅我。

0 投票
2 回答
800 浏览

excel - Excel OLE - 当 Excel 嵌入应用程序时,.NET COM 插件的行为不同

我有一个 .NET (C#) 插件,它使用 COM Shim dll 将自身加载到 Excel 中。当 Excel 正常运行时,插件工作正常,没有任何问题。该插件在 Excel 中显示其自己的自定义工具栏,用于执行不同的命令。

当我将 Excel 嵌入到另一个应用程序(例如 DSOFramer 等)中时,插件开始表现得很奇怪。似乎如果我禁用其工具栏上的按钮,则在设置 Visible 属性后它不会再次启用。此外,我收到一堆“未设置对象引用”错误,因为 Application::Selection 对象为 NULL,这在 Excel 正常运行时永远不会发生。有时,当调用 Application::GetAddIns() 方法时,我也会遇到权限错误。

我不确定这里发生了什么,也找不到解释 Excel 嵌入到其他应用程序中时 Excel COM 插件行为的文章。

0 投票
1 回答
701 浏览

.net - 如果我使用 OLE 自动化在 64 位应用程序中加载 32 位控件会发生什么?

我负责的 .NET 应用程序使用第三方控件,该控件只能作为 32 位 COM 组件使用。一段时间以来,我一直在努力寻找让组件和应用程序在 64 位模式下协同工作的方法。我们从控件供应商那里得到了一些帮助——他们不打算很快提供 64 位版本的组件,但他们附加了一个使用 WebBrowser 控件加载组件的 C# 解决方案和一个使用一些有趣的 OLE 的 C++ 解决方案从 WebBrowser 中挖掘对控件界面的引用的代码。

好消息是代码做了它应该做的事情。该组件在 64 位解决方案中正确加载,我正在挖掘我对 ATL 的旧的、参差不齐的知识,以通过 C++ 解决方案来找出如何将控制接口检索到我们的 C# 中。

我担心的是,我对这种配置的理解还不够深入,无法确定我的应用程序可能面临哪些问题。有没有人做过这种性质的事情?我主要担心的是我们可能会开始看到神秘的崩溃,我最终会追溯到一个被 32 位控件破坏的值,我会马上回到我开始的地方。

供参考的控件是 Solidworks 的 EModelViewControl,它包含在 EDrawings 轻量级 CAD 查看器中。这不是一个特别复杂的控件,尽管它们的自动化设置有点有趣。

0 投票
1 回答
939 浏览

c++ - CFSTR_FILEDESCRIPTOR/CFSTR_FILECONTENTS“复制文件”对话框丢失

我有一个支持复制粘贴的命名空间扩展,它使用CFSTR_FILEDESCRIPTOR/ CFSTR_FILECONTENTS将虚拟文件复制到剪贴板。但是,“正在复制文件...”进度对话框不会出现。

在复制操作完成之前,资源管理器似乎挂起。

关于如何让进度对话框工作的任何建议?

谢谢,Mridul。

0 投票
1 回答
1786 浏览

python - 使用 Python 在 MS Office 文档中嵌入对象?

如何使用 Python 在 MS Office 文档中创建嵌入式对象?

我不需要任何花哨的东西,就像在 OLE 的第一个版本中所做的那样:从我的应用程序复制粘贴到例如 MS Word 应该会给我一个嵌入在 Word 文档中的对象,然后我可以加倍-单击以打开我的应用程序的副本并编辑对象。

这可以从 Python/PyQt 应用程序(可能使用 pythoncom?)中完成吗?是否有任何简单的示例可以让我开始?

0 投票
1 回答
1394 浏览

com - 如何进化一个 COM 接口?

众所周知,COM 可以在发布新组件或应用程序时实现向后兼容。这是可能的,因为 COM 中的接口是稳定的,即它们不会改变。

我努力寻找有关如何从一个版本升级到另一个版本的 COM 接口的描述的参考资料或书籍。

以下是我的要求:

我们有一个可以由 ole 自动化驱动的应用程序。此应用程序的新版本可以与旧版本并行安装。

此应用程序的 COM 客户端可以使用与版本无关的 PROGID,在这种情况下它们与应用程序的最新版本一起工作,或者在与特定版本的应用程序一起工作的情况下,使用版本相关的 PROGID。

对 COM 自动化的更改不应破坏任何客户端。

让我们看一个例子:

假设我想发布这个应用程序的 2.0 版,它扩展了一些接口。这是我对 2.0 版的天真方法:

这是正确的方法吗?

我应该在注册表中添加一个类 Application10 和 Application20 以增加为脚本客户端实例化不同版本的应用程序的可能性吗?

更改类型库的版本和GUID 是否正确?

2.0 版中的 IDocument 有一个新的 IID。我还能在 IApplication.ActiveDocument 中使用 IDocument 吗?

我应该如何在不同版本的 Windows 注册表中注册 coclass 或接口?

请注意,我不使用 ATL 或除 WIN32-API 之外的其他库。

如果你知道我在哪里可以找到这方面的信息(书籍、参考资料等),请推荐一个。

我将衷心感谢您的帮助。

0 投票
3 回答
2393 浏览

perl - 如何从 Win32::OLE 中的 HWND 获取 COM 对象?

在 Perl 中,如果我有一个窗口对象的 HWND,如何使用该句柄访问该 COM 对象?我查看了 Win32::OLE,但我得到的最接近的是GetActiveObject方法,它需要一个类。