COM对象方法可以返回指向另一个对象的指针吗?

时间:2020-08-21 18:57:58

标签: methods interface com

COM对象的方法可以返回指向另一个对象的指针吗?我想知道是否可以从一个接口的结果调用方法到另一个接口。

例如:

object.getA().getB().getC()

由于“对象”,“方法”和“接口”提供了与COM不相关的压倒性结果,因此我一直难以找到有关COM对象可用的数据类型的引用。我想我可能需要购买一些书才能获得更清晰的图片。

1 个答案:

答案 0 :(得分:0)

好的。查看Microsoft Office界面。

Excel或Word的基础对象的排序为Application。对于命名空间,它可以是Excel.Application或Word.Application。

无论是Excel还是Word,它们都具有返回其他对象的Application方法/属性。

对于Excel,Application.Workbooks返回一个对象,该对象是Workbook的集合。使用此对象,可以迭代应用程序的打开文档。并且,每个工作簿中都有一个工作表集合,该集合使您可以迭代工作簿中的每个工作表。工作表中有一个单元格集合,使您可以获取工作表中的单个或一系列单元格。该应用程序具有ActiveWorkbook属性,该属性返回具有当前焦点的工作簿。

对于Word,Application.Documents返回一个对象,该对象是Document的集合。您可以使用此集合迭代打开的文档并获得特定的文档。该文档有一个段落集合。该应用程序有一个ActiveDocument对象,可以将Word文档放在前台。

许多(或大多数)对象都具有“应用程序”属性,该属性返回该对象所属的应用程序。许多(或大多数)具有“父项”属性,该属性返回上下文相关的父项。

所有其他返回对象的属性/方法使Office自动化模型如此强大。想象一下,如果仅返回字符串或数字,将会有多弱。

MsgBox "This instance of Word has " & Application.Documents.Count " documents open."

Dim doc as Document
Set doc = Application.ActiveDocument
MsgBox doc.Name & " has " doc.Paragraphs.Count & " paragraphs"

以上功能并不强大,但可以想象使用对象模型即时创建文档甚至将其邮寄出去。或者,要有一个邮件列表,并获取一个文档,并用名称或地址替换一段文本,然后将该文档分别通过电子邮件发送给每个人。