UrlFixupW-Funktion (shlwapi.h)
[UrlFixupW ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein.]
Versucht, eine URL zu korrigieren, deren Protokollbezeichner falsch ist. Wird z. htttp
B. in http
geändert.
Syntax
LWSTDAPI UrlFixupW(
[in] PCWSTR pcszUrl,
[out] PWSTR pszTranslatedUrl,
DWORD cchMax
);
Parameter
[in] pcszUrl
Typ: PCWSTR
Ein Zeiger auf eine NULL-endende Zeichenfolge, die die zu korrigierende URL enthält. Diese Zeichenfolge darf INTERNET_MAX_PATH_LENGTH Zeichen nicht überschreiten, einschließlich des abschließenden NULL-Zeichens.
[out] pszTranslatedUrl
Typ: PWSTR
Ein Zeiger auf einen Puffer, der die kopierten Zeichen empfängt, wenn diese Funktion erfolgreich zurückgegeben wird. Der Puffer muss groß genug sein, um die anzahl der WCHAR-Zeichen zu enthalten, die durch den cchMax-Parameter angegeben werden, einschließlich des endenden NULL-Zeichens . Dieser Parameter kann gleich dem pcszUrl-Parameter sein, um eine URL zu korrigieren. Wenn pszTranslatedUrl nicht gleich pcszUrl ist, darf der Puffer, auf den von pszTranslatedUrl verwiesen wird, nicht den Puffer überlappen, auf den pcszUrl verweist.
cchMax
Art: DWORD
Die Anzahl der WCHAR-Zeichen , die im Puffer enthalten sein können, auf den pszTranslatedUrl verweist. Dieser Parameter muss größer als 0 (null) sein.
Rückgabewert
Typ: HRESULT
Gibt S_OK zurück, wenn die vorgeschlagene URL bereits akzeptabel oder erfolgreich korrigiert wurde. Der Puffer pszTranslatedUrl enthält die korrigierte URL oder die ursprüngliche URL, wenn keine Korrektur erforderlich ist. Gibt S_FALSE zurück, wenn die vorgeschlagene URL nicht ausreichend erkannt werden konnte, um korrigiert zu werden. Andernfalls wird ein COM-Standardfehlercode zurückgegeben.
Hinweise
Die UrlFixup-Funktion erkennt die von der URL_SCHEME-Enumeration angegebenen Schemas.
Priorität wird dem ersten Zeichen im Abschnitt "Protokollbezeichner" zugewiesen, sodass htp
anstelle von ftp
in konvertiert http
wird.
Beispiele
In diesem Beispiel wird gezeigt, wie UrlFixupW verwendet wird. Beachten Sie, dass die letzten vier Autokorrekturen wahrscheinlich nicht das waren, was der Benutzer beabsichtigt hat, und zeigen die Einschränkungen der von der Funktion verwendeten Heuristik.
#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <tchar.h>
void sample(LPCWSTR pszUrl)
{
WCHAR szBuf[256];
HRESULT hr = UrlFixupW(pszUrl, szBuf, 256);
if (hr == S_OK)
{
wprintf(L"%-35s %s\n", pszUrl, szBuf);
}
else
{
wprintf(L"%-35s failed\n", pszUrl);
}
}
int __cdecl main()
{
sample(L"http://www.microsoft.com");
sample(L"mail:someone@example.com");
sample(L"abc:def");
sample(L"someone@example.com");
sample(L"htpp:wwwmicrosoft.com");
sample(L"htps:\\\\www.microsoft.com");
sample(L"http:someone@example.com");
return 0;
}
..................................
This example might produce the following output:
http://www.microsoft.com http://www.microsoft.com
http:www.microsoft.com http://www.microsoft.com
mail:someone@example.com mailto:someone@example.com
abc:def failed
someone@example.com failed
htpp:wwwmicrosoft.com http://wwwmicrosoft.com
htps:\\www.microsoft.com http://www.microsoft.com
http:someone@example.com http://someone@example.com
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | shlwapi.h |
DLL | Shlwapi.dll (Version 5.0 oder höher) |