Interfaces Windows ScriptWindows Script Interfaces

Les interfaces Microsoft Windows Script permettent à une application d’ajouter des scripts et l’automation OLE.Microsoft Windows Script Interfaces provide a way for an application to add scripting and OLE automation. Les hôtes de script qui s’appuient sur Windows Script peuvent utiliser des moteurs de script provenant de plusieurs sources et fournisseurs pour gérer l’écriture des scripts entre les composants.Scripting hosts that rely on Windows Script can use scripting engines from multiple sources and vendors to manage scripting between components. L’implémentation du script proprement dit (langage, syntaxe, format persistant, modèle d’exécution et ainsi de suite) incombe à l’éditeur de script.The implementation of the script itself—language, syntax, persistent format, execution model, and so on—is left to the script vendor.

La documentation de Windows Script comporte les sections suivantes :Windows Script documentation is divided into the following sections:

Hôtes Windows ScriptWindows Script Hosts

Moteurs Windows ScriptWindows Script Engines

Présentation du débogage de script actifActive Script Debugging Overview

Présentation du profilage de script actifActive Script Profiling Overview

Référence d’interfaces Windows ScriptWindows Script Interfaces Reference

Informations générales sur Windows ScriptWindows Script Background

Les interfaces Windows Script se répartissent en deux catégories : les moteurs Windows Script et les hôtes Windows Script.Windows Script interfaces fall into two categories: Windows Script hosts and Windows Script engines. Un hôte crée un moteur de script et appelle le moteur pour exécuter les scripts.A host creates a scripting engine and calls on the engine to run the scripts. Voici quelques exemples d’hôtes Windows Script :Examples of Windows Script hosts include:

  • Microsoft Internet ExplorerMicrosoft Internet Explorer

  • Outils de création InternetInternet authoring tools

  • ShellShell

    Les moteurs Windows Script peuvent être développés pour tout langage ou environnement d’exécution, notamment :Windows Script engines can be developed for any language or run-time environment, including:

  • Microsoft Visual Basic Scripting Edition (VBScript)Microsoft Visual Basic Scripting Edition (VBScript)

  • PerlPerl

  • LispLisp

    Pour rendre l’implémentation de l’hôte la plus flexible possible, un wrapper OLE Automation pour Windows Script est fourni.To make implementation of the host as flexible as possible, an OLE Automation wrapper for Windows Script is provided. Toutefois, un hôte qui utilise cet objet de wrapper pour instancier le moteur de script n’a pas le même degré de contrôle sur l’espace de noms d’exécution, le modèle de persistance, et ainsi de suite, que celui dont il disposerait s’il utilisait Windows Script directement.However, a host that uses this wrapper object to instantiate the scripting engine does not have the degree of control over the run-time name space, the persistence model, and so on, that it would if it used Windows Script directly.

    La conception de Windows Script isole les éléments d’interface requis uniquement dans un environnement de création, afin que les moteurs de script (par exemple VBScript) et les hôtes (par exemple les navigateurs et les visionneuses) qui ne sont pas concernés par la création puissent rester le plus légers possible.The Windows Script design isolates the interface elements required only in an authoring environment so that nonauthoring hosts (such as browsers and viewers) and script engines (for example, VBScript) can be kept lightweight.

Architecture de base de Windows ScriptWindows Script Basic Architecture

L’illustration suivante montre l’interaction entre un hôte Windows Script et un moteur Windows Script.The following illustration shows the interaction between a Windows Script host and an Windows Script engine.

Les étapes de l’interaction entre l’hôte et le moteur sont présentées dans la liste suivante.The steps involved in the interaction between the host and engine are given in the following list.

  1. Créer un projet.Create a project. L’hôte charge un projet ou un document.The host loads a project or document. (Cette étape n’est pas propre à Windows Script, mais elle est incluse ici par souci d’exhaustivité.)(This step is not particular to Windows Script, but is included here for completeness.)

  2. Créer le moteur Windows Script.Create the Windows Script engine. L’hôte appelle CoCreateInstance pour créer un moteur Windows Script, en spécifiant l’identificateur de classe (CLSID) du moteur de script spécifique à utiliser.The host calls CoCreateInstance to create a new Windows Script engine, specifying the class identifier (CLSID) of the specific scripting engine to use. Par exemple, le navigateur HTML d’Internet Explorer reçoit l’identificateur de classe du moteur de script par le biais de l’attribut CLSID= de la balise HTML <OBJECT>.For example, the HTML browser of Internet Explorer receives the scripting engine's class identifier through the CLSID= attribute of the HTML <OBJECT> tag.

  3. Charger le script.Load the script. Si le contenu du script a été conservé, l’hôte appelle la méthode IPersist*::Load du moteur de script afin de lui transmettre le conteneur des propriétés, le flux ou le stockage de script.If the script contents have been persisted, the host calls the script engine's IPersist*::Load method to feed it the script storage, stream, or property bag. Sinon, l’hôte utilise la méthode IPersist*::InitNew ou IActiveScriptParse::InitNew pour créer un script de valeur null.Otherwise, the host uses either the IPersist*::InitNew or IActiveScriptParse::InitNew method to create a null script. Un hôte qui tient à jour un script sous forme de texte peut utiliser IActiveScriptParse::ParseScriptText pour transmettre au moteur de script le texte du script, après avoir appelé IActiveScriptParse::InitNew.A host that maintains a script as text can use IActiveScriptParse::ParseScriptText to feed the scripting engine the text of the script, after calling IActiveScriptParse::InitNew.

  4. Ajouter des éléments nommés.Add named items. Pour chaque élément nommé de niveau supérieur (tels que les pages et les formulaires) importé dans l’espace de noms du moteur de script, l’hôte appelle la méthode IActiveScript::AddNamedItem pour créer une entrée dans l’espace de noms du moteur.For each top-level named item (such as pages and forms) imported into the scripting engine's name space, the host calls the IActiveScript::AddNamedItem method to create an entry in the engine's name space. Cette étape n’est pas nécessaire si les éléments nommés de niveau supérieur font déjà partie de l’état permanent du script chargé à l’étape 3.This step is not necessary if top-level named items are already part of the persistent state of the script loaded in step 3. Un hôte n’utilise pas IActiveScript::AddNamedItem pour ajouter des éléments nommés d’un sous-niveau (tels que les contrôles dans une page HTML). Au lieu de cela, le moteur obtient indirectement les éléments des sous-niveaux à partir des éléments de niveau supérieur en utilisant les interfaces ITypeInfo et IDispatch de l’hôte.A host does not use IActiveScript::AddNamedItem to add sublevel named items (such as controls on an HTML page); rather, the engine indirectly obtains sublevel items from top-level items by using the host's ITypeInfo and IDispatch interfaces.

  5. Exécuter le script.Run the script. L’hôte fait en sorte que le moteur commence à exécuter le script en définissant l’indicateur SCRIPTSTATE_CONNECTED dans la méthode IActiveScript::SetScriptState.The host causes the engine to start running the script by setting the SCRIPTSTATE_CONNECTED flag in the IActiveScript::SetScriptState method. Cet appel effectuerait probablement tout le travail de construction du moteur de script, notamment la liaison statique, le raccordement aux événements (voir ci-dessous) et l’exécution du code, de manière similaire à une fonction main() à base de script.This call would likely perform any scripting engine construction work, including static binding, hooking up to events (see below), and executing code, in a way similar to a scripted main() function.

  6. Obtenir les informations sur les éléments.Get item information. Chaque fois que le moteur de script doit associer un symbole à un élément de niveau supérieur, il appelle la méthode IActiveScriptSite::GetItemInfo, qui retourne des informations sur l’élément en question.Each time the script engine needs to associate a symbol with a top-level item, it calls the IActiveScriptSite::GetItemInfo method, which returns information about the given item.

  7. Raccorder les événements.Hook up events. Avant de démarrer le script, le moteur de script se connecte aux événements de tous les objets concernés par le biais de l’interface IConnectionPoint.Before starting the actual script, the scripting engine connects to the events of all the relevant objects through the IConnectionPoint interface.

  8. Appeler les propriétés et méthodes.Invoke properties and methods. Lors de l’exécution du script, le moteur de script réalise les références aux méthodes et aux propriétés sur des objets nommés par le biais de IDispatch::Invoke ou d’autres mécanismes de liaison OLE standard.As the script runs, the scripting engine realizes references to methods and properties on named objects through IDispatch::Invoke or other standard OLE binding mechanisms.

Termes relatifs à Windows ScriptWindows Script Terms

Cette liste contient les définitions des termes relatifs à l’écriture de scripts utilisés dans ce document.This list contains definitions of the scripting-related terms used in this document.

TermeTerm DéfinitionDefinition
Objet de codeCode object Instance créée par le moteur de script et associée à un élément nommé, tel que le module derrière un formulaire dans Visual Basic, ou une classe C++ associée à un élément nommé.An instance created by the scripting engine that is associated with a named item, such as the module behind a form in Visual Basic, or a C++ class associated with a named item. Il s’agit de préférence d’un objet OLE COM (Component Object Model) qui prend en charge OLE Automation, afin que l’hôte ou une autre entité non-script puisse manipuler l’objet de code.Preferably, this is an OLE Component Object Model (COM) object that supports OLE Automation so the host or other non-script entity can manipulate the code object.
Élément nomméNamed item Objet OLE COM (de préférence un objet qui prend en charge OLE Automation) que l’hôte juge intéressant pour le script.An OLE COM object (preferably one that supports OLE Automation) that the host deems interesting to the script. Il peut s’agir entre autres des objets Page HTML et Navigateur dans un navigateur web, et des objets Document et Boîtes de dialogue dans Microsoft Word.Examples include the HTML Page and Browser in a Web browser, and the Document and Dialogs in Microsoft Word.
ScriptScript Données qui composent le programme exécuté par le moteur de script.The data that makes up the program that the scripting engine runs. Un script peut être constitué de n’importe quelles données exécutables contiguës, notamment des éléments de texte, des blocs de pcode, ou même des codes d’octets exécutables propres à l’ordinateur.A script can be any contiguous executable data, including pieces of text, blocks of pcode, or even machine-specific executable byte codes. Un hôte charge un script dans le moteur de script par le biais de l’une des interfaces IPersist* ou de l’interface IActiveScriptParse.A host loads a script into the scripting engine through one of the IPersist* interfaces or through the IActiveScriptParse interface.
Moteur de scriptScripting engine Objet OLE qui traite les scripts.The OLE object that processes scripts. Un moteur de script implémente l’interface IActiveScript et, éventuellement, IActiveScriptParse.A scripting engine implements the IActiveScript and, optionally, IActiveScriptParse interfaces.
Hôte de scriptScripting host Application ou programme propriétaire du moteur Windows Script.The application or program that owns the Windows Script engine. L’hôte implémente l’interface IActiveScriptSite et, éventuellement, IActiveScriptSiteWindow.The host implements the IActiveScriptSite and, optionally, IActiveScriptSiteWindow interfaces.
ScriptletScriptlet Partie d’un script qui est rattachée à un objet par le biais de l’interface IActiveScriptParse.A portion of a script that gets attached to an object through the IActiveScriptParse interface. La collection agrégée des scriptlets constitue le script.The aggregate collection of scriptlets is the script.
Langage de scriptScript language Langage dans lequel un script est écrit (par exemple VBScript), et sémantique de ce langage.The language in which a script is written (VBScript, for example) and the semantics of that language.

Voir aussiSee Also

Interfaces Windows ScriptWindows Script Interfaces