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 httpgeä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 ftpin konvertiert http wird.

Hinweis Verwenden Sie diese Funktion nicht für die deterministische Datentransformation. Die von UrlFixupW verwendete Heuristik kann sich von einer Version zur nächsten ändern. Die Funktion sollte nur verwendet werden, um möglicherweise ungültige Benutzereingaben zu korrigieren.
 
Diese Funktion ist nur in einer Unicode-Version verfügbar.

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)