Função ParseURLW (shlwapi.h)

Executa a análise rudimentar de uma URL.

Sintaxe

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

Parâmetros

[in] pcszURL

Tipo: LPCTSTR

Um ponteiro para uma cadeia de caracteres terminada em nulo que contém a URL a ser analisada.

[in, out] ppu

Tipo: PARSEDURL*

Um ponteiro para uma estrutura PARSEDURL que recebe os resultados analisados. O aplicativo de chamada deve definir o membro cbSize da estrutura para o tamanho da estrutura antes de chamar ParseURL.

Valor retornado

Tipo: HRESULT

Retorna S_OK em caso de êxito ou um código de erro COM caso contrário. A função retornará URL_E_INVALID_SYNTAX (definida em Intshcut.h) se a cadeia de caracteres não puder ser analisada como uma URL.

Comentários

A análise realizada pela ParseURL é bastante rudimentar. Para análise de URL mais sofisticada, use InternetCrackUrl.

Exemplos

Este aplicativo de console de exemplo usa ParseURL para analisar várias URLs 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;
}   

Saída:

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

Observação

O cabeçalho shlwapi.h define ParseURL como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlwapi.h
DLL Shlwapi.dll (versão 6.0.1 ou posterior)