Partager via


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)