IActiveScriptParse::ParseScriptTextIActiveScriptParse::ParseScriptText

Analyse le scriptlet de code donné, ajoutant des déclarations dans l’espace de noms et l’évaluation de 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 de 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 le 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 du délimiteur de fin de scriptlet.[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 deux 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 utilisé par l’hôte, ce qui permet au moteur de script fournir un prétraitement primitif conditionnel (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 moteur de script utilise ces informations varie selon 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’hôte n’utilisez pas un séparateur 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 qui commence à l’analyse.[in] Zero-based value that specifies which line the parsing will begin at.
dwFlags [in] Indicateurs associés au scriptlet.[in] Flags associated with the scriptlet. Peut être une combinaison des valeurs suivantes :Can be a combination of these values:
ValueValue SignificationMeaning
SCRIPTTEXT_ISEXPRESSIONSCRIPTTEXT_ISEXPRESSION Si la distinction entre une expression de calcul et une instruction est importante mais syntaxiquement ambiguë dans le langage de script, cet indicateur spécifie que le scriptlet doit être interprétée 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 assumées sauf si le choix correct peut être déterminé à partir de la syntaxe du texte de 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é pendant 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é via une transition vers 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 les exceptions.[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 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’est 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 la version d’évaluation de l’exécution d’expressions ou 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 un état non initialisé ou fermé, ou l’indicateur SCRIPTTEXT_ISEXPRESSION était 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.

NotesRemarks

Si le moteur de script est dans l’état initialisé, aucun code n’est réellement évalué 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 est une erreur d’appeler cette méthode avec l’indicateur SCRIPTTEXT_ISEXPRESSION lorsqu’il est dans 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 à exécuter comme la page HTML est en cours de construction, au lieu de les compiler dans l’état du 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 illégal d’appeler cette méthode une fois avec Sub Function (x) et ensuite une deuxième 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 à terminer la sous-routine, mais doit générer une erreur d’analyse, car une déclaration de 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 de script, consultez la section d’é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