|
19.02.2007, 21:24 | #1 |
Участник
|
может приведете код, который вы портировали?
можете его портировать на VBS или JS? не может быть что вы перепутали с количеством аргументов? нет ли в классе COMVariant статического метода, который создает нужный вам массив? |
|
20.02.2007, 12:50 | #2 |
Участник
|
Вот два варианта кода один для
1С: Код: OpenOffice = СоздатьОбъект("com.sun.star.ServiceManager"); scr=СоздатьОбъект("MSScriptControl.ScriptControl"); scr.language="javascript"; scr.eval("Массив=new Array()"); Массив=scr.eval("Массив"); scr.AddObject("OpenOffice",OpenOffice); scr.eval("Массив[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')"); scr.eval("Массив[0].Name='Hidden'"); scr.eval("Массив[0].Value=false"); DeskTop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop"); Document = DeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, Массив); Код: ServiceManager = CreateOleObject("com.sun.star.ServiceManager"); Desktop = ServiceManager.OleFunction("createInstance","com.sun.star.frame.Desktop"); Document = Desktop.OleFunction("LoadComponentFromURL", "private:factory/scalc", "_blank", 0, VariantArray ); |
|
20.02.2007, 16:50 | #3 |
Участник
|
Получилось...
X++: static void Job2(Args _args) { COM OpenOffice; COM DeskTop; COM Document; COMVariant arg; Array arr = new Array(Types::String); //Создание экземпляра OpenOffice.org OpenOffice = new Com("com.sun.star.ServiceManager"); DeskTop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop"); // create and initialize a COMVariant object arg = COMVariant::createFromArray(arr); //Создание документа Document = DeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, arg); } |
|
|
За это сообщение автора поблагодарили: belugin (14), _AnK_ (1). |
Теги |
openoffice, интеграция, экспорт |
|
|