IActiveScript::CloneIActiveScript::Clone

Clone le moteur de script actuel (moins de n’importe quel état d’exécution actuel), retournant un moteur de script chargé qui ne possède aucun site dans le thread actuel.Clones the current scripting engine (minus any current execution state), returning a loaded scripting engine that has no site in the current thread. Les propriétés de ce nouveau moteur de script seront identiques à celles que du moteur de script d’origine serait dans si elle a été passée à l’état initialisé.The properties of this new scripting engine will be identical to the properties the original scripting engine would be in if it were transitioned back to the initialized state.

SyntaxeSyntax

HRESULT Clone(  
    IActiveScript **ppscript  // receives pointer to IActiveScript  
);  

ParamètresParameters

ppscript
[out] Adresse d’une variable qui reçoit un pointeur vers le IActiveScript interface du moteur de script cloné.[out] Address of a variable that receives a pointer to the IActiveScript interface of the cloned scripting engine. L’hôte doit créer un site et l’appel de la IActiveScript::SetScriptSite méthode sur le nouveau moteur de script avant d’être dans l’état initialisé et, par conséquent, utilisable.The host must create a site and call the IActiveScript::SetScriptSite method on the new scripting engine before it will be in the initialized state and, therefore, usable.

Valeur de retourReturn Value

Retourne l’une des valeurs suivantes :Returns one of the following values:

Valeur de retourReturn Value SignificationMeaning
S_OK Opération réussie.Success.
E_NOTIMPL Cette méthode n'est pas prise en charge.This method is not supported.
E_POINTER Un pointeur non valide a été spécifié.An invalid pointer was specified.
E_UNEXPECTED L’appel n’était pas attendu (par exemple, le moteur de script n'a pas encore été chargé ou initialisé).The call was not expected (for example, the scripting engine has not yet been loaded or initialized).

RemarquesRemarks

Le IActiveScript::Clone méthode est une optimisation des IPersist*::Save, CoCreateInstance, et IPersist*::Load, de sorte que l’état du nouveau moteur de script doit être le même que si l’état du moteur de script d’origine ont été enregistrée et chargée dans un nouveau moteur de script.The IActiveScript::Clone method is an optimization of IPersist*::Save, CoCreateInstance, and IPersist*::Load, so the state of the new scripting engine should be the same as if the state of the original scripting engine were saved and loaded into a new scripting engine. Éléments nommés sont dupliquées dans le moteur de script cloné, mais les pointeurs d’objet spécifique pour chaque élément sont oubliés et sont obtenus par le IActiveScriptSite::GetItemInfo (méthode).Named items are duplicated in the cloned scripting engine, but specific object pointers for each item are forgotten and are obtained with the IActiveScriptSite::GetItemInfo method. Cela permet à un modèle d’objet identiques avec des points d’entrée par thread (un modèle de cloisonnement) à utiliser.This allows an identical object model with per-thread entry points (an apartment model) to be used.

Cette méthode est utilisée pour les hôtes de serveur multithread qui peuvent exécuter plusieurs instances du même script.This method is used for multithreaded server hosts that can run multiple instances of the same script. Le moteur de script peut retourner E_NOTIMPL, auquel cas l’hôte peut obtenir le même résultat en dupliquant l’état permanent et en créant une nouvelle instance du moteur de script avec un IPersist* interface.The scripting engine may return E_NOTIMPL, in which case the host can achieve the same result by duplicating the persistent state and creating a new instance of the scripting engine with an IPersist* interface.

Cette méthode peut être appelée à partir de threads de l’autre base sans résultant dans une légende de l’autre base d’héberger des objets ou à la IActiveScriptSite interface.This method can be called from non-base threads without resulting in a non-base callout to host objects or to the IActiveScriptSite interface.

Voir aussiSee Also

IActiveScriptIActiveScript