我在 Delphi 中使用 Microsoft 文本对象模型类型库来使用 Microsoft RichEdit 控件的某些功能。该类型库包含在一个免费软件组件中,并且多年来运行良好。例如,这是一个 ITextDocument 界面,它显示:
ITextDocument = interface(IDispatch)
['{8CC497C0-A1DF-11CE-8098-00AA0047BE5D}']
function Get_Name: WideString; safecall;
function Get_Selection: ITextSelection; safecall;
function Get_StoryCount: Integer; safecall;
...
我不知道它是如何创建的。现在我想为 Windows 8 (MSFTEDIT.DLL) 中为 RichEdit 发布的新接口更新它。例如,根据 MSDN,ITextDocument2 中有一个 Range2 方法和一个新的 ITextRange2 接口。有什么方法可以使用 Delphi 的导入类型库功能来组成新接口的定义?
更新:我想出了如何生成该单元。在 Delphi 中,单击 Import Component,然后从注册的服务中选择“tom”。这将创建一个完全一样的单元。现在的问题是,为了从 Windows 8 中获得新的“tom”界面,如果我需要在其上安装 Delphi,那就太过分了。必须有更简单的方法。不知何故,我必须在 Win 8 上生成一个 TLIB,然后将其导入我在 Windows 7 上的 Delphi 中。任何人都知道如何在 Windows 8 上为那个 msftedit.dll 或 tom 接口生成一个 TLIB?
另一个发现:如果我在 Delphi 中打开 msftedit.dll 作为 tlib 打开,它会显示所有接口。也有一个导出按钮,但单击时不起作用。什么都没发生。我在帮助文件和网络上搜索了 Type Lib Explorer 帮助,但没有找到任何关于为什么该导出按钮不起作用的任何信息。