<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
<!--***********************************************************
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 ***********************************************************-->


<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
    <module-name>	invocation.uno	</module-name>
    <component-description>
        <author> Daniel Boelzle </author>
        <name>	com.sun.star.comp.stoc.Invocation	</name>
        <description>
You can construct Invocation objects through this factory service.
Invoke createInstanceWithArguments() of XSingleServiceFactory
to create an Invocation adapter for your object;
invoking createInstance() will fail.
Instances implement XInvocation to invoke methods and set/get properties at an object
which corresponds with the object which implements this interface.

There are two ways to get information about this object. First you
can get the implemented method with XInvocation::getMethodNames()
and the properties with XInvocation::getPropertyNames().
Second you can get, if provided, all information about the methods and the
properties with XInvocation::getIntrospection().
Container access is available through the XIndexContainer,
XNameContainer and XEnumerationContainer
(use XInterface::queryInterface).
</description>
        <loader-name>	com.sun.star.loader.SharedLibrary	</loader-name>
        <language>	C++	</language>
        <status value="final"/>
        <supported-service>	com.sun.star.script.Invocation </supported-service>
        <service-dependency>com.sun.star.script.Converter</service-dependency>
        <service-dependency>com.sun.star.beans.Introspection</service-dependency>
        <service-dependency>com.sun.star.reflection.CoreReflection</service-dependency>
        <type>	com.sun.star.script.XInvocation					</type>
        <type>	com.sun.star.script.XInvocation2				</type>
        <type>	com.sun.star.script.InvocationInfo				</type>
        <type>	com.sun.star.script.MemberType					</type>
        <type>	com.sun.star.script.XTypeConverter				</type>
        <type>	com.sun.star.script.FailReason					</type>
        <type>	com.sun.star.beans.XIntrospection				</type>
        <type>	com.sun.star.beans.XIntrospectionAccess			</type>
        <type>	com.sun.star.beans.XPropertySet					</type>
        <type>	com.sun.star.beans.XFastPropertySet				</type>
        <type>	com.sun.star.beans.XMaterialHolder				</type>
        <type>	com.sun.star.beans.XExactName					</type>
        <type>	com.sun.star.beans.PropertyAttribute			</type>
        <type>	com.sun.star.beans.PropertyConcept				</type>
        <type>	com.sun.star.beans.MethodConcept				</type>
        <type>	com.sun.star.lang.XEventListener 		 		</type>
        <type>	com.sun.star.lang.XInitialization 		 		</type>
        <type>	com.sun.star.lang.XTypeProvider					</type>
        <type>	com.sun.star.lang.XServiceInfo					</type>
        <type>	com.sun.star.lang.XSingleServiceFactory			</type>
        <type>	com.sun.star.lang.XMultiServiceFactory			</type>
        <type>	com.sun.star.lang.XMultiComponentFactory		</type>
        <type>	com.sun.star.lang.XSingleComponentFactory		</type>
        <type>	com.sun.star.registry.XRegistryKey				</type>
        <type>	com.sun.star.uno.DeploymentException					</type>
        <type>	com.sun.star.uno.XAggregation					</type>
        <type>	com.sun.star.uno.XWeak							</type>
        <type>	com.sun.star.uno.XComponentContext				</type>
        <type>	com.sun.star.uno.XWeak							</type>
        <type>	com.sun.star.uno.TypeClass						</type>
        <type>	com.sun.star.container.XEnumerationAccess		</type>
        <type>	com.sun.star.container.XNameContainer			</type>
        <type>	com.sun.star.container.XIndexContainer			</type>
        <type>	com.sun.star.reflection.XIdlReflection			</type>
        <type>	com.sun.star.reflection.XIdlClassProvider		</type>
        <type>	com.sun.star.reflection.XIdlClass				</type>
        <type>	com.sun.star.reflection.XIdlArray				</type>
        <type>	com.sun.star.reflection.FieldAccessMode			</type>
    </component-description>
    <project-build-dependency>	cppuhelper	</project-build-dependency>
    <project-build-dependency>	cppu		</project-build-dependency>
    <project-build-dependency>	sal			</project-build-dependency>
    <runtime-module-dependency>	cppuhelper3$(COM)	</runtime-module-dependency>
    <runtime-module-dependency>	cppu3		</runtime-module-dependency>
    <runtime-module-dependency>	sal3		</runtime-module-dependency>
</module-description>
