gpt4 book ai didi

excel - 如何查询嵌入式 OLE 应用程序的显示名称

转载 作者:行者123 更新时间:2023-12-03 00:24:03 25 4
gpt4 key购买 nike

我想查询嵌入在我的 Delphi XE4 Win32 应用程序中的 OLE 应用程序的显示名称。

使用

TOleContainer类,容器可以包含不同的OLE应用程序(例如MS WordMS Excel,...),依赖关于在哪个文件中进行编辑。

我想要返回的是 Microsoft Word 2007(或 2010 或 2013 或...)或至少 Microsoft Word,如标题中所示普通 Word 实例的栏。

<小时/>

编辑:TOndrej 的回答非常有帮助。谢谢。

不幸的是,正如我在他的答案下面的评论中所述,它没有显示真正的应用程序标题。我找到了这个question on SO 。据说,我可以使用 _Application.Caption 属性访问主机应用程序的标题。我没有 _Application 实例,而是 IOleObject。类型转换(MyOleObjectInterface as _Application)失败。

如何作为 _Application 访问 OleObject?

最佳答案

参见IOleObject.GetUserType方法:

function GetOleObjectAppName(const OleObject: IOleObject): string;
var
AppName: PWideChar;
begin
OleCheck(OleObject.GetUserType(USERCLASSTYPE_APPNAME, AppName));
try
Result := AppName;
finally
CoTaskMemFree(AppName);
end;
end;

使用示例:

  ShowMessage(GetOleObjectAppName(OleContainer1.OleObjectInterface));

关于excel - 如何查询嵌入式 OLE 应用程序的显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31727397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com