OleProcedure () C ++ Builder 10.3 - PullRequest
       46

OleProcedure () C ++ Builder 10.3

0 голосов
/ 30 апреля 2019

Я пытаюсь выбрать 10 символов в документе Word с помощью C ++ Builder.

Метод 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 Ответ

2 голосов
/ 30 апреля 2019

OleProcedure() не поддерживает именованные параметры 1 .Вы должны передавать значения параметров в том же порядке, в котором они объявлены объектом COM, что в данном случае:

expression.SetRange(Start, End)

Так что selection.OleProcedure("SetRange", 0, 10) должно работать просто отлично.Если это не так, вам нужно быть более конкретным о том, что именно не работает для вас.

1: если вы хотите использовать именованные параметры, вам нужно будет получить доступ к удерживаемому варианту IDispatchинтерфейс и вызвать его метод IDispatch::Invoke() напрямую, предоставив ему структуру DISPPARAMS, содержащую нужные имена и значения.

...