Compartir a través de


Función InternetCrackUrlA (wininet.h)

Divide una dirección URL en sus partes de componente.

Sintaxis

BOOL InternetCrackUrlA(
  [in]      LPCSTR            lpszUrl,
  [in]      DWORD             dwUrlLength,
  [in]      DWORD             dwFlags,
  [in, out] LPURL_COMPONENTSA lpUrlComponents
);

Parámetros

[in] lpszUrl

Puntero a una cadena que contiene la dirección URL canónica que se va a descifrar.

[in] dwUrlLength

Tamaño de la cadena lpszUrl , en TCHAR o cero si lpszUrl es una cadena ASCIIZ.

[in] dwFlags

Controla la operación. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
ICU_DECODE
Convierte los caracteres codificados de nuevo en su forma normal. Esto solo se puede usar si el usuario proporciona búferes en la estructura URL_COMPONENTS en la que copiar los componentes.
ICU_ESCAPE
Convierte todas las secuencias de escape (%xx) en sus caracteres correspondientes. Esto solo se puede usar si el usuario proporciona búferes en la estructura URL_COMPONENTS en la que copiar los componentes.

[in, out] lpUrlComponents

Puntero a una estructura de URL_COMPONENTS que recibe los componentes de la dirección URL.

Valor devuelto

Devuelve TRUE si la función se realiza correctamente o FALSE en caso contrario. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Los componentes necesarios se indican mediante miembros de la estructura URL_COMPONENTS . Cada componente tiene un puntero al valor y tiene un miembro que almacena la longitud del valor almacenado. Si tanto el valor como la longitud de un componente son iguales a cero, ese componente no se devuelve. Windows Vista y versiones posteriores. Si el puntero al valor del componente es NULL y el valor de su miembro de longitud correspondiente es distinto de cero, la dirección del primer carácter del componente correspondiente en la cadena lpszUrl se almacena en el puntero y la longitud del componente se almacena en el miembro length.

Si el puntero contiene la dirección del búfer proporcionado por el usuario, el miembro de longitud debe contener el tamaño del búfer. InternetCrackUrl copia el componente en el búfer y el miembro length se establece en la longitud del componente copiado, menos 1 para el terminador de cadena final.

Para que InternetCrackUrl funcione correctamente, el tamaño de la estructura de URL_COMPONENTS , en bytes, debe almacenarse en el miembro dwStructSize .

Nota No use InternetCrackUrl en direcciones URL de "file://" que contengan espacios, ya que el valor devuelto en el miembro dwUrlPathLength de la estructura de URL_COMPONENTS apuntado por lpUrlComponents es demasiado grande. Sin embargo, este es solo el caso, con direcciones URL de "file://" que contienen caracteres de espacio.

Al igual que todos los demás aspectos de la API de WinINet, esta función no se puede llamar de forma segura desde DllMain ni desde los constructores y destructores de objetos globales.

Nota WinINet no admite implementaciones de servidor. Además, no se debe usar desde un servicio. En el caso de las implementaciones de servidor o los servicios, use los servicios HTTP de Microsoft Windows (WinHTTP).
 

Nota

El encabezado wininet.h define InternetCrackUrl 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wininet.h
Library Wininet.lib
Archivo DLL Wininet.dll

Consulte también

FtpOpenFile

Control de localizadores uniformes de recursos

InternetCloseHandle

InternetFindNextFile

InternetSetStatusCallback

Funciones de WinINet