代码之家  ›  专栏  ›  技术社区  ›  Lyubomyr Shaydariv

从.NET程序集访问相同的命名COM实体

  •  0
  • Lyubomyr Shaydariv  · 技术社区  · 15 年前

    我又遇到了一个小问题(我希望如此),我不知道如何访问PowerPoint提供的一些演示文稿属性(但是我甚至不知道如何谷歌或在网站上搜索它:()从C。让我解释一下。我们可以访问 TextRange 通过互操作程序集和MS Office内置的VBA编辑器分别在C和VBA中设置属性。可以,但此属性包含两个相同的命名实体- Runs . vba允许以方法和属性的形式访问它(此外, 属性对象内部是有用的),但是属性 在无法通过互操作程序集访问的情况下, Runs() 方法只能被访问(它返回文本运行对象)。我已经使用.NET Reflector深入研究了interop程序集,但没有发现与 属性(尽管具有不同唯一性而不是方法名的属性具有自己的 get_Property() set_Property() 方法)。似乎互操作程序集缺少 属性为 特朗奇 接口。坦白说,我不确定。:(

    我能用什么方法进入吗 属性来自C?我对COM等不太熟悉,希望能得到您的帮助。谢谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Hans Passant    15 年前

    我认为您在讨论Microsoft.Office.Core.TextRange2.Runs()属性。它有两个参数,即start和length。这样的属性不能用C语言直接访问,至少不能 until C# 4.0 . 目前只有Visual Basic支持索引属性。

    解决方法是改用get_runs()。

        2
  •  0
  •   jehell    15 年前

    在C中,您必须指定从何处开始和从何处结束:

    foreach(txtrange txtrn in txtrng.runs(0,txtrng.length))。 {

    if(txtrn.font.name==“Arial”)。 messagebox.show(txtrn.text)显示;

    }