OleProcedure()C ++ Builder 10.3

时间:2019-04-30 16:10:59

标签: com c++builder ole

我尝试使用C ++ Builder在Word文档中选择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)

1 个答案:

答案 0 :(得分:2)

OleProcedure()不支持命名参数 1 。您必须以与COM对象they are declared相同的顺序传递参数值,在这种情况下为:

expression.SetRange(Start, End)

因此selection.OleProcedure("SetRange", 0, 10)应该可以正常工作。如果不是,那么您需要更确切地说明到底什么对您不起作用。

1:如果要使用命名参数,则必须访问该变量的保留的IDispatch接口并直接调用其IDispatch::Invoke()方法,并为其提供一个DISPPARAMS包含所需名称和值的结构。