Partager via


Fonction ParseURLW (shlwapi.h)

Effectue l’analyse rudimentaire d’une URL.

Syntaxe

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

Paramètres

[in] pcszURL

Type : LPCTSTR

Pointeur vers une chaîne terminée par null contenant l’URL à analyser.

[in, out] ppu

Type : PARSEDURL*

Pointeur vers une structure PARSEDURL qui reçoit les résultats analysés. L’application appelante doit définir le membre cbSize de la structure sur la taille de la structure avant d’appeler ParseURL.

Valeur de retour

Type : HRESULT

Retourne S_OK en cas de réussite ou un code d’erreur COM dans le cas contraire. La fonction retourne URL_E_INVALID_SYNTAX (définie dans Intshcut.h) si la chaîne n’a pas pu être analysée en tant qu’URL.

Remarques

L’analyse effectuée par ParseURL est assez rudimentaire. Pour l’analyse d’URL plus sophistiquée, utilisez InternetCrackUrl.

Exemples

Cet exemple d’application console utilise parseURL pour analyser plusieurs URL simples.

#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;
}   

Sortie:

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

Note

L’en-tête shlwapi.h définit ParseURL comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête shlwapi.h
DLL Shlwapi.dll (version 6.0.1 ou ultérieure)