3DVL

Motion Inspector script

OLE – ActiveX






 

Ces fonctions permettent la réalisation d’un contrôleur d’automatisation, c’est à dire une application qui contrôle un serveur automatisé (comme Excel ou Word par exemple) en lui envoyant des commandes OLE.


Dans la terminologie ActiveX, un objet à contrôler possède deux caractéristiques :

  1. Les propriétés

  2. Les Méthodes.


Les propriétés d’un objet, que l’on peut lire et/ou modifier, correspondent aux attributs de l’objet. Par exemple la propriété “ Visible ” (true ou false) détermine si l’objet est affiché à l’écran ou non. On peut comparer les propriétés des objets à des variables (modifiables) ou à des contantes (non modifiables).


Les méthodes sont des procédures et des fonctions attachées à l’objet. Par exemple, la méthode “ Quit ()” d’un objet permet de fermer et de détruire cet objet.


Pour envoyer des commande à un objet, un contrôleur d’automatisation doit connaître le nom de ses méthodes et de ses propriétés exposés aux autres programmes.

Généralement ces noms peuvent se trouver dans la documentation de l’application serveur.


Liste de Fonctions


oleObject oleCreateObject(String name, bool delete)


oleSetBoolProp(oleObject obj, String name, bool set)

oleSetLongProp(oleObject obj, String name, Long set)

oleSetDoubleProp(oleObject obj, String name, Double set)

oleSetStringProp(oleObject obj, String name, String set)

oleSetPropArg(oleObject obj, String name, Array params, Long nb)


Bool oleGetBoolProp(oleObject obj, String name)

Long oleGetLongProp(oleObject obj, String name)

Double oleGetDoubleProp(oleObject obj, String name)

String oleGetStringProp(oleObject obj, String name)

oleObject oleGetObjectProp(oleObject obj, String name)


Bool oleGetBoolPropArg(oleObject obj, String name, Array params, Long nb )

Long oleGetLongPropArg(oleObject obj, String name, Array params, Long nb)

Double oleGetDoublePropArg(oleObject obj, String name, Array params, Long nb)

String oleGetStringPropArg(oleObject obj, String name, Array params, Long nb)

oleObject oleGetObjectPropArg(oleObject obj, String name, Array params, Long nb)


oleMethodVoid(oleObject obj, String Name, Array params, Long nb)

Bool oleMethodBool(oleObject obj, String Name, Array params, Long nb)

Long oleMethodLong(oleObject obj, String Name, Array params, Long nb)

Double oleMethodDouble(oleObject obj, String Name, Array params, Long nb)

String oleMethodString(oleObject obj, String Name, Array params, Long nb)

variant oleMethodAutoVal(oleObject obj, String Name, Array params, Long nb)

oleObject oleMethodObject(oleObject obj, String Name, Array params, Long nb)


OleCall

//-----------------------------------------------------

// Exemple d'utilisation de OLE avec Word

// Version US uniquement

// En effet - suivant chaque pays,

// les ordres OLE automatisation

// sont différents.

//-----------------------------------------------------

Const IDYES := 6;


var Word; // Application Word


Procedure InsertLine(line)

var param := array(1);

param[0] := line + endl;

oleMethodVoid(Word, "Insert", param, 1);

end;


Procedure FileNew()

var param := array(1);

param[0] := "Normal";

oleMethod(Word, "FileNew", param, 1);

end;


Procedure ShowApp()

var param := array(1);

oleMethodVoid(Word, "AppShow", param, 0);

end;


Procedure SaveAs(Name)

// Enregistrement du Fichier

// avec un mot de passe = 3DVL (en majuscule)

var params := array(4);

params[0] := Name;

params[1] := Nil;

params[2] := Nil;

params[3] := "3DVL"; // password

oleMethodVoid(Word, "FileSaveAs", params, 4);

end;


Procedure FileClose()

var param := array(1);

param[0] := 1;

oleMethodVoid(Word, "FileClose", param, 1);

end;


Procedure Main()

// Creation d'une instance de Word

Word := oleCreateObject("Word.Basic");

// Creation d'un document

FileNew();

// Visualisation de la fenetre

ShowApp();

// Insertion de quelques lignes

InsertLine("Ceci est un exemple d'utilisation de OLE et Word");

InsertLine("Ce texte est produit par le programme OleWord.3dl");


var Name := GetNewFileName("Fichier Word (document)|*.doc");

if typeof(Name) = "String" then

SaveAs(Name);

end;


if MessageYesNo("Fermer le Fichier ..", "OLE Word") = IDYES then

FileClose();

end;

End;