Partager via


Fonction ParseURLA (shlwapi.h)

Effectue une analyse rudimentaire d’une URL.

Syntaxe

LWSTDAPI ParseURLA(
  [in]      LPCSTR     pcszURL,
  [in, out] PARSEDURLA *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 retournée

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

OUTPUT:
---------

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
                

Notes

L’en-tête shlwapi.h définit ParseURL comme un 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shlwapi.h
DLL Shlwapi.dll (version 6.0.1 ou ultérieure)