Función SHUnicodeToUnicode (shlwapi.h)
[Esta función está disponible a través de Windows XP y Windows Server 2003. Es posible que se modifique o no esté disponible en versiones posteriores de Windows.
Copia una cadena Unicode.
Sintaxis
int SHUnicodeToUnicode(
[in] PCWSTR pwzSrc,
[out] PWSTR pwzDst,
int cwchBuf
);
Parámetros
[in] pwzSrc
Tipo: PCWSTR
Puntero a una cadena Unicode terminada en null que se va a copiar en el búfer de salida.
[out] pwzDst
Tipo: PWSTR
Puntero a un búfer de salida para recibir los caracteres copiados. El búfer debe ser lo suficientemente grande como para contener el número de caracteres WCHAR especificados por cwchBuf, incluido el espacio para un carácter nulo de terminación.
cwchBuf
Tipo: int
Número de caracteres WCHAR que puede contener el búfer al que apunta el parámetro pwzDst . Este parámetro debe ser mayor que cero.
Valor devuelto
Tipo: int
Devuelve el número de caracteres WCHAR escritos en el búfer de salida, incluido el carácter nulo de terminación. Devuelve 0 si no se realiza correctamente.
Comentarios
Advertencia de seguridad: El uso incorrecto de esta función puede poner en peligro la seguridad de la aplicación. Por ejemplo, si el búfer pwzDst no es lo suficientemente grande como para contener el número de caracteres especificados por cwchBuf, se puede producir una saturación del búfer. Las saturaciones de búfer pueden provocar un ataque de denegación de servicio contra una aplicación si se produce una infracción de acceso. En el peor de los casos, una saturación de búfer podría permitir que un atacante inserte código ejecutable en el proceso, especialmente si pwzDst es un búfer basado en pila. Al copiar una cadena completa, tenga en cuenta que sizeof devuelve el número de bytes, que no es el valor correcto que se va a usar para el parámetro cwchBuf . En su lugar, use sizeof(pwzDst)/sizeof(WCHAR). Tenga en cuenta que esta técnica supone que pwzDst es una matriz, no un puntero. Tenga en cuenta también que la función trunca silenciosamente la cadena de salida si el búfer no es lo suficientemente grande. Esto puede dar lugar a la canonización u otras vulnerabilidades de seguridad.
Si el búfer pwzDst no es lo suficientemente grande como para contener toda la cadena de salida convertida, la cadena se trunca para ajustarse al búfer. No hay ninguna manera de detectar que la cadena de devolución se ha truncado. La cadena siempre estará terminada en null, incluso si se ha truncado. Esto garantiza que no se copien más de caracteres cwchBuf en pwzDst. No se intenta evitar truncar la cadena en medio de un par suplente Unicode.
Si los búferes pwzSrc y pwzDst se superponen, el comportamiento de la función no está definido.
SHUnicodeToTChar se define como el mismo que SHUnicodeToUnicode.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server, Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shlwapi.h |
Archivo DLL | Shlwapi.dll (versión 5.0 o posterior) |
Consulte también
StringCchLength