Hi,

is it legal to use the following source code for reading oo Enum/Constant 
values ?
cause i found all vbscript examples seem to use direct values instead of 
constants, for example:
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge

and i am not a vba expert ;-)

Regards

Oliver

'This is a VBScript example
Set objServiceManager= WScript.CreateObject("com.sun.star.ServiceManager")
Set objCoreReflection= 
objServiceManager.createInstance("com.sun.star.reflection.CoreReflection")

'get some constant values
MsgBox "PARAGRAPH_BREAK: " & 
GetConstantValue("com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK"),
64, "Constants"
MsgBox "SOFT_HYPHEN: " & 
GetConstantValue("com.sun.star.text.ControlCharacter.SOFT_HYPHEN"), 64,
"Constants"
MsgBox "HARD_SPACE: " & 
GetConstantValue("com.sun.star.text.ControlCharacter.HARD_SPACE"), 64,
"Constants"

MsgBox "ALWAYS_EXECUTE_NO_WARN: " &
GetConstantValue("com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN"), 
64, "Constants"

'get some enum values
MsgBox "PREV: " & GetEnumValue("com.sun.star.text.PageNumberType", "PREV"), 64, 
"Enums"
MsgBox "CURRENT: " & GetEnumValue("com.sun.star.text.PageNumberType", 
"CURRENT"), 64, "Enums"
MsgBox "NEXT: " & GetEnumValue("com.sun.star.text.PageNumberType", "NEXT"), 64, 
"Enums"

Function GetEnumValue(cName, cValue)
'    GetEnumValue = 
objCoreReflection.forName(cName).getField(cValue).get(Nothing)
    If objCoreReflection.hasByHierarchicalName(cName) Then
       Set oIDL = objCoreReflection.getByHierarchicalName(cName)
       GetEnumValue = oIDL.getField(cValue).get(Nothing)
       Exit Function
    End If
    GetEnumValue = ""
End Function

Function GetConstantValue(cName)
   Set oContext =
objServiceManager.createInstance("com.sun.star.configuration.bootstrap.BootstrapContext")
   Set oTDM = 
oContext.getValueByName("/singletons/com.sun.star.reflection.theTypeDescriptionManager")
   If oTDM.hasByHierarchicalName(cName) Then
       GetConstantValue = oTDM.getByHierarchicalName(cName)
       Exit Function
   End If
   GetConstantValue = ""
End Function

-- 

GnuPG key 0xCFD04A45: 8822 057F 4956 46D3 352C 1A06 4E2C AB40 CFD0 4A45

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to