Description de l’outil Xray

Diffusé par le projet fr.OpenOffice.org

Sommaire

1 Introduction	3

1.1 Evolution de ce document	3

1.2 Evolution de l’outil Xray depuis la version 5.0	3

2 Installation	4

3 Utilisation	4

3.1 Lancement	4

3.1.1 Chargement manuel de la bibliothèque XrayTool	5

3.1.2 Chargement automatique de la bibliothèque XrayTool	6

3.2 Affichages	7

3.2.1 Affichage Propriétés	7

3.2.2 Affichage Méthodes	9

3.2.3 Affichage détaillé	10

3.2.4 Affichage Services	12

3.2.5 Affichage Interfaces	13

3.3 Analyse en cascade	14

3.4 Valeurs simples et tableaux	16

3.5 Documentation API	18

3.5.1 Configurer Xray pour utiliser la documentation API	18

3.5.2 Configurer l’adresse du SDK	19

3.5.3 Configurer l’appel du navigateur	19

3.5.4 Afficher la documentation sur un objet	19

4 Utiliser Xray avec d’autres langages de programmation	20

4.1 Depuis un script Python dans OpenOffice.org	20

4.2 Depuis un script BeanShell dans OpenOffice.org	20

4.3 Depuis un script Javascript dans OpenOffice.org	21

4.4 À travers COM, sous MS‑Windows	22

4.4.1 Depuis VBA	22

4.4.2 Depuis Delphi	23

5 Crédits	24

6 Licences	25

6.1 Documentation	25

6.2 Bibliothèque de macros	25

Introduction

Le point le plus gênant pour un programmeur habitué de VBA est que l’EDI d’OpenOffice.org ne propose pas automatiquement des noms de méthode ou de propriété en cours de frappe. Ceci provient d’une différence de principe de réalisation de l’API OpenOffice.org. Il ne comporte pas d’objets prédéfinis, mais tous les objets Uno nécessaires sont instanciés à mesure des besoins, les uns à partir des autres, en commençant par un ServiceManager. Il n’est pas possible de connaître statiquement (à la compilation) les propriétés et méthodes disponibles sur une variable objet Uno. On ne peut le savoir qu’à l’exécution du codage, et c’est ce que fait la macro Xray.

Xray est un outil pour le programmeur de macros Basic qui utilise l’API OpenOffice. Il a pour but de visualiser les propriétés, méthodes, services, interfaces, disponibles sur une variable objet. Il utilise pour cela les fonctions d’introspection et de réflexion disponibles pour tout objet Uno.

Xray est capable d’afficher dans un navigateur web la documentation officielle de l’API concernant une propriété, méthode, service ou interface de l’objet.

Xray peut effectuer une analyse récursive sur l’objet en cours, si une propriété contient un objet API, ou si une méthode renvoie un objet API.

Xray est utilisable sur les versions 1.1.x et 2.x d’OpenOffice.org. C’est pourquoi il est présenté dans un document sxw, et non odt.

Avertissement

Xray est une aide, mais il ne peut pas remplacer la lecture de la documentation existante (Sun Programmer’s Guide, et dans le SDK le Developer’s Guide et la description IDL). En français, on pourra lire le livre Programmation OpenOffice.org 2 aux éditions Eyrolles.

Evolution de ce document

Ce document décrit la version 5.2 de l’outil Xray, et montre l’installation sur une version 2.0 d’OpenOffice.org.

Un chapitre supplémentaire explique comment appeler Xray à partir d’autres langages de programmation.

Les captures d’écran (au format Gif, 300DPI) ont été réalisées avec Screenshot Captor .

Evolution de l’outil Xray depuis la version 5.0

De nombreuses détails améliorent la présentation et la facilité d’utilisation.

L’installation est simplifiée.

Xray peut maintenant afficher :

une valeur de type Hyper, identifiée comme INT64,

une valeur de type Char,

un tableau Basic multi-dimensionnel,

l'indication et la documentation des attributs d’interface,

le nom et la valeur de chaque élément d’un tableau de PropertyValue,

l’indication <empty> ou <null> quand une propriété n’a pas de valeur,

pour une propriété contenant une énumération, le nom qualifié correspondant.

L’analyse en cascade peut être déclenchée par un double-clic sur la ligne de propriété ou méthode.

L’accès à la documentation API d’un objet peut se faire par un Ctrl-F1.

Installation

Cliquez sur ce bouton pour lancer la macro d’installation. Après confirmation, elle supprimera toute installation existante de Xray et installera la nouvelle version.

Il est recommandé de lire attentivement la description de Xray dans les chapitres suivants.

Si vous voulez désinstaller les bibliothèques Xray de votre installation OpenOffice, cliquez sur ce bouton :

Utilisation

Xray ne change rien à l’EDI. C’est un sous-programme que vous devez appeler depuis votre codage.

Lancement

Dans votre macro en cours de mise au point, vous devez insérer (temporairement) un appel de la macro Xray.La plupart des écrans affichés au chapitre 3.2 ont été réalisés sur un document Writer en exécutant cette simple macro:

Sub Main

Xray ThisComponent

End Sub

Dans cet autre exemple d’une macro d’un document Calc, l’objet Feuille1 va être visualisé :

Document = ThisComponent

Feuilles = Document.getSheets()

Feuille1 = Feuilles.getByIndex(0)

Xray Feuille1

Remarque

Si la ligne de code Xray déclenche une erreur d’exécution, c’est que la bibliothèque n’est pas chargée ; lisez les sections 3.1.1 et 3.1.2.

Chargement manuel de la bibliothèque XrayTool

Pour que la macro principale Xray soit reconnue il est nécessaire que la bibliothèque XrayTool soit chargée. Celle-ci se trouve dans « Mes Macros » (ou dans « soffice » avec OpenOffice.org version 1). Si le panneau se présente ainsi, la bibliothèque XrayTool n’est pas chargée :

Pour charger la bibliothèque XrayTool il suffit de faire un double-clic sur son nom. La branche de ses modules se développe :

Chargement automatique de la bibliothèque XrayTool

Pour éviter d’effectuer la petite manipulation précédente à chaque démarrage d’OpenOffice, installez la macro ci-dessous dans Mes Macros.Standard (ou dans soffice.Standard avec OpenOffice.org version 1).

Sub LoadingLibraries

BasicLibraries.LoadLibrary("XrayTool")

End Sub

Assignez-la à l’événement « Démarrage de l’application ». Vérifiez bien ce qu’indique la case du bas « Enregistrer dans ».

La même macro peut vous servir à charger d’autres bibliothèques de l’application.

Affichages

A l’exécution de votre macro, un panneau va afficher des informations sur l’objet. Vous pouvez visualiser :

ses propriétés (affichage initial),

ses méthodes,

ses services,

ses interfaces.

Affichage Propriétés

Les noms des propriétés sont en première colonne.

Le type de chaque propriété est indiqué en deuxième colonne. S’il est précédé de [] la propriété contient un tableau (une séquence API) dont chaque élément est du type indiqué. L’indication struct signifie que la propriété est une structure Uno. L’indication object correspond aux autres objets de l’API.

La troisième colonne affiche le contenu de la propriété, lorsque c’est possible. Cas particuliers :

l’indication <empty> ou <null> signifie que la propriété n’a pas de valeur dans ce contexte ; un tableau vide est indiqué <empty> ;

le contenu d’un string, est affiché entouré de guillemets ; si l'affichage direct n'est pas possible (exemple texte trop long) l’indication <...> est affichée à la place, signifiant qu'on peut demander un Xray pour voir le texte complet ;

aucune valeur n’est indiquée pour un type object, struct, ou un tableau ; mais il est possible de demander un Xray sur cet élément, comme décrit plus loin.

La quatrième colonne fournit des informations complémentaires :

may be void : la donnée peut ne pas exister ;

read-only : propriété en lecture seule ;

write-only : propriété en écriture seule, donc impossible de lire sa valeur !

pseudo-prop : la propriété Xxxx fait en réalité appel aux méthodes getXxxx et setXxxx, respectivement pour lire et pour écrire.

Par défaut, les propriétés sont affichées dans l’ordre fourni par l’introspection. Vous pouvez les afficher en ordre alphabétique en cliquant la case Affichage “ A ... Z ”.

Affichage Méthodes

Les noms de méthodes sont en première colonne. La deuxième colonne liste les paramètres de la méthode, en reprenant la syntaxe Basic. Le nom de chaque argument est fourni par l’introspection de l’objet. Le type de chaque argument est affiché comme dans l’onglet Propriétés. Une méthode comme hasLocation ou initNew ne possède aucun argument : ( )

Si la méthode renvoie une valeur, son type est indiqué en troisième colonne, après AS. Sinon, rien n’est affiché dans cette colonne.

Par défaut, les méthodes sont affichées dans l’ordre fourni par l’introspection. Vous pouvez les afficher en ordre alphabétique en cliquant la case Affichage “ A ... Z ”.

Affichage détaillé

La case à cocher “ Détails ” donne un affichage détaillé des propriétés et méthodes.

Chaque élément désigné par struct ou object dans l’affichage classique est alors remplacé par sa référence exacte dans l’API.

La colonne de droite des propriétés expose d’autres informations obtenues par l’introspection de l’objet, et le cas échéant, le nom API d’une valeur d’énumération.

Pour chaque méthode, le nom de l’interface API qui la supporte est ajouté en fin de ligne.

Les informations sont nombreuses et plus difficile à lire, il sera utile d’élargir le panneau avec les boutons de droite. Pour mieux voir la ligne courante, appuyez sur la touche F2 et utilisez l’ascenseur horizontal.

Le panneau de configuration (cliquer le bouton “ Configurer ”) vous permet de choisir l’affichage par défaut : normal ou détaillé, en ordre naturel ou alphabétique, avec un panneau principal élargi.

Affichage Services

Chaque liste est affichée par ordre alphabétique.

Les services disponibles sont ceux qui peuvent être invoqués par la méthode createInstance() de l’objet.

Affichage Interfaces

Les noms d’interfaces sont listés par ordre alphabétique.

Analyse en cascade

En affichage “ Propriétés ” vous pouvez demander à analyser le contenu d’une de celles-ci en pointant dans la ligne (par un clic de souris), puis en cliquant sur le bouton “ Xray sur la propriété/méthode ”. Cela peut vous apporter plus d’information que celle affichée directement.

En affichage “ Méthodes ” vous pouvez de même demander à analyser la valeur renvoyée par une méthode, à condition qu’elle n’utilise aucun argument. Exemple :

Une méthode plus rapide consiste à faire un double-clic sur la ligne à analyser.

De cette manière vous pouvez analyser différents objets inclus dans l’objet originel, aussi bien que des objets d’objet d’objet d’objet etc.

Si le type résultant est un type simple ou un tableau, sa valeur actuelle s’affichera (voir plus loin).

Pour analyser le résultat d’une méthode utilisant des arguments il est nécessaire de fermer Xray, revenir dans l’éditeur sur votre macro, et modifier l’appel de Xray en utilisant des arguments corrects, par exemple :

xray Feuille1.getCellByPosition(3,5)

Pour revenir sur un objet déjà analysé, cliquez sur la liste de choix présente dans le cadre “ Objet Affiché ”, et choisissez une des entrées existantes.

Le bouton à droite de la liste déroulante permet de revenir à l’objet initial.

Valeurs simples et tableaux

Xray affiche des données quelconques, pas seulement des objets de l’API OpenOffice.org.

Si l’élément étudié est un type simple, ou une variable Basic simple, le type et sa valeur sont affichés.

La valeur d’un entier Integer ou Long est affichée en décimal et en hexadécimal.

Le texte d’une chaîne de caractères String est affiché dans sa totalité, sans mise en forme. Utilisez au besoin les ascenseurs.

Si l’élément est un tableau l’analyse se limite à la première dimension. Les valeurs basse et haute de l’index du tableau sont affichées. La valeur de chaque élément du tableau est affichée, une ligne par élément. Dans le cas d’un élément String la chaîne n’est affichée que si elle ne comporte qu’une seule ligne.

Une « sequence » de l’API est représentée en Basic sous forme d’un tableau. Certaines séquences de l’API sont constituées de structures ou d’objets. Lorsqu’un élément de séquence est un objet ayant une propriété (ou pseudo-propriété) Name et éventuellement Value leurs valeurs sont affichées, voir la figure suivante.

Xray est capable d’afficher un tableau quelconque, et indique l’existence de sous-tableaux. Cet exemple a été réalisé avec la fonction Basic Array() :

Sub Main

Dim v

v = Array(Array(8,5,45), true, Array("a", "b", "z", "hh"), "Bonjour !", pi)

xray v

End Sub

Documentation API

Xray peut afficher dans votre navigateur la documentation de l’API OpenOffice.org concernant :

une propriété (ou une structure)

une méthode,

un service,

une interface.

Configurer Xray pour utiliser la documentation API

Vous devez avoir installé au moins la partie API du SDK en local ou sur votre réseau ; il suffit de décompresser l’archive, ce qui produit une arborescence de fichiers.

La documentation du SDK existe seulement en anglais.

Le SDK est disponible sur le site http://api.openoffice.org/ en suivant le lien download the SDK qui, en principe, conduit vers le plus récent. Il existe plusieurs versions du SDK disponibles sur les serveurs FTP : 1.0.2, 1.1.0, 2.0.4.

La version 2.0.4 du SDK pèse environ 38 M octets.

Avant la première utilisation, cliquez sur le bouton “ Configurer ” sur le panneau Xray. Vous obtenez ce panneau :

Configurer l’adresse du SDK

Recherchez le répertoire qui sert de point de départ au SDK. Par exemple, si vous avez installé le SDK 2.0.4 sur le disque C: avec le système d’exploitation Windows, ce répertoire a pour adresse :

C:\OpenOffice.org_2.0_SDK

Configurer l’appel du navigateur

Indiquez le chemin vers un navigateur. Vous pouvez mémoriser les adresses de 3 navigateurs différents. Si l’affichage échoue, ré-essayez en cochant la case « Cliquer ici ... ».

Afficher la documentation sur un objet

Pointez la ligne dans laquelle se trouve la propriété, la méthode, le service, ou l’interface dont vous voulez voir la documentation. Cliquez ensuite sur le bouton “ Documentation du SDK ”, ou appuyez sur la touche Ctrl-F1.

Lorsque vous demandez l’affichage de la documentation, il se peut que plusieurs pages traitent le même sujet (par exemple pour un objet qui supporte les services XPropertySet et XMultiPropertySet). Xray affiche alors dans votre navigateur la liste des pages trouvées, sous forme de liens. Il arrive aussi qu’aucune page n’existe. Soit il s’agit d’un détail interne volontairement non documenté, soit la documentation est incomplète sur ce point.

Utiliser Xray avec d’autres langages de programmation

À partir des versions 2.0 d’OpenOffice.org un mécanisme d’appel de script a été introduit dans l’API. Tout langage de programmation permettant d’utiliser l’API peut ainsi appeler un script écrit dans un des langages de script supportés par OpenOffice.org.

En utilisant ce mécanisme il est donc possible d’appeler Xray qui n’est pas autre chose qu’un script Basic.

On suppose que le lecteur sait programmer l’API avec les langages utilisés ici. Attention aux instructions qui s’étendent sur plusieurs lignes.

Depuis un script Python dans OpenOffice.org

Voici le contenu d’un fichier à installer dans le répertoire user/Scripts/python/ (ou dans un répertoire Scripts/python/ d’un document). N’oubliez pas que les fins de lignes doivent être de style Unix (Line-Feed).

import uno

from com.sun.star.uno import RuntimeException as _rtex

def xray(myObject):

try:

sm = uno.getComponentContext().ServiceManager

mspf = sm.createInstanceWithContext("com.sun.star.script.provider.MasterScriptProviderFactory", uno.getComponentContext())

scriptPro = mspf.createScriptProvider("")

xScript = scriptPro.getScript("vnd.sun.star.script:XrayTool._Main.Xray?language=Basic&location=application")

xScript.invoke((myObject,), (), ())

return

except:

raise _rtex("\nBasic library Xray is not installed", uno.getComponentContext())

# ___________ example of use _______________

def demoXray():

""" example : using xray in a Writer document """

xTextDoc = XSCRIPTCONTEXT.getDocument()

xText = xTextDoc.Text

xray(xText)

xray("Demo is finished")

g_exportedScripts = demoXray,

Depuis un script BeanShell dans OpenOffice.org

Voici le contenu d’un module dans une bibliothèque BeanShell d’un document (ou de Mes Macros).

import com.sun.star.uno.UnoRuntime;

import com.sun.star.uno.XComponentContext;

import com.sun.star.frame.XDesktop;

import com.sun.star.frame.XModel;

// ____________ declaration of BeanShell xray routine _______________

import com.sun.star.script.provider.XScriptProviderFactory;

import com.sun.star.script.provider.XScriptProvider;

void xray(ObjX) {

xCompCont = XSCRIPTCONTEXT.getComponentContext();

sm = xCompCont.getServiceManager();

mspf = sm.createInstanceWithContext("com.sun.star.script.provider.MasterScriptProviderFactory", xCompCont);

xspf = UnoRuntime.queryInterface(XScriptProviderFactory.class, mspf);

scriptPro = xspf.createScriptProvider("");

xsp = UnoRuntime.queryInterface(XScriptProvider.class, scriptPro);

Xscript = xsp.getScript("vnd.sun.star.script:XrayTool._Main.Xray?language=Basic&location=application");

args = new Object [1];

short [ ] [ ] a;

Object [ ][ ] b;

args[0] = ObjX;

Xscript.invoke(args, a, b);

}

// ____________ end of BeanShell xray routine _____________________

import com.sun.star.text.XTextDocument;

import com.sun.star.text.XText;

oDoc = XSCRIPTCONTEXT.getDocument();

xTextDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class,oDoc);

xText = xTextDoc.getText();

xray(xText);

xray("Demo is finished");

// BeanShell OpenOffice.org scripts should always return 0

return 0;

Depuis un script Javascript dans OpenOffice.org

Voici le contenu d’un module dans une bibliothèque Javascript d’un document (ou de Mes Macros).

importClass(Packages.com.sun.star.uno.UnoRuntime);

importClass(Packages.com.sun.star.text.XTextDocument);

importClass(Packages.com.sun.star.text.XText);

importClass(Packages.com.sun.star.lang.XServiceInfo);

// ____________ declaration of JavaScript xray routine _______________

importClass (Packages.com.sun.star.script.provider.XScriptProviderFactory);

importClass (Packages.com.sun.star.script.provider.XScriptProvider);

function xray(ObjX) {

var xCompCont = XSCRIPTCONTEXT.getComponentContext();

var sm = xCompCont.getServiceManager();

var mspf = sm.createInstanceWithContext("com.sun.star.script.provider.MasterScriptProviderFactory", xCompCont);

var xspf = UnoRuntime.queryInterface(XScriptProviderFactory, mspf);

var scriptPro = xspf.createScriptProvider("");

var xsp = UnoRuntime.queryInterface(XScriptProvider, scriptPro);

var Xscript = xsp.getScript("vnd.sun.star.script:XrayTool._Main.Xray?language=Basic&location=application");

var args = new Array(1);

args[0] = ObjX;

var a = new Array( new Array() );

var b = new Array( new Array() );

Xscript.invoke(args, a, b);

};

// ____________ end of JavaScript xray routine _____________________

oDoc = XSCRIPTCONTEXT.getDocument();

xTextDoc = UnoRuntime.queryInterface(XTextDocument,oDoc);

xText = xTextDoc.getText();

xray(xText);

xray("Demo is finished");

À travers COM, sous MS‑Windows

La plupart des langages modernes disponibles sous MS‑Windows peuvent manipuler l’API OpenOffice.org en utilisant COM. On peut donc appeler le script Basic Xray de manière similaire aux exemples précédents.

Depuis VBA

Ce codage en VBA crée un nouveau document Writer puis appelle Xray avec en argument l’objet document. Il a été testé à partir de Word 2002.

Option Explicit

Sub Main()

Dim sm As Object, DeskTop As Object, oDoc As Object

Dim args()

Set sm = CreateObject("com.sun.star.ServiceManager")

Set DeskTop = sm.createInstance("com.sun.star.frame.Desktop")

Set oDoc = DeskTop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)

xray oDoc

oDoc.Close True

End Sub

Sub xray(myObject As Object)

Dim sm As Object, mspf As Object, scriptPro As Object, xScript As Object

Dim noargs1() As Variant, noargs2() As Variant, arg1(0) As Variant

Set sm = CreateObject("com.sun.star.ServiceManager")

Set mspf = sm.createInstance("com.sun.star.script.provider.MasterScriptProviderFactory")

Set scriptPro = mspf.createScriptProvider("")

Set xScript = scriptPro.getScript("vnd.sun.star.script:XrayTool._Main.Xray?language=Basic&location=application")

Set arg1(0) = myObject

xScript.Invoke arg1, noargs1, noargs2

End Sub

Depuis Delphi

Ce codage en Delphi crée un nouveau document Writer puis appelle Xray avec en argument l’objet document. Il a été testé à partir de la version Delphi 7.

Uses ComObj;

procedure xray(myObject: Variant);

var

ooo, mspf, scriptPro, xScript, arg, noargs1, noargs2: Variant;

begin

ooo:= CreateOleObject('com.sun.star.ServiceManager');

mspf:= ooo.createInstance('com.sun.star.script.provider.MasterScriptProviderFactory');

scriptPro:= mspf.createScriptProvider('');

xScript:= scriptPro.getScript('vnd.sun.star.script:XrayTool._Main.Xray?language=Basic&location=application');

arg:= VarArrayCreate([0,0], varVariant);

arg[0]:= myObject;

noargs1:= VarArrayCreate([0, -1], varVariant);

noargs2:= VarArrayCreate([0, -1], varVariant);

xScript.invoke( arg, noargs1, noargs2);

end;

procedure Main;

var

ooo, Desktop, oDoc, args: Variant;

begin

ooo:= CreateOleObject('com.sun.star.ServiceManager');

Desktop:= ooo.createInstance('com.sun.star.frame.Desktop');

args:= VarArrayCreate([0, -1], varVariant);

oDoc:= Desktop.loadComponentFromURL('private:factory/swriter', '_blank', 0, args);

xray(oDoc);

oDoc.close(True);

end;

Une solution alternative, bien plus simple, consiste à utiliser les ressources de l’outil Delphi_OOo disponible sur le site http://fr.openoffice.org/Documentation/How-to/indexht-programmation.html Son unité OooXray est une version native Delphi équivalente à la macro Xray, réalisé en utilisant COM et les facilités d’affichage de Delphi 7. L’unité OooTools simplifie les appels API. Avantage supplémentaire, ceci fonctionne sur les versions 1.1.x comme 2.0.x d’OpenOffice.org.

Le même exemple se réduit à ceci :

Uses ComObj, OOoTools, OooXray;

procedure Main;

Var

oDoc: Variant;

Begin

ConnectOpenOffice;

oDoc:= StarDesktop.LoadComponentFromURL('private:factory/swriter', '_blank', 0, dummyArray);

Xray(oDoc);

oDoc.close(True);

End;

Crédits

Auteur: Bernard Marcelly

Remerciements à : Laurent Godard pour son idée de module dynamique et pour ses remarques pertinentes.

Intégré par : Sophie Gautier

Dernière modification: 24 Novembre 2006

Contacts : Projet Documentation OpenOffice.org http://fr.openoffice.org

Traductions :

Ce document existe en version 5.1 ou plus récente :

Langue	Traducteur	Site web
Anglais	Bernard Marcelly	http://ooomacros.org/
Portugais (Brésil)	Noelson Alves Duarte	http://www.openoffice.org.br/
Tchèque	Vladimír Graf	http://members.chello.cz/ladinek/ooo/tools/index.html

Licences

Documentation

Appendix

Public Documentation License Notice

The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License. A copy of the License is available at http://www.openoffice.org/licenses/PDL.html.

The Original Documentation is : Description de l’outil Xray

The Initial Writer of the Original Documentation is Bernard Marcelly

Copyright (C) 2003-2006. All Rights Reserved. (Initial Writer contact(s): marcelly@club-internet.fr )

Contributor(s): ______________________________________.

Portions created by ______ are Copyright (C)_________[Insert year(s)].

All Rights Reserved. (Contributor contact(s):________________[Insert hyperlink/alias]).

NOTE: The text of this Appendix may differ slightly from the text of the notices in the files of the Original Documentation. You should use the text of this Appendix rather than the text found in the Original Documentation for Your Modifications.

Bibliothèque de macros

General information on LGPL is available on this Web site.

Une traduction non-officielle de la license LGPL est disponible sur ce site.

The library XrayTool included in this document constitutes a tool which displays information on an OpenOffice API object. Copyright (C) 2003-2006 Bernard Marcelly

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library 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 for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

fr.OpenOffice.org

- Retour au Sommaire	25/25

API Basic Xray

Bernard M.

2003-11-01T23:04:18