'************************************************************************* ' ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ' ' Copyright 2008 by Sun Microsystems, Inc. ' ' OpenOffice.org - a multi-platform office productivity suite ' ' $RCSfile: fwl_FilterFactory.xba,v $ ' ' $Revision: 1.3 $ ' ' This file is part of OpenOffice.org. ' ' OpenOffice.org is free software: you can redistribute it and/or modify ' it under the terms of the GNU Lesser General Public License version 3 ' only, as published by the Free Software Foundation. ' ' OpenOffice.org is distributed in the hope that it will be useful, ' but WITHOUT ANY WARRANTY; without even the implied warranty of ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ' GNU Lesser General Public License version 3 for more details ' (a copy is included in the LICENSE file that accompanied this code). ' ' You should have received a copy of the GNU Lesser General Public License ' version 3 along with OpenOffice.org. If not, see ' ' for a copy of the LGPLv3 License. ' '************************************************************************* '************************************************************************* ' Be sure that all variables are dimensioned: option explicit ' REQUIRED VARIABLES for interface/service tests: 'Required for lang.XMultiServiceFactory Global cServiceName As String Global bCreateInstanceWithoutArguments As Boolean Global aArguments() As Variant Sub CreateObj() '************************************************************************* ' COMPONENT: ' fwl.FilterFactory '************************************************************************* On Error Goto ErrHndl oObj = createUnoService("com.sun.star.comp.framework.FilterFactory") Dim filterNames() As Variant filterNames = oObj.getElementNames() Dim i As Integer Dim filterType As String Dim filterProps As Object Dim filterImpl As String Dim filName As String for i = 0 to ubound(filterNames) filterProps = oObj.getByName(filterNames(i)) filterImpl = getPropertyValue(filterProps, "FilterService") if Not isNULL(filterImpl) and len(filterImpl) > 0 then filterType = getPropertyValue(filterProps, "Type") Out.log("Found filter '" + filterNames(i) + "', type: " + _ filterType + ", service name: '" + filterImpl + "'") cServiceName = filterType bCreateInstanceWithoutArguments = false Dim args(0) As new com.sun.star.beans.PropertyValue args(0).Name = "FilterName" args(0).Value = filterNames(i) endif next i Exit Sub ErrHndl: Test.Exception() End Sub Function getPropertyValue(byVal props As Variant, propName As String) As String Dim i As Integer for i = 0 to ubound(props) if props(i).Name = propName then getPropertyValue = props(i).Value exit function endif next i End Function