问题标签 [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 回答
1018 浏览

c++ - OLE 入门 - 什么是好的学习项目选择?

我怀疑我很快将需要编写一个“集成”库,该库需要从 Java 调用 Windows 上的 OLE 对象。

我之前已经在 Windows 上完成了 Java 到 C/C++ 的集成(使用 C/C++ 和 JNI)——所以我对等式的这一部分并不陌生。

然而; 我想尝试围绕 OLE 对象编写一个 C/C++ 包装器,以便为项目的该部分提供测试旋转。

所以,一些问题:

  1. 我可以用 VS C++ Express Edition 做 OLE。我相信答案是,“是的,但是你没有 MFC,所以你不能调用 Microsoft OLE 对象(例如 Excel、Word 等)”

  2. 如果我对#1 的假设是正确的,我需要一个“测试”应用程序,它提供一个我可以调用的 OLE 对象——对于一些好的做法有什么建议?

0 投票
2 回答
201 浏览

visual-studio - 从 Delphi 中自动化 Visual Studio 并启动项目项

Visual Studio 类型库

我正在尝试从 Delphi 打开 Visual Studio(用于编辑 SSRS 报告),并从我自动生成的解决方案文件中加载特定的项目项。

我已经导入了 Visual Studio 类型库,并且可以创建对象,并钻取解决方案,直到我拥有正确的 ProjectItem

objDTE := CreateOleObject('VisualStudio.DTE') as DTE;

但是,我现在正处于拥有 ProjectItem 的位置,并且想要执行以下操作

_ProjectItem.Open(vsViewKindDesigner);

不幸的是 vsViewKindDesigner 是某种我找不到类型库的常量,它必须与下面的特定 Guid 相关。

为了在 ProjectItem.Open 方法中使用此常量,我可以从中导入此类型库的任何想法?

谢谢!

0 投票
4 回答
1677 浏览

c++ - C++、OLE、Excel 自动化:EAccessviolation at 00000800

我正在编写一个后台服务应用程序,它必须自动从 Excel 2003 文件中读取数据。但无论我尝试什么,方法 OlePropertyGet() 总是在尝试从地址“00000800”读取时导致 EAccessViolation 错误。

该错误总是发生在此代码片段的最后一行,并且似乎与方法接收的参数无关:

我对此进行了一些广泛的谷歌搜索,但没有发现任何有帮助的东西,只有这个论坛帖子有人有同样的问题,但没有提供有关原因或解决方案的任何信息(有一点有点好笑作者提到他知道原因,但没有说是什么!)。

我愿意接受有关导致此问题的原因以及如何解决此问题的任何想法,以及 Excel OLE 自动化的替代方法。

0 投票
2 回答
3528 浏览

sharepoint - 临时 Internet 文件(通过 IE 从 SharePoint 读取)。如何找到网址?

当 IE 用户单击驻留在 SharePoint 中的文件的链接(并且用户选择“只读”访问权限)时,该文件被复制到 Internet 临时文件,我的应用程序被打开并将该文件名作为参数传递。我正在尝试在我的应用程序中实现“签出”按钮,以便用户可以从只读模式切换到签出和编辑模式。我无法找到一种方法来了解文件的 SharePoint URL。在签出和编辑时,没问题:有一个注册表项将我系统上的文件映射到 SharePoint 中的 URL;对于只读文件,我还没有找到类似的东西。

编辑:Windows 资源管理器中有一个可用的 URL 列,但是当我显示该列(在资源管理器中)时,所有值都是空白的。此外,我找不到任何会为我返回此值的文件信息 api 调用。

更新:我在 wininet.lib 中发现了一些有希望的调用:FindFirstUrlCacheEntryEx(和“下一个”)以及 FindFirstUrlCacheGroup(和下一个)。他们似乎没有返回任何数据,从我读到的,这些只返回的应用程序对 wininet api 调用缓存的使用——而不是 IE。

我还尝试在打开文件时运行 IE 对我的应用程序进行的 COM 调用列表,以查看如果我支持它所看到的接口。一个看起来很有希望的是 IMonikerProp 接口,当我实现它时,它确实被调用了……但是它只为我提供了 mime 类型属性、我的应用程序的 classid 和 TrustedDownload 标志。

0 投票
1 回答
1719 浏览

perl - 为什么 Perl 和 Word VBA 中 Word 文档的页数不同?

我有一个(一组)Word 文档,我试图在 Perl 中使用 Win32::OLE 获取各种属性(页数、作者等):

这将返回 4 页。但是文档的实际页数是9。第一节的页数是4。我想要文档的总页数。

如果在 Word VBA 中,我执行以下操作:

这将显示 9。“属性/统计”页面中显示的页面数为 9。

我必须强制重新计算吗?有什么方法可以让 OLE 库强制重新计算,还是我必须分别处理每个部分?

我在 XP、Word 2007、ActivePerl v5.10.0 上。

0 投票
3 回答
2924 浏览

com - COM / OLE / ActiveX / IDispatch 混乱

我无法理解这些术语之间的差异。

COM 和 ActiveX 是同义词吗?

ActiveX 对象只是公开 IDispatch 的 COM 对象吗?

许多较旧的 MSDN 页面提到 IDispatch 时没有任何 COM 上下文。它是否有单独的历史,并且是在其生命周期的后期才在 COM“保护伞”下引入的?

OLE 在哪里适合?一般而言,它在 MFC 命名和 MSDN 中的(相当大的)存在 - 都只是遗留问题吗?

维基百科提供了一些见解,但不多。我找不到更深入的参考。

0 投票
3 回答
4713 浏览

vba - 使用 VBA 在新实例中打开 excel 2007 时出现问题(使用 OLE 和绑定对象框架)

我在使用 VBA(来自 Access 2002)创建新的 excel 2007 实例时遇到问题。

起初我误解了这个问题,它比我想象的要复杂。

创建新进程(我以为没有),但仍然发生奇怪的事情。我使用 OLE 将 Excel 文件存储在 SQL Server 数据库中。

这是将 excel 文件绑定到表单的函数:

上下文:

ad 1第二个进程 excel.exe 启动

ad 2添加了这一行来检查第二个过程发生了什么

ad 3 OLE 将文件绑定到现有的 excel 实例,第二个进程在这里被杀死:/

所以问题是:

  1. 为什么 tExcelObjFrame.Action = acOLEActivate 会杀死第二个进程

  2. 如何在第二个过程中强制对象框架激活 excel 文件

编辑

我在这里找到了部分解释(没有明确的解决方案):

http://www.xtremevbtalk.com/showthread.php?t=292170

  1. 如果没有正在运行的 Excel 实例,OLE 会在您直接或通过编程访问该对象时创建一个 Excel 实例。
  2. 如果 Excel 的实例已在运行,则这是 OLE 对象使用的实例。

问题是 OLE 对象选择了错误的 excel 实例。问题是是否有办法将 OLE 指向特定实例。

此处描述的相同问题(未给出解决方案):

http://groups.google.com/group/microsoft.public.win32.programmer.ole/browse_thread/thread/9c4cde2a79453037

0 投票
1 回答
2479 浏览

delphi - Delphi:TOleControl 将 ActiveControl 置于错误状态?

在 Mike Lischke 的Virtual Treeview 中,添加了解决方法代码以修复在同一窗体上使用TWebBrowser控件时出现的错误。

问题在于,如果用户尝试与TOleControlTWebBrowser 从中下降)进行交互,第一次鼠标点击就会被吃掉。然后他们必须再次单击以赋予控制焦点。然后他们可以与控件交互。

他有评论要解释:

派生自的每个控件TOleControl都有潜在的焦点问题。

为了避免包含允许测试类的OleCtrls单元(其中将包含Variants ),该接口用于测试,这是一个很好的指标。TOleControlIOleClientSiteTOleControl

从完整的片段:

问题是解决方法不再对我有用。老实说,我不知道问题到底是什么,以及他的解决方案是如何解决的。

有没有人知道他的评论理解他在说什么,可以解释问题是什么,以及他应该如何解决问题?

包装的非 VCL 控件(如 TWebBrowser)的解决方法,这些控件不使用 VCL 机制,并使 ActiveControl 属性处于错误状态,这会在控件重新聚焦时引起问题。从 TOleControl 派生的每个控件都有潜在的焦点问题。

代码达到预期

声明,但它只是没有做的伎俩。

我会修复它,但我不知道他是如何找到它的,也不知道TOleControl不“使用 VCL 机制并让 ActiveControl 属性处于错误状态”的原因。


奖金阅读

我最初在 2008 年新闻组上问过这个问题borland.public.delphi.nativeapi.win32

Soft-Gems 论坛上的问题

Bump 20110515(12 个月后)

Bump 20150401(7 年后):在 XE6 中仍然不起作用

凹凸20210309(11年后)

0 投票
2 回答
6040 浏览

c# - 从 MS Access OLE 对象列创建图像文件(使用 C# 或 VB.NET)

OLE 对象列包含图像,但图像类型 (jpg/gif/tiff) 未知。这些图像需要从数据库中提取并保存到磁盘。该应用程序主要使用 VB.NET,但也欢迎使用 C# 示例。

谢谢拉胡尔

0 投票
2 回答
2499 浏览

delphi - MS Word Ole 自动化、ADO 和外来字符

我正在尝试将 WideString 文本从数据库(ADO / MS Access)导出到 MS Word 文档(Delphi 7),但未正确传输外来字符(即“ è ”而不是“ č ”):

我也尝试过CreateOleObject()直接使用,但没有区别。

我错过了什么?

谢谢!