Windows Script HostsWindows Script Hosts

Quand vous implémentez un hôte Microsoft Windows Script, vous pouvez raisonnablement supposer qu’un moteur de script appelle uniquement l’interface IActiveScriptSite dans le contexte du thread de base, et ce tant que l’hôte effectue les opérations suivantes :When implementing Microsoft Windows Script host, you can safely assume that a scripting engine only calls the IActiveScriptSite interface in the context of the base thread as long as the host does the following:

  • Choisit un thread de base (généralement le thread qui contient la boucle de messages).Chooses a base thread (generally the thread that contains the message loop).

  • Instancie le moteur de script dans le thread de base.Instantiates the scripting engine in the base thread.

  • Appelle les méthodes du moteur de script uniquement à partir du thread de base, sauf aux emplacements spécifiquement autorisés, comme avec IActiveScript::InterruptScriptThread et IActiveScript::Clone.Calls scripting engine methods only from the base thread, except where specifically allowed, as in the cases of IActiveScript::InterruptScriptThread and IActiveScript::Clone.

  • Appelle l’objet de répartition du moteur de script uniquement à partir du thread de base.Calls the scripting engine's dispatch object only from the base thread.

  • Garantit que la boucle de messages s’exécute dans le thread de base si un handle de fenêtre est fourni.Ensures that the message loop runs in the base thread if a window handle is provided.

  • Garantit que les objets dans le modèle objet de l’hôte approvisionnent uniquement des événements dans le thread de base.Ensures that objects in the host's object model only source events in the base thread.

    Ces règles sont suivies automatiquement par tous les hôtes à thread unique.These rules are automatically followed by all single-threaded hosts. Le modèle restreint décrit ci-dessus a été intentionnellement conçu de manière assez souple pour permettre à un hôte d’abandonner un script bloqué en appelant IActiveScript::InterruptScriptThread à partir d’un autre thread (lancé par un gestionnaire Ctrl+Pause ou similaire) ou de dupliquer un script dans un nouveau thread en utilisant IActiveScript::Clone.The restricted model described above is intentionally loose enough to allow a host to abort a stuck script by calling IActiveScript::InterruptScriptThread from another thread (initiated by a CTRL+BREAK handler or the like), or to duplicate a script in a new thread using IActiveScript::Clone.

RemarquesRemarks

Aucune de ces restrictions ne s’applique à un hôte qui choisit d’implémenter une interface IActiveScriptSite à threads libres et un modèle objet à threads libres.None of these restrictions apply to a host that chooses to implement a free-threaded IActiveScriptSite interface and a free-threaded object model. Un tel hôte peut utiliser l’interface IActiveScript à partir de n’importe quel thread, sans restriction.Such a host can use the IActiveScript interface from any thread, without restriction.

Voir aussiSee Also

Windows Script, interfacesWindows Script Interfaces