OleProcedure() C++ Builder 10.3

OleProcedure() C++ Builder 10.3

我尝试使用 C++ Builder 在 Word 文档中 select 10 个字符。

VBA 方法如下所示:

Selection.SetRange Start:=0, End:=10

如何正确地将参数传递给 C++ Builder 方法?

我尝试了几个选项,但没有成功。

selection.OleProcedure("SetRange", Start:=0, End:=10)
selection.OleProcedure("SetRange", "Start:=0", "End:=10")
selection.OleProcedure("SetRange", 0, 10)

OleProcedure() 不支持 命名参数 1。您必须按照 COM 对象 they are declared 相同的顺序传递参数值,在本例中为:

expression.SetRange(Start, End)

所以 selection.OleProcedure("SetRange", 0, 10) 应该可以正常工作。如果不是,您需要更具体地说明什么对您不起作用。

1:如果你想使用命名参数,你将必须访问变体持有的 IDispatch 接口并调用其包含所需名称和值的 IDispatch::Invoke() method directly, providing it with a DISPPARAMS 结构。