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

Тема в разделе "Общие вопросы по С и С++", создана пользователем sergo555, 29 ноя 2011.

  1. sergo555

    sergo555 Гость

    Доброго всем вечера. Есть шаблон Writer с таблицей. Нужно узнать ширину определенного столбца. В интернете нашел код VBA, устанавливающий ширину столбца.
    Код (LotusScript):
    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 версии.
     
Загрузка...

Поделиться этой страницей