Función DoEnvironmentSubstA (shellapi.h)
[Esta función solo se conserva por motivos de compatibilidad con versiones anteriores. Use expandEnvironmentStrings en su lugar.
Analiza una cadena de entrada que contiene referencias a una o varias variables de entorno y las reemplaza por sus valores totalmente expandidos.
Sintaxis
DWORD DoEnvironmentSubstA(
[in, out] LPSTR pszSrc,
UINT cchSrc
);
Parámetros
[in, out] pszSrc
Tipo: LPTSTR de
Puntero a una cadena terminada en null que contiene referencias a una o varias variables de entorno, cada una de ellas con el formato siguiente. Se omite el caso.
%VariableName%
Cualquier carácter de la cadena que no esté entre "%" caracteres " se omite y se devuelve sin cambios. Por lo tanto, si la cadena contiene varias variables de entorno, puede usar cualquier carácter distinto de "%" como separador, incluidos los espacios o ningún separador.
Cuando esta función se devuelve correctamente, cada %variableName% se reemplaza por su valor expandido. Las reglas de reemplazo son las mismas que las usadas por el intérprete de comandos. Si no se encuentra el nombre de la variable en el sistema, el %variableName% se deja tal como se envió en la entrada.
Si se produce un error en esta función debido a que la cadena expandida es demasiado grande para el búfer, el contenido de este búfer se deja sin cambios.
cchSrc
Tipo: UINT
Tamaño, en caracteres, del búfer al que apunta pszSrc. Tenga en cuenta que el búfer debe ser lo suficientemente grande como para contener la cadena devuelta.
Valor devuelto
Tipo: DWORD de
Si la cadena expandida se ajusta al búfer, se devuelve TRUE en el HIWORD y la longitud, en caracteres, del nuevo pszSrc se devuelve en loWORD.
Si la cadena expandida es demasiado grande para el búfer, se devuelve FALSE en HIWORD y cchSrc en loWORD.
Observaciones
Los parámetros deben contener valores válidos que noNULL. Debe validar estos valores. Si no lo hace, puede proporcionar resultados inesperados.
Dado que la cadena que se devuelve en pszSrc normalmente será más larga que la cadena de entrada, asegúrese de que el búfer es lo suficientemente grande como para contener la versión expandida de la cadena. El tamaño asignado de la cchSrc búfer para cadenas ANSI debe ser uno mayor que el búfer para una cadena Unicode. Al tratar con cadenas ANSI, use la fórmula tamaño del búfer = longitud de cadena + carácter NULO de terminación + 1 para determinar el tamaño mínimo correcto del búfer.
Dado que el usuario o las aplicaciones pueden agregar variables de entorno, la lista completa depende del sistema. Las siguientes variables de entorno son estándar y están disponibles para aplicaciones interactivas y servicios.
- ALLUSERSPROFILE
- APPDATA
- COMPUTERNAME
- LOCALAPPDATA
- NUMBER_OF_PROCESSORS
- Sistema operativo
- PROCESSOR_ARCHITECTURE
- PROCESSOR_IDENTIFIER
- PROCESSOR_LEVEL
- PROCESSOR_REVISION
- ProgramData
- Archivos de programa
- PÚBLICO
- SystemDrive
- SystemRoot
- USERPROFILE
- windir
- HOMEDRIVE
- HOMEPATH
- LOGONSERVER
- USERDOMAIN
- NOMBRE DE USUARIO
Ejemplos
La siguiente aplicación de consola muestra el uso de DoEnvironmentSubstW.
#include "stdafx.h"
#include "windows.h"
#include "windef.h"
#include "shellapi.h"
int _tmain(int argc, _TCHAR* argv[])
{
WCHAR szSrc[MAX_PATH] = L"%OS%;%HOMEPATH%";
DWORD result = DoEnvironmentSubstW(szSrc, MAX_PATH);
WORD success = HIWORD(result);
WORD string_length = LOWORD(result);
return 0;
}
Nota
El encabezado shellapi.h define DoEnvironmentSubst como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
shellapi.h |
biblioteca de |
Shell32.lib |
DLL de |
Shell32.dll (versión 4.0 o posterior) |