* OpenOffice.org automation
* Sample from http://udk.openoffice.org/common/
* man/tutorial/office_automation.html
* Translated to VFP code
* Ted Roche, 30 Dec 2001
LOCAL loOfcMgr, loDesktop, loDocument, args(1), ;
loCoreReflection, loPropertyValue, loText,;
loCursor
* Create the Service Manger and Desktop
loOfcMgr = CreateObject(;
"com.sun.star.ServiceManager")
loDesktop = loOfcMgr.createInstance(;
"com.sun.star.frame.Desktop")
* The args array is an array of "PropertyValue"
* objects - create by invoking OO.o reflection
loCoreReflection = loOfcMgr.createInstance( ; "com.sun.star.reflection.CoreReflection" )
loPropertyValue = CREATEOBJECT("Empty")
loCoreReflection.forName( ;
"com.sun.star.beans.PropertyValue"). ;
createobject(@loPropertyValue)
args[1] = loPropertyValue
args[1].name = "ReadOnly"
args[1].value = .F.
* Tell VFP to pass arrays to the loDesktop object
* as zero-based, by reference
COMARRAY(loDesktop,10)
* Open a new empty writer document
loDocument = loDesktop.loadComponentFromURL(;
"private:factory/swriter","_blank", 0, @args)
* Insert sample Text
loText=loDocument.getText() && Create text object
* Create a cursor object (position pointer)
loCursor= loText.createTextCursor()
loText.insertString(loCursor, ;
"The first line in the created text document."+;
CHR(10) + "Fox Rocks!", .F.)