Fonction SHEvaluateSystemCommandTemplate (shellapi.h)
Applique une validation stricte des paramètres utilisés dans un appel à CreateProcess ou ShellExecute.
Syntaxe
SHSTDAPI SHEvaluateSystemCommandTemplate(
[in] PCWSTR pszCmdTemplate,
[out] PWSTR *ppszApplication,
[out, optional] PWSTR *ppszCommandLine,
[out, optional] PWSTR *ppszParameters
);
Paramètres
[in] pszCmdTemplate
Type : PCWSTR
Ligne de commande, qui peut inclure ou non des paramètres. Si les paramètres sont des paramètres de substitution, SHEvaluateSystemCommandTemplate doit être appelé avant que les paramètres aient été remplacés.
[out] ppszApplication
Type : PWSTR*
Pointeur vers le chemin vérifié de l’application. Cette valeur doit être passée en tant que paramètre lpApplication dans un appel à CreateProcess ou en tant que paramètre lpFile dans un appel à ShellExecute. Cette ressource est allouée à l’aide de CoTaskMemAlloc, et il incombe à l’appelant de libérer la ressource lorsqu’elle n’est plus nécessaire en appelant CoTaskMemFree.
[out, optional] ppszCommandLine
Type : PWSTR*
Pointeur vers un modèle de chaîne de ligne de commande à utiliser dans un appel à CreateProcess. Les paramètres de ligne de commande doivent être spécifiés en fonction de ce modèle, puis passés en tant que paramètre lpCommandLine à CreateProcess. Il est garanti qu’il soit d’une forme que PathGetArgs peut toujours lire correctement. Cette ressource est allouée à l’aide de CoTaskMemAlloc, et il incombe à l’appelant de libérer la ressource lorsqu’elle n’est plus nécessaire en appelant CoTaskMemFree.
Ce paramètre peut avoir la valeur NULL si cette fonction n’est pas utilisée en association avec un appel à CreateProcess.
[out, optional] ppszParameters
Type : PWSTR*
Pointeur vers un modèle de chaîne de ligne de commande à utiliser dans un appel à ShellExecute. Les paramètres de ligne de commande doivent être spécifiés à partir de ce modèle, puis passés en tant que paramètre lpParameters à ShellExecute. Ce paramètre est identique à l’appel de PathGetArgs. Cette ressource est allouée à l’aide de CoTaskMemAlloc, et il incombe à l’appelant de libérer la ressource lorsqu’elle n’est plus nécessaire en appelant CoTaskMemFree.
Ce paramètre peut avoir la valeur NULL si cette fonction n’est pas utilisée en association avec un appel à CreateProcess.
Valeur retournée
Type : HRESULT
Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Cette fonction est utilisée lorsqu’un processus appelant a besoin du comportement déterministe d’un modèle de commande, quel que soit le contexte d’exécution. Il ignore l’état actuel du processus, tel que , %PATH%
GetCurrentDirectory et le répertoire de processus parent.
Cette fonction est utilisée lorsque la commande est codée en dur.
Cette fonction est utilisée par ShellExecute lors de la gestion des associations de fichiers à partir de HKEY_CLASSES_ROOT. L’objectif de cette fonction est de réduire les exploits de ligne de commande CreateProcess . Il n’est pas conçu pour traiter les entrées utilisateur et, s’il est utilisé à cette fin, peut générer des échecs inattendus.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shellapi.h |
DLL | Shell32.dll |
Ensemble d’API | ext-ms-win-shell-shell32-l1-2-2 (introduit dans Windows 10, version 10.0.14393) |