Бьюсь со вставкой из буфера обмена, не получается. Подскажите как реализовать.
Код на бейсике:
Код:
Set ServiceManager = CreateObject("com.sun.star.ServiceManager")
Set Desktop = ServiceManager.createInstance ("com.sun.star.frame.Desktop")
Dim arr() As Variant
Set Document=Desktop.LoadComponentFromURL("private:factory/swriter", "_blank", 0, arr())
Set oClip=ServiceManager.CreateInstance("com.sun.star.datatransfer.clipboard.SystemClipboard")
Set oClipContents=oClip.getContents()
oTypes=oClipContents.getTransferDataFlavors()
Сall oText.insertString(oCursor,oClipContents.getTransferData(oTypes(0)),False)
Мой код:
Код:
Array arr = new Array(Types::String);
COMVariant arg;
COM OpenOffice, Desktop, Document, oClip, oClipContents;
COM Sheets, Sheet, Cell, oCursor;
COMVariant oTypes;
;
OpenOffice = new Com("com.sun.star.ServiceManager");
Desktop = OpenOffice.createInstance("com.sun.star.frame.Desktop");
arg = COMVariant::createFromArray(arr);
Document = DeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, arg);
oClip = OpenOffice.CreateInstance("com.sun.star.datatransfer.clipboard.SystemClipboard");
oClipContents = oClip.getContents();
oTypes = oClipContents.getTransferDataFlavors();
Sheets = Document.getSheets();
Sheet = Sheets.getByIndex(0);
Cell = Sheet.getCellByPosition(2,2);
oCursor = Cell.createTextCursor();
oCursor.gotoStart(false);
Cell.insertString(oCursor, oClipContents.getTransferData(oTypes[1]), False);
Проблема с последней строкой, как сделать что бы брался oTypes[1] ?