Función ParseURLW (shlwapi.h)

Realiza un análisis rudimentario de una dirección URL.

Sintaxis

LWSTDAPI ParseURLW(
  [in]      LPCWSTR    pcszURL,
  [in, out] PARSEDURLW *ppu
);

Parámetros

[in] pcszURL

Tipo: LPCTSTR

Puntero a una cadena terminada en null que contiene la dirección URL que se va a analizar.

[in, out] ppu

Tipo: PARSEDURL*

Puntero a una estructura PARSEDURL que recibe los resultados analizados. La aplicación que llama debe establecer el miembro cbSize de la estructura en el tamaño de la estructura antes de llamar a ParseURL.

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente o un código de error COM de lo contrario. La función devuelve URL_E_INVALID_SYNTAX (definida en Intshcut.h) si la cadena no se pudo analizar como una dirección URL.

Comentarios

El análisis realizado por ParseURL es bastante rudimentario. Para analizar direcciones URL más sofisticadas, use InternetCrackUrl.

Ejemplos

Esta aplicación de consola de ejemplo usa ParseURL para analizar varias direcciones URL sencillas.

#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <tchar.h>

void sample(LPCTSTR pcszUrl)
{
    PARSEDURL pu;
    pu.cbSize = sizeof(pu);
    HRESULT hr = ParseURL(pcszUrl, &pu);
    _tprintf(TEXT("ParseURL(%s) returned 0x%08x\n"), pcszUrl, hr);
    if (SUCCEEDED(hr)) {
        _tprintf(TEXT("Protocol = %.*s\n"), pu.cchProtocol, pu.pszProtocol);
        _tprintf(TEXT("Suffix   = %.*s\n"), pu.cchSuffix, pu.pszSuffix);
        _tprintf(TEXT("Scheme   = %d\n"), pu.nScheme);
        _tprintf(TEXT("\n"));
    }
}

int __cdecl main()
{
    sample(TEXT("http://msdn.microsoft.com/vstudio/"));
    sample(TEXT("mailto:someone@example.com"));
    sample(TEXT("file://C:\\AUTOEXEC.BAT"));
    sample(TEXT("C:\\AUTOEXEC.BAT"));
    return 0;
}   

Salida:

ParseURL(http://msdn.microsoft.com/vstudio/) returned 0x00000000
Protocol = http
Suffix   = //msdn.microsoft.com/vstudio/
Scheme   = 2

ParseURL(mailto:someone@example.com) returned 0x00000000
Protocol = mailto
Suffix   = someone@example.com
Scheme   = 4

ParseURL(file://C:\AUTOEXEC.BAT) returned 0x00000000
Protocol = file
Suffix   = C:\AUTOEXEC.BAT
Scheme   = 9

ParseURL(C:\AUTOEXEC.BAT) returned 0x80041001

Nota

El encabezado shlwapi.h define ParseURL 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 Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Archivo DLL Shlwapi.dll (versión 6.0.1 o posterior)