Funzione UrlCombineA (shlwapi.h)
Se specificato con un URL relativo e la relativa base, restituisce un URL in formato canonico.
Sintassi
LWSTDAPI UrlCombineA(
[in] PCSTR pszBase,
[in] PCSTR pszRelative,
[out, optional] PSTR pszCombined,
[in, out] DWORD *pcchCombined,
DWORD dwFlags
);
Parametri
[in] pszBase
Tipo: PCTSTR
Puntatore a una stringa con terminazione Null di lunghezza massima INTERNET_MAX_URL_LENGTH che contiene l'URL di base.
[in] pszRelative
Tipo: PCTSTR
Puntatore a una stringa con terminazione Null di lunghezza massima INTERNET_MAX_URL_LENGTH che contiene l'URL relativo.
[out, optional] pszCombined
Tipo: PTSTR
Puntatore a un buffer che, quando la funzione viene restituita correttamente, riceve una stringa con terminazione Null contenente l'URL combinato.
[in, out] pcchCombined
Tipo: DWORD*
Puntatore a un valore che, in ingresso, viene impostato sul numero di caratteri nel buffer pszCombined. Quando la funzione viene restituita correttamente, il valore dipende dal fatto che la funzione abbia esito positivo o restituisca E_POINTER. Per altri valori restituiti, il valore di questo parametro è privo di significato.
dwFlags
Tipo: DWORD
Flag che specificano la modalità di conversione dell'URL in formato canonico. È possibile combinare i flag seguenti.
URL_DONT_SIMPLIFY (0x08000000)
Trattare '/./' e '/.. /' in una stringa URL come caratteri letterali, non come abbreviato per la navigazione. Per altre informazioni, vedere la sezione Osservazioni.
URL_ESCAPE_PERCENT (0x00001000)
Convertire qualsiasi occorrenza di '%' nella relativa sequenza di escape.
URL_ESCAPE_SPACES_ONLY (0x04000000)
Sostituire solo gli spazi con sequenze di escape. Questo flag ha la precedenza su URL_ESCAPE_UNSAFE, ma non si applica agli URL opachi.
URL_ESCAPE_UNSAFE (0x20000000)
Sostituire i caratteri non sicuri con le sequenze di escape. I caratteri non sicuri sono i caratteri che possono essere modificati durante il trasporto su Internet e includono i caratteri (<, >, ", #, {, }, |, , ^, ~, [, ]e '). Questo flag si applica a tutti gli URL, inclusi gli URL opachi.
URL_NO_META
Definito come uguale a URL_DONT_SIMPLIFY.
URL_PLUGGABLE_PROTOCOL (0x40000000)
Combinare gli URL con i protocolli pluggable definiti dal client, in base alla specifica W3C. Questo flag non si applica ai protocolli standard, ad esempio ftp, http, gopher e così via. Se questo flag è impostato, urlCombine non semplifica gli URL, quindi non è necessario impostare anche URL_DONT_SIMPLIFY.
URL_UNESCAPE (0x10000000)
Annullare l'escape di tutte le sequenze di escape contenute negli URL, con due eccezioni. Le sequenze di escape per '?' e '#' non sono precedute da escape. Se viene impostato anche uno dei flag di URL_ESCAPE_XXX, i due URL vengono prima senza escape, quindi combinati, quindi preceduti da un escape.
URL_ESCAPE_AS_UTF8 (0x00040000)
Windows 7 e versioni successive. Codifica in percentuale tutti i caratteri non ASCII come equivalenti UTF-8.
Valore restituito
Tipo: HRESULT
Restituisce codici di errore COM standard, inclusi i seguenti.
Codice restituito | Descrizione |
---|---|
|
pszCombined punta a una stringa contenente gli URL combinati. Il valore di pcchCombined è impostato sul numero di caratteri nella stringa, senza contare il carattere di terminazione NULL. |
|
Il buffer era troppo piccolo. Il valore di pcchCombined è impostato sul numero minimo di caratteri che il buffer deve essere in grado di contenere, incluso il carattere di terminazione NULL. |
Osservazioni
Gli elementi tra le barre vengono considerati come identificatori gerarchici; l'ultimo elemento specifica il documento stesso. È necessario immettere una barra (/) dopo il nome del documento per aggiungere altri elementi; in caso contrario, UrlCombine scambia un documento per un altro. Per esempio:
hRetVal = UrlCombine(TEXT("http://xyz/test/abc"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
Il codice precedente restituisce l'URL http://xyz/test/bar. Se si vuole che l'URL combinato sia http://xyz/test/abc/bar, usare la chiamata seguente per UrlCombine.
hRetVal = UrlCombine(TEXT("http://xyz/test/abc/"),
TEXT("bar"),
lpszCombined,
&dwLength, 0);
Se una stringa URL contiene '/.. /' o '/./', UrlCombine considera in genere i caratteri come se avessero indicato lo spostamento nella gerarchia url. La funzione semplifica gli URL prima di combinarli. Ad esempio, "/hello/cruel/.. /world" è semplificato in "/hello/world". Se il flag URL_DONT_SIMPLIFY è impostato in dwFlags, la funzione non semplifica gli URL. In questo caso, "/hello/cruel/.. /world" viene lasciato così come è.
Nota
L'intestazione shlwapi.h definisce UrlCombine come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional, Windows XP [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
shlwapi.h |
libreria |
Shlwapi.lib |
dll | Shlwapi.dll (versione 5.0 o successiva) |