Перевод С Vba На C++

  • Автор темы sergo555
  • Дата начала
S

sergo555

#1
Доброго всем вечера. Есть шаблон Writer с таблицей. Нужно узнать ширину определенного столбца. В интернете нашел код VBA, устанавливающий ширину столбца.
Код:
Sub SetTwoColsWidths
Dim oTblColSeps 'Массив разделителей столбцов таблицы.
Dim oTable 'Первая текстовая таблица в документе.
'Печатаем
oTable = ThisComponent.getTextTables().getByIndex(0)
oTblColSeps = oTable.TableColumnSeparators
Rem Меняем позицию этих двух разделителей.
oTblColSeps(0).Position = 5000
oTblColSeps(1).Position = 7000
REM Нужно вернуть этот массив обратно в таблицу
oTable.TableColumnSeparators = oTblColSeps
End Sub
Пытаюсь перевести этот код под свои задачи на Builder.
C++:
//Открываем ОО
Variant App = Variant::CreateObject("com.sun.star.ServiceManager");
Variant Desktop = App.OleFunction("createInstance", "com.sun.star.frame.Desktop");
int Bounds[2] = {0,-1};
Variant Params = VarArrayCreate(Bounds, 1, varVariant);
Variant DocOO = Desktop.OleFunction("LoadComponentFromURL", "file://localhost/c:/shablon.doc", "_blank", 0, Params);
//Получаем массив разделителей
Variant oTable = DocOO.OleFunction("getTextTables").OleFunction("getByIndex", 0);
Variant oTblColSeps = oTable.OlePropertyGet("TableColumnSeparators");
//Узнаем ширину столбцов
int Size = oTblColSeps.OleFunction("getByIndex", 1).OlePropertyGet("Position");
Но при выполнении кода на последней строке вылетает: несовпадение типов. Что я не так написал?
PS "TableColumnSeparators" из-за багов OpenOffica не работает на 3 версии.