IActiveScriptParse::ParseScriptTextIActiveScriptParse::ParseScriptText

Analyse le scriptlet code donné, ajouter des déclarations dans l’espace de noms et l’évaluation du code comme il convient.Parses the given code scriptlet, adding declarations into the namespace and evaluating code as appropriate.

SyntaxeSyntax

HRESULT ParseScriptText(  
    LPCOLESTR pstrCode,              // address of scriptlet text  
    LPCOLESTR pstrItemName,          // address of item name  
    IUnknown *punkContext,           // address of debugging context  
    LPCOLESTR pstrDelimiter,         // address of end-of-scriptlet delimiter  
    DWORD_PTR dwSourceContextCookie, // cookie for debugging  
    ULONG ulStartingLineNumber,      // starting line of the script  
    DWORD dwFlags,                   // scriptlet flags  
    VARIANT *pvarResult,             // address of buffer for results  
    EXCEPINFO *pexcepinfo            // address of buffer for error data  
);  

ParamètresParameters

pstrCode [in] Adresse du texte scriptlet à évaluer.[in] Address of the scriptlet text to evaluate. L’interprétation de cette chaîne varie selon le langage de script.The interpretation of this string depends on the scripting language.
pstrItemName [in] Adresse du nom d’élément qui fournit le contexte dans lequel le scriptlet doit être évaluée.[in] Address of the item name that gives the context in which the scriptlet is to be evaluated. Si ce paramètre est NULL, le code est évalué dans un contexte global du moteur de script.If this parameter is NULL, the code is evaluated in the scripting engine's global context.
punkContext [in] Adresse de l’objet de contexte.[in] Address of the context object. Cet objet est réservé pour une utilisation dans un environnement de débogage, où ce contexte peut être fourni par le débogueur pour représenter un contexte d’exécution actif.This object is reserved for use in a debugging environment, where such a context may be provided by the debugger to represent an active run-time context. Si ce paramètre est NULL, le moteur utilise pstrItemName pour identifier le contexte.If this parameter is NULL, the engine uses pstrItemName to identify the context.
pstrDelimiter [in] Adresse de fin-de-scriptlet délimiteur.[in] Address of the end-of-scriptlet delimiter. Lorsque pstrCode est analysé à partir d’un flux de texte, l’hôte utilise généralement un délimiteur, telles que les guillemets («), pour détecter la fin du scriptlet.When pstrCode is parsed from a stream of text, the host typically uses a delimiter, such as two single quotation marks (''), to detect the end of the scriptlet. Ce paramètre spécifie le délimiteur de l’hôte utilisé, ce qui permet au moteur de script pour fournir certains prétraitement primitifs conditionnelle (par exemple, en remplaçant un guillemet simple ['] par deux guillemets simples à utiliser comme délimiteur).This parameter specifies the delimiter that the host used, allowing the scripting engine to provide some conditional primitive preprocessing (for example, replacing a single quotation mark ['] with two single quotation marks for use as a delimiter). Exactement comment (et si) le script permet de moteur dépend de l’utilisation de ces informations sur le moteur de script.Exactly how (and if) the scripting engine makes use of this information depends on the scripting engine. Définissez ce paramètre sur NULL si l’ordinateur hôte n’utilisez pas un délimiteur pour marquer la fin du scriptlet.Set this parameter to NULL if the host did not use a delimiter to mark the end of the scriptlet.
dwSourceContextCookie [in] Cookie utilisé pour le débogage.[in] Cookie used for debugging purposes.
ulStartingLineNumber [in] Valeur de base zéro qui spécifie la ligne à laquelle l’analyse commencera à.[in] Zero-based value that specifies which line the parsing will begin at.
dwFlags [in] Indicateurs associés le scriptlet.[in] Flags associated with the scriptlet. Peut être une combinaison des valeurs suivantes :Can be a combination of these values:
ValeurValue SignificationMeaning
SCRIPTTEXT_ISEXPRESSIONSCRIPTTEXT_ISEXPRESSION Si la distinction entre une expression de calcul et une instruction est important mais syntaxiquement ambiguë dans le langage de script, cet indicateur spécifie que le scriptlet doit être interprété comme une expression, plutôt que comme une instruction ou une liste d’instructions.If the distinction between a computational expression and a statement is important but syntactically ambiguous in the script language, this flag specifies that the scriptlet is to be interpreted as an expression, rather than as a statement or list of statements. Par défaut, les instructions sont supposées à moins que le bon choix peut être déterminé à partir de la syntaxe du texte scriptlet.By default, statements are assumed unless the correct choice can be determined from the syntax of the scriptlet text.
SCRIPTTEXT_ISPERSISTENTSCRIPTTEXT_ISPERSISTENT Indique que le code ajouté au cours de cet appel doit être enregistré si le moteur de script est enregistré (par exemple, via un appel à IPersist*::Save), ou si le moteur de script est réinitialisé par le biais d’une transition à l’état initialisé.Indicates that the code added during this call should be saved if the scripting engine is saved (for example, through a call to IPersist*::Save), or if the scripting engine is reset by way of a transition back to the initialized state.
SCRIPTTEXT_ISVISIBLESCRIPTTEXT_ISVISIBLE Indique que le texte du script doit être visible (et, par conséquent, peut être appelé par nom) en tant qu’une méthode globale dans l’espace de noms du script.Indicates that the script text should be visible (and, therefore, callable by name) as a global method in the name space of the script.
pvarResult [out] Adresse d’une mémoire tampon qui reçoit les résultats du traitement du scriptlet, ou NULL si l’appelant n’attend aucun résultat (autrement dit, la valeur SCRIPTTEXT_ISEXPRESSION n’est pas définie).[out] Address of a buffer that receives the results of scriptlet processing, or NULL if the caller expects no result (that is, the SCRIPTTEXT_ISEXPRESSION value is not set).
pexcepinfo [out] Adresse d’une structure qui reçoit des informations sur l’exception.[out] Address of a structure that receives exception information. Cette structure est remplie si IActiveScriptParse::ParseScriptText retourne DISP_E_EXCEPTION.This structure is filled if IActiveScriptParse::ParseScriptText returns DISP_E_EXCEPTION.

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.
DISP_E_EXCEPTION Une exception s’est produite lors du traitement du scriptlet.An exception occurred in the processing of the scriptlet. Le pexcepinfo paramètre contient des informations sur l’exception.The pexcepinfo parameter contains information about the exception.
E_INVALIDARG Un argument n’était pas valide.An argument was invalid.
E_POINTER Un pointeur non valide a été spécifié.An invalid pointer was specified.
E_NOTIMPL Cette méthode n'est pas prise en charge.This method is not supported. Le moteur de script ne prend pas en charge l’évaluation au moment de l’exécution des expressions ou des instructions.The scripting engine does not support run-time evaluation of expressions or statements.
E_UNEXPECTED L’appel n’était pas attendu (par exemple, le moteur de script est dans l’état non initialisé ou fermé, ou l’indicateur SCRIPTTEXT_ISEXPRESSION a été défini et le moteur de script est dans l’état initialisé).The call was not expected (for example, the scripting engine is in the uninitialized or closed state, or the SCRIPTTEXT_ISEXPRESSION flag was set and the scripting engine is in the initialized state).
OLESCRIPT_E_SYNTAX Une erreur de syntaxe non spécifiée s’est produite dans le scriptlet.An unspecified syntax error occurred in the scriptlet.

RemarquesRemarks

Si le moteur de script se trouve dans l’état initialisé, aucun code ne sera réellement évaluée pendant cet appel ; au lieu de cela, ce code est en file d’attente et exécuté lorsque le moteur de script est une transition dans (ou via) l’état démarré.If the scripting engine is in the initialized state, no code will actually be evaluated during this call; rather, such code is queued and executed when the scripting engine is transitioned into (or through) the started state. Étant donné que l’exécution n’est pas autorisée dans l’état initialisé, il s’agit d’une erreur d’appeler cette méthode avec l’indicateur SCRIPTTEXT_ISEXPRESSION à l’état initialisé.Because execution is not allowed in the initialized state, it is an error to call this method with the SCRIPTTEXT_ISEXPRESSION flag when in the initialized state.

Le scriptlet peut être une expression, une liste d’instructions ou tout élément autorisé par le langage de script.The scriptlet can be an expression, a list of statements, or anything allowed by the script language. Par exemple, cette méthode est utilisée dans l’évaluation du code HTML <SCRIPT > balise, qui autorise des instructions être exécutée, car la page HTML est en cours de construction, au lieu de simplement les compiler à l’état de script.For example, this method is used in the evaluation of the HTML <SCRIPT> tag, which allows statements to be executed as the HTML page is being constructed, rather than just compiling them into the script state.

Le code passé à cette méthode doit être une portion de code valide et complete.The code passed to this method must be a valid, complete portion of code. Par exemple, dans VBScript, il est non conforme pour appeler cette méthode une fois avec Sub Function et une seconde fois avec End Sub.For example, in VBScript it is illegal to call this method once with Sub Function(x) and then a second time with End Sub. L’analyseur ne doit pas attendre le deuxième appel à la fin de la sous-routine, mais au lieu de cela doit générer une erreur d’analyse, car une déclaration de la sous-routine a été démarrée mais pas terminée.The parser must not wait for the second call to complete the subroutine, but rather must generate a parse error because a subroutine declaration was started but not completed.

Pour plus d’informations sur les États du script, consultez la section des États de moteur de Script de moteurs de Script Windows.For more information about script states, see the Script Engine States section of Windows Script Engines.

Voir aussiSee Also

IActiveScriptParseIActiveScriptParse